You are on page 1of 11

MEMORIAS SOMI XV

CON--9

CONTROLADOR DIFUSO PARA UN HORNO ELECTRICO RESISTIVO


Nicols Kemper Valverde, Henry Kemper Castro Laboratorio de Sistemas Inteligentes, Centro de Instrumentos Universidad Nacional Autnoma de Mxico Apartado Postal 70-470, Coyoacn C.P. 04511, Mxico D.F. MEXICO Email: kemper@servidor.unam.mx hkc.iimas@excite.com RESUMEN En este artculo se describen las caractersticas del controlador difuso, diseado e implementado con el objetivo de mantener un valor de temperatura ms o menos constante dentro del ambiente de un horno elctrico resistivo. Ello se logra controlando la cantidad de electricidad aplicada al banco de resistencias del que se compone el horno elctrico. El controlador difuso se implement sobre una arquitectura de hardware basada en el microcontrolador M68HC11E9 en su modo expandido. ABSTRACT In this paper the characteristics of the fuzzy controller are described, designed and implemented with the objective to maintain a value of temperature more or less constant within the atmosphere of the resistiv electrical furnace. It is obtained controlling the amount of electricity to applied to the bank of resistance of which the electrical furnace is made u p. Fuzzy controller is implemented on an architecture of hardware based on microcontroller M68HC11E9 in his expanded way. 1. INTRODUCCION Un sistema difuso es un programa de computadora que se fundamenta en el uso de la Lgica Difusa, mediante la cual se pueden construir modelos de razonamiento humano que reflejen el carcter vago, ambiguo, impreciso y cualitativo que ste tiene. De forma que sin modelos matemticos detallados, se puedan implementar soluciones a problemas relativamente complejos, o muy mal definidos, como para admitir un tratamiento por mtodos tradicionales, problemtica comn cuando se requiere automatizar o controlar procesos relativamente complejos. En este artculo se presentan las caractersticas ms relevantes del sistema de control difuso implementado sobre la arquitectura de un microcontrolador comercial de 8 bits (HC11), considerando como dominio de aplicacin el control de la temperatura de un horno elctrico monofsico. El proceso es un pequeo horno resistivo al cual se energiza con 110 Vac 50 Hz de la lnea domstica.

CONGRESO NACIONAL DE INSTRUMENTACION

MEMORIAS SOMI XV

CON--9

Este horno tiene un termostato con el cual se establece diferentes valores de temperatura a alcanzar, a diferencia de muchos hornos comerciales basados en termostatos que actan como un relay ON/OFF, es decir se est activando o desactivando el paso total de energa de la lnea. En nuestro caso se pens en utilizar un controlador difuso para poder establecer cualquier temperatura dentro del rango de 0 a 100C, e implementarlo sobre un microcontrolador para darle velocidad de respuesta y obtener un gran ahorro de energa al controlar la cantidad de energa necesaria para obtener la temperatura deseada. 2. ARQUITECTURA DEL CONTROLADOR DIFUSO A fin de evaluar la problemtica de la implementacin de este tipo de controlador en un horno comercial, se desarrollo un prototipo que consta de un pequeo horno sobre el cual se hicieron las adaptaciones respectivas para poder medir la variable de temperatura, esta seal es leda y procesada por el controlador difuso que reside en una tarjeta electrnica de evaluacin basada en el microcontrolador M68HC11E9, la seal de salida del controlador difuso indicar la cantidad de energa elctrica necesaria para mantener el valor de temperatura deseada dentro del horno. La tarjeta electrnica en conjuncin con su programacin tiene la opcin de comunicarse con una PC va RS232, para poder visualizar el comportamiento de las variables, como tambin para cambiar algunos parmetros del proceso que necesitemos hacerlo en lnea. La Fig. 1 muestra la arquitectura descrita.
Horno Elctrico

ALGORITMO DE INFERENCIA DIFUSA

Interface de Medicin

Cmara Metlica

Interface de Potencia Tarjeta M68HC11EVB Energa Elctrica 115 Vac

Resistencia

RS232

Fig. 1: Arquitectura del controlador difuso

CONGRESO NACIONAL DE INSTRUMENTACION

MEMORIAS SOMI XV

CON--9

