Professional Documents
Culture Documents
Model Description
This example shows how to use anti-windup schemes to prevent integration wind-up in PID
controllers when the actuators are saturated. We use the PID Controller block in Simulink®
which features two built-in anti-windup methods, back-calculation and clamping, as well as a
tracking mode to handle more complex scenarios.
The plant to be controlled is a saturated first-order process with dead-time.
We start by opening the model.
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.
Performance Without Using Anti-Windup
First, we examine the effect of saturation on the closed-loop when the saturation model is not
considered by the PID Controller block. Simulating the model in Figure 1 generates the results
shown below.
Figure 2: Setpoint vs. measured output with no anti-windup.
Figure 3: Controller output and saturated input with no anti-windup.
Figures 2 and 3 highlight two of the problems that arise when controlling a system with input
saturation:
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.
Configuring the Block for Anti-Windup Based on Back-Calculation
The back-calculation anti-windup method uses a feedback loop to discharge the PID Controller's
internal integrator when the controller hits specified saturation limits and enters nonlinear
operation. To enable anti-windup, go to the PID Advanced tab in the block's dialog; select Limit
output; and enter the plant's saturation limits. Then, select back-calculation from the Anti-
windup method menu and specify the back-calculation gain Kb. The inverse of this gain is the
time constant of the anti-windup loop. In this example, the back-calculation gain is chosen to be
1. For more information on how to choose this value, see Reference [1].
Figure 4: Enabling the back-calculation anti-windup method.
Once back-calculation is enabled, the block has an internal tracking loop that discharges the
Integrator output.
Figure 11: Simulink model of PID controller with cascaded actuator dynamics.
To open this model, type sldemo_antiwindupactuator in a MATLAB terminal.
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].
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.