# Control Systems/MIMO Systems

| The Wikibook of: Control Systems and Control Engineering | Table of Contents | All Versions | PDF Version |
| The Wikibook of: Control Systems and Control Engineering | ← Standard Forms | Realizations → | Glossary |

## Multi-Input, Multi-Output

Systems with more than one input and/or more than one output are known as Multi-Input Multi-Output systems, or they are frequently known by the abbreviation MIMO. This is in contrast to systems that have only a single input and a single output (SISO), like we have been discussing previously.

## State-Space Representation

MIMO systems that are lumped and linear can be described easily with state-space equations. To represent multiple inputs we expand the input u(t) into a vector U(t) with the desired number of inputs. Likewise, to represent a system with multiple outputs, we expand y(t) into Y(t), which is a vector of all the outputs. For this method to work, the outputs must be linearly dependent on the input vector and the state vector.
    $X'(t)=AX(t)+BU(t)$
    $Y(t)=CX(t)+DU(t)$

### Example: Two Inputs and Two Outputs

Let's say that we have two outputs, y$_1$ and y$_2$, and two inputs, u$_1$ and u$_2$. These are related in our system through the following system of differential equations:
    $y_{1}''+a_{1}y_{1}'+a_{0}(y_{1}+y_{2})=u_{1}(t)$
    $y_{2}'+a_{2}(y_{2}-y_{1})=u_{2}(t)$
now, we can assign our state variables as such, and produce our first-order differential equations:
    $x_{1}=y_{1}$
    $x_{4}=y_{2}$
    $x_{1}'=y_{1}'=x_{2}$
    $x_{2}'=-a_{1}x_{2}-a_{0}(x_{1}+x_{4})+u_{1}(t)$
    $x_{3}'=x_{4}$
    $x_{4}'=-a_{2}(x_{4}-x_{1})+u_{2}(t)$
And finally we can assemble our state space equations:
    $x'={\begin{bmatrix}0&1&0&0\\-a_{0}&-a_{1}&0&-a_{0}\\0&0&0&1\\a_{2}&0&0&-a_{2}\end{bmatrix}}x+{\begin{bmatrix}0&0\\1&0\\0&0\\0&1\end{bmatrix}}{\begin{bmatrix}u_{1}\\u_{2}\end{bmatrix}}$
    ${\begin{bmatrix}y_{1}\\y_{2}\end{bmatrix}}={\begin{bmatrix}1&0&0&0\\0&0&0&1\end{bmatrix}}x(t)$

## Transfer Function Matrix

