All articles
Theory July 18, 2026 2 min read

Integral windup and anti-windup, explained

Why a saturated actuator makes an integral controller overshoot badly — and how back-calculation fixes it.

Integral windup is one of the most common causes of poor real-world PID behaviour. It appears whenever the actuator hits a limit — a valve fully open, a heater at 100 %, a motor at maximum torque. The integral term keeps charging while the error is large, even though the extra command cannot reach the process.

What goes wrong

While the output is saturated, the error stays large and the integral term keeps accumulating. By the time the process finally catches up, the integral has wound up to a huge value, so the controller keeps driving hard well past the setpoint — producing a large overshoot and a long recovery.

The fix: back-calculation

Anti-windup by back-calculation recomputes the integral each sample so that the unsaturated controller output sits exactly on the saturation limit. The integrator stops charging the moment the actuator is maxed out, and resumes cleanly when headroom returns.

I ← (u_limit − P − D) / Ki   while saturated
Temperature loop: with vs without anti-windup

Electric-oven example (K = 2.5, τ = 120 s, L = 15 s). Without anti-windup the PV overshoots badly after the heater was saturated at 100%.

When to enable it

In PID Solver 360 you can toggle anti-windup and watch the difference on the controller-output chart. Enable it whenever your loop has output limits — which is almost always. Pair it with:

  • Realistic uMin / uMax on the actuator (0–100 % on a heater, not ±∞).
  • A derivative filter if you use Kd — windup and derivative spikes often appear together after commissioning.

For the full digital implementation, see PID Control Documentation and the temperature tuning guide.

Try it in the solver

Put this into practice — model your process, auto-tune it and check the stability margins.

Launch PID Solver 360