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