Backlash vs "missing the mark"
13 Nov 2017 09:44 #101720
by Nitram
Backlash vs "missing the mark" was created by Nitram
Hello.
My Z axis servo motors are tuned, minimal following errors and the ability to set tight deadband figures without hunting. The Z axis hits the target numbers within a few thousands of a mm.
Tested and set backlash. In the other axis' backlash is minimal. In the Z axis it is in the order of .055 mm. At some stage I will go back and take a look at replacing the axial contact bearings as the first step to reducing this figure.
For now though, the results of the backlash testing are accurate and repeatable, both up and down.
However, now with the BL figure in, whenever the machine moves in Z, it misses the target number by around .02 mm, then slowly creeps to the target value. When I take the BL figure out, the Z axis hits the numbers right on again. My quandary is, how can a BL figure affect the axis to miss the mark by that amount when without BL it hits the numbers very sweetly. In other words, BL is for direction reversal of a subsequent move, rather than stopping short or overshooting the current move.
I am rather surprised by this behavior. I did read that stepper motors require a max accel increase, but these are DC servo drives already tuned.
1. Does anyone have any thoughts on this?? and
2. Is there a parameter to set the velocity of the "fine tuning" when an axis has finished the move but is very slowly creeping to fine tune its final encoder position?
Thanks,
Marty.
My Z axis servo motors are tuned, minimal following errors and the ability to set tight deadband figures without hunting. The Z axis hits the target numbers within a few thousands of a mm.
Tested and set backlash. In the other axis' backlash is minimal. In the Z axis it is in the order of .055 mm. At some stage I will go back and take a look at replacing the axial contact bearings as the first step to reducing this figure.
For now though, the results of the backlash testing are accurate and repeatable, both up and down.
However, now with the BL figure in, whenever the machine moves in Z, it misses the target number by around .02 mm, then slowly creeps to the target value. When I take the BL figure out, the Z axis hits the numbers right on again. My quandary is, how can a BL figure affect the axis to miss the mark by that amount when without BL it hits the numbers very sweetly. In other words, BL is for direction reversal of a subsequent move, rather than stopping short or overshooting the current move.
I am rather surprised by this behavior. I did read that stepper motors require a max accel increase, but these are DC servo drives already tuned.
1. Does anyone have any thoughts on this?? and
2. Is there a parameter to set the velocity of the "fine tuning" when an axis has finished the move but is very slowly creeping to fine tune its final encoder position?
Thanks,
Marty.
Please Log in or Create an account to join the conversation.
- Todd Zuercher
-
- Away
- Platinum Member
-
Less
More
- Posts: 4978
- Thank you received: 1377
13 Nov 2017 13:41 #101726
by Todd Zuercher
Replied by Todd Zuercher on topic Backlash vs "missing the mark"
I believe that would be the responsibility of the I term in the PID. (PS: Using a large amount of I can lead to wind-up problems, so setting a value for pid.N.maxerrorI can be helpful.)
For what it's worth, on the machines I work with and how we use them, backlash compensation has been more trouble than it's worth, so I don't use it.
For what it's worth, on the machines I work with and how we use them, backlash compensation has been more trouble than it's worth, so I don't use it.
Please Log in or Create an account to join the conversation.
13 Nov 2017 14:49 #101727
by PCW
Replied by PCW on topic Backlash vs "missing the mark"
This can also happen if the pid.Nmaxerror term ( not pid.N.maxerrori ) is set to a small value
(you should set it to 0 = no limit for servos)
(you should set it to 0 = no limit for servos)
Please Log in or Create an account to join the conversation.
16 Nov 2017 03:25 - 16 Nov 2017 03:27 #101875
by Nitram
Replied by Nitram on topic Backlash vs "missing the mark"
Just to check, does this variable from the ini file:
MAX_OUTPUT = 8.0
which links to this from the hal:
setp pid.x.maxoutput [AXIS_3]MAX_OUTPUT
Should actually also be set to zero for a servo drive as it would also seem to have the potential to limit the I gain output when correcting a small off target displacement in the same manner that limiting the pid.z.maxerror pin would?
I ask this because I have checked the pid.z.maxerror hal pin and it indicates 0, but I would assume that when an axis is very close to its target but has a sustained error, which the I gain corrects (in this case very slowly) could also be due to the MAX-OUTPUT limit limiting the rate of correction?
Thanks.
MAX_OUTPUT = 8.0
which links to this from the hal:
setp pid.x.maxoutput [AXIS_3]MAX_OUTPUT
Should actually also be set to zero for a servo drive as it would also seem to have the potential to limit the I gain output when correcting a small off target displacement in the same manner that limiting the pid.z.maxerror pin would?
I ask this because I have checked the pid.z.maxerror hal pin and it indicates 0, but I would assume that when an axis is very close to its target but has a sustained error, which the I gain corrects (in this case very slowly) could also be due to the MAX-OUTPUT limit limiting the rate of correction?
Thanks.
Last edit: 16 Nov 2017 03:27 by Nitram.
Please Log in or Create an account to join the conversation.
16 Nov 2017 13:43 - 16 Nov 2017 13:57 #101893
by PCW
Replied by PCW on topic Backlash vs "missing the mark"
The max_output setting limits the maximum output of the PID so if that's for an analog output
and its using the default scaling that would limit the output to +-8V so that's not likely the issue.
The PID maxerror setting is an input to the PID component that bounds the PID error (commanded - feedback)
to the maxerror setting, if maxerror is 0, no bounding is done so again, that's OK
So neither of those settings are a problem so maybe the next step is post your hal and ini files
Another thing that would help is to post a plot of the error, including the following error and PID output
and its using the default scaling that would limit the output to +-8V so that's not likely the issue.
The PID maxerror setting is an input to the PID component that bounds the PID error (commanded - feedback)
to the maxerror setting, if maxerror is 0, no bounding is done so again, that's OK
So neither of those settings are a problem so maybe the next step is post your hal and ini files
Another thing that would help is to post a plot of the error, including the following error and PID output
Last edit: 16 Nov 2017 13:57 by PCW.
Please Log in or Create an account to join the conversation.
27 Nov 2017 12:06 #102384
by Nitram
Replied by Nitram on topic Backlash vs "missing the mark"
Hi.
Just to provide some follow up to this thread, when tuning the PID loop, I ultimately had too much D. This was noted by the fact that the target would always be undershot. A function of too much D. Whilst the HAL scope was an exceptionally powerful tuning tool, I did ultimately, as a final tweak, have to go back to axis position following some moves in G90, to back off D to the point that the consistent undershoot was eliminated and to get the loop to hit the absolute target.
Thanks for all the help along the way!
Kind regards, Marty.
Just to provide some follow up to this thread, when tuning the PID loop, I ultimately had too much D. This was noted by the fact that the target would always be undershot. A function of too much D. Whilst the HAL scope was an exceptionally powerful tuning tool, I did ultimately, as a final tweak, have to go back to axis position following some moves in G90, to back off D to the point that the consistent undershoot was eliminated and to get the loop to hit the absolute target.
Thanks for all the help along the way!
Kind regards, Marty.
Please Log in or Create an account to join the conversation.
Time to create page: 0.114 seconds