Матрица наблюдаемости
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] Пэйдж, C. C. "Свойства Числовых Алгоритмов, Связанных с Вычислением Управляемости". Транзакции IEEE на Автоматическом управлении. Издание 26, Номер 1, 1981, стр 130-138.