You are on page 1of 34

UNIVERSIDAD NACIONAL DE CORDOBA

FACULTAD DE CIENCIAS EXACTAS, FISICAS Y NATURALES.

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:

Se eligi como sensor un LM35, cuya hoja de datos se


encuentra adjunta al presente informe. El sensor registra la
temperatura del equipo en forma de un voltaje analgico.
El valor entregado por el sensor vara linealmente obedeciendo
la relacin 10mV/C.
La velocidad mxima del motor del cooler es 5800 RPM; este
dato fue obtenido tras analizar el modelo de motor que ofrece
el libro Sistemas De Control Automtico, Kuo y valindonos
tambin de trabajos anteriores pudimos establecer un modelo
simplificado del mismo.
Tanto la salida como la entrada del sistema son temperaturas,
pero internamente se trabajan como voltajes.
Se simula el ingreso de la temperatura actual dentro del
gabinete, siendo esta de 60C.

Modelo inicial

Entrada: Una seal constante (escaln) que representa la


temperatura de referencia a la cual el dispositivo en cuestin puede
operar de manera cmoda y sin complicaciones. En nuestro modelo
representa una temperatura de 40C.
Adaptador (1 y 2): Es una constante que permite transformar
grados en voltios para que el sistema internamente trabaje de esta
forma. De esta manera quedan ajustadas las respectivas escalas
utilizando el valor de referencia de 40C.
Cooler: El dispositivo elegido fue Brushless Flat DC-Micromotors Serie
2610 012B de la marca FAULHABER (hoja de datos adjuntada).
Presenta un voltaje nominal de 12V, para el cual mediante un modelo
de motor obtenido del libro de Sistemas de Control Automtico, Kuo, y
la referencia de otros trabajos hemos
determinado que operando a 12V el cooler es
capaz de girar a 5800RPM, con un tiempo de
establecimiento para llegar al 63% de 3
segundos.
Sensor: Vamos a utilizar como referencia el
sensor LM35, el cual tiene un rango de
trabajo de 4 a 30V, produciendo como salida
10mV/C contando desde los 0C segn la
configuracin utilizada. Este sensor medir la
temperatura del gabinete del Switch. Si la temperatura es 80C
presenta como salida 0.8V (800mV), con un tiempo de
establecimiento para llegar al 63% de 3 segundos, segn la siguiente
figura de la hoja de datos:

Disipador: La funcin de transferencia de la disipacin de calor es la


siguiente:
90
5800
Disip ( s ) =
2 s+1
En donde 90C es la temperatura mxima que el sistema es capaz de
disipar a una velocidad angular del cooler mxima de 5800RPM.
Este bloque es una simplificacin de dos bloques que consideran el flujo
mximo de caloras que el sistema es capaz de disipar a una velocidad
angular de cooler mxima y, en segundo lugar, la temperatura mxima que
es posible disipar para ese flujo.

Temperatura externa: Este bloque pretende simular el calor


presente en el gabinete del Switch, el cual constantemente hace
trabajar el sistema de refrigeracin. Cabe aclarar que en nuestro
modelo este aspecto se encuentra simplificado, lo modelamos como
una constante, cuando se sabe que es bastante ms complejo que
eso. Pero a fin de cuentas es un valor que se aade a lo que el
sistema trae de la comparacin entre la temperatura medida y la de
referencia, para constituir la temperatura que ingresa al sensor LM35.
Salida : La temperatura en grados Celcius.
En base a lo expuesto hasta aqu, se confeccionaron las respectivas
funciones de transferencias de cada bloque explicado, quedando
como se muestran a continuacin.

Modelo con las funciones de transferencia

Las funciones de transferencia de cada uno de los componentes son:


Disipador:

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

Funcin de transferencia a Lazo Abierto


Se llega a la funcin de transferencia de lazo abierto (LA) por algebra
de diagrama de bloques, obteniendo la siguiente ecuacin:
LA=

0.192
2
18 s +21 s + 8 s+ 1
3

