Transformada z en matlab para Series y Transformadas

11  1484  Descargar (0)

Texto completo

(1)

Gu´ıa 1: Ejercicios sobre transformada z

Alumno: Guillermo M. Tabeni Couvert

Profesor: Ing. Carlos A. Espinoza

J.T.P.: Ing. Daniel R. Graff

atedra de Ingenier´ıa Industrial

Universidad Tecnol´

ogica Nacional, F.R.A.

2 de julio de 2007

Objetivo: Realizar distintos ejercicios num´ericos de mano y con el uso de Matlab.

Ejercicio 1

Para la funci´on 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´on. ¿Por qu´e? Hallar sus valores.

Y (z) = 0, 792z

2

(z − 1)(z2− 0, 416z + 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 = 0 0 polos = 1.0000 0.2080 + 0.4059i 0.2080 - 0.4059i K = 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) = l´ım z→∞Y (z) = l´ımz→∞ 0, 792z2 z3− 1, 416z2+ 0, 624z − 0, 208 = l´ım z→∞ 0, 792/z 1 − 1, 416/z + 0, 624/z2− 0, 208/z3 = 0

Por el teorema del valor final: y(t → ∞) = l´ım z→1[1 − z −1Y (z)] = l´ım z→1 z − 1 z 0, 792z2 (z − 1)(z2− 0, 416z + 0, 208) = l´ım z→1 0, 792z z2− 0, 416z + 0, 208 = 1

(2)

Ejercicio 2

Obtenga la transformada z de la siguiente funci´on donde a es una constante. Grafique y compare en Matlab la funci´on en tiempo continuo y la funci´on en tiempo discreto.

x(t) = 1 a(1 − e −at) Distribuyendo, tenemos x(t) = 1 a− e−at a

Luego, por la transformada del escal´on y la propiedad lineal de la transformada z,

X(z) = 1 a(1 − z−1)− 1 a(1 − e−akz−1) = 1 − e −akz−1− 1 + z−1 a(1 − z−1)(1 − e−akz−1) = 1 a  z−1(1 − e−ak) 1 − z−1(1 + e−ak) + z−2e−ak  (1) 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;

(3)

Para la funci´on G(z) = Y (z)/X(z), hallar la transformada inversa z mediante el m´etodo Matlab (comando filter) hasta k = 10. Graficar la secuencia (comando stem).

Y (z) = 0, 01409z3+ 0, 028z2+ 0, 01409z

X(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’);

(4)

Ejercicio 4

Para la ecuaci´on en diferencias encontrar la serie en forma recursiva realizando un programa en Matlab. Luego, hallar la transformada Z mediante c´alculo de mano y luego, mediante el m´etodo de Matlab (comando filter), encontrar la transformada inversa Z hasta k = 30. Verificar ambos gr´aficos 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´an 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 las transformadas z de ambos miembros de la ecuaci´on en diferencias dada, se obtiene z2X(z) − z = zX(z) + X(z)

donde se han reemplazado las condiciones iniciales dadas. Finalmente, despejando y simplificando,

X(z) = z

z2− z − 1 (2)

que es la transformada z buscada.

Ahora utilizo el siguiente programa para comparar el m´etodo manual con el m´etodo de Matlab.

%Metodo manual x(1)=0; x(2)=1; N=30; for k=1:N-1 x(k+2)=x(k+1)+x(k) end n=0:N; subplot(2,1,2); stem(n,x,’r’); title(’Metodo manual’); %Metodo Matlab num=[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’);

(5)

Encontrar la expresi´on en forma cerrada de y[n] usando el m´etodo de la transformada Z. Donde u[n] representa la funci´on escal´on.

y[n] − (5/6)y[n − 1] + (1/6)y[n − 2] = (1/5)nu[n], donde y[−1] = 6 e y[−2] = 25

Las transformadas z de secuencias desplazadas son:

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´as, la transformada z de anu[n] es,

Z[anu(n)] = 1

1 − (z/a)−1

Al tomar las transformadas z de ambos miembros de la ecuaci´on en diferencias dada, se obtiene Y (z) −5 6Y (z)z −1+ 6 +1 6Y (z)z −2+ 6z−1+ 25 = 1 1 −z −1 5 Y (z)  z2−5 6z + 1 6  − 5z2+ z + 25 6 z 2= z3 z −1 5 Y (z)  z3−31 30z 2+1 3z − 1 30  = 11 6 z 3 −7 6z 2+1 5z Despejando Y (z)/z, para luego aplicar el m´etodo de inversi´on por fracciones parciales:

Y (z) z = 11 6z 27 6z + 1 5 z331 30z 2+1 3z − 1 30 Factorizando el denominador, la funci´on expandida tendr´a la forma:

Y (z) z = a1 z −1 2 + a2 z −1 3 + a3 z −1 5

(6)

donde los coeficientes son: a1=  (z − 1 2) · Y (z) z  z=1 2 = 3 2 a2=  (z − 1 3) · Y (z) z  z=1 3 = −2 3 a3=  (z − 1 5) · Y (z) z  z=1 5 = 1

La descomposici´on 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.6667 1.0000 P = 0.5000 0.3333 0.2000 K = []

Reemplazando y multiplicando ambos miembros por z: Y (z) = 3/2 1 − 12z−1 − 2/3 1 −13z−1 + 1 1 −15z−1

La transformada inversa, resulta:

y(n) = 3 2n+1− 2 3n+1+ 1 5n (3)

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:

%Metodo itarativo - Ecuacion de diferencias y(1)=25; y(2)=6; N=30; u=[0 0 ones(1,N+1)]; for n=1:N+1 y(n+2)=(1/5)^(n-1)*u(n+2)+(5/6)*y(n+1)-(1/6)*y(n) end n=-2:N; subplot(2,1,1); stem(n,y);