3. ALGORITMO DE INFERENCIA DIFUSA El diagrama de bloques del algoritmo de inferencia del controlador difuso implementado se muestra en la Fig. 2. La ejecucin del algoritmo es realizada de forma secuencial, porque el tiempo requerido para la ejecucin total del algoritmo es mucho menor que el tiempo requerido para la ejecucin de la seal de actuacin en el horno, lo cual garantiza que no se presenten desfases entre la seal de entrada y la seal de salida. El fuzzificador toma el valor actual del sensor de entrada, los compara con las funciones de membresa de los conjuntos difusos de las variables de entrada y almacena el valor de la entrada fuzzificada en una estructura de datos RAM. La mquina de inferencia difusa procesa una lista de reglas de la base de reglas difusas usando la informacin fuzzificada de las variables de entrada y produce una salida difusa tambin en memoria RAM (razonamiento difuso). El Defuzzificador usa las salidas difusas obtenidas en la evaluacin de reglas y las funciones de membresa de los conjuntos difusos de la variable de salida para generar un valor nico como salida del sistema.
Base de Reglas Difusas

Fuzificador x en U Mquina de Inferencia Difusa Conjuntos Difusos en U U, universo de entradas V, universo de salidas

Defuzificador y en V

Conjuntos Difusos en V x, valor puntual del sensor y, valor puntual del actuador

Fig. 2: Diagrama de bloques del controlador difuso Se consideraron dos variables de entrada, el error (e) de la temperatura actual respecto a un valor deseado y el gradiente (ge) de temperatura. Como variable de salida se tiene a la potencia elctrica necesaria para mantener el horno en la temperatura deseada. En la Fig. 3 se muestra la integracin del controlador difuso al proceso que se desea controlar. La seal de salida es un pulso que est sincronizado con la lnea elctrica y es aplicado a un TRIAC con un retardo necesario para aumentar o disminuir la cantidad de potencia suministrada al banco de resistencias del horno, teniendo una escala o pasos de fase de 500 nanosegundos.

CONGRESO NACIONAL DE INSTRUMENTACION

MEMORIAS SOMI XV

CON--9

Temperatura deseada

+ 0

ge

Seal actuadora

CONTROLADOR DIFUSO

HORNO

Temperatura actual

Fig. 3: Integracin del controlador difuso al proceso Se utilizaron funciones de membresa trapezoidales, porque se adaptaron mejor al dominio discreto que nos proporciona el microcontrolador. Las funciones de membresia fueron afinadas mediante ejercicios de prueba y error. Se consideraron 7 etiquetas para los trminos de las variables de entrada (tanto para error y gradiente de error) y para la variable de salida (Variacin de la Potencia Total); y estas son: NG (Negativo grande), NM (Negativo mediano), NP (Negativo pequeo), CO (Cero), PP (Positivo pequeo), PM (Positivo mediano) y PG (Positivo grande); todos ellos distribuidos en el dominio discreto que va del rango de 00 hasta 255 ($00 hasta $FF), tal como se muestra en la Fig. 4.

Fig. 4: Funciones de membresa para las variables Error y Gradiente de error


La estructura de las reglas es del tipo SI ENTONCES: Si el error es PG y el gradiente es NG Entonces la variacin de la potencia total es PP

Este algoritmo de inferencia difusa, antes de su implementacin, lo simulamos empleando el Toolbox Fuzzy Logic de Matlab. Considerando los mecanismos de inferencia Mamdani y Sugeno y la Tabla 1 como base de reglas, se obtuvieron las superficies de control como se muestran en las figuras 6a y 6b.

CONGRESO NACIONAL DE INSTRUMENTACION

MEMORIAS SOMI XV

CON--9

Tabla 1: Base de Reglas, relacionadas con las variables de entrada


NG NM NP CO PP PM PG ERROR DE LA TEMPERATURA NG NM NP CO PP PM NG NG NG NG NM NP NG NG NG NM NP CO NG NG NM NP CO PP NG NM NP CO PP PM NM NP CO PP PM PG NP CO PP PM PG PG CO PP PM PG PG PG PG CO PP PM PG PG PG PG

GRADIENTE

++++

(a)

(b)

