Académique Documents
Professionnel Documents
Culture Documents
The PID Controller has been tuned with saturation ignored using the PID tuner of Simulink® Control Design™.
The plant has known input saturation limits of [-10, 10], which are accounted for in the Saturation block labeled Plant
Actuator. The PID Controller block in Simulink features two built-in anti-windup methods that allow the PID Controller
block to account for the available information about the plant input saturation.
https://la.mathworks.com/help/simulink/slref/anti-windup-control-using-a-pid-controller.html 1/12
2/9/2019 Anti-Windup Control Using a PID Controller - MATLAB & Simulink - MathWorks América Latina
Figures 2 and 3 highlight two of the problems that arise when controlling a system with input saturation:
https://la.mathworks.com/help/simulink/slref/anti-windup-control-using-a-pid-controller.html 2/12
2/9/2019 Anti-Windup Control Using a PID Controller - MATLAB & Simulink - MathWorks América Latina
1. When the setpoint value is 10, the PID control signal reaches a steady-state at about 24, outside the range of the
actuator. The controller is therefore operating in a nonlinear region where increasing the control signal has no effect
on the system output, a condition known as winding up. Note that the dc-gain of the plant is unity, and therefore
there is no reason for the controller output to have a steady-state value outside the actuator's range.
2. When the setpoint value becomes 5, there is a considerable delay before the PID controller output returns to within
the actuator range.
Designing the PID controller to account for the effect of saturation will improve its performance by allowing it to operate
in the linear region most of the time and recover quickly from nonlinearity. Anti-windup circuitry is one way to achieve
this.
Once back-calculation is enabled, the block has an internal tracking loop that discharges the Integrator output.
https://la.mathworks.com/help/simulink/slref/anti-windup-control-using-a-pid-controller.html 3/12
2/9/2019 Anti-Windup Control Using a PID Controller - MATLAB & Simulink - MathWorks América Latina
Figures 6 and 7 illustrate the result of simulating the model with anti-windup activated. Note how quickly the PID control
signal returns to the linear region and how fast the loop recovers from saturation.
https://la.mathworks.com/help/simulink/slref/anti-windup-control-using-a-pid-controller.html 4/12
2/9/2019 Anti-Windup Control Using a PID Controller - MATLAB & Simulink - MathWorks América Latina
https://la.mathworks.com/help/simulink/slref/anti-windup-control-using-a-pid-controller.html 5/12
2/9/2019 Anti-Windup Control Using a PID Controller - MATLAB & Simulink - MathWorks América Latina
Figure 7 shows that the controller output u(t) and the saturated input SAT(u) coincide with each other because Limit
output is enabled.
To better visualize the effect of anti-windup, Figure 8 illustrates the plant measured output y(t) with and without anti-
windup.
https://la.mathworks.com/help/simulink/slref/anti-windup-control-using-a-pid-controller.html 6/12
2/9/2019 Anti-Windup Control Using a PID Controller - MATLAB & Simulink - MathWorks América Latina
https://la.mathworks.com/help/simulink/slref/anti-windup-control-using-a-pid-controller.html 7/12
2/9/2019 Anti-Windup Control Using a PID Controller - MATLAB & Simulink - MathWorks América Latina
Figure 10 shows that the controller output u(t) and the saturated input SAT(u) coincide with each other because Limit
output is enabled.
1. The plant's saturation limits are known and can be entered into the dialog of the block.
2. The PID Controller output signal is the only signal feeding the actuator.
These conditions may be restrictive when handling general anti-windup scenarios. The PID Controller block features a
tracking mode that allows the user to set up a back-calculation anti-windup loop externally. The following two examples
are considered to illustrate the use of tracking mode for anti-windup purposes:
Figure 11: Simulink model of PID controller with cascaded actuator dynamics.
In this case, a successful anti-windup strategy requires feeding back the actuator output to the tracking port of the PID
Controller block as shown in Figure 11. To configure the tracking mode of the PID Controller block, go to the PID
Advanced tab in the block's dialog; select Enable tracking mode; and specify the gain Kt. The inverse of this gain is
the time constant of the tracking loop. For more information on how to choose this gain, see Reference [1].
https://la.mathworks.com/help/simulink/slref/anti-windup-control-using-a-pid-controller.html 8/12
2/9/2019 Anti-Windup Control Using a PID Controller - MATLAB & Simulink - MathWorks América Latina
Figure 12: Enabling the tracking mode of the PID Controller block.
Figures 13 and 14 show that the plant's measured output y(t) and the controller output u(t) are responding almost
immediately to changes in the setpoint. Without the anti-windup circuit, these responses would be sluggish with long
delays.
https://la.mathworks.com/help/simulink/slref/anti-windup-control-using-a-pid-controller.html 9/12
2/9/2019 Anti-Windup Control Using a PID Controller - MATLAB & Simulink - MathWorks América Latina
To accurately build a back-calculation anti-windup loop, the tracking signal should subtract the contribution of the
feedforward signal. This allows the PID Controller block to know its share of the effective control signal applied to the
actuator.
Figure 15: Simulink model of PID controller with feedforward, and plant input saturation.
The feedforward gain is selected to be unity here because the plant has a dc-gain of 1.
https://la.mathworks.com/help/simulink/slref/anti-windup-control-using-a-pid-controller.html 10/12
2/9/2019 Anti-Windup Control Using a PID Controller - MATLAB & Simulink - MathWorks América Latina
Figures 16 and 17 show that the plant's measured output y(t) and the controller output u(t) are responding almost
immediately to changes in the setpoint. When the setpoint value is 10, note how in Figure 17 the controller output u(t)
reduces to be within the range of the actuator.
Summary
The PID Controller block supports several features that allow it to handle controller windup issues under commonly
encountered industrial scenarios.
References
1. K. Åström, T. Hägglund, Advanced PID Control, ISA, Research Triangle Park, NC, August 2005.
https://la.mathworks.com/help/simulink/slref/anti-windup-control-using-a-pid-controller.html 12/12