Вы находитесь на странице: 1из 33

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN

FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS

ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA

CURSO:

SISTEMAS DE CONTROL DIGITAL

TEMA:

USO DE LA TRANSFORMADA “Z”. CÁLCULO ANALÍTICO Y CON MATLAB

Presentado por:

Charca Benavente, Rafael

Condori Capajaña, Victor Hugo

PROFESOR:

Ing. Asencio Huaita Bedregal

SEMESTRE VII

AREQUIPA-PERÚ

2018
1. Se tiene el siguiente sistema:

0.792 z
H (z )= 2
(z −0.416 z+ 0.208)

X(z): entrada escalón unitario


Y(z): salida
H(z): función transferencia

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 dicho 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.

El script siguiente detalla la resolución de los 3 incisos:


clear all;clc
numd=[0 0.792 0];%coef. del numerador de H(Z)
dend=[1 -0.416 0.208];%coef. del denominador de H(Z)
hz=tf(numd,dend,-1)%La tranformada Z sin especificar el sample
[z,p]=tf2zpk(numd,dend)%Obtencion de ceros y polos de la funcion de transferencia
disp('El sistema es estable, sus polos se encuentran dentro del circulo de radio 1')
disp('............................................................')
delta=[1 zeros(1,40)];%definimos la delta de krovecker
escalon_unitario=ones(1,41);%definimos la entrada escalon al sistema
rampa_unitaria=0:40;%definimos la entrada rampa unitaria al sistema
tk=0:40;%el tiempo discreto
h=filter(numd,dend,delta)
y=filter(numd,dend,escalon_unitario);%respuesta al escalon para tk=0:40
yr=filter(numd,dend,rampa_unitaria);%respuesta a la rampa unitaria para tk=0:40
valor_inicial=y(1);%valor inicial
fprintf('Valor Inicial de Y(Z) para una entrada Escalon Unitario:
%1.3f\n',valor_inicial)
valor_final=y(41);%valor final
fprintf('Valor Final de Y(Z) para una entrada Escalon Unitario: %1.3f\n',valor_final)
subplot(2,2,1)
plot(tk,y,'o',tk,y,'-')
axis([0 40 0 1.6])
grid
title('RESPUESTA AL ESCALON UNITARIO')
xlabel('k')
ylabel('y(k)')
subplot(2,2,2)
zplane(numd,dend)
title('PLANO Z')
xlabel('PARTE REAL')
ylabel('PATE IMAGINARIA')
grid
subplot(2,2,3)
plot(tk,yr,'o',tk,tk,'-')
title('RESPUESTA A LA RAMPA UNITARIA')
xlabel('k')
ylabel('y(k)')
subplot(2,2,4)
stem(tk,h)
title('Secuencia de Ponderacion')
xlabel('k')
ylabel('h(k)')

hz =

0.792 z
---------------------
z^2 - 0.416 z + 0.208

Sample time: unspecified


Discrete-time transfer function.

z=

0
0

p=

0.2080 + 0.4059i
0.2080 - 0.4059i

El sistema es estable, sus polos se encuentran dentro del círculo de radio 1


............................................................

h=

Columns 1 through 6

0.7920 0.3295 -0.0277 -0.0800 -0.0275 0.0052

Columns 7 through 12
0.0079 0.0022 -0.0007 -0.0008 -0.0002 0.0001

Columns 13 through 18

0.0001 0.0000 -0.0000 -0.0000 -0.0000 0.0000

Columns 19 through 24

0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000

Columns 25 through 30

0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.0000

Columns 31 through 36

0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.0000

Columns 37 through 41

0.0000 -0.0000 -0.0000 -0.0000 0.0000

Valor Inicial de Y(Z) para una entrada Escalon Unitario: 0.792


Valor Final de Y(Z) para una entrada Escalon Unitario: 1.000
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.
1
x (t )= (1−e−at )
a
Se tiene el siguiente script:
clear all;clc
disp('Hallamos la Transformada Z de la funcion x(t)')
syms n z a
ztrans((1/a)*(1-exp(-a*n)),n,z)
%Tomamos el valor de a=1
num=[0 1-exp(-1) 0];
den=[1 -1-exp(-1) exp(-1)];
t=0:0.2:10;
a=1;
x=(1/a)*(1-exp(-a*t));
plot(t,x,'r')
hold on
impz(num,den)%Grafica la SP de x(t)

Hallamos la Transformada Z de la funcion x(t)

ans =

z/(a*(z - 1)) - z/(a*(z - exp(-a)))


3. Para la función transferencia H(z), hallar:
a. Estabilidad del sistema.
b. La transformada inversa z mediante el método MatLab (comando filter) hasta k=20. Graficar la
secuencia (comando stem).
c. La transformada inversa z mediante el comando “residue” de MatLab y comparar con lo obtenido
en a.
d. La transformada inversa por calculo analítico (manual y comparar con lo obtenido en a y b.
e. La salida Y(z) y la salida temporal y(kT), graficarla para una entrada X(z) esaclon unitario,
verificando teorema del valor inicial y valor final. Usar comandos “stem”, “filter”, “residue”.

0.3678 z +0.2644 Y (z)


H (z )= =
z 2−z +0.6322 X (z)

clear all;clc
numd=[0 0.3678 0.2644];
dend=[1 -1 0.6332];
hz=tf(numd,dend,-1)
[z,p]=tf2zpk(numd,dend)%Hallamos los zeros y polos de la transformada
disp('El sistema es estable, sus polos se encuentran dentro del circulo de radio 1')
disp('............................................................')
delta=[1 zeros(1,20)];
disp('Hallamos la Secuencia de Ponderacion')
h=filter(numd,dend,delta)
disp('............................................................')
k=0:20;
disp('Aplicamos Fracciones parciales con el comando residue')
disp('............................................................')
[r,p,ks]=residue(numd,dend)
p1=abs(p(1));
fprintf('El modulo del primer polo es: %5.4f\n',p1)
r1=abs(r(1));
fprintf('El modulo del primer residuo es: %5.4f\n',r1)
theta=angle(p(1));
fprintf('El angulo theta del primero polo es: %5.4f\n',theta)
alfa=angle(r(1));
fprintf('El angulo alfa del primero residuo es: %5.4f\n',alfa)
for n=0:20
h2(n+1)=2*(p1^(n-1))*r1*cos((n-1)*theta+alfa);
h2(1)=0;
end
disp('............................................................')
disp('La transformada inversa por el metodo residue')
h2
escalon=[1 ones(1,20)];
disp('............................................................')
disp('La salida Y(z) paa una entrada escalon unitario')
y=filter(numd,dend,escalon);
subplot(2,2,1)
stem(k,h)
title('SP por el metodo de Filter')
xlabel('k')
ylabel('h(k)')
grid
subplot(2,2,2)
stem(k,h2)
title('SP por el metodo de Residue')
xlabel('k')
ylabel('h(k)')
grid
subplot(2,2,3.5)
stem(k,y)
title('Salida Y(k) por el metodo de Filter')
xlabel('k')
ylabel('y(k)')
grid

hz =

0.3678 z + 0.2644
-----------------
z^2 - z + 0.6332

Sample time: unspecified


Discrete-time transfer function.

z=

-0.7189

p=

0.5000 + 0.6190i
0.5000 - 0.6190i

El sistema es estable, sus polos se encuentran dentro del circulo de radio 1


............................................................
Hallamos la Secuencia de Ponderacion

h=

Columns 1 through 6

0 0.3678 0.6322 0.3993 -0.0010 -0.2538


Columns 7 through 12

-0.2532 -0.0925 0.0679 0.1264 0.0834 0.0034

Columns 13 through 18

-0.0494 -0.0516 -0.0203 0.0124 0.0252 0.0174

Columns 19 through 21

0.0014 -0.0096 -0.0105

............................................................
Aplicamos Fracciones parciales con el comando residue
............................................................

r=

0.1839 - 0.3621i
0.1839 + 0.3621i

p=

0.5000 + 0.6190i
0.5000 - 0.6190i

ks =

[]

El modulo del primer polo es: 0.7957


El modulo del primer residuo es: 0.4061
El angulo theta del primero polo es: 0.8914
El angulo alfa del primero residuo es: -1.1009
............................................................
La transformada inversa por el metodo residue

h2 =

Columns 1 through 6

-0.4176 0.3678 0.6322 0.3993 -0.0010 -0.2538

Columns 7 through 12

-0.2532 -0.0925 0.0679 0.1264 0.0834 0.0034

Columns 13 through 18

-0.0494 -0.0516 -0.0203 0.0124 0.0252 0.0174

Columns 19 through 21

0.0014 -0.0096 -0.0105

............................................................
La salida Y(z) paa una entrada escalon unitario

y=

Columns 1 through 6

0 0.3678 1.0000 1.3993 1.3983 1.1445

Columns 7 through 12

0.8913 0.7988 0.8666 0.9930 1.0765 1.0799

Columns 13 through 18

1.0305 0.9789 0.9586 0.9710 0.9962 1.0136


Columns 19 through 21

1.0150 1.0054 0.9949

4. Para la ecuación en diferencia 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.
clear all;clc
x(1)=0;
x(2)=1;
for k=1:29
x(k+2)=x(k+1)+x(k);
end
disp('Transformada inversa la funcion de transferencia X(z) por el metodo analitico')
x
num=[0 1 0];
den=[1 -1 -1];
[z,p]=tf2zpk(num,den)
disp('Hay un polo fuera del circulo de radio 1, por lo tanto el sistema es inestable')
delta=[1 zeros(1,30)]; %definimos la delta de krovecker
disp('............................................................')
disp('Transformada inversa la funcion de transferencia X(z) por el metodo filter')
x2=filter(num,den,delta) %Transformada inversa la funcion de transferencia X(z)
subplot(2,1,1)
k=0:30;
stem(k,x) %grafico por el metodo analitico
title('Grafico por el metodo analitico')
xlabel('k')
ylabel('x(k)')
grid
subplot(2,1,2)
stem(k,x2)
title('Transformada inversa de X(z)')
xlabel('k')
ylabel('x(k)')
grid

Transformada inversa la funcion de transferencia X(z) por el metodo analitico

x=

Columns 1 through 7

0 1 1 2 3 5 8

Columns 8 through 14

13 21 34 55 89 144 233

Columns 15 through 21

377 610 987 1597 2584 4181 6765

Columns 22 through 28

10946 17711 28657 46368 75025 121393 196418

Columns 29 through 31

317811 514229 832040

z=

0
p=

-0.6180
1.6180

Hay un polo fuera del circulo de radio 1, por lo tanto el sistema es inestable
............................................................
Transformada inversa la funcion de transferencia X(z) por el metodo filter

x2 =

Columns 1 through 7

0 1 1 2 3 5 8

Columns 8 through 14

13 21 34 55 89 144 233

Columns 15 through 21

377 610 987 1597 2584 4181 6765

Columns 22 through 28

10946 17711 28657 46368 75025 121393 196418

Columns 29 through 31

317811 514229 832040


5. Ecuación Diferencia del SD:
1
u [ k ] −0.45 u [ k−1 ] +
u [ k −2 ] =2 x [ k ] −x [ k−1 ] +3 x [k−2]
20
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”.
clear all;clc
u=[0 0 1 zeros(1,20)];
x=[0 0 1 zeros(1,20)];
n=-2:20;
for k=3:23
u(k)=(9/20)*u(k-1)-(1/20)*u(k-2)+2*x(k)-x(k-1)+3*x(k-2);
end
num=[2 -1 3];
den=[1 -0.45 0.05];
disp('Aplicamos Fracciones parciales con el comando residue')
disp('............................................................')
[r,p,ks]=residue(num,den)
r1=r(1);
r2=r(2);
p1=p(1);
p2=p(2);
delta=[1 zeros(1,23)];
escalon=ones(1,24);
rampa=0:23;
for m=0:22
h(m+1)=(r1*p1^(m-1))+(r2*p2^(m-1))+ks*delta(m+1);
h(1)=2;

end
disp('............................................................')
disp('La transformada inversa por el metodo residue')
h
disp('............................................................')
disp('La salida u(k) a la respuesta de una entrada escalon unitario')
u_escalon=filter(num,den,escalon)
disp('La salida u(k) a la respuesta de una entrada rampa unitaria')
u_rampa=filter(num,den,rampa)
subplot(2,2,1)
stem(n,u)
title('La Secuencia de Ponderacion')
xlabel('k')
ylabel('h(k)')
grid
subplot(2,2,2)
n=0:22;
stem(n,h)
title('La transformada inversa por el metodo residue')
xlabel('k')
ylabel('h(k)')
grid
n=0:23;
subplot(2,2,3)
stem(n,u_escalon)
title('La salida u(k) a la respuesta de una entrada escalon unitario')
xlabel('k')
ylabel('u(k)')
grid
subplot(2,2,4)
plot(n,u_rampa,'o',n,n,'-')
title('La salida u(k) a la respuesta de una entrada rampa unitaria')
xlabel('k')
ylabel('u(k)')
grid

Aplicamos Fracciones parciales con el comando residue


............................................................

r=

57.5000
-57.6000

p=

0.2500
0.2000

ks =

............................................................
La transformada inversa por el metodo residue

h=

Columns 1 through 6

2.0000 -0.1000 2.8550 1.2898 0.4376 0.1324

Columns 7 through 12
0.0377 0.0104 0.0028 0.0007 0.0002 0.0000

Columns 13 through 18

0.0000 0.0000 0.0000 0.0000 0.0000 0.0000

Columns 19 through 23

0.0000 0.0000 0.0000 0.0000 0.0000

............................................................
La salida u(k) a la respuesta de una entrada escalon unitario

u_escalon =

Columns 1 through 6

2.0000 1.9000 4.7550 6.0447 6.4824 6.6148

Columns 7 through 12

6.6526 6.6629 6.6657 6.6664 6.6666 6.6666

Columns 13 through 18

6.6667 6.6667 6.6667 6.6667 6.6667 6.6667

Columns 19 through 24

6.6667 6.6667 6.6667 6.6667 6.6667 6.6667

La salida u(k) a la respuesta de una entrada rampa unitaria

u_rampa =

Columns 1 through 6

0 2.0000 3.9000 8.6550 14.6998 21.1821

Columns 7 through 12

27.7970 34.4495 41.1124 47.7781 54.4445 61.1111

Columns 13 through 18

67.7778 74.4444 81.1111 87.7778 94.4444 101.1111

Columns 19 through 24

107.7778 114.4444 121.1111 127.7778 134.4444 141.1111


6. Ecuación Diferencia del SD:
y [ k ] =0.5 y [ k−1 ] −0.25 y [ k−3 ] −1.5 u [ k −1 ] +2u [ k −2 ]
c. La SP: h(k) y graficarla, usando calculo analítico y Matlab.
d. Hallar la función transferencia H(z), su transformada inversa z y graficarla, usando el comando
“residue”.
clear all;clc
u=[0 0 0 1 zeros(1,20)];
y=[0 0 0 1 zeros(1,20)];
n=-2:21;
for k=4:24
y(k)=0.5*y(k-1)-0.25*y(k-3)-1.5*u(k-1)+2*u(k-2);
end
num=[0 -1.5 2 0];
den=[1 -0.5 0 0.25];
disp('Aplicamos Fracciones parciales con el comando residue')
disp('............................................................')
[r,p,ks]=residue(num,den)
p1=abs(p(1));
fprintf('El modulo del primer polo es: %5.4f\n',p1)
r1=abs(r(1));
fprintf('El modulo del primer residuo es: %5.4f\n',r1)
theta=angle(p(1));
fprintf('El angulo theta del primero polo es: %5.4f\n',theta)
alfa=angle(r(1));
fprintf('El angulo alfa del primero residuo es: %5.4f\n',alfa)
r3=r(3);
p3=p(3);
escalon=ones(1,24);
rampa=0:23;
for m=0:22
h(m+1)=2*(p1^(m-1))*r1*cos((m-1)*theta+alfa)+r3*p3^(m-1);
end
disp('............................................................')
disp('La transformada inversa por el metodo residue')
h
disp('............................................................')
disp('La salida y(k) a la respuesta de una entrada escalon unitario')
y_escalon=filter(num,den,escalon)
disp('La salida y(k) a la respuesta de una entrada rampa unitaria')
y_rampa=filter(num,den,rampa)
subplot(2,2,1)
stem(n,y)
title('La Secuencia de Ponderacion')
xlabel('k')
ylabel('h(k)')
grid
subplot(2,2,2)
n=0:22;
stem(n,h)
title('La transformada inversa por el metodo residue')
xlabel('k')
ylabel('h(k)')
grid
n=0:23;
subplot(2,2,3)
stem(n,y_escalon)
title('La salida y(k) a la respuesta de una entrada escalon unitario')
xlabel('k')
ylabel('y(k)')
grid
subplot(2,2,4)
plot(n,y_rampa,'o',n,n,'-')
title('La salida y(k) a la respuesta de una entrada rampa unitaria')
xlabel('k')
ylabel('y(k)')
grid

Aplicamos Fracciones parciales con el comando residue


............................................................

r=

-0.2000 - 0.9000i
-0.2000 + 0.9000i
-1.1000 + 0.0000i

p=

0.5000 + 0.5000i
0.5000 - 0.5000i
-0.5000 + 0.0000i

ks =
[]

El modulo del primer polo es: 0.7071


El modulo del primer residuo es: 0.9220
El angulo theta del primero polo es: 0.7854
El angulo alfa del primero residuo es: -1.7895
............................................................
La transformada inversa por el metodo residue

h=

Columns 1 through 6

0.0000 -1.5000 1.2500 0.6250 0.6875 0.0313

Columns 7 through 12

-0.1406 -0.2422 -0.1289 -0.0293 0.0459 0.0552

Columns 13 through 18

0.0349 0.0060 -0.0108 -0.0141 -0.0086 -0.0016

Columns 19 through 23

0.0027 0.0035 0.0022 0.0004 -0.0007

............................................................
La salida y(k) a la respuesta de una entrada escalon unitario

y_escalon =

Columns 1 through 6

0 -1.5000 -0.2500 0.3750 1.0625 1.0938

Columns 7 through 12
0.9531 0.7109 0.5820 0.5527 0.5986 0.6538

Columns 13 through 18

0.6887 0.6947 0.6839 0.6698 0.6612 0.6596

Columns 19 through 24

0.6624 0.6659 0.6680 0.6684 0.6677 0.6669

La salida y(k) a la respuesta de una entrada rampa unitaria

y_rampa =

Columns 1 through 6

0 0 -1.5000 -1.7500 -1.3750 -0.3125

Columns 7 through 12

0.7813 1.7344 2.4453 3.0273 3.5801 4.1787

Columns 13 through 18

4.8325 5.5212 6.2159 6.8998 7.5696 8.2308

Columns 19 through 24

8.8904 9.5528 10.2187 10.8867 11.5552 12.2229


7. Un sistema discreto representado por su ecuación en diferencia, tiene como entrada u(k) y
como salida y(k).

u(0)=1.5
u(1)=0.5
u(2)=-0.5
u(k)=0 : k=3,4,5,…
Ecuación diferencia:
y(k+2)+0.5y(k+1)+0.2y(k)=u(k+1)+0.3u(k)
Donde: y(k)=0∶k≤0
u(k)=0:k<0
Hallar:
a) La función transferencia H(z) analíticamente y por MatLab.
b) La salida y(k), para la entrada dada u(k), en forma analítica y por MatLab.