Fig. 6: Superficies de Control de Mandani (a) y Sugeno (b) Analizando los resultados de la simulacin y considerando que las salidas de la inferencia Sugeno son singletons, decidimos que la implememtacin del controlador difuso sea basado en este tipo de inferencia, ya que adems reduce el tiempo de ocupacin del controlador al simplificar el clculo que requiere el mtodo de Mandani, el cual emplea la funcin del centroide, mientras que Sugeno emplea la funcin promedio de pesos . 4. IMPLEMENTACIN DEL ALGORITMO DE INFERENCIA 4.1. Definicin de las funciones de membresa La Fig. 7, muestra la funcin membresa trapezoidal utilizada para las variables de entrada, las cuales necesitan 4 bytes de memoria para representarla en la base de reglas difusas.

CONGRESO NACIONAL DE INSTRUMENTACION

MEMORIAS SOMI XV

CON--9

Segmento 0

Segmento 1

Segmento 2

CO
($FF) 1

Pendiente 2

Pendiente 1 Punto 2 Punto B Punto 1 Punto A

($00) 0 $00 $10 $20 $30 $40 $50 $60 $70 $80 $90 $A0 $B0 $C0 $D0 $E0 $F0 $FF

Fig. 7 Funcin de Membresa Trapezoidal

Error

Considerando la Fig 7, el primer byte almacena el Punto 1, y define el punto inicial de la izquierda de la base del trapezoide. El segundo byte contiene el valor de la Pendiente 1, que define la inclinacin del lado izquierdo inclinado del trapezoide. El tercer byte almacena el Punto 2, que define el final derecho de la cima del trapezoide. El cuarto byte almacena la Pendiente 2, que define la inclinacin del lado derecho del trapezoide. El eje horizontal es dividido en tres segmentos. Como se definen 7 trminos lingsticos para cada entrada, tenemos que definir 14 funciones de membresa, lo que se muestra en el listado 1 de la Figura 8.
************************************************************************* * Definicin de Funciones de Membresa para las variables de entrada ************************************************************************* ORG CONSTANTES INPUT_MFS EQU * IN0MF EQU * ; (2) ERROR DE TEMPERATURA FCB $00, $00, $1C, $06 ; (0) NG FCB $1C, $06, $4D, $09 ; (1) NM FCB $4D, $09, $6F, $11 ; (2) NP FCB $6F, $11, $82, $11 ; (3) CO FCB $82, $11, $95, $09 ; (4) PP FCB $95, $09, $B7, $06 ; (5) PM FCB $B7, $06, $E4, $00 ; (6) PG IN1MF FCB FCB FCB FCB FCB FCB FCB EQU $00, $1C, $4D, $6F, $82, $95, $B7, * $00, $06, $09, $11, $11, $09, $06, ; (1) GRADIENTE $1C, $06 ; (0) NG $4D, $09 ; (1) NM $6F, $11 ; (2) NP $82, $11 ; (3) CO $95, $09 ; (4) PP $B7, $06 ; (5) PM $E4, $00 ; (6) PG

*************************************************************************

Figura 8: Listado 1 Definicin de Funciones de Membresa de las Entradas 4.2. Fuzzificacin de entradas Una variable de entrada actual corresponde a una posicin sobre el eje horizontal, a la cual se le asigna un trmino en base a su valor con su correspondiente grado de membresa. CONGRESO NACIONAL DE INSTRUMENTACION

MEMORIAS SOMI XV

CON--9

Una descripcin detallada de esta subrutina (Fuzificacin) se muestra en el listado 2 de la Figura 9, escrita en lenguaje ensamblador para el M68HC11.
************************************************************************* * Rutina del Programa de Inferencia Difusa * Nombre: FUZIFI, realiza la fuzzificacin de las entradas crisps * ************************************************************************* FUZIFI LDY LDX PUSH_LOOP LDAA PSHA CPX BEQ DEX BRA LDX PULA LDAB STAB GRAD_LOOP EQU ;Y direcciona donde se guardan las fuzzificaciones #ACTUAL_INS+NUMINP-1 ;X direcciona al ltimo valor de las entradas actuales 0,X ;carga el valor de la ultima variable ;y lo almacena en la Pila #ACTUAL_INS ;Ultimo valor? FIN_PUSH ;si es as salta ;se ubica en el siguiente valor de entrada PUSH_LOOP #INPUT_MFS #NTER_IN-1 LP_COUNT * ;X direcciona a las funciones de membresa ;Carga el 1er valor de las variables ;actuales de entrada ;Inicializa un contador ;para 7 bucles (trminos) #FUZ_INS

