Update Content - 2021-08-26

This commit is contained in:
Thomas Dehaeze 2021-08-26 16:00:01 +02:00
parent 480f5b9cfe
commit 04ffabab5c
8 changed files with 317 additions and 5 deletions

View File

@ -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:7181. <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:7181. <https://doi.org/https://doi.org/10.1016/j.mechatronics.2017.05.009>.

View 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.

View 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

View File

@ -0,0 +1,16 @@
+++
title = "Trajectory Generation"
author = ["Thomas Dehaeze"]
draft = false
+++
Tags
:
Requirements
Goals
Tools

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB