Windup occurs when the controller output reaches a physical limit and the integral term keeps accumulating, producing a large overshoot when the output leaves saturation. This guide explains the phenomenon, three anti-windup strategies, and other PID limitations: dead time, noise, valve stiction, nonlinearity and interaction between loops.
The windup problem
The integral term of a PID accumulates the error for as long as it exists. It works well as long as the actuator can follow the command. But every actuator has limits: a valve does not open beyond 100 %, a drive does not exceed its maximum frequency, a heater does not deliver more than its rated power.
When the calculated output exceeds that limit, the actuator saturates and the error keeps existing. The integrator, which does not know its command is not being carried out, keeps adding. Its value grows far beyond what the actuator can apply. This is the windup phenomenon, or integral term saturation.
What happens afterwards
When the PV finally reaches the SP, the error changes sign, but the integrator is loaded with an enormous value. The output stays saturated while the integral discharges, and the PV keeps moving away. The result is a large, slow overshoot, much bigger than the loop tuning would predict.
The classic case is the start-up of a furnace. The operator sets 400 °C, the heater delivers 100 % for an hour, the error is large the whole time and the integrator accumulates. On reaching 400 °C the output stays at 100 % until the integrator empties and the temperature overshoots by tens of degrees.
When it appears
| Situation | Why it saturates |
|---|---|
| Start-up of a process | Large error for a long time |
| Large setpoint change | The actuator cannot give what the PID asks for |
| Valve closed by an interlock | The controller does not find out |
| Actuator or pump failure | The command has no effect |
| Cascade controller with the secondary loop saturated | The primary keeps integrating |
| Switch from manual to automatic with a loaded integrator | Abrupt output |
Anti-windup strategies
The reference literature describes three main remedies:
- Stop integrating while the actuator is saturated or the PV is outside the controllable range. It is the simplest: if the output is at the limit and the error pushes in the same direction, nothing accumulates.
- Clamp the integral term between fixed maximum and minimum bounds. It prevents unlimited growth, although it does not tell whether the chosen limit is right for each operating point.
- Back-calculation: the difference between the requested output and the actual output is measured and fed back to the integrator so it discharges. It is a very common solution in commercial controllers because it keeps what the controller believes consistent with what the actuator does.
Besides these three, there are complementary practical measures:
- Feedback of the actual position of the actuator when available (for example, the measured valve position), so the controller knows the effective output.
- Tracking of the cascade controller when the secondary loop saturates.
- Setpoint ramps that prevent the initial error from being large at start-ups and production changes.
- Output limits consistent with the actuator: do not declare 0 to 100 % if the valve is physically useful only between 10 and 90 %.
Numerical example (illustrative)
The values are made up. A temperature loop with Kp = 2 %/°C and Ti = 100 s, with the SP at 100 °C and the PV at 20 °C at start-up. Error: 80 °C.
- Proportional output: 2 × 80 = 160 %. The actuator saturates at 100 %.
- Without anti-windup, the integrator keeps adding at a rate of Kp · e / Ti = 2 × 80 / 100 = 1.6 % per second. If the error stayed at that value for 600 s (10 minutes), it would have accumulated about 960 % of virtual output, even though the actuator delivers only 100 %.
- When the PV finally reaches 100 °C and the error is zero, the integral term keeps those hundreds of percent. To discharge it, the error must be negative for a prolonged time: the PV overshoots 100 °C and the output only drops below 100 % when the integrator falls below 100.
- With anti-windup by stopping integration, the integrator stays at a value close to what is needed to hold the new SP, and the output leaves saturation as soon as the error allows.
In real numbers the effect depends on the process, but the logic is the same: the integrator accumulated during saturation is what causes the overshoot.
How to detect it on the trend
Windup is recognized by reviewing the history of PV, SP and output. The signature is an output stuck at 0 or 100 % for a long time, followed by a PV that crosses the SP and keeps moving away while the output stays at the limit. If the error has already changed sign and the output does not move, the integrator is discharging its accumulated value. It is worth keeping these trends from each start-up: they let you compare before and after enabling anti-windup and show that the remedy worked.
Other PID limitations
The PID is a general tool, not a universal one. There are cases where, however much you tune, the result is poor, and it is worth knowing why.
Large dead time
If the effect of the MV takes a long time to reach the PV, the controller acts on old data. Gains have to be low to maintain stability and the response becomes slow. Solutions include compensating the dead time with a process model, moving the sensor closer to the actuator or using feedforward control.
Measurement noise
The derivative amplifies high-frequency noise. A filter helps, but filtering too much makes the derivative useless, so there is a trade-off. Alternatives include damping the transmitter, improving the shielding of the signal cable or turning off the derivative and operating as PI.
Valve friction and backlash
A valve with friction (stiction) does not move until the command exceeds a threshold, and then it jumps. With integral action active, the loop falls into a limit cycle: small, persistent oscillations around the SP that no tuning eliminates. Wear reducers, such as a dead band on the output, avoid moving the valve for tiny changes, but the underlying solution is a healthy positioner and maintenance.
Process nonlinearity
Many processes change gain with the operating point: a linear-characteristic valve in a system where the pressure drop varies, or pH, which has an S-shaped curve. Parameters that are good at one point are not good at another. Options: gain scheduling with parameter sets per zone, or linearizing the signal with a compensating characteristic.
Interaction between loops
When two loops influence the same variables, for example temperature and flow of the same heat exchanger, each disturbs the other. If both are tuned aggressively, they fight. One practice is to make one fast and the other slow, separating their time scales.
Abrupt setpoint changes
The PID responds to a step with spikes in the proportional and derivative terms. Setpoint weighting and derivative on measurement smooth that response without harming disturbance rejection.
Measurable disturbances
If a disturbance can be measured before it affects the process, waiting for it to show up as an error is wasted time. That is what feedforward and cascade control are for, covered in another guide in this series.
Common mistakes
- Assuming the PID block has anti-windup. Test what happens when the output reaches the limit.
- Declaring output limits the actuator does not have. The controller believes it gives 100 % when the valve delivers less.
- Correcting a valve limit cycle with more derivative. It makes the problem worse.
- Tuning with the process in an atypical state. With the valve almost closed or at full load, the parameters will not be good in normal operation.
- Leaving setpoint ramps out. Start-ups with huge errors accentuate saturation.
- Switching to automatic without bumpless transfer.
- Suppressing output saturation alarms. An output stuck at 0 or 100 % for hours is a warning that should be seen.
Checklist
- Controller output limits equal to those of the real actuator.
- Anti-windup confirmed with a test that forces saturation.
- Saturated-output alarm after a defined time.
- Ramps or rate limits on the SP at start-ups.
- Actual valve position available or tracking configured.
- Valve friction and dead band reviewed.
- Derivative filter and transmitter damping reviewed.
- Cascades with primary-loop tracking when the secondary saturates.
- Gain scheduling where the process changes gain.
Engineering support
Saturation and limit-cycle problems are shared among the controller, the valve and the process, which is why they usually require reviewing all three at once. To design the strategy and the control criteria, see engineering design and studies, delivered remotely and worldwide. To check how each loop behaves under saturation before the plant is handed over, see testing and commissioning, in Colombia or elsewhere on request. Write to us through contact.
Related guides
- ABB ACS880 drive
- Siemens SINAMICS drive
- Schneider Altivar drive
- Motor control center (MCC)
- PID controller: what each action does
- Ziegler-Nichols tuning and alternatives
- Cascade, ratio and feedforward control
References
- Wikipedia, PID controller (windup and its remedies, derivative filter, setpoint weighting, dead band).
- Kuphaldt, T. R., Lessons in Industrial Instrumentation, chapters on process dynamics and control strategies (CC BY 4.0).
- Woolf, P., Chemical Process Dynamics and Controls, University of Michigan (CC BY 3.0).
- Åström, K. J. and Hägglund, T., Advanced PID Control, ISA (general reference; its content is not reproduced).
Frequently asked questions
What symptom indicates a loop has windup?
The process variable overshoots the setpoint by a lot after a period when the output sat at 0 or 100 %, for example after a start-up, a shutdown or a large setpoint change. The controller is slow to react because it must first discharge the accumulated integral value.
Do all controllers have anti-windup?
No. Many industrial controllers include it, but generic PLC function blocks often leave it to the programmer. Check the block documentation and test the behavior under saturation instead of assuming it.
Does an oscillating loop always need different tuning?
No. The oscillation can come from valve friction or dead band, from a slow sensor or from interaction with another loop. Before changing parameters, rule out mechanical and measurement problems.
Why does a PID work poorly with a lot of dead time?
Because it acts on information that is already old. By the time the controller sees the error, it has already over- or under-corrected several times. For those processes, low gains or dead-time compensation structures are used.