# Control Systems/MIMO Systems

## 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

## 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):

$$C[sI - A]^{-1}B + D = \mathbf{H}(s)$$

And rewrite our output equation in terms of the transfer matrix as
follows:

$$\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)$$


$$C[zI - A]^{-1}B + D = \mathbf{H}(z)$$


$$\mathbf{Y}(z) = \mathbf{H}(z)\mathbf{U}(z)$$

{{-}}

### Example: Pulse Response

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

