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)
|
||||
|
||||
Reference
|
||||
: ([Stoev et al. 2017](#orgc430b4f))
|
||||
: ([Stoev et al. 2017](#org29c5c20))
|
||||
|
||||
Author(s)
|
||||
: Stoev, J., Ertveldt, J., Oomen, T., & Schoukens, J.
|
||||
@ -16,10 +16,27 @@ Author(s)
|
||||
Year
|
||||
: 2017
|
||||
|
||||
Step by step approach:
|
||||
|
||||
- [Interaction Analysis](interaction_analysis.md)
|
||||
- Decoupling transformations
|
||||
## Introduction {#introduction}
|
||||
|
||||
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
|
||||
- Sequential feedback 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).
|
||||
|
||||
|
||||
## 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}
|
||||
|
||||
<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