## Canonical State-Space Realizations

State-space models can be realized in the following standard forms:

• Modal Canonical Form

• Companion Canonical Form

• Observable Canonical Form

• Controllable Canonical Form

### Modal Canonical Form

In modal form, A is a block-diagonal matrix. The block size is typically 1-by-1 for real eigenvalues and 2-by-2 for complex eigenvalues. However, if there are repeated eigenvalues or clusters of nearby eigenvalues, the block size can be larger.

For example, for a system with eigenvalues $\left({\lambda }_{1},\sigma ±j\omega ,{\lambda }_{2}\right)$, the modal A matrix is of the form

`$\left[\begin{array}{cccc}{\lambda }_{1}& 0& 0& 0\\ 0& \sigma & \omega & 0\\ 0& -\omega & \sigma & 0\\ 0& 0& 0& {\lambda }_{2}\end{array}\right]$`

### Companion Canonical Form

In the companion realization, the characteristic polynomial of the system appears explicitly in the rightmost column of the A matrix. You can obtain the companion canonical form of your system by using the `canon``canon` (System Identification Toolbox) command in the following way:

`csys = canon(sys,'companion')`

For a system with characteristic polynomial

`$P\left(s\right)={s}^{n}+{\alpha }_{1}{s}^{n-1}+\dots +{\alpha }_{n-1}s+{\alpha }_{n}$`

the corresponding companion A matrix is

The companion transformation requires that the system is controllable from the first input. The transformation to companion form is based on the controllability matrix which is almost always numerically singular for mid-range orders. Hence, avoid using it for computation when possible. The companion canonical form is that same as the observable canonical form.

### Observable Canonical Form

The observable canonical form is the same as the companion canonical form where the characteristic polynomial of the system appears explicitly in the rightmost column of the `A` matrix. You can obtain the observable canonical form of your system by using the `canon` command in the following way:

`csys = canon(sys,'companion')`

For a system with defined by the transfer function

the corresponding matrices are:

`${C}_{o}=\left[\begin{array}{cccc}\begin{array}{cc}0& 0\end{array}& \cdots & 0& 1\end{array}\right]$`
`${D}_{o}={b}_{0}$`

The observable canonical form which is the same as the companion form is poorly conditioned for most state-space computation. The transformation of the system to companion form is based on the controllability matrix which is almost always numerically singular for mid-range orders. Hence, avoid using it for computation when possible.

### Controllable Canonical Form

The controllable canonical form of a system is the transpose of its observable canonical form where the characteristic polynomial of the system appears explicitly in the last row of the `A` matrix.

For a system with defined by the transfer function

the corresponding matrices are:

`${B}_{c}=\left[\begin{array}{c}\begin{array}{l}0\\ 0\end{array}\\ ⋮\\ \begin{array}{l}0\\ 1\end{array}\end{array}\right]$`

`${D}_{c}={b}_{0}$`

The relationship between the observable and controllable canonical realizations are as follows:

`$\begin{array}{l}{A}_{c}={A}_{o}^{T}\\ {B}_{c}={C}_{o}^{T}\\ {C}_{c}={B}_{o}^{T}\\ {D}_{c}={D}_{o}\end{array}$`

The controllable canonical form is useful for controller design using pole placement method. However, the transformation of the system to companion form is based on the controllability matrix which is almost always numerically singular for mid-range orders. Hence, avoid using the controllable form for computation when possible.