24
SISTEMAS DE CONTROL DIGITAL LABORATORIO Nº 3 USO DE LA TRANSFORMADA “Z”. CÁLCULO MANUAL Y CON MATLAB 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é? Halla los valores. Y ( Z)= 0.792 z 2 ( z1) ( z 2 0.416 z+0.208 ) Para hallar los polos y ceros de esta función transferencia seguimos los siguientes pasos: Escribimos el siguiente comando para especificar una función transferencia en el dominio Z. >> z=tf('z'); Escribimos en la variable” Yz” nuestra función transferencia. >> Yz=.792*z^2/((z-1)*(z^2-0.416*z+.208)) Transfer function: 0.792 z^2 ------------------------------------------- z^3 - 1.416 z^2 + 0.624 z - 0.208 Sampling time: unspecified Con este comando Extraemos los polos y ceros de la función transferencia Z >> [ceros,polos,K]=zpkdata(Yz,'v') ceros = 0 0

Sistemas de Control Digital Impares

Embed Size (px)

DESCRIPTION

salazar

Citation preview

SISTEMAS DE CONTROL DIGITAL LABORATORIO N 3USO DE LA TRANSFORMADA Z. CLCULO MANUAL Y CON MATLAB1. Para la funcin Y(Z),determinar los polos y ceros y ubicarlos dentro del plano z. Los teoremas del valor inicial y final son aplicables en dicha funcin. Por qu? Halla los valores.

Para hallar los polos y ceros de esta funcin transferencia seguimos los siguientes pasos:

Escribimos el siguiente comando para especificar una funcin transferencia en el dominio Z.>> z=tf('z'); Escribimos en la variable Yz nuestra funcin transferencia.>> Yz=.792*z^2/((z-1)*(z^2-0.416*z+.208))Transfer function: 0.792 z^2------------------------------------------- z^3 - 1.416 z^2 + 0.624 z - 0.208Sampling time: unspecified Con este comando Extraemos los polos y ceros de la funcin transferencia Z>> [ceros,polos,K]=zpkdata(Yz,'v')ceros = 0 0polos = 1.0000 0.2080 + 0.4059i 0.2080 - 0.4059iK = 0.7920 Aqu etiquetamos el numerador y el denominador de la funcin transferencia para observar la grfica de los polos y ceros en el plano z de esta forma sabemos si el sistema cumpla con la condicin de estabilidad.>> [num,den]=tfdata(Yz,'v')num = 0 0.7920 0 0den = 1.0000 -1.4160 0.6240 -0.2080 Comando para observar los polos y ceros en el plano z >> zplane(num,den)>> zgrid>>GRAFICA RESULTANTE:

Los polos siendo dos de ellos imaginarios se observa en la grfica que estn dentro del circulo de radio 1 por lo que su amplitud tambin ser menor a 1 ; tambin se observa un polo en el borde del circulo actuando de forma oscilante. CALCULO MANUAL:Ser necesario comprobar manualmente si los polos se encuentran dentro del crculo de radio 1 para saber si cumple con la condicin para aplicar el teorema de valor inicial y final. P1=1; este polo efectivamente est en el lmite del circulo de radio 1. ; hallando sus polos 0.2080 + 0.4059i; para ello hallamos su amplitud.0.456; cumple con la condicin del teorema P> num=[0.01409 0.028 0.01409 0];>> den=[1 -2.7624 2.5811 -0.8187]; Con este vector definimos la delta de kronecker como entrada de esta forma >> Xz=[1 zeros(1,10)]; Se expresa en un vector todos los valores resultantes que nos da la secuencia de ponderacin debido a la entrada.>> Yz=filter(num,den,Xz); Definimos los valores de k desde 0 hasta 10 como nos pide la pregunta para la grfica >> n=0:1:10; Con este comando podemos observar la secuencia de ponderacin grficamente.>> stem(n,Yz);>> xlabel('k');GRAFICA RESULTANTE:

CALCULO MANUAL:El mtodo ms sutil para hallar la transformada inversa es la DIVISION DIRECTA, pero debido a que los coeficientes son decimales; los clculos para hallar los 11 valores de secuencia de ponderacin resultara muy extenso por lo que damos por resultado definitivo a los VALORES PROPORCIONADOS POR LA GRFICA. Y si queremos los valores ejecutamos el comando FILTER:>>Yz=filter(num,den,Xz)Yz = 0.0141 0.0669 0.1626 0.2879 0.4305 0.5792 0.7245 0.8588 0.9767 1.0743 1.1500