y(z) z +0.3
H (z )= = 2
u( z) z +0.5 z +0.2

clear all;clc
num=[1 0.3];
den=[1 1 0.2];
Hz=tf(num,den,-1)
[z,p]=tf2zpk(num,den)
disp('El sistema es estable, sus polos se encuentran dentro del circulo de radio 1')
disp('............................................................')
delta=[1 zeros(1,30)];
u=[1.5 0.5 -0.5 zeros(1,18)];
y=[0 1.5 zeros(1,19)];
for k=1:19
y(k+2)=u(k+1)+0.3*u(k)-0.5*y(k+1)-0.2*y(k);
end
disp('Hallamos la salida y(k) de forma analitica')
y
disp('............................................................')
n=0:20;
stem(n,y)
title('Salida Y(k) por el metodo analitico')
xlabel('k')
ylabel('y(k)')
grid

Hz =

z + 0.3
-------------
z^2 + z + 0.2

Sample time: unspecified


Discrete-time transfer function.

z=

0
-0.3000

p=

-0.7236
-0.2764

El sistema es estable, sus polos se encuentran dentro del circulo de radio 1


............................................................
Hallamos la salida y(k) de forma analitica
y=

Columns 1 through 9

0 1.5000 0.2000 -0.7500 0.1850 0.0575 -0.0658 0.0214 0.0025

