You are on page 1of 8

Control de temperatura de un cuarto mediante la implementaci on de un sistema de control digital

Carlos Alberto Venancio P erez, Carlos Ivan Alvarez Carmona. Te oria de Control 17 de mayo de 2013

Resumen

refrigeraci on y control de humedad del cuarto. En este caso se implemento un control todo o nada, sin embargo lograron Se desarrolla un sistema de control digital el cual permite un ahorro de energ a de un 17 por ciento, la temperatura se mantener la temperatura bajo los niveles requeridos, el sis- mantuvo en 22 con una uctuacion de 1.5 es decir que tema esta integrado por un motor de corriente continua el la temperatura maxima se elvo a los 23.5, la temperatura cual tiene incorporado un encoder incremental, la temper- nunca se registro por debajo de los 22 durante las prueba atura del ambiente se adquiere mediante un sensor LM35 [2]. y el procesamiento del algoritmo de control se realiza mediante un microcontrolador PIC18F452. El motor alcanza En el articulo Climatizacin en los Centros de Proceso distintos niveles de velocidad los cuales son determinados de Datos se expone la situaci on de mantener una habitaci on por una escala de temperatura denida. en la que se encuentran distintos servidores, computadores, etc. que se deben mantener a una temperatura deseada, en este caso solo se utiliza un circuito de control de lazo 1. Introducci on cerrado, se enfocan mas en la forma de instalaci on de las maquinas de regrigeraci on y ventilaci on, la forma he Desde tiempos muy antiguos el hombre a acondicionado infraestructura de la habitaci on el ujo de aire, la utilizaci on el ambiente en el que se desenvuelve con distintos nes, de ltros para limpiar las impurezas del aire entre otros los romanos guardaban hielo en pozos para utilizarlos en aspectos. Se destaca el que los dispositivos electr onicos en verano, distintas civilizaciones tuvieron practicas similares, la habitaci on no generan humedad como lo hacen los seres tambi en el hielo era guardado en cuartos aislados dentro de vivos, sin embargo es necesario su control para un mejor casa . A principios de siglo XIX se elaboro el primer pro- funcionamiento de las maquinas y alargar su tiempo de totipo de una maquina de refrigeraci on por Oliver Evans. vida [3]. Uno de los primeros procesos en los que fue necesario En la fabricaci on de circuitos integrados es necesario manmantener una temperatura en el ambiente controlada fue en tener distintas variables del entorno bajo niveles espec cos una imprenta de un peri odico neoyorquino el cual reduc a una de las mas importantes es la temperatura, el nivel de su calidad de impresi on si la temperatura del cuarto de presici o n que demanda esta industria es alto, de este modo impresi on se elevaba, por lo que fue necesario integrarle un es necesario implementar sistemas de control robustos casistema de refrigeraci on [1]. paces de realizar esta tarea. Como se a mencionado el motor En 1997 el grupo de investigadores de neurosiolog a de alcanza velocidad denidas dependiendo de la temperatura la universidad de Merida Yucatan emplearon un control en la que se encuentre el ambiente, la velocidad del motor on de circuitos integrados es necesario mantener de temperatura para mantener una habitaci on a 22, la fabricaci distintas variables del entorno en niveles espec cos, una de esto con el n de que las ratas con las que experimentaba ellas es la temperatura. estuvieran en un confort para las pruebas, esto es porque esta demostrado que al medicar a los animales mientras las temperaturas son altas o muy bajas los animales sufren comportamientos mas all a de solo lo medicado, es decir que la temperatura afecta en su desempe no. El grupo empleo un pic como unidad de procesamiento, este daba lectura al ambiente con un transistor tipo 2Q2222 para luego prender o apagar el extractor y el aire, quienes se encargaban de la 1 Por otra parte la velocidad es controlada mediante control PID utilizando como retroalimentaci on un encoder, el lm35 simplemente realiza la tarea de establecer el valor de referencia del motor dependiendo de la escala en que se encuentre. La escala de temperatura esta graduada por un delta de 5 , es decir que para cada rango de temperatura la velocidad se coloca en un valor de referencia denido previamente.

