@@ -7,7 +7,35 @@ subcategory = "Fundamentals"
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
: [Anti-Windup Control]({{< relref "anti_windup_control.md" >}})
|
||||
|
||||
Bumpless transfer consists in switching between two controllers without creating a discontinuity (a "bump") in the control signal \\(u\\).
|
||||
|
||||
A bump occurs because the inactive controller has internal states (integrators, filters) that are not consistent with the signal currently applied to the plant.
|
||||
At the switch, its output differs from the active one, and \\(u\\) jumps.
|
||||
|
||||
The principle is to keep the inactive controller "warm": its states must be consistent with the applied signal \\(u\_a\\) before the switch.
|
||||
Anti-windup is a special case of this, with \\(u\_a = \text{sat}(u)\\).
|
||||
|
||||
An example of bumpless transfer between manual and PID control is provided by MathWorks: [Bumpless Control Transfer Between Manual and PID Control](https://www.mathworks.com/help/simulink/slref/bumpless-control-transfer-between-manual-and-pid-control.html).
|
||||
|
||||
|
||||
## Controllers with an explicit integrator (PID) {#controllers-with-an-explicit-integrator--pid}
|
||||
|
||||
The integrator of the offline controller is driven to track the applied signal using back-calculation:
|
||||
|
||||
\begin{equation}
|
||||
\dot{x}\_i = K\_i e + \frac{1}{T\_t} \left( u\_a - u \right)
|
||||
\end{equation}
|
||||
|
||||
This requires the integrator to be explicit, which is one of the reasons why PID controllers are convenient.
|
||||
If the PID is the last element of the chain, its output is \\(u\\) and the tracking is exact.
|
||||
|
||||
|
||||
## Controllers made of biquads {#controllers-made-of-biquads}
|
||||
|
||||
Filters without integrator (notch, low-pass, lead, lag) have fast dynamics and do not need any tracking.
|
||||
The offline chain is simply run in parallel, fed with the same error signal \\(e\\), and its states converge by themselves.
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
Reference in New Issue
Block a user