Contenido principal

inv

Invertir modelos de sistemas dinámicos

Sintaxis

inv
inv(sys,'min')

Descripción

inv invierte la relación entrada/salida

y=G(s)u

para producir el modelo con la matriz de transferencia H(s)=G(s)1.

u=H(s)y

Esta operación se define solo para sistemas cuadrados (mismo número de entradas y de salidas) con una matriz de alimentación invertible D. inv se ocupa de los sistemas tanto de tiempo continuo como de tiempo discreto.

inv(sys,'min') invierte sys para eliminar los estados adicionales y obtener un modelo con tantos estados como sys o A, respectivamente. Para modelos ss, genss y uss, el modelo inverso se devuelve en forma implícita de forma predeterminada. Esta opción se ignora para modelos dispersos porque normalmente acaba con la dispersión. Use isproper o ss(sys,'explicit') para extraer un modelo explícito, si lo desea.

Ejemplos

Considere

H(s)=[11s+101]

En la línea de comandos de MATLAB®, escriba

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

para invertirlo. Estos comandos generan el siguiente resultado.

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

Puede verificar que

H * Hi

es la función de transferencia de identidad (ganancia estática I).

Limitaciones

No utilice inv para modelar conexiones de retroalimentación como

Aunque parece razonable evaluar la correspondiente función de transferencia de lazo cerrado (I+GH)1G como

inv(1+g*h) * g

hacerlo normalmente genera modelos de lazo cerrado no mínimos. Por ejemplo,

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

genera un modelo de lazo cerrado de tercer orden con una cancelación de polos y ceros inestable a s = 1.

cloop

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

Use feedback para evitar estos problemas.

cloop = feedback(g,h)

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

Historial de versiones

Introducido antes de R2006a