What is PID?
PID is a method of feedback control: using information from a sensor to set the output of an actuator in order to accurately reach a target. In this demonstration, the actuator is the position (or velocity, if the Velocity Mode
checkbox is checked) of the grey "car" (box). The black box indicates the target position. Since this is a simulation, the position of the car is "sensed" by storing that information.
PID is a simple, but powerful, algorithm for calculating the value to use for the actuator from the sensor input and target.
-
First, the
error
is calculated by subtracting the sensor value from the target. -
Next, the
integral
andderivative
of theerror
are calculated. A simple approximation of theintegral
can be computed by summing all pasterror
values. Thederivative
can be approximated by subtracting the most recenterror
value from the lasterror
value, though this method is very noisy. -
Finally, the output is set according to
P*error + I*integral + D*derivative
.
Generally, the P
and I
terms work together to move the car to the target, while the D
term is used to slow the car down and prevent it from overshooting the target (too much). In position mode, the P
term is unable to completely eliminate the error (since the position will be proportional to the error, and thus requires a non-zero error to have a non-zero position). Due to this effect, it is often more useful to set the velocity of the car instead.
Some further thoughts on feedback control and PID are available from a presentation I gave: abridged_pid.pdf. Many of the effects discussed there can be observed in this simulation.