Матрица наблюдаемости
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.