Columns 10 through 18

-0.0055 0.0023 -0.0000 -0.0004 0.0002 -0.0000 -0.0000 0.0000 -0.0000

Columns 19 through 21

-0.0000 0.0000 -0.0000


............................................................
8. Sea el sistema formado por el muestreador de periodo de muestreo T, bloqueador de orden
cero y la planta con función de transferencia:

kp
G ( s )=
s (s +1)

Realizar el cálculo manual y verificar por comandos MatLab.

a. Hallar la FT G(Z), del sistema en LA para kp=1.


 Hallar y graficar la salida c(t), para una entrada Delta de Kronecker, T=1seg; T=0.05seg.
 Hallar y graficar la salida c(t), para una entrada escalon unitario, T=1seg; T=0.05seg.
clear all;clc
disp('...................................................')
kp=1;
disp('El valor de kp=1')
T=1;
disp('El valor de T=1')
num=kp;
den=conv([1 0],[1 1]);
G=tf(num,den)
Gz=c2d(G,T,'zoh')
[num,den]=tfdata(Gz,'v');
delta=[1 zeros(1,20)];
escalon=ones(1,21);
disp('La respuesta de C(t) para una entrada delta de kronecker T=1')
C_delta=filter(num,den,delta)
disp('La respuesta de C(t) para una entrada escalon unitario T=1')
C_escalon=filter(num,den,escalon)
k=0:20;
figure(1)
subplot(2,1,1)
stem(k,C_delta)
title('La respuesta de C(t) para una entrada delta de kronecker T=1')
xlabel('kT')
ylabel('C(kT)')
subplot(2,1,2)
stem(k,C_escalon)
title('La respuesta de C(t) para una entrada escalon unitario T=1')
xlabel('kT')
ylabel('C(kT)')
disp('...................................................')
kp=1;
disp('El valor de kp=1')
T=0.05;
disp('El valor de T=0.05')
num=kp;
den=conv([1 0],[1 1]);
G=tf(num,den)
Gz=c2d(G,T,'zoh')
[num,den]=tfdata(Gz,'v');
delta=[1 zeros(1,20)];
escalon=ones(1,21);
disp('La respuesta de C(t) para una entrada delta de kronecker T=0.05')
C_delta=filter(num,den,delta)
disp('La respuesta de C(t) para una entrada escalon unitario T=0.05')
C_escalon=filter(num,den,escalon)
k=0:20;
figure(2)
subplot(2,1,1)
stem(k,C_delta)
title('La respuesta de C(t) para una entrada delta de kronecker T=0.05')
xlabel('kT')
ylabel('C(kT)')
subplot(2,1,2)
stem(k,C_escalon)
title('La respuesta de C(t) para una entrada escalon unitario T=0.05')
xlabel('kT')
ylabel('C(kT)')

