Beruflich Dokumente
Kultur Dokumente
Impulse Response
40
35
30
25
Amplitude
20
15
10
0
0 10 20 30 40
Time (seconds)
Figura 1
El cdigo usado para calcular la respuesta al impulso es:
Gs=tf([1],[1 0 0],'InputDelay', 0.3);
impulse(Gs)
Amplitude
500
0
0 5 10 15 20 25 30 35 40
Time (seconds)
Step Response
1000
Amplitude
500
0
0 5 10 15 20 25 30 35 40
Time (seconds)
Step Response
1000
Amplitude
500
0
0 5 10 15 20 25 30 35 40
Time (seconds)
Step Response
1000
Amplitude
500
0
0 5 10 15 20 25 30 35 40
Time (seconds)
Figura2
El cdigo para hallar las respuestas al escaln en lazo abierto son:
Gs=tf([1],[1 0 0],'InputDelay', 0.3);
Gz1=c2d(Gs,1,'foh');
Gz2=c2d(Gs,.1,'foh');
Gz3=c2d(Gs,.01,'foh');
subplot(4,1,1)
step(Gs,'r')
subplot(4,1,2)
step(Gz1,40)
subplot(4,1,3)
step(Gz2,40)
subplot(4,1,4)
step(Gz3,40)
Figura 4
Figura 5
Figura 6
El cdigo para hallar las respuestas discretizada vs la operada discreta es:
Donde p es el tiempo de muestreo que se vara cada vez que se genera una
respuesta e ins es la funcin de transferencia de una seal no peridica que
representa la entrada que excite el sistema de una forma ms dinmica.
Nota: foh es uno de los mtodos de discretizacin.
3.
Luego de hallar el polo deseado, buscamos las constantes del controlador PID
(a, b) de tal forma que se cumpla la condicin de ngulo, para ello se crea la
siguiente rutina de cmputo:
Root Locus
5
3 System: sys
Imaginary Axis (seconds-1)
Gain: 0.562
2 Pole: -1.33 + 3.47i
Damping: 0.357
1 Overshoot (%): 30
0 Frequency (rad/s): 3.71
-1
-2
-3
-4
-5
-14 -12 -10 -8 -6 -4 -2 0 2
-1
Real Axis (seconds )
Figura 7
System: Tsc
Time (seconds): 3.95
Amplitude: 1
1
Amplitude
0.5
0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Time (seconds)
Figura 8
0.8
0.6
0.4
0.2
0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Time (seconds)
Figura 9
Ahora el sobreimpulso es de 30% y el tiempo de establecimiento es de 3
segundos o menos. Tambin se verifica el LGR y con la nueva ganancia sigue
pasando por el polo deseado.
4.
PUNTO 4.
Empleando el periodo de muestreo obtenido en el numeral 2) discretice el
controlador PID e implemente mediante una rutina de computo su realizacin en la
forma de posicin.
e= ones(1,71);
u = zeros(1,71);
for k=3:71
u(k) = (b1*e(k))+(b2*e(k-1))+(b3*e(k-2))+(a1*u(k-1));
end
subplot(1,2,1)
stem(e,'g')
grid
title ('Seal de Entrada al Controlador')
xlabel('k')
ylabel ('r(k)')
subplot(1,2,2)
stem(u,'m')
grid
title ('Salida del Controlador')
xlabel('k')
ylabel ('e(k)')
Graficas
PUNTO 5.
Construya un algoritmo en MATLAB que permita simular la interaccin (en el
dominio del tiempo y no de la frecuencia) entre la planta y el controlador digital
considerado. Muestre los resultados de evolucin en el tiempo para la salida de la
planta, la seal de referencia y la seal de control. Analice el efecto de
perturbacin en el sistema.
El siguiente cdigo corresponde a la realizacin en posicin de todo el
sistema (controlador + planta con retroalimentacin)
r= ones(1,501);
e = [1 0.79145825 zeros(1,499)];
u = zeros(1,501);
c = [0 0.20854175 zeros(1,499) ];
end
subplot(1,2,1)
stem(r,'g')
grid
title ('Seal de Referencia')
xlabel('k')
ylabel ('r(k)')
subplot(1,2,2)
stem(e,'m')
grid
title ('Seal de Error')
xlabel('k')
ylabel ('e(k)')
figure
subplot(1,2,2)
stem(c)
grid
title ('Respuesta al Escaln Unitario')
xlabel('k')
ylabel ('c(k)')
subplot(1,2,1)
stem(u,'r')
grid
title ('Seal de Control')
xlabel('k')
ylabel ('u(k)')
El siguiente cdigo corresponde a la realizacin en posicin de todo el
sistema (controlador + planta con retroalimentacin) con perturbacin
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% REALIZACIN EN POSICIN CON PERTURBACIN
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
clear all
close all
r= ones(1,501);
e = [1 0.79145825 zeros(1,499)];
u = zeros(1,501);
c = [0 0.20854175 zeros(1,499) ];
p = [0 0 0 0 1 1 1 1 20*rand(1,493)]; % variacin de la perturbacin
for k=3:501
c(k) = c(k-1)+ 0.00125*u(k-1);
e(k) = r(k)-c(k);
u(k) = (b1*e(k))+(b2*e(k-1))+(b3*e(k-2))+(a1*u(k-1)) + p(k) - p(k-1);
end
REALIZACIN EN POSICIN CON PERTTUBACIONES ENTRE 0 Y 1
clear all
clc
close all
r = ones(1,501);
u = zeros(1,501);
c = [0 0.00180349 zeros(1,499) ];
end
subplot(1,2,1)
stem(r,'g')
grid
title ('Seal de Referencia')
xlabel('k')
ylabel ('r(k)')
subplot(1,2,2)
stem(c)
grid
title ('Respuesta al Escaln Unitario')
xlabel('k')
ylabel ('c(k)')
figure
stem(u,'r')
grid
title ('Seal de Control')
xlabel('k')
ylabel ('u(k)')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% REALIZACIN EN VELOCIDAD CON PERTURBACIN
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
r2 = ones(1,501);
u2 = zeros(1,501);
c2 = [0 0.00180349 zeros(1,499)];
p2 = [0 0 0 0 1 1 1 1 5*rand(1,493)];
for k=3:501
c2(k) = c2(k-1) + 0.00125*u2(k-1);
u2(k) = (c12*r(k))+(b12*c2(k))+(b22*c2(k-1))+(b32*c2(k-2))+(a12*u2(k-
1))+ p2(k)-p2(k-1);
end
PUNTO 8.