5. Encontrar la expresin de y(k) usando el mtodo de la transformada Z donde u(k) representa la funcin escaln.

Debido a que existen valores iniciales antes del momento k=0 estamos ante un sistema con secuencia desplazada. Por lo que atinamos a la propiedad de transformada Z:

= =

Ahora para la transformada inversa de z debemos acudir a las fracciones parciales un calculo manual es extenso para hallar los valores por lo tanto utilizaremos el comando RESIDUE para que lo separe en fracciones parciales que nos dar sus polos y los valores que convierte a la funcin Y(Z). Etiquetamos el numerador y denominador de Y(Z)>> num=[0 11/6 -7/6 1/5];>> den=[1 -31/30 1/3 -1/30]; El comando residue que transforma Y(Z) en fracciones parciales. Siendo r los valores y p los polos.>> [r,p,k]=residue(num,den)r = 1.5000 -0.6667 1.0000p = 0.5000 0.3333 0.2000k = []Por lo tanto:

Ahora expresaremos la secuencia de ponderacin en una grfica similar a los tems anteriores.Por lo que usaremos el denominador y el numerador de Y(Z): el valor de k ser hasta 20 Etiquetamos el numerador y denominador de y(z)>> num=[11/6 -7/6 1/5 0];>> den=[1 -31/30 1/3 -1/30]; Fijando la entrada delta de kronecker para hallar la secuencia de ponderacin>> x=[1 zeros(1,20)]; Con FILTER se obtiene vectorialmente los valores de la secuencia de ponderacin>> y=filter(num,den,x); Se fija la grfica con los lmites de k de 0 a 20>> k=0:20; Con stem se logra la grfica donde se ve la secuencia de ponderacin. >> stem(k,y)>> grid on

GRAFICA RESULTANTE

7. Usar el mtodo de la divisin directa para obtener la transformada z inversa. El sistema es estable?. Por qu?. Mostrar el diagrama de polos y ceros en el plano z. Si el sistema es inestable, implementar la modificacin necesaria para que deje de serlo.

X(z) lo tenemos que dejar el denominador y el numerador con polinomios para la divisin discreta.

La secuencia de ponderacin es :x(k)=la secuencia de ponderacin indica que el valor sigue aumentando por lo que nos queda decir que el SISTEMA ES INESTABLE.

DIAGRAMA DE POLOS Y CEROS EN EL PLANO Z Etiquetamos el numerador y denominador de X(z) vectorialmente>> num=[0 1 0 -1 0];>> den=[1 0 2 0 1]; Utilizamos el comando zplane para expresar la grafica de polos y ceros de la funcin transferencia >> zplane(num,den)>> grid onGRAFICA RESULTANTE

Si bien es cierto la grfica nos podra indicar estabilidad por estar en el borde del circulo de radio 1; en si el sistema es INESTABLE porque la salida aumenta con el tiempo. Esta demostrado en el cociente de la DIVISION DISCRETA.En la siguiente grafica demuestra que el sistema es inestable:>> num=[0 1 0 -1 0];>>den=[1 0 2 0 1];>> Xz=[1 zeros(1,20)];>> Yz=filter(num,den,Xz);>> n=0:1:20;>> stem(n,Yz);>>GRAFICA RESULTANTE

.

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

Separamos por partes la expresin x(t):

Aplicando transformada de laplace a ambos miembros :

Transformando a Laplace :

Sacando el mnimo comn mltiplo:

Factorizamos

Ahora aplicando Matlab compararemos la respuesta del sistema continuo>> num=[0 1-exp(-1) 0];>>den=[1 -1-exp(-1) exp(-1)];>>t=0:0.2:10;>>x=(1-exp(-t));>>plot(t,x,'r')>>hold;Current plot held>>mpz(num,den)

4: Para la ecuacin en diferencias encontrar la serie en forma recursiva realizando un programa en Matlab. Luego, hallar la transformada Z mediante calculo de mano y luego, mediante el mtodo de Matlab (comando filter), encontrar la transformada inversa Z hasta k = 30. Verificar ambos grficos y hallar conclusiones.

Donde: x(0) = 0 y x(1) = 1

Entonces la transformada Z de x(k + 2) , x(k + 1) y x(k) est dado de la siguiente forma

(3)

Reemplazando la transformadas Z en (0) las ecuaciones (1) , (2) , (3) se obtiene:

Despejamos X(z) en (4) y obtenemos:

