| Control System Toolbox Function Reference | ![]() |
Form the controllability matrix
Syntax
Co = ctrb(A,B) Co = ctrb(sys)
Description
ctrb computes the controllability matrix for state-space systems. For an n-by-n matrix A and an n-by-m matrix B, ctrb(A,B) returns the controllability matrix
|
(0-1) |
where
has n rows and nm columns.
Co = ctrb(sys) calculates the controllability matrix of the state-space LTI object sys. This syntax is equivalent to executing
Co = ctrb(sys.A,sys.B)
The system is controllable if Co has full rank n.
Example
Check if the system with the following data
A =
1 1
4 -2
B =
1 -1
1 -1
Co=ctrb(A,B); % Number of uncontrollable states unco=length(A)-rank(Co)
unco =
1
Limitations
Estimating the rank of the controllability matrix is ill-conditioned; that is, it is very sensitive to round-off errors and errors in the data. An indication of this can be seen from this simple example.
This pair is controllable if
but if
, where eps is the relative machine precision. ctrb(A,B) returns
which is not full rank. For cases like these, it is better to determine the controllability of a system using ctrbf.
See Also
ctrbf Compute the controllability staircase form
obsv Compute the observability matrix
| covar | ctrbf | ![]() |