Expresada en funcin de ceros, polos y ganancia (ZPK):


LA=

0.010667
2
(s +0.5)(s +0.33)
POLOS

p1 -0.5
p2 -0.33
p3 -0,33

No existen ceros en la funcin de transferencia a lazo abierto.

Funcin de transferencia a Lazo Cerrado


La funcin de transferencia de lazo cerrado (LC) mediante diagramas
de bloque, se obtiene de aplicar:
LC =

C ( s)
G( s)
=
R (s ) 1+G ( s ) H (s)

LC =

21.6 s3 +25.2 s 2+ 9.6 s +1.2


108 s5 +216 s4 +171 s3 +68.15 s 2 +13.96 s+ 1.192

Expresada en funcin de ceros, polos y ganancia (ZPK):

LC =

0.2(s+ 0.3333)
(s +0.6252)(s 2+ 0.5415 s+ 0.1059)

Cuyo diagrama de ceros y polos en el plano s es:

Los ceros y polos se resumen en la siguiente tabla:


CEROS
c1 0.3
3

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.

A continuacin representaremos el sistema con nodos y trayectorias:

Procedemos as a realizar la Regla de Mason, mediante la siguiente


N

frmula:

M k K

M = k=1

Siendo N el nmero total de caminos directos, Mk ganancia de la ruta


directa k y = 1 ganancia de los lazos individuales + ganancia de
los productos de todas las combinaciones posibles de dos lazos que
no se toquen-
Y por ltimo = con todos los lazos que tocan la ruta directa k
igual a cero.
Entonces N=1 el nico camino directo es abcde y el nico lazo es
bcdb. Por lo tanto los trminos son:
6.4
483.33
40
0.01552
3 s+1
1.2
M 1=
= 2
2 s+ 1
6 s +5 s+1
Luego calculamos la ganancia de los lazos simples:
6.4
483.33
0.40
0.015
3 s +1
(1 )0.01
2 s+1
1.2
L1 =
=
3
3 s+ 1
18 s +21 s 2 +8 s +1
El

1 queda unitario debido a que quitamos todos los lazos adjuntos

a M1. Por ltimo el determinante grfico sera:


=1L1=

18 s 3 +21 s2 +8 s+2.2
18 s 3+ 21+ 8 s+ 1

Quedando as formada la ecuacin de Mason:


1.2
3
2
M
6 s +5 s+ 1
21.6 s +25.2 s +9.6 s+1.2
M = 1 1=
=
3
2
5
4
3
2

18 s +21 s +8 s +2.2 108 s +216 s +171 s +74.2 s +19 s+2.2


3
2
18 s +21 s +8 s +1
2

Quedando semejante a la misma funcin de transferencia calculada


mediante lgebra de bloques para lazo cerrado, solo que difiere en
algunos trminos por redondeo en los clculos.

Error en rgimen permanente


Con el propsito de analizar los diferentes comportamientos del
sistema mediante las diferentes seales bsicas de entrada al
sistema (step, rampa y parbola), observaremos los siguientes
grficos que representan la relacin entre la seal de entrada y salida
correspondientes:
Empezaremos con la seal de entrada step, se pudo observar que la
salida del sistema no llega al valor esperado, esto se debe a que
existe un error de posicin el cual se calcula como:
ss =lim
s 0

1
1+GH

Luego calculamos

k p (constante de error de posicin) mediante la

frmula:
k p =lim G(s)H (s)=1,2
s 0

Luego el error en rgimen permanente es:


ss =

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.

La forma de tratar este tipo de error en un sistema alimentado con un


entrada escaln, es agregando un polo al origen, convirtiendo el
k
sistema en uno de tipo 1, es decir, agregar un integrador
a la
s
funcin de transferencia.
Para encontrar los valores de ganancia k con los que se puede
trabajar en el sistema sin que este se vuelva inestable, aplicamos el
criterio de Routh-Hurwitz, en la siguiente seccin.
A modo de anlisis, agregamos a las imgenes ante las entradas de
rampa y parbola:

