Velocity PID vs Distance PID

What is the difference between velocity PID and Distance PID and what changes do I have to make to the standard labview code?

http://www.chiefdelphi.com/forums/showpost.php?p=1114338&postcount=4
*
*

I had seen that post, but I am still concerned about trying to tune a loop designed for displacement and not velocity. 1. Is this a legitimate concern 2. How can I create/implement/code a PID control in labview for velocity

If you understand a position-controlling PID implementation, you might try to do a speed-controlling PID the same way, with one slight difference. Instead of using the output of the PID as the motor control value directly, use the output of the PID to add to or subtract from the motor control value instead. That extra integration step at the end lets you tune the control the way you are used to.

It’s a legitimate concern in the sense that you have to do things somewhat differently when tuning a control for a plant that does not contain an integrator (from the designated plant input to the designated plant output) compared to one which does.

If your plant output is distance and your plant input is voltage to the motor, then the plant contains an integrator. If your plant output is speed and your plant input is voltage to the motor, then the plant does not contain an integrator.

There are many different ways to proceed. There is no one “right” way.

You can tune the “I” gain of the PID the way you would normally tune the “P” gain, and tune the “P” gain the way you would normally tune the “D” gain.

You can integrate the output from the PID. Then you can tune the PID in much the same manner that you would tune it for distance.

You can add a feedforward signal to the output of the PID.

You can command current instead of voltage. Then your plant has some integrator behavior and you may be able to tune it for speed in much the same manner that you would tune for position (I haven’t heard yet of any teams successfully doing it this way, so this is pure speculation).

You can write your own home-brew custom control.
*
*