...................................................
El valor de kp=1
El valor de T=1

G=

1
-------
s^2 + s

Continuous-time transfer function.

Gz =

0.3679 z + 0.2642
----------------------
z^2 - 1.368 z + 0.3679

Sample time: 1 seconds


Discrete-time transfer function.

La respuesta de C(t) para una entrada delta de kronecker T=1

C_delta =

Columns 1 through 6

0 0.3679 0.7675 0.9145 0.9685 0.9884

Columns 7 through 12

0.9957 0.9984 0.9994 0.9998 0.9999 1.0000

Columns 13 through 18

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

Columns 19 through 21

1.0000 1.0000 1.0000

La respuesta de C(t) para una entrada escalon unitario T=1

C_escalon =

Columns 1 through 6

0 0.3679 1.1353 2.0498 3.0183 4.0067


Columns 7 through 12

5.0025 6.0009 7.0003 8.0001 9.0000 10.0000

Columns 13 through 18

11.0000 12.0000 13.0000 14.0000 15.0000 16.0000

Columns 19 through 21

17.0000 18.0000 19.0000

...................................................
El valor de kp=1
El valor de T=0.05

G=

1
-------
s^2 + s

Continuous-time transfer function.

Gz =

0.001229 z + 0.001209
----------------------
z^2 - 1.951 z + 0.9512

