Keep Backlash in the Control Loop
Posted: Fri Oct 28, 2022 5:29 am
I'd like to start by saying I absolutely love your product. I've been using it for at least 10 years and it's made so much possible for me!!!
I have a mill with closed loop AC servos and 1um scales. I use the scales to measure position and treat the servos like steppers since the backlash and dynamics under load are too severe (.005-.011) to rely on the servo encoders alone. Thanks to the abundant feature set, I've managed to tune everything nicely and the tool converges on the destination point as intended. However, any change in direction lags due the backlash in the system, resulting in gouging when cutting pockets or inside threads. Apart from costly upgrades there's nothing left to do physically so I want to use backlash, but it appears the backlash operates outside the control loop and results in missing the destination by that amount.
For an exaggerated example, I set the backlash to 0.010 and moved 1 inch. It executes the initial jump but the control loop ignores the additional output and simply moves 1 inch + 0.010, missing the destination exactly by the backlash. When reversing direction, it reverses the backlash, moves 1 inch back, and accurately returns to the starting position. It seems like the backlash operates outside control loop, which makes sense if the encoder were attached to the actuator, but in this case the encoder can see the actual position and just ignores it because it's backlash. Is it possible to modify the control loop to handle backlash the same as though I physically kicked the milling table and only move the remainder? Maybe a new backlash injection mode feature request?
I have a mill with closed loop AC servos and 1um scales. I use the scales to measure position and treat the servos like steppers since the backlash and dynamics under load are too severe (.005-.011) to rely on the servo encoders alone. Thanks to the abundant feature set, I've managed to tune everything nicely and the tool converges on the destination point as intended. However, any change in direction lags due the backlash in the system, resulting in gouging when cutting pockets or inside threads. Apart from costly upgrades there's nothing left to do physically so I want to use backlash, but it appears the backlash operates outside the control loop and results in missing the destination by that amount.
For an exaggerated example, I set the backlash to 0.010 and moved 1 inch. It executes the initial jump but the control loop ignores the additional output and simply moves 1 inch + 0.010, missing the destination exactly by the backlash. When reversing direction, it reverses the backlash, moves 1 inch back, and accurately returns to the starting position. It seems like the backlash operates outside control loop, which makes sense if the encoder were attached to the actuator, but in this case the encoder can see the actual position and just ignores it because it's backlash. Is it possible to modify the control loop to handle backlash the same as though I physically kicked the milling table and only move the remainder? Maybe a new backlash injection mode feature request?