notes-tech-proportionalIntegralControl

PID control.

" In the real world, PID design is very hairy. You have a huge number of things that go wrong. Integral windup is a biggie... even a very small DC offset causes the integrator to rapidly saturate. The derivative step greatly magnifies noise, especially higher-frequency noise. You have to be really careful about any noise, inputs or outputs that may reach the limits of your amplifiers or actuators. If they do, you're sunk. Pure PID controllers certainly don't work well under those conditions.

And, of course, PID controllers generally aren't appropriate if your actuators are binary or highly quantized themselves.

If you're implementing a PID controller digitally, you usually find that you have quantization effects, sampling rate effects, and numerical error. These manifest themselves with integrator windup, with small (but significant) values being lost in the repeated addition of small numbers to big ones, with noise that doesn't happen to sum to zero once it's sampled and quantized, and so on.

And, of course, if your process is nonlinear, or your actuators move more easily in one direction than in another, PID controllers become orders of magnitude harder to build.

None of these errors are insurmountable, but a practical, stable, real-world implementation of a PID controller rapidly becomes something much more than pure PID control. " -- http://lambda-the-ultimate.org/node/485#comment-3667