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 erroris calculated by subtracting the sensor value from the target.
- 
					Next, the integralandderivativeof theerrorare calculated. A simple approximation of theintegralcan be computed by summing all pasterrorvalues. Thederivativecan be approximated by subtracting the most recenterrorvalue from the lasterrorvalue, 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.