PID control loops can be very useful in automation and in many different applications. They can be used to control a feeder used in a loss in weight or gain in weight system, or to control pumps that need to run to a setpoint. They can also be used in motion applications with different position targets while maintaining the position against external forces. To illustrate the functional flexibility of PID control loops, I will describe a parallel PID implementation. This example is illustrated below with a block diagram of this control algorithm.
There are a couple ways to fine-tune PID loops. If you have a system model, you can calculate the necessary gain values which would make the tuning process easier. There is also the Zeigler Nichols method which uses an overall system gain and which then gives you equations to calculate the specific KP, KI, and KD gains. Without a system model or some of the info necessary to use the Zeigler Nichols method, your only option is to watch the process variable change and make small changes to the gains based on your observations. Some best practices when tuning a PID loop this way are to start with KP to get the response needed out of the system. Once you have the desired response move on to KI, and KD, correct any steady state error and setpoint overshooting.