Control II, Marzo 2013

2.
2.1.

Desarrollo del Proyecto


Modelo matem atico del Motor de CD

Resistencia=7.1 . Par de rozamiento=.99e3 . Inductancia=265e6 . Inercia=.58e6 . Constante del motor=26.1e3 . De este modo se aplica una entrada tipo escal on de 24V, voltaje nominal del motor. Obtenemos entonces la siguiente respuesta:

El motor de corriente directa tiene un modelo matem atico, el cual modela ecientemente su comportamiento, debido a esto es posible aplicar m etodos de control deterministas, como el control PID. Para la realizaci on de pruebas f sicas y simulaciones se hizo uso del siguiente modelo: Y (t) = U (t) + m (t) (1)

donde U (t) es el modelo el ectrico y m (t) el modelo mec anico del motor. De este modo U (t) esta dado por: U (t) = L y m (t) por: m (t) = J d2 m (t) + l (t) + f (t) dt2 (3) di(t) + Ri(t) + eb (t) dt (2)

donde: U (t)= tensi on el ectrica aplicada al motor. i(t)= corriente el/ectrica. eb (t)= fuerza contra-electromotriz. m (t)= posici on angular del eje del motor. l (t)= par de la carga visto desde el eje del motor. f (t)= par de fricci on. asi Y (t) es: Figura 1: Simulaci on del modelo matem atico del motor.

La simulaci on muestra que la respuesta del motor es exdi(t) d2 m (t) tremadamente r apida, en menos de 500ms el motor alcanY (t) = L + Ri(t) + eb (t) + J + l (t) + f (t) (4) dt dt2 za su velocidad m axima. Esta gr aca es la que se requiere obtener de manera experimental con el objetivo de realizar El modelo matem atico anterior involucra los comporla sintonizaci o n de las ganancias para el controlador PID tamientos el ectricos y mec anicos del motor, de este modo se mediante el m e todo de lazo abierto de Ziegler-Nichols. consideran caracter sticas importantes en el funcionamiento del motor, como: la tensi on el ectrica, corriente el ectrica, par de fricci on, entre otras, las cuales determinan el funcionamiento del motor, y vienen dadas en las hojas de datos del fabricante.

2.3.

Codicaci on del Controlador PID

El modelo matem atico de un controlador PID es el siguiente: U (t) = Kp e(t) + Kp Ti


t

2.2.

Simulaci on del comportamiento del Motor

e( )d + Kp Td (
0

de(t) ) dt

(5)

Inicialmente se realizo una simulaci on del comportamiento del motor en lazo abierto, este proceso involucra el uso de las variables de fabricaci on del motor como lo son: resistencia, par de rozamiento, inductancia, inercia y constante del motor. Estas determinan la respuesta que el motor tiene ante una entrada de voltaje. Este procedimiento se realizo para comprobar la velocidad ideal que proporciona el fabricante, cabe se nalarse que se realizo en una escala de 1:10. Los parametros usados en esta simulaci on son los siguientes y se encuentran en la hoja de datos que se proporciona en el Apendice A:

y su funci on de transferencia: CP ID (s) = Kp (1 + 1 + Td s) Ti s (6)

sin embargo estas est an en tiempo continuo, para la implementaci on del controlador PID en un sistema digital como lo es el microcontrolador es necesario discretizar la funci on, de este modo el proceso de discretizaci on esta dado por el muestreo de las se nales, lo cual en este proyecto ha sido realizado mediante el uso de rutinas de interrupci on, las cuales

Control II, Marzo 2013

son eventos que ocurren a intervalos de tiempo denidos. Se ha implementado el control PID en base a la formula:
N

C (n) = KP E (n) + KI TS
0

E (n) +

KD [(E (n) E (n 1))] TS (7) }

