[Home]PiD

LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org

Showing revision 2
This page just collects some random info on PID for the moment.

Consider a closed-loop spindle controller driving a VFD, where voltage in = speed out.

P-gain alone won't work. As soon as the spindle is at speed, then the P-output is zero, and the VFD demand is zero. So, you need a high gain, and are always just enough below the setpoint to give the necessary voltage output. (if it is 10V = 1000rpm and you want 500rpm, then with a P-gain of 1 you will have the output of 5V when the actual speed is 999.5 rpm, but that is likely to be too high a gain to be stable. Generally in closed-loop spindle control you end up using the I-term to provide a constant value for the P-term to modify.

FF0 would let you pre-program the speed/voltage factor in, then the P, I and D terms be small modifiers to that, so the gains can be lower, and the loop stability higher.

When I talk of the mathematical "order" I mean in the sense of time derivatives.

The closed-loop spindle is velocity-result & velocity command. A motor/tach machine is position-result and velocity command. A torque-mode servo machine is position-result and acceleration command (neglecting friction) a stepper system is position-result and position command.

So, FF0 would be useful in velocity-velocity or position-position systems, FF1 in position-velocity, and FF2 in position-acceleration systems.


LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org
This page is read-only. Follow the BasicSteps to edit pages. | View other revisions | View current revision
Edited July 12, 2011 5:49 am by Jthornton (diff)
Search:
Published under a Creative Commons License