Calibrating Axis Movement...
- mjohnsonsa
- Offline
- Senior Member
Less
More
- Posts: 51
- Thank you received: 0
13 May 2016 16:45 #74611
by mjohnsonsa
Calibrating Axis Movement... was created by mjohnsonsa
I am sure this is answered elsewhere and I am unable to find it, can someone point me to a video or explanation of how I calibrate the movement of my axis to the actual movement? Specifically what fields do I modify?
So I have just set up my machine, I stick a dial caliper on the axis and zero it out, I tell it to move 1 inch but it moves a different amount, what is the formula and where are the values that get changed to correct this?
Thanks,
Matt
So I have just set up my machine, I stick a dial caliper on the axis and zero it out, I tell it to move 1 inch but it moves a different amount, what is the formula and where are the values that get changed to correct this?
Thanks,
Matt
Please Log in or Create an account to join the conversation.
14 May 2016 03:04 #74637
by Sparky961
Replied by Sparky961 on topic Calibrating Axis Movement...
If you're talking about steppers, there's a short
related thread here
that gives the formula for determining the SCALE parameter in your INI file.
For servos, it's the ENCODER_SCALE parameter. The initial calculation is as follows for my own machine:
ENCODER_SCALE = CPR / RATIO / UPT
Where:
CPR -> Encoder counts per revolution (4x quadrature)
RATIO -> Gear ratio, motor to leadscrew
UPT -> Axis linear movement per leadscrew rotation (machine units)
Using my own numbers, my encoders give 4000 counts per revolution, Servo timing pulley has 12 teeth and leadscrew timing pulley has 36. Machine is metric and this particular axis is 3mm per leadscrew turn but since I'm using INCH as machine units that gives 0.11811 inches.
ENCODER_SCALE = 4000 / 0.3333 / 0.11811 = 101600
That should get you very close. If the difference is proportional you can adjust by figuring out the % difference then multiplying your ENCODER_SCALE by that. For example, say I started out with 101600 and when I physically measure 0.800 of travel, LinuxCNC shows 0.803, and at 1.600 it's showing 1.606. This is indicating a proportional error.
0.800 / 0.803 = 0.9963
1.600 / 1.606 = 0.9963
Which is to say that you're only getting 99.63% or the motion you need. I always forget which way around the formula goes, but it's either that you need to multiply or divide your ENCODER_SCALE by the % difference to arrive at your new value. If the first attempt makes it worse, try it the other way.
For servos, it's the ENCODER_SCALE parameter. The initial calculation is as follows for my own machine:
ENCODER_SCALE = CPR / RATIO / UPT
Where:
CPR -> Encoder counts per revolution (4x quadrature)
RATIO -> Gear ratio, motor to leadscrew
UPT -> Axis linear movement per leadscrew rotation (machine units)
Using my own numbers, my encoders give 4000 counts per revolution, Servo timing pulley has 12 teeth and leadscrew timing pulley has 36. Machine is metric and this particular axis is 3mm per leadscrew turn but since I'm using INCH as machine units that gives 0.11811 inches.
ENCODER_SCALE = 4000 / 0.3333 / 0.11811 = 101600
That should get you very close. If the difference is proportional you can adjust by figuring out the % difference then multiplying your ENCODER_SCALE by that. For example, say I started out with 101600 and when I physically measure 0.800 of travel, LinuxCNC shows 0.803, and at 1.600 it's showing 1.606. This is indicating a proportional error.
0.800 / 0.803 = 0.9963
1.600 / 1.606 = 0.9963
Which is to say that you're only getting 99.63% or the motion you need. I always forget which way around the formula goes, but it's either that you need to multiply or divide your ENCODER_SCALE by the % difference to arrive at your new value. If the first attempt makes it worse, try it the other way.
The following user(s) said Thank You: mjohnsonsa, Sadmeatball
Please Log in or Create an account to join the conversation.
14 May 2016 06:39 - 14 May 2016 06:43 #74640
by Rick G
Replied by Rick G on topic Calibrating Axis Movement...
Normally I start by setting my indicator, making a negative move, then a small positive move, then set the indicator (to avoid any problems with backlash), then make your measured positive move.
It is also best to make a long a move as possible, if you have 12" of travel try say a 10" move.
You will want to adjust the SCALE in your ini file...
linuxcnc.org/docs/2.6/html/config/ini_co...tml#sub:AXIS-section
Rick G
It is also best to make a long a move as possible, if you have 12" of travel try say a 10" move.
You will want to adjust the SCALE in your ini file...
linuxcnc.org/docs/2.6/html/config/ini_co...tml#sub:AXIS-section
Rick G
Last edit: 14 May 2016 06:43 by Rick G.
Please Log in or Create an account to join the conversation.
- mjohnsonsa
- Offline
- Senior Member
Less
More
- Posts: 51
- Thank you received: 0
14 May 2016 13:29 #74646
by mjohnsonsa
Replied by mjohnsonsa on topic Calibrating Axis Movement...
Rick, what is the math that you use to adjust the scale? Do you take the existing SCALE value and divide it by the actual movement and then multiply that value by the difference between the commanded move distance and the actual move distance?
Please Log in or Create an account to join the conversation.
14 May 2016 20:08 #74656
by Rick G
Replied by Rick G on topic Calibrating Axis Movement...
I find it simpler to just do it as a percentage, if the machine moves 10% too far adjust the SCALE by 10% then retest.
Rick G
Rick G
The following user(s) said Thank You: Shopro702
Please Log in or Create an account to join the conversation.
17 May 2016 14:35 #74793
by andypugh
The SCALE number should be something you derive from the mechanical parts of the machine, not an ad-hoc adjustment.
What it comes down to is how many step pulses or encoder counts it takes to travel one of your chosen units of distance. That's all there is to it. You will need to allow for gear ratios and leadscrew pitch, but that's it. If the machine travel is incorrect then either you did the calculations wrong, or you are losing steps, or something it slipping.
Replied by andypugh on topic Calibrating Axis Movement...
Rick, what is the math that you use to adjust the scale? Do you take the existing SCALE value and divide it by the actual movement and then multiply that value
The SCALE number should be something you derive from the mechanical parts of the machine, not an ad-hoc adjustment.
What it comes down to is how many step pulses or encoder counts it takes to travel one of your chosen units of distance. That's all there is to it. You will need to allow for gear ratios and leadscrew pitch, but that's it. If the machine travel is incorrect then either you did the calculations wrong, or you are losing steps, or something it slipping.
The following user(s) said Thank You: Sadmeatball
Please Log in or Create an account to join the conversation.
Time to create page: 0.074 seconds