donde: E (n)=Error actual del sistema. KP =Ganancia proporcional. KI =Ganancia integral. TS =Tiempo de muestreo. KD =Ganancia derivativa. E (n 1)=Error anterior.

} e l s e i f ( out < 0 ) { out =0; } SetDCPWM1( out ) ; e r a n t=ek ;

3.

Sintonizaci on PID

del

controlador

El proceso de sintonizaci on del controlador se realizara mediante las reglas de Ziegler-Nichols con una prueba en lazo abierto de la planta. Para esto es necesario realizar EL diagrama a bloques del sistema de control que sera un muestreo de la respuesta que experimenta la planta implementado es el siguiente: ante una entrada tipo escal on, en este caso la entrada tipo escal on es el cambio de 0 a 24 Volts, de este modo es necesario realizar el muestreo de la velocidad que alcanza el motor. Como se mostr o en la imagen 1 el motor de acuerdo a las caracter sticas de fabricaci on alcanza su velocidad m axima en un tiempo menor a los 500ms, es necesario entonces realizar el muestreo de datos a velocidades mas altas para obtener la gr aca con dicho comportamiento. La tabla con las reglas de sintonizaci on por el m etodo de Figura 2: Simulaci on del modelo matem atico del motor. Ziegler-Nichols es la siguiente: La programaci on en lenguaje C del controlador PID se ha llevado a cabo en una funci on llamada: void CalcPID(void), la funci on incluye lineas de c odigo extras a los c alculos del controlador, y es un proceso de delimitaci on de la salida del controlador, esto debido a que en el proceso de modelado matem atico no existe ninguna limitante, sin embargo en la implementaci on nos encontramos con las limitantes de hardware, en este caso la limitante son los 10 bits de resoluci on del PWM, de este modo podemos entregar valores entre 0 y 1023, limitamos entonces la salida entre el rango de valores antes mencionados en el caso de que estos no esten dentro de dicho rango, a este efecto se le conoce como integral wind-up o saturaci on integral. Se muestra entonces la funci on antes descrita. v o i d CalcPID ( ) { ek =sk aux ; sume+=ek ; P = Kp* ek ; I = b * ( sume ) ; D = d e r * ( ek e r a n t ) ; out = ( i n t ) ( P + I + D) ; i f ( out > 1023) { out =1023;

Figura 3: Reglas de sintonizaci on por Ziegler-Nichols. Para cumplir con el prop osito de temporizaci on exacta, se hizo uso del Timer1, se realizo la conguraci on de dicho timer para generar los muestreos cada 100us, las lineas necesarias para realizar la conguraci on son las siguientes. T1CONbits . RD16=1; T1CONbits . T1CKPS0=0; T1CONbits . T1CKPS1=0; T1CONbits .TMR1CS=0; T1CONbits .TMR1ON=1; TMR1L=0xFB ; TMR1H=0xFF ; Los valores de precarga en los registros (TMR1L y TMR1H) nos permiten generar una temporizaci on de 1us, este valor es obtenido mediante los siguientes c alculos.

Control II, Marzo 2013

T = 1us (5e6 ) T =5 donde 5e6 es TOSC=FOSC/4, es decir una cuarta parte de la frecuencia del oscilador que en este caso es de 20MHZ y 1us es el tiempo que requerimos. Entonces el timer tendra que contar 5 para generar una temporizaci on de 1us, pero el timer puede contar hasta 65536 debido a que su resoluci on es de 16 bits, para hacer que cuente solo hasta 5 ahi que iniciar el conteo desde 65536-5, es decir empezar a contar desde 65531, este es el valor de precarga y su equivalente en hexadecimal es 0xFFFB. El programa funcional completo se muestra a continuaci on. #i n c l u d e <p 1 8 f 4 5 2 . h> #i n c l u d e < s t d l i b . h> #i n c l u d e < s t r i n g . h> #i n c l u d e <p o r t b . h> #i n c l u d e < t i m e r s . h> #i n c l u d e < s t d i o . h> #i n c l u d e <pwm. h> #i n c l u d e <math . h> #i n c l u d e <adc . h>

void void void void void void void

Setup ( v o i d ) ; CalcPID ( v o i d ) ; mVelocity ( v o i d ) ; TemAdq( v o i d ) ; ISRLow ( v o i d ) ; ISRHigh ( v o i d ) ; TemptoVel ( v o i d ) ;

v o i d main ( v o i d ) { Setup ( ) ; while (1) { } }

v o i d TemAdq ( ) { ConvertADC ( ) ; w h i l e (BusyADC ( ) ) ; temp=ReadADC ( ) ; temp=temp * . 4 8 ; s e t v e l =( i n t ) temp / 2 ; }

c o n s t c h a r tem [ ] = PRUEBA DE TEMPERATURA ; v o i d USART( c o n s t c h a r * data ) c o n s t c h a r e r r o r [ ] = E r r o r =; { c o n s t c h a r v e l [ ] = P u l s o s de e n c o d e r c o n t a d o s =; do c o n s t c h a r s e t p o i n t [ ] = V e l o c i d a d Alcanzada =; { unsigned char i ; w h i l e ( ! ( TXSTA & 0 x02 ) ) ; u n s i g n e d i n t i n c =0; TXREG = * data ; u n s i g n e d i n t n , y , temp ; } w h i l e ( * data++ ) ; } c h a r i n p b u f [ 8 ] , buf [ 6 ] ; unsigned i n t A[ 1 0 0 ] ; i n t a , mvelocity , mvelocityr , s e t v e l o c i t y , UpCount , DownCount , m p o s i t i o n ; i n t aux , aux3 , aux2 , out ; f l o a t wk , Kp, Ti , Ts , Td , b , der , e r a n t , P , I , D, pk1 , pk , uk1 , r e f p o s , r e f v e l , P2 , I2 , D2 , e1 ; i n t yk , ek , uk , sume , dtime , p o s i t i o n , s e t v e l , pa , pb , pc , f a s e 1 , f l a g , s e t p o s ; int flag2 , flag3 , flag4 , t f i n a l , pini , pfinal , rtime , tb , th , t , e r r o r p o s , e r r o r v e l , sume2 ; // F u n c i o n e s p r o t o t i p o v o i d USART( c o n s t c h a r * data ) ; i = 0; aux=aux2=aux3 =0,n=0,a =0; ek =0; OpenPWM1( 0 x f f ) ; SetDCPWM1 ( 0 ) ; PORTC = 0 ; PORTA=0x00 ; TRISC = 0xdb ; TRISE = 0 ; PORTE = 0 x00 ; // Setup t h e USART f o r 19200 baud @ 20MHz v o i d Setup ( v o i d ) { OpenADC( ADC FOSC 32 & ADC RIGHT JUST & ADC 1ANA 0REF, ADC CH0 & ADC INT OFF ) ;

Control II, Marzo 2013

SPBRG = 1 5 ; TXSTA = 0 x20 ; RCSTA = 0 x90 ;

// 19200 baud @ 20MHz // s e t u p USART t r a n s m i t // s e t u p USART r e c e i v e

// Parametros para e l PID Ts = 0 . 0 0 0 0 1 ; Kp = 0 . 3 5 ; Ti = 0 . 0 0 0 1 ; Td= 0 . 0 0 5 5 ; b = Kp* Ts/ Ti ; // Termino i n t e g r a l d e r=Kp*Td/Ts ; pk = 0 ; pk1 = 0 ; e r a n t =0; s e t v e l =25; m p o s i t i o n =0; m v e l o c i t y =0; OpenTimer0 ( T0 16BIT & T0 SOURCE EXT & T0 EDGE RISE & T0 PS 1 1 & TIMER INT OFF ) ; TMR0L = 0 x0 ; TMR0H = 0 x0 ; OpenTimer1 ( T1 16BIT RW & T1 PS 1 1 & T1 OSC1EN OFF & T1 SOURCE EXT & T1 SYNC EXT ON ) ; TMR1L=0x0 ; TMR1H=0x0 ; T3CON=0b11000001 ; TMR3L=0xFB ; TMR3H=0xFF ; RCONbits . IPEN = INTCONbits . GIEH INTCONbits . PEIE P I E 2 b i t s . TMR3IE I PR 2 b i t s . TMR3IP P IR 2 b i t s . TMR3IF } 1; = 1; = 1; = 1; = 1; = 0;

e l s e i f ( out < 0 ) { out =0; } SetDCPWM1( out ) ; e r a n t=e r r o r v e l ; } #pragma code I n t e r r u p t V e c t o r H i g h = 0 x08 void InterruptVectorHigh ( void ) { asm g o t o ISRHigh endasm } #pragma code #pragma code I n t e r r u p t V e c t o r L o w = 0 x18 void InterruptVectorLow ( void ) { asm g o t o ISRLow endasm } #pragma code #pragma i n t e r r u p t ISRHigh v o i d ISRHigh ( v o i d ) { i f ( P I R 2 b i t s . TMR3IF) { P I R 2 b i t s . TMR3IF = 0 ; TMR3L=0xFB ; TMR3H=0xFF ; i n c ++; aux++; }

v o i d CalcPID ( v o i d ) { e r r o r v e l=s e t v e l m v e l o c i t y ; sume+=e r r o r v e l ; P = Kp* e r r o r v e l ; I = b * ( sume ) ; D=d e r * ( e r r o r v e l e r a n t ) ; out =( i n t )P+I+D; i f ( out > 1023) { out =1023; }

i f ( i n c ==10) { i n c =0; TemAdq ( ) ; mVelocity ( ) ; CalcPID ( ) ; TMR0L=0; TMR0H=0; TMR1L=0; TMR1H=0; m v e l o c i t y =0; }

Control II, Marzo 2013

} #pragma i n t e r r u p t ISRLow v o i d ISRLow ( v o i d ) { }

v o i d mVelocity ( v o i d ) { UpCount=ReadTimer0 ( ) ; DownCount=ReadTimer1 ( ) ; m v e l o c i t y=UpCountDownCount ; i f ( m v e l o c i t y < 0) { m v e l o c i t y=m v e l o c i t y * 1; } s p r i n t f ( buf , %d , m v e l o c i t y ) ; USART( buf ) ; TXREG=0xd ; } El programa anterior realiza el calculo de las revoluciones por minuto, guarda los valores en un arreglo de 50 n umeros y cuando el arreglo se llena los envia por comunicaci on serial, los valores obtenidos son gracados y mediante el m etodo de Ziegler-Nichols realizamos el calculo de las ganancias del controlador. La gr aca obtenida mediante este programa es la siguiente.

Figura 5: Graca para sintonizaci on del controlador.

K=290. (normalizado 6960/24V) TD=0.001. T1=0.023. De acuerdo a las formulas para el calculo de las ganancias del controlador PID de la tabla mostrada en la gura 3; los valores para Kp,Ti y Td, son los siguientes. Kp = ((1,2 0,023)/(290 0,001)) Kp = 95,17e9 T i = 2 0,001 T i = 2e3 T i = KI T d = 0,5 0,001 T d = 0,5e3 T d = KD As nuestra formula para el controlador PID sera: C (n) = 95,17e9 E (n)+2e3 TS 0,5e3 [(E (n)E (n1))] TS 0 (8) El valor de TS es la constante de tiempo de muestreo del sistema, y E (n), E (n 1) los errores del mismo. De esta forma es posible ya la implementaci on del controlador PID. E (n)+
N

Figura 4: Respuesta a la entrada de escalon del sistema. La graca anterior muestra la respuesta que experimenta la planta ante una entrada tipo escal on. La sintonizaci on del controlador por el m etodo de Ziegler-Nichols se muestra a continuaci on. Los valores obtenidos en esta gr aca son:

4.

Circuito electr onico

Se implemento el circuito electr onico con un microcontrolador como unidad de procesamiento del algoritmo de control PID, se ha mensionado anteriormente que las salida del controlador pid se ve reejado directamente en la salida pwm que permite el control de velocidad del motor.

Control II, Marzo 2013

Figura 6: Prototipo implementado. Figura 8: Graca velocidad vs tiempo.

5.

Resultados
gundos aproximadamente se estabilizo la se nal de velocidad debido a que llego al valor de referencia el cual era la temperatura ambiente, de aqu en delante se puede observar como la velocidad se dispara en aumento debido a que se comenz o a colocar la ama sobre el sensor y as hasta llegar a los 9000 microsegundos aproximadamente que es donde se le retira la ama lo que genera que la temperatura decrezca y por ende la velocidad, se puede observar un comportamiento logar tmico al reducir la velocidad.

En la experimentaci on del sistema terminado, se ha expuesto el sensor de temperatura ha elevaciones de temperatura mediante una ama directa al sensor lo que genera que el controlador mande la referencia a valores mas altos los cuales son reejados en la velocidad. Dentro de la experimentaci on se tomaron muestreos de los datos, la velocidad respecto a la temperatura tiene un comportamiento lineal, esto se puede observar en la siguiente gura donde la velocidad esta medida por medio del encoder y sus unidades est an en pulsos sobre diez microsegundos, el valor de referencia es el doble de la temperatura para la velocidad y es precisamente en la velocidad donde se aplica el controlador PID.

6.

Conclusiones

Se ha comprobado en base a pruebas experimentales que es posible cumplir adecuadamente con el control de velocidad de un motor de corriente directa mediante la implementaci on de un controlador PID. Una de las cuestiones m as importantes es que la implementaci on del controlador PID no requiere de un dispositivo de procesamiento con amplias capacidades, asi fue posible obtener buenos resultados al hacer la implementaci on en un microcontrolador PIC18F452. Las gr acas mostradas en el apartado anterior demuestran que la relaci on entre el motor y el sensor de temperatura es lineal como era de esperarse de acuerdo al dise no que se implemento en la programaci on. En principio uno de los problemas en el desarrollo del proyecto fue lograr un comportamiento adecuado del motor, ya que la referencia de velocidad es siempre variante en el tiempo, esto debido a que depende de la temperatura del medio ambiente; para poder lograr el desempe no eciente habia que calcular las ganancias optimas para el sistema, lo que fue posible con la herramienta de lazo abierto de Ziegler-Nichols.

Figura 7: Graca velocidad vs temperatura. Otra gr aca obtenida durante la experimentaci on es la correspondiente a la velocidad contra tiempo, se puede observar que la velocidad esta ahora en revoluciones por minuto. se puede observar que durante los 100 a los 3000 microse-

Control II, Marzo 2013

Finalmente se logro realizar el controlador obteniendo buenos resultados, ya que al someter el motor a perturbaciones el sistema de control realizaba las acciones necesarias para mantener la planta en el valor de referencia requerido.

Referencias
[1] La producci on de fr o. Editorial de la UPV camino de Vera, 1996. Enrique Torrella Alcaraz. [2] Regulaci on de temperatura y ventilaci on alternada en un cuarto para estudios conductuales en ratas, con base a un microcontrolador RISC.Rev Biomed 1997; 8:211223.Francisco J. Heredia-Lpez, Jos L. Bata-Garca, Fernando J. Alvarez-Cervera. [3] Climatizaci on en los Centros de Proceso de Datos.Enfoques-impar, 8/5/2006 pag. P. Nuno, J. L. Rivas, J. E. Ares [4] Advanced PIC Microcontroller Projects in C, 2008. Dogan Ibrahim

You might also like