Update Content - 2021-08-27
This commit is contained in:
@@ -1,194 +0,0 @@
|
||||
+++
|
||||
title = "Multivariable control systems: an engineering approach"
|
||||
author = ["Thomas Dehaeze"]
|
||||
draft = true
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Multivariable Control](multivariable_control.md)
|
||||
|
||||
Reference
|
||||
: ([Albertos and Antonio 2004](#orga6ef935))
|
||||
|
||||
Author(s)
|
||||
: Albertos, P., & Antonio, S.
|
||||
|
||||
Year
|
||||
: 2004
|
||||
|
||||
|
||||
## [Decentralized Control](decentralized_control.md) and Decoupled Control {#decentralized-control--decentralized-control-dot-md--and-decoupled-control}
|
||||
|
||||
|
||||
### Introduction {#introduction}
|
||||
|
||||
Decentralized control is decomposed into two steps:
|
||||
|
||||
1. decoupled the plant into several subsystems
|
||||
2. control the subsystems
|
||||
|
||||
The initial effort of decoupling the system results in subsequent easier design, implementation and tuning.
|
||||
|
||||
Decentralized control tries to control multivariable plants by a suitable decomposition into SISO control loops.
|
||||
If the process has strong coupling or conditioning problems, centralized control may be required.
|
||||
It however requires the availability of a precise model.
|
||||
|
||||
Two approaches can be used to control a coupled system with SISO techniques:
|
||||
|
||||
- **decentralized control** tries to divide the plant and design _independent_ controllers for each subsystems.
|
||||
Two alternative arise:
|
||||
- neglect the coupling
|
||||
- carry out a _decoupling_ operation by "canceling" coupling by transforming the system into a diagonal or triangular structure bia a transformation matrix
|
||||
- **cascade control**
|
||||
|
||||
|
||||
### Mutli-Loop Control, Pairing Selection {#mutli-loop-control-pairing-selection}
|
||||
|
||||
The strategy called _multi-loop control_ consists of first proper input/output pairing, and then design of several SISO controllers.
|
||||
In this way, a complex control problem is divided into several simpler ones.
|
||||
|
||||
The multi-loop control may not work in strongly coupled systems.
|
||||
Therefore, a methodology the access the degree of interaction between the loops is needed.
|
||||
|
||||
|
||||
#### [Relative Gain Array](relative_gain_array.md) {#relative-gain-array--relative-gain-array-dot-md}
|
||||
|
||||
The Relative Gain Array (RGA) \\(\Lambda(s)\\) is defined as:
|
||||
|
||||
\begin{equation}
|
||||
\Lambda(s) = G(s) \times (G(s)^T)^{-1}
|
||||
\end{equation}
|
||||
|
||||
The RGA is scaling-independent and controller-independent.
|
||||
These coefficients can be interpreted as the ratio between the open-loop SISO static gain and the gain with "perfect" control on the rest of the loops.
|
||||
|
||||
For demanding control specifications, the values of \\(\Lambda\\) car be drawn as a function of frequency.
|
||||
In this case, at frequencies important for control stability robustness (around the peak of the sensitivity transfer function), if \\(\Lambda(j\omega)\\) approaches the identity matrix, stability problems are avoided in multi-loop control.
|
||||
|
||||
|
||||
### Decoupling {#decoupling}
|
||||
|
||||
In cases when multi-loop control is not effective in reaching the desired specifications, a possible strategy for tackling the MIMO control could be to transform the transfer function matrix into a diagonal dominant one.
|
||||
This strategy is called **decoupling**.
|
||||
|
||||
[Decoupled Control](decoupled_control.md) can be achieved in two ways:
|
||||
|
||||
- feedforward cancellation of the cross-coupling terms
|
||||
- based on state measurements, via a feedback law
|
||||
|
||||
|
||||
#### Feedforward Decoupling {#feedforward-decoupling}
|
||||
|
||||
A pre-compensator (Figure [1](#org7023330)) can be added to transform the open-loop characteristics into a new one as chosen by the designer.
|
||||
This decoupler can be taken as the inverse of the plant provided it does not include RHP-zeros.
|
||||
|
||||
<a id="org7023330"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/albertos04_pre_compensator_decoupling.png" caption="Figure 1: Decoupler pre-compensator" >}}
|
||||
|
||||
**Approximate decoupling**:
|
||||
To design low-bandwidth loops, insertion of the inverse DC-gain before the loop ensures decoupling at least at steady-state.
|
||||
If further bandwidth extension is desired, an approximation of \\(G^{-1}\\) valid in low frequencies can be used.
|
||||
|
||||
Although at first glance, decoupling seems an appealing idea, there are some drawbacks:
|
||||
|
||||
- as decoupling is achieved via the coordination of sensors and actuators to achieve an "apparent" diagonal behavior, the failure of one the actuators may heavily affects all loops.
|
||||
- a decoupling design (inverse-based controller) may not be desirable for all disturbance-rejection tasks.
|
||||
- many MIMO non-minimum phase systems, when feedforward decoupled, increase the RHP-zero multiplicity so performance limitations due to its presence are exacerbated.
|
||||
- decoupling may be very sensitive to modeling errors, specially for ill-conditionned plants
|
||||
- feedback decoupling needs full state measurements
|
||||
|
||||
|
||||
#### SVD Decoupling {#svd-decoupling}
|
||||
|
||||
A matrix \\(M\\) can be expressed, using the [Singular Value Decomposition](singular_value_decomposition.md) as:
|
||||
|
||||
\begin{equation}
|
||||
M = U \Sigma V^T
|
||||
\end{equation}
|
||||
|
||||
where \\(U\\) and \\(V\\) are orthogonal matrices and \\(\Sigma\\) is diagonal.
|
||||
|
||||
The SVD can be used to obtain decoupled equations between linear combinations of sensors and linear combinations of actuators.
|
||||
In this way, although losing part of its intuitive sense, a decoupled design can be carried out even for non-square plants.
|
||||
|
||||
If sensors are multiplied by \\(U^T\\) and control actions multiplied by \\(V\\), as in Figure [2](#org2de6de7), then the loop, in the transformed variables, is decoupled, so a diagonal controller \\(K\_D\\) can be used.
|
||||
Usually, the sensor and actuator transformations are obtained using the DC gain, or a real approximation of \\(G(j\omega)\\), where \\(\omega\\) is around the desired closed-loop bandwidth.
|
||||
|
||||
<a id="org2de6de7"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/albertos04_svd_decoupling.png" caption="Figure 2: SVD decoupling: \\(K\_D\\) is a diagonal controller designed for \\(\Sigma\\)" >}}
|
||||
|
||||
The transformed sensor-actuator pair corresponding to the maximum singular value is the direction with biggest "gain" on the plant, that is, the combination of variables being "easiest to control".
|
||||
|
||||
In ill-conditioned plants, the ratio between the biggest and lower singular value is large (for reference, greater than 20).
|
||||
They are very sensitive to input uncertainty as some "input directions" have much bigger gain than other ones.
|
||||
|
||||
SVD decoupling produces the most suitable combinations for independent "multi-loop" control in the transformed variables, so its performance may be better than RGA-based design (at the expense of losing physical interpretability).
|
||||
If some of the vectors in \\(V\\) (input directions) have a significant component on a particular input, and the corresponding output direction is also significantly pointing to a particular output, that combination is a good candidate for an independent multi-loop control.
|
||||
|
||||
|
||||
### Conclusions {#conclusions}
|
||||
|
||||
In this chapter, the control of systems with multiple inputs and outputs is discussed using SISO-based tools, either directly or after some multivariable decoupling transformations.
|
||||
|
||||
Multi-loop strategies, if suitable, may present th advantages of fault tolerance, as well as simplicity.
|
||||
However, in some cases, tuning may be difficult and coupling may severely limit their performance.
|
||||
|
||||
Decoupling is based on mathematical transformations of the system models into diagonal form.
|
||||
Feedforward decoupling can be used in many cases.
|
||||
Feedback decoupling achieves its objective if state is measurable and system is minimum-phase.
|
||||
However, decoupling may be very sensitive to modelling errors and it is not the optimal strategy for disturbance rejection.
|
||||
|
||||
Cascade control is widely used in industry to improve the behaviour of basic SISO loops via the addition of extra sensors and actuators.
|
||||
However, ease of tuning requires that different time constants are involved in different subsystems.
|
||||
In general, addition of extra sensors and actuators in a SISO or MIMO loop, will improve achievable performance and/or tolerance to modelling errors.
|
||||
The level of improvement must be traded off against the cost of additional instrumentation.
|
||||
|
||||
|
||||
## Implementation and Other Issues {#implementation-and-other-issues}
|
||||
|
||||
There are two main categories for the implementation of MIMO control:
|
||||
|
||||
- Decentralized, Decoupled, Cascade
|
||||
- Centralized, optimization based
|
||||
|
||||
A fundamental reason to use cascade and decentralized control in most practical applications is because they require less modelling effort.
|
||||
Other advantages of cascade and decentralized control are:
|
||||
|
||||
- its behaviour can be easily understood
|
||||
- standard equipment can be used (PID controllers, etc.)
|
||||
- their decoupled behavior enables easier tuning with model-free strategies
|
||||
- decentralized implementation tends to be more fault-tolerant, as individual loops will try to keep their set-points even in the case some other components have failed.
|
||||
|
||||
|
||||
### [Anti-Windup Control](anti_windup_control.md) {#anti-windup-control--anti-windup-control-dot-md}
|
||||
|
||||
In practice, it is possible that an actuator saturate.
|
||||
In such case, the feedback path is broken, and this has several implications:
|
||||
|
||||
- unstable processes: the process output might go out of control
|
||||
- multi-loop and centralized control: even with stable plants, opening a feedback path may cause the overall loop to become unstable
|
||||
|
||||
The wind-up problem can appear with integral action regulators: during significative step changes in the set point, the integral of the error keeps accumulation and when reaching the desired set-point the accumulated integral action produces a significant overshoot increment.
|
||||
In SISO PID regulators, anti-windup schemes are implemented by either stopping integration if the actuator is saturated or by implementing the following control law:
|
||||
|
||||
\begin{equation}
|
||||
u = K(r - y) - K T\_D \frac{dy}{dt} + \int K T\_i^{-1} (r - y) + T\_t^{-1} (u\_m - u) dt \label{eq:antiwindup\_pid}
|
||||
\end{equation}
|
||||
|
||||
where \\(u\\) is the calculated control action and \\(u\_m\\) is the actual control action applied to the plant.
|
||||
In non-saturated behaviour, \\(u=u\_m\\) and the equation is the ordinary PID.
|
||||
In saturation, \\(u\_m\\) is a constant and the resulting equations drive \\(u\\) down towards \\(u\_m\\) dynamically, with time constant \\(T\_T\\).
|
||||
|
||||
|
||||
### [Bumpless Transfer](bumpless_transfer.md) {#bumpless-transfer--bumpless-transfer-dot-md}
|
||||
|
||||
When switching on the regulator, significant transient behavior can be seen and the controller may saturate the actuators.
|
||||
The solution is similar to that of the wind-up phenomenon: the regulator should be always on, carrying out calculations by using \eqref{eq:antiwindup_pid}.
|
||||
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<a id="orga6ef935"></a>Albertos, P., and S. Antonio. 2004. _Multivariable Control Systems: An Engineering Approach_. Advanced Textbooks in Control and Signal Processing. Springer-Verlag. <https://doi.org/10.1007/b97506>.
|
@@ -1,5 +0,0 @@
|
||||
+++
|
||||
title = "Dynamic decoupling of robot manipulators"
|
||||
author = ["Thomas Dehaeze"]
|
||||
draft = false
|
||||
+++
|
@@ -3,14 +3,14 @@ title = "Design, modeling and control of nanopositioning systems"
|
||||
author = ["Thomas Dehaeze"]
|
||||
description = "Talks about various topics related to nano-positioning systems."
|
||||
keywords = ["Control", "Metrology", "Flexible Joints"]
|
||||
draft = false
|
||||
draft = true
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [Piezoelectric Actuators]({{< relref "piezoelectric_actuators" >}}), [Flexible Joints]({{< relref "flexible_joints" >}})
|
||||
: [Piezoelectric Actuators](piezoelectric_actuators.md), [Flexible Joints](flexible_joints.md)
|
||||
|
||||
Reference
|
||||
: ([Fleming and Leang 2014](#org9f0983e))
|
||||
: ([Fleming and Leang 2014](#orgc8028e0))
|
||||
|
||||
Author(s)
|
||||
: Fleming, A. J., & Leang, K. K.
|
||||
@@ -783,11 +783,11 @@ Year
|
||||
|
||||
### Amplifier and Piezo electrical models {#amplifier-and-piezo-electrical-models}
|
||||
|
||||
<a id="orgc11b95b"></a>
|
||||
<a id="orgded1d91"></a>
|
||||
|
||||
{{< figure src="/ox-hugo/fleming14_amplifier_model.png" caption="Figure 1: A voltage source \\(V\_s\\) driving a piezoelectric load. The actuator is modeled by a capacitance \\(C\_p\\) and strain-dependent voltage source \\(V\_p\\). The resistance \\(R\_s\\) is the output impedance and \\(L\\) the cable inductance." >}}
|
||||
|
||||
Consider the electrical circuit shown in Figure [1](#orgc11b95b) where a voltage source is connected to a piezoelectric actuator.
|
||||
Consider the electrical circuit shown in Figure [1](#orgded1d91) where a voltage source is connected to a piezoelectric actuator.
|
||||
The actuator is modeled as a capacitance \\(C\_p\\) in series with a strain-dependent voltage source \\(V\_p\\).
|
||||
The resistance \\(R\_s\\) and inductance \\(L\\) are the source impedance and the cable inductance respectively.
|
||||
|
||||
@@ -911,4 +911,4 @@ The bandwidth limitations of standard piezoelectric drives were identified as:
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<a id="org9f0983e"></a>Fleming, Andrew J., and Kam K. Leang. 2014. _Design, Modeling and Control of Nanopositioning Systems_. Advances in Industrial Control. Springer International Publishing. <https://doi.org/10.1007/978-3-319-06617-2>.
|
||||
<a id="orgc8028e0"></a>Fleming, Andrew J., and Kam K. Leang. 2014. _Design, Modeling and Control of Nanopositioning Systems_. Advances in Industrial Control. Springer International Publishing. <https://doi.org/10.1007/978-3-319-06617-2>.
|
||||
|
@@ -1,26 +0,0 @@
|
||||
+++
|
||||
title = "Mechatronics and robotics: new trends and challenges"
|
||||
author = ["Thomas Dehaeze"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
Reference
|
||||
: ([Indri and Oboe 2020](#orge6b9fea))
|
||||
|
||||
Author(s)
|
||||
: Indri, M., & Oboe, R.
|
||||
|
||||
Year
|
||||
: 2020
|
||||
|
||||
- [ ] Read Chapter 4
|
||||
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<a id="orge6b9fea"></a>Indri, Marina, and Roberto Oboe. 2020. _Mechatronics and Robotics: New Trends and Challenges_. CRC Press.
|
@@ -1,111 +0,0 @@
|
||||
+++
|
||||
title = "Advanced Motion Control Design"
|
||||
author = ["Thomas Dehaeze"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
:
|
||||
|
||||
|
||||
Reference
|
||||
: ([Levine 2011](#org5f2e773)), chapter 27
|
||||
|
||||
Author(s)
|
||||
: Levine, W. S.
|
||||
|
||||
Year
|
||||
: 2011
|
||||
|
||||
|
||||
## Introduction {#introduction}
|
||||
|
||||
The industrial state of the art control of motion systems can be summarized as follows.
|
||||
Most systems, by design, are either decoupled, or can be decoupled using static input-output transformations.
|
||||
Hence, most motion systems and their motion software architecture use SISO control design methods and solutions.
|
||||
Feedback design is mostly done in the frequency domain, using [Loop-Shaping](loop_shaping.md) techniques.
|
||||
A typical motion controller has a PID structure, with a low pass at high frequencies and one or two notch filters to compensate flexible dynamics.
|
||||
In addition to the feedback controller, a feedforward controller is applied with acceleration, velocity from the reference signal.
|
||||
The setpoint itself is a result of a setpoint generator with jerk limitation profiles (see [Trajectory Generation](trajectory_generation.md)).
|
||||
If the requirements increase, the dynamic coupling between the various DOFs can no longer be neglected and more advanced MIMO control is required.
|
||||
|
||||
<div class="important">
|
||||
<div></div>
|
||||
|
||||
Step by step procedure:
|
||||
|
||||
1. Interaction Analysis
|
||||
2. Decoupling
|
||||
3. Independent SISO design
|
||||
4. Sequential SISO design
|
||||
5. Norm-based MIMO design
|
||||
|
||||
</div>
|
||||
|
||||
<div class="definition">
|
||||
<div></div>
|
||||
|
||||
Centralized control
|
||||
: the transfer function matrix of the controller is allowed to have any structure
|
||||
|
||||
Decentralized control
|
||||
: diagonal controller transfer function, but constant decoupling manipulations of inputs and outputs are allowed
|
||||
|
||||
Independent decentralized control
|
||||
: a single loop is designed without taking into account the effect of earlier or later designed loops
|
||||
|
||||
Sequential decentralized control
|
||||
: a single loop is designed with taking into account the effect of all earlier closed loops
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
## Motion Systems {#motion-systems}
|
||||
|
||||
Here, we focus on the control of linear time invariant electromechanical motion systems that have the same number of actuators and sensors as Rigid Body modes.
|
||||
The dynamics of such systems are often dominated by the mechanics, such that:
|
||||
|
||||
\begin{equation}
|
||||
G\_p(s) = \sum\_{i=1}^{N\_{rb}} \frac{c\_i b\_i^T}{s^2} + \sum\_{i=N\_{rb} + 1}^{N} \frac{c\_ib\_i^T}{s^2 + 2 \xi\_i \omega\_i s + \omega\_i^2}
|
||||
\end{equation}
|
||||
|
||||
with \\(N\_{rb}\\) is the number of rigid body modes.
|
||||
The vectors \\(c\_i,b\_i\\) span the directions of the ith mode shapes.
|
||||
|
||||
If the resonance frequencies \\(\omega\_i\\) are high enough, the plant can be approximately decoupled using static input/output transformations \\(T\_u,T\_y\\) so that:
|
||||
|
||||
\begin{equation}
|
||||
G\_{yu} = T\_y G\_p(s) T\_u = \frac{1}{s^2} \begin{bmatrix}
|
||||
m & 0 & & \dots & & 0 \\\\\\
|
||||
0 & m & & & & \\\\\\
|
||||
& & m & \ddots & & \vdots \\\\\\
|
||||
\vdots & & \ddots & I\_x & & \\\\\\
|
||||
& & & & I\_y & 0 \\\\\\
|
||||
0 & & \dots & & 0 & I\_z
|
||||
\end{bmatrix} + G\_{\text{flex}}(s)
|
||||
\end{equation}
|
||||
|
||||
|
||||
## Feedback Control Design {#feedback-control-design}
|
||||
|
||||
|
||||
### [Loop-Shaping](loop_shaping.md) - The SISO case {#loop-shaping--loop-shaping-dot-md--the-siso-case}
|
||||
|
||||
The key idea of loopshaping is the modification of the controller such that the open-loop is made according to specifications.
|
||||
The reason this works well is that the controller inters linearly into the open-loop transfer function \\(L(s) = G(s)K(s)\\).
|
||||
However, in practice all specifications are of course given in terms of the final system performance, that is, as closed-loop specifications.
|
||||
So we should convert the closed-loop specifications into specifications on the open-loop.
|
||||
|
||||
Let us assume we know the spectral contents of the disturbance.
|
||||
Take as an example the simple case of a disturbance being a sinusoid of known amplitude and frequency.
|
||||
If we know the specifications on the error amplitude, we can derive the requirement on the process sensitivity at that frequency.
|
||||
Since at low frequency the sensitivity can be approximated as the inverse of the open-loop, we can translate this into a specification of the open-loop at that frequency.
|
||||
Because we know that the slope of the open-loop of a well tuned motion system will be between -2 and -1, we can estimate the required crossover frequency.
|
||||
|
||||
|
||||
### Loop-Shaping - The MIMO case {#loop-shaping-the-mimo-case}
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<a id="org5f2e773"></a>Levine, W. S. 2011. _Control System Applications_. The Control Handbook. Boca Raton: CRC Press.
|
@@ -1,23 +0,0 @@
|
||||
+++
|
||||
title = "System identification : a frequency domain approach"
|
||||
author = ["Thomas Dehaeze"]
|
||||
draft = false
|
||||
+++
|
||||
|
||||
Tags
|
||||
: [System Identification](system_identification.md)
|
||||
|
||||
Reference
|
||||
: ([Pintelon and Schoukens 2012](#org88596ad))
|
||||
|
||||
Author(s)
|
||||
: Pintelon, R., & Schoukens, J.
|
||||
|
||||
Year
|
||||
: 2012
|
||||
|
||||
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<a id="org88596ad"></a>Pintelon, Rik, and Johan Schoukens. 2012. _System Identification : a Frequency Domain Approach_. Hoboken, N.J. Piscataway, NJ: Wiley IEEE Press. <https://doi.org/10.1002/9781118287422>.
|
@@ -1,7 +1,7 @@
|
||||
+++
|
||||
title = "Mastering system identification in 100 exercises"
|
||||
author = ["Thomas Dehaeze"]
|
||||
draft = false
|
||||
draft = true
|
||||
+++
|
||||
|
||||
Tags
|
||||
@@ -9,7 +9,7 @@ Tags
|
||||
|
||||
|
||||
Reference
|
||||
: ([Schoukens, Pintelon, and Rolain 2012](#org4021f9f))
|
||||
: ([Schoukens, Pintelon, and Rolain 2012](#org1193e9b))
|
||||
|
||||
Author(s)
|
||||
: Schoukens, J., Pintelon, R., & Rolain, Y.
|
||||
@@ -20,4 +20,4 @@ Year
|
||||
|
||||
## Bibliography {#bibliography}
|
||||
|
||||
<a id="org4021f9f"></a>Schoukens, Johan, Rik Pintelon, and Yves Rolain. 2012. _Mastering System Identification in 100 Exercises_. John Wiley & Sons.
|
||||
<a id="org1193e9b"></a>Schoukens, Johan, Rik Pintelon, and Yves Rolain. 2012. _Mastering System Identification in 100 Exercises_. John Wiley & Sons.
|
||||
|
Reference in New Issue
Block a user