title(’Metodo itarativo - Ecuacion de diferencias’);

%Metodo iterativo - Expresion en forma cerrada for n=1:N+1 y(n)=3/(2^(n-2))-2/(3^(n-2))+1/(5^(n-3)) end n=-2:N; subplot(2,1,2); stem(n,y,’r’);

(7)

Resuelva la siguiente ecuaci´on en diferencias tanto de manera anal´ıtica como por computadora con Matlab. La funci´on 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) = 2

Las transformadas z de x(k), x(k + 1) y x(k + 2) est´an 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)

Adem´as, la transformada z de u[k + 2] es

Z[u(k + 2)] = z2U (z) − z2u(0) − zu(1) = z2

1 − z−1 − z 2− z

ya que u(0) = u(1) = 1.

Al tomar las transformadas z de ambos miembros de la ecuaci´on en diferencias dada, se obtiene z2X(z) − z2− 2z − zX(z) + z + 0, 25X(z) = z

2

1 − z−1 − z 2− z

Despejando X(z)/z, para luego aplicar el m´etodo de inversi´on por fracciones parciales: X(z) z = z2 z3− 2z2+ 1, 25z − 0, 25 = z2 (z − 1)(z −12)2

La funci´on expandida tendr´a la forma: X(z) z = a1 (z −12)2 + a2 z −12 + a3 z − 1 donde los coeficientes son:

a1=  (z −1 2) 2 ·X(z) z  z=1 2 = −1 2 a2=  d dz  (z − 12)2·X(z) z  z=1 2 = −3 a3=  (z − 1) ·X(z) z  z=1 = 4

(8)

Reemplazando y multiplicando ambos miembros por z: X(z) = − 1 2z −1 (1 − 12z−1)2 − 3 1 − 12z−1 + 4 1 − z−1

La transformada inversa, resulta:

x(k) = −k 2k −

3

2k + 4 (4)

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:

%Metodo itarativo - Ecuacion de diferencias x(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); end k=0:N; subplot(2,1,1); stem(k,x);

title(’Metodo itarativo - Ecuacion de diferencias’);

%Metodo iterativo - Expresion en forma cerrada for k=1:N+1

x(k)=-(k-1)/(2^(k-1))-3/(2^(k-1))+4 end k=0:N;

subplot(2,1,2); stem(k,x,’r’);

title(’Metodo iterativo - Expresion en forma cerrada’);

Ejercicio 7

Usar el m´etodo de la divisi´on directa para obtener la transformada z inversa. Decidir si el sistema es estable o no. ¿Por qu´e? Mostrar el diagrama de polos y ceros en el plano z. Si el sistema es inestable, implementar la modificaci´on necesaria para que deje de serlo.

(9)

X(z) =

(1 + z−2)2

Primero, expreso X(z) en polinomios de z−1: X(z) = z

−1− z−3

1 + 2x−2+ z−4

Luego, efectuando la divisi´on:

+z−1 −z−3 /1 + 2z−2+ z−4 −z−1 −2z−3 −z−5 z−1− 3z−3+ 5z−5− 7z−7+ 9z−9− · · · −3z−3 −z−5 +3z−3 +6z−5 +3z−7 +5z−5 +3z−7 −5z−5 −10z−7 −5z−9 −7z−7 −5z−9 . . . . Comparando directamente X(z) =P∞ 0 x(k)z−k, tenemos x(0) = 0 x(1) = 1 x(2) = 0 x(3) = −3 x(4) = 0 x(5) = 5 x(6) = 0 x(7) = −7 x(8) = 0 x(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);

(10)

Confirmamos con el diagrama de polos y ceros que el sistema es inestable, ya que posee polos m´ultiples sobre el c´ırculo unitario (es condici´on suficiente, p´ag. 183 del libro de Ogata).

Ejercicio 8

Encuentre la transformada inversa Z utilizando el m´etodo de expansi´on en fracciones parciales y con el Matlab (comando residuez).

X(z) = z

−1(0, 5 − z−1)

(1 − 0, 5z−1)(1 − 0, 8z−1)

Multiplicamos numerador y denominador por z2 y luego, divido ambos miembros por z para expresar

X(z)/z en potencias de z:

X(z)

z =

0, 5(z − 2) z(z − 0, 5)(z − 0, 8) La funci´on expandida tendr´a la forma:

X(z) = a1 z − 0, 5+ a2 z − 0, 8+ a3 z donde los coeficientes son:

a1=  (z − 0, 5) ·Y (z) z  z=0,5 = 5 a2=  (z − 0, 8) ·Y (z) z  z=0,8 = −2, 5 a3=  (z) ·Y (z) z  z=0 = −2, 5 Reemplazando y multiplicando ambos miembros por z:

X(z) = 5

1 − 0, 5z−1 −

2, 5

1 − 0, 8z−1 − 2, 5

La descomposici´on 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 z den=[1 -1.3 .4]; [R,P,K]=residuez(num,den) R = -2.5000 5.000 P = 0.8000 0.5000 K = -2.5

Por simple inspecci´on 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 ecuaci´on en diferencias en forma cerrada.

Para verificar el resultado, puedo compararlo con el m´etodo de Matlab.

N=30;

delta=[1 zeros(1,N)]

%Metodo iterativo - Expresion en forma cerrada for k=1:N+1

(11)

k=0:N;

subplot(2,1,1); stem(k,x);

title(’Metodo iterativo - Expresion en forma cerrada’);

%Metodo Matlab num=[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’);

Figure

Actualización...

Referencias

Actualización...

Related subjects :