Sample time: 0.05 seconds


Discrete-time transfer function.

La respuesta de C(t) para una entrada delta de kronecker T=0.05

C_delta =

Columns 1 through 6

0 0.0012 0.0036 0.0059 0.0080 0.0101

Columns 7 through 12

0.0120 0.0139 0.0156 0.0173 0.0189 0.0204

Columns 13 through 18

0.0219 0.0232 0.0245 0.0258 0.0270 0.0281

Columns 19 through 21

0.0292 0.0302 0.0311


La respuesta de C(t) para una entrada escalon unitario T=0.05

C_escalon =

Columns 1 through 6

0 0.0012 0.0048 0.0107 0.0187 0.0288

Columns 7 through 12

0.0408 0.0547 0.0703 0.0876 0.1065 0.1269

Columns 13 through 18

0.1488 0.1720 0.1966 0.2224 0.2493 0.2774

Columns 19 through 21

0.3066 0.3367 0.3679


b. Hallar la FT H(Z), del sistema en LC:
 Hallar y graficar la salida c(t), para kp=1 con una entrada escalon unitario. Verificar TVI
y TVF. Con T=1seg y T=0.05seg; verificar estabilidad en LC.
 Hallar el rango de kp para asegurar estabilidad en LC, con T=1seg y T=0.05 seg.

