@@ -9,6 +9,40 @@ subcategory = "Fundamentals"
|
||||
Tags
|
||||
:
|
||||
|
||||
Anti-windup control deals with the problem of **actuator saturation**.
|
||||
|
||||
When the control signal \\(u\\) requested by the controller exceeds the actuator limits, the actual actuator input is clipped and the plant no longer responds as the controller expects.
|
||||
If the controller contains an integrator, it keeps integrating the error even though the plant input is saturated: the integral state "winds up" to a very large value.
|
||||
When the error finally changes sign, this large integral state has to be unwound first, which leads to large overshoot, long settling time, and possibly instability.
|
||||
|
||||
This is mostly relevant for [Voice Coil Actuators]({{< relref "voice_coil_actuators.md" >}}), which have a limited current/force range and are usually controlled with high-gain integral action.
|
||||
It is much less relevant for [Piezoelectric Actuators]({{< relref "piezoelectric_actuators.md" >}}).
|
||||
|
||||
In order to implement anti-windup, the integrator usually has to be **explicit** in the controller (i.e. a separate integral term whose state can be modified).
|
||||
This is one of the reasons why the PID controller is so useful: the integral action is clearly separated from the other terms.
|
||||
|
||||
|
||||
### Anti-windup strategies {#anti-windup-strategies}
|
||||
|
||||
|
||||
#### Conditional integration (integrator clamping) {#conditional-integration--integrator-clamping}
|
||||
|
||||
The integrator is simply stopped (or reset) when the actuator is saturated.
|
||||
For instance, the integration is frozen as long as \\(u \neq \text{sat}(u)\\), possibly only if the error would further increase the saturation (i.e. same sign of \\(u\\) and \\(e\\)).
|
||||
|
||||
|
||||
#### Back-calculation {#back-calculation}
|
||||
|
||||
The difference between the saturated and the requested control signal, \\(e\_s = \text{sat}(u) - u\\), is fed back to the integrator input through a gain \\(1/T\_t\\):
|
||||
|
||||
\begin{equation}
|
||||
\dot{x}\_i = K\_i e + \frac{1}{T\_t} \left( \text{sat}(u) - u \right)
|
||||
\end{equation}
|
||||
|
||||
When there is no saturation, \\(e\_s = 0\\) and the controller behaves as usual.
|
||||
When saturated, the integrator state is driven so that \\(u\\) tracks the saturation limit.
|
||||
The tracking time constant \\(T\_t\\) sets how fast the integrator is unwound (a common choice is \\(T\_t = \sqrt{T\_i T\_d}\\) or \\(T\_t = T\_i\\)).
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user