# Control Systems/Eigenvalue Assignment for MIMO Systems

The design of control laws for MIMO
systems are more extensive in
comparison to SISO systems because the additional inputs ($q > 1$) offer
more options like defining the Eigenvectors or handling the activity of
inputs. This also means that the feedback matrix *K* for a set of
desired Eigenvalues of the closed-loop system is **not unique**. All
presented methods have advantages, disadvantages and certain
limitations. This means not all methods can be applied on every possible
system and it is important to check which method could be applied on the
own considered problem.

# Parametric State Feedback

A simple approach to find the feedback matrix *K* can be derived via
parametric state feedback (in German: *vollständige modale Synthese*). A
MIMO system

$$\dot{x}(t) = A x(t) + B u(t)$$

with input vector

$$u(t) = (u_{1}(t), u_{2}(t), \cdots, u_{q}(t)) = -K ~ x(t)$$

input matrix $B \in \mathbb{R}^{p \times q}$ and feedback matrix
$K \in \mathbb{R}^{q \times p}$ is considered. The Eigenvalue problem of
the closed-loop system

$$\dot{x}(t) = (A - B~K) ~ x(t) = A_{CL} ~ x(t)$$

is noted as

$$A_{CL} ~ \tilde{v}_{i} = (A - B~K) ~ \tilde{v}_{i}   = \tilde{\lambda}_{i} ~ \tilde{v}_{i}$$

where $\tilde{\lambda}_{i} \in \mathbb{C}$ denote the assigned
Eigenvalues and $\tilde{v}_{i} \in \mathbb{C}^{p}$ denote the
Eigenvectors of the closed-loop system. Next, new parameter vectors
$\phi_{i} = K \tilde{v}_{i}$ are introduced and assigned and the
Eigenvalue problem is recasted as 

$$B~K ~ \tilde{v}_{i} = B ~ \phi_{i} = (A -  \tilde{\lambda}_{i} ~ I) ~ \tilde{v}_{i}.$$

## Controller synthesis

1\. From Equation \[1\] one defines the **Eigenvector** with

$$\tilde{v}_{i} = (A -  \tilde{\lambda}_{i} ~ I)^{-1} ~ B ~ \phi_{i}$$

2\. The new parameter vectors $\phi_{i}$ are concatenated as

$$\Phi = [\phi_{1}, \phi_{2}, \cdots, \phi_{p}] = K [\tilde{v}_{1}, \tilde{v}_{2}, \cdots, \tilde{v}_{p}],$$

where the **feedback matrix** *K* can be noted as

$$K = \Phi ~ [\tilde{v}_{1}, \tilde{v}_{2}, \cdots, \tilde{v}_{p}]^{-1}.$$

3\. Finally, the Eigenvector definition is used to hold the full
description of the **feedback matrix** with

$$K = [\phi_{1}, \phi_{2}, \cdots, \phi_{p}] ~ [(A -  \tilde{\lambda}_{1} ~ I)^{-1} ~ B ~ \phi_{1}, \cdots, (A -  \tilde{\lambda}_{p} ~ I)^{-1} ~ B ~ \phi_{p}]^{-1}.$$

The parameter vectors are defined arbitrarily but have to be linear
independent.

## Remarks

-   Method works for non-quadratic B
-   Parameter vectors $\phi_{i}$ can be chosen arbitrarily

## Example

# Singular Value Decomposition and Diagonalization

If the state matrix $A \in \mathbb{R}^{p \times p}$ of system

$$\dot{x}(t) = A ~ x(t) + B ~ u(t)$$

is diagonalizable, which means the number of Eigenvalues and
Eigenvectors are equal, then the transform

$$x = M ~ x_{M}$$

can be used to yield

$$M ~ \dot{x}_{M}(t) = A M ~ x_{M}(t) + B ~ u(t)$$

and further

$$\dot{x}_{M}(t) = M^{-1} A M ~ x_{M}(t) + M^{-1} ~ B ~ u(t).$$

Transformation matrix *M* contains the Eigenvectors
$v_{i} \in \mathbb{C}^{p}$ as

$$M = [v_{1}, v_{2}, \cdots, v_{p}]$$

which leads to a new diagonal state matrix

$$A_{M} = M^{-1} ~ A ~ M =
\begin{bmatrix}
\lambda_{1} \\
& \lambda_{2} \\
& & \ddots \\
& & & \lambda_{p}
\end{bmatrix}$$ consisting of Eigenvalues $\lambda_{i}  \in \mathbb{C}$,
and new input

$$u_{M}(t) = M^{-1} ~ B ~ u(t) =
\begin{bmatrix}
u_{M,1} \\
u_{M,2}  \\
\cdots \\
u_{M,p}
\end{bmatrix}.$$

The control law for the new input $u_{M}$ is designed as

$$u_{M}(t) = -K_{M} x_{M}(t) =
-
\begin{bmatrix}
K_{M,1} \\
& K_{M,2} \\
& & \ddots \\
& & & K_{M,p}
\end{bmatrix}
~
\begin{bmatrix}
x_{M,1}(t) \\
x_{M,2}(t)  \\
\cdots \\
x_{M,p}(t)
\end{bmatrix}$$

and the closed-loop system in new coordinates is noted as

$$\dot{x}_{M}(t) =  A_{M} ~ x_{M}(t) + u_{M}(t) = (A_{M} - K_{M}) ~ x_{M}(t) =
\begin{bmatrix}
\lambda_{1} - K_{M,1} \\
& \lambda_{2} - K_{M,2} \\
& & \ddots \\
& & & \lambda_{p} - K_{M,p}
\end{bmatrix}
~
\begin{bmatrix}
x_{M,1}(t) \\
x_{M,2}(t)  \\
\cdots \\
x_{M,p}(t)
\end{bmatrix}$$

