ctrb

Матрица управляемости

Синтаксис

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

Описание

Co = ctrb(A,B) возвращает матрицу управляемости:

Co=[BABA2BAn1B]

где A является n-by-n матрица, B является n-by-m матрица, и Co имеет строки n и столбцы nm.

Co = ctrb(sys) вычисляет матрицу управляемости объекта LTI пространства состояний sys. Этот синтаксис эквивалентен:

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

Система управляема если Co имеет полный ранг n.

Примеры

свернуть все

Задайте A и B матрицы.

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

Вычислите матрицу управляемости.

Co = ctrb(A,B);

Определите количество неконтролируемых состояний.

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

Неконтролируемое состояние указывает на тот Co не имеет полного ранга 2. Поэтому система не управляема.

Ограничения

Оценка ранга матрицы управляемости плохо обусловлена; то есть, это очень чувствительно к ошибкам округления и ошибкам в данных. Индикация относительно этого видна из этого простого примера.

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

Эта пара управляема если δ0 но если δ<eps, где eps является относительной точностью машины. ctrb(A,B) возвращается

[BAB]=[11δδ]

который не является полным рангом. Для случаев как они лучше определить управляемость системного использования ctrbf.

Смотрите также

|

Представлено до R2006a