## State-Space Realizations

A state-space realization is an implementation of a given input-output behavior. If a system is modeled by a transfer matrix H(s), then a realization is a set of matrices A, B, C, D such that $H\left(s\right)=C{\left(sI-A\right)}^{-1}B+D$. In other words, if the system has state vector x, the system behavior can be described by the state equations

`$\begin{array}{l}\stackrel{˙}{x}=Ax+Bu\\ y=Cx+Du.\end{array}$`

There are an infinite number of possible realizations of any system. A minimal realization is any realization in which A has the smallest possible dimension. That is, a given realization A, B, C, D is minimal if there is no other realization A', B', C', D' where A' has smaller dimensions than A.

A state transformation is a rotation of the state vector by an invertible matrix T such that $\stackrel{^}{x}=Tx$. State transformation yields an equivalent state-space representation of the system, with

`$\begin{array}{l}\stackrel{^}{A}=TA{T}^{-1}\\ \stackrel{^}{B}=TB\\ \stackrel{^}{C}=C{T}^{-1}\\ \stackrel{^}{D}=D.\end{array}$`

Certain minimal realizations known as canonical forms can be useful for some types of dynamic-system theory and analysis. This topic summarizes some of these canonical forms and related transformations.

### Modal Form

Modal form is a diagonalized form that separates the system eigenvalues. 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 instance, for a system with eigenvalues $\left({\lambda }_{1},\sigma ±j\omega ,{\lambda }_{2}\right)$, the modal A matrix is of the form

`${A}_{m}=\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].$`

#### Obtaining Modal Form

Modal form is the default form returned by the `canon` command, `Hmod = canon(H)`.

When performing system identification using `ssest`, obtain modal form by setting `Form` to `modal`.

### Controllable Companion Form

In companion realizations, the characteristic polynomial of the system appears explicitly in the A matrix. For a SISO system with characteristic polynomial

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

the corresponding controllable companion form has

For multi-input systems, Accom has the same form, and the first column of Bccom is as shown. This form does not impose a particular structure on the rest of Bccom or on Cccom and Dccom.

#### Obtaining Controllable Companion Form

The command `canon(H,"companion")` computes a controllable companion-form realization of `H` by using the state transformation `T = ctrb(H.A,H.B)` to put the A matrix into companion form.

When performing system identification using commands such as `ssest` or `n4sid`, obtain companion form by setting `Form` to `companion`.

The companion transformation requires that the system be 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.

### Observable Companion Form

A related form is obtained using the observability state transformation ```T = obsv(H.A,H.B)``` instead of `T = ctrb(H.A,H.B)`. This form is the dual (transpose) of controllable companion form, as follows:

`$\begin{array}{l}{A}_{ocom}={A}_{ccom}^{T}\\ {B}_{ocom}={C}_{ccom}^{T}\\ {C}_{ocom}={B}_{ccom}^{T}\\ {D}_{ocom}={D}_{ccom}^{T}.\end{array}$`

In particular,

`${A}_{ocom}=\left[\begin{array}{ccc}\begin{array}{l}0\\ 0\\ 0\\ ⋮\\ 0\\ -{\alpha }_{0}\end{array}& \begin{array}{l}1\\ 0\\ 0\\ ⋮\\ 0\\ -{\alpha }_{1}\end{array}& \begin{array}{ccc}\begin{array}{cc}\begin{array}{l}0\\ 1\\ 0\\ ⋮\\ 0\\ -{\alpha }_{2}\end{array}& \begin{array}{l}0\\ 0\\ 1\\ ⋮\\ 0\\ -{\alpha }_{3}\end{array}\end{array}& \begin{array}{l}\dots \\ \dots \\ \dots \\ \ddots \\ \dots \\ \dots \end{array}& \begin{array}{l}0\\ 0\\ 0\\ ⋮\\ 1\\ -{\alpha }_{n-1}\end{array}\end{array}\end{array}\right],\text{ }{C}_{ocom}=\left[\begin{array}{cccc}1& 0& \dots & 0\end{array}\right].$`

This form is sometimes known as observability canonical form [1], but it is different from observable canonical form.

#### Obtaining Observable Companion Form

When performing system identification using commands such as `ssest` or `n4sid`, obtain this form by setting `Form` to `canonical`.

When using the `canon` command, you can obtain observable companion form from the controllable companion form by performing the transpositions yourself. For example, for a state-space (`ss`) model `H`:

