Integral windup

From Wikipedia, the free encyclopedia

Integral windup, also known as integrator windup[1] or reset windup,[2] refers to the situation in a PID controller where a large change in setpoint occurs (say a positive change) and the integral term accumulates a significant error during the rise (windup), thus overshooting and continuing to increase as this accumulated error is unwound (offset by errors in the other direction).


This problem can be addressed by

  • Initializing the controller integral to a desired value, for instance to the value before the problem[citation needed]
  • Increasing the setpoint in a suitable ramp
  • Conditional Integration: disabling the integral function until the to-be-controlled process variable (PV) has entered the controllable region[3]
  • Preventing the integral term from accumulating above or below pre-determined bounds[4]
  • Back-calculating the integral term to constrain the process output within feasible bounds.[5][6][3]
  • Clegg Integrator: Zeroing the integral value every time the error is equal to, or crosses zero.[7] This avoids having the controller attempt to drive the system to have the same error integral in the opposite direction as was caused by a perturbation, but induces oscillation if a non-zero control value required to maintain the process at setpoint.[8]


Integral windup particularly occurs as a limitation of physical systems, compared with ideal systems, due to the ideal output being physically impossible (process saturation: the output of the process being limited at the top or bottom of its scale, making the error constant). For example, the position of a valve cannot be any more open than fully open and also cannot be closed any more than fully closed. In this case, anti-windup can actually involve the integrator being turned off for periods of time until the response falls back into an acceptable range.

This usually occurs when the controller's output can no longer affect the controlled variable, or if the controller is part of a selection scheme and it is selected right.

Integral windup was more of a problem in analog controllers. Within modern distributed control systems and programmable logic controllers, it is much easier to prevent integral windup by either limiting the controller output, limiting the integral to produce feasible output,[5] or by using external reset feedback, which is a means of feeding back the selected output to the integral circuit of all controllers in the selection scheme so that a closed loop is maintained.


  1. ^ "Microchip Application Note AN532: Servo Control of a DC Motor" (PDF). Microchip Technology, Inc. 1997. p. 4. Retrieved 2014-01-07.
  2. ^ M. Tham. "Discretised PID Controllers" (PDF). Archived from the original (PDF) on 2020-03-28. Retrieved 2014-01-07.
  3. ^ a b Astrom, Karl Johan; Rundqwist, Lars (1989). "Integrator Windup and How to Avoid It" (PDF). 1989 American Control Conference. pp. 1693–1698. doi:10.23919/ACC.1989.4790464. S2CID 36848080.
  4. ^ Beauregard, Brett. "Improving the Beginner's PID: Reset Windup". Project Blog. Retrieved 2021-11-21.
  5. ^ a b Cooper, Douglas. "Integral (Reset) Windup, Jacketing Logic and the Velocity PI Form". Retrieved 2014-02-18.
  6. ^ Aström, Karl (2002). Control System Design (PDF). pp. 228–231.
  7. ^ Zheng, Jinchuan; Guo, Yuqian; Fu, Minyue; Wang, Youyi; Xie, Lihua (2007). "Improved Reset Control Design for a PZT Positioning Stage". 2007 IEEE International Conference on Control Applications. pp. 1272–1277. doi:10.1109/CCA.2007.4389410. hdl:1959.13/937597. ISBN 978-1-4244-0442-1. S2CID 14877444.
  8. ^ Hollot, C.V. (1997). "Revisiting Clegg Integrators: Periodicity, Stability and IQCs". IFAC Proceedings Volumes. 30 (27): 31–38. doi:10.1016/S1474-6670(17)41154-2.