So I understand that a heuristic way of determining values for PID would be to use the Ziegler method, having zero I and D and then adjusting P until you have oscillations. Wouldn't the setpoint change what the P gain should be to oscillate? So if setpoint is very far off you might be coming into the oscillation region with a larger rate of change and would need a larger P to have it oscillate back, whereas with a setpoint relatively close you wouldn't need as much.

Would you simply tune to what is more likely being close or being far from the setpoint when control begins?


1 Answer 1


You are correct; this is the biggest disadvantage of a PID controller. Oscillation will happen as a result of system inertia, but there's no way to "inform" the PID controller as to how much inertia it should expect.

Another factor would be actuator saturation. A cruise control system that would floor a gas pedal trying to get from 0 to 25 would also floor the gas pedal trying to get from 0 to 100; so in that instance there's not going to be too much difference regarding the initial transient.

Generally speaking, the best approach if you don't know the process is simply to tune for the anticipated scenario. I've seen brute force methods try to swap control gains depending on the scenario at hand, if you expected distinctly different operating conditions (like startup, normal operation, and shutdown).

If you know the process but don't want to get into more complex controls then you can try to estimate the required control signal given current conditions. This is known as "feed-forward" control, and leaves your PID controller to make up the difference between the result of your feed-forward controller and the actual system output. This is very common in industrial controls, especially motor speed/torque control. You input rotor inertia, load inertia, etc., along with the motor parameters and can generally ballpark the current required to achieve a specific speed profile. The PID controller then just makes up the difference.

Finally, if you know the process and are willing to get more in-depth, model-based control would be the approach. Techniques like state feedback controls exist that allow you to take a model of your system and use that model to define the controller.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.