```Hccom = canon(H,"companion"); Hocom = ss; Hocom.A = Hccom.A'; Hocom.B = Hccom.C'; Hocom.C = Hccom.B'; Hocom.D = Hccom.D';```

### Controllable Canonical Form

For a strictly proper system with the transfer function

`$H\left(s\right)=\frac{{\beta }_{n-1}{s}^{n-1}+\dots +{\beta }_{1}s+{\beta }_{0}}{{s}^{n}+{\alpha }_{n-1}{s}^{n-1}+\dots +{\alpha }_{1}s+{\alpha }_{0}}+{d}_{0},$`

the controllable canonical form [2] is given by:

`$\begin{array}{l}{A}_{cont}=\left[\begin{array}{ccc}\begin{array}{l}0\\ 0\\ 0\\ ⋮\\ 0\\ -{\alpha }_{0}\end{array}& \begin{array}{l}1\\ 0\\ 0\\ ⋮\\ 0\\ -{\alpha }_{1}\end{array}& \begin{array}{ccc}\begin{array}{cc}\begin{array}{l}0\\ 1\\ 0\\ ⋮\\ 0\\ -{\alpha }_{2}\end{array}& \begin{array}{l}0\\ 0\\ 1\\ ⋮\\ 0\\ -{\alpha }_{3}\end{array}\end{array}& \begin{array}{l}\dots \\ \dots \\ \dots \\ \ddots \\ \dots \\ \dots \end{array}& \begin{array}{l}0\\ 0\\ 0\\ ⋮\\ 1\\ -{\alpha }_{n-1}\end{array}\end{array}\end{array}\right],\text{ }{B}_{cont}=\left[\begin{array}{c}0\\ 0\\ ⋮\\ \begin{array}{l}0\\ 1\end{array}\end{array}\right],\\ {C}_{cont}=\left[\begin{array}{cccc}{\beta }_{0}& {\beta }_{1}& \dots & {\beta }_{n-1}\end{array}\right],\text{ }\text{ }\text{ }\text{ }\text{ }\text{ }\text{ }\text{ }\text{\hspace{0.17em}}{D}_{cont}={d}_{0}.\end{array}$`

In this form, the coefficients of the characteristic polynomial appear in the last row of Acont. Controllable canonical form is a minimal realization in which all model states are controllable. Like companion form and observable canonical form, it can be ill-conditioned for computation.

#### Obtaining Controllable Canonical Form

There is no MATLAB® command for directly computing controllable canonical form. However, if you can obtain the system in the transfer-function form H(s), then you can use the coefficients ɑ0,…,ɑn–1, β0,…,βn–1, and d0 to construct the controllable canonical-form matrices in MATLAB. Then, create the system with the `ss` command..

### Observable Canonical Form

The observable canonical form of a system is the dual (transpose) of its controllable canonical form. In this form, the characteristic polynomial of the system appears explicitly in the last column of the `A` matrix. Observable canonical form can be obtained from the controllable canonical form as follows:

`$\begin{array}{l}{A}_{obs}={A}_{cont}^{T}\\ {B}_{obs}={C}_{cont}^{T}\\ {C}_{obs}={B}_{cont}^{T}\\ {D}_{obs}={D}_{cont}^{T}.\end{array}$`

Thus, for the system with transfer function

`$H\left(s\right)=\frac{{\beta }_{n-1}{s}^{n-1}+\dots +{\beta }_{1}s+{\beta }_{0}}{{s}^{n}+{\alpha }_{n-1}{s}^{n-1}+\dots +{\alpha }_{1}s+{\alpha }_{0}}+{d}_{0},$`

the observable canonical form [2] is given by:

Like the companion form, in this form, the coefficients of the characteristic polynomial appear in the last column of Aobs. Observable canonical form is a minimal realization in which all model states are observable.

#### Obtaining Observable Canonical Form

As with controllable canonical form, there is no MATLAB command for directly computing observable canonical form. However, if you can obtain the system in the transfer-function form H(s), then you can use the coefficients ɑ0,…,ɑn–1, β0,…,βn–1, and d0 to construct the observable canonical-form matrices in MATLAB. Then, create the system with the `ss` command.

## References

[1] Baillieul, John, "Observability Canonical Form and the Theory of Observers," lecture notes, November 15, 2012, accessed June 10, 2022, https://people.bu.edu/johnb/501Lecture19.pdf.

[2] Gillis, James T., "State Space." In Control System Fundamentals., edited by William S. Levine, 2d ed. The Electrical Engineering Handbook Series. Boca Raton: CRC Press, 2011.