Servo control for a braked 4th axis
I've picked up a used 4th axis that I would like to adapt to my Kogna retrofitted Milltronics VMC. It is missing its motor, which is fine for my purposes, because I can adapt whatever motor/drive combination I choose. This 4th axis has a large pneumatic brake. I would like to be able to use it both as a true 4th axis with coordinated motion, but also be able to use the brake to lock the axis in place for heavy cuts and off center drilling. Preferably without resorting to using 2 different machine configurations for indexing/true 4th axis.
I'm looking for advice on how to control a servo that will sometimes be restrained by the brake without making the servo motor angry. I've though of a couple approaches so far, but I'm not confident in them, and there may be a better way that I'm just unaware of.
Approach 1: Use a large enough dead band that the servo loop won't try to correct any errors while the brake is clamped. I don't like this approach, because it's equivalent to mechanical backlash and I want good positioning accuracy.
Approach 2: Limit I gain to some tiny value so the servo loop never tries hard enough to cause a problem trying to correct any error that exists while the brake is clamped. Once again, I am worried I wouldn't be able to achieve good positioning accuracy with this approach especially under cutting forces.
Approach 3: Use an M code to run a C program to both activate/release the brake and also change the servo loop parameters only while the brake is active. Is it possible to change servo tuning parameters on a coordinated motion axis on the fly while running a Gcode program?
I appreciate any advice on this problem.
-Nate
Re: Servo control for a braked 4th axis
Hi Nate,
I'd recommend approach 3. Yes you can change servo parameters on-the-fly. As you may know the normal issue, with a servo while a brake is applied, is the Integrator ramps up to a huge value trying to correct a small error while the brake is preventing any motion. The huge torque is undesirable while the brake is applied, and when the brake is released may cause a large jerk/overshoot.
So before applying the brake you might set the I Gain to zero. This will freeze the integrator at its current value.
A disadvantage might be that if applying the brake introduces an undesirable shift the servo, without the integrator, may not be able to hold position as well as it could with the Integrator active. In this case you might try reducing the MaxI instead to limit how much the Integrator can ramp up.
HTH
Regards
Re: Servo control for a braked 4th axis
Hi Tom,
I appreciate the help, that does sound like the best approach, I was just unsure if I could control the servo parameters on the fly. If I reduce the MaxI will it limit the integrator to less than the current value? As in, could I wait until the brake has engaged and then reduce the MaxI to 0 or some tiny value to prevent jerk/overshoot on release? Or is there some other way to accomplish this?
In any case I guess I need to figure out the brake engagement time and try to minimize the time between changing the I gain and brake engagement. I probably need to integrate a sensor to get the brake timing as close as possible over a range of air pressures and to prevent damaging failure modes in case of air pressure failure/forgetting to turn on the air compressor.
Looks like I have some experimenting to do.
-Nate
Re: Servo control for a braked 4th axis
Hi Nate,
Quote:
If I reduce the MaxI will it limit the integrator to less than the current value?
yes
Quote:
As in, could I wait until the brake has engaged and then reduce the MaxI to 0 or some tiny value to prevent jerk/overshoot on release?
I don't really follow that. Note that if the Integrator is ramped up to some value which is appling torque and the MaxI is suddenly changed to 0 then the torque will be suddenly removed possibly causing a disturbance.
In most applications clamping the brake is the critical task so as to be clamped at the desired position with little error. Unclamping is less critical because if there is some movement the servo will eventually restore the position before the next operation.
Quote:
In any case I guess I need to figure out the brake engagement time and try to minimize the time between changing the I gain and brake engagement. I probably need to integrate a sensor to get the brake timing as close as possible over a range of air pressures and to prevent damaging failure modes in case of air pressure failure/forgetting to turn on the air compressor.
Yes you might experiment with various time delays between turning on the brake and switching I Gain to 0. After clamping is complete the encoder should tell you the amount of error.
Good luck
Re: Servo control for a braked 4th axis
Quote:
Originally Posted by
TomKerekes
I don't really follow that. Note that if the Integrator is ramped up to some value which is appling torque and the MaxI is suddenly changed to 0 then the torque will be suddenly removed possibly causing a disturbance.
In most applications clamping the brake is the critical task so as to be clamped at the desired position with little error. Unclamping is less critical because if there is some movement the servo will eventually restore the position before the next operation.
I am hoping that I can engage the brake with the servo operating normally first, and then secondly wait for the brake to fully engage. Then the third step would be to change the max I to zero (hopefully within a few milliseconds) before the integrator ramps up too much. The brake will already be engaged, so as long as any torque applied/removed is unable to overpower the brake nothing moves. It sounds like this should be possible. You are correct that unclamping isn't critical, I just don't want the motor fighting the brake the whole time it's clamped and then reacting violently.
I'm thinking of things like heavy off center parts. If I zero I gain before the brake clamps, the axis would rotate due to gravity until either the brake stops the rotation or until the error becomes large enough for the P gain to stop it. Maybe this error would be insignificant, but it seems possible to avoid it altogether.
Now that I know I can modify the servo parameters on the fly and essentially "cancel" a torque from the integrator by changing the max I, I think I can start experimenting.
I appreciate the help.
-Nate
Re: Servo control for a braked 4th axis
Quote:
I'm thinking of things like heavy off center parts. If I zero I gain before the brake clamps, the axis would rotate due to gravity until either the brake stops the rotation or until the error becomes large enough for the P gain to stop it.
Well possibly not. Beforehand the Integrator would have ramped up to an amount to offset gravity. Setting the I gain to zero would then freeze this offset so it should not fall. This is unlike setting the MaxI to zero which would then cause it to fall until enough error for P gain to overcome gravity.
Re: Servo control for a braked 4th axis
You're right, I had missed that. As long as no change is introduced it should continue to hold position.