If the system is LTI and Lumped, we can take the Laplace Transform of the state-space equations, as follows:
    ${\mathcal {L}}[X'(t)]={\mathcal {L}}[AX(t)]+{\mathcal {L}}[BU(t)]$
    ${\mathcal {L}}[Y(t)]={\mathcal {L}}[CX(t)]+{\mathcal {L}}[DU(t)]$
Which gives us the result:
    $s\mathbf {X} (s)-X(0)=A\mathbf {X} (s)+B\mathbf {U} (s)$
    $\mathbf {Y} (s)=C\mathbf {X} (s)+D\mathbf {U} (s)$
Where X(0) is the initial conditions of the system state vector in the time domain. If the system is relaxed, we can ignore this term, but for completeness we will continue the derivation with it.
We can separate out the variables in the state equation as follows:
    $s\mathbf {X} (s)-A\mathbf {X} (s)=X(0)+B\mathbf {U} (s)$
Then factor out an X(s):
    $\mathbf { sI-A]{X}(s)=X(0)+B\mathbf {U} (s)$
And then we can multiply both sides by the inverse of [sI - A] to give us our state equation:
    $\mathbf {X} (s)=[sI-A]^{-1}X(0)+[sI-A]^{-1}B\mathbf {U} (s)$
Now, if we plug in this value for X(s) into our output equation, above, we get a more complicated equation:
    $\mathbf {Y} (s)=C([sI-A]^{-1}X(0)+[sI-A]^{-1}B\mathbf {U} (s))+D\mathbf {U} (s)$
And we can distribute the matrix C to give us our answer:
    $\mathbf {Y} (s)=C[sI-A]^{-1}X(0)+C[sI-A]^{-1}B\mathbf {U} (s)+D\mathbf {U} (s)$
Now, if the system is relaxed, and therefore X(0) is 0, the first term of this equation becomes 0. In this case, we can factor out a U(s) from the remaining two terms:
    $\mathbf {Y} (s)=(C[sI-A]^{-1}B+D)\mathbf {U} (s)$
We can make the following substitution to obtain the Transfer Function Matrix, or more simply, the Transfer Matrix, H(s):
[Transfer Matrix]
    $C[sI-A]^{-1}B+D=\mathbf {H} (s)$
And rewrite our output equation in terms of the transfer matrix as follows:
[Transfer Matrix Description]
    $\mathbf {Y} (s)=\mathbf {H} (s)\mathbf {U} (s)$
If Y(s) and X(s) are 1 × 1 vectors (a SISO system), then we have our external description:
    $Y(s)=H(s)X(s)$
Now, since X(s) = X(s), and Y(s) = Y(s), then H(s) must be equal to H(s). These are simply two different ways to describe the same exact equation, the same exact system.

### Dimensions

If our system has q inputs, and r outputs, our transfer function matrix will be an r × q matrix.

### Relation to Transfer Function

For SISO systems, the Transfer Function matrix will reduce to the transfer function as would be obtained by taking the Laplace transform of the system response equation.
For MIMO systems, with n inputs and m outputs, the transfer function matrix will contain n × m transfer functions, where each entry is the transfer function relationship between each individual input, and each individual output.
Through this derivation of the transfer function matrix, we have shown the equivalency between the Laplace methods and the State-Space method for representing systems. Also, we have shown how the Laplace method can be generalized to account for MIMO systems. Through the rest of this explanation, we will use the Laplace and State Space methods interchangeably, opting to use one or the other where appropriate.

### Zero-State and Zero-Input

If we have our complete system response equation from above:
    $\mathbf {Y} (s)=C[sI-A]^{-1}\mathbf {x} (0)+(C[sI-A]^{-1}B+D)\mathbf {U} (s)$
We can separate this into two separate parts:
* $C[sI-A]^{-1}X(0)$ The Zero-Input Response.
* $(C[sI-A]^{-1}B+D)\mathbf {U} (s)$ The Zero-State Response.
These are named because if there is no input to the system (zero-input), then the output is the response of the system to the initial system state. If there is no state to the system, then the output is the response of the system to the system input. The complete response is the sum of the system with no input, and the input with no state.

## Discrete MIMO Systems

In the discrete case, we end up with similar equations, except that the X(0) initial conditions term is preceded by an additional z variable:
    $\mathbf {X} (z)=[zI-A]^{-1}zX(0)+[zI-A]^{-1}B\mathbf {U} (z)$
    $\mathbf {Y} (z)=C[zI-A]^{-1}zX(0)+C[zI-A]^{-1}B\mathbf {U} (z)+D\mathbf {U} (z)$
If X(0) is zero, that term drops out, and we can derive a Transfer Function Matrix in the Z domain as well:
    $\mathbf {Y} (z)=(C[zI-A]^{-1}B+D)\mathbf {U} (z)$
[Transfer Matrix]
    $C[zI-A]^{-1}B+D=\mathbf {H} (z)$
[Transfer Matrix Description]
    $\mathbf {Y} (z)=\mathbf {H} (z)\mathbf {U} (z)$

### Example: Pulse Response

For digital systems, it is frequently a good idea to write the pulse response equation, from the state-space equations:
    $x[k+1]=Ax[k]+Bu[k]$
    $y[k]=Cx[k]+Du[k]$
We can combine these two equations into a single difference equation using the coefficient matrices A, B, C, and D. To do this, we find the ratio of the system output vector, Y[n], to the system input vector, U[n]:
    ${\frac {Y(z)}{U(z)}}=H(z)=C(zI-A)^{-1}B+D$
So the system response to a digital system can be derived from the pulse response equation by:
    $Y(z)=H(z)U(z)$
And we can set U(z) to a step input through the following Z transform:
    $u(t)\Leftrightarrow U(z)={\frac {z}{z-1}}$
Plugging this into our pulse response we get our step response:
    $Y(z)=(C(zI-A)^{-1}B+D)\left({\frac {z}{z-1}}\right)$
    $\mathbf {Y} (z)=\mathbf {H} (z)\left({\frac {z}{z-1}}\right)$

## Controller Design

The controller design for MIMO systems is more extensive and thus more complicated than for SISO system. Ackermann's formula, the typical full state feedback design for SISO system, could not be used for MIMO systems because the additional inputs lead to an overdetermined system. This means, in case of MIMO systems, the feedback matrix K is not unique.
Approaches for the controller design are stated in Section Eigenvalue Assignment for MIMO Systems.
| ← Standard Forms | Control Systems | Realizations → |