control//feedback control//PID controller//integral action//integral windup
Integral windup is the overshoot a loop suffers when its actuator saturates while the integral term keeps adding up the error: the controller stores a demand the actuator could never deliver, and once the output reaches the setpoint that stored excess has to be worked off by an error of the opposite sign. An oven that heats at full power for ten minutes and then overshoots by twenty degrees, or a drone that climbs past its altitude after a long climb at full thrust, is often winding up.
Integral windup is the overshoot a loop suffers when its actuator saturates while the integral term keeps adding up the error: the controller stores a demand the actuator could never deliver, and once the output reaches the setpoint that stored excess has to be worked off by an error of the opposite sign. An oven that heats at full power for ten minutes and then overshoots by twenty degrees, or a drone that climbs past its altitude after a long climb at full thrust, is often winding up.
It happens whenever a large setpoint change or a large disturbance pins the actuator for longer than the loop's normal response. During that time nothing the controller computes reaches the plant: the loop is open (saturation). The proportional and derivative terms recover the moment the error changes; the integral cannot, because its value is the memory of the whole episode.
no protection: overshoot36 % settling6.3 s clamping: overshoot1 % settling3.8 s A PI loop (kp 3, ki 3.00) whose actuator stops at ±1.50 takes a setpoint step from 0 to 1. Without protection the integral winds up while the actuator is pinned: the output overshoots by 36 % and settles in 6.3 s. With clamping it overshoots by 1 % and settles in 3.8 s.
With no protection, watch the integral (in steel) keep climbing while the delivered actuation sits at the limit, then the output overshoot while the integral comes back down. Switch to clamping and the integral waits instead, and the overshoot almost disappears. Lower the actuator limit to make the episode longer, or raise it until the actuator never saturates and the two runs coincide.
Clamping, or conditional integration, stops integrating while the actuator is saturated and the error would push it further in. It is the simplest protection and the one in the figure; ros2_control's PID calls it conditional integration, and Simulink's PID block offers it as clamping.
Back-calculation feeds the difference between the commanded and the delivered actuation back into the integrator, bleeding it down at a rate set by a tracking time constant, so the integral follows what the actuator really does. The same two tools offer it as their other method.
The velocity form of the algorithm computes changes of the output instead of the output itself; when the output is clamped nothing accumulates, so it avoids most windup by construction. Rockwell's PIDE instruction works in that form (PID implementation).
Any controller state can wind up behind a saturation, and a loop handed from manual to automatic without resetting its integral jumps for the same reason (bumpless transfer, in controller).