Матрица наблюдаемости
obsv(A,C)
Ob = obsv(sys)
obsv вычисляет матрицу наблюдаемости для систем «состояние-пространство». Для матрицы n-by-n A и матрицу p-by-n C, obsv(A,C) возвращает матрицу наблюдаемости
1]
с n столбцами и строками np.
Ob = obsv(sys) вычисляет матрицу наблюдаемости модели state-space sys. Этот синтаксис эквивалентен выполнению
Ob = obsv(sys.A,sys.C)
Модель может наблюдаться, если Ob имеет полный ранг n.
Определите, является ли пара
A =
1 1
4 -2
C =
1 0
0 1
является наблюдаемым. Напечатать
Ob = obsv(A,C); % Number of unobservable states unob = length(A)-rank(Ob)
Эти команды дают следующий результат.
unob =
0
obsv здесь для образовательных целей и не рекомендуется для серьезного контроля конструкции. Вычисление ранга матрицы наблюдаемости не рекомендуется для проверки наблюдаемости. Ob будет численно единственным для большинства систем с более чем горсткой состояний. Этот факт хорошо документирован в контрольной литературе. Например, см. раздел III в [1].
[1] Пейдж, C. C. «Свойства численных алгоритмов, относящихся к управляемости вычислений». Транзакции IEEE при автоматическом управлении. Том 26, номер 1, 1981, стр. 130-138.