Матрица наблюдаемости
obsv(A,C)
Ob = obsv(sys)
obsv вычисляет матрицу наблюдаемости для систем в пространстве состояний. Для n -by n матрицы A и матрицу p -by n C, obsv(A,C) возвращает матрицу наблюдаемости
с n столбцами и np строками.
Ob = obsv(sys) вычисляет матрицу наблюдаемости модели пространства состояний 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] Paige, C. C. «Свойства численных алгоритмов, связанных с управляемостью вычислениями». Транзакции IEEE по автоматическому управлению. Том 26, № 1, 1981, с. 130-138.