Инвертируйте модели
inv
inv(sys,'min')
inv
инвертирует отношение ввода/вывода
произвести модель с матрицей передачи .
Эта операция задана только для квадратных систем (то же количество вводов и выводов) с обратимым проходным матричным D. inv
указатели, и непрерывные - и системы дискретного времени.
inv(sys,'min')
инвертирование sys
устранить дополнительные состояния и получить модель со столькими же состояний сколько sys
или A
соответственно. Для ss
, genss
и uss
модели, обратная модель возвращена в неявной форме по умолчанию. Эта опция проигнорирована для разреженных моделей, потому что она обычно уничтожает разреженность. Использование isproper
или ss(sys,'explicit')
извлекать явную модель при желании.
Рассмотреть
В подсказке 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
к связям обратной связи модели такой как
В то время как кажется разумным оценить соответствующую передаточную функцию с обратной связью как
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)