Академический Документы
Профессиональный Документы
Культура Документы
LABORATORIO N°4
TEMA: Respuesta temporal de los sistemas de control automático.
ALUMNOS:
Arequipa
2017
1
INDICE
CARÁTULA 1
INDICE 2
MARCO TEÓRICO 3
Ejercicio 1
Controlador PID 13
o Acción Proporcional (P) 15
o Acción Proporcional Integral(PI) 17
o Acción Proporcional Integral derivativo (PID) 20
Ejercicio 2 22
Ejercicio 3 26
Ejercicio 4 28
Ejercicio 5 39
Conclusiones 33
Bibliografía 34
2
MARCO TEORICO
Entre los comportamientos importantes de un sistema que deben recibir una cuidadosa
consideración, aparte de la estabilidad absoluta, están la respuesta transitoria y el error
en estado estacionario e(ss) Cuando un sistema ha alcanzado un estado de equilibrio se
dice que se encuentra en estado estacionario.
FIGURA 1
3
La respuesta transitoria de un sistema de control práctico con frecuencia presenta
oscilaciones amortiguadas antes de alcanzar un estado estacionario.
Si la salida de un sistema no coincide exactamente con la referencia, se dice que el
sistema tiene un error en estado estacionario ess.
Al analizar un sistema de control se debe examinar el comportamiento de la respuesta
transitoria y el comportamiento en estado estacionario.
Dentro de los sistemas de control estables existen tres tipos de clasificaciones bien
definidas:
el caso amortiguado Figura (a)
el caso críticamente amortiguado Figura (b),
el caso sobre amortiguado Figura (c).
La salida contra el tiempo para un sistema críticamente estable se muestra en la Figura
(d).
La respuesta transitoria de un sistema para una entrada escalón unitario depende de las
condiciones iniciales. Por conveniencia, al comparar respuestas transitorias de varios
sistemas, es común que las condiciones iniciales del sistema sean cero. De este modo,
las características de respuesta se comparan con facilidad.
Al especificar las características de respuesta transitoria de un sistema de control para
una entrada escalón unitario,+ es común especificar lo siguiente.
4
•Tiempo de retardo dt, es el tiempo requerido para que la respuesta alcance por
primera vez la mitad del valor final.
•Tiempo de levantamiento rt, es el tiempo requerido para que la respuesta pase
del 10% al 90%, del 5% al 95% ó del 0% al
100% de su valor final. Para sistemas subamortiguados de segundo orden,
comúnmente se usa el tiempo de levantamiento de 0% a 100%. Para sistemas
sobre amortiguados, suele usarse el tiempo de levantamiento de 10% a 90%.
•Tiempo pico pt, es el tiempo requerido para que la respuesta alcance el primer
pico de sobre paso.
•Sobre paso máximo pM, es el valor pico máximo de la curva de respuesta,
medido a partir de la unidad. Si el valor final en estado estacionario es diferente
de la unidad, es común usar el porcentaje de sobre paso máximo, que se define
mediante
5
EL CONTROLADOR PID BÁSICO
Este algoritmo está considerado como el PID estándar por la ISA (Instrument Society of
America). A continuación se resumen los términos básicos:
CONTROLADOR P
%REGULADOR P;
%Funcion de transferencia ejemplo del sistema en cadena abierta;
num=1;
den=conv([10 1],[5 1]);
sys=tf(num,den);
%Regulador Proporcional;
Kp=2;
sysa=Kp*sys;
%Sistema equivalente realimentado;
7
[sysc]=feedback(sysa,1);
hold on;
%Respuesta del sistema;
step(sysc);
title('Regulador P');
LA ACCIÓN INTEGRAL PI
Otra de las razones intuitivas que ayuda a comprender los beneficios de la acción
integral es que, cuando se introduce, la existencia de un pequeño error durante un
intervalo prolongado de tiempo puede dar lugar a un gran valor de la señal de control.
El algoritmo de la acción integral es el siguiente:
8
El caso particular en el que Ti es infinito se corresponde con el control P. Al introducir la
acción integral se observa que:
%controlador PI;
%Funcion de transferencia ejemplo del sistema;
num=1; den=[10 1];
sys=tf(num,den);
Kp=10; Ki=30;
%Funcion de transferencia del controlador PI;
numc=[Kp Ki];
denc=[1 0];
sysc=tf(numc,denc);
%Sistema equivalente realimentado;
numa=conv(num,numc);
dena=conv(den,denc);
9
sysa=tf(numa,dena);
[sysac]=feedback(sysa,1);
step(sysac);
title('controlador PI');
LA ACCIÓN DERIVATIVA PD
Uno de los problemas del controlador PI y que limita su comportamiento es que solo
considera los valores del error que han ocurrido en el pasado, es decir, no intenta
predecir lo que pasará con la señal en un futuro inmediato.
La acción derivativa realiza ese tipo de compensación, que se basa en introducir una
acción de predicción sobre la señal de error. Una forma sencilla de predecir es
extrapolar la curva de error a lo largo de su tangente. El algoritmo de la acción
derivativa es el siguiente:
10
En la figura anterior se puede ver que las oscilaciones se amortiguan cuando se utiliza la
acción derivativa. A medida que Td aumenta la salida se va aproximando cada vez más a
una exponencial.
Una desventaja importante de la acción derivativa es que hay que ser muy cuidadoso a
la hora de escoger el valor del tiempo derivativo. En las instalaciones industriales es
frecuente desconectar la acción derivativa (hacer Td = 0), aunque en otras ocasiones
está muy recomendada. Un ejemplo es el caso de procesos multi-capacitivos, como
puede ser el control de temperatura.
Debido a la inercia del sistema es importante saber hacia dónde se está evolucionando.
La acción de calentamiento tiene que pararse a tiempo.
Una conducción lenta de calor puede significar que, incluso después de desconectar el
sistema de calentamiento, la temperatura continúe aumentando durante mucho
tiempo. Durante este período la temperatura puede sobrepasar considerablemente su
punto de consigna si no se ejerce una acción de control cuidadosa.
Otro ejemplo donde es importante predecir el error es cuando hay grandes retardos o
tiempos muertos en el proceso. En esta situación, desgraciadamente, la acción
derivativa no suele dar una buena predicción y hay que utilizar controladores
específicos (basados en el predictor de Smith o en las estrategias de control predictivo)
para solucionar el problema. Si no se tiene acceso a un controlador de este tipo, en
estos casos es mejor utilizar un controlador PI.
%controlador PD;
%Funcion de transferencia ejemplo del sistema;
num=1;
den=conv([10 1],[5 1]);
Kp=10;
Kd=10;
numc=[Kd Kp];
%Funcion de transferencia del controlador PD;
numa=conv(num,numc);
sysa=tf(numa,den);
[sysac]=feedback(sysa,1);
step(sysac);
title('controlador PD');
11
La adición de la acción integral a un controlador PD es esencialmente lo mismo que
añadir dicha acción a un controlador P.
12
DESARROLLO DEL LABORATORIO
1. Controlador PID: Repita las siguientes instrucciones y tome atención en cada uno
de los resultados obtenidos. Le permitirá conocer la acción proporcional (P),
integral (I) y derivativa (D), de los controladores. Estructura mayormente usada en
la industria.
Los valores numéricos de los coeficientes del modelo están en la tabla 1. Las
especificaciones de diseño del controlador para este sistema, considerando una
entrada escalón unitario de 1 rad/s, son:
13
COEFICIENTES PARA EL MODELO DINAMICO DEL MOTOR DC
𝐾𝐼 𝐾 𝑠2 + 𝐾𝑃𝑠 + 𝐾𝐼
𝐷
PID (s) = 𝐾𝑃 + +𝐾 𝐷𝑠 = (4.4)
𝑠 𝑠
Para resolver este problema, crearemos un file pidmotor.m donde introduciremos lo
siguiente:
function [h]=pidmotor(kp,ki,kd)
% modelo del motor G(s)
J=3.2284E-6;
b=3.5077E-6;
K=0.0274;
R=4;
L=2.75E-6;
num=K;
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2) 0];
% F.T del controlador PID(s)
kp=kp;
ki=ki;
kd=kd;
numpid=[kd kp ki];
denpid=[1 0];
% F.T en lazo abierto F(s)=G(S)*PID(s)
numf=conv(num,numpid);
denf=conv(den,denpid);
[af,bf,cf,df]=tf2ss(numf,denf)
sysf=ss(af,bf,cf,df)
% FT en lazo cerrado H(s)=F(s)/1+F(s) (negative feedback)
h=feedback(sysf,1);
14
a) Acción Proporcional (P)
af =
1.0e+007 *
-0.1455 -8.6144 0 0
0.0000 0 0 0
0 0.0000 0 0
0 0 0.0000 0
bf =
1
0
0
0
cf =
1.0e+009 *
0 0 5.5244 0
df =
a=
x1 x2 x3 x4
x1 -1.455e+006 -8.614e+007 0 0
x2 1 0 0 0
x3 0 1 0 0
15
x4 0 0 1 0
b=
u1
x1 1
x2 0
x3 0
x4 0
c=
x1 x2 x3 x4
y1 0 0 5.524e+009 0
d=
u1
y1 0
Continuous-time model.
a=
x1 x2 x3 x4
x1 -1.455e+006 -8.614e+007 -5.524e+009 0
x2 1 0 0 0
x3 0 1 0 0
x4 0 0 1 0
b=
u1
x1 1
x2 0
x3 0
x4 0
c=
x1 x2 x3 x4
y1 0 0 5.524e+009 0
d=
u1
y1 0
Continuous-time model.
16
FIGURA 1
17
FIGURA 2
Incremente el valor de 𝐾𝐼 , primero a 50, luego a 200. Observe ¿Cuál es el efecto de la acción
integral?
FIGURA 3
18
clear all % borra todas las variable incluyendo las
globales y las funciones
h=pidmotor(1.79,200,0)
t=0:0.001:0.3; % tiempo de la simulación
step(h,t)
xlabel('Tiempo (s)') % rotulación de eje tiempo(s)
ylabel('Posicion (rad)') % rotulación de eje posición (rad)
grid % activa la inclusión de una cuadricula en el dibujo
FIGURA 4
FIGURAS 2, 3 Y 4
Las gráficas muestran un tiempo de acomodación largo el cual se puede modificar
cambiando los valores de kp y ki.
En los casos anteriores, el tiempo de acomodación es muy largo. Para reducirlo y obtener una
respuesta más rápida. Hacemos las modificaciones. 𝐾𝑃 = 17 y 𝐾𝐼 = 200.
19
FIGURA 5
af =
1.0e+007 *
-0.1455 -8.6144 0 0
0.0000 0 0 0
0 0.0000 0 0
0 0 0.0000 0
bf =
1
0
0
0
20
cf =
1.0e+011 *
df =
a =
x1 x2 x3 x4
x1 -1.455e+006 -8.614e+007 0 0
x2 1 0 0 0
x3 0 1 0 0
x4 0 0 1 0
b =
u1
x1 1
x2 0
x3 0
x4 0
c =
x1 x2 x3 x4
y1 0 4.629e+008 5.247e+010 6.172e+011
d =
u1
y1 0
Continuous-time model.
a =
x1 x2 x3 x4
x1 -1.455e+006 -5.491e+008 -5.247e+010 -6.172e+011
x2 1 0 0 0
x3 0 1 0 0
x4 0 0 1 0
b =
u1
x1 1
x2 0
x3 0
x4 0
c =
21
x1 x2 x3 x4
y1 0 4.629e+008 5.247e+010 6.172e+011
d =
u1
y1 0
Continuous-time model.
FIGURA 6
𝑊2𝑛
H(s) = 𝑠2 +2𝜉𝜔 2 (4.5)
𝑛 𝑠 +𝜔 𝑛
22
CODIGO
FIGURA 7
23
b) 𝛏 = 0,5 y 𝜔𝑛 = [0 : 0,25 :4] rad/s
t=0:0.1:5;
zeta=0.5;
wn=0:0.25:4;
for n=1:16
num=[wn(n)^2];
den=[1 2*zeta*wn(n) wn(n)^2];
[y(1:51,n),x,t]=step(num,den,t);
end
subplot(2,1,1)
plot(t,y)
grid
title('respuesta a un escalon unitario')
xlabel('t(seg)')
ylabel('respuesta')
subplot(2,1,2)
pzmap(num,den)
FIGURA 8
3.
24
c) 𝛏 = [0,25 :3] y 𝜔𝑛 = 2 rad/s
t=0:0.1:5;
wn=2;
zeta=0:0.25:3;
for n=1:12
num=[zeta(n)^2];
den=[1 2*wn*zeta(n) zeta(n)^2];
[y(1:51,n),x,t]=step(num,den,t);
end
subplot(2,1,1)
plot(t,y)
grid
title('respuesta a un escalon unitario')
xlabel('t(seg)')
ylabel('respuesta')
subplot(2,1,2)
pzmap(num,den)
FIGURA 9
t=0:0.1:5;
wn=3;
zeta=0:0.25:3;
for n=1:12
num=[zeta(n)^2];
den=[1 2*wn*zeta(n) zeta(n)^2];
[y(1:51,n),x,t]=step(num,den,t);
end
subplot(2,1,1)
plot(t,y)
grid
title('respuesta a un escalon unitario')
xlabel('t(seg)')
25
ylabel('respuesta')
subplot(2,1,2)
pzmap(num,den)
FIGURA 10
𝟐𝟔𝟎𝟎
𝑮(𝒔) =
𝟒𝒔𝟒 + 𝟏𝟐𝟖𝒔𝟑 + 𝟏𝟎𝟓𝟑𝒔𝟐 + 𝟏𝟗𝟗𝟎𝒔 + 𝟐𝟔𝟎𝟎
𝒕𝒓 : Tiempo de levantamiento, es el tiempo requerido para que la respuesta pase del 10% al
90%, del 5% al 95% o del 0% al 100% de su valor final.
𝒕𝒑 : Tiempo pico, es el tiempo requerido para que la respuesta alcance el primer pico máximo.
FIGURA 11
26
“CURVA DE RESPUESTA ESCALON UNITARIO”
CODIGO
num=input('Ingrese el numerador de la Función Transferencia:\n');
den=input('Ingrese el denominador de la Función Transferencia:\n');
G=tf(num,den);
step(G)
stepinfo(G)
FIGURA 12
27
4.- Considere el sistema de la ecuación. Determine los valores de y n para que el
sistema responda a una entrada escalón con un sobrepaso de aproximación de 5%y con
un tiempo de asentamiento (ts) de 2 segundos. (Use el criterio de 2% para la tolerancia
permisible. Compare con los resultados analíticos)
𝒘𝒏 𝟐
𝑯(𝒔) =
𝒔𝟐 + 𝟐𝜹𝒘𝒏 𝒔 + 𝒘𝒏 𝟐
Primero calculamos 𝜍 :
𝜋𝜍
−
𝐷% = 100𝑒 √1−𝜍2
4
𝑡𝑠 =
𝜔𝑛 ∗ 𝜍
4
2=
𝜔𝑛 ∗ 0.690072
𝜔𝑛 = 2.960078
Código:
clear all
wn = input('Cual es el valor de su constante w:\n');
psi = input('Cual es el valor de su constante psi:\n');
num= wn^2;
den=[1 2*psi*wn wn*wn];
G=tf(num,den);
step(G)2
stepinfo(G)
>> sistemseg3
Cual es el valor de su constante w:
2.960078
Cual es el valor de su constante psi:
0.690072
ans =
RiseTime: 0.7093
SettlingTime: 2.0255
28
SettlingMin: 0.9022
SettlingMax: 1.0500
Overshoot: 4.9971
Undershoot: 0
Peak: 1.0500
PeakTime: 1.4525
Step Response
1.4
1.2
0.8
Amplitude
0.6
0.4
0.2
0
0 0.5 1 1.5 2 2.5 3
Time (sec)
5.- Implemente una nueva función (similar a la función pidmotor del ítem1). Usando esa
nueva función, encuentre los parámetros del controlador PID (Kp, Ki, Kd) para el sistema
mecánico siguiente.
X ( s) 1
F ( s) ms 2 bs k
Dónde:
m= 2Kg masa del móvil
b=15Ns/m (Coeficiente del amortiguador)
29
k= 25N/m (coeficiente del resorte)
clear all
m=2; % kg
b=15; % Ns/m
k=25; % N/m
num=1; %numerador
den=[m b k]; %denominador
Kp=300; %tanteando kp
num=[Kp]; %renombrando con kp
den=[m b k+Kp]; %renombrando con kp
t=0:0.01:2; %vector de tiempo
step(num,den,t) %respuesta al escalon
grid
title('respuesta a un escalón unitario') %titulo
xlabel('t(seg)') %nombre del eje x
ylabel('Respuesta') %nombre del eje y
30
Fig.14 Gráfica de la respuesta en escalón
En esta parte solo trabajamos con una acción proporcional (P), Kp=300
31
ylabel('Respuesta') %nombre del eje y
En esta segunda parte trabajamos con una acción proporcional integral (PI), Kp=30
Ki=70
clear all
m=2; %masa en kg
b=15; %coeficiente de amortiguamiento en Ns/m
k=25; %coeficiente del resorte en N/m
num=1; %nombrando al numerador
den=[m b k]; %nombrando al denominador
Kp=350; %tanteando kp
32
Ki=300; %tanteando ki
Kd=50; %tanteando kd
num=[Kd Kp Ki]; %renombrando al denominador
den=[m b+Kd k+Kp Ki]; %renombrando al denominador
t=0:0.01:2; %vector de tiempo
step(num,den,t) %respuesta al escalón
grid
title('respuesta a un escalón unitario') %titulo
xlabel('t(seg)') %nombre del eje x
ylabel('Respuesta') %nombre del eje y
En esta tercera parte trabajamos con una acción proporcional integral derivativa
(PID), Kp=350 Ki=300 Kd=50
33
CONCLUSIONES:
Los controles PID reúnen las características de los tres tipos de control
precedentes, por tanto su respuesta temporal es mas idónea.
BIBLIOGRAFÍA
http://isa.uniovi.es/~idiaz/ADSTel/Practicas/ModeladoMotorCC.html
http://www.lajpe.org/mar12/25_LAJPE_611_Manuel_Alvarez_preprint_corr_f.p
df
http://www.ing.unlp.edu.ar/cys/pdf/matlab2.pdf
http://jupiter.utm.mx/~tesis_dig/10719.pdf
http://biblioteca.usac.edu.gt/tesis/08/08_0202_EO.pdf
34