Professional Documents
Culture Documents
ASIGNATURA
Sistemas De Control I
CARRERA
INGENIERIA EN COMPUTACION
Monografa Final
Integrantes:
Bustos, Maximiliano.
Gleria, Martin.
Docente Clases Tericas:
Ing. AGERO, Adrin C.
Docente Clases Prcticas:
Ing. BAUMGARTNER, Josef
AO LECTIVO: 2013
Segundo Cuatrimestre
Resumen:
Se quiere controlar la temperatura de un Switch haciendo variar las
RPM de un ventilador proporcionalmente a la variacin de
temperatura del gabinete, utilizando tambin para este fin un
disipador de calor. La temperatura de trabajo pretende ser de 40C, y
su lmite superior es de 80C, ya que los componentes electrnicos
soportan aproximadamente 90C (segn hoja de datos), razn por la
cual nos tomamos un margen de 10C por seguridad.
Introduccin
El problema consiste en el control de temperatura del gabinete de un
Switch, lo cual se hara regulando automticamente la velocidad de
giro de un cooler y conjuntamente con la accin de un disipador. Con
el objeto de mantener la temperatura constante o lejos de
temperaturas crticas que pueden daar los componentes internos del
equipo, atenuando el efecto de perturbaciones externas como podran
ser las altas temperaturas ambientales, la presencia de suciedad en
el gabinete, la mayor generacin de calor de los componentes al ser
exigidos. Para lograr este objetivo, el modelo compara
constantemente una entrada de referencia, fijada en 40C que
representa la temperatura deseada de trabajo, con la temperatura
medida por el sensor. De esta diferencia surge la velocidad de
rotacin del cooler, derivando en un flujo de aire que en accin
conjunta con el disipador, regulan la temperatura del gabinete del
Switch.
Consideraciones:
Modelo inicial
Cooler:
90
5800
Disip ( s ) =
2 s+1
5800
12
Cooler ( s )=
3 s+ 1
Sensor:
0.4
40
Sens ( s )=
3 s+ 1
Adaptador 1:
Adap 1(s)=
6.4
40
Adaptador 2:
Adap 2(s)=
6.4
0.4
0.192
2
18 s +21 s + 8 s+ 1
3
0.010667
2
(s +0.5)(s +0.33)
POLOS
p1 -0.5
p2 -0.33
p3 -0,33
C ( s)
G( s)
=
R (s ) 1+G ( s ) H (s)
LC =
LC =
0.2(s+ 0.3333)
(s +0.6252)(s 2+ 0.5415 s+ 0.1059)
POLOS
p1 -0.6252
p2 0.27+0.1
8i
p3 -0.270.18i
Regla de Mason:
En un intento de verificar las funciones de transferencia obtenidas
mediante algebra de diagramas, se procede a aplicar la regla de
Mason en el afn de llegar a resultados equivalentes.
frmula:
M k K
M = k=1
18 s 3 +21 s2 +8 s+2.2
18 s 3+ 21+ 8 s+ 1
1
1+GH
Luego calculamos
frmula:
k p =lim G(s)H (s)=1,2
s 0
1
1
=
=0,45
1+ k p 1+1,2
El cual indica una diferencia relativa del 45% entre el valor de la seal
de entrada respecto a la de salida.
A continuacin observamos en la figura el error calculado.
Ingresamos con un Step de amplitud 40 y la salida se establece en
aproximadamente 22.
k v =lim
G( s)H ( s)
s2
s 0
k a=lim
Luego el error, calculado como
R (s)
K
Criterio de Routh-Hurwitz
La ecuacin caracterstica, luego de agregar el integrador es:
k
1+ G ( s ) H ( s )=0
s
18 s 4+ 21 s3 +8 s2 + s+1,2 k
=0
4
3
2
18 s +21 s +8 s +s
18 s 4 +21 s 3 +8 s 2+ s +1,2 k=0
18
1,2k
21
7,14
1,2k
13,53 k
1,2k
S
3
S
2
S
1
S
0
vemos que:
1=13,53 k > 0
Este resultado deber ser mayor que cero para que no signifique un
cambio de signo en la ecuacin y no haga el sistema inestable.
Luego:
1>3,53 k
k<
1
=0,283
3,53
Por ltimo el intervalo de k para que nuestro sistema sea estable es:
0< k <0,283
Polos dominantes
Para saber cules son los polos dominantes del sistema vamos a
observar nuevamente las posiciones de los mismos:
Los polos con su parte real ms cercana al eje imaginario tienen unos
residuos mayores e influirn ms a la respuesta del sistema, a estos
polos los denominamos polos dominantes.
Esto es debido a que cuanto ms cerca del eje j est la parte real de
un polo, mas influir este en la en la respuesta transitoria del sistema,
volvindolo ms lento; por el contrario, mientras ms se alejan los
polos del eje imaginario en el semiplano izquierdo de s, menos peso
tienen sobre la respuesta transitoria, y segn algunos autores, si
superan en 10 veces la magnitud de la parte real de los polos
dominantes, estos polos pueden considerarse insignificantes en
cuanto a la respuesta transitoria se refiere. Cuando se pretende
mejorar la velocidad de establecimiento de un sistema, el anlisis de
los polos dominantes puede ser una herramienta muy til.
En nuestro caso el polo dominante es el que agrega el integrador para
disminuir el error de rgimen permanente, produciendo as un nuevo
lugar de races:
Lugar de Races
En teora de control, el lugar de races (del ingls root locus) es el lugar
geomtrico de los polos y ceros de una funcin de transferencia a medida
que se vara la ganancia del sistema K en un determinado intervalo.
El mtodo del lugar de races permite determinar la posicin de los polos de
la funcin de transferencia a lazo cerrado para un determinado valor de
ganancia K a partir de la funcin de transferencia a lazo abierto; esto
constituye una herramienta muy til para analizar la estabilidad de sistemas
dinmicos, valindonos del hecho que un sistema es estable si todos sus
polos se encuentran en el semiplano izquierdo del plano s.
El lugar de races para nuestro sistema es el siguiente:
Compensacin
Requerimientos:
SettlingMax: 8.1996
Overshoot: 31.1931
Undershoot: 0
Peak: 8.1996
PeakTime: 23.2606
Siendo
y ( max ) y ( final)
100
y ( final )
y (max)=52.5 y
Sobrepaso=
52.539.8
100
39.8
Sobrepaso=32.25
y (final)=39.8 , tenemos:
Tiempo de establecimiento
Sobrepaso Sobrepaso=12,5
T s=54.3 s
T sOPT 27 s
Sobrepaso 4
= 18 s 4+ 21 s3 +8 s2 + s
LA
p1 0
p2 -0.33
p3 -0.33
p4 -0.5
Ahora bien, establecemos un factor de amortiguamiento deseado de
0.7 y ya habamos definido un tiempo de establecimiento de
t s=25
t s=
4
n
n=
4
t s
Quedando entonces:
n=0.2285 0.23
s 1= n + n 1 2 i
s 1=(0.7)( 0.23)+(0.23) 1(0.7)2 i
s 1=0.161+0.164 i
Una forma alternativa, ms sencilla, de calcular el punto de trabajo es
despejando
n=
Siendo
de la ecuacin, quedando:
4
ts
t s=25 s , nos queda:
n=0.16 0.2
Este ltimo valor representa la parte real del polo deseado o punto de
trabajo para las especificaciones dadas; constituye entonces nuestro
s1 :
s 1=0.2+0.2 i
Emplearemos, en primera instancia, el mtodo de la bisectriz para el clculo
del compensador.
s1
son:
-0.33
-56,4
p4
-0.5
-33,7
Grficamente
G c 1=
s+ 0.1
s+ 0.85
0.0033(s+0.1)
s (s +0.85)( s+0.5)(s+0.3333)2
Ahora, nos valemos del criterio del mdulo para calcular la ganancia
del compensador:
kLA COMP 1
Haciendo valer
s=s1
k =1.75
s+0.6
s+ 0.75
(Nota: La ganancia no es la que el presente mtodo arroja, sino la calculada con el criterio
del mdulo y ajustada posteriormente para un menor sobrepaso)
Comparacin de Compensadores
Para justificar la notable diferencia de los tiempos de establecimiento,
recurrimos al lugar geomtrico de races una vez ms.
Gc 2
Repuesta en Frecuencia
Graficamos la fase y la magnitud de nuestra funcin a lazo abierto
correspondiente a nuestro sistema, donde la primera imagen es sin
compensacin y la segunda es utilizando el compensador calculado:
Ganancia de
Fase
Funcin LA compensada
Ganancia de
Fase
Ganancia de
Amplitud
Ganancia de
Fase
Funcin LA compensada
Conclusiones
Anexo
m-file
clear all
clc
Cooler=tf([5800/12],[3 1]);
Disip=tf([90/5800],[2 1]);
Sens=tf([0.4/40],[3 1]);
Adap1=6.4/40;
Adap2=6.4/0.4;
%En el modelo Simulink se tiene configurado como entrada un Step de
%amplitud 40 con un adaptador que provoca que sea 6.4V. Por lo tanto
Adap1
%no tendra efecto en este contexto.
opt = stepDataOptions('StepAmplitude',6.4);
Integrador=tf([0.1],[1 0]);
%Este fue el compensador calculado con la metodologia aprendida en
clase.
% El cual decidimos reemplazar por otro calculado segn se explica en
el
% informe.
% Compensador=tf([1 0.132],[1 0.418]);
% K=1.32;
Compensador=tf([1 0.5928],[1 0.6937]);
K=0.90572;
G=Integrador*Cooler*Disip;
H=Sens*Adap2;
LA=G*H;
LAzpk=zpk(LA);
LC=feedback(G,H);
LCzpk=zpk(LC);
disp('La funcin lazo
LA
disp('En formato ZPK:
LAzpk
disp('La funcin lazo
LC
disp('En formato ZPK:
LCzpk
figure
step(LC,opt)
title('Salida del Sistema SIN Compensador')
stepinfo(LC)
G=K*Compensador*Integrador*Cooler*Disip;
H=Sens*Adap2;
LA=G*H;
LAzpk=zpk(LA);
LC=feedback(G,H);
LCzpk=zpk(LC);
figure
step(LC,opt)
title('Salida del Sistema CON Compensador')
stepinfo(LC)
numerador=(numerador+numer(1,a)*s^(colum1-1))
colum1=colum1-1;
end
numer=inline(numerador);
b=0;
denominador=0;
for b = 1:colum2
syms s;
denominador=(denominador+denom(1,b)*s^(colum2-1));
colum2=colum2-1;
end
denom=inline(denominador);
syms s;
funtrans = numer(s)/denom(s);
funcion = inline(funtrans);
%%Compensador de Adelanto
chi = sqrt((log(M/100))^2/(pi^2 + (log(M/100))^2));
wn = 3/(chi*ts);
chiwn=-wn*chi;
cita = acos(chi);
x = chiwn-0.5;
y = -chiwn*tan(cita);
punto = complex(x,y)
eval = funcion(punto);
colocho = angle(eval);
fi = pi-colocho;
n=1;
if (fi > (pi/2))
fi = fi/2;
n = 2;
if (fi >= pi)
fi = fi/3;
n=3;
end
end
cita2 = pi-angle(punto);
cero = -abs(punto)*(cos((cita2+fi)/2))/(cos((cita2fi)/2));
polo = -abs(punto)*(cos((cita2-fi)/2))/
(cos((cita2+fi)/2));
if (n==1)
kc =1/abs(funcion(punto)*(cero-punto)/(polo-punto));
elseif(n==2)
kc =1/abs(funcion(punto)*(cero-punto)^2/(polopunto)^2);
else
kc =1/abs(funcion(punto)*(cero-punto)^3/(polopunto)^3);
end
cero = -cero;
polo = -polo;
if ( n==1 )
disp(['El compensador de adelanto es '])
newnum=conv(kc,[1 cero])
newdenom=conv(1,[1 polo])
sistema = zpk(tf(newnum,newdenom))
else
if (n==2)
disp(['El compensador de adelanto es '])
newnum=conv([1 cero],conv([1 cero],kc))
newdenom=conv(conv([1 polo],1),[1 polo])
sistema = zpk(tf(newnum,newdenom))
else
cero],kc))
polo]))
sistema = zpk(tf(newnum,newdenom))
end
end
%%Compesador de Atraso
p=input('Desea Calcular el compensador de atraso 1) si 2)
no : ','s');
quiere=str2num(p);
if (quiere == 1)
resp = 0;
c=input('Digite el ess en porcentaje: ','s');
ess=str2num(c);
if (ess~=0)
while (resp == 0)
d=input('Escoja el tipo de entrada (1)
[escalon], (2)[rampa], (3)[parabola]: ','s');
in=str2num(d);
if (in ~= 1)&&(in~=2)&&(in~=3)
resp=0;
else
resp=1;
end
end
ess = ess/100;
if (in ==1)
kp=(1-ess)/ess;
Z0lP0=kp/(funcion(0)*cero^n*kc/polo^n);
syms s;
zeros = solve(denom(s),s);
zeros = double(zeros);
if (max(zeros ~= -0.25 ))
if (max(zeros) == 0)
disp(['El sistema debe ser de tipo
cero'])
j=input('Desea intentar de nuevo: 1)
Si 2) No:','s');
intente=str2num(j);
if (intente==1)
compensador2;
else
disp(['Fin de programa'])
end
else
Z0=-(max(zeros)+0.25);
P0=(Z0/Z0lP0);
disp(['El compensador de atraso es '])
numatr=conv(1,[1 Z0])
denatr=conv(1,[1 P0])
atraso = tf(numatr,denatr)
end
end
if (max(zeros == -0.25 ))
Z0=-(max(zeros)+0.1);
P0=(Z0/Z0lP0);
disp(['El compensador de atraso es '])
numatr=conv(1,[1 Z0])
denatr=conv(1,[1 P0])
atraso = tf(numatr,denatr)
end
end
if (in ==2)
kv=1/ess;
syms s;
limite=kv/(s*funcion(s)*cero^n*kc/polo^n);%
%Sirve para calcular lim G(s)*s
limite=inline(limite);
Z0lP0=limite(0);
syms s;
zeros = solve(denom(s),s);
zeros = double(zeros);
tamano=size(zeros,1);
tipo =0;
for p = 1:tamano
if (zeros(p)==0)
tipo=tipo+1;
end
end
if (tipo == 1)
if (max(zeros ~= -0.25 ))
Z0=-(max(zeros)+0.25);
end
if (max(zeros == -0.25 ))
Z0=-(max(zeros)+0.3);
end
P0=(Z0/Z0lP0);
disp(['El compensador de atraso es '])
numatr=conv(1,[1 Z0])
denatr=conv(1,[1 P0])
atraso = tf(numatr,denatr)
end
if (tipo ~= 1)
disp(['El sistema debe ser de tipo uno'])
disp(['Fin de programa'])
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if (in ==3)
ka=1/ess;
syms s;
limite=ka/(s^2*funcion(s)*cero^n*kc/polo^n);%
%Sirve para calcular lim G(s)*s
limite=inline(limite);
Z0lP0=limite(0);
syms s;
zeros = solve(denom(s),s);
zeros = double(zeros);
tamano=size(zeros,1);
tipo =0;
for p = 1:tamano
if (zeros(p)==0)
tipo=tipo+1;
end
end
if (tipo == 2)
if (max(zeros ~= -0.25 ))
Z0=-(max(zeros)+0.25);
end
if (max(zeros == -0.25 ))
Z0=-(max(zeros)+0.3);
end
P0=(Z0/Z0lP0);
disp(['El compensador de atraso es '])
numatr=conv(1,[1 Z0])
denatr=conv(1,[1 P0])
atraso = tf(numatr,denatr)
end
if (tipo ~= 2)
disp(['El sistema debe ser de tipo dos'])
disp(['Fin de programa'])
end
end
else
filtro de muesca'])
disp(['Fin de programa'])
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
end
if (quiere~=1)
disp(['Fin de Programa'])
end
else
Estos deben
Datasheets
LM35
Brushless Flat DC-Micromotors