PID controllers have some drawbacks that limit their effectiveness. To start with, they work best with systems that have only one input and output (single input, single output − SISO). With these systems, you have only one variable to control and only one actuation to apply. You also can control systems that have more inputs/outputs with PID controllers if you apply decoupling techniques to the different variables so the final overall control involves a number of SISO PID controllers. Although possible, this technique is not easily implemented because it depends heavily on how tight the correlation between the variables is.
Another challenge for PID controllers (and for every control algorithm) is that the plant you need to control might not behave in a linear fashion. In other words, the output for a given input does not exhibit a linear response. Some examples of nonlinearity are dead zones, saturations, and hysteresis. Another challenge is that plant dynamics might also change over time. This can happen due to changes on the plant loads, normal wear and tear, or mechanical effectiveness in mechanical elements. To compensate for plant behavior changing over time, you need expert users to recalibrate your PID gains, which drives up costs for both labor and downtime.
Lastly, when tuning PID controllers, you might not achieve optimal overall system performance because stability is a concern, and tuning for better performance might lead to losing control over the system.
This paper examines several techniques to improve system performance and PID behavior.