pract_pds
DESCRIPTION
Transformada ZTRANSCRIPT
Objetivo: Realizar distintos ejercicios numéricos de mano y con el uso de Matlab.
Ejercicio 1
Para la función Y (z), determinar los polos y ceros y ubicarlos dentro del plano z. Los teoremas del valor inicial y final son aplicables en dicha función. ¿Por qué? .Hallar sus valores.
Y ( z )= 0.792Z2
(Z−1)(Z2−0.416 Z+0.208)
Para hallar los polos y ceros de Y (z), introducimos los comandos:
z=tf(’z’);Yz=.792*z^2/((z-1)*(z^2-0.416*z+.208))[Ceros,polos,K]=zpkdata(Yz,’v’)
Vemos que hay un cero doble en el origen, un polo real en 1 y un par de polos complejos conjugados:
Ceros =00Polos =1.00000.2080 + 0.4059i0.2080 - 0.4059iK = 0.7920
Ahora, graficamos el plano z con los ceros y polos obtenidos:
[num,den]=tfdata(Yz,’v’);zplane(num,den)zgrid
Por el teorema del valor inicial:
Y ( t=0 )= limZ→∞
Y (Z )= limZ→∞
0.792Z2
Z3−1.416Z2+0.624 Z−0.208
¿ limZ→∞
0.792Z
1−1.416Z
+0.624
Z2−0.208
Z3
=0
Por el teorema del valor final:
Y ( t→∞ )=limZ→1
[1−Z−1Y (Z ) ]=limZ→1
Z−1Z
0.792 Z2
(Z−1)(Z2−0.416Z+0.208)=1
Estos teoremas son aplicables porque, por definición, existen los lımites calculados.
Ejercicio 2
Obtenga la transformada z de la siguiente función donde a es una constante. Grafique y compare en Matlab la función en tiempo continuo y la función en tiempo discreto.
X ( t )=1a(1−e−at)
Distribuyendo, tenemos
X ( t )=1a− e
−at
a¿
Luego, por la transformada del escalón y la propiedad lineal de la transformada z,
En el Matlab comparamos la respuesta del sistema continuo (en rojo) con la del sistema discreto (azul):
num=[0 1-exp(-1) 0];den=[1 -1-exp(-1) exp(-1)];t=0:0.2:10;xt=(1-exp(-t));plot(t,xt,’r’)hold;impz(num,den)
Ejercicio3Para la función G(z) = Y (z)/X(z), hallar la transformada inversa z mediante el método Matlab (comando filter) hasta k = 10. Graficar la secuencia (comando stem).
Y (z) = 0, 01409z3 + 0, 028z2 + 0, 01409zX(z) = z3 − 2, 7624z2 + 2, 5811z − 0, 8187
Con el siguiente programa graficamos los 10 primeros elementos de la secuencia de Y (z)/X(z).
num=[0.01409 0.028 0.01409 0];den=[1 -2.7624 2.5811 -0.8187];Xz=[1 zeros(1,10)];Yz=filter(num,den,Xz);n=0:1:10;stem(n,Yz);xlabel(’k’);
Ejercicio 4
Para la ecuación en diferencias encontrar la serie en forma recursiva realizando un programa en Matlab. Luego, hallar la transformada Z mediante cálculo de mano y luego, mediante el método de Matlab (comando filtre), encontrar la transformada inversa Z hasta k = 30. Verificar ambos gráficos y hallar conclusiones.
x(k + 2) = x(k + 1) + x(k), donde x(0) = 0 y x(1) = 1
Las transformadas z de x(k + 2), x(k + 1) y x(k) están dadas, respectivamente, por
Z[x(k + 2)] = z2X(z) − z2x(0) − zx(1)Z[x(k + 1)] = zX(z) − zx(0)Z[x(k)] = X(z)
Al tomar la transformada z de ambos miembros de la ecuación en diferencias dada, se obtienez2X(z) − z = zX(z) + X(z)
Que es la transformada z buscada.
Ahora utilizo el siguiente programa para comparar el metodo manual con el metodo de Matlab.Método manual
x(1)=0;x(2)=1;N=30;for k=1:N-1x(k+2)=x(k+1)+x(k)endn=0:N;subplot(2,1,2);stem(n,x,’r’);title(’Metodo manual’);%Metodo Matlabnum=[0 1 0];den=[1 -1 -1];n=0:1:N;x=[1 zeros(1,N)];y=filter(num,den,x);subplot(2,1,1);stem(n,y,’b’);title(’Metodo Matlab’);
Ejercicio 5Encontrar la expresión en forma cerrada de y[n] usando el método de la transformada Z. Donde u[n]representa la función escalón.
y[n] − (5/6)y[n − 1] + (1/6)y[n − 2] = (1/5)nu[n], donde y[−1] = 6 e y[−2] = 25
La transformada z de secuencias desplazadas es:Z[y(n − 1)] = Y (z)z−1 + y(−1)
Z[y(n − 2)] = Y (z)z−2 + y(−1)z−1 + y(−2)Además, la transformada z de anu[n] es,
Z[y(n − 1)] = Y (z)z−1 + y(−1)Z[y(n − 2)] = Y (z)z−2 + y(−1)z−1 + y(−2)
Además, la transformada z de anu[n] es,
Al tomar la transformada z de ambos miembros de la ecuación en diferencias dada, se obtiene
Despejando Y (z)/z, para luego aplicar el metodo de inversion por fracciones parciales
Factorizando el denominador, la función expandida tendrá la forma:
donde los coeficientes son:
La descomposición en fracciones parciales podrıa haberse realizado con Matlab, de la siguiente manera:
num=[0 11/6 -7/6 1/5];den=[1 -31/30 1/3 -1/30];[R,P,K]=residue(num,den)
R =1.5000-0.66671.0000
P =0.50000.33330.2000K =[ ]
Reemplazando y multiplicando ambos miembros por z:
La transformada inversa, resulta:
Que es la forma cerrada pedida.
Con el siguiente programa podemos comparar las secuencias obtenidas con la ecuaci´on de diferencias dada al comienzo del problema y la forma cerrada obtenida:
%Método iterativo - Ecuación de diferenciasy(1)=25;y(2)=6;N=30;u=[0 0 ones(1,N+1)];for n=1:N+1y(n+2)=(1/5)^(n-1)*u(n+2)+(5/6)*y(n+1)-(1/6)*y(n)endn=-2:N;subplot(2,1,1);stem(n,y);title(’Método iterativo - Ecuación de diferencias’);
%Método iterativo - Expresión en forma cerradafor n=1:N+1y(n)=3/(2^(n-2))-2/(3^(n-2))+1/(5^(n-3))endn=-2:N;subplot(2,1,2);stem(n,y,’r’);title(’Método iterativo - Expresión en forma cerrada’);
Ejercicio 6Resuelva la siguiente ecuacion en diferencias tanto de manera analıtica como por computadora con Matlab. La función de entrada u[k] = 1 para k = 0, 1, 2, . . ..x(k + 2) − x(k + 1) + 0, 25x(k) = u(k + 2), donde x(0) = 1 y x(1) = 2Las transformadas z de x(k), x(k + 1) y x(k + 2) estan dadas, respectivamente, por
Z[x(k)] = X(z)Z[x(k + 1)] = zX(z) − zx(0)Z[x(k + 2)] = z2X(z) − z2x(0) − zx(1)
Ademas, la transformada z de u[k + 2] es:
Ya que u(0) = u(1) = 1.
Al tomar la transformada z de ambos miembros de la ecuación en diferencias dada, se obtiene
Despejando X(z)/z, para luego aplicar el método de inversión por fracciones parciales:
La función expandida tendrá la forma:
Donde los coeficientes son:
Reemplazando y multiplicando ambos miembros por z:
La transformada inversa, resulta:
Con el siguiente programa podemos comparar las secuencias obtenidas con la ecuaci´on de diferencias dada al comienzo del problema y la forma cerrada obtenida:
%Método iterativo - Ecuación de diferenciasx(1)=1;x(2)=2;N=30;u=[ones(1,N+3)];for k=1:N-1
x(k+2)=u(k+2)+x(k+1)-0.25*x(k);endk=0:N;subplot(2,1,1);stem(k,x);title(’Método iterativo - Ecuación de diferencias’);
%Método iterativo - Expresión en forma cerradafor k=1:N+1x(k)=-(k-1)/(2^(k-1))-3/(2^(k-1))+4end k=0:N;subplot(2,1,2);stem(k,x,’r’);title(’Método iterativo - Expresión en forma cerrada’);
Ejercicio 7
Usar el método de la división directa para obtener la transformada z inversa. Decidir si el sistema es estable o no. ¿Por qué? Mostrar el diagrama de polos y ceros en el plano z. Si el sistema es inestable, implementar la modificación necesaria para que deje de serlo.
X (Z )=Z−1(1−Z−2)(1+Z−2)2
Primero, expreso X(z) en polinomios de z−1:
Luego, efectuando la división:
Comparando directamente X(z) = tenemos
x(0) = 0x(1) = 1x(2) = 0x(3) = −3x(4) = 0x(5) = 5x(6) = 0x(7) = −7x(8) = 0x(9) = 9...Como vemos, la secuencia x(n) es alternadamente creciente; por lo tanto, el sistema es inestable.Graficamos los polos y ceros de X(z) mediante la siguiente secuencia de comandos:
num=[0 1 0 -1 0];den=[1 0 2 0 1];zplane(num,den);
Ejercicio 8
Encuentre la transformada inversa Z utilizando el método de expansión en fracciones parciales y con el Matlab (comando residuos).
X (Z )= Z−1(0.5−Z−1)(1−0.5Z−1)(1−0.8 Z−1)
Multiplicamos numerador y denominador por z2 y luego, divido ambos miembros por z para expresar X(z)/z en potencias de z:
La función expandida tendrá la forma:
Donde los coeficientes son:
Reemplazando y multiplicando ambos miembros por z:
La descomposición en fracciones parciales podría haberse realizado con Matlab, de la siguiente manera:
num=[0 .5 -1]; % En potencias asc. de z^{-1} o desc de zden=[1 -1.3 .4];[R,P,K]=residuez(num,den)R =-2.50005.000P =0.80000.5000K =
-2.5Por simple inspeccion de la tabla, la transformada inversa resulta: x(k) = 5 · (0, 5)k − 2,5 · (0, 8)k − 2, 5 · (k) (5) que es el resultado de la ecuacion en diferencias en forma cerrada.
Para verificar el resultado, puedo compararlo con el metodo de Matlab.N=30;delta=[1 zeros(1,N)]%Metodo iterativo - Expresion en forma cerradafor k=1:N+1x(k)=5*(0.5)^(k-1)-2.5*(0.8)^(k-1)-2.5*delta(k);endk=0:N;subplot(2,1,1);stem(k,x);title(’Metodo iterativo - Expresion en forma cerrada’);%Metodo Matlabnum=[0 .5 -1];den=[1 -1.3 .4];n=0:1:N;x=[1 zeros(1,N)];y=filter(num,den,x);subplot(2,1,2);stem(n,y,’r’);title(’Metodo Matlab’);