Update content - 2026-10-07
Deploy / deploy (push) Successful in 5s

This commit is contained in:
2026-10-07 16:20:18 +02:00
parent ac45d100b5
commit b826ca3340
5 changed files with 149 additions and 1 deletions
@@ -0,0 +1,22 @@
+++
title = "A unified framework for the study of anti-windup designs"
author = ["Dehaeze Thomas"]
draft = true
+++
Tags
:
Reference
: (<a href="#citeproc_bib_item_1">Kothare et al. 1994</a>)
Author(s)
: Kothare, M. V., Campo, P. J., Morari, M., &amp; Nett, C. N.
Year
: 1994
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Kothare, Mayuresh V., Peter J. Campo, Manfred Morari, and Carl N. Nett. 1994. “A Unified Framework for the Study of Anti-Windup Designs.” <i>Automatica</i> 30 (12): 1869–83. doi:<a href="https://doi.org/10.1016/0005-1098(94)90048-5">10.1016/0005-1098(94)90048-5</a>.</div>
</div>
+34
View File
@@ -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}
+29 -1
View File
@@ -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}
+40
View File
@@ -0,0 +1,40 @@
+++
title = "CiA402"
author = ["Dehaeze Thomas"]
draft = false
category = "Electronics"
+++
Tags
:
CiA 402 (IEC 61800-7-201) is the CAN in Automation standard drive profile for servo drives, stepper drives and frequency inverters.
It defines a common object dictionary and state machine, so that drives from different vendors behave the same way.
It was defined for CANopen and is also used over EtherCAT (CoE, CANopen over EtherCAT).
## Main elements {#main-elements}
- **Control word** (0x6040) and **status word** (0x6041): commands sent to the drive (enable, fault reset, ...) and its feedback.
- **State machine**: the drive has to be walked through fixed states before it moves: Switch on disabled, Ready to switch on, Switched on, Operation enabled, Fault.
- **Modes of operation** (0x6060 requested, 0x6061 actual):
- Cyclic Synchronous Position (CSP): a target position is sent every cycle (e.g. 1 ms). Used for real-time control from a master.
- Cyclic Synchronous Velocity (CSV) and Torque (CST): same with velocity or torque setpoints.
- Profile Position (PP) and Profile Velocity (PV): the drive generates its own trajectory to a target.
- Homing: the drive runs its own homing procedure.
- **Standard objects**: target position (0x607A), actual position (0x6064), velocity and acceleration limits, position factor / scaling.
## Use with a real-time target (e.g. Speedgoat) {#use-with-a-real-time-target--e-dot-g-dot-speedgoat}
- The master needs the ESI file and a PDO mapping with at least control word, target position, status word and actual position.
- A small state machine (e.g. Stateflow) brings the drive to _Operation enabled_ before setpoints are sent.
- In CSP, the drive internal loop still does the actual control, the master only provides setpoints.
- A generic CiA 402 block can be reused across compatible drives.
The ESI file, PDO mapping, units, optional objects and vendor quirks are still drive specific.
## Bibliography {#bibliography}
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
</div>
+24
View File
@@ -0,0 +1,24 @@
+++
title = "Stick-Slip Piezo Stage"
author = ["Dehaeze Thomas"]
draft = false
category = "Equipment"
subcategory = "Mechanical Platforms"
+++
Tags
:
## Xeryon {#xeryon}
<https://xeryon.com/>
## Smartact {#smartact}
## Bibliography {#bibliography}
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
</div>