FIN_PUSH NXTIN_LP

;Obtiene el grado para un trmino de una entrada en el acumulador B

* El valor del grado se obtendr CAL_GRADO CLRB SUBA BLS LDAB BEQ MUL TSTA BEQ CLRB BRA SUBB NEGB BRA ADDA SUBA BLO LDAB BEQ MUL TSTA BEQ LDAB INX INX INX INX

NO_FIX

NO_SEG2

VERT_SLP GRAD_HALLADO

;En el caso de grado = 00 ;A=input-pt2 ;Si input>pt2 ;pendiente 2 (slp2) ;salta si slp2=0, asigna FF a grado ;A:B=(input-pt2)*slp2 ;Chequea si es > $FF NO_FIX ;salta si A>$00 ;limita grado a $00 GRAD_HALLADO ;Si estuvimos en seg2 #$FF ;B=(B-$FF) ;B=($FF-B) GRAD_HALLADO ;B=($FF-(input-pt2)*slp2) 2,X ;A=Regresamos el valor de input original 0,X ;A=input-pt1 GRAD_HALLADO ;Si input<pt1, entonces el grado = 0 1,X ;slp1 VERT_SLP ;salta si slp1=0 ;A:B=(input-pt1)*slp1 ;Chequea si es > $FF HAV_GRAD ;salta si A>$00 #$FF ;limite de regin, o slp es cero 2,X NO_SEG2 3,X VERT_SLP

STAB 0,Y INY DEC LP_COUNT BPL GRAD_LOOP ; CPY #NUMINP*7+FUZ_INS BNE NXTIN_LP RTS *************************************************************************

Figura 9: Listado 2 Rutina de Fuzzificacin de Entradas

CONGRESO NACIONAL DE INSTRUMENTACION

MEMORIAS SOMI XV 4.3. Evaluacin de reglas

CON--9

La evaluacin de reglas se lleva acabo usando la informacin de los valores encontrados en la fuzzificacin para luego producir salidas difusas, las cuales se almacenan en la RAM. As, para nuestro sistema que posee una salida con 7 etiquetas lingsticas, existir 7 salidas difusas. Se usa una estructura de reglas relativamente simple para que puedan soportar microcontroladores de 8 bits. El orden de estas reglas en este listado no afecta la respuesta del sistema. Se supone que todas las reglas son evaluadas simultneamente aun cuando en un sistema basado en software estas son realmente procesadas en forma secuencial. La Figura 10 contiene la rutina de evaluacin de reglas.
************************************************************************ * Rutina E_REGLAS, que evala las reglas del controlador difuso ************************************************************************* *Limpiado del espacio de RAM de salidas difusas E_REGLAS LDX #FUZ_OUTS ;Cargamos puntero de salidas difusas LDAA #7*NUMOUT ;cantidad de lugares a limpiar LIMP_OUTS CLR 0,X ;limpiamos esta ubicacin INX DECA BNE LIMP_OUTS ;Si es diferente de 0 *Evaluacin de reglas: LDY #INICIO_REGLAS SWI REGLA_TOP LDAA #$FF ANTECE_LOOP LDAB BMI INY LDX ABX CMPA BLS LDAA BNE 0,Y HALLAR_CONSEC #FUZ_INS 0,X ANTECE_LOOP 0,X ANTECE_LOOP

HALLAR_CONSEC LDAB 0,Y BMI HALLAR_ANTECE INY BRA HALLAR_CONSEC HALLAR_ANTECE INY LDAB 0,Y BPL REGLA_TOP CMPB #$FF BNE HALLAR_ANTECE BRA DEFUZ CONSEC_LOOP LDX ANDB ABX CMPA BLO STAA NO_HIER INY LDAB BPL CHK_END CMPB BNE DEFUZ RTS #FUZ_OUTS #$7F 0,X NO_HIER 0,X 0,Y REGLA_TOP #$FF CONSEC_LOOP

