Update Content - 2021-08-26
This commit is contained in:
parent
480f5b9cfe
commit
04ffabab5c
@ -8,7 +8,7 @@ Tags
|
|||||||
: [Decoupled Control](decoupled_control.md), [Multivariable Control](multivariable_control.md)
|
: [Decoupled Control](decoupled_control.md), [Multivariable Control](multivariable_control.md)
|
||||||
|
|
||||||
Reference
|
Reference
|
||||||
: ([Stoev et al. 2017](#orgc430b4f))
|
: ([Stoev et al. 2017](#org29c5c20))
|
||||||
|
|
||||||
Author(s)
|
Author(s)
|
||||||
: Stoev, J., Ertveldt, J., Oomen, T., & Schoukens, J.
|
: Stoev, J., Ertveldt, J., Oomen, T., & Schoukens, J.
|
||||||
@ -16,10 +16,27 @@ Author(s)
|
|||||||
Year
|
Year
|
||||||
: 2017
|
: 2017
|
||||||
|
|
||||||
Step by step approach:
|
|
||||||
|
|
||||||
- [Interaction Analysis](interaction_analysis.md)
|
## Introduction {#introduction}
|
||||||
- Decoupling transformations
|
|
||||||
|
By appropriate system design, most systems are either decoupled or can be decoupled using static input-output transformations.
|
||||||
|
Hence, most motion system and their motion software architecture use SISO control design method and solutions.
|
||||||
|
|
||||||
|
The first step typically involves a FRF identification using specific excitation signals.
|
||||||
|
Once the FRF is available, the controller \\(K\\) can be designed directly based on the FRF data.
|
||||||
|
Many classical MIMO control design methods aim at decoupling the open loop function at some location in the feedback loop.
|
||||||
|
Because their are strong non-intuitive aspect of MIMO loop-shaping, the following step-by-step approach is proposed, in which the design complexity is only increased if justified by the problem at hand:
|
||||||
|
|
||||||
|
- **[Interaction Analysis](interaction_analysis.md)**.
|
||||||
|
The goal is to identify two sided interactions in the plant dynamics.
|
||||||
|
If there is no two sided interaction, then feedback design becomes a standard multi-loop SISO design problem.
|
||||||
|
Two measured of the plant interaction are [Relative Gain Array](relative_gain_array.md) and [Structured Singular Value](structured_singular_value.md).
|
||||||
|
- **Decoupling transformations**.
|
||||||
|
To reduce interaction, one may redefine the input and output of the plant using a decoupling transformation.
|
||||||
|
For motion systems, most transformations are found on the basis of **kinematic model**.
|
||||||
|
Herein, combinations of the actuators are defined so that actuator variables act in independent (orthogonal) directions at the center of gravity.
|
||||||
|
Similarly, combinations of the sensors are defined so that each translation and rotation of the center of gravity can be measured independently.
|
||||||
|
This, this basically amounts to the **inversion of a kinematic model** of the plant.
|
||||||
- Independent feedback control design
|
- Independent feedback control design
|
||||||
- Sequential feedback control design
|
- Sequential feedback control design
|
||||||
- Norm based control design
|
- Norm based control design
|
||||||
@ -27,7 +44,159 @@ Step by step approach:
|
|||||||
All steps, except for the last, can be performed with a non-parametric model of the plant (i.e. an identified FRF).
|
All steps, except for the last, can be performed with a non-parametric model of the plant (i.e. an identified FRF).
|
||||||
|
|
||||||
|
|
||||||
|
## MIMO frequency response decomposition {#mimo-frequency-response-decomposition}
|
||||||
|
|
||||||
|
The problem addressed in this paper is to decouple a given set of MIMO FRF.
|
||||||
|
Such decoupled representation, if existing, would permit the MIMO FRF to be written as a linear combination of parallel SISO FRFs.
|
||||||
|
The existing methods to convert the MIMO FRF into equivalent combination of SISO FRF fall into two groups:
|
||||||
|
|
||||||
|
- **matrix decomposition methods** use linear algebra based on eigen-value, or singular value decomposition which are able to diagonalize the FRF at a single frequency.
|
||||||
|
- **optimization methods** formulate the problem of simultaneous diagonalization of the FRF at multiple frequencies as an optimization problem.
|
||||||
|
|
||||||
|
At each frequency \\(\omega\_i, i = 1 \dots N\_f\\), we have a square matrix \\(H(\omega\_i) \in \mathbb{C}^{N \times N}\\) with the complex response of the system relating the inputs and outputs.
|
||||||
|
|
||||||
|
**MIMO decoupling of dyadic system**:
|
||||||
|
|
||||||
|
\begin{align}
|
||||||
|
H(\omega\_i) &= T\_y S(\omega\_i) T\_u + E(\omega\_i), \ i = 1 \dots N\_f \label{eq:decomposition} \\\\\\
|
||||||
|
S(\omega\_i) &= \begin{bmatrix}
|
||||||
|
S\_1(\omega\_i) & 0 & 0 \\\\\\
|
||||||
|
0 & \ddots & 0 \\\\\\
|
||||||
|
0 & 0 & S\_N(\omega\_i)
|
||||||
|
\end{bmatrix}
|
||||||
|
\end{align}
|
||||||
|
|
||||||
|
where \\(S(\omega\_i)\\) is a diagonal matrix containing SISO FRFs \\(S\_k(\omega\_i) \in \mathbb{C}\\) on the main diagonal, \\(T\_y \in \mathbb{R}^{N \times N}\\), \\(T\_u \in \mathbb{R}^{N \times N}\\), \\(E(\omega\_i)\\) is the error.
|
||||||
|
|
||||||
|
The approximate MIMO system decoupling is shown in Figure [1](#org3f61a67).
|
||||||
|
|
||||||
|
In practical cases, the matrix \\(\hat{S}(\omega\_i) = T\_y^{-1} H(\omega\_i) T\_u^{-1}\\) will not be purely diagonal, but rather diagonally dominated.
|
||||||
|
|
||||||
|
<a id="org3f61a67"></a>
|
||||||
|
|
||||||
|
{{< figure src="/ox-hugo/stoev17_decoupled_system_schematic.png" caption="Figure 1: MIMO FRF decomposition in parallel branches" >}}
|
||||||
|
|
||||||
|
The array \\(H(\omega\_i), i = 1 \dots N\_f\\) of complex matrices can be represented as a 3-dimensional sensor \\(\underline{H}\\).
|
||||||
|
|
||||||
|
<div class="important">
|
||||||
|
<div></div>
|
||||||
|
|
||||||
|
The core result of this paper is that the decomposition can be found by rephrasing \eqref{eq:decomposition} as a "Canonical Polyadic Decomposition" (CPD).
|
||||||
|
This is shown in Figure [2](#org58ed38e), where \\(T\_y,T\_u,S\_d\\) can be directly computed using a single Matlab function.
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Mathematically equivalent form of CPD is shown in the lower part of Figure [2](#org58ed38e), where the tensor \\(\underline{S}\\) contains the rows of the matrix \\(S\_d\\) on each of its diagonals in the third dimension, which is exactly the problem of simultaneous diagonalization.
|
||||||
|
|
||||||
|
The transformation effectively diagonalises the original frequency response tensor \\(\underline{H}\\) using two transformation matrices \\(T\_y, T\_u\\).
|
||||||
|
This operation is closely related to the SVD on a single matrix, however in this case the diagonalisation occurs for a set of matrices, each describing the MIMO FRF at different frequency.
|
||||||
|
|
||||||
|
<a id="org58ed38e"></a>
|
||||||
|
|
||||||
|
{{< figure src="/ox-hugo/stoev17_decompos_3d_tensor.png" caption="Figure 2: Decomposition of 3D tensor" >}}
|
||||||
|
|
||||||
|
The direct application of a CPD procedure on the above complex data tensor would result in complex solutions, including complex matrices \\(T\_y \in \mathbb{C}^{N \times N}\\), \\(T\_u \in \mathbb{C}^{N \times N}\\).
|
||||||
|
This is not useful for a practical decoupling of physical systems as we require real solutions for \\(T\_y,T\_u\\).
|
||||||
|
The direct solution we use for this is to take the imaginary and real part of the complex tensor \\(\underline{H} \in \mathbb{C}^{N \times N \times N\_f}\\), each of them a real tensor by itself, and stack them one behind the other in the dimension of the frequencies, thus getting an augmented real-valued tensor \\(\underline{\breve{H}} \in \mathbb{R}^{N \times N \times 2N\_f}\\).
|
||||||
|
|
||||||
|
|
||||||
|
## Numerical Example {#numerical-example}
|
||||||
|
|
||||||
|
Let's now make a Matlab example using the [Tensorlab](https://www.tensorlab.net/) toolbox.
|
||||||
|
|
||||||
|
Let's define a 2x2 diagonal system:
|
||||||
|
|
||||||
|
```matlab
|
||||||
|
S = [4e3/(s^2 + 25*s + 4e3) 0
|
||||||
|
0 4e5/(s^2 + 250*s + 4e5)];
|
||||||
|
```
|
||||||
|
|
||||||
|
And coupled this system with two random matrices:
|
||||||
|
|
||||||
|
```matlab
|
||||||
|
Ty = [0.13 0.003
|
||||||
|
0.43 0.51];
|
||||||
|
|
||||||
|
Tu = [0.32 0.67
|
||||||
|
0.95 0.006];
|
||||||
|
```
|
||||||
|
|
||||||
|
The couple system is defined:
|
||||||
|
|
||||||
|
```matlab
|
||||||
|
H = Ty * S * Tu;
|
||||||
|
```
|
||||||
|
|
||||||
|
Then, suppose with have the frequency response function of the coupled plant:
|
||||||
|
|
||||||
|
```matlab
|
||||||
|
freqs = logspace(0,3,1000);
|
||||||
|
H_frf = freqresp(H, freqs, 'Hz');
|
||||||
|
```
|
||||||
|
|
||||||
|
<a id="orgba720df"></a>
|
||||||
|
|
||||||
|
{{< figure src="/ox-hugo/stoev17_coupled_diagonal_plants.png" caption="Figure 3: Diagonal and coupled plants" >}}
|
||||||
|
|
||||||
|
We take the real and imaginary part of the FRF and concatenate the two along the frequency dimension.
|
||||||
|
|
||||||
|
```matlab
|
||||||
|
H_frf_real = cat(3, real(H_frf), imag(H_frf));
|
||||||
|
```
|
||||||
|
|
||||||
|
Then random matrices are initialize the the CPD.
|
||||||
|
|
||||||
|
```matlab
|
||||||
|
U = cpd_rnd(size(H_frf_real), size(H_frf_real,1));
|
||||||
|
```
|
||||||
|
|
||||||
|
And the CPD is performed.
|
||||||
|
|
||||||
|
```matlab
|
||||||
|
[T, ~] = cpd3_sd(H_frf_real, U);
|
||||||
|
```
|
||||||
|
|
||||||
|
The obtained decoupling matrices are:
|
||||||
|
|
||||||
|
```matlab
|
||||||
|
Ty_est = T{1};
|
||||||
|
```
|
||||||
|
|
||||||
|
```text
|
||||||
|
Ty_est =
|
||||||
|
-0.289402459385387 -0.00647742171539879
|
||||||
|
-0.957207509228524 -1.10111369041218
|
||||||
|
```
|
||||||
|
|
||||||
|
```matlab
|
||||||
|
Tu_est = T{2};
|
||||||
|
```
|
||||||
|
|
||||||
|
```text
|
||||||
|
Tu_est =
|
||||||
|
0.430893809258741 0.999980044721872
|
||||||
|
0.902402640256826 0.00631744869723862
|
||||||
|
```
|
||||||
|
|
||||||
|
And the decoupled plant using the estimated optimal decoupling matrices is:
|
||||||
|
|
||||||
|
```matlab
|
||||||
|
H_dec = inv(Ty_est) * H * inv(Tu_est);
|
||||||
|
```
|
||||||
|
|
||||||
|
<a id="orgcb9fe2a"></a>
|
||||||
|
|
||||||
|
{{< figure src="/ox-hugo/stoev17_results_decoupling_example.png" caption="Figure 4: Diagonal, coupled and decoupled plants" >}}
|
||||||
|
|
||||||
|
|
||||||
|
## Conclusion {#conclusion}
|
||||||
|
|
||||||
|
The paper presents an application for the tensor decomposition for the design of a static decoupling of a MIMO system.
|
||||||
|
The results in this paper are obtained on a _non-parametric_ frequency domain model of the plant and indicate that the procedure is more robust that the eigen-value based decoupling.
|
||||||
|
The advantages of this method with respect to some of th existing methods can be found when the FRF data available is disturbed by noise.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Bibliography {#bibliography}
|
## Bibliography {#bibliography}
|
||||||
|
|
||||||
<a id="orgc430b4f"></a>Stoev, Julian, Julien Ertveldt, Tom Oomen, and Johan Schoukens. 2017. “Tensor Methods for Mimo Decoupling and Control Design Using Frequency Response Functions.” _Mechatronics_ 45:71–81. <https://doi.org/https://doi.org/10.1016/j.mechatronics.2017.05.009>.
|
<a id="org29c5c20"></a>Stoev, Julian, Julien Ertveldt, Tom Oomen, and Johan Schoukens. 2017. “Tensor Methods for Mimo Decoupling and Control Design Using Frequency Response Functions.” _Mechatronics_ 45:71–81. <https://doi.org/https://doi.org/10.1016/j.mechatronics.2017.05.009>.
|
||||||
|
111
content/book/levine11_contr_system_applic.md
Normal file
111
content/book/levine11_contr_system_applic.md
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
+++
|
||||||
|
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.
|
16
content/zettels/loop_shaping.md
Normal file
16
content/zettels/loop_shaping.md
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
+++
|
||||||
|
title = "Loop-Shaping"
|
||||||
|
author = ["Thomas Dehaeze"]
|
||||||
|
draft = false
|
||||||
|
+++
|
||||||
|
|
||||||
|
Tags
|
||||||
|
:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loop Gain
|
||||||
|
|
||||||
|
Typical wanted loop gain shape
|
||||||
|
|
||||||
|
Tools for loop-shaping
|
16
content/zettels/trajectory_generation.md
Normal file
16
content/zettels/trajectory_generation.md
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
+++
|
||||||
|
title = "Trajectory Generation"
|
||||||
|
author = ["Thomas Dehaeze"]
|
||||||
|
draft = false
|
||||||
|
+++
|
||||||
|
|
||||||
|
Tags
|
||||||
|
:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
|
||||||
|
Goals
|
||||||
|
|
||||||
|
Tools
|
BIN
static/ox-hugo/stoev17_coupled_diagonal_plants.png
Normal file
BIN
static/ox-hugo/stoev17_coupled_diagonal_plants.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 217 KiB |
BIN
static/ox-hugo/stoev17_decompos_3d_tensor.png
Normal file
BIN
static/ox-hugo/stoev17_decompos_3d_tensor.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 34 KiB |
BIN
static/ox-hugo/stoev17_decoupled_system_schematic.png
Normal file
BIN
static/ox-hugo/stoev17_decoupled_system_schematic.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 23 KiB |
BIN
static/ox-hugo/stoev17_results_decoupling_example.png
Normal file
BIN
static/ox-hugo/stoev17_results_decoupling_example.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 232 KiB |
Loading…
Reference in New Issue
Block a user