1 votos

Convirtiendo de dominio z a s en MATLAB

Tengo problemas para convertir esta función de transferencia $H(z)$ a $H(s)$ en MATLAB:

Ts = 12000; % tiempo de muestreo 
z = tf('z',Ts);
H = (0.005276*z^-1) / (1- 2.912*z^-1 + 2.826*z^-2 -0.914*z^-3);

Intenté con una función incorporada como:

Hc = d2c(H)

Pero esto me da el siguiente error:

Error using DynamicSystem/d2c (line 100) The "zoh" and "foh" methods cannot be used for discrete models with poles near z=0.

¿Cómo puedo convertir este $H(z)$ a $H(s)$? Quiero producir diagramas de Bode usando $H(s)$.

1voto

EdG Puntos 310

Esto es el resultado del hecho de que matlab multiplica el numerador y el denominador con $z^6$ (lo cual es un poco estúpido, pero esto es lo que hace Matlab). Esto resulta en una función de transferencia con ceros y polos en $z=0$. $H(z)$ no es la realización minimal, es decir, tienes ceros y polos que son iguales, por lo que hay dos formas de solucionarlo. Una es transformando tu función de transferencia a una realización minimal usando minreal:

H = minreal(H);

La otra opción, que prefiero, es definir la función de transferencia de una manera diferente:

H = tf([0.005276 0 0], [1 -2.912 2.826 -0.914], Ts);

Ahora deberías ser capaz de calcular la función de transferencia continua con:

Hc = d2c(H);

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X