| Control System Toolbox™ | ![]() |
Co = ctrb(sys)
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
|
| (2-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.
Check if the system with the following data
A =
1 1
4 -2
B =
1 -1
1 -1
is controllable. Type
Co=ctrb(A,B); % Number of uncontrollable states unco=length(A)-rank(Co)
These commands produce the following result.
unco =
1
Estimating the rank of the controllability matrix is ill-conditioned; that is, it is very sensitive to roundoff 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.
![]() | covar | ctrbf | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |