U n i v e r s i d ad a d N a c i o n al al d e S a n A g u s t í n F ac ul ultt ad de In g enier í a de P r o du d u c c i ón ón y S er v i c i o s Escuela Profesional de Ingeniería Electrónica
SISTEMAS DE CONTROL DIGITAL
Docente:
Ing. Oscar Salazar Alarcón
LABORATORIO N° 3
Uso de la Transformada “Z”. Calculo analítico y con MatLab Uso comandos: filter, stem, residue
1. a. Para la función salida Y(z), determinar los polos y ceros y ubicarlos dentro del plano z. Los teoremas del valor inicial y final son aplicables en dicha salida. ¿Por qué? ¿Es estable dicho sistema y por qué? Hallar sus valores y verificar con MatLab. b. Hallar la Secuencia de Ponderación h(k) y graficarla. c. Hallar y graficar la salida y(k) para la entr ada rampa unitaria.
X(z)
H(z)
. . . . X(z): entrada escalón unitario Y(z): salida H(z): función transferencia
>> z=tf('z'); >>Yz=0.792*z/(z^2-0.416*z+.208) Yz = 0.792 z --------------------z^2 - 0.416 z + 0.208 Sample time: unspecified Discrete-time transfer function. >>zero(Yz) ans = 0 >>pole(Yz) ans = 0.2080 + 0.4059i 0.2080 - 0.4059i >>pzmap(Yz)
>>grid on
Por el teorema del valor inicial:
0.792 0 → lim → lim 1.416 0. 6240.208 792/ → lim 1.4160.60.24/0. 208/^2 0
Por el teorema del valor final:
− ] lim 0.792 → ∞ lim [1 → → 0.4160.208
0. 7 92 lim → 0.4 160.2 08 1 Estos teoremas son aplicables porque, por definición, existen los límites calculados.
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 e n tiempo discreto.
− 1 1− Distribuyendo, tenemos:
− 1 Luego, por la transformada del escalón y la propiedad lineal de la transformada z,
11 − 11−− −− 1− 1 1−1−− − 1 −−1 1 1−−− En 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) >>grid on
Como se puede observar en la grafica, se tiene un periodo de muestreo de total de muestreo de
10
3. Para la función transferencia H(z) , hallar: Estabilidad del sistema. >> z=tf('z'); Yz=(0.3678*z+0.2644)/(z^2-z+0.6322)
Yz = 0.3678 z + 0.2644 ----------------z^2 - z + 0.6322 Sample time: unspecified Discrete-time transfer function.
>>zero(Yz)
, un tiempo
. Se puede comprar ambas señales y se comprueba que se realizo
de manera correcta la transformada de la función
a.
1
.
ans = -0.7189 >>pole(Yz) ans = 0.5000 + 0.6182i 0.5000 - 0.6182i >>pzmap(Yz)
La transformada inversa z mediante el método Matlab (comando filter) hasta k = 20. Graficar la secuencia (comando stem).
num=[0.3678 0.2644]; den=[1 -1 0.6322]; D0_k=[1 zeros(1,20)]; x_kc=filter(num,den,D0_k); k=0:20;
subplot(2,1,1) stem(k,x_kc) grid,title('Gráfica obtenida usando comando filter')
La transformada inversa z mediante el comando “residue” de MatLab y comparar con
lo obtenido en a. num=[0 0.3678 0.2644]; den=[1 -1 0.6322]; [r,p,k]=residue(num,den) [b,a]=residue(r,p,k)
>> Untitled r= 0.1839 - 0.3626i 0.1839 + 0.3626i p= 0.5000 + 0.6182i 0.5000 - 0.6182i
k= [] b= 0.3678
0.2644
a=
1.0000 -1.0000 0.6322
La transformada inversa por calculo analítico (manual) y comparar con lo obtenido en a. y b.
2644 0.36780. 0.6322 0.36780.2644 0.50.618 0.50.618
0.3678 0.2644 =.lim+. 0.5 0.618 0.50. 6180.50.618 0.210.467 0.3678 0.2644 =.lim−. 0.50.618 0.50. 6180.50.618 0.210.467 0.32678 0.2644 lim = 0.6322 0.4182 0.4812 0 0. 2 0. 4 67 0. 5 0. 6 182 0.20.4670.50.6182 3 678;0. 6 322;0. 3 997;0;0. 2 526; {0;0. 0.2527;0.093;…………;0.0104 }
La salida Y(z) y la salida temporal y(kT), (graficarla) para una entrada X(z) escalón unitario, verificando teorema del valor inicial y valor final. Usar comandos “stem” , “filter”, “residue”.
.. . .. . . . .. num=[0 0.3678 0.2644 0]; den=[1 -2 1.6322 -0.6322]; D0_k=[1 zeros(1,20)]; x_kc=filter(num,den,D0_k); k=0:20; stem(k,x_kc) grid,title('Gráfica obtenida usando comando filter')
num=[0 0.3678 0.2644 0]; den=[1 -2 1.6322 -0.6322]; [r,p,k]=residue(num,den) [b,a]=residue(r,p,k) >> Untitled6 r = 1.0000 + 0.0000i -0.3161 - 0.2557i -0.3161 + 0.2557i p = 1.0000 + 0.0000i 0.5000 + 0.6182i 0.5000 - 0.6182i k = [] b = 0.3678
0.2644
0.0000
a = 1.0000
-2.0000
1.6322
-0.6322
>>
Por el teorema del valor inicial:
2644 0 → lim → lim 0.3 6780. 0.6322 0.2644 0. 3 678 → lim 2 1.63220.6322 0
Por el teorema del valor final:
0.3678 0.2644 → ∞ lim 1 limz1 → → 1 0.6322 0.6322 1 lim → 110.6322 Estos teoremas son aplicables porque, por definición, existen los límites calculados.
4. Para la ecuación en diferencias encontrar la serie en forma recursiva realizando un programa en Matlab. Luego, hallar la transformada Z mediante calculo analítico y seguido por el método de Matlab (comando filter), encontrar la transformada inversa Z hasta k = 30. Verificar ambos métodos y graficar para obtener conclusiones.
;
Lo primero es obtener la transformada
de forma analítica. Para eso vamos a usar la
ecuación en diferencia dada. Hay que tener en cuenta que se tiene corrimiento a la derecha por lo que se tendrá que usar las propiedades respectivas para su resolución.
; ( ) clc hold on x_ks(1)=0; x_ks(2)=1; for k=2:30 x_ks(k+1)=x_ks(k)+x_ks(k-1); end num=[1 0]; den=[1 -1 -1]; D0_k=[1 zeros(1,30)]; x_kc=filter(num,den,D0_k); k=0:30; subplot(2,1,1) stem(k,x_ks,'r') grid,title('Gráfica obtenida usando serie en forma recursiva') subplot(2,1,2) stem(k,x_kc) grid,title('Gráfica obtenida usando comando filter')
Una vez obtenida la transformada , procedemos mediante la realización de un programa, obtener la transformada inversa de esta función mediante el comando
y además
poder obtener la serie en forma recursiva mediante el algoritmo respectivo. El programa usado se muestra a continuación:
Figura: Obtención de graficas mediante 2 métodos distintos
2
Como se puede observar en la figura anterior, se tienen las graficas obtenidas mediante métodos diferentes, con lo que se concluye que efectivamente mediante la aplicación de
la transformada a la ecuación en diferencia y después de la aplicación de la
transformada inversa a la expresión de respectiva. 5. x(k)
u(k)
SD Ecuación Diferencia del SD:
, se obtiene la secuencia de ponderación
Hallar: a.
La SP: h(k) y graficarla, usando calculo analítico y MatLab.
b. Hallar la función transferencia H(z), su transformada inversa z y graficarla, usando el comando “residue”. Estudiar estabilidad. c.
Hallar la respuesta del sistema para una entrada escalón unitario y rampa unitaria analíticamente y con MatLab, graficar la respuesta.
ℎ ℎ 34 11/8 2 ℎ0 0 0 34 11/82 1 ℎ1 1 1 34 01/81 0.75 ℎ2 2 2 34 11/80 0.2343 ℎ3 3 3 34 21/81 0.121 ℎ4 4 4 34 31/82 0.0615 ℎ5 5 5 34 41/83 0.0615 [134− 18−]
Halar la SP:
y graficarla , usando calculo analítico y matlab.
Simulado en matlab:
−+ num=[8 0 0];%numerador de la funcion transferencia den=[8 -6 1];%denominador de la funcion transferencia inpulso=[1 0 0 0 0 0 0 0 0];%la entrada impulso unitario
y=filter(num,den,inpulso); %comando para hallar la secuencia de ponderacion n=0:1:8; stem(n,y) grid title('grafico de la secuencia de ponderacion')
Hallar la función transferencia H(z) y su transformada inversa z usando el comando “residue”.
34 11/8 2 [134− 18−]
−+ Podemos ayudarnos de
para poder hallar la transformada inversa de
.
num=[8 0 0]; den=[8 -6 1]; [r,p,k]=residue(num,den) [b,a]=residue(r,p,k)
>> Untitled r = 1.0000 -0.2500
p = 0.5000 0.2500
k = 1
b = 1
0
0
a = 1.0
-0.7500
0.1250
Hallar la respuesta del sistema para una entrada escalón unitario analíticamente y con matlab. Para una entrada Escalon x>=0, x(k)=1. condición inicial X(0)=0
Procedemos a hallar la respuesta del sistema a una entrada escalón unitario analíticamente, de la misma manera como lo hicimos para hallar la secuencia de ponderación:
∗ℎ ℎ =
0 0ℎ0 1 1 0ℎ11ℎ0 1.75 2 0ℎ21ℎ12ℎ0 2.1875 3 0ℎ31ℎ22ℎ13ℎ0 2.42 4 0ℎ41ℎ32ℎ23ℎ14ℎ0 2.5428 5 0ℎ51ℎ42ℎ33ℎ24ℎ15ℎ0 2.6043 clc num=[8 0 0];%numerador de la funciontranzferencia den=[8 -6 1];%denominador de la funciontranzferencia escalon=ones(1,9);%la entrada escalon unitario y=filter(num,den,escalon) n=0:1:8; stem(n,y) grid title('grafico la respuesta al sistema')
0 1.5 , 1 0.5 , 2 0.5, 0, 0 ∶ 3,4,5,…
6. Un sistema discreto tiene como entrada
y como salida
. Donde:
Ecuación en diferencia:
20.5 10.2 10.3 0 , ≤ 0 ; 0 < 0 20.5 10.2 10.3 : 0 ∶ ≤ 0 0 ∶ < 0 Hallar: a). La función de transferencia
(estudiar estabilidad) y por MatLab.
Procedemos a hallar la función de transferencia analíticamente, para esto aplicamos transformada Z a la ecuación en diferencia y obtenemos la relación,
.
010.5(0)0.2 00.3 Teniendo en cuenta las condiciones iniciales dadas:
0.5 0.2 0.3 . .. Se tiene la función transferencia ahora para ver la estabilidad del sistema verificamos los polos que el sistema es estable. >>pole(H) ans = -0.2500 + 0.3708i -0.2500 - 0.3708i -hallar la secuencia de ponderación:
. .. num=[1 0.3];%numerador de la funcion transferencia den=[1 0.5 0.2];%denominador de la funcion transferencia inpulso=[1 zeros(1,7)]%la entrada escalon unitario y=filter(num,den,inpulso) n=0:1:7; stem(n,y) grid title('grafico de la secuencia de ponderacion')
b). La salida
, para la entrada dada
.
- Simulado en matlab:
. .. num=[1 0.3];%numerador de la funciontransferencia den=[1 0.5 0.2];%denominador de la funciontransferencia u=[1.5 0.5 -0.5 0 0 0 0 0 0 0];%la entrada y=filter(num,den,u) n=0:1:9; stem(n,y) grid title('grafico de la secuencia de ponderacion')
7. Usar el método de la división 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 modificación necesaria para que deje de serlo y graficar la salida para la entrada escalón unitario.
−− − Primero, expresamos X(z) en polinomios de z −1:
− − 12− − Luego, efectuando la división:
∑ −
Comparando directamente
, 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);
Confirmamos con el diagrama de polos y ceros que el sistema es inestable, ya que posee polos múltiples sobre el círculo unitario.
CONCLUSIONES
Se vio la estabilidad en los gráficos.
Se utilizó los comandos residuefilter y stem.
Comparamos el método manual y el método por Matlab.