Feedback matrix $K_{M}$ can be used to influence or shift each
Eigenvalue directly.

In the last step, the new input is transformed backwards to original
coordinates to yield the original feedback matrix *K*. The new input is
defined by

$$u_{M}(t) = M^{-1} ~ B ~ u(t)$$

and

$$u_{M}(t) = -K_{M} ~ x_{M}(t) = -K_{M} ~ M^{-1} ~ x(t).$$

From these formulas one gains the identity

$$M^{-1} ~ B ~ u(t) = -K_{M} ~ M^{-1} ~ x(t)$$

and further

$$u(t) = - B^{-1} ~ M ~ K_{M} ~ M^{-1} ~ x(t) = - K ~ x(t).$$

Therefore, the feedback matrix is found as

$$K = B^{-1} ~ M ~ K_{M} ~ M^{-1}.$$

## Requirements

This controller design is applicable only if the following requirements
are guaranteed.

-   State matrix *A* is
    diagonalizable.
-   The number of states and inputs are equal $p=q$.
-   Input matrix $B \in \mathbb{R}^{p \times p}$ is invertible.

## Example

{2}\\\\ \\frac{\\sqrt{2}}{2} \\end{bmatrix} `</math>`{=html}

and

$$\tilde{v}_{2} =
\begin{bmatrix}
\frac{\sqrt{2}}{2}\\
\frac{\sqrt{2}}{2}
\end{bmatrix}.$$

Thus, the transformation matrix is noted as

$$M = 
\begin{bmatrix}
-\frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} \\
\frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2}
\end{bmatrix}$$

and the state matrix in new coordinates is derived as

$$A_{M} = M^{-1} ~ A ~ M =  
\begin{bmatrix}
1 & 0 \\
0 & 3 
\end{bmatrix}.$$

The desired Eigenvalues of the closed-loop system are
$\tilde{\lambda}_{1} = -5$ and $\tilde{\lambda}_{2} = -1$, so feedback
matrix is found with

$$\lambda_{1} - K_{M,1} = 1 - K_{M,1} = \tilde{\lambda}_{1} = -5 \quad \Rightarrow  K_{M,1} = 1 + 5 = 6$$

and

$$\lambda_{2} - K_{M,2} = 3 - K_{M,1} = \tilde{\lambda}_{2} = -1 \quad \Rightarrow  K_{M,2} = 3 + 1 = 4$$

and thus one holds

$$K_{M} =
\begin{bmatrix}
6 & 0 \\
0 & 4 \\
\end{bmatrix}.$$

Finally, the feedback matrix in original coordinates are calculated by

$$K = B^{-1} ~ M ~ K_{M} ~ M^{-1} = 
\begin{bmatrix}
1 & 2 \\
2 & 1
\end{bmatrix}^{-1}
~
\begin{bmatrix}
-\frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} \\
\frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2}
\end{bmatrix}
~
\begin{bmatrix}
6 & 0 \\
0 & 4 \\
\end{bmatrix}
~
\begin{bmatrix}
-\frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} \\
\frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2}
\end{bmatrix}^{-1}
= \frac{1}{3}
\begin{bmatrix}
-7 & 11 \\
11 & -7 \\
\end{bmatrix} .$$ }}

# Sylvester Equation

This method is taken from the online resource

-   KU Leuven: Chapter 3: State Feedback - Pole Placement (PDF, 308,5
    kB) (does not exist
    anymore).
-   Similar resource: Chapter 4 Pole placement (PDF, 269,3
    kB) by Zsófia Lendek

Consider the closed-loop system

$$\dot{x}(t) = A ~ x(t) + B ~ u(t) = (A - B ~ K) ~ x(t) = A_{CL} ~ x(t)$$

with input $u(t) = -K ~ x(t)$ and closed-loop state matrix
$A_{CL}=A - B ~ K$. The desired closed-loop Eigenvalues
$\tilde{\lambda}_{i} \in \mathbb{C}$ can be chosen real- or
complex-valued as $\tilde{\lambda}_{i} = \alpha_{i} \pm j \beta_{i}$ and
the matrix of the desired Eigenvalues is noted as

$$\Lambda =
\begin{bmatrix}
\alpha_{1} & \beta_{1} \\
-\beta_{1} & \alpha_{1} \\
& & \ddots \\
& & & \tilde{\lambda}_{i} \\
& & & & \ddots
\end{bmatrix}$$

The closed-loop state matrix $A_{CL}$ has to be similar to $\Lambda$ as

$$A_{CL} = A - B~K \sim \Lambda$$

which means that there exists a transformation matrix
$M \in \mathbb{R}^{p \times p}$ such that

$$M^{-1}~A_{CL}~M = M^{-1} ~(A - B~K)~M = \Lambda$$

holds and further 

$$A~M - M~\Lambda = B~K~M.$$

An arbitrary Matrix $G = K~M$ is introduced and Equation \[2\] is
separated in a Sylvester equation 

$$A~M - M~\Lambda = B~G$$

and a feedback matrix formula

$$K = G ~ M^{-1}.$$

## Algorithm

1\. Choose an arbitrary matrix $G \in \mathbb{R}^{q \times p}$.

2\. Solve the Sylvester equation for *M* (numerically).

3\. Calculate the feedback matrix *K*.

## Remarks

-   State matrix *A* and the negative Eigenvalue matrix $-\Lambda$ shall
    not have common Eigenvalues.
-   For some choices of *G* the computation could fail. Then another *G*
    has to be chosen.

## Example

