Integral windup


Integral windup, also known as integrator windup or reset windup, refers to the situation in a PID feedback controller where a large change in setpoint occurs and the integral term accumulates a significant error during the rise, thus overshooting and continuing to increase as this accumulated error is unwound. The specific problem is the excess overshooting.

Solutions

This problem can be addressed by
Integral windup particularly occurs as a limitation of physical systems, compared with ideal systems, due to the ideal output being physically impossible. 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 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.
In addition, integral terms, in general, can have unwanted effects. Different situations may require different integral behaviors. For example, in a navigation system based on bearing and the error between target and actual bearings, the integral term has the desirable ability to correct the bearing after a deviation and restore the course to the desired one. Conversely, a car speed cruise control should not attempt to equally balance errors in one direction with errors in the other. For example, a period of time spent below the speed set point should not be balanced by an equal integral above the speed set point. In this latter case, it is desirable to zero the integrator every time the error is zero or when the error changes sign. A convenient and robust method to determine when the error changes sign or is equal to zero is to multiply the current error by the previous error. If the product is zero or negative then the integrator should be zeroed.