Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

ctrb

Controllability matrix

Syntax

Co = ctrb(A,B)
Co = ctrb(sys)

Description

Co = ctrb(A,B) returns the controllability matrix:

Co=[BABA2BAn1B]

where A is an n-by-n matrix, B is an n-by-m matrix, and Co 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:

Co = ctrb(sys.A,sys.B);

The system is controllable if Co has full rank n.

Examples

collapse all

Define A and B matices.

A = [1  1;
     4 -2];
B = [1 -1;
     1 -1];

Compute controllability matrix.

Co = ctrb(A,B);

Determine the number of uncontrollable states.

unco = length(A) - rank(Co)
unco = 1

The uncontrollable state indicates that Co does not have full rank 2. Therefore the system is not controllable.

Limitations

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.

A=[1δ01],B=[1δ]

This pair is controllable if δ0 but if δ<eps, where eps is the relative machine precision. ctrb(A,B) returns

[BAB]=[11δδ]

which is not full rank. For cases like these, it is better to determine the controllability of a system using ctrbf.

See Also

|

Introduced before R2006a