The design of control laws for MIMO systems are more extensive in comparison to SISO systems because the additional inputs (
) 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.
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
![{\displaystyle {\dot {x}}(t)=Ax(t)+Bu(t)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0bf0420687df3296478180e7b6da974e5b9b57cd)
with input vector
![{\displaystyle u(t)=(u_{1}(t),u_{2}(t),\cdots ,u_{q}(t))=-K~x(t)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7c5fe457f39b85d63ab5c6aea561403bbff7b31b)
input matrix
and feedback matrix
is considered. The Eigenvalue problem of the closed-loop system
![{\displaystyle {\dot {x}}(t)=(A-B~K)~x(t)=A_{CL}~x(t)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2acc59073087a84ae199998f12650d26975e3cac)
is noted as
![{\displaystyle A_{CL}~{\tilde {v}}_{i}=(A-B~K)~{\tilde {v}}_{i}={\tilde {\lambda }}_{i}~{\tilde {v}}_{i}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/47700964bf2090e3af51b6110eb3413cd9a56d79)
where
denote the assigned Eigenvalues and
denote the Eigenvectors of the closed-loop system.
Next, new parameter vectors
are introduced and assigned and the Eigenvalue problem is recasted as
![{\displaystyle B~K~{\tilde {v}}_{i}=B~\phi _{i}=(A-{\tilde {\lambda }}_{i}~I)~{\tilde {v}}_{i}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5ee493abfbecd1b91e63089e0502a5f000b1e884)
1. From Equation [1] one defines the Eigenvector with
![{\displaystyle {\tilde {v}}_{i}=(A-{\tilde {\lambda }}_{i}~I)^{-1}~B~\phi _{i}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/265b3d1935fe43bda81c2318ce4a5533ca43330a)
2. The new parameter vectors
are concatenated as
![{\displaystyle \Phi =[\phi _{1},\phi _{2},\cdots ,\phi _{p}]=K[{\tilde {v}}_{1},{\tilde {v}}_{2},\cdots ,{\tilde {v}}_{p}],}](https://wikimedia.org/api/rest_v1/media/math/render/svg/eda6dfad183e9b46d5323ed16481bcd8a6013ab3)
where the feedback matrix K can be noted as
![{\displaystyle K=\Phi ~[{\tilde {v}}_{1},{\tilde {v}}_{2},\cdots ,{\tilde {v}}_{p}]^{-1}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/50eb9855370ce996fd3bdbf8baf830fe0062d604)
3. Finally, the Eigenvector definition is used to hold the full description of the feedback matrix with
![{\displaystyle 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}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ae303604b97d568b14a044208c24b0ab260890d2)
The parameter vectors are defined arbitrarily but have to be linear independent.
- Method works for non-quadratic B
- Parameter vectors
can be chosen arbitrarily
Consider the dynamical system
![{\displaystyle {\begin{bmatrix}{\dot {x}}_{1}(t)\\{\dot {x}}_{2}(t)\end{bmatrix}}={\begin{bmatrix}3&1\\4&3\end{bmatrix}}~{\begin{bmatrix}{x}_{1}(t)\\{x}_{2}(t)\end{bmatrix}}+{\begin{bmatrix}1&2\\3&4\end{bmatrix}}~{\begin{bmatrix}u_{1}(t)\\u_{2}(t)\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c56a9d1180ae4c2ff36a4a72b0c8b8988825b290)
which is unstable due to positive Eigenvalues
. A feedback matrix K should be found to reach a stable closed-loop system with Eigenvalues
.
1. The parameter vectors are defined as
and
2. The resulting Eigenvectors are
![{\displaystyle {\tilde {v}}_{1}=(A-{\tilde {\lambda }}_{1}~I)^{-1}~B~\phi _{1}=\left({\begin{bmatrix}3&1\\4&3\end{bmatrix}}-{\begin{bmatrix}-4&0\\0&-4\end{bmatrix}}\right)^{-1}{\begin{bmatrix}1&2\\3&4\end{bmatrix}}~{\begin{bmatrix}1\\0\end{bmatrix}}\approx {\begin{bmatrix}0.09\\0.38\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/fb2bbbcf0f648cef13d4369fd246c34c2357ddde)
and
![{\displaystyle {\tilde {v}}_{2}=(A-{\tilde {\lambda }}_{2}~I)^{-1}~B~\phi _{2}=\left({\begin{bmatrix}3&1\\4&3\end{bmatrix}}-{\begin{bmatrix}-2&0\\0&-2\end{bmatrix}}\right)^{-1}{\begin{bmatrix}1&2\\3&4\end{bmatrix}}~{\begin{bmatrix}0\\1\end{bmatrix}}\approx {\begin{bmatrix}0.29\\0.57\end{bmatrix}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/36fd739b4044e67cf4fc945b87025981c71e7713)
3. The feedback matrix is calculated with
![{\displaystyle K=[\phi _{1},\phi _{2}]~[(A-{\tilde {\lambda }}_{1}~I)^{-1}~B~\phi _{1},(A-{\tilde {\lambda }}_{2}~I)^{-1}~B~\phi _{2}]^{-1}\approx {\begin{bmatrix}1&0\\0&1\end{bmatrix}}~{\begin{bmatrix}0.09&0.29\\0.38&0.57\end{bmatrix}}^{-1}\approx {\begin{bmatrix}-9.68&4.92\\6.45&-1.53\end{bmatrix}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3df995d709173df9c43176e031e263cc69708d43)
More precise rounding leads to a feedback matrix
![{\displaystyle K={\begin{bmatrix}-10&5\\6.6{\overline {1}}&-1.5{\overline {5}}\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/09811ac2ee3f285597f85e917641c53d7ac70370)
If the state matrix
of system
![{\displaystyle {\dot {x}}(t)=A~x(t)+B~u(t)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2b5570b737e5405dd18a4648b83c32cec6c8b36a)
is diagonalizable, which means the number of Eigenvalues and Eigenvectors are equal, then the transform
![{\displaystyle x=M~x_{M}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/fc22ea5a1dd73c5aec4606096331327e82a66221)
can be used to yield
![{\displaystyle M~{\dot {x}}_{M}(t)=AM~x_{M}(t)+B~u(t)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4144c4080a737c113d1f29a0d5a3a52b79a1d845)
and further
![{\displaystyle {\dot {x}}_{M}(t)=M^{-1}AM~x_{M}(t)+M^{-1}~B~u(t).}](https://wikimedia.org/api/rest_v1/media/math/render/svg/cdcbcdeef34510ebd6b9de0a707f232ea09cb9b4)
Transformation matrix M contains the Eigenvectors
as
![{\displaystyle M=[v_{1},v_{2},\cdots ,v_{p}]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7fb5f25281e990d19a0279488c0051ab77235927)
which leads to a new diagonal state matrix
![{\displaystyle A_{M}=M^{-1}~A~M={\begin{bmatrix}\lambda _{1}\\&\lambda _{2}\\&&\ddots \\&&&\lambda _{p}\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5453ec6876ebcce63cdd9395ec8d875892e3783a)
consisting of Eigenvalues
, and new input
![{\displaystyle u_{M}(t)=M^{-1}~B~u(t)={\begin{bmatrix}u_{M,1}\\u_{M,2}\\\cdots \\u_{M,p}\end{bmatrix}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/acfd96bc1f6ce6ce7d613be6bbccf2b95ad305ea)
The control law for the new input
is designed as
![{\displaystyle 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}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5ed0e9fca188a686651095af91635d2771b1dc0e)
and the closed-loop system in new coordinates is noted as
![{\displaystyle {\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}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5bea18da32c5f029fb9df792fa5094058ecbb26b)
Feedback matrix
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
![{\displaystyle u_{M}(t)=M^{-1}~B~u(t)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c6de8ac9eaf8e57bac859420e47de1c5210351f6)
and
![{\displaystyle u_{M}(t)=-K_{M}~x_{M}(t)=-K_{M}~M^{-1}~x(t).}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e85e5b5ebff72a2585f9be51bf6dc8fad28fe1e7)
From these formulas one gains the identity
![{\displaystyle M^{-1}~B~u(t)=-K_{M}~M^{-1}~x(t)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7c9ebca7b995fbd51df50880711aa9e191ea6b64)
and further
![{\displaystyle u(t)=-B^{-1}~M~K_{M}~M^{-1}~x(t)=-K~x(t).}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ff0aab9365161a063a4a10a34d7f6ae95c9b0724)
Therefore, the feedback matrix is found as
![{\displaystyle K=B^{-1}~M~K_{M}~M^{-1}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/19ed6bb992e49844216fe796cfd614e251ae04a0)
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
.
- Input matrix
is invertible.
Consider the dynamical system
![{\displaystyle {\begin{bmatrix}{\dot {x}}_{1}(t)\\{\dot {x}}_{2}(t)\end{bmatrix}}={\begin{bmatrix}2&1\\1&2\end{bmatrix}}~{\begin{bmatrix}{x}_{1}(t)\\{x}_{2}(t)\end{bmatrix}}+{\begin{bmatrix}1&2\\2&1\end{bmatrix}}~{\begin{bmatrix}u_{1}(t)\\u_{2}(t)\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/33ad74800ee3d9a65fa6cb8e111722531bd7438f)
which is unstable due to positive Eigenvalues
. The Eigenvectors are
![{\displaystyle {\tilde {v}}_{1}={\begin{bmatrix}-{\frac {\sqrt {2}}{2}}\\{\frac {\sqrt {2}}{2}}\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6e79ba1058d2384b6a249251ca9971e4fb4ebfd6)
and
![{\displaystyle {\tilde {v}}_{2}={\begin{bmatrix}{\frac {\sqrt {2}}{2}}\\{\frac {\sqrt {2}}{2}}\end{bmatrix}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/fd9fbbd764c23e53bbb0e3914a0fe300d9bb6e89)
Thus, the transformation matrix is noted as
![{\displaystyle M={\begin{bmatrix}-{\frac {\sqrt {2}}{2}}&{\frac {\sqrt {2}}{2}}\\{\frac {\sqrt {2}}{2}}&{\frac {\sqrt {2}}{2}}\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/250f044f3eba9e81b5e3cbc5c42ce175494c8b58)
and the state matrix in new coordinates is derived as
![{\displaystyle A_{M}=M^{-1}~A~M={\begin{bmatrix}1&0\\0&3\end{bmatrix}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/575ff91ac6f469931f6df6717ac301b69075d9d1)
The desired Eigenvalues of the closed-loop system are
and
, so feedback matrix is found with
![{\displaystyle \lambda _{1}-K_{M,1}=1-K_{M,1}={\tilde {\lambda }}_{1}=-5\quad \Rightarrow K_{M,1}=1+5=6}](https://wikimedia.org/api/rest_v1/media/math/render/svg/dca9d0f773ae05e1603711d53f00b5b0daee0ad3)
and
![{\displaystyle \lambda _{2}-K_{M,2}=3-K_{M,1}={\tilde {\lambda }}_{2}=-1\quad \Rightarrow K_{M,2}=3+1=4}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d4bad692fc7409c4a935ea47fc46353310f150d7)
and thus one holds
![{\displaystyle K_{M}={\begin{bmatrix}6&0\\0&4\\\end{bmatrix}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7af550ac3f41f3c0e81e1268107a0649ed12c929)
Finally, the feedback matrix in original coordinates are calculated by
![{\displaystyle 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}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e5c37379e3ee15f662350c5887d4e0b6317b6416)
This method is taken from the online resource
Consider the closed-loop system
![{\displaystyle {\dot {x}}(t)=A~x(t)+B~u(t)=(A-B~K)~x(t)=A_{CL}~x(t)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1b25ca8e2bf7e1c63cb1f7d9230e6cfd296f38fc)
with input
and closed-loop state matrix
.
The desired closed-loop Eigenvalues
can be chosen real- or complex-valued as
and the matrix of the desired Eigenvalues is noted as
![{\displaystyle \Lambda ={\begin{bmatrix}\alpha _{1}&\beta _{1}\\-\beta _{1}&\alpha _{1}\\&&\ddots \\&&&{\tilde {\lambda }}_{i}\\&&&&\ddots \end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/751efa24afef72df051b7f44a84fdf4ad0a6770f)
The closed-loop state matrix
has to be similar to
as
![{\displaystyle A_{CL}=A-B~K\sim \Lambda }](https://wikimedia.org/api/rest_v1/media/math/render/svg/43ac29682cabe71a34bc9d478a8a1ff166f89517)
which means that there exists a transformation matrix
such that
![{\displaystyle M^{-1}~A_{CL}~M=M^{-1}~(A-B~K)~M=\Lambda }](https://wikimedia.org/api/rest_v1/media/math/render/svg/91e7d6e74fd71da500f7ce2a009d4c2ef698e06d)
holds and further
![{\displaystyle A~M-M~\Lambda =B~K~M.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/111cc83ca8b691445abe8240864afa235ca41d9f)
An arbitrary Matrix
is introduced and Equation [2] is separated in a Sylvester equation
![{\displaystyle A~M-M~\Lambda =B~G}](https://wikimedia.org/api/rest_v1/media/math/render/svg/93ea8e04275175a2fbf52758034e1e4841f97e5a)
and a feedback matrix formula
![{\displaystyle K=G~M^{-1}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/26a4237324197d23be4576d2b4de92e81313d91d)
1. Choose an arbitrary matrix
.
2. Solve the Sylvester equation for M (numerically).
3. Calculate the feedback matrix K.
- State matrix A and the negative Eigenvalue matrix
shall not have common Eigenvalues.
- For some choices of G the computation could fail. Then another G has to be chosen.
Consider the dynamical system
![{\displaystyle {\begin{bmatrix}{\dot {x}}_{1}(t)\\{\dot {x}}_{2}(t)\end{bmatrix}}={\begin{bmatrix}2&1\\1&2\end{bmatrix}}~{\begin{bmatrix}{x}_{1}(t)\\{x}_{2}(t)\end{bmatrix}}+{\begin{bmatrix}1&2\\2&1\end{bmatrix}}~{\begin{bmatrix}u_{1}(t)\\u_{2}(t)\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/33ad74800ee3d9a65fa6cb8e111722531bd7438f)
which is unstable due to positive Eigenvalues
. The complex-valued Eigenvalues
are desired for the closed-loop system. So, the eigenvalue matrix is noted as
![{\displaystyle \Lambda ={\begin{bmatrix}-2&1\\-1&-2\end{bmatrix}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7685bf3d57ef82786d8cfb953adfafd8d9194dc3)
Matrix G is chosen as
![{\displaystyle G={\begin{bmatrix}1&0\\0&1\end{bmatrix}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4e9ad9a51fcea514e93dba689a9a9b052c0fb2d5)
and Sylvester equation
![{\displaystyle A~M-M~\Lambda ={\begin{bmatrix}2&1\\1&2\end{bmatrix}}~M-M~{\begin{bmatrix}-2&1\\-1&-2\end{bmatrix}}={\begin{bmatrix}1&2\\2&1\end{bmatrix}}=B~G}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3cf01815e7fa1ff8b6d469cde73f36d751dcf5df)
is noted. The Sylvester equation is solved numerically and the transformation matrix is computed as
![{\displaystyle M={\begin{bmatrix}0.0307692&0.446154\\0.430769&0.246154\end{bmatrix}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/9f9d38cf5b7833f40face2110af4c9544d81cf19)
Finally, the feedback matrix is found as
![{\displaystyle K=G~M^{-1}={\begin{bmatrix}1&0\\0&1\end{bmatrix}}~{\begin{bmatrix}0.0307692&0.446154\\0.430769&0.246154\end{bmatrix}}^{-1}={\frac {1}{3}}{\begin{bmatrix}-4&7.25\\7&-0.5\end{bmatrix}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6ceffe073970d4e4730c540c3e313c493f858170)