Your Equation

Library / Control engineering / CTL-11

Control engineering

Integrator rate with back-calculation antiwindup

Rate of change of the integral state when the actuator saturates.

Ref
CTL-11
Rev
v1
Field
Control engineering
Result
ẋI [units/s]

With a saturating actuator the controller can ask for more than the actuator can give. Ordinary integration keeps adding Kie to xI while the output is clipped, so the integral state grows ("winds up") and must be unwound later by opposite error. Back-calculation adds the term (u − uraw)/Tt, which is zero when nothing is clipped and pulls xI back when the output saturates. A smaller tracking time Tt pulls harder.

Rate of change of the integral state when the actuator saturates. The second term pulls the integrator back towards the value that would not saturate, so it does not wind up while the output is clipped.

Calculator

Solve for
units/s
0.510
1/s
0.15
0.26
−26
110
s
0.15
  • Unsaturated demand, uraw = Kpe + xI8
  • Saturated output, u5
  • Demand beyond the limit, uraw − u3
  • Integrator rate without antiwindup, Kie1.5 units/s

What drives the result

Each variable is moved across its typical range while the others stay at the values above. The longest bar is the key driver.

Integrator rate (units/s) current value −1.5 units/s
TtTracking time constantKey driver
−28.50.9
KpProportional gain
−25.51.5
KiIntegral gain
−2.712
xIIntegrator state
−5.51.5
umaxActuator limit (symmetric, plus or minus)
−5.51.5
eTracking error
−60.68
  • At the defaults the controller demands 8 but the actuator can give only 5. Plain integration would keep adding 1.5 per s, whereas back-calculation gives −1.5 per s and pulls the integrator back.
  • If the error stayed at 3, the integrator would settle where the rate is zero, with the demand sitting at umax + KieTt = 6.5, only 1.5 above the limit. Without the correction the demand would keep climbing, and unwinding would take as long as the wind-up did. When the output is not clipped the extra term vanishes, and the rate is simply Kie = 1.5 per s.
Chart data as tables

Ranked variables

VariableTypical rangeLowest resultHighest resultSwing (units/s)Local stepChange in result
Tt Tracking time constant0.1 to 5 s−28.50.929.4+10%−18.2 %
Kp Proportional gain0.5 to 10 −25.51.527+10%+40 %
Ki Integral gain0.1 to 5 1/s−2.71214.7+10%−10 %
xI Integrator state−2 to 6 −5.51.57+0.16 +10.7 %
umax Actuator limit (symmetric, plus or minus)1 to 10 −5.51.57+10%−33.3 %
e Tracking error0.2 to 6 −60.686.68+10%+30 %

Sweep of Tracking time constant

Tracking time constant (s)Integrator rate (units/s)
0.1−28.5
0.7125−2.711
1.325−0.7642
1.938−0.04839
2.550.3235
3.1630.5514
3.7750.7053
4.3880.8162
50.9

Sweep one variable

Integrator rate (units/s)Hover, touch, or use the arrow keys on the chart
−30−25−20−15−10−50 12345 Tracking time constant (s) now −1.5

Variables and how each one contributes

ẋI

Integrator rate

Result · units/s

What the equation gives you. Everything else feeds it.

Kp

Proportional gain

· typical 0.5 to 10

The proportional gain. Raises the unsaturated demand Kpe + xI, and with it the amount the antiwindup term has to remove when saturated. Raising it by 10 % (to 2.2) moves the result by +40 %, from −1.5 to −2.1 units/s.

Ki

Integral gain

1/s · typical 0.1 to 5

The integral gain in 1/s: the rate at which xI would grow per unit error. Directly raises the winding-up term Kie that the back-calculation term has to oppose. Raising it by 10 % (to 0.55) moves the result by −10 %, from −1.5 to −1.35 units/s.

e

Tracking error

· typical 0.2 to 6

The tracking error r − y, held constant here. A larger error increases both the demand and the rate of integration. Raising it by 10 % (to 3.3) moves the result by +30 %, from −1.5 to −1.95 units/s.

xI

Integrator state

· typical −2 to 6

The current value of the integral state, in actuator units. A larger integral state raises the unsaturated demand and so the amount of correction. Raising it by 10 % (to 2.2) moves the result by +13.3 %, from −1.5 to −1.7 units/s.

umax

Actuator limit (symmetric, plus or minus)

· typical 1 to 10

The actuator limit. The output is clipped at ±umax. Raising the limit reduces how far the demand exceeds it, and above the demand the correction disappears. Raising it by 10 % (to 5.5) moves the result by −33.3 %, from −1.5 to −1 units/s.

Tt

Tracking time constant

s · typical 0.1 to 5

The tracking time constant in s: how fast the integrator is pulled back while saturated. A larger Tt pulls back more slowly, so the integrator winds up further before it is checked. Raising it by 10 % (to 1.1) moves the result by −18.2 %, from −1.5 to −1.227 units/s.

Worked example with the values above

  1. Unsaturated demand: uraw = Kpe + xI = 2 × 3 + 2 = 8.
  2. Saturated output: u = clip(8, ±5) = 5.
  3. ẋI = Kie + (u − uraw)/Tt = 1.5 + (5 − 8)/1 = −1.5 units/s.

Assumptions and limits

  • Back-calculation antiwindup with a symmetric actuator limit, and a constant error over the interval considered.
  • The derivative term is excluded or zero, and rate limits are not modelled (they may need a separate mechanism).

Common mistakes

  • Setting Tt very small. The correction becomes so stiff that noise and discrete-time effects can make the integrator chatter.
  • Resetting or freezing the integrator by hand without a plan for the transition, which produces a bump when the controller leaves saturation.

Statistics and uncertainty

The result is a sum of two terms of opposite sign, so it can be small when each is large. Near the saturation limit the clipping is a hard nonlinearity, so a small noise on e can switch the correction on and off, and some implementations smooth or limit its effect.

Where it is used

  • Preventing the large overshoot that follows a long period of throttle, valve or control-surface saturation.
  • Reviewing a controller implementation for the common fault of unbounded integrator growth.

Maths you need

  • Saturation: an output clipped at its limits
  • Integral action: xI accumulates the error over time

Related formulas

Practise this formula