inv

Инвертируйте модели

Синтаксис

inv
inv(sys,'min')

Описание

inv инвертирует отношение вход/выход

y=G(s)u

для создания модели с передаточной матрицей H(s)=G(s)1.

u=H(s)y

Эта операция определяется только для квадратных систем (такое же количество входов и выходов) с инвертируемым сквозным соединением матрицы D. inv обрабатывает как системы непрерывного, так и системы дискретного времени.

inv(sys,'min') инвертирует sys чтобы исключить дополнительные состояния и получить модель с таким количеством состояний, как sys или A соответственно. Для ss, genss и uss модели, обратная модель возвращается в неявной форме по умолчанию. Эта опция игнорируется для разреженных моделей, потому что она обычно уничтожает разреженность. Использовать isproper или ss(sys,'explicit') для извлечения явной модели при необходимости.

Примеры

Рассмотреть

H(s)=[11s+101]

В MATLAB® приглашение, тип

H = [1 tf(1,[1 1]);0 1]
Hi = inv(H)

чтобы инвертировать его. Эти команды дают следующий результат.

Transfer function from input 1 to output...
 #1:  1
 
 #2:  0
 
Transfer function from input 2 to output...
       -1
 #1:  -----
      s + 1
 
 #2:  1

Можно проверить, что

H * Hi

- передаточная функция тождеств (статический коэффициент усиления I).

Ограничения

Не используйте inv для моделирования соединений обратной связи, таких как

Хотя представляется разумным оценить соответствующую передаточную функцию с обратной связью (I+GH)1G как

inv(1+g*h) * g

это обычно приводит к неминимальным моделям с обратной связью. Для примера,

g = zpk([],1,1)
h = tf([2 1],[1 0])
cloop = inv(1+g*h) * g

приводит к модели с обратной связью третьего порядка с нестабильным удалением нулей-полюсов в s = 1.

cloop

Zero/pole/gain:
      s (s-1)
-------------------
(s-1) (s^2 + s + 1)

Использование feedback чтобы избежать таких подводных камней.

cloop = feedback(g,h)

Zero/pole/gain:
      s
-------------
(s^2 + s + 1)
Представлено до R2006a