Control & Instrumentation Engineering DISCUSSION

PID loop still oscillates after Ziegler-Nichols tuning: how do I detune it properly?

Started by karim PID tuningZiegler-Nicholsloop stabilityintegral windupvalve stiction
5 replies 248 views 6 participants
Latest activity · 30 Sep 2026

PID loop still oscillates after Ziegler-Nichols tuning: how do I detune it properly?

#1

I tuned a temperature loop with the Ziegler-Nichols closed-loop method. The loop reached sustained oscillation at a controller gain of 8 with a period of 40 s, and I entered the PID settings from the table. The response to a setpoint step overshoots a lot and rings for several cycles before it settles.

Did I apply the method correctly, and what is the sensible way to make the loop calmer without making it useless?

Community replies 5

Re: PID loop still oscillates after Ziegler-Nichols tuning: how do I detune it properly?

#2

With ultimate gain Ku = 8 and ultimate period Pu = 40 s, the classic table gives for PID: Kc = 0.6 × Ku = 4.8, Ti = Pu / 2 = 20 s, Td = Pu / 8 = 5 s. For PI only: Kc = 0.45 × Ku = 3.6 and Ti = Pu / 1.2 = 33 s.

So the numbers may well be right and the result is still what you see. The method was designed for quarter-amplitude decay, where each peak is a quarter of the one before. That is fast at rejecting disturbances, but it is oscillatory by design and leaves little margin if the process gain changes.

Re: PID loop still oscillates after Ziegler-Nichols tuning: how do I detune it properly?

#3

Treat the table values as a starting point and back off. Cutting the gain to about half of the Ziegler-Nichols value and keeping or lengthening Ti is a common first move; it costs some speed and removes most of the ringing. Change one parameter at a time and repeat the same step test so the results are comparable.

If the overshoot only matters on setpoint changes, leave the tuning for disturbances alone and ramp the setpoint, or use a controller structure where the proportional and derivative terms act on the measurement instead of the error.

Re: PID loop still oscillates after Ziegler-Nichols tuning: how do I detune it properly?

#4

Check the controller form before comparing numbers with any table. The rules assume the standard form, where the gain multiplies all three terms: output = Kc × (e + (1 / Ti) × integral of e + Td × de/dt). A parallel-form controller with independent Kp, Ki and Kd needs Ki = Kc / Ti = 0.24 per second and Kd = Kc × Td = 24 s for the settings above.

Units catch people too: integral may be in seconds, minutes or repeats per minute, and some controllers use proportional band, PB = 100 / Kc in percent, so a gain of 4.8 is a band of about 21 percent.

Re: PID loop still oscillates after Ziegler-Nichols tuning: how do I detune it properly?

#5

A model-based rule gives you a tuning knob instead of a fixed recipe. Do an open-loop step test and fit the process gain K, time constant τ and dead time θ. The lambda (IMC) rule for a PI controller is Kc = τ / (K × (λ + θ)) and Ti = τ, where λ is the closed-loop time constant you choose. For K = 2, τ = 60 s, θ = 10 s and λ = 60 s, Kc = 60 / (2 × 70) = 0.43 and Ti = 60 s.

A larger λ gives a slower, more robust loop; a λ close to the dead time is aggressive.

Re: PID loop still oscillates after Ziegler-Nichols tuning: how do I detune it properly?

#6

If the loop keeps cycling no matter how much you detune, look at the hardware. A sticking control valve produces a limit cycle, typically a saw-tooth in the controller output and a squarer wave in the measurement, that tuning cannot remove. Put the controller in manual: if the oscillation stops, the cause is inside this loop, tuning or valve; if it continues, it is a disturbance from elsewhere. Then make small manual output steps and see whether the measurement responds to each one.

Also make sure anti-windup is active. When the output saturates during a large setpoint change the integral keeps accumulating, and the overshoot afterwards is the integral unwinding, not a tuning problem.

TEP COMMUNITY