************************************************************************

Figura 10: Listado 3 Rutina de Evaluacin de Reglas

CONGRESO NACIONAL DE INSTRUMENTACION

MEMORIAS SOMI XV

CON--9

Las reglas son almacenadas en la base de reglas como punteros u offsets para las entradas difusas seguidas por punteros u offsets para salidas difusas. Para representar las reglas lingsticas, se usan dos formatos. El primer formato es para almacenar la informacin para los antecedentes, y el segundo formato es para almacenar la informacin para el consecuente. Para ello, se usa el bit mas significativo (MSB) como un indicador, as si el MSB = 0, significa que se trata del antecedente de una regla y si el MSB = 1, significa que se trata del consecuente. El final de la base de regla es indicado por un byte #FF. Un sistema de control completo podra tener una lista de muchas reglas similares que juntas describen la respuesta del sistema de control. Los antecedentes son conectados por el operador y, se sobreentiende que existe un operador o entre reglas sucesivas. La evaluacin de reglas Min-Max, es llevada a cabo inicialmente limpiando todas las salidas difusas, ponindose al inicio de la lista de reglas y procesando reglas sucesivamente segn el siguiente algoritmo: Encontrar el antecedente pequeo (min) de una regla y almacenar este resultado para cada consecuente de la regla a menos que la salida difusa del consecuente es realmente ms grande (max). Repetir hasta alcanzar un marcador de final de regla. Los resultados de la evaluacin de reglas es una tabla de valores de salidas difusas en la RAM. Se puede pensar de las salidas difusas como los resultados intermedios considerando todas las reglas que gobiernan el sistema. Las salidas difusas necesitan an ser procesadas para obtener un valor nico como salida del sistema. 4.4. Proceso de defuzzificacin La Defuzzificacin usa las salidas fuzzificadas del paso de la evaluacin de reglas y las funciones de membresa de la variable de salida, que estn en la base de reglas para generar un nico valor como salida del sistema, que consiste de un valor de 8 bits el que constituir la cantidad a aumentar o disminuir de la salida global y as proporcionar la cantidad de energa necesaria para mantener la temperatura al valor deseado. Si consideramos un sistema tridimensional, donde los ejes X y Y son determinadas por las variables de entrada, entonces las salidas difusas constituyen una posicin del eje Z,

F
Z=
i =1 n i =1

Si
i

Donde n es el nmero de salidas difusas asociadas con esta salida del sistema, Fi es un peso (valor de salida de la fuzzificacin), y Si es una posicin de una funcin de membresa singleton. Fi y Si son valores de 8 bits y n es tpicamente 8 o menos, pero para nuestro caso es 7. Esto hace al numerador un valor de 19 bits y al denominador un valor de 11 bits. Porque el numerador y el denominador no son valores independientes, sabemos que el resultado es un valor de 8 bits. El listado 4 de la Figura 11 muestra la rutina en lenguaje ensamblador para realizar la funcin del promedio de pesos defuzzificados.

CONGRESO NACIONAL DE INSTRUMENTACION

MEMORIAS SOMI XV

CON--9

************************************************************************* * Rutina: DEFUZIFI, que obtiene la salida del la Inferencia Difusa ************************************************************************* DEFUZIFI LDY #SGLTN_POS LDX #FUZ_OUTS CLR COGDEX COG_LOOP LDAB #$08 STAB SUMDEX LDD #$0000 STD SUM_DE_FUZ STD SUM_DE_PROD+1 STAA SUM_DE_PROD SUMA_LOOP LDAB 0,X CLRA ADDD SUM_DE_FUZ STD SUM_DE_FUZ LDAA 0,X LDAB 0,Y MUL ADDD SUM_DE_PROD+1 STD SUM_DE_PROD+1 LDAA SUM_DE_PROD ADCA #0 STAA SUM_DE_PROD INY INX DEC SUMDEX BNE SUMA_LOOP PSHX CLRA LDX SUM_DE_FUZ BEQ GRABA_OUT TST SUM_DE_PROD BNE NUM_BIG LDD SUM_DE_PROD+1 IDIV XGDX TBA BRA GRABA_OUT NUM_BIG LDD SUM_DE_PROD TST SUM_DE_PROD+2 BPL NO_REDONDEAR ADDD #1 NO_REDONDEAR FDIV XGDX GRABA_OUT LDX #COG_OUTS LDAB COGDEX ABX STAA 0,X PULX INCB STAB COGDEX CMPB #NUMOUT BNE COG_LOOP RTS *************************************************************************

