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