clear all;clc
disp('...................................................')
kp=1;
disp('El valor de kp=1')
T=1;
disp('El valor de T=1')
num=kp;
den=conv([1 0],[1 1]);
G=tf(num,den)
Gz=c2d(G,T,'zoh')
Hz=feedback(Gz,1)
[num,den]=tfdata(Hz,'v');
[z,p]=tf2zpk(num,den)%Obtencion de ceros y polos de la funcion de transferencia
disp('El sistema es estable, sus polos se encuentran dentro del circulo de radio 1')
escalon=ones(1,21);
disp('La respuesta de C(t) para una entrada escalon unitario T=1')
C_escalon=filter(num,den,escalon)
valor_inicial=C_escalon(1);%valor inicial
fprintf('Valor Inicial de C(t) para una entrada Escalon Unitario:
%1.3f\n',valor_inicial)
valor_final=C_escalon(21);%valor final
fprintf('Valor Final de C(t) para una entrada Escalon Unitario: %1.3f\n',valor_final)
subplot(2,1,1)
n=0:20;
stem(n,C_escalon)
title('La respuesta de C(t) para una entrada escalon unitario T=1')
xlabel('kT')
ylabel('C(t)')
disp('...................................................')
kp=1;
disp('El valor de kp=1')
T=0.05;
disp('El valor de T=0.05')
num=kp;
den=conv([1 0],[1 1]);
G=tf(num,den)
Gz=c2d(G,T,'zoh')
Hz=feedback(Gz,1)
[num,den]=tfdata(Hz,'v');
[z,p]=tf2zpk(num,den)%Obtencion de ceros y polos de la funcion de transferencia
disp('El sistema es inestable')
escalon=ones(1,21);
disp('La respuesta de C(t) para una entrada escalon unitario T=0.05')
C_escalon=filter(num,den,escalon)
valor_inicial=C_escalon(1);%valor inicial
fprintf('Valor Inicial de C(t) para una entrada Escalon Unitario:
%1.3f\n',valor_inicial)
valor_final=C_escalon(21);%valor final
fprintf('Valor Final de C(t) para una entrada Escalon Unitario: %1.3f\n',valor_final)
subplot(2,1,2)
n=0:20;
stem(n,C_escalon)
title('La respuesta de C(t) para una entrada escalon unitario T=0.05')
xlabel('kT')
ylabel('C(t)')

...................................................
El valor de kp=1
El valor de T=1

G=

1
-------
s^2 + s

Continuous-time transfer function.

Gz =

0.3679 z + 0.2642
----------------------
z^2 - 1.368 z + 0.3679

Sample time: 1 seconds


Discrete-time transfer function.

Hz =

0.3679 z + 0.2642
-----------------
z^2 - z + 0.6321

Sample time: 1 seconds


Discrete-time transfer function.
z=

-0.7183

p=

0.5000 + 0.6182i
0.5000 - 0.6182i

El sistema es estable, sus polos se encuentran dentro del circulo de radio 1


La respuesta de C(t) para una entrada escalon unitario T=1

C_escalon =

Columns 1 through 6

0 0.3679 1.0000 1.3996 1.3996 1.1470

Columns 7 through 12

0.8944 0.8015 0.8682 0.9937 1.0770 1.0810

Columns 13 through 18

1.0323 0.9811 0.9607 0.9726 0.9975 1.0148

Columns 19 through 21

1.0164 1.0070 0.9967

Valor Inicial de C(t) para una entrada Escalon Unitario: 0.000


Valor Final de C(t) para una entrada Escalon Unitario: 0.997
...................................................
El valor de kp=1
El valor de T=0.05

G=

1
-------
s^2 + s

Continuous-time transfer function.

Gz =

0.001229 z + 0.001209
----------------------
z^2 - 1.951 z + 0.9512

Sample time: 0.05 seconds


Discrete-time transfer function.

Hz =

0.001229 z + 0.001209
---------------------
z^2 - 1.95 z + 0.9524

Sample time: 0.05 seconds


Discrete-time transfer function.

z=

-0.9835

p=

0.9750 + 0.0426i
0.9750 - 0.0426i

El sistema es inestable
La respuesta de C(t) para una entrada escalon unitario T=0.05

C_escalon =

Columns 1 through 6

0 0.0012 0.0048 0.0107 0.0187 0.0287

Columns 7 through 12

0.0406 0.0543 0.0696 0.0865 0.1048 0.1244

Columns 13 through 18

0.1452 0.1671 0.1900 0.2138 0.2383 0.2636

Columns 19 through 21

0.2894 0.3158 0.3426

Valor Inicial de C(t) para una entrada Escalon Unitario: 0.000


Valor Final de C(t) para una entrada Escalon Unitario: 0.343
9. 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 escalon unitario.

−1 −2
z (1−z )
H ( z )=
(1+z−2 )2

clear all;clc
num=[1 0 -1 0];
den=[1 0 2 0 1];
Hz=tf(num,den,-1)
[z,p]=tf2zpk(num,den)%Obtencion de ceros y polos de la funcion de transferencia
disp('El sistema es inestable, sus polos multiples complejos se encuentran sobre el
circulo de radio 1')
subplot(2,1,1)
zplane(num,den)

Hz =

z^3 - z
---------------
z^4 + 2 z^2 + 1

Sample time: unspecified


Discrete-time transfer function.

z=

0
0
-1
1

p=

0.0000 + 1.0000i
0.0000 - 1.0000i
-0.0000 + 1.0000i
-0.0000 - 1.0000i

El sistema es inestable, sus polos multiples complejos se encuentran sobre el circulo de radio 1