# ctrb

Controllability of state-space model

## Description

A dynamic system is said to be *controllable* if it is possible
to apply control signals that drive the system to any state within a finite amount of time.
This characteristic is also called *reachability*. `ctrb`

computes a controllability matrix from state matrices or from a state-space model. You can use
this matrix to determine controllability.

For instance, consider a continuous-time state-space model with `Nx`

states, `Ny`

outputs, and `Nu`

inputs:

$$\begin{array}{l}\dot{x}=Ax+Bu\\ y=Cx+Du\end{array}$$

Here, `x`

, `u`

and `y`

represent the states, inputs and outputs respectively, while `A`

,
`B`

, `C`

and `D`

are the state-space
matrices with the following sizes:

`A`

is an`Nx`

-by-`Nx`

real-valued or complex-valued matrix.`B`

is an`Nx`

-by-`Nu`

real-valued or complex-valued matrix.`C`

is an`Ny`

-by-`Nx`

real-valued or complex-valued matrix.`D`

is an`Ny`

-by-`Nu`

real-valued or complex-valued matrix.

The system is controllable if the controllability matrix generated by
`ctrb`

$$Co=\left[\begin{array}{ccccc}B& AB& {A}^{2}B& \dots & {A}^{n-1}B\end{array}\right]$$ has full rank, that is, the rank is equal to the number of states in the
state-space model. The controllability matrix `Co`

has `Nx`

rows and `Nxu`

columns. For an example, see Controllability of SISO State-Space Model.

## Examples

## Input Arguments

## Output Arguments

## References

[1] Paige, C. C. "Properties of
Numerical Algorithms Related to Computing Controllability." *IEEE Transactions on
Automatic Control*. Vol. 26, Number 1, 1981, pp. 130-138.

## Version History

**Introduced before R2006a**