Beruflich Dokumente
Kultur Dokumente
Universidad Nacional de
San Agustín
Facultad de Ingeniería de
Producción y Servicios
LABORATORIO N° 3
Uso de la Transformada “Z”. Calculo analítico y con MatLab
Uso comandos: filter, stem, residue
Integrantes:
Arequipa-2018
I. OBJETIVO
Dados en clase.
III. PROCEDIMIENTO
1. 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.
X(z)
H(z)
0.792 z
H ( z) = 2
( z −0.416 z+ 0.208)
Y(z): salida
a) ANALITICAMENTE
1. Teorema de valor inicial
lim
y (0 )= F( z)
z →∞
lim 0 . 792 z 2
y (0 )=
z →∞ (z −1)( z 2−0. 416 z+0 . 208)
0 . 792 z 2
y (0 )= lim 3
z →∞ z −1. 416 z 2 +0. 624−0 . 208
0 . 792/ z
y (0 )= lim
z →∞ 1−1. 416 /z+0 . 624 /z 2 −0 .208 /z 3
y (0 )=0
2. Teorema de valor final
lim
y (∞)= ( z−1 )F ( z)
z→1
lim 0 . 792 z 2
y (∞)= ( z−1 ) 2
z→1 (z−1)( z −0. 416 z+0 . 208)
2
lim 0 .792 z
y (∞)=
z→1 z 2−0. 416 z+0 . 208
y (∞)=1
Segun los teoremas aplicados, se dice que son aplicables, ya que existen los limites calculados.
Para el teorema del valor final, la función converge ya que es analítica fuera del radio R=1.
MATLAB
num=[0.792 0];
Tz=tf(num,den,1)
[z,p,k]=tf2zp(num,den)
pzmap(Tz)
grid on
Transfer function:
0.792 z
---------------------
z^2 - 0.416 z + 0.208
Sampling time: 1
z= 0
p = 0.2080 + 0.4059i
0.2080 - 0.4059i
k = 0.7920
D0_k=[1 zeros(1,10)];
x_kc=filter(num,den,D0_k);
k=0:10;
stem(k,x_kc)
D0_k=[0 1 2 3 4 5 6 7 8];
x_kc=filter(num,den,D0_k);
k=0:8;
stem(k,x_kc)
1 e−at
x (t )= −
a a
Empleando la Transformada Z:
1 e−at
[
X ( z)=Z x (t )= −
a a ]
1 1
X ( z)= −1
− −ak −1
a(1−z ) a(1−e z )
1−e−ak z−1 −1+z−1
X ( z)=
a(1−z −1 )(1−e−ak z−1 )
1 z−1 (1−e−ak )
X ( z)=
[
a 1−z −1 (1+e−ak z−1 )+ z−2 e−ak ]
Gráfica y comparación de la función en tiempos continuo y discreto
%% grafica en el tiempo continuo
t=0:0.2:10;
xt=(1-exp(-t));
plot(t,xt,'r')
figure (2)
impz(num,den)
3. Para la función transferencia H(z) , hallar:
a. Estabilidad del sistema.
Usando Matlab
num=[0.3678 0.2644];
den=[1 -1 0.6322];
Z=tf(num,den,1)
[z,p,k]=tf2zp(num,den)
pzmap(Z)
grid on
b. La transformada inversa z mediante el método Matlab (comando filter)
hasta k = 20. Graficar la secuencia (comando stem).
Usando MatLab
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;
stem(k,x_kc)
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=
e. 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.3678 0.2644];
den=[1 -1 0.6322];
Z=tf(num,den,1)
[z,p,k]=tf2zp(num,den)
pzmap(Z)
grid on
b) La
num=[0.3678 0.2644];
den=[1 -1 0.6322];
Xz=[1 zeros(1,20)];
g=filter(num,den,Xz);
n=0:1:20;
stem(n,g);
c) La transformada inversa z mediante el comando “residue” de Matlab y comparar con lo
obtenido en a.
num=[0.3678 0.2644];
den=[1 -1 0.6322];
[r,p,k]=residue(num,den)
r=
0.1839 - 0.3626i
0.1839 + 0.3626i
p=
0.5000 + 0.6182i
0.5000 - 0.6182i
k=
[]
e) La salida Y(z) y la salida temporal y(kT), (graficarla) para una entrada X(z) escalon
unitario, verificando teorema del valor inicial y valor final. Usar comandos “stem”,
“filter”, “residue”.
Transfer function:
0.3678 z^2 + 0.2644 z
----------------------------
z^3 - z^2 + 1.632 z - 0.6322
Sampling time: 1
4. 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 entrada rampa unitaria.
X(z)
H(z)
0.792 z
H ( z) = 2
( z −0.416 z+ 0.208)
Y(z): salida
Yz =
0.792 z
---------------------
z^2 - 0.416 z + 0.208
>>zero(Yz)
ans =
>>pole(Yz)
ans =
0.2080 + 0.4059i
0.2080 - 0.4059i
>>pzmap(Yz)
>>grid on
Por el teorema del valor inicial:
0.792 z
y ( t=0 )=lim Y ( z ) =lim 2
z→∞ z→∞ 1.416 z +0.624 z −0.208
0.792/z
¿ lim =0
z →∞ 1.416+0.624 / z−0.208/ z 2
y ( t → ∞ )=lim ¿ =0
z→1
Estos teoremas son aplicables porque los polos de H(z) están dentro del circulo de
radio 1.
b. Hallar la Secuencia de Ponderación h(k) y graficarla.
num=[0 0.792 0];
den=[1 -0.416 +0.208];
D0_k=[1 zeros(1,10)];
x_kc=filter(num,den,D0_k);
k=0:10;
stem(k,x_kc)
grid,title('Gráfica obtenida secuencia de ponderacion')
Suponiendo T=1 s
1
x ( t )= (1−e−at )
a
Distribuyendo, tenemos:
1 e−at
x ( t )= −
a a
Luego, por la transformada del escalón y la propiedad lineal de la transformada z,
1 1
X ( z )= −1
− −ak −1
a(1−z ) a(1−e z )
1 z−1 (1−e−ak )
¿
[
a 1−z −1 ( 1+e−ak ) +e−ak z −2 ]
En Matlab comparamos la respuesta del sistema continuo (en rojo) con la del sistema
discreto (azul):
Para a=1
num=[0.3678 0.2644];
den=[1 -1 0.6322];
Z=tf(num,den,1)
[z,p,k]=tf2zp(num,den)
pzmap(Z)
grid
on
g) 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];
Xz=[1 zeros(1,20)];
g=filter(num,den,Xz);
n=0:1:20;
stem(n,g);
h) La transformada inversa z mediante el comando “residue” de Matlab y comparar con lo
obtenido en a.
num=[0.3678 0.2644];
den=[1 -1 0.6322];
[r,p,k]=residue(num,den)
r=
0.1839 - 0.3626i
0.1839 + 0.3626i
p=
0.5000 + 0.6182i
0.5000 - 0.6182i
k=
[]
j) La salida Y(z) y la salida temporal y(kT), (graficarla) para una entrada X(z) escalon
unitario, verificando teorema del valor inicial y valor final. Usar comandos “stem”,
“filter”, “residue”.
Transfer function:
0.3678 z^2 + 0.2644 z
----------------------------
z^3 - z^2 + 1.632 z - 0.6322
Sampling time: 1
7. 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.
x ( k +2 )=x ( k +1 ) + x (k )
x ( 0 )=0 ; x (1 ) =1
x ( k +2 )=x ( k +1 ) + x (k )
x ( 0 )=0 ; x (1 ) =1
z 2 X ( z )−z=zX ( z ) + X (z)
X ( z ) ( z 2−z −1 )=z
z
X ( z )= 2
z −z−1
clc
holdon
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 Z , procedemos mediante la realización de un programa,
obtener la transformada inversa Z de esta función mediante el comando filter 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
Como se puede observar en la figura anterior, se tienen las 2 graficas obtenidas mediante
métodos diferentes, con lo que se concluye que efectivamente mediante la aplicación de la
transformada Z a la ecuación en diferencia y después de la aplicación de la transformada inversa
Z a la expresión de X ( z), se obtiene la secuencia de ponderación respectiva.
8.
x(k) u(k)
SD
9 1
u (k )− u ( k−1 ) + u ( k −2 )=2 x ( k )−x ( k−1 ) +3 x ( k−2 )
20 20
Hallar:
num=[2 -1 3];
den=[1 -9/20 1/20];
D0_k=[1 0 0 0 0 0 0 0 0];
x_kc=filter(num,den,D0_k);
k=0:8;
stem(k,x_kc)
grid,title('Gráfica obtenida SP')
2 z 2−z +3
H ( z) =
Donde z 2− z +
9 1
20 20
Aplicando residue para hallar polos :
num=[2 -1 3];
den=[1 -9/20 1/20];
[r,p,k]=residue(num,den)
[b,a]=residue(r,p,k)
r=
57.5000
-57.6000
p=
0.2500
0.2000
Vemos que los polos son menor que 1 , por lo tanto la función es estable.
k=
2
b=
2.0000 -1.0000 3.0000
a=
1.0000 -0.4500 0.0500
c)Hallar la respuesta del sistema para una entrada escalón unitario y rampa
unitaria analíticamente y con MatLab, graficar la respuesta.
num=[2 -1 3];
den=[1 -9/20 1/20];
D0_k=[ones(1,9)];
x_kc=filter(num,den,D0_k);
k=0:8;
stem(k,x_kc)
grid,title('Gráfica obtenida escalon unitario')
Para entrada rampa unitaria
num=[2 -1 3];
den=[1 -9/20 1/20];
D0_k=[0 1 2 3 4 5 6 7 8];
x_kc=filter(num,den,D0_k);
k=0:8;
stem(k,x_kc)
grid,title('Gráfica obtenida rampa unitaria')
9. Ecuación diferencia del SD:
Hallar:
r=
0.3333 + 0.1179i
0.3333 - 0.1179i
p=
0.3333 + 0.4714i
0.3333 - 0.4714i
k=
1
b=
1 0 0
a=
1.0000 -0.6667 0.3333
Ecuación diferencia:
R=
0.5000 - 0.0674i
0.5000 + 0.0674i
P=
-0.2500 + 0.3708i
-0.2500 - 0.3708i
K=
[]
b) La salida x(k), para la entrada dada u(k), en forma analítica y por Matlab.
∞
Z [ u(k )]= ∑ u (k )z−k =1 .5+0 . 5 z−1−0 . 5 z−2
k=0
2
3 z +z−1
U ( z)=
2 z2
R=
2.5625 - 0.9860i
2.5625 + 0.9860i
-3.6250
0.7500
P=
-0.2500 + 0.3708i
-0.2500 - 0.3708i
0
0
K=
[]
Hallar y graficar la salida c (t) , para Kp=1 con una entrada escalón
unitario. Verificar TVI y TVF. Con T=1 seg y T= 0.05 seg; verificar
estabilidad en LC.
Hallar el rango de Kp para asegurar estabilidad e LC, con T=1 seg y
T=0.05 seg.
12. 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.
z −1 (1−z−2)
H ( z) =
(1+ z−2 )2
Expresamos la función como polinomios y realizamos las divisiones:
−1 −3
z −z
X ( z )=
1+2 z−2 +z−4
De este resultado podemos deducir lo siguiente, para que el sistema sea estable 1/a debe ser
menor a 1:
1
<1
a
a>1
Con esta condición el sistema se volverá estable.
V. OBSERVACIONES Y CONCLUSIONES
Haga sus observaciones y emita al menos cinco conclusiones en torno al trabajo realizado