Si observamos la funcin a lazo abierto notamos que no tiene ningn


polo al origen por lo tanto el sistema es de TIPO 0 (sin el
integrador).
Teniendo en cuenta que para este tipo de sistemas:
G( s)H ( s)
s s

k v =lim
G( s)H ( s)
s2
s 0

k a=lim
Luego el error, calculado como

R (s)
K

siendo R(s) la entrada rampa

o parbola y K la respectiva constante de error se vuelve infinito,


para estas dos entradas.

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

Analizaremos para que valores de k el sistema se comportar de


manera estable mediante el criterio de Routh-Hurwitz, para la cual
utilizaremos la ecuacin caracterstica definida arriba.

18

1,2k

21

7,14

1,2k

13,53 k

1,2k

S
3

S
2

S
1

S
0

Entonces analizamos el resultado de

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 otro lado examinando el valor de 1.2k, concluimos que k deber


ser mayor a cero, por el mismo motivo mencionado antes. Entonces:
1,2 k >0

Por ltimo el intervalo de k para que nuestro sistema sea estable es:
0< k <0,283

Entonces, el compensador que elegimos para eliminar el error,


manteniendo el estado estable del sistema de control es:
k 0.1
Integrador= =
s
s
Lo que deja a nuestro sistema como se muestra a continuacin:

Produciendo una salida donde se observa la notoria correccin del


error en rgimen permanente tras haber agregado el integrador
respectivo.

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 sin integrador

Lugar de races con integrador

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:

Se puede ver de la captura anterior, que en el lmite con el eje


imaginario, llegando desde el eje de abscisas negativo, donde
tenemos el lmite terico de estabilidad, tenemos el valor mximo
de k calculado a travs del criterio de Routh-Hurwitz, para el cual
nuestro sistema sigue siendo estable.

Compensacin
Requerimientos:

10% del sobrepasoSobrepasoMax=4


Reducir el tiempo de establecimiento a menos de la mitad del
actual25s

Tras ejecutar el comando stepinfo de MatLab a nuestro sistema, nos


arroja el siguiente resultado:
>> stepinfo(LC)
RiseTime: 9.2407
SettlingTime: 75.0805
SettlingMin: 5.6705

SettlingMax: 8.1996
Overshoot: 31.1931
Undershoot: 0
Peak: 8.1996
PeakTime: 23.2606

Pero el tiempo de establecimiento calculado por MatLab seguramente


usa un criterio mas estricto que el que nosotros necesitamos. Para
obtener el tiempo de establecimiento T s entonces, identificaremos
aquel tiempo en el cual la repuesta al escaln queda estable dentro
del 5% de la respuesta estable. En este caso, nuestro clculo basado
en la observacin de la grfica mostrada en la pgina anterior,
determina que el tiempo de establecimiento es de 54.3s, en vez de
75s segn el clculo de MatLab.
Para el sobrepaso debemos trabajar con la siguiente frmula:
Sobrepaso=

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:

Por lo tanto el sobrepaso tiene un valor en nuestro sistema de


32.25%. Difiere muy poco respecto al arrojado por MatLab de 31.19%.
Resumiendo, los parmetros iniciales a optimizar son:

Tiempo de establecimiento
Sobrepaso Sobrepaso=12,5

T s=54.3 s

T sOPT 27 s
Sobrepaso 4

Ajustando el valor k del integrador agregado anteriormente podemos


reducir notablemente el sobrepasamiento del sistema. Lo reducimos a
la mitad quedando k =0.05 obteniendo una salida:

Desde este punto, quisiramos ahora agregarle un compensador en


adelanto de fase que mejore el tiempo de establecimiento para
lograr el objetivo planteado.

Nuestra funcin de Lazo Abierto actual, luego de haberle agregado un


integrador y tras modificarle el k, qued de la siguiente forma:
0.06

= 18 s 4+ 21 s3 +8 s2 + s
LA