Figura 11: Listado 4 para la Rutina de Defuzificacin 5. CONCLUSIONES


El dise e implementacin del controlador difuso, para el control de temperatura de un pequeo horno, sobre una tarjeta basada en un microcontrolador HC11, muestra gran capacidad de velocidad de respuesta y segn las caractersticas del proceso a controlar y con el tipo de energa usada podemos afirmar que es un control en tiempo real.

CONGRESO NACIONAL DE INSTRUMENTACION

MEMORIAS SOMI XV

CON--9

El proyecto desarrollado es compatible e integrable por medio del puerto serial RS232, lo que le hace muy verstil para su programacin o visualizacin desde una PC porttil. Resultados experimentales muestran que el controlador difuso es robusto en los rangos de operacin. La temperatura tiene buena respuesta es el estado transitorio y estacionario. El controlador tambin funcion bien a pesar de la presencia de perturbaciones y cambios de carga. Su costo de desarrollo es barato lo que hace posible adpatarlo para controlar hornos comerciales con fines de ahorro de energa elctrica.

6. REFERENCIAS
[01] Auslander, D. y Tham, C. Real-Time Software for Control, 1ra. Ed., New Yersey, PTR PrenticeHall Inc., 1990. [02] Coughlin, R., Driscoll, F. Amplificadores Operaciones y Circuitos Integrados Lineales, 4ta. Ed., Mxico, Prentice-Hall Hispanoamericana S.A., 1993. [03] Cox, E. The Fuzzy Systems Handbook. 2da. Ed., USA, Academic Press, Inc., 1994. [04] Creus, A. Instrumentacin Industrial, 5ta. Ed., Mxico, Alfaomega Grupo Editor S.A. de C.V., 1995. [05] Driankov, D., Reinfrank, D y Hellendoorn, H. An Introduction to Fuzzy Control. 2da. Ed., New York, Springer-Verlag, 1996. [06] Harbison, S. y Steele G., C A Reference Manual, 4ta. Ed., New Yersey, Prentice-Hall, Inc., 1995. [07] Hirota, K. Industrial Applications of Fuzzy Technology. 1ra. Ed., Hong Kong, Springer-Verlag, 1993. [08] Jamshidi, M. , Vadiee, N. y Ross, T. Fuzzy Logic and Control. 1ra. Ed., New Yersey, PTR PrenticeHall Inc., 1993. [09] Kandel, A., Fuzzy Expert Systems, 2da. Ed., Florida, CRC Press Inc., 1992. [10] McNeil, M., Thro, E. Fuzzy Logic a Practical Approach, 1ra. Ed., Boston, Academic Press Inc., 1994. [11] Norton, H. Sensores y Analizadores, 3ra. Ed., Barcelona, Editorial Gustavo Gili S.A., 1990. [12] Pallas Areny, R. Sensores y Acondicionadores de Seal, 2da. Ed., Espaa, MARCOMBO, S.A., 1994. [13] Phillips, Ch. y Harbor, R. Feedback Control Systems, 3ra. Ed., New Yersey, Prentice-Hall, Inc., 1996. [14] Russell, S. y Norvig, P. Artificial Intelligence, A Modern Approach, 2da. Ed., New Yersey, Prentice-Hall Inc., 1995. [15] Terano, T., Asai, K. y Sugeno, M. Applied Fuzzy Systems, 2da. Ed., Cambridge, AP Profesional, 1994. [16] Turban, E. Expert System and Applied Artificial Intelligence. 1ra. Ed., New York, Macmillan Publishing Company, 1992. [17] Von Altrock, C. Fuzzy Logic & NeuroFuzzy Applications Explained. 2da. Ed., USA, PTR PrenticeHall Inc., 1995.

CONGRESO NACIONAL DE INSTRUMENTACION

You might also like