## Documentation Center |

Compute controllability staircase form

`[Abar,Bbar,Cbar,T,k] = ctrbf(A,B,C)ctrbf(A,B,C,tol)`

If the controllability matrix of
(*A*, *B*) has rank *r* ≤ *n*,
where *n* is the size of *A*, then
there exists a similarity transformation such that

where *T* is unitary, and the transformed system
has a *staircase* form, in which the uncontrollable
modes, if there are any, are in the upper left corner.

where (*A _{c}*,

`[Abar,Bbar,Cbar,T,k] = ctrbf(A,B,C)` decomposes
the state-space system represented by `A`, `B`,
and `C` into the controllability staircase form, `Abar`, `Bbar`,
and `Cbar`, described above. `T` is
the similarity transformation matrix and `k` is a
vector of length *n*, where *n* is
the order of the system represented by `A`. Each
entry of `k` represents the number of controllable
states factored out during each step of the transformation matrix
calculation. The number of nonzero elements in `k` indicates
how many iterations were necessary to calculate `T`,
and `sum(k)` is the number of states in *A _{c}*,
the controllable portion of

`ctrbf(A,B,C,tol)` uses the tolerance `tol` when
calculating the controllable/uncontrollable subspaces. When the tolerance
is not specified, it defaults to `10*n*norm(A,1)*eps`.

Compute the controllability staircase form for

A = 1 1 4 -2 B = 1 -1 1 -1 C = 1 0 0 1

and locate the uncontrollable mode.

[Abar,Bbar,Cbar,T,k]=ctrbf(A,B,C) Abar = -3.0000 0 -3.0000 2.0000 Bbar = 0.0000 0.0000 1.4142 -1.4142 Cbar = -0.7071 0.7071 0.7071 0.7071 T = -0.7071 0.7071 0.7071 0.7071 k = 1 0

The decomposed system `Abar` shows an uncontrollable
mode located at -3 and a controllable mode located at 2.

Was this topic helpful?