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:
## 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.
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.
<aid="org3f61a67"></a>
{{<figuresrc="/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}\\).
<divclass="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.
<aid="org58ed38e"></a>
{{<figuresrc="/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');
```
<aid="orgba720df"></a>
{{<figuresrc="/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);
```
<aid="orgcb9fe2a"></a>
{{<figuresrc="/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.
<aid="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>.