En el matlab lo desarrollamos de la siguiente manera:>> %Mtodo manual>>x(1)=0;>>x(2)=1;>>N=30;>>for k=1: N-1x (k+2) =x (k+1) +x (k)end>>n=0: N;>>subplot (2, 1, 2);>>stem(n,x,'r');>>title('Metodo manual');%Metodo usando comando filter>>num=[0 1 0];>>den=[1 -1 -1];>>n=0:1:N;>>x=[1 zeros(1,N)];>>y=filter(num,den,x); 6) Resuelva la siguiente ecuacin en diferencias tanto de manera analtica como en matlab. La funcin de entrada u[k]=1 para k=0, 1, 2

Donde: ,

Aplicamos la transformadas Z a la ecuacin (0) , y de se dan de la siguiente manera

(3)

Ya que u(0) =u(1) = 1

Reemplazamos la (1), (2), (3) y (4) en (0) obtenemos:

Despejamos: , Aplicamos el mtodo de inversin por fracciones parciales:

La funcin: puede expresarse en tres trminos:

Entonces los coeficientes toman el siguiente valor

Reemplazando y multiplicando por z:

Aplicamos transformada inversa optenemos:

Utilizando el matlab:

>> %Mtodo iterativo - Ecuacin de diferencias>> x(1)=1;>> x(2)=2;>> N=30;>> u=[ones(1,N+3)];>> for k=1:N-1x(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 itarativo - Expresion en forma cerrada>> for 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('Metodo iterativo - Expresion en forma cerrada');

8) Explique con un ejemplo el funcionamiento de los comandos FILTER, FILTIC, STEM

Un mtodo comn es expresar la descripcin de la ecuacin en diferencias para un sistema en forma recursiva, que permita que la salida del sistema se calcule a partir de la seal de entrada y las salidas pasadas.

El comando filter efecta una funcin similar. Defina vectores a=[a0, a1,an] y b=[b0, b1,..bm], que representan los coeficientes de la ecuacin en diferencias. Si X es un vector que representa la seal de entrada, entonces el comando y=filter(b,a,x) da por resultado un vector y que representa la salida del sistema para condiciones iniciales cero.

El numero de valores de salida en Y corresponde al nmero de valores de entrada en X. Se incorporan condiciones iniciales diferentes de cero empleando la sintaxis de comando alternativa y= filter (b,a,x,zi), donde zi representa las condiciones iniciales requeridas por filter.

Las condiciones iniciales utilizadas por filter no son los valores pasados de las salidas, pues filter emplea una forma modificada de la ecuacin en diferencias para determinar la salida. Las condiciones iniciales se obtienen del conocimiento de valores pasados empleando el comando zi= filtic (b,a,yi)donde yi es un vector que contiene las condiciones iniciales en el orden [y(-1), y(-2),..y(-N). Ilustramos el uso del comando filter con el siguiente ejemplo:

Un sistema se describe por medio de su ecuacin en diferencias

y[n] - 1.143y[n-1] + 0.4128y[n-2] = 0.0675x[n] + 0.1349x[n-1] + 0.0675x[n-2]

Determinamos la salida en respuesta a entrada cero y condiciones iniciales y[-1]=1, y[2]=2 empleando los comandos:

a= [1, -1.143, 0.4128];b= [0.0675, 0.1349, 0.0675];x= zeros(1,50)zi = filtic (b,a,[1,2]);y =filter (b,a,x,zi);stem(1:50,y);

x =

Columns 1 through 15

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Columns 16 through 30

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Columns 31 through 45

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Columns 46 through 50

0 0 0 0 0

El resultado se aprecia en la siguiente grafica

Ahora haciendo la condiciones iniciales cero y la entrada x[n]=cos(0.1*pi*n), la grfica de salida es:>> a=[1,-1.143,0.4128];>> b=[0.0675,0.1349,0.0675];>> n=0:100;>> x=cos(0.1*pi*n);>> zi=filtic(b,a,[0]);>> y=filter(b,a,x,zi);>> stem(1:101,y);

Ahora se aprecia la grafica siguiente

CONCLUSIONES:1. Se obtuvo la secuencia de ponderacin con una seal que tiende hacer estable 2. Los comandos FILTIC, STEM,FILTER han demostrado de ayuda para hallar la secuencia de ponderacin y tener la representacin grafica de la misma.3. Para obtener las antitransformadas se tuvo que emplear mtodos matemticos como las fracciones parciales y la Division Directa por la cual las herramientas de Matlab nos ayudan a resolverlos.