Nothing below changes the controller gains. The only difference is what the integrator does while the actuator is pinned at its limit — and that alone decides whether the loop overshoots.
Every second the error persists it grows, with no way to know the reason is that the actuator is already flat out. All of it must be paid back, in the wrong direction.
Stop integrating while saturated in the direction that makes it worse. One condition, no new parameter, and it cannot make the loop less stable.
Keep integrating but subtract the clipped amount over a tracking time Tt. Smoother and tunable; a short Tt unwinds harder.
With enough actuator headroom all three behave identically. Windup is a large-signal effect: fine on nudges, terrible on big steps.
A small setpoint change never saturates the actuator, so the loop behaves impeccably. If your loop is fine on nudges and terrible on step changes, stop retuning it: you are looking at windup. A mistuned loop overshoots proportionally at every step size.
Watch the controller output, not the process value. If it stays pinned at 100% after the process has crossed the setpoint, the integrator is unwinding: the gap between crossing and the output coming off the stop is the overshoot being manufactured in front of you.
Clamping is what you fit when you want the problem gone this afternoon: safer to deploy, one condition, cannot make things worse. Back-calculation is smoother and, with Tt near Ti as a starting point, reached the setpoint in about half the time clamping takes at the cost of about one percent overshoot. Most commercial controllers implement one of the two and never tell you which.
Lengthening the integral time reduces the overshoot, and also slows every ordinary correction the loop will make for the rest of its life, and leaves offsets hanging around longer. You would degrade the normal case to protect against the exceptional one. That is what anti-windup is for.
A loop left in automatic while the plant is isolated integrates for hours against an error it cannot fix, then slams the actuator open the moment service is restored. The same for a cascade whose inner loop has saturated: the outer loop has no authority and winds up however well tuned. A heating valve on the coldest morning, a level loop in a shutdown, manual-to-auto transfer (why bumpless transfer exists).
Change the size of the step. Windup is a large-signal effect: a loop that overshoots badly on a big setpoint change and behaves perfectly on a small one is winding up, not mistuned. A mistuned loop overshoots proportionally at every step size. The other tell is the output trace — if the controller output sits pinned at its limit well after the process value has passed the setpoint, you are watching an integrator unwind.
Because it treats the symptom and costs you the thing the integral was for. Lengthening Ti does reduce the overshoot, but it also slows down every normal correction and leaves offsets hanging around longer. Anti-windup gives you the fast integral action for ordinary disturbances and protects you only during saturation, which is the point — with enough actuator headroom, a loop with anti-windup behaves exactly like one without.
Clamping is safer to deploy: one condition, no extra parameter, and it cannot make things worse. Back-calculation is smoother, and because Tt is tunable it can settle noticeably faster — on the default case here it reaches the setpoint in about half the time clamping takes, at the cost of about one percent overshoot. Set Tt near Ti as a starting point. Most commercial controllers implement one of the two and never tell you which.
Anywhere an actuator hits a stop and stays there: a heating valve on the coldest morning of the year, a level loop during a shutdown, a cascade whose inner loop is saturated so the outer one has no authority at all, and any loop left in automatic while the plant is isolated for maintenance — that last one winds up for hours and slams the actuator open the instant the plant is returned to service. Manual-to-auto transfer is the other classic, which is why bumpless transfer exists.
A single first-order plant with a known gain and time constant, an ideal PI controller in parallel form with no derivative term, an actuator that is a hard clip between zero and its limit with no dynamics of its own, a perfect measurement with no noise or filtering, and either a step setpoint change from rest or a loop holding its setpoint whose plant input is cut off for a while and then restored, with the controller left in automatic throughout. Not modelled: dead time, which changes the tuning question entirely; actuator rate limits and slew, which cause a related but distinct problem; derivative action and its own kick on a step; measurement noise and filter lag; discrete sampling effects; higher-order or non-linear plant; or manual-to-auto transfer.
Releases in which this page changed, newest last. Derived from the archived copy of every release, not from notes written afterwards — so it reflects what actually shipped. Site-wide passes are left out; they are in the full changelog.