Cuyos polos son:


POLOS

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

Segundos. Podemos calcular el valor de de la siguiente manera:

t s=

4
n

n=

4
t s

Quedando entonces:

n=0.2285 0.23

Con este valor procedemos a calcular el punto de diseo de la siguiente


manera:

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.

Los ngulos que cada uno de los polos conforma en relacin a

s1

son:

Por lo tanto, el ngulo del compensador (en adelanto) se calcula como


sigue:
( c )=180 +134,47 + ( 43,63 )2+25,81
( c )=67,54
Elegimos utilizar un compensador en adelanto ya que este hace el
sistema ms rpido porque mejora la respuesta transitoria, un
compensador en atraso mejorara el error en rgimen permanente,
hecho que ya hemos corregido en nuestro
POLOS
ngulo
sistema.
-135
p1 0
Se procede entonces a calcular las
-56,4
p2 -0.33
p3

-0.33

-56,4

p4

-0.5

-33,7

posiciones del polo y el cero


del compensador:
x cero=0,1
x polo=0,85

Grficamente

La funcin de transferencia del compensador sera entonces:

G c 1=

s+ 0.1
s+ 0.85

Y la funcin de transferencia de lazo abierto del sistema compensado


sin ganancia expresada como zpk es:
LA COMP =

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

en la ecuacin anterior, obtenemos que:

k =1.75

El resultado de la funcin stepinfo habiendo agregado el


compensador es:
>> stepinfo(LC)
RiseTime: 177.8099
SettlingTime: 316.9404
SettlingMin: 5.6254
SettlingMax: 6.2459
Overshoot: 0
Undershoot: 0
Peak: 6.2459
PeakTime: 701.4006

Como se puede observar, el sistema con el compensador calculado se


ha vuelto DEMASIADO lento. Tarda 5 minutos (300s aprox.) en entrar
en rgimen. Obviamente este no es aceptable y est fuera de los
parmetros que pretendemos.
Encontramos una alternativa para calcular un compensador en
adelanto de fase. Una funcin que utiliza algunas herramientas de
MatLab y otras propias que tiene como parmetros de entrada los
coeficientes del sistema, el sobrepaso deseado y el tiempo de
establecimiento deseado. Esta funcin utiliza criterios diferentes para
la ubicacin del polo y del cero del compensador, pero para nuestro
sistema ha funcionado mejor en cuanto a los requerimientos
solicitados. Adjuntamos el cdigo de la funcin al final del informe. El
compensador calculado de esta forma es:
Gc 2=1.6

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)

Y la salida del sistema con este compensador resulta:

Donde se observa que alcanza los 40 a los 22 segundos con un


sobrepasamiento de 3.9, con un tiempo de establecimiento de unos
30 segundos aproximadamente.

Comparacin de Compensadores
Para justificar la notable diferencia de los tiempos de establecimiento,
recurrimos al lugar geomtrico de races una vez ms.

Esta imagen muestra el lugar de races para el sistema con el


compensador Gc 1 y el punto resaltado es donde se desplaza el polo
del origen tras aplicarle la ganancia calculada. Este polo es MUY
dominante al estar cerca del eje imaginario, por lo tanto es el
causante de la LENTITUD del sistema provocando un tiempo de
establecimiento muy largo.

Como vemos el compensador

Gc 2

tiene un lugar de races

ligeramente diferente debido a que el polo y el cero del mismo estn


ubicados ms alejados del eje imaginario, por lo que producen que el
polo al origen est ms alejado del eje para la ganancia planteada,
con la desventaja que deja de tener parte imaginaria igual a cero, por
lo que el sobrepasamiento aumenta ligeramente, pero queda dentro
de los parmetros establecidos. El alejar el polo del eje j produce
que el sistema pueda cumplir con las especificaciones de tiempo
planteadas.
El sistema por lo tanto queda conformado como sigue:

Y analizando la salida con una alteracin distinta de cero,


aproximando a una situacin real donde la temperatura del gabinete

del Switch sea 70C, nuestro sistema responde como sigue:

Donde podemos observar que en poco ms de 25s baja la


temperatura del gabinete por debajo de los 40, como pretendamos.

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 sin compensar

Funcin LA compensada

Donde los polos de la funcin sin compensar son: 0, -0.5 y un polo


doble en -0.33.
Por otro lado los polos y ceros de la funcin compensada son: 0, -0.5,
-0.418 y un polo doble en -0.33, aclaramos que el compensador en
adelanto agrega un cero en -0.132.
El criterio de estabilidad de Bode indica cmo establecer un mtodo
racional de sintona de sistemas de control por retroalimentacin para
evitar situaciones de inestabilidad. El margen de ganancia se define
como el cambio en la ganancia a lazo abierto necesario para
inestabilizar el sistema. Los sistemas con mrgenes de ganancia
grandes pueden tolerar mayores cambios en los parmetros del
sistema antes de hacerse inestable a lazo cerrado.

Lgicamente debe tomar valores por encima de la unidad para que el


sistema sea estable.
El margen de ganancia es una medida importante del sistema ya que:
1. Constituye una medida de la proximidad del sistema de la zona de
inestabilidad.
2. Cuanto mayor de la unidad sea el margen de ganancia, ms seguro ser
el sistema controlado.
Utilizando matlab podemos observar cuales son los mrgenes de ganancia
de fase y amplitud:
Ganancia de
Amplitud

Ganancia de
Fase

Funcin LA sin compensar

Ganancia de
Amplitud

Ganancia de
Fase

Funcin LA compensada

Claramente observamos que la ganancia con el compensador es


mayor, logrando as que el sistema necesite un Kc mayor para que se
inestabilice.

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

abierto del sistema es: ')


')
cerrado del sistema es: ')
')

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)

Funcin para calcular el compensador


%
Este Programa Calcula el compensador de adelanto y de atraso
para
%
un sistema en "s" la funcion trabaja de la siguiente manera:
%
%
PID(numerador, denominador, sobreimpulso, tiempo de
estabilizacion)
%
Ejemplo:
%
num= [1 3 4]
%
den= [3 2 5 3]
%
leadlag(num,den,10,2)
%
El compensador de adelanto es
%
newnum =
%
20.33126550103975 57.98484070119527
%
newdenom =
%
1.00000000000000
2.87111370360492
%
Zero/pole/gain:
%
20.3313 (s+2.852)
%
----------------%
(s+2.871)
%
%
Tener cuidado de no escribir letras en los espacios del
spbrimpulso y
%
el tiempo de estabilizacion
%
El tiempo de estabilizacion esta calculado por la formula:
%
ts=3/(chi*wn)
%
%
Para el compensador de adelanto se creo el criterio de ubicar la
%
parte real del punto a utilizar 0.5 a la izquierda de chi*wn
%
Para el compensador de atraso se creo el criterio de ubicar el
%
cero a utilizar 0.25 a la derecha del polo mas a la derecha
%
%
function [sistema,atraso] = leadlag(numer, denom, M, ts)
ni=nargin;
algito=numer;
algito1=denom;
if (ni==4)
warning off MATLAB:divideByZero
sirve = isnumeric(M);
sirve1 = isnumeric(ts)
if (sirve == 1)%&&(sirve1 == 1)
colum1=size(numer,2);
colum2=size(denom,2);
a=0;
numerador=0;
for a = 1:colum1
syms s;

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

newnum=conv(conv([1 cero],[1 cero]),conv([1

cero],kc))

newdenom=conv(conv([1 polo],1),conv([1 polo],[1

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(['Para este caso es necesario un compensador

disp(['Fin de programa'])
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

end
if (quiere~=1)
disp(['Fin de Programa'])
end

else

disp(['Error en la introduccion de M o ts.


ser numeros'])
end
else
disp(['Faltan parametros'])
end

Estos deben

Datasheets
LM35
Brushless Flat DC-Micromotors

You might also like