next up previous contents index
Next: 8.2 Tim's Experience Up: 8. PID Axis Tuning Previous: 8. PID Axis Tuning   Contents   Index

8.1 Ray's Experience

All three variables (6+ really) look at what is happening between commanded and actual position in the emc. My comments below may be a bit unsatisfying for those who are accustomed to very precise things but they come from a number of years of twiddling with servo controls.

P - process variable.

-----------

This is the gain control. It is a bit like the volume on a music system. If it is set too low you can't follow the lyrics. If it's set too high the windows rattle and the neighbors fuss.

Some authors refer to P as proportional band. Think of it as a pair of lines, one ahead of the commanded position and one behind it. Actual position should be somewhere between the lines. If the actual position is farther behind then that below line the controller will run the axis flat out to reach the slower line. Conversely, if the actual position is ahead of the above line the controller will do all it can to bring actual position down to that upper bound.

As long as the actual position is between the lines, the controller will ramp gain up and down so that actual approaches commanded.

The larger the P number the narrower the space between these lines. Set P too low and your axis works like a dedicated couch potato during super bowl or world soccer finals - even a fire may not rouse it. This condition is rather easy to spot because the axis is sluggish.

Set P too high and your axis will develop palsy. On most machines you can hear this condition by putting your ear to the motor. You may want to do this when others aren't watching - or use a stethoscope or a long socket extension - or perhaps the graph function.

Palsy will sound like a hum or grind when the motor is sitting still or moving very slowly. You can also feel palsy if you wrap your hand around the ball screw or grip the drive belt or pulley. (disclaimer - This demonstration is done by a professional with only three remaining fingers, don't try this at home)

Deadband may mask too much P when a motor is sitting still so you may want to move the axis very slowly and listen to the sounds around each step. If the axis keeps up with commanded position at high speed and during acceleration and there is not a lot of ringing, grinding, jumping at very low speed, then you are real close.

 

I - Integral variable.

-----------

Integral works a bit like a shock absorber. Any change in either actual or commanded position gets rounded off or averaged in so that acceleration/deceleration brought about by P is absorbed and released more slowly over time.

No integral and you get the full P effect of change in commanded position. Too much integral and the axis seems to wander off on it's own without much regard for P. A little integral may smooth out some of the frequency jumps when a stepper is running right near one of those troublesome rates.

 

D - Derivative variable

------------

Derivative works like passing gear for acceleration or a jake-brake for stopping. Whenever commanded position changes rapidly, d will really kick the amp/motor in the *** to follow the rate-of-change of the axis command rather than the difference between commanded and actual position.

Derivative works against inertia so if you've got lots of iron to start or stop dial some in. But derivative will increase palsy so you have to balance it against gain.

 

FF1-3 Feed Forward variables

---

I know very little about the effect of these variables.  My first experience with them is while using EMC.  I need to include an idea from Jon Elson and his work with servos and his Bridgeport.  He has used a value up to 8.0 for FF1 with a somewhat reduced acceleration to very successfully minimize following error.  The relevant portions of his ini file are:

DEFAULT_VELOCITY =      0.75 
MAX_VELOCITY =          1.5  
DEFAULT_ACCELERATION =  2.0  
MAX_ACCELERATION =      2.0  
MAX_VELOCITY =          1.2  
P =                   100.000  
I =                     0.000  
D =                     0.000  
FF0 =                   0.000  
FF1 =                   7.500  
FF2 =                   0.000

Your results will no doubt vary.

 

T - Test

----

The final proof of tuning is in the cutting. So after your best guess with all the watching, hearing, feeling done to each axis, get out a chunk of soft aluminum, a small end or ball mill, and begin to mill circles or arcs that pass 90 degrees between each pair of axis. I like outside circles because you can hold them up to the light and see how the finish looks near the quadrants.

Digital systems will give you some steps as one axis approaches zero and the other approaches the set feedrate so don't expect a perfect mirror arc finish. Backlash and backlash compensation also affect the appearance here. Servo drives will work better than steppers. (digital vs analog) But the smoother the saw teeth the better.

Be prepared to spend some metal on this! And make a list of your settings, changes, and a better/worse judgment about the result of each change. On occasion I've spent pages of paper and made piles of swarf to get a stubborn machine to where I wanted it.

 

Good luck and may the electromotive force be with you.

Ray <rehenry@up.net>


next up previous contents index
Next: 8.2 Tim's Experience Up: 8. PID Axis Tuning Previous: 8. PID Axis Tuning   Contents   Index
root 2003-05-26