Expo Sic Ion

April 30, 2018 | Author: Anonymous | Category: Documents
Report this link


Description

SISTEMA DE CONTROL INTEGRADO NEUROFUZZY (SCINEF) LEANDRO GIOVANNI BARAJAS MORA MARÍA DEL PILAR BARÓN DUARTE UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍA PROYECTO CURRICULAR DE INGENIERÍA ELECTRÓNICA SANTAFÉ DE BOGOTÁ D.C. 1998 SISTEMA DE CONTROL INTEGRADO NEUROFUZZY (SCINEF) LEANDRO GIOVANNI BARAJAS MORA MARÍA DEL PILAR BARÓN DUARTE Trabajo de Grado para optar al título de Ingeniero Electrónico Director M.S.M JOAQUIN LUNA UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍA PROYECTO CURRICULAR DE INGENIERÍA ELECTRÓNICA SANTAFÉ DE BOGOTÁ D.C. 1998 Nota de aceptación ____________________ ____________________ ____________________ ____________________ Jurado ____________________ Jurado Santafé de Bogotá, 13 de junio de 1998 iv A mis padres Alba Lucía y Edgar, a mis hermanos Mauricio y Nicolás, a María del Pilar. Con todo mi Amor y agradecimiento por la inspiración que me brindaron. Leandro v A mi madre con todo mi amor por su apoyo incondicional, y a Leandro por su paciencia y comprensión. Pilar vi AGRADECIMIENTOS Los autores expresan sus agradecimientos a: Nuestros padres: Alba Lucía Mora de Barajas, Edgar Barajas, Josefina Duarte de Barón y Pablo Barón por haber hecho de nosotros quienes somos; apoyándonos durante toda nuestra vida y entregándonos lo más valioso que un padre puede dar a sus hijos amor, bienestar y educación. Joaquín Luna, Director del trabajo de grado, por sus valiosos aportes conceptuales. Jesús Domínguez, M.S. Computer Science y Gerente de Zeus Technologies Inc., por su constante interés en este trabajo y aporte conceptual. Stephen Wolstenholme por el Neural Planner y su colaboración desinteresada. Teresa Duarte (Q.E.P.D) y Mery Duarte (Q.E.P.D) por su valioso apoyo económico. Flor Oles, por su ayuda en el envió de componentes. Wilson Diaz, por su colaboración en la importación de los componentes. Universidad Distrital Francisco José de Caldas, por brindarnos más alta calidad académica y científica. Occidental de Colombia Inc. por su cooperación en la investigación y el desarrollo de este proyecto facilitando el acceso a sus instalaciones, personal y recursos. Zworld Inc., Adaptive Logic, Maxim Integrated Products Inc., PC/104 Consortium National Instruments Corp., National Semiconductors Inc., Texas Instruments Inc., Xicor Inc., Motorola Semiconductors Inc., Allied Electronics Inc., Digi-Key Corp., NuHorizons Inc., Linear Tecnologies, Epson Inc, Diamond Systems Corp., Atmel Corp., Microchip Technology Inc., Optrex Corp., Micrel Semiconductors Inc., ISD (Information Storage Devices) Inc., Hamilton Hallmark Inc., Zeus Electronics Inc., AMD Corp., Latice Semiconductor Corp., por su cooperación, soporte técnico, envío de muestras y manuales. vii RESUMEN El siguiente trabajo presenta un sistema de control híbrido paralelo que utiliza como herramientas principales la Fuzzy logic y las Redes Neuronales, mostrando la aplicación práctica que estas tecnologías tienen en la industria. El Sistema de Control Integrado Neuro-Fuzzy (SCINEF) se aplicó al control de un generador de potencia de 1 MW para optimizar su punto de operación, disminuyendo así el consumo de combustible en un 20% y reduciendo el desgaste del generador y de su sistema de refrigeración. SCINEF comprende módulos de comunicaciones seriales RS232 y RS485 con velocidades de comunicación de hasta 115.2 Kbps, entradas y salidas digitales programables, salidas de relevos, puerto paralelo de impresora, conversores AD/DA para la interface análoga con el microcontrolador fuzzy y como entradas y salidas análogas de propósito general, módulo de grabación y reproducción análoga de voz e interface para tarjetas inteligentes. Como módulo de computo principal se utiliza un procesador Z80180 programable en lenguajes C y ensamblador en el cual se implementó, además del control digital convencional, la red neuronal. El módulo de procesamiento fuzzy logic utiliza el Circuito Integrado Análogo Programable (PAIC) AL220 el cual puede emplear hasta 4 entradas y 4 salidas análogas, 111 variables fuzzy y 50 reglas que se pueden evaluar con una rata de hasta 500K por segundo. La red neuronal utilizada es del tipo feed forward con dos capas ocultas y se empleó como algoritmo de aprendizaje el back propagation. En el desarrollo del hardware se utilizó el estándar PC/104 para las dimensiones físicas y señales de control, brindando la posibilidad de integrar cualquier tipo y cantidad de periféricos que el sistema requiera. Las principales ventajas de este sistema de control son la alta velocidad de respuesta, probada eficiencia, versatilidad en hardware, flexibilidad en software, elevada capacidad de aprendizaje y que es un sistema de fácil adaptación a diferentes procesos industriales sin ningún tipo de modificación de hardware. ABSTRACT This work presents a parallel hybrid control system that uses as main tools Fuzzy Logic and Neural Networks, showing the practical applications that these technologies have in the industry. NeuralFuzzy Embedded Control System (SCINEF) was applied to the control of a 1MW power generator to optimize its set point, diminishing in that way its fuel consumption up to in a 20% and decreasing the generator and refrigeration system wear. SCINEF includes RS232 and RS485 serial communications modules with speeds up to 115.2 Kbps, programmable digital inputs/outputs, relay outputs, parallel printer port, AD/DA converters to the analog interface with the fuzzy microcontroller and how general purpose analog input/output, analog voice play/recording module and Smart Cards interface. As main computing module it uses a Z80180 processor, which can be programmed in C and assembler languages, in which It was implemented, besides the conventional digital control, the neural network. The fuzzy logic processing module use the Programmable Analog IC (PAIC) AL220 which can use up to 4 analog inputs and 4 analog outputs, 111 fuzzy variables, 50 rules that can be evaluated up to 500K rules/sec. The neural network used is a feed forward with 2 inner layers and back propagation was used as learning algorithm. To the hardware develop the PC/104 standard was used for physical dimensions and control signals, giving the possibility of integrate any kind and quantity of peripheral drivers that the system could require. The main advantages of this control system are its high response velocity, proved efficiency, hardware versatility, software flexibility, high learning capabilities and the fact that it is a system easy to adapt to different industrial processes without any kind of hardware modifications. Keywords: Fuzzy Logic, Fuzzy Hardware, AL220, Neural Networks, feed forward, back propagation, Hybrid Control System, parallel processing, PC/104, Smart Card, Analog Voice Recording, Power Generation Control. xv TABLA DE CONTENIDO INTRODUCCIÓN ........................................................................................................... 1 1. MARCO TEÓRICO ................................................................................................... 3 1.1 FUZZY LOGIC ........................................................................................................ 3 1.1.1 Generalidades....................................................................................................... 3 1.1.2 Aplicaciones .......................................................................................................... 4 1.1.3 Antecedentes ........................................................................................................ 4 1.1.4 Historia .................................................................................................................. 5 1.1.5 Sistemas de Control Fuzzy................................................................................... 6 1.1.6 Características ..................................................................................................... 6 1.1.6.1 Diferencias entre los sistemas lógicos tradicionales y la fuzzy logic................ 8 1.1.6.2 Modos principales de razonamiento fuzzy ........................................................ 8 1.1.6.3 El valor de los sistemas fuzzy ........................................................................... 9 1.1.6.4 Ventajas y desventajas de la fuzzy logic y el control fuzzy ............................. 9 1.1.7 Conceptos ........................................................................................................... 10 1.1.7.1 El universo del discurso................................................................................... 10 1.1.7.2 Concepto de sintagma..................................................................................... 10 1.1.7.3 Test-score (prueba-calificación) ...................................................................... 10 1.1.7.4 El concepto de variable lingüística .................................................................. 11 1.1.7.5 Definición de variable fuzzy............................................................................. 11 1.1.7.7 Sistema fuzzy y la incertidumbre..................................................................... 12 1.1.7.8 Particiones fuzzy.............................................................................................. 12 1.1.7.9 Adecuaciones .................................................................................................. 14 1.1.7.11 Inferencia ....................................................................................................... 16 1.1.8 Fuzzy Hardware................................................................................................. 18 1.1.8.1 Motivos para utilizar técnicas fuzzy en el control de procesos ...................... 20 1.1.8.2 Reglas fuzzy .................................................................................................... 20 1.1.8.3 Condiciones ..................................................................................................... 21 1.1.8.4 Acciones........................................................................................................... 21 1.1.9 Controlador Fuzzy Logic.................................................................................... 22 1.1.9.1 Estructura del controlador fuzzy ..................................................................... 24 1.1.9.2 Procesamiento de información fuzzy .............................................................. 27 1.1.9.3 Arquitectura y tecnología de procesadores fuzzy ........................................... 28 1.1.9.4. Modalidades de implementación.................................................................... 29 1.1.9.5 Diseño del controlador con fuzzy logic........................................................... 30 1.1.9.7 Sintonización de parámetros .......................................................................... 31 1.1.9.8 Revisión de las reglas de control.................................................................... 31 1.1.10 Sistemas fuzzy como máquina de inferencia................................................... 33 1.1.11 Sistemas Fuzzy como funciones de aproximación.......................................... 33 1.1.12 El papel de un sistema fuzzy en el control....................................................... 34 1.1.14 Control fuzzy basado en el aprendizaje ........................................................... 36 viii 1.1.15 Sistemas basados en Reglas Fuzzy con Aplicación en Procesadores de Propósito General ........................................................................................................ 36 1.2 REDES NEURONALES ....................................................................................... 38 1.2.1 Panorama Histórico ............................................................................................ 39 1.2.2 Características .................................................................................................... 40 1.2.2.1 Ventajas de las redes neuronales .................................................................. 40 1.2.2.2 Desventajas de redes neuronales................................................................... 41 1.2.3 Redes neuronales e inteligencia artificial ........................................................... 41 1.2.3.1 Procesamiento Numérico ................................................................................ 42 1.2.3.2 Procesamiento Simbólico ................................................................................ 42 1.2.4 Fundamentos de las Redes Neuronales............................................................ 43 1.2.4.1 Modelo Biológico............................................................................................. 43 1.2.4.2 Estructura de la neurona ................................................................................ 44 1.2.4.3 Naturaleza bioeléctrica de la neurona............................................................ 44 1.2.5 La Neurona Artificial............................................................................................ 45 1.2.5.1 Elementos de una neurona artificial ................................................................ 46 1.2.5.2 Estructura de una red neuronal artificial......................................................... 46 1.2.5.3 Estado de Activación ....................................................................................... 47 1.2.5.4 Función de Salida o de Transferencia............................................................. 47 1.2.5.5 Conexiones entre Neuronas............................................................................ 49 1.2.5.6 Función o Regla de Activación ........................................................................ 49 1.2.6 Arquitecturas ....................................................................................................... 50 1.2.6.1 Tipos de redes más importantes ..................................................................... 50 1.2.6.2 Topología de las redes neuronales ................................................................. 52 1.2.6.3 Perceptrón........................................................................................................ 54 1.2.6.4 Implemetación de las redes neuronales ........................................................ 56 1.2.7 Aprendizaje Redes Neuronales Artificiales ........................................................ 57 1.2.7.1 Reglas de aprendizaje ..................................................................................... 57 1.2.7.2 Mecanismo de Aprendizaje ............................................................................. 58 1.2.7.3 Redes Neuronales con aprendizaje supervisado ........................................... 58 1.2.7.4 Redes con aprendizaje no supervisado .......................................................... 59 1.2.8 Aplicabilidad de las Redes Neuronales Artificial RNA ....................................... 60 1.2.8.1 Redes Neuronales Artificiales en Problemas de Predicción .......................... 60 1.2.8.2 Modelo de red .................................................................................................. 60 1.2.8.3 Método iterativo para el ajuste de la red ......................................................... 62 1.2.8.4 Algoritmo .......................................................................................................... 64 1.3 RED HÍBRIDA NEURO-FUZZY (RHND) .............................................................. 66 1.3.1 Justificación de la fuzzy logic y las redes neuronales........................................ 67 1.3.2 Comparación entre las características de las redes neuronales y la fuzzy logic ...................................................................................................................................... 68 1.3.3 Ventajas y desventajas del uso de RHND para controles fuzzy ...................... 69 1.3.4 Pasos de desarrollo de sistemas NeuroFuzzy................................................... 69 1.3.5 Entrenamiento de sistemas Fuzzy Logic con NeuroFuzzy............................... 70 ix 1.3.5.1 Generación neuronal de reglas de control fuzzy ........................................... 71 1.3.5.2 Ajuste neuronal de funciones de pertenencia fuzzy ...................................... 72 1.3.5.3 Diseño de controladores Neurofuzzy análogos .............................................. 72 1.3.5.4 Estrategias de Programación .......................................................................... 73 2. SCINEF ................................................................................................................... 74 2.1 MÓDULOS............................................................................................................. 74 2.1.1 Mainboard ........................................................................................................... 76 2.1.1.1 Core Module .................................................................................................... 76 2.1.1.2 PIC Slave Processor........................................................................................ 77 2.1.1.3 Basic I/O.......................................................................................................... 79 2.1.1.4 Periféricos ........................................................................................................ 80 2.1.2 Microcontrolador fuzzy logic .............................................................................. 81 2.1.3 Módulos AD y DA............................................................................................... 83 2.1.4 Comunicaciones ................................................................................................ 83 2.1.5 Digital I/O............................................................................................................ 84 2.1.6 Driver de alta corriente........................................................................................ 85 2.1.7 Interface Smart Card........................................................................................... 85 2.1.8 Interface Módulo de voz ..................................................................................... 86 2.2 FUZZY LOGIC ..................................................................................................... 86 2.2.1 Microcontrolador Fuzzy AL220.......................................................................... 86 2.2.1.1 Características ................................................................................................. 87 2.2.2 INSiGTH IIe........................................................................................................ 87 2.2.2.1 Características ................................................................................................ 87 2.2.3 Proceso de diseño ............................................................................................. 91 2.3 RED NEURONAL ................................................................................................. 92 2.4 COMPONENTES ELECTRÓNICOS .................................................................... 94 2.4.1 SP720 ................................................................................................................. 94 2.4.2 MAX8215 ............................................................................................................ 95 2.4.3 NE590 ................................................................................................................. 96 2.4.4 MC14052/ MC14053........................................................................................... 98 2.4.5 MC14052............................................................................................................. 99 2.4.6 MC14053........................................................................................................... 100 2.4.7 MC14551........................................................................................................... 101 2.4.8 MC74ABT245 ................................................................................................... 102 2.4.9 MC74ABT373 ................................................................................................... 103 2.4.10 MC74HC374 ................................................................................................... 104 2.4.11 MC74ABT640 ................................................................................................. 105 2.4.12 SPG8640BN ................................................................................................... 106 2.4.13 MX7228........................................................................................................... 107 2.4.14 MAX487E........................................................................................................ 108 2.4.15 MAX202E........................................................................................................ 109 2.4.16 MAX161 .......................................................................................................... 110 2.4.17 MX584............................................................................................................. 111 x 2.4.18 1.5KE6.8 THRU 1.5KE440CA........................................................................ 112 2.4.19 PALCE22V10.................................................................................................. 113 2.4.20 MC74HC138 ................................................................................................... 113 2.4.21 82C55A ........................................................................................................... 115 2.4.22 HD66100F....................................................................................................... 116 2.4.23 485SDA12....................................................................................................... 116 2.4.24 RTC-72423 ..................................................................................................... 117 2.4.25 MAX691A........................................................................................................ 118 2.4.26 ISD2500 Series............................................................................................... 119 3. APLICACIÓN DEL CONTROLADOR FUZZY LOGIC......................................... 121 4. FUZZY HARDWARE ............................................................................................. 124 4.1 SISTEMAS DE DESARROLLO PARA FUZZY LOGIC ...................................... 124 4.1.2 Togai InfraLogic - FCA Technology.................................................................. 124 4.1.2.1 VY86C500 FCA Core Library ........................................................................ 125 4.1.2.2 VY86C570...................................................................................................... 125 4.1.2.3 Precio ............................................................................................................. 126 4.1.3 GMD .................................................................................................................. 126 4.1.3.1 Fuzzy Set 001 ................................................................................................ 126 4.1.3.2 Fuzzy Set 002 ................................................................................................ 127 4.1.4 SGS-THOMSON MICROELECTRONICS ....................................................... 127 4.1.4.1 W.A.R.P. 1.1 (WEIGHT Associative Rule Processor) .................................. 128 4.1.4.2 W.A.R.P. 2.0 (WEIGHT Associative Rule Processor) .................................. 128 4.1.4.3 Precio ............................................................................................................. 129 5. CONCLUSIONES ................................................................................................. 130 BIBLIOGRAFIA .......................................................................................................... 133 ANEXOS .................................................................................................................... 135 xi TABLA DE FIGURAS Figura 1. Niveles Crisp Sets y Fuzzy Sets ................................................................... 7 Figura 2. Comparación gráfica entre Fuzzy Sets y Crisp Sets ..................................... 7 Figura 3. Disyunción entre conjuntos fuzzy................................................................. 13 Figura 4. Subconjuntos obtenidos por un α - corte de la partición fuzzy.................... 13 Figura 5. Partición fuzzy normalizada ......................................................................... 14 Figura 6. Construcción de la adecuación a partir de sus adecuaciones marginales . 15 Figura 7. Tipos de funciones de membresía............................................................... 24 Figura 8. Estructura interna de un controlador fuzzy .................................................. 25 Figura 9. a) Procesado de una rgla. b) Conclusión de un conjunto de reglas y defuzzificación ...................................................................................................... 28 Figura 10. División del proceso en unidades funcionales........................................... 29 Figura 11. Esquema básico de arquitectura................................................................ 30 Figura 12. Procesamiento de diseño del controlador fuzzy........................................ 31 Figura 13. Funcionamiento de un sistema de control fuzzy ....................................... 32 Figura 14. Sistema Fuzzy como máquina de Inferencia............................................. 33 Figura 15. Proceso de fuzzificación y defuzzificación................................................. 34 Figura 16. Sistema fuzzy de control directo ................................................................ 34 Figura 17. Control fuzzy basado en modelamiento .................................................... 35 Figura 18. Control fuzzy basado en el conocimiento .................................................. 36 Figura 19. Esquema de la neurona de McCulloch-Pitts.............................................. 39 Figura 20. Situación de las redes neuronales en el campo de la inteligencia artificial .............................................................................................................................. 42 Figura 21. Forma general de una neurona.................................................................. 44 Figura 22. Entradas y salidas de una neurona Uj ....................................................... 45 Figura 23. Función de Transferencia Escalón ............................................................ 48 Figura 24. Funciones de activación mixta ................................................................... 48 Figura 25. Funciones de Activación Continuas (Sigmoides) ...................................... 48 Figura 26. Función de Transferencia Gaussiana ........................................................ 49 Figura 27. Esquema de una neurona y el modelo simbólico del perceptrón ............. 55 Figura 28. Arquitectura del perceptrón, red feedforward, con una sola capa ............ 55 Figura 29. El perceptrón multicapa, red feedforward completamente conexa con una capa oculta ........................................................................................................... 56 Figura 30. Red Neuronal Multicapa............................................................................. 61 Figura 31. Estructura general de un sistema Neuro-Fuzzy. ....................................... 67 xii Figura 32. Red con neuronas fuzzy............................................................................. 68 Figura 33. Tecnología Neurofuzzy .............................................................................. 71 Figura 34. Diagrama de bloques SCINEF (hardware) ............................................... 75 Figura 35. Diagrama de Bloques Mainboard .............................................................. 76 Figura 36. Diagrama de bloques CORE MODULE CM7110..................................... 77 Figura 37. Diagrama de bloques PIC16C74A............................................................. 79 Figura 38. Diagrama de bloques periféricos ............................................................... 81 Figura 39. Diagrama de bloques Controlador Fuzzy Logic ........................................ 82 Figura 40. Diagrama de bloques Módulo de Comunicaciones................................... 84 Figura 41. Diagrama de bloques Módulo I/O Digitales ............................................... 85 Figura 42. Diagrama de bloques Driver Alta Corriente ............................................... 85 Figura 43. Diagrama de bloques Smart Card Interface .............................................. 85 Figura 44. Diagrama de bloques módulo de voz ....................................................... 86 Figura 45. Diagrama de bloques de AL220 ................................................................ 87 Figura 46. Diagrama esquemático de entradas y salidas AL220 ............................... 87 Figura 47. Función de membresía con centro y ancho fijo......................................... 88 Figura 48. Función de membresía con ancho fijo y centro variable ........................... 88 Figura 49. Función de membresía con centro fijo y ancho variable ........................... 88 Figura 50. Función de membresía con centro y ancho variable................................. 89 Figura 51. Tipo de función simétrica ........................................................................... 89 Figura 52. Tipo de función izquierda ........................................................................... 89 Figura 53. Tipo de función derecha............................................................................. 90 Figura 54. Métodos de salida ...................................................................................... 90 Figura 55. On-line Back Propagation .......................................................................... 92 Figura 56. Red Neuronal.............................................................................................. 93 Figura 57. Diagrama funcional SP720 ........................................................................ 95 Figura 58. Diagrama de bloques MAX8215 ................................................................ 96 Figura 59. Diagrama de bloques NE590 ..................................................................... 97 Figura 60. Esquemático MC14052 y MC14053 ......................................................... 98 Figura 61. Esquemático interruptor MC14052 ............................................................ 99 Figura 62. Diagrama de bloques MC14052 ................................................................ 99 Figura 63. Esquemático interruptor MC14053 .......................................................... 100 Figura 64. Diagrama de bloques MC14053 .............................................................. 100 Figura 65. Diagrama de bloques MC14551 .............................................................. 101 Figura 66. Diagrama de bloques MC74ABT245 ....................................................... 102 Figura 67. Diagrama lógico expandido MC74ABT373 ............................................. 103 Figura 68. Diagrama lógico expandido MC74HC374 ............................................... 104 Figura 69. Diagrama de bloques MC74ABT640 ....................................................... 106 Figura 70. Diagrama de bloques SPG8640/50 ......................................................... 107 Figura 71. Diagrama de bloques MX7228 ................................................................ 108 Figura 72. Configuración de pines y circuito típico de operación MAX487E............ 109 Figura 73. Circuito típico de operación...................................................................... 110 Figura 74. Diagrama funcional MAX161 ................................................................... 111 xiii Figura 75. Diagrama fucional MX584........................................................................ 112 Figura 76. Diagrama de bloques PALCE22V10 ....................................................... 113 Figura 77. Diagrama lógico expandido MC74HC138 ............................................... 114 Figura 78. Diagrama de bloques 82C55 ................................................................... 115 Figura 79. Diagrama de bloques HD66100F ............................................................ 116 Figura 80. Módulo B&B 485SDA12........................................................................... 117 Figura 81. Diagrama de bloques RTC-72423 ........................................................... 118 Figura 82. Diagrama de bloques MAX691A.............................................................. 119 Figura 83. Diagrama de bloques ISD2500................................................................ 120 Figura 84. Generador................................................................................................ 121 Figura 85. Respuesta del controlador fuzzy AL220 ................................................. 123 Figura 86. Aplicaciones FCA ..................................................................................... 124 Figura 87. Diagrama de bloques VY86C500 ............................................................ 125 Figura 88. Circuito Integrado FCA............................................................................. 126 Figura 89. Diagrama de bloques Fuzzy Set 002....................................................... 127 Figura 90. Diagrama de bloques W.A.R.P. 1.1 ......................................................... 128 Figura 91. Diagrama de bloques W.A.R.P. 2.0 ......................................................... 129 xiv INTRODUCCIÓN La fuzzy logic deriva su nombre de las primera publicaciones en las cuales fue formalmente presentada. Este hecho ocurrió en los Estados Unidos alrededor del año de 1965. Realmente un nombre más acorde con su concepto sería Lógica Continua ya que el término fuzzy tiene una connotación bastante negativa tanto en inglés como en su errónea traducción como “borroso” en español. Su creador y principal defensor, L. A. Zadeh1 junto con H. Zimmermann2 sentaron las bases de una tecnología que llegaría a su madurez en Europa con E. Mamdani3 con su control para un generador de vapor, y que finalmente sería comercializada masivamente en el Japón con aplicaciones como el tratamiento de agua y sistemas de metro. En 1994, por ejemplo, Japón exporto productos por un total de 35.000 millones de dólares en los cuales se utilizaba fuzzy logic o redes neuronales4. Unos de los aspectos más atractivos de la fuzzy logic es que se evita la necesidad de rigurosos modelos matemáticos y se reemplazan por descripciones lingüísticas autoexplicatorias de la estrategia de control. Por otra parte, la fuzzy logic no es más que una extensión de la lógica convencional; la clave de su éxito es la inteligente combinación de esta con las técnicas de control tradicional. Por otra parte, la industria actual necesita controlar los procesos en forma eficiente y que no dependan de operarios humanos expertos sino que las decisiones se tomen basándose en el comportamiento del sistema. Las Redes Neuronales y la Fuzzy Logic solucionan esta dependencia porque a partir de los datos recogidos y las acciones que realiza el operario, el sistema es entrenado para que ejecute el control aprendiendo de cada acción hasta alcanzar el punto de mayor eficiencia. Con este trabajo se implementó una aplicación de tipo industrial (control óptimo de un generador de potencia) con tecnologías de punta para el control de procesos como son las redes neuronales y la fuzzy logic complementando métodos de control digital tradicionales ya que hasta el momento en nuestro país, la mayoría de los 1 ZADEH, L. A., Fuzzy Sets, Information and Control, Vol. 8, (1965), p. 338-353. ZIMMERMANN, H. and Thole, U., On the Suitability of Minimum and Product Operators for the Interception of Fuzzy Sets, Fuzzy Sets and Systems, 2, p. 173-186. MAMDANI, E. H., Application of Fuzzy logic to Approximate Reasoning Using Linguistic Synthesis, IEEE Transactions on Computers, Vol. C-26, No. 12 . 1997. p. 1182-1191. VON ALTROCK, Constantin. Fuzzy Logic & Neurofuzzy Applications Explained. Englewood Cliffs: Prentice Hall, 1995. p. IX. 4 3 2 2 desarrollos en este campo han llegado sólo hasta el nivel académico siendo raramente aplicadas a problemas concretos. En este proyecto el se complementa la utilización de un procesador fuzzy de alta velocidad más una red neuronal para el ajuste de los parámetros del mismo con un controlador digital convencional obteniendo así un sistema de control perfectamente compatible y expandible con un amplia gama de aplicaciones. Por otro lado, no se buscó sólo cumplir los requerimientos de este proyecto al diseñar el controlador sino que se creó para ser flexible, versátil y completamente escalizable siendo posible reemplazar casi cualquier controlador industrial convencional como son los PLCs, maquinas de estados, controladores numéricos, microporcesadores digitales, etc. El control fuzzy se realiza con un microcontrolador AL220 en paralelo con un procesador Z80180 que realiza el control digital y calcula el algoritmo de control de la red neuronal. El microcontrolador fuzzy dedicado puede funcionar, variable a variable, tanto para las entradas como para las salidas en modo preprocesador, postprocesador, coprocesador y/o stand-alone. La red neuronal se encarga del control adaptivo variando los parámetros que determinan la operación del controlador fuzzy. El algoritmo neuronal también genera sus propias variables de control constituyéndose en un controlador adicional de procesamiento paralelo en conjunto con el procesador fuzzy y el controlador digital convencional. El procesador Z180 utilizado como procesador host es programable en lenguajes C o ensamblador según se prefiera, soportando también la mezcla de los dos. Adicionalmente se utiliza Multi-threaded Real Time Kernel Programming por medio de la cual se realiza la administración de los distintos tipos de tareas que se le asignan al procesador; soporta además procesamiento multitarea cooperativo y preemptive los cuales pueden ser utilizados simultáneamente o por separado según lo requiera la aplicación. El código utilizado en el Z180 puede ser cargado y depurado remotamente ya sea en lenguaje C o ensamblador y gracias al su memoria RAM respaldada por batería es posible cargar el programa en la controladora, desconectar el sistema y sin necesidad de programar la memoria EPROM, llevar la aplicación a una localidad remota y realizar las pruebas necesarias. Este sistema permite la reprogramación completa y en tiempo real de todos los parámetros de la red neuronal por diferentes medios como son las tarjetas inteligentes, auto – aprendizaje, programación remota vía RS232/485/Modem o por entrada directa del operario. En el caso del microcontrolador fuzzy AL220, el cual posee una memoria EEPROM, se cuenta con un sistema simulador, emulador y programador que puede depurar el programa in situ y en tiempo real desde una interface paralela a un computador portátil haciendo que el desarrollo de aplicaciones fuzzy logic sea bastante versátil y que estas se realicen con gran facilidad, confiabilidad y eficiencia. 1. MARCO TEÓRICO 1.1 FUZZY LOGIC La fuzzy logic es una técnica novedosa que mejora los sistemas de diseño convencionales con especialización en ingeniería. Puede ser considerada como una extensión de la lógica clásica, proporciona un marco conceptual adecuado para soportar el problema de la representación del conocimiento en un entorno de incertidumbre e imprecisión. La representación del conocimiento en fuzzy logic se basa en semánticas test-score (prueba-calificación). En estas semánticas, se interpreta una proposición como un sistema de confinamiento elástico, y el razonamiento se visualiza como la propagación del confinamiento elástico. 5 Usando fuzzy logic se puede evadir el uso del modelamiento matemático y los factores complejos de su sistema pueden ser remplazados por descripciones lingüísticas autoexplicatorias de la estrategia de control, permitiendo representar importantes piezas de razonamiento común y calcular su factor de certeza. Uno de los objetivos básicos de la fuzzy logic es proporcionar un marco computacional para la representación del conocimiento e inferencia en un entorno de incertidumbre e imprecisión. En tales entornos, es efectiva cuando no se necesita que las soluciones sean precisas y/o se acepta tener una validez disposicional en lugar de categórica para la conclusión. La importancia de la fuzzy logic se deriva del hecho de que existen muchas aplicaciones en el mundo real que cumplen estas condiciones, especialmente en el campo de los sistemas basados en el conocimiento para la toma de decisiones y control. 6 1.1.1 Generalidades Si la lógica es la ciencia de los principios formales y normativos del razonamiento, la fuzzy logic se refiere a los principios formales del razonamiento aproximado, con el razonamiento preciso considerado como caso límite. El sistema fuzzy provee simplicidad notable que permite encontrar conclusiones definitivas de información indefinida, vaga o imprecisa. En un sentido, la fuzzy logic ZADEH, Lofty. En: Gutiérrez R, Julio. Representación del conocimiento en lógica borrosa. Aplicaciones de la lógica borrosa. Madrid: Consejo superior de Investigaciones científicas, 1992. 51p. 6 ________.________ 71p. 5 4 se parece a las decisiones hechas por los humanos trabajando una mayor aproximación de los datos y encontrar definiciones más precisas, por lo tanto es útil para resolver problemas con muchas aplicaciones integradas y procesamiento de información. En la lógica clásica se requiere un profundo entendimiento del sistema, ecuaciones exactas o valores numéricos precisos. La fuzzy logic incorpora una alternativa de pensamiento, aún cuando los sistemas complejos de modelamiento usan un nivel alto de abstracción originado de su conocimiento y experiencia, además permite expresar este conocimiento a través de conceptos subjetivos como muy caliente. 1.1.2 Aplicaciones Esta tecnología a estado ganado aceptación durante los últimos años. Hay más de dos mil productos comerciales disponibles que emplean fuzzy logic desde máquinas lavadoras de ropa hasta trenes de alta velocidad, prácticamente todas las aplicaciones pueden realizarse por su desempeño, simplicidad, bajo costo y productividad. Teniendo muchas aplicaciones en el área de control. Algunas fabricas de la industria automotriz usan tecnología fuzzy para mejorar la calidad y reducir el tiempo de desarrollo. En la industria aerospacial, la facilita la solución de problemas en tiempo real usando aproximaciones simples. En electrónica, reduce el tiempo de fabricación y ayuda a reducir costos. En la manufactura, esta demostrando ser de invariable mejoramiento en la eficiencia de los equipos y en el diagnostico del mal funcionamiento. Los sistemas fuzzy pueden ser usados para estimación, toma de decisiones, y sistemas de control mecánico tal como en sistemas de aire acondicionado, control automovilístico y aún casas inteligentes, como también en el control de procesos industriales y patrón en otras aplicaciones. 1.1.3 Antecedentes La lógica “Crisp” se desarrollo en el siglo cuarto a.C. El Filosofo griego Aristóteles tenia ideas de este trabajo a través sus antecesores Pitagoras y sus seguidores, quienes creyeron que era esencialmente numérico y que el universo se puede definir como relaciones numéricas. Su trabajo es acreditado tradicionalmente como el inicio de la fundamentación geométrica y la música occidental. Aristóteles extendió la creencia pitagórica de la forma que la gente piensa y toma decisiones aunado a la precisión de la matemática y la búsqueda de la verdad. En el siglo diez D.C., la lógica de Aristóteles era la base del pensamiento europeo y del Oriente Medio. Esta persistía por dos razones, simplifica el pensamiento acerca de problemas y hace “la certeza” o verdad más fácil de probar y aceptar. Los conjuntos fuzzy se crean como intento de superar la rigidez de la teoría clásica, surgen del conocimiento común a clasificar objetos de un universo conocido que responden a determinada propiedad de manera que sólo la verifican o no la verifican, 5 sino que la verifican parcialmente en muchos casos; propiedades que se predican, de los objetos en cuestión, en cierto grado. El aspecto central de los sistemas de fuzzy logic, a diferencia de la lógica clásica es que, tienen la capacidad de modelar modos de razonamiento no preciso, que juegan un papel esencial en la notable habilidad humana de tomar decisiones racionales en entornos de incertidumbre e imprecisión. La fuzzy logic permite representar el conocimiento común en un lenguaje matemático especial (el de la teoría de los subconjuntos fuzzy y las distribuciones de posibilidad a ellos asociadas) y, a través de un cálculo lógico que flexibiliza la noción operativa de verdad, vista como un predicado singular, permite efectuar inferencias aproximadas a partir de patrones de razonamiento que reproducen aceptablemente los modos usuales de razonamiento que son, mayormente, de tipo lingüístico cualitativo y no cuantitativos. 7 1.1.4 Historia El fuzzy set fue introducido originalmente en 1965 siendo publicado el primer documento sobre este tema por Lotfi Zadeh. Aún cuando la motivación original era la de ayudar a manejar la gran imprecisión en el mundo, los primeros practicantes se dedicaron principalmente a escribir teoría. Muchos de estos primeros escritos se consagraron a la fundamentación básica y aplicaciones potenciales. En la década de los sesenta, Lotfi Zadeh invento la fuzzy logic, la cual combino los conceptos de lógica crisp y los conjuntos Lukasiewicz definiendo los grados de membresía. Uno de los principales discernimientos de Zadeh fue que las matemáticas pueden ser usadas para relacionar el lenguaje y la inteligencia humana. Muchos de estos conceptos son definidos mejor por palabras que por la matemática, estos conjuntos de expresiones fuzzy proveen una disciplina que construye mejores modelos de la realidad. Daniel Schwartz, investigador Norteamericano en fuzzy logic, organizó varias palabras fuzzy bajo algunos títulos. Quantificación término que incluye todo, la mayoría, muchos, la mitad, pocos y ninguno. Usualmente incluye siempre, frecuentemente, a menudo, ocasionalmente, raramente y nunca. Posibilidad términos como ciertamente, probable, incierto, diferente y no cierto. Inicialmente se hacia una fuerte distinción entre fuzzy logic y la teoría probabilística. Como se entiende ahora, la teoría fuzzy y la probabilidad son diferentes tipos de incertidumbre. El desarrollo de esta disciplina ha sido manejada con éxito, especialmente en Japón, la fuzzy logic se usa para el desarrollo de controles TRILLAS, Enric. La lógica borrosa. Aplicaciones de la lógica borrosa. Madrid: Consejo superior de Investigaciones científicas, 1992. 1p. 7 6 simples. Con gran éxito mundial se ha usado esta tecnología para la construcción de modelos complejos de sistemas en ingeniería. La Asociación Internacional de Sistemas Fuzzy (IFSA) fue establecida en 1984 como la primera organización para los teóricos y practicantes de la fuzzy logic. IFSA realiza simposios todos los años a partir de su creación. Por esta misma época, se realizaron muchas aplicaciones en Japón particularmente en el campo de control. En 1989, la Sociedad de Teoría Fuzzy y Sistemas (SOFT) fue fundada y los Laboratorios Internacionales de Ingeniería Fuzzy (LIFE) fueron inaugurados en Japón. 1.1.5 Sistemas de Control Fuzzy La primera aplicación industrial data de 1970 en Europa, el ingeniero Británico Ebrahim Mamdani hizo el primer conjunto fuzzy, desarrollo un sistema de control automático usando fuzzy logic para controlar una máquina de vapor, ya que el mando no se podía hacer con técnicas convencionales se utilizó la experiencia del operador. A finales de los setenta, dos ingenieros Daneses, Lauritz Peter Holmblad y Jens-Jurgen Ostergaard, desarrollaron el primer sistema de control fuzzy comercial para un horno de cemento, ellos son los creadores del horno de cal de Suecia. El sistema fuzzy más espectacular funciona hoy en el metro en la ciudad japonesa de Sendai. Desde 1987, los sistemas fuzzy se utilizan para trenes que rueden rápidamente a lo largo de la ruta, con frenado y aceleración suave, deslizarse dentro de las estaciones, precisión al parar, sin perder un segundo o incomodar a los pasajeros. Los grandes productos japoneses como Matsushita y Nissan también están optando por utilizar fuzzy logic en el desarrollo de sus productos. Nissan la utiliza para la transmisión automática y frenos antibloqueo en sus carros. Sony la utiliza para ajustar el contraste, brillo, intensidad y color en sus equipos. Las industrias Mitsubishi diseñaron un sistema de control fuzzy para elevadores, mejorando la eficiencia en el manejo de la multitud que desea subir al elevador al mismo tiempo. En 1994, Japón exporto productos con un valor total de US$ 35.000 millones que utilizaban fuzzy logic o Redes Neuronales. 1.1.6 Características El mundo real esta subiendo y bajando, esta en continuo movimiento y cambio, esta lleno de sorpresas. Es decir se comporta en una forma desordenada (fuzzy), las técnicas de fuzzy logic manejan con éxito estas situaciones reales. Crisp sets maneja solo 0s y 1s, Fuzzy sets maneja todos los valores entre 0 y 1. 7 CRISP No Si FUZZY No Esporádicamente Poco Alguno Muchos Mayoría Si Figura 1. Niveles Crisp Sets y Fuzzy Sets Bajo Medio Alto Bajo Medio Alto Figura 2. Comparación gráfica entre Fuzzy Sets y Crisp Sets8 Las características de la teoría fuzzy se pueden resumir así: • Basado en palabras y no en números • Cambios no lineales • Análogo (ambiguo) y no digital (si/no) Algunas características están relacionadas son: • En la fuzzy logic, el razonamiento exacto se visualiza como un caso límite del razonamiento aproximado. • En la fuzzy logic, todo es cuestión de grado • Cualquier sistema lógico puede hacerse fuzzy • En la fuzzy logic, el conocimiento se interpreta como un conjunto de acotaciones fuzzy elásticas o similar, sobre un conjunto de variables, la inferencia se visualiza como la propagación de acotaciones elásticas HILERA, José y MARTÍNEZ, Víctor. aplicaciones. 1995. p.323. 8 Redes neuronales artificiales. Fundamento, modelos y 8 1.1.6.1 Diferencias entre los sistemas lógicos tradicionales y la fuzzy logic • Verdad: En sistemas lógicos bivalentes, la aserción de verdad puede tomar solamente dos valores: verdadero o falso. En sistemas multivaluados, la verdad de una preposición puede ser un elemento de: a) un conjunto infinito; b) un intervalo como [0,1]; o c) un álgebra de Boole. En la fuzzy logic, el valor de verdad de una proposición puede ser un subconjunto fuzzy de un conjunto parcialmente ordenado, pero generalmente se asume que es un subconjunto del intervalo [0,1]. Los llamados valores lingüísticos de verdad expresados como verdadero, muy verdadero, no muy verdadero, etc., se interpretan como etiquetas de subconjuntos fuzzy del intervalo unidad. Predicado: En sistemas bivalentes, los predicados son nítidos, ej.: par, mayor que. En la fuzzy logic los predicados son fuzzy, ej.: alto, veloz. Modificadores de predicado: En sistemas clásicos el único modificador de predicados es la negación no. En la fuzzy logic, existe una variedad de modificadores de predicados que actúan como separadores, ej.: muy, más o menos, bastante. Cuantificadores: En los sistemas lógicos clásicos sólo existen dos cuantificadores: universal y existencial. La fuzzy logic admite varios cuantificadores fuzzy, ej.: pocos, muchos, normalmente, etc.; los cuantificadores se interpretan como un número fuzzy o una proposición “fuzzy ”. Probabilidades: En los sistemas lógicos clásicos, la probabilidad se evalúa numéricamente o por un intervalo. En fuzzy, existe la opción adicional de emplear probabilidades fuzzy más generales o lingüísticas, por ejemplo: apropiado, inapropiado, alto, etc. Tales probabilidades se pueden interpretar como números fuzzy que pueden ser manipulados mediante aritmética fuzzy. Posibilidades: El concepto de posibilidad en fuzzy logic es gradual en vez de bivalente, las posibilidades pueden ser tratadas como variables lingüísticas con valores tales como posible, casi imposible, etc. Tales valores se pueden interpretar como etiquetas de subconjuntos fuzzy. 9 • • • • • 1.1.6.2 Modos principales de razonamiento fuzzy 1) Razonamiento categórico: En este modo de razonamiento las premisas no contienen cuantificadores ni probabilidades fuzzy. 2) Razonamiento Silogístico: En contraste con el razonamiento categórico es el relativo a la inferencia a partir de premisas que contienen cuantificadores fuzzy. 3) Razonamiento disposicional: En el razonamiento disposicional las premisas son disposiciones, esto es, proposiciones que son preponderantemente más que necesariamente siempre verdaderas. 4) Razonamiento cualitativo: En la fuzzy logic, el termino razonamiento cualitativo se refiere al modo de razonamiento en el que la relación entrada-salida de un sistema se expresa como un conjunto de reglas if-then fuzzy en las que el antecedente y el ZADEH, Lofty. En: Gutiérrez R, Julio. Representación del conocimiento en lógica borrosa. Aplicaciones de la lógica borrosa. Madrid: Consejo superior de Investigaciones científicas, 1992. 54p. 9 9 consecuente involucran variables lingüísticas. En este sentido, el razonamiento cualitativo en fuzzy logic guarda alguna similitud con el razonamiento cualitativo en Inteligencia Artificial (IA). Este tipo de razonamiento soportan muchas de las aplicaciones de fuzzy logic en las áreas de control y análisis de sistemas. 1.1.6.3 El valor de los sistemas fuzzy En estos cinco tipos de sistemas la fuzzificación es necesaria o benéfica: • • • • • Sistemas complejos donde es difícil o imposible el modelamiento Sistemas controlados por humanos expertos Sistemas con entradas y salidas complejas y continuas Sistemas que requieren del uso de la observación humana de las entradas o se basan en reglas Sistemas con naturaleza indefinida, como esos basados en las reglas sociales y de comportamiento. 1.1.6.4 Ventajas y desventajas de la fuzzy logic y el control fuzzy Ventajas • • • • • • • • • • Menor requerimiento de valores, reglas y decisiones Mayor cantidad de variables observadas son evaluadas Son usadas variables lingüísticas y no numéricas haciéndolo similar al pensamiento humano Relaciona entradas a salidas, sin tener que entender todas las variables, permitiendo el diseño de un sistema más exacto y estable Permite simplicidad en la solución de problemas sencillos Es posible la rápida caracterización porque el diseñador del sistema no necesita saber nada del trabajo antes de empezar Son más baratos de hacer que un sistema tradicional porque son más fáciles de diseñar Son más robustos Ellos simplifican la representación y la adquisición del conocimiento Unas pocas reglas comprenden grandes complejidades Desventajas • • Es difícil desarrollar un modelo de un sistema fuzzy Aunque ellos son fáciles de diseñar y se obtiene rápidamente un prototipo que un sistema de control convencional, los sistemas fuzzy requieren mayor simulación y afinación después de que son puestos en operación 10 • • • • Tal vez la mayor desventaja es la tendencia cultural en favor de la precisión matemática o los sistemas crips y los modelos lineales de los sistemas de control Perdida de inteligibilidad en la base de conocimiento, cuando se deja libre para que un módulo de aprendizaje la modifique Poca flexibilidad en los programas de implantación de sistemas expertos, cuando se desea cambiar un valor particular en una regla Perdida de consistencia en la base de conocimiento cuando las reglas se modifican individualmente a la luz de una labor de aprendizaje 1.1.7 Conceptos Para poder entender los contenidos teóricos de fuzzy logic es necesario conocer el significado de algunos conceptos. 1.1.7.1 El universo del discurso El universo de discurso U es un subconjunto Ek⊇U del espacio semántico generado por el espacio nuclear K. 1.1.7.2 Concepto de sintagma Un sintagma es una palabra sencilla (predicado vago) o un conjunto de dos palabras agrupadas de acuerdo con una regla gramatical. Generalmente, los sintagmas tienen la forma: nombre-adjetivo. 1.1.7.3 Test-score (prueba-calificación) El test-score es el proceso de pregunta-calificación conforme al cual pretendemos reflejar numéricamente las intuiciones que un hablante tiene acerca del significado de un sintagma cualquiera. 10 Una idea básica es que en un lenguaje natural se puede conceptuar como un conjunto de delimitaciones elásticas o, equivalente, fuzzy. La representación del significado de una proposición p mediante el uso de semántica test-score involucra las siguientes etapas. 1) Identificación de las variables X1, ..., Xn cuyos valores están delimitados en virtud de la proposición. Generalmente, estas proposiciones son implícitas en p. 2) Identificación de las delimitaciones C1,...,Cm que han sido inducidas por p. 3) Caracterización de cada delimitación Ci describiendo un procedimiento de test que asocie una calificación τy que represente el grado de cumplimiento de Ci. Normalmente τy se representa por un número en el intervalo [0,1]. Generalizando SOBRINO, A. Lógica borrosa y lingüística. Aplicaciones de la lógica borrosa. Madrid: Consejo superior de Investigaciones científicas, 1992. 95p. 10 11 más, sin embargo, una calificación se puede considerar como una distribución de probabilidad/posibilidad sobre el intervalo unidad. 4) Agregación de las calificaciones parciales τi,...,τm en un número más pequeño de calificaciones τ1,...,τk que se representa en un vector general de calificaciones τ=(τ1,..,τk). En la mayoría de los casos κ=1, de forma que la calificación global es un escalar. La semántica test-score se puede ver como una generalización de las semánticas verdadero-condicional, posible-universal y modelo-teórico. En la semántica test-score, el examen de las delimitaciones impuestas por p se realiza sobre un conjunto de relaciones fuzzy que constituye una base de datos explicativa, o BE. Una suposición básica que se suele hacer sobre la base de datos explicativa es que está comprendida por relaciones cuyo significado es conocido por el objeto direccionado en el proceso de representación del significado. De forma indirecta, entonces, los procedimientos de test y agregación en una semántica testscore se puede considerar como una descripción de un proceso mediante el cual el significado de p está compuesto por los significados de las relaciones que constituyen la base de datos explicativa. 11 1.1.7.4 El concepto de variable lingüística Concepto introducido por Zadeh. Se puede decir que una variable lingüística es, en fuzzy logic, el nombre de un predicado vago. Es un esquema lingüístico que, en sí, tiene un significado poco informativo, pero que es susceptible de ser rellenado por términos que sí lo tienen. El significado de cada una de las restricciones de una variable son subconjuntos fuzzy situados en un universo de discurso.12 1.1.7.5 Definición de variable fuzzy Una variable está determinada por una tripleta < X,U,R (X)> donde, X es el nombre de una variable U es un universo de discurso R(X) es el rango (frontera) de la variable X,U⊇R(X) Si R(X) hace que algún elemento de U tome un grado de valor, entonces X es fuzzy. En este caso se dice que, si u es un elemento de U, R(X) representa aquel tramo significativo de la variable que hace posible que u sea caracterizada, para algún grado, como elemento de U. Una variable lingüística es una clase especial de variable fuzzy.13 1.1.7.6 Toma de decisiones ZADEH, Lofty. En: Gutiérrez R, Julio. Representación del conocimiento en lógica borrosa. Aplicaciones de la lógica borrosa. Madrid: Consejo superior de Investigaciones científicas, 1992. 57p. SOBRINO, A. Lógica borrosa y lingüística. Aplicaciones de la lógica borrosa. Madrid: Consejo superior de Investigaciones científicas, 1992. 100p 13 12 11 ________.________ 95p 12 La toma de decisiones fuzzy es como una especialidad, el lenguaje orientado al sistema fuzzy hace uso del personal que maneja las decisiones en la adquisición del instrumento. 1.1.7.7 Sistema fuzzy y la incertidumbre Dos métodos extensos de incertidumbre son los más usados la probabilística y la no probabilística. Probabilística y técnicas estadísticas son generalmente ampliadas por todas partes en las ciencias sociales y naturales y se hacen extensivas en la inteligencia artificial. Algunos métodos no probabilísticos están ideados para resolver el problema, en una forma inteligente, soluciones computarizadas a problemas del mundo real. Adicionalmente a la fuzzy logic, ellos incluyen lógica por defecto, basados en sistemas de aprobación y razonamiento cualitativo. 1.1.7.7.1 Tipos de Incertidumbre • • Incertidumbre Estocástica se refiere a la incertidumbre hacia la ocurrencia de cierto evento. 1.1.7.7.1.2 Incertidumbre del léxico este tipo de incertidumbre esta relacionado con la vaguedad del lenguaje humano y la imprecisión inherente en muchas palabras humanas utilizadas para evaluar conceptos y de los cuales se derivan conclusiones que dependen de diferentes factores. Con la utilización de abstracción y pensamiento en analogías algunas sentencias pueden describir contextos complejos que serian muy difíciles de modelar con precisión matemática. 1.1.7.7.1.3 Incertidumbre del modelamiento lingüístico se manifiesta usando categorías subjetivas, es similar a la incertidumbre debida al léxico, tiene un mayor desempeño en la toma de decisiones. Aunque estas afirmaciones no tienen contenido cuantitativo las personas pueden usarlas con éxito para evaluaciones complejas, en muchos casos la incertidumbre que queda en la definición de las palabras agrega una cierta flexibilidad. • 1.1.7.8 Particiones fuzzy Una partición estricta de un universo U es una colección de subconjuntos disjuntos cuya unión lo reconstruye, una partición fuzzy es una simple colección de subconjuntos fuzzy de un universo U. O una colección de funciones de pertenencia M={µ1(x)/i=1,..N; x∈U}. 13 La partición estricta o clasificación natural, asociada a una partición fuzzy se construye a partir de la regla de la máxima pertenencia como se muestra en la siguiente figura. Figura 3. Disyunción entre conjuntos fuzzy14 C={Ci/i=1,..N;x∈Ci↔µi(x)=max[µk(x)/k=1,..N]} en el caso en que se encuentre más de un k para un x dado, se levantará la ambigüedad escogiendo el primero encontrado algorítmicamente (regla FF: first found). Se llama «M-sistema de nivel α de partes de U» a la colección de subconjuntos estrictos obtenidos por un α - corte de la partición fuzzy, como se muestra en la figura. Figura 4. Subconjuntos obtenidos por un α - corte de la partición fuzzy15 14 G={Gi/i=1,..N; x∈Gi ↔µi(x)> α} Los subconjuntos G no son disjuntos, los valores α tales que los Gi obtenidos sean disjuntos se llaman α - cortes discriminantes, y el menor de ellos es el nivel de separación de U por M. Dada una partición fuzzy M se le puede asociar una partición fuzzy normalizada N, haciendo: µ-(x)= mini[µ(x)] y µ+(x)=maxi[µi(x)] y N={v(x)=( µi(x)- µ-(x))/ (µ+(x)- µ-(x)); i=1..N; x∈U} La siguiente figura muestra una partición fuzzy normalizada y se puede constatar que N es una cobertura de U. Figura 5. Partición fuzzy normalizada16 A cada clase de partición normalizada corresponde una zona de certidumbre o núcleo en la cual vi(x)=1 y que coincide con una clase de la clasificación natural asociada.17 1.1.7.9 Adecuaciones La proposición [x pertenece a Ci] puede ser considerada como la etiqueta lingüística representando la clase Ci, y pudiera ser remplazada por un elemento de un conjunto de etiquetas como {grande, pequeño, mediano, etc.} llamado paradigma lingüístico Λ. El valor vi(x) es el nivel de adecuación de la etiqueta lingüística al elemento x del universo U. La adecuación es una función de U sobre el intervalo unitario [0,1]. AGUILAR, Josep. Clasificación borrosa. Aplicaciones de la lógica borrosa. Madrid: Consejo superior de Investigaciones científicas, 1992. 122p. 15 ________.________ 123p. 16 14 ________.________ 124p. ________.________ 17 15 La adecuación de cada una de las etiquetas lingüísticas, o proposiciones que describen cada atributo de un objeto son llamadas adecuaciones marginales, y para una objeto definido y una clase dada, se forma el vector de las adecuaciones marginales el cual caracteriza la situación del objeto con respecto a la clase. La adecuación global del objeto a la clase se puede considerar como una combinación de las adecuaciones marginales bajo la forma de una proposición compuesta por las proposiciones marginales unidas por conectivos lógicos. En la siguiente figura se esquematiza la construcción de la adecuación de un objeto a una clase a partir de sus adecuaciones marginales y con la ayuda de un conectivo de la fuzzy logic. x1 x2 xi ... ... ... descriptor d 1 descriptor d 2 descriptor d 3 descriptor d i µι ... ... ... µη µ1 µ2 . . . descriptor d n γ Adecuación global a la clase C xn Vector objeto X Vector Clase C Vector de adecuaciones marginales Figura 6. Construcción de la adecuación a partir de sus adecuaciones marginales Aquí podemos notar que si se escoge como conectivo el producto, se tiene entonces µ(X)=Πi=1,..nµi(xi) y si se aplica una transformación logarítmica se tiene zi(xi)=log[µi(xi)] y z(X)=log[µ(X)] y por lo tanto z(X)=Σi=1,..nzi(xi) con lo cual se obtiene una estructura similar a la de una neurona artificial (perceptrón), las funciones de descripción zi. Los descriptores d de la clase pueden ser asimilados a los «pesos sinápticos» del perceptrón.18 1.1. 7.10 Métodos de asignaciones numéricas En la asignación de «grados de pertenencia» efectuadas a partir de cualquier tipo de escala se pueden distinguir claramente algunos procedimientos útiles: a) Proceso individual o colectivo de asignación directa. Es el caso de evaluaciones curriculares, valoraciones de precios...,etc. que pueden basarse en procesos más o menos complicados pero que no se hacen explícitos en el momento de la asignación. 18 ________.________ 124p. 16 b) Procesos estadísticos o probabilísticos. Corresponden a los procedimientos clásicos frecuenciales de distribuciones (variable aleatoria, función de densidad, función de distribución..., etc.). c) Proceso de análisis de alternativas. Establece un modelo para tratar problemas de toma de decisiones, establecimiento de medidas, control, jerarquización y protocolos. Usa técnicas matemáticas esenciales las de álgebra lineal, valores propios de matrices, grafos, utilidades, etc. d) Procesos de medición directa. Basados en magnitudes elementales o derivadas y en general objetivables.19 1.1.7.11 Inferencia En las llamadas reglas categóricas de inferencia, se supone que las premisas se llaman en la forma canónica X es A o en la forma canónica condicional X es A si Y es B, donde A y B son predicados fuzzy ( o relaciones). En las reglas silogísticas, las premisas se expresan como Q A’s son B’s, donde Q es un cuantificador fuzzy y A y B son predicados fuzzy. Las reglas en cuestión son las siguientes: - Reglas categóricas X,Y,Z,...∆ variables que toman valores en U, V, W, ejemplo A ∆ pequeño, B ∆ mucho mayor - Regla de vinculación X es A A⊂ B µA(u)≤ µB(u), u∈U X es B - Regla de conjunción X es A X es B_____________________ X es A∩B→µA∩B(u)= µA(u)∧ µB(u) - Regla de disyunción X es A ó X es B_____________________ X es A∪B→µA∪B(u)= µA(u)∨ µB(u) - Regla de proyección (X,Y) es R______________ X es xR→µxR(u)=supvµR(u,v) - Regla composicional (X,Y) es R→predicado binario Y es B_________________________ X es A o R µAoA(u)=supv(µR(u,v) ∧ µB(v)) - Regla de negación no (X es A)___________ 19 ∩ intersección (conjunción) ∪ unión (disyunción) xR ∆ proyección de R sobre U ALSINA, Claudi. El cálculo con subconjuntos borrosos. Aplicaciones de la lógica borrosa. Madrid: Consejo superior de Investigaciones científicas, 1992. 25p. 17 X es ¬A→µ-A(u)=1-µA(u) - Principio de extensión X es A_____ ƒ(X) es ƒ(A) A=µ1/u1 + µ2/u2+...+µn/un ƒ(A)= µ1/ƒ(u1)+ µ2/ƒ(u2)+...+ µn/ƒ(un) La ventaja de la forma canónica es que pone de relieve que la inferencia en fuzzy logic se puede interpretar como una proporción de delimitaciones elásticas, es útil en las aplicaciones de la fuzzy logic al control y análisis de decisión. Ya que en las aplicaciones de control las relaciones entrada-salida se expresan como colecciones de reglas if-then fuzzy. Si X e Y son variables de entrada y Z es la variable de salida, la relación entre X,Y y Z se puede expresar como Z es C1 si X es A1 y Y es B1 Z es C2 si X es A2 y Y es B2 Z es Cn si X es An y Y es Bn donde Ci, Ai y Bi, =1,...,n son subconjuntos fuzzy de sus respectivos universos de discursos. Reglas silogísticas: Un silogismo fuzzy se puede sopesar como el esquema de inferencia Q1 A’s son B’s Q2 C’s son D’s Q3 E’s son F’s en el que A,B,C,D,E, y F son predicados fuzzy interrelacionados y Q1, Q2 y Q3 son cuantificadores fuzzy. Las interrelaciones entre A,B,C,D,E y F proporcionan una base para la clasificación de silogismos fuzzy. Los más importantes son: a) Silogismos Intersección/ Producto C=A∧B, E=A, F=C∧D b) Silogismo de Encadenamiento C=B, E=A, F=D c) Silogismo de Conjunción del Consecuente A=C=E, F=B∧D d) Silogismo de Disyunción del Consecuente A=C=E, F=B∨D e) Silogismo de Conjunción del Antecedente B=D=F, E=A∧C f) Silogismo de Disyunción del Antecedente B=D=F, E=A∨C ¬ ∆ negación 18 Uno de los problemas básicos en razonamiento fuzzy silogístico es el siguiente: Dadas A,B,C,D,E y F, encontrar el cuantificador fuzzy maximalmente específico Q3 tal que la proposición Q3 E’s son F’s esté vinculada con las premisas. En el caso de a), b) y c), esto conduce a los siguientes silogismos: Silogismo Intersección/ Producto: Q1A’s son B’s Q2(A y B)’s son C’s______ (Q1 Q2) A’s son (B y C)’s donde denota el producto de aritmética fuzzy. Silogismo de encadenamiento: Q1A’s son B’s Q2B’s son C’s______ (Q1 Q2) A’s son C’s Este silogismo se puede visualizar como un caso particular del silogismo intersección/ producto. Resulta de cuando B⊂A y Q1 y Q2 son antecedentes, esto es, ≥Q1 X Q1 y ≥ Q2X Q2, donde ≥Q1 se debe interpretar como al menos Q1. Silogismo de conjunción del consecuente: es un ejemplo de silogismo básico que no se deriva del silogismo intersección/ producto. Su conjunción se puede expresar como sigue: Q1A’s son B’s Q2A’s son C’s____ QA’s son (B y C)’s Donde Q es un cuantificador fuzzy que viene definido por las inecuaciones O (Q1 Q2 1)≤Q≤Q1Ο Q2 en las que , , y son las operaciones de ∧ (max), ∨ (min), + y - en aritmética fuzzy.20 1.1.8 Fuzzy Hardware Las características de la fuzzy logic determinan que para obtener el rendimiento adecuado, es necesario diseñar sistemas hardware específicos para ello. Los sistemas basados en la fuzzy logic pueden ser procesados y ejecutados perfectamente mediante un computador digital convencional, pero la eficiencia del computador para procesar información fuzzy es escasa, de forma que se hace necesario el desarrollo de arquitecturas especificas. Importantes investigaciones muestran el creciente interés en la implementación de ambos tipos de controladores fuzzy análogos y digitales, así como en sistemas de fuzzy logic en general. ZADEH, Lofty. En: Gutiérrez R, Julio. Representación del conocimiento en lógica borrosa. Aplicaciones de la lógica borrosa. Madrid: Consejo superior de Investigaciones científicas, 1992. 170p. 20 19 La eficiencia de un procesador estará ligada a la proporción entre la cantidad de información que se maneja y la cantidad de información necesaria para representarla. Antes de 1980 Takeshi Yamakawa había desarrollado diseños de circuitos de fuzzy logic usando tecnología bipolar y haciendo uso de componentes discretos. En 1984 y 1.985 Yamakara y Miki desarrollaron el primer Chip de fuzzy logic usando tecnologías PMOS y CMOS, por esta misma época Togai Y Watanabe, desarrollaron el primer motor de inferencia de fuzzy logic en un Chip VLSI. Este chip ejecutaba 250000 reglas por segundo. Witold Pedrycs y C.Hart Poskar propusieron un procesador Fuzzy reconfigurable RPF para la implementación de las operaciones AND, OR diferencia, dominio e inclusión. Las neuronas RPF contienen tres unidades principales : 1. El RPF. 2. La unidad de aprendizaje 3. y Una unidad de memoria local. Hartmut Surmann y Ansgar P. Ungering desarrollaron una tercera generación de Hardware Fuzzy basado en tablas lookup, optimización en el proceso de reglas y modulación de ancho de pulso digital, esto lo realizaron de la necesidad de tener soluciones rápidas durante la simulación y optimización de sistemas Fuzzy (basados en reglas) usando redes neuronales o algoritmos genéticos. En la siguiente tabla se resumen los distintos caminos para implementar sistemas de Fuzzy Logic. Tabla 1. Modos de implementación de Sistemas fuzzy Implementación Por Software Ventajas Fácil de implementar, bajo costo Operaciones de Lógica Fácil Programación Difusa en Microcódigo CPU soportada por Alta velocidad de coprocesador Fuzzy operaciones Fuzzy CPU incluyendo Se incrementa la alta operaciones difusas a velocidad de operación Fuzzy. nivel de Hardware. Uso de un Motor de Altísima velocidad en inferencia difuso en operaciones Fuzzy. forma exclusiva. (Chip Facilidad de construir estructuras difusas. Fuzzy) Desventajas Baja velocidad Operación __________ de El manejo de datos limita la velocidad de operación __________ Alto Costo. 20 Se han tenido algunos inconvenientes en el uso del Software, porque se requiere una gran capacidad de procesamiento. Una solución a este problema es la de adicionar instrucciones de fuzzy logic en microcódigo, otra solución es la de tener un coprocesador, con esto se logra alta velocidad en las operaciones, pero la adquisición de datos entre el CPU principal y el Coprocesador externo limita el tiempo total de la operación. Claramente el camino más fácil de implementar el procesamiento de fuzzy logic es el de usar un motor de inferencia, esto se puede conseguir bien sea mediante un modelo digital, ó un modelo análogo. 1.1.8.1 Motivos para utilizar técnicas fuzzy en el control de procesos Se llaman «clásicos» a aquellos sistemas de control que utilizan los algoritmos de control del tipo PID. En los casos que aparecen comportamientos que no son lineales o variaciones en el entorno, los sistemas PID no son directamente aplicables y ha sido necesario crear otros nuevos capaces de realizar el control en estas situaciones; estos métodos reciben el nombre de adaptivos. Los métodos adaptivos comparan la salida del proceso a controlar con otra ideal proporcionada por un modelo simulado, que se toma como referencia; el resultado de esta comparación se utiliza para ajustar los parámetros del controlador, utilizando algoritmos que describen el comportamiento del sistema mediante leyes de tipo físico o químico, según sea el proceso o utilizando métodos de estimación de parámetros. En ambos casos es indispensable obtener un modelo matemático del sistema y de una gran capacidad de cálculo. Los sistemas de control fuzzy permiten describir el conjunto de reglas que utilizaría un ser humano que controlase el proceso, con toda la imprecisión que poseen los lenguajes naturales y, sólo a partir de esas reglas, generan las acciones que realiza el control. Por esta razón, también se les denomina controladores lingüísticos.21 1.1.8.2 Reglas fuzzy Un controlador fuzzy está formado por un dispositivo que, en un instante determinado, recibe señales de un proceso, la elabora utilizando un conjunto de reglas experimentales y proporciona señales de control la los actuadores; es decir, su resultado es un conjunto de magnitudes físicas. Esta es la diferencia fundamental con los sistemas expertos (SE) que también utilizan técnicas fuzzy: la naturaleza del resultado. Las acciones de control se definen mediante un conjunto de reglas del tipo: GARCÍA ROSA, Ricardo. Técnicas fuzzy en el control de procesos. Aplicaciones de la lógica borrosa. 1992 Madrid: Consejo superior de Investigaciones científicas, 1992. 170p. 21 21 SI condiciones ENTONCES acciones Las condiciones siempre son expresiones lógicas que relacionan variables fuzzy. Las acciones pueden ser de dos tipos: expresiones analíticas o expresiones fuzzy.22 1.1.8.3 Condiciones Las variables físicas descritas en las reglas pueden ser tanto discretas como continuas y a cada una de ellas se ha de asociar un conjunto de variables fuzzy que representan los calificativos utilizados; la semántica de estas variables están determinadas por su función de pertenencia (µ). Cuando las variables físicas son discretas, las funciones de pertenencia de las lingüísticas se definen mediante tablas y, cuando son continuas las variables físicas, sus lingüísticas asociadas toman las formas clásicas de trapecios, triángulos o campanas gaussianas. Las expresiones que configuran las condiciones de las reglas utilizan la fuzzy logic y proporcionan una función que describe la expresión; los operadores lógicos que se utilizan en la práctica son sólo tres: «y» «o» «-», con su semántica usual: µ-A(x)=1-µA(x) µAoB(x)= 1-max(µA(x), µB(x)) µAyB(x)= 1-min (µA(x), µB(x)) = 1-µA(x) X µB(x)) El valor que toma la expresión asociada a los valores en un instante determinado de las magnitudes físicas se denomina «peso de la regla», e indica la cuantía con la que debe participar esta regla en el control a realizar. 1.1.8.4 Acciones El conjunto de las acciones a realizar está definido por el de las partes de la derecha de las reglas; cada una de éstas realizará una aportación al control global que será función de su peso. En el caso de dos variables físicas de entrada (x1,x2) y una sola de salida (y) que ha de ser controlada; y sean las reglas que describen las acciones de control: regla 1: SI (x1 es A11) Y (x2 es A12) ENTONCES y será B1 regla 2: SI (x1 es A21) Y (x2 es A22) ENTONCES y será B2 regla 3: SI (x1 es A31) Y (x2 es A32) ENTONCES y será B3 donde Aij y Bi son variables lingüísticas asociadas a xi é y respectivamente. Si en un instante en estudio el valor de las tres variables de entrada es (x1o, x2o, x3o), el problema consiste en determinar cuál ha de ser el valor de la variable de salida 22 ________.________ 22 (yo). El peso (w) de cada una de las reglas puede ser calculado con uno de los métodos apuntados anteriormente para la función Y, el mínimo: ω1=mín (µA11(x1o), µA12(x2o)) ω2=mín (µA21(x1o), µA22(x2o)) ω3=mín (µA31(x1o), µA32(x2o)) o el producto ω1=µA11(x1o)* µA12(x2o) ω2=µA21(x1o)* µA22(x2o) ω3=µA31(x1o)* µA32(x2o) Para el cálculo de la variable de salida (yo), existen varios métodos: Método de la Media Ponderada: Este método, que es de cálculo sencillo, exige que las funciones Bi sean monótonas, para que la función inversa sea única. En este caso, de la inversa de ωio= Bi(yio) puede deducirse yio para cada una de las reglas. o o ω ⋅ y o + ω 2 ⋅ y 2 + ω 3 y3 yo = 1 1 ω1 + ω2 + ω3 Método del centro de masas: Consiste en crear la función auxiliar B* definida como la unión de las funciones de pertenencia Bi multiplicada cada una de ellas por su peso: B* =ω1⋅B1∪ω2⋅B2∪ω3⋅B3 y tomar como valor de salida su centro de masas: ∫ B * ( y) ⋅ y ⋅ dy yo = ∫ B * ( y) ⋅ dy Método de la Media para Acciones descritas Funcionalmente: Existe una variante del método de la media ponderada que es aplicable cuando las acciones están descritas por expresiones funcionales no fuzzy del tipo: SI (x1 es Ak1) Y (x2 es Ak2) ENTONCES y=fk(x1, x2) en este caso, el cálculo de la media ponderada se hará según: ∑ ω k ⋅ f k ( x1o , x2o ) 23 o y = ∑ω k 1.1.9 Controlador Fuzzy Logic El control de sistemas utilizando fuzzy logic es una de las aplicaciones más interesantes de la teoría fuzzy, en el diseño de sistemas de control, a partir de unas entradas se deben generar unas salidas para actuar sobre determinados mecanismos. 23 ________.________ 172p. 23 La fuzzy logic comenzó a utilizarse en controladores por su simplicidad, ya que no requiere de constructores matemáticos complejos, permitiendo en cambio diseñar mediante la descripción del funcionamiento con lenguaje natural y facilitando las tareas de prueba y mantenimiento del sistema. El propósito del control fuzzy logic es realizar procesos que requieran control humano. La estrategia de control utilizada es el control convencional PID (proporcional- integral- diferencial) cuyas funciones se expresan en funciones matemáticas. Esta es la diferencia fundamental con el control humano. Las estrategias de control humano son difíciles y no naturales para expresarlas en funciones matemáticas. Por otro lado, el control fuzzy puede ser usado para remplazar el pensamiento y la experiencia humana ya que puede ejecutar un pensamiento similar, realizando un control inteligente. Para realizar un control fuzzy, se necesita establecer relaciones fuzzy IF-THEN. Las reglas IF-THEN usadas in el control fuzzy son llamadas reglas de control. Por medio de estas reglas se puede aprovechar el conocimiento de los operarios quien se entiende realmente con el funcionamiento de un sistema determinado. Después de establecer las reglas fuzzy se puede realizar el control por razonamiento fuzzy. 24 Para realizar una implementación práctica utilizando fuzzy logic se deben tener en cuenta tres principios básicos, estos son: representación del conocimiento, razonamiento estratégico y adquisición del conocimiento. Reconocimiento que se hace basado en las reglas, entonces la representación emitida tendrá un significado específico de cómo reglas lingüísticas sean representadas numéricamente. El razonamiento estratégico concierne el problema de cómo una conclusión razonable (acción) se debe tomar respecto a una situación. La adquisición del conocimiento trata de la emisión de cada conjunto de reglas de control a partir de la deducción.25 Un controlador de fuzzy logic consta de un motor de inferencia fuzzy y un defuzzificador, una entrada a este controlador es una señal proveniente de un sensor que detecta un cambio en una variable de la Planta, y la salida es una señal que controla el actuador de la planta. Estas señales son todas de valor análogo. La salida del motor de inferencia es un valor Fuzzy, entonces es necesario tener un defuzzificador para convertir el valor Fuzzy a un valor análogo. En la siguiente figura se muestra la representación de una función de membresía 24 TANAKA, Kazuo. An Introduction to Fuzzy Logic for Practical Applications. New York: Springer. 1997. p.121. NIE, Junhong y LINKENS, Derek. Fuzzy-Neural Control Principles, algorithms and applications. 1995. p.2. 25 24 Función de membresía discreta 2m µ x (voltage) input x n bits Address MEMORY nxm m bits Data Grado µx 0 x 2n 5 µ x (voltage) Función de membresía Continua input x -5V, 5V Circuito función de Membresía 0V, 5V x Grado µ 0 -5 x 5 Figura 7. Tipos de funciones de membresía Primero en función discreta en la que se usa un dispositivo de memoria convencional con el cual se emplea el método de Tabla Lookup. Cuando una entrada es aplicada al bus de direcciones el grado de pertenencia inmediatamente aparece en el bus de datos de la memoria, esto mediante la relación el la tabla Lookup. El tiempo de adquisición depende exclusivamente del tiempo de acceso a la memoria. La resolución del universo de discurso (2n) determina el número de direcciones, y el código binario m-bit del grado de la función de membresía representa el contenido del registro. También se presenta la versión análoga, la cual es implementada por las características de entrada-salida de un circuito análogo llamado circuito de función de membresía (MFC). La exactitud determina la resolución del universo de discurso así como el grado de membresía. Mientras este circuito es compacto y logra alta velocidad de procesamiento, el no puede generar muchas formas complejas. Funciones de fuzzy logic: las operaciones Min y Max son frecuentemente usadas en inferencia fuzzy y pueden ser implementadas con un comparador y un multiplexor en un circuito digital. Este circuito no puede aceptar más de dos entradas, para realizar un circuito Min que acepte más de dos entradas, necesitamos adaptar un circuito en modo serial que sacrifique velocidad o un estructura de árbol que sacrifica área en el Chip. 1.1.9.1 Estructura del controlador fuzzy La estructura del controlador fuzzy consta de cuatro módulos principales, a decir: • Un módulo de fuzzificación, 25 • • • Una base de conocimientos, Un motor de inferencia, y Un módulo de defuzzificación. El módulo de fuzzificación normaliza la entrada, es decir, traduce los valores físicos de las variables de estado a un universo de discurso normalizado, además, convierte el valor en curso de una variable de estado en un conjunto fuzzy. Existen varias estrategias de fuzzificación, dos de estas son: • Inferencia basada en una composición, e • inferencia basada en la activación individual de las reglas. La base de conocimientos está integrada por la base de datos y la base de reglas; la función básica de este módulo es representar de una forma estructurada la política de control de un operador de procesos experimentados y/o de un ingeniero de control. El motor de inferencia es el encargado de calcular el valor global de la variable de salida, basado en las contribuciones individuales de cada regla en la base de reglas. El módulo de defuzzificación convierte el conjunto de valores de salida en un solo valor puntual, además de desnormalizar la salida para que sea entendida en el dominio físico. En la figura se muestra la estructura de un controlador fuzzy Entrada Salida Normalización Motor de inferencia Fuzificación Base de reglas Desnormalización Defuzificación Base de datos Figura 8. Estructura interna de un controlador fuzzy Existen diversos métodos de fuzzificación, entre los más comunes tenemos el método del centro de gravedad y el método del centro de las sumas. 26 • Método del centro de gravedad o del centroide Este método se puede enunciar de la siguiente manera: u* = i = 1 l ∑ ui . Maxk µ (k ) (ui ) i =1 l ∑ Maxk µ (k ) (ui ) Consiste en crear para la salida del sistema una función de pertenencia a un nuevo conjunto obtenido como unión de aquellos a los que pertenece parcialmente el valor de salida. Esta nueva función puede calcularse mediante la suma de las funciones de pertenencia de estos conjuntos, pero multiplicadas aritméticamente por el grado de pertenencia de la salida al subconjunto que fue calculado en la fase de evaluación de las reglas de control. µc(y)= Peso Regla Ri⋅µci(y) + Peso Regla Rj⋅µcj(y) El anterior es el producto aritmético, utilizando el producto fuzzy se tiene: µc(y)= mín (Peso Regla Ri , µci(y)) + mín (Peso Regla Rj ,µcj(y)) • Método del centro de las sumas u* = i = 1 l ∑ ui . ∑ µ (k ) (ui ) i = 1k = 1 l n ∑ ∑ µ (k ) (ui ) k =1 n Donde µi es el valor de membresía para las entradas en cada uno de los universos de discurso ui. La acción neta de control se obtiene mediante la defuzzificación, que es una combinación adecuada de las acciones individuales que se derivan de cada regla, el método de defuzzificación de la media ponderada, se puede enunciar de la siguiente manera: 27 u* = i = 1 n ∑µi dui i =1 n ∑µi i i i=0,1,2,...,n Además se tiene el método del centro de gravedad (COG) 1 COG = i =n ∑ µW ∑ µ n Donde µi es el grado de membresía y wi es el ancho del i-esimo elemento del universo de discurso. 1.1.9.2 Procesamiento de información fuzzy Las operaciones matemáticas que han sido descritas en fuzzy logic son muy numerosas y, en general, significan diferentes modos de aproximación hacia la solución de diferentes problemas. La investigación acerca de hardware para el procesamiento de información fuzzy depende de los desarrollos teóricos y los modelos matemático existentes. Los sistemas hardware se han restringido a un conjunto estándar de T-normas: El máximo (MAX) y el mínimo (MIN), que viene a sustituir a la Unión e Intersección clásicas respectivamente, y la diferencia respecto a la unidad (1-X) que sustituye a la complementación. De esta forma, si se tiene una regla como: Si x es A y y No es B, Entonces f es P los antecedentes habrán de ser procesados obteniendo el mínimo entre las pertenencias de cada variable a su función, tal como se ve en la siguiente figura (inciso a)) i =1 i 28 Figura 9. a) Procesado de una rgla. b) Conclusión de un conjunto de reglas y defuzzificación26 Las operaciones a ejecutar son el MIN entre los grados de pertenencia de x a A y la de y a (1-B). Una vez obtenido el mínimo, la conclusión de la regla se obtendrá truncando la función P del consecuente según el valor de dicho mínimo, lo que es lo mismo de ejecutar la operación MIN entre el valor obtenido y la función P. En cuanto a la conclusión final del conjunto de reglas, ésta se obtendrá ejecutando la operación MAX entre todas las conclusiones individuales de cada regla, como se observa en la figura anterior. (inciso b). Se observa que hay componentes contradictorias en la conclusión, tal como sucede en la práctica. El problema que se plantea es el de poder interpretar correctamente el resultado: una medida estándar establecida en fuzzy logic es la extracción del centro de gravedad (CdG) de la función resultante. Parece lógico que la interpretación se acerque a una medida ponderada como sucede en la mayor parte de los procesos de evaluación. A este proceso se le denomina «defuzzyfication» (DEF), ya que se extrae un valor concreto a partir de datos fuzzy. 27 1.1.9.3 Arquitectura y tecnología de procesadores fuzzy La mayoría de los desarrollos hardware que se han llevado a cabo hasta la actualidad se han hecho con el objetivo de emplearlos en aplicaciones de control. Esto se debe a dos razones: relativamente pequeño número de reglas necesarias para las aplicaciones normales de control industrial, y la eficacia de la lógica fuzzy en este tipo de aplicaciones, la reducción de reglas que se consigue es de 10:1. GUTIERREZ, Julio. Hardware Fuzzy. Aplicaciones de la lógica borrosa Madrid: Consejo superior de Investigaciones científicas, 1992. 163p. 27 26 ________.________ 29 x CFP GFP MR y CFP M I N TRUNC MR z CFP . . . MR M A X DEF MR Figura 10. División del proceso en unidades funcionales La figura muestra la división del proceso en cuestión de unidades funcionales: los Circuitos de Función de Pertenencia (CFPs) son tales que la función de transferencia coincide con la de pertenencia de cada una de las premisas, de tal forma que la entrada de a la variable correspondiente da lugar en la salida al valor del grado de pertenencia. El circuito MIN extrae el mínimo entre los resultados de los antecedentes. El Generador de Función de Pertenencia (GFP) proporciona a su salida la función de pertenencia del consecuente, la cual queda truncada mediante el módulo TRUNC según el valor obtenido de MIN que también es una entrada de TRUNC. La salida de TRUNC es la conclusión de una regla. Al conjunto capaz de procesar una regla se denomina Módulo de Regla (MR). El circuito MAX establece el máximo entre dos consecuentes. VER FIGxxxx PAGxxxx 163 La arquitectura básica se ha hecho de acuerdo con las T-normas más comunes.28 1.1.9.4. Modalidades de implementación29 Aunque la arquitectura del procesador es simple, hay factores reales que determinan las diferencias al momento de implementar sistemas reales. Los factores más importante son: • Ejecución Secuencial o Paralela: La opción del procesado en paralelo es la presentada en la figura. La opción secuencial consiste en procesar cada una de las reglas del conjunto considerado mediante un solo MR en el que se van introduciendo las reglas sucesivamente en el tiempo. La función MAX se ejecuta almacenando en un registro, previamente puesto a cero, el máximo entre el contenido del propio registro y el resultado del consecuente de la regla en curso. La opción secuencial es más lenta pero más sencilla, además se pueden 28 ________.________ 166p. ________.________ 29 30 procesar tantas reglas como se quiera con ella sin tener que hacer modificaciones, mientras que en paralelo, es necesario incrementar el número de MR’s a medida que aumenta el número de reglas. MR M A X R E G I S T R O Figura 11. Esquema básico de arquitectura • • • • • Programabilidad: Las funciones contenidas en las CFP’s y GFP’s pueden ser fijas (hardware) o programables. La implementación en firmware puede hacerse de forma más sencilla, pero sería una máquina dedicada y nunca de propósito general. La mayor ventaja de diseñar en base a reglas conceptuales es su facilidad de modificación y adecuación. Análogo o Digital: La opción analógica es la más complicada de realizar pero su comportamiento puede hacerse más rápido, ya que los sistemas digitales necesitan sincronía por lo cual la secuencia de operaciones ha de ir controlada por pasos de reloj. Las soluciones híbridas son la que tienen mejor rendimiento. Funciones muestreadas o codificadas: El GFP puede entregar la función como un conjunto de muestras, o codificada de otra forma distinta. El muestreo significa la utilización de una gran cantidad de información (>16), que puede reducirse notablemente con el empleo de otro modo de codificación. Modo de acceso y transmisión de datos: En caso de que las funciones se representen por muestreo el cableado para transmitir en paralelo es muy pesado. Para evitarlo se emplea la transmisión serie con registros de desplazamiento como terminales. Adecuación de las arquitecturas convencionales: Es una hibridación entre la implementación hardware y software, pero podría dar lugar a sistemas de altas prestaciones. 1.1.9.5 Diseño del controlador con fuzzy logic El diseño del controlador compromete la construcción de reglas de control. En muchos casos, se pueden obtener reglas de control preguntando a los operadores sus acciones en el formato IF-THEN. Por que no algún método genérico de construir reglas de mando. El proceso de diseño incluye los siguientes pasos: • construcción de las reglas de control • ajuste de los parámetros 31 • validación y revisión de las reglas de control Establecimiento de las reglas de control Revisión de las reglas de control Ajuste de parámetros Validación Figura 12. Procesamiento de diseño del controlador fuzzy30 1.1.9.6 Construcción de las reglas de control Las variables de salida están determinadas implícitamente por el operador. Para las variables de entrada, una desviación desde el punto de comparación, esta variación (derivada), y es acumulativa (integral) son usadas muchas veces. Los controladores tradicionales PID emplean estas mismas variables de entrada.31 1.1.9.7 Sintonización de parámetros Luego de establecer las reglas, el siguiente paso es sintonizar los parámetros involucrados. Los parámetros aquí referidos son los parámetros de la función de membresía que definen el sistema fuzzy.32 1.1.9.8 Revisión de las reglas de control Al revisar las reglas es posible que se den alguna de estas posibilidades, adicionar reglas y eliminar reglas que afecten adversamente el desarrollo del control. El funcionamiento de un sistema de control también se puede analizar en base al siguiente diagrama. 30 TANAKA, Kazuo. An Introduction to Fuzzy Logic for Practical Applications. New York: Springer. 1997. p.122. ________.________ . p.123. ________.________ . 31 32 32 Funciones de Pertenencia Fuzzificación de las entradas Entradas fuzzy Evaluación de las reglas de control Salidas fuzzy Defuzzificación de las salidas Base de reglas Figura 13. Funcionamiento de un sistema de control fuzzy33 Se pueden distinguir 3 partes fundamentales: una primera etapa de fuzzificación de los valores de entrada, otra de evaluación de reglas de control fuzzy y una última de defuzzificación para obtener valores concretos de salida. • Fuzzificación de las entradas: La fuzzificación es el proceso por el cual se calcula su grado de pertenencia a uno o varios de los conjuntos fuzzy en que se divide el rango de valores posibles para dicha entrada. Cuando se trabaja con conjuntos fuzzy hay que establecer unas funciones de pertenencia de los elementos a los diferentes conjuntos, lo cual permite determinar a partir del valor de un elemento, su grado de pertenencia al conjunto, siendo este un valor real normalizado entre 0 (no pertenece) y 1 (pertenece al 100%). Esta función se denota como µ(x), siendo x el valor del elemento. • Evaluación de las reglas de control: Para gobernar el comportamiento del sistema, el diseñador debe establecer una serie de reglas SI (antecedente) ENTONCES (consecuente) para indicar la acción a realizar en función del conjunto al que pertenece la entrada al sistema. La forma general de una regla es: R:SI (x es A) ENTONCES (y será C), también se pueden utilizar las anotaciones: R:A -> C y R:(A;C). Una vez ponderadas las reglas que van a gobernar el funcionamiento del sistema, se procede a la defuzzificación de las salidas. HILERA, José y MARTÍNEZ, Víctor. aplicaciones. 1995. p. 339 33 Redes neuronales artificiales. Fundamento, modelos y 33 • Defuzzificación de las salidas: Consiste en obtener un valor numérico para cada una de las salidas del sistema a partir de los conjuntos fuzzy a los que pertenecen. Existen varias técnicas de defuzzificación, las más utilizadas, denominadas método del centroide y método de la media ponderada. 1.1.10 Sistemas fuzzy como máquina de inferencia34 Asumiendo que, para un sistema específico, un conjunto de entradas X y uno de Y salidas Y son identificadas apropiadamente, una regla-base ΨX es derivada desde fuentes disponibles que contienen un conjunto de reglas relacionando X a Y usando niveles lingüísticos predefinidos. Con ayuda del conjunto fuzzy y la teoría fuzzy logic, un sistema fuzzy a un nivel lingüístico puede ser establecido como se observa en la figura. Máquina de Inferencia Φ Reglas base Ψ Figura 14. Sistema Fuzzy como máquina de Inferencia Y Para una entrada X0, la salida correspondiente Y0 es deducida como Y0 = Φ ( ΨX , X 0 ) . Los mecanismos del sistema para derivar una acción razonable Y0 con respecto a una situación específica X0 puede ser interpretada simplemente como ejecución de Y un proceso racional de dos estados. Observando la regla-base ΨX como un prototipo, la máquina de inferencia Φ primero lleva a cabo un procedimiento de formar parejas entre la situación X0 y las partes IF de las reglas. Para deducir la acción correspondiente, un procedimiento de interpolación tiene lugar entre la operación de las parejas resultantes con las partes THEN de las reglas usando una estrategia de inferencia fuzzy. 1.1.11 Sistemas Fuzzy como funciones de aproximación35 La mayoría de los problemas en ingeniería involucran solo variables numéricas, tal como en el caso de control y modelamiento. Al aplicar el sistema fuzzy a aquellos entornos numéricos, dos procedimientos, llamados fuzzificación y defuzzificación, son normalmente empleados como en la figura. NIE, Junhong y LINKENS, Derek. Fuzzy-Neural Control Principles, algorithms and applications. Londres: Prentice Hall. 1995. p.3. 35 ________.________ p.5. 34 34 Fuzzification x Numerical inputs F X Máquina de Inferencia Y DF Defuzzification y Figura 15. Proceso de fuzzificación y defuzzificación Los valores medidos x son convertidos en valores fuzzy X compatibles con la forma del sistema fuzzy. Los valores deducidos Y tienen que ser convertidos a valores “crisp” y compatibles con la forma del entorno numérico. Así, se puede observar que aunque el sistema fuzzy tiene el mismo una asociación con un nivel fijo, Y=F(X), trazando un conjunto fuzzy X dentro de un conjunto fuzzy Y, el último trazado desde x a y, en realidad representa una función determinada y = f ( x ) trazando específicamente x∈ X en y∈ Y . En este sentido, el aumento del sistema fuzzy de la figura anterior puede ser considerado como la realización de la función numérica la cual es determinada principalmente por la regla-base y asociada con el algoritmo de inferencia. Siendo más preciso, el sistema fuzzy es una función aproximada debido a su naturaleza interpolativa. De esta manera, se observa como una caja negra con su representación correspondiente y sus esquemas de razonamiento, se pueden construir sistemas fuzzy de sistemas con representación o función desconocida, la función puede ser no lineal. 1.1.12 El papel de un sistema fuzzy en el control36 El sistema fuzzy como un razonamiento aproximado o un aproximador funcional puede ser usado en varios sistemas de control. El más popular y sencillo es el usado como un controlador directo como en la siguiente figura. + + Controlador Fuzzy Planta Figura 16. Sistema fuzzy de control directo El requerimiento básico para implementar un sistema fuzzy de control directo es el de disponer de un experto en el control que provee el conocimiento necesario para el problema. La segunda utilización de un sistema de control es el usado para supervisar, el empleado en este caso es: 36 ________.________ p.7. 35 Diseño del Controlador Modelo fuzzy Controlador fuzzy Planta Set-point Output Figura 17. Control fuzzy basado en modelamiento En lugar de usarlo directamente en las señales de control, la función del sistema fuzzy es monitorear el control directo a un bajo nivel para hacer un control directo utilizando los parámetros apropiados. la decisión tomada por el supervisor puede estar basada en el desempeño normal del control o las condiciones de operación empleadas en la estrategia de control en el sistema. Tratando el sistema fuzzy como un modelo representativo del controlador de la planta, se pueden hallar el tercer uso del sistema, que es, ponerlo en varios modelos basados en estructuras de control encontradas en un sistema tradicional de control y remplazar el modelo tradicional con uno fuzzy. 1.1.13 Control fuzzy basado en modelamiento37 Los principios básicos de esta aproximación es la relación en el proceso de las entradas y las salidas asumidas, las cuales son representadas en el sistema fuzzy por reglas de la forma IF-THEN o ecuaciones relacionadas denominadas modelos fuzzy. Primero, un procedimiento de identificación es aplicado. Después el modelo fuzzy es identificado apropiadamente, un conjunto de reglas de control o una ecuación relacionada con el controlador puede ser creada en la identificación del modelo. Claramente, este es un esquema basado en el principio de la certeza equivalencia y se adopta a un sistema adaptivo indirecto tradicional donde existen dos fases, identificación del modelo y rediseño del controlador. Los paradigmas basados en reglas fuzzy son definidos por una matriz relacional, Pedrycz (1985) propone una metodología semejante al manejo de las ecuaciones pre-identificadas para manejar el proceso de control. Takagi y Sugeno (1985) desarrolla una identificación capaz de extraer reglas de control desde un operador especializado, y ellos previeron además que el método pueda ser utilizado para identificar modelos de procesos en forma de reglas y obtuvieron reglas de control para identificación de modelos. Rhee (1990) presento una estructura de control alternativo. El sistema contenía una estructura de conocimiento en forma de celdas que representa la relación entrada-salida del proceso a controlar en tiempo y en valor. La estructura del conocimiento es establecida durante la fase de aprendizaje y es sucesivamente 37 ________.________ p.8. 36 empleada en procesos de control basados en dos conjuntos de reglas de inferencia. Moore y Harris (1992) describió un controlador indirecto fuzzy como el que se tiene en la gráfica Control fuzzy basado en modelamiento. Un controlador fuzzy convencional contiene los mismos componentes de la gráfica Sistema fuzzy de control directo. 1.1.14 Control fuzzy basado en el aprendizaje38 En contraste con el modelamiento, el método basado en el aprendizaje emula el pensamiento humano aprovechando la habilidad conseguida mediante la operación del proceso repetidamente y por lo tanto la conducta del proceso no se tiene explícitamente. Aquí, la experiencia tiene una particular importancia y es utilizada intensivamente para crear sistemas de control. Así, con un pequeño conocimiento a priori acerca del proceso, la reglas se pueden organizar con el proceso de aprendizaje. Un ejemplo de esta clase es llamado controlador lingüístico organizado (self-organizing controller, SOC) que fue desarrollado por Procyk y Mamdani (1979). La estructura del SOC es ilustrado en la siguiente figura. PIT Modificación de las reglas + + Set-point Controlador Fuzzy Output Planta Figura 18. Control fuzzy basado en el conocimiento El lazo de realimentación es incrementado al controlador básico. Ejecutando el sistema de control indicando en una índice cuales reglas fueron creadas o modificadas, este índice se denomina PIT. Se comienza desde una regla vacía, el SOC puede construir la regla apropiada para ejecutar el control y esta es aceptada en el siguiente nivel del índice PIT. Por lo tanto, el objeto de modificar esta en controlar la matriz mientras se crean y/o modifican las reglas usadas mediante las cuales se crea la matriz. 1.1.15 Sistemas basados en Reglas Fuzzy con Aplicación en Procesadores de Propósito General La simulación y optimización de sistemas fuzzy con redes neuronales o algoritmos genéticos en procesadores de propósito general requiere implementaciones veloces de sistemas basados en reglas fuzzy. 38 ________.________ p.9. 37 Se presentan varios conceptos de implementación adaptados que analizan precisamente el algoritmo fuzzy basados en tablas de lookup, procesamiento optimizado de reglas y modulación digital por duración de pulso. Estos conceptos permiten a los procesadores de propósito general producir soluciones más rápidas que la segunda generación de procesadores fuzzy especializados. La idea básica es incorporar el Know-How de un operador humano entrenado dentro de reglas fuzzy, las cuales pueden ser combinadas por implicaciones fuzzy y reglas de inferencia composicionales. Los controladores lógicos fuzzy (Fuzzy Logic Controlers) y los sistemas basados en reglas fuzzy (Fuzzy Rule-Based Systems) (FRBSs) son herramientas importantes para el modelamiento de sistemas complejos. La base del conocimiento es normalmente o adquirido por un humano experto o por un juego de datos referenciales con algoritmos genéticos o neuronales. Términos Básicos El algoritmo de control es basado en el razonamiento generalizado, o módulo de ponderación, la regla de inferencia: • Premisa A es verdadera • Implicación Si A, entonces B • Conclusión B es verdadera Las funciones fuzzy luego reemplazan las proposiciones de cresta (crisp) A y B. Estas funciones caracterizan y definen el juego fuzzy sobre el universo U hacia µ. Se define en tres operaciones fuzzy importantes: • Intersección C = A∩B µc(x) = mín[µA(x), µB(x)] • Unión C= A∪B µc(x) = máx[µA(x), µB(x)] • Complemento à µÃ(x) = 1-µ Ã(x) Tabla 2. Distribución de tiempo de computación Fuzzificación 1% Inferencia 83% Defuzzificación 16% Distribución de tiempo de computación para un procesador de 64 bits, un número de entradas n=8, variables de salida m=4, 8 funciones de membresía y/o variables y 50 reglas. Se pueden caracterizar los más importantes rasgos de los microprocesadores actuales cuando se implementan con ellos FRBSs por: • Operaciones de Adición, multiplicación y división, las cuales son cerca de 10 a 100 veces más rápidas con números enteros que con números de punto 38 flotante. Las operaciones de punto flotante no están disponibles en los microcontroladores. Normalmente las operaciones de mínimo y máximo no son directamente accesibles. Los saltos sobre cortas distancias son rápidos. Los datos utilizados a menudo residen en el cache del procesador o en los registros. • • • De manera que el cálculo optimizado de los algoritmos basados en FBRSs en estos rasgos toma cuatro pasos: • Completar las operaciones de cálculo con números enteros; esto no es una restricción porque en aplicaciones de control los números de salida de un ADC son enteros. • Almacenar la funciones de membresía en tablas de Lookup de manera que los antecedentes son calculados muy rápidamente. Si la resolución de entrada se incrementa (a más de 10 bits), la función de membresía es aproximada por medio de líneas rectas. • Utilizar el algoritmo más conveniente para el procesador digital ya que los FRBS son aproximadores universales. • Incluir las dependencias de datos, especialmente la propiedad del operador mínimo mín[µ(x,0)=0], para reducir el número de operaciones drásticamente. Si una subpremisa del lado izquierdo de una regla no es activada, esta no es necesaria para evaluar las subpremisas siguientes. Luego, sólo unas pocas reglas deben ser completamente evaluadas. La consideración de las siguientes reglas reduce enormemente el tiempo de computo: • Si una subpremisa es cero y operación conjunción es interpretada como la operación de mínimo, la regla no es activada. No hay necesidad de calcular el resto de la regla. • De acuerdo con esto, todas las demás reglas que utilicen la misma subpremisa no necesitan ser calculadas. • Si subpremisas similares existen en diferentes reglas, no hay necesidad de recalcularlas, y el resultado del primer cálculo es reutilizado siempre que sea apropiado. 1.2 REDES NEURONALES Un red neuronal es una red mono o multicapa de nodos (elementos computacionales) y enlaces (arcos) sopesados utilizados para el reconocimiento de patrones, clasificación, y otros problemas no numéricos. Las Redes Neuronales son conexiones en paralelo de elementos simples usualmente adaptivos y con organización jerárquica, las cuales intentan intercalar con los objetos del mundo real del mismo modo que lo hace el sistema nervioso biológico [Kohien], comprenden 39 arquitecturas de ordenadores caracterizadas por un Procesamiento de Información de forma distribuida y no lineal y que tienen su inspiración en modelos fisiológicos sensoriales y cerebrales del mundo animal donde la principal tarea de éstas es el control centralizado de diferentes funciones biológicas. Una red alcanza resultados inteligentes por medio de varias cálculos paralelos sin el empleo de reglas u otras estructuras lógicas.39 1.2.1 Panorama Histórico El desarrollo de las Redes Neuronales se ha dado por el afán de construir sistemas capaces de realizar procesos con cierta inteligencia siendo esto uno de los principales objetivos y preocupaciones de los científicos a lo largo de la historia. De los intentos realizados en este sentido se han llegado a definir las líneas fundamentales para la obtención de máquinas inteligentes. En un principio los esfuerzos estuvieron orientados a la obtención de autómatas para que desarrollarán trabajos mecánicos, pero su función no paso de allí. Posteriormente se penso en la construcción de máquinas que realizarán tareas de rango intelectual para ayudarle al hombre, es entonces cuando se explora en las explicaciones teóricas del cerebro y el pensamiento llegando así a las primeras máquinas cibernéticas, las cuales son basadas en las redes neuronales. El primero en estudiar el cerebro como una forma de ver el mundo de la computación fue Alan Turin en el año de 1936. Sin embargo, los primeros teóricos que concibieron los fundamentos de la computación neuronal fueron Warren McCulloch, Neurofisiólogo y Walter Pitts, matemático, quienes, en 1943, lanzaron una teoría acerca de la forma de trabajar las neuronas. Ellos modelaron una red neuronal simple mediante circuitos eléctricos, el cual consistía en un dispositivo no lineal de múltiples entradas con interconexiones “peso”. En este modelo las interconexiones representaban las dendritas; el cuerpo celular se representaba por una función no lineal; la neurona artificial sumaba las entradas ya ponderadas, les aplicaba la función no lineal y transmitía la salida. w1i w2i w3i Σ ui xi Figura 19. Esquema de la neurona de McCulloch-Pitts En 1957, Frank Rosenblatt comenzó el desarrollo del Perceptrón, el cual es la red neuronal más antigua. Este modelo era capaz de generalizar; es decir, después de haber aprendido una serie de patrones era capaz de reconocer otros similares, HILERA, José y MARTÍNEZ, Víctor. aplicaciones. 1995 pág 325-337 39 Redes neuronales artificiales. Fundamento, modelos y 40 aunque no se le hubieran presentado anteriormente. Su limitación era no poder resolver la función OR-exclusiva. En 1959, Bernard Widrow y Marcial Hoff, desarrollaron el modelo ADALINE (ADAptative LINear Elements). Esta fue la primera neurona aplicada a un problema real: Filtros Adaptativos para eliminar ecos de las líneas telefónicas. En 1967, Stephen Grossberg de la Universidad de Boston, uno de los mayores investigadores de las redes neuronales, desarrollo una red llamada Avalancha, la cual consistía en una serie de elementos discretos cuya actividad variaba en el tiempo en función de ecuaciones diferenciales continuas, para resolver actividades tales como reconocimiento continuo del habla y aprendizaje del movimiento de los brazos de un robot. En 1982 James Andensor desarrollo un modelo lineal llamado Asociador Lineal, que consistía en neuronas que funcionaban como elementos integradores lineales que realizaban la suma de las entradas, el cual fue mejorado y llamado posteriormente Brain- State-in-a-Box (BSB). En Europa y Japón, Kunihiko Fukushima desarrollo el Neocognitrón, un modelo de red neuronal para el reconocimiento de patrones visuales. En 1982, coincidieron numerosos eventos que hicieron resurgir el interés por las redes neuronales. John Holpfield presentó su trabajo sobre redes neuronales en la Academia de las Ciencias. En 1985, el Instituto Americano de Física comenzó una reunión Anual llamada Neural Networks for Computing. En 1987 la IEEE celebró la primera conferencia internacional sobre redes neuronales. En el mismo Año se formo la International Neural Network Society (INNS) bajo la iniciativa y dirección de Grossberg. En 1988, se dio la unión de INNS e IEEE. La International Joint Conference on Neural Networks (IJCNN) produjo en 1989 más de 430 artículos. 1.2.2 Características 1.2.2.1 Ventajas de las redes neuronales Debido a su constitución y fundamentos, las Redes Neuronales Artificiales presentan un gran número de características similares al cerebro humano. Por ejemplo son capaces de aprender de la experiencia, de generalizar de casos anteriores a nuevos casos, de abstraer características esenciales a partir de entradas que representan 41 información irrelevante, etc. Esto hace que ofrezca un gran número de ventajas, las cuales son:40 • Aprendizaje Adaptativo. Capacidad de aprender a realizar tareas basada en un entrenamiento o en una experiencia inicial. • Tolerancia a Fallos. La destrucción parcial de una red conduce a una degradación de su estructura; sin embargo, algunas capacidades de la red se pueden retener incluso sufriendo un gran daño. • Autoorganización. Una Red Neuronal puede crear su propia organización o representación de la información que recibe mediante una etapa de aprendizaje. • Operación en tiempo real. Los cómputos Neuronales pueden ser realizados en paralelo, se diseñan y fabrican máquinas con Hardware especial para obtener esta capacidad. • Fácil Inserción dentro de la tecnología existente. Se pueden obtener chips especializados para redes neuronales que mejoran su capacidad en ciertas tareas. Ello facilitará la integración modular en los sistemas existentes. 1.2.2.2 Desventajas de redes neuronales • Gran cantidad de tiempo en la selección y preparación de los datos de entrenamiento, debido al gran número que se requieren para lograr buena generalización en la red entrenada • Mucho tiempo en el proceso de entrenamiento, aún con computadores de alta velocidad • La necesidad de entrenar la red con todos los patrones nuevamente, cuando se quiere cambiar un patrón o un punto de operación dados, con los costos en tiempo de entrenamiento 1.2.2.3 Redes neuronales y computadores digitales Se establecen una serie de diferencias y comparaciones entre dos sistemas los cuales son: • Los sistemas Neurolobiológicos no aplican principios de circuitos lógicos o digitales. • Ni las neuronas ni la sinapsis son elementos de memoria biestables. • En la computación neuronal no hay instrucciones de máquina ni códigos de control. • Los circuitos del cerebro no implementan computación recursiva y por tanto no son algoritmos.41 1.2.3 Redes neuronales e inteligencia artificial Dentro de lo que se entiende por Inteligencia Artificial (I.A.), una de las ramas más complementadoras es la que corresponde a las denominadas redes de autoproceso, entendiendo como tales aquellas formadas por nodos en los que hay elementos 40 41 ________.________ p. 250-37. ________.________ 42 procesadores de información de cuyas interacciones locales depende el comportamiento del sistema. Como se muestra en la siguiente figura en la Inteligencia Artificial hay dos grandes ramas de las redes de autoproceso: Procesamiento numérico y Procesamiento simbólico. Inteligencia Artificial Redes de Autoproceso Procesamiento Numérico Procesamiento Simbólico Sistemas Asociativos Sistemas Distribuidos REDES NEURONALES REDES SIMBOLICAS Figura 20. Situación de las redes neuronales en el campo de la inteligencia artificial42 1.2.3.1 Procesamiento Numérico Reciben directamente la señal de entrada del exterior y operan sobre ella. Esta rama se dedica a los sistemas constituidos por nodos hardware interconectados entre sí formando una red; también se llaman sistemas conectivistas o conexionistas. Si la conexión entre los nodos se realiza de forma global bajo reglas de composición, son sistemas distribuidos, si la conexión se realiza agrupando en sub-redes, se denomina sistemas asociados o redes de redes. 1.2.3.2 Procesamiento Simbólico 42 ________.________ 43 Estas redes están constituidas por conceptos (Nodos de la red) y por reglas sintácticas (Lazos de Interconexión), ambas formas las denominadas bases del conocimiento. La simulación de estas es casi exclusivamente software. En la siguiente tabla se resumen las diferencias entre la computación convencional (máquinas tipo Von Neumann), la computación simbólica (I.A) y computación Neuronal.43 Tabla 3. Formas básicas de computación Computación Convencional Arquitectura Von Basado en: Neumann Apropiada para: Algoritmos Conocidos Condiciones Pero no para: difusas Precisa estática Memoria Construida mediante Diseño, programación prueba Computadores convencionales Computación Simbólica Lógica Cognitiva Heurística Computación Neuronal Neurolobilogía Adaptación Cálculos precisos Distribuida Configuración aprendizaje y Soporte Causalidad desconocida Bases de conocimiento Representación y del conocimiento + motor de inferencia Máquinas LISP Procesadores paralelos 1.2.4 Fundamentos de las Redes Neuronales 1.2.4.1 Modelo Biológico La teoría y modelado de redes neuronales artificiales está inspirada en la estructura y funcionamiento de los sistemas nerviosos, donde la neurona es el elemento fundamental. Existen neuronas de diferentes formas, tamaños y longitudes. Estos atributos son importantes para determinar la función y utilidad de la neurona. Una peculiaridad de las redes neuronales biológicas es su tamaño; en todo el sistema nervioso central hay del orden de 1011 neuronas. Parece increíble programar las funciones de este sistema. la distribución de los recursos y los caminos de comunicación más importantes están formados de acuerdo con un plan 43 ________.________ 44 genético, mientras que el resto de la programación en especial la memoria se adquiere después de nacer. Programar la red puede significar: a) Alterar las estructuras de interconexión entre las células, y b) Cambiar las fuerzas de estas interconexiones. 1.2.4.2 Estructura de la neurona Una neurona es una célula viva, la cual consta de un cuerpo celular cuasiesférico (soma), de la cual sale una rama principal llamado axón y varias ramas más cortas, llamadas dendritas. A su vez, el axón puede producir ramas en torno a su punto de arranque, y con frecuencia se ramifica extensamente cerca de su extremo. Dendritas acarrean las señales al interior Cuerpo de la célula 1 Axón Transporta la señal hacia el exterior Punto de Conexión con otra neurona (Sinapsis) Figura 21. Forma general de una neurona Esta estructura corresponde con la de un proceso, con sus respectivas funciones de entrada y salida. 1.2.4.3 Naturaleza bioeléctrica de la neurona Las señales que utilizan son de dos tipos: eléctricas y químicas. La señal que viaja por el axón es eléctrica y en cambio la que se transmite de los terminales axónicos de una neurona y las dendritas de neuronas siguientes son de origen químico. Estas sustancias fluyen a través de contactos especiales llamados sinapsis. Las dendritas reciben las señales de las neuronas adyacentes y las transmiten al cuerpo en forma de un potencial eléctrico. Estas señales eléctricas son integradas por el cuerpo celular (soma). Si este potencial eléctrico es superior a un umbral, el soma genera un corto impulso eléctrico. Este impulso se transmite por el axón, que es una fibra nerviosa con una longitud que varía entre unos milímetros y varios metros. El axón se ramifica y dirige el impulso a varias neuronas vía sinapsis. 45 Hay dos tipos de sinapsis. El primero se llama sinapsis de excitación, cuyo efecto es incrementar el potencial en la neurona destino. El segundo es la sinapsis inhibitoria cuya misión es hacer decaer el potencial en la neurona de destino. En cada instante, alguna de ellas estarán activas y otras se hallarán en reposo; la suma de los efectos excitadores e inhibidores determina si la célula será o no estimulada; es decir, si se emitirá o no un tren de impulsos y a qué velocidad. Para establecer una similitud directa entre la actividad sináptica y la analogía con las redes neuronales artificiales, se pueden establecer los siguientes aspectos: Las señales que llegan a la sinapsis son las entradas a la neurona; éstas son ponderadas (atenuadas o amplificadas) a través de un parámetro, denominado peso, asociado a la sinapsis correspondiente. Estas señales de entrada pueden excitar a la neurona (sinapsis con peso positivo) o inhibirla (peso negativo). El efecto es la suma de las entradas ponderadas. Si la suma es igual o mayor que el umbral de la neurona, entonces la neurona se activa (da salida). Esta es una situación todo o nada; cada neurona se activa o no se activa. La facilidad de transmisión de señales se altera mediante la actividad del sistema nervioso. Esta habilidad de ajustar señales es un mecanismo de aprendizaje. Las funciones umbral integran la energía de las señales de entrada en el espacio y en el tiempo. 1.2.5 La Neurona Artificial Su trabajo es simple y único, y consiste en recibir las entradas de las células vecinas y calcular el valor de salida Yi el cual es enviado a las células restantes. Hay tres tipos de unidades: de entrada, de salida y ocultas. Las unidades de entrada reciben las señales desde el entorno, estas pueden ser provenientes de sensores o de otros sectores del sistema. Las unidades de salida envían la señal fuera de la red y las unidades ocultas son aquellas cuyas entradas y salidas se encuentran dentro del sistema, no tienen contacto con el exterior, el número de niveles ocultos puede estar entre cero y un número elevado; las neuronas de las capas ocultas pueden estar interconectadas de distintas maneras, lo que determina, junto con su número, las diferentes topologías de redes neuronales. Unidad U h Yh Unidad U i Yi Unidad U g F(aj(t),Netj) Netj =aj(t+1) Fj(aj(t+1))=yi yi Yg Figura 22. Entradas y salidas de una neurona Uj44 44 ________.________ 46 1.2.5.1 Elementos de una neurona artificial Cualquier modelo de red neuronal consta de dispositivos elementales de proceso: las neuronas. A partir de ellas, se pueden generar las presentaciones especificas, de tal forma que un estado conjunto de ellas pueda significar una letra, un número o cualquier otro objeto. La red de neuronas artificiales debe emular el siguiente funcionamiento de una neurona biológica: • Recibir estímulos externos, relacionados con el aparato sensorial, que tomara la información de entrada. • Dicha información se transmite a ciertos elementos internos que se ocupan de su procesado. Es en la sinapsis y neuronas correspondientes a este segundo nivel donde se genera cualquier tipo de representación interna de la información. Puesto que no tiene relación directa con la información de entrada ni con la salida, estos elementos se denominan unidades ocultas. • Una vez ha finalizado el período de procesado, la información llega a las unidades de salida, cuya misión es dar la respuesta del sistema. La neurona artificial pretende mimetizar las características más importantes de las neuronas biológicas. Cada neurona iésima está caracterizada en cualquier instante por un valor numérico denominado valor o estado de activación asociado a cada unidad. Existe una función de salida Fi que transforma el estado actual de activación en una señal de salida Yi, la cual es enviada a otras unidades por medio de la sinapsis. Cada entrada de una determinada unidad tiene un determinado peso denominado wji que da una entrada total Netij=ΣiYiWji. Una función de activación F, determina el nuevo estado de activación aj(t+1) de la neurona teniendo en cuenta la entrada total calculada y el anterior estado de activación aj(t). La dinámica que rige la actualización de los estados de las unidades puede ser de dos tipos: modo asíncrono y modo síncrono. En el modo asíncrono las neuronas evalúan su estado continuamente, según les va llegando la información, y lo hacen de forma independiente. En el caso síncrono, la información también llega de forma continua, pero los cambios se realizan simultáneamente. 1.2.5.2 Estructura de una red neuronal artificial45 Los componentes más importantes de una red neuronal son: • Unidades de procesamiento (la neurona artificial) • Estado de activación de cada neurona • Patrón de conectividad entre neuronas 45 ________.________ 47 • • • • Regla de propagación Función de trasferencia Regla de activación Regla de aprendizaje Centrados en las características de cada nodo de la red (microestructura), la red (mesoestructura) está organizada en función de: • Número de niveles o capas • Número de neuronas por nivel • Patrones de conexión • Flujo de información 1.2.5.3 Estado de Activación La neurona tiene un estado de activación en un tiempo t dado por: A(t)= (a1(t), a2(t), ....ai(t),......aN(t)) El procesamiento que realiza la red se ve como la evolución de un patrón de activación en el conjunto de unidades que lo componen a través del tiempo. 1.2.5.4 Función de Salida o de Transferencia Entre las unidades o neuronas que forman una red neuronal artificial existe un conjunto de conexiones que unen unas con otras. cada unidad transmite señales a aquellas que estén conectadas a su salida. Asociada a una unidad Ui hay una función de salida yi(t) que es función del estado de activación así: yi (t ) = f i (ai (t )) El vector que contiene las salidas de todas las neuronas en un instante t es: Y (t ) = ( f 1 (a1 (t )), f 2 (a2 (t )),..., f i (ai (t )),..., f N (a N (t ))) Existen cuatro tipo de funciones de transferencia:46 • • • • Función Escalón Función Lineal y mixta Sigmoidal Función Gaussiana 46 ________.________ 48 y 1 1 y 0 x x -1 Figura 23. Función de Transferencia Escalón y 1 1 y 0 x x -1 Figura 24. Funciones de activación mixta y 1 1 /2 y 0 x x -1 /2 f(x )= 1 /(1 + e x p (-a x )) Figura 25. Funciones de Activación Continuas (Sigmoides) 49 y x Figura 26. Función de Transferencia Gaussiana 1.2.5.5 Conexiones entre Neuronas Las conexiones que unen a las neuronas que forman un RNA (Redes Neuronales Artificiales) tienen asociado un peso, que es el que hace que la red adquiera conocimiento. Una neurona recibe un conjunto de señales que le dan información del estado de activación de todas las neuronas con las que se encuentra conectada. Cada conexión sinapsis entre la neurona i la neurona j está ponderada por un peso wji. Como simplificación se considera que el efecto de cada señal es aditivo, de tal forma que la entrada neta que recibe una neurona (potencial post - sináptico) netj es la suma del producto de cada señal individual por el valor de la sinapsis que conecta ambas neuronas. net j = ∑ w ji . yi i N Esta regla muestra el procedimiento a seguir para combinar los valores de entrada a una unidad con los pesos de las conexiones que llegan a esa unidad y es conocida como regla de propagación. 1.2.5.6 Función o Regla de Activación Así como es necesario que una regla combine las entradas a una neurona con los pesos de las conexiones, también se requiere una regla que combinen las entradas con el estado actual de la neurona para producir un nuevo estado de activación. Esta función F produce un nuevo estado de activación en una neurona a partir del estado ai que existía y la combinación de las entradas con el peso de las conexiones, el cual está dado por la función de activación F, la cual está dada así: ai(t+1)= F(ai(t),Neti) En la mayoría de los casos F es la función identidad por lo que el estado de activación de una neurona en t+1 coincidirá con el Net de la misma en t, de donde: yi(t+1)= ƒ(Neti) 50 y1 . . . yj . . . yN W i1 W ij W iN f yj Como normalmente la función no está centrada en el origen, sino que existe un desplazamiento debido a las características internas de la propia neurona entonces: yi(t+1)=ƒ(Neti-θi) y1 . . . yj . . . yN W i1 W ij W iN f,qi yj 1.2.6 Arquitecturas Una red neuronal artificial está formada por un conjunto de neuronas interconectadas entre ellas. El modo en que se inteconectan constituye la arquitectura de la red. 1.2.6.1 Tipos de redes más importantes A continuación se muestra una tabla resumen de los tipos de redes más conocidos, comentando esquemáticamente las aplicaciones más importantes de cada una, sus ventajas e inconvenientes y quién o quienes fueron sus creadores. Tabla 4. Características de los tipos de redes neuronales más importantes47 Nombre de la Red Avalancha Teoría Resonancia Adaptativa ART ADALINE/ 47 Aplicaciones Año Más Importantes 1967 Reconocimiento de Habla Continua Control Brazos de Robot 1986 Reconocimiento de patrones (radar, sonar). 1960 Filtrado de Inventada Comentarios Limitaciones Desarrollada por: Stephen Ninguna Red No es fácil Grossberg. alterar la Sencilla Puede hacer velocidad o interpolar el todo esto movimiento Sofisticada Sensible a la Gail Poco Translación, Canperter. Utilizada Distorsión y Stephen escala. Grossberg. Rápida, Sólo es Bernard HILERA, José y MARTÍNEZ, Víctor. Redes neuronales artificiales. Fundamento, modelos y aplicaciones. Páginas 30-32, 181-320. 1995 51 MADALINE Fácil de Implementar con circuitos analógicos o VLSI 1974 Síntesis de Voz Red más Popular -85 desde texto. Numerosas Control de Aplicaciones Robots. con éxito. Predicción. Reconocimiento Facilidad De Aprendizaje de Patrones. Potente. Señales, Ecualizador Adaptativo Modems 1985 Memoria Asociativa de acceso por contenido Posible Clasificar Espacios Linealmente Separados Aprendizaje y arquitectura simples Widrow. Back Propagation Paul Werbos. David Parker. David Rumelhart Memoria Asociativa Bidireccional Máquinas de Boltzman y Cauchy Aprendizaje Baja y arquitectura Capacidad simples. De Almacenam. Los datos deben ser codificados La máquina 1985 Reconocimiento Redes de Boltzman simples -86 de patrones Capacidad de necesita un (Imágenes, Representac. tiempo muy sonar y radar). largo de Óptima de Optimización. aprendizaje Patrones Bart Kosko Jeffrey Hinton, Terry Sejnowski. Harold Szu. James Anderson 1977 Extracción de Posiblemente Realización y potenciales conocimiento de Mejor aplicaciones Bases de datos Realización Que las redes no estudiadas totalmente de Hopfield. Semejante a Requiere Cerebellatron 1969 Control de Avalancha Complicadas movimiento de Entradas los brazos de control. de un robot Counter 1986 Compresión de Combinación Numerosas Propagation Imágenes de Perceptrón Neuronas y TPM y conexiones Capacidad Hopfield 1982 Reconstrucción Puede ser de patrones Implementad. Y Estabilidad y Optimización en VLSI. Fácil de Conceptual. Neocognitrón 1978 Reconocimiento Insensible a Requiere -84 de caracteres la Muchos manuscritos translación, Elementos BrainEstatein-aBox David Marr, James Albus, Andrés Pellionez Robert HechtNielsen John Hopfield K. Fukushima 52 rotación y escala 1957 Reconocimiento La red más de caracteres Antigua impresos Construida en H.W. 1980 Reconocimiento Realiza -84 de patrones, Mapas de codificación de Característic. datos, Comunes de optimización los datos aprendidos De Proceso No puede Reconocer Caracteres Complejos Requiere Mucho Entrenamient o Perceptrón Frank Rosenblatt SelfOrganizing Map SOM Topology Preserving Map (TMP) Teuvo Kohonen Existen cuatro aspectos que caracterizan una red neuronal: su topología, el mecanismo de aprendizaje, tipo de asociación realizada entre la información de entrada y de Salida y por último la forma de representación de estas informaciones. 1.2.6.2 Topología de las redes neuronales Consiste en la organización y disposición de la red formando capas o agrupaciones más o menos alejadas de la entrada y salida de la red. En este sentido, los parámetros fundamentales de la red son: el número de capaz, el número de neuronas por capa, el grado de conectividad y el tipo de conexiones entre neuronas. 1.2.6.2.1 Redes Monocapa En estas redes se establecen conexiones laterales entre las neuronas de la única capa que constituye la red. También puede existir conexiones autorrecurrentes (salida de una neurona conectada a su propia entrada). También se utiliza en las redes monocapa el modelo de crossbar (barras cruzadas), el cual consiste en una matriz de terminales o barras que se cruzan en unos puntos a los que se le asocia un peso. En la siguiente tabla se muestra la clasificación de redes monocapa más conocidas: Tabla 5. Redes neuronales monocapa48 Tipos de Conexiones CONEXIONES AUTORECURRENTES CONEXIONES LATERALES Modelo de Red BRAIN-STATE-IN-A BOX ADDITIVE GROSSBERG (AG) SHUTTING GROSSBERG (SG) OPTIMAL LINEAR ASOCIATIVE MEMORY HILERA, José y MARTÍNEZ, Víctor. aplicaciones. 1995. p. 71. 48 Redes neuronales artificiales. Fundamento, modelos y 53 EXPLÍCITAS NO AUTORECURRENTES HOPFIELD BOLTZMAN MACHINE CAUCHY MACHINE LEARNING MATRIX (LM) CROSSBAR 1.2.6.2.2 Redes Multicapa Las redes multicapa son aquellas que disponen de conjuntos de neuronas agrupadas en varios niveles. La forma de distinguir una neurona es como esta realiza su conexión. Normalmente, todas las neuronas de una capa reciben señales de entrada de otra capa anterior, más cercana a la red, y envían las señales de salida a una capa posterior, más cercana a la salida de la red. A estas conexiones se les denomina Conexiones hacia adelante o feedforward. 49 Sin embargo, en un gran número de estas redes existe también la posibilidad de conectar las salidas de las neuronas de capas posteriores a las entradas de capas anteriores, a estas conexiones se les denomina Conexiones hacia atrás o feedback. En la siguiente tabla se presente los diferentes tipos de redes multicapa según la conexión que utilizan. Tabla 6. Redes multicapa50 Tipo de Conexiones CONEXIONES FEEDFORWARD CONEXIONES LATERALES IMPLÍCITAS Y AUTORECURSIVAS Modelo de Red ADALINE/ MADALINE PERCEPTRON LINEAR/ASSOW/REWAR. PENALTY LINEAR ASSOCIATIVE MEMORY OPTIMAL LINEAR ASSOC MEMORY DRIVE-REINFORCEMENT (DR) LEARNING VECTOR QUANTIZER TOPOLOGY PRESERVING MAP (TMP) 49 ________.________ p. 101-180. ________.________ p. 74. 50 54 BIDIRECTIONAL ASSOCIAT. MEMORY (BAM) CONEXIONES SIN CONEXIONES ADAPTIVE BAM ADELANTE/ LATERALES ATRÁS TEMPORAL ASSOCIATIVE MEMORY FUZZY ASSOCIATIVE MEMORY (FAM) CON CONEXIONES COMPETITIVE ADAPTIVE LATERALES Y BAM AUTORRECURSIVAS ADAPTIVE RESONANCE THEORY (ART) ADAPTE HEURISTIC CONEXIONES SIN CONEXIONES CRITIC (AHC) HACIA LATERALES BOLTZMAN/CAUCHY ADELANTE MACHINES CON CONEXIONES COUNTER PROPAGATION LATERALES BOLTZMAN/CAUCHY MACHINES CONEXIONES ADELANTE ATRÁS Y BOLTZMAN/CAUCHY LATERALES MACHINES CONEXIONES HACIA ADELANTE BACK PROPAGATION (BPN) FEED FORWARD-FEEDBACK COGNITRON/ JERARQUÍA DE NIVELES DE CAPAS NEOCOGNITRÓN BIDIMENSIONALES 1.2.6.3 Perceptrón Este fue el primer modelo de red neuronal artificial desarrollado por Rosenblatt en 1958. El perceptrón puede ser considerado como una aproximación circuital a un neurón, célula básica del sistema nervioso. La propiedad más relevante de un perceptrón es que . X T W f a=f(WXt -T) a 55 Figura 27. Esquema de una neurona y el modelo simbólico del perceptrón51 La única neurona de salida del perceptrón realiza la suma ponderada de las entradas, resta el umbral y pasa el resultado a una función de transferencia de tipo escalón. Retropropagación es un procedimiento mediante el cual el Perceptrón de varias capas, a semejanza del perceptrón simple, aprende a asociar pares de informaciones de estímulo y respuesta. 52 Capa de entradas Capa de salidas Figura 28. Arquitectura del perceptrón, red feedforward, con una sola capa 1.2.6.3.2 Perceptrón multinivel53 Es una red de tipo feedforward compuesta de varias capas de neuronas entre la entrada y la salida de la misma. Esta red permite establecer regiones de decisión mucho más complejas que las de dos semiplanos, como en el perceptrón de un solo nivel. Capa de entradas Capa oculta Capa de salidas MORAGA, Claudio. Redes neuronales y lógica difusa. Aplicaciones de la lógica borrosa. Madrid: Consejo superior de Investigaciones científicas, 1992. 152p. 52 51 ________.________ 152p. Redes neuronales artificiales. Fundamento, modelos y HILERA, José y MARTÍNEZ, Víctor. aplicaciones. 1995. p. 113-116. 53 56 Figura 29. El perceptrón multicapa, red feedforward completamente conexa con una capa oculta Tabla 7. Perceptrón Multicapa Estructura Regiones de decisión MEDIO PLANO LIMITADO POR UN HIPERPLANO REGIONES CERRADAS O CONVEXAS ARBITRARIA COMPLEJIDA D LIMITADA POR EL NÚMERO DE NEURONAS Problemas de la XOR A B Clases con regiones mezcladas Formas de regiones más generales 2 CAPAS B A B A 3 CAPAS A B B A B A 4 CAPAS A B B A B A 1.2.6.4 Implemetación de las redes neuronales Hay varias posibilidades para implementar redes neuronales algunas de ellas son: • Por medio de un neurocomputador que es un conjunto de procesadores conectados con cierta regularidad que operan concurrentemente. Entre ellos se tiene Mark III y IV, el ANZA y ANZA Plus o el Delta-Sigma. • La realización más simple e inmediata consiste en simular la red sobre un ordenador convencional mediante un software específico. Es un procedimiento rápido, pero costoso e insustituible por el momento para realizar el entrenamiento y evaluación de las redes, pero cuya mayor desventaja es que se intenta simular redes que trabajan en paralelo con máquinas que ejecutan secuencialmente las operaciones. • Otra forma de realizar redes neuronales es a través de arquitecturas orientadas a la ejecución de procesos con un alto grado de paralelismo, tales como redes de transputers, arquitecturas sistólicas, etc. El objetivo de tales redes es acelerar la simulación de la red neuronal, permitiendo en lo posible, una respuesta en tiempo real. • También se pueden realizar redes neuronales mediante su implementación por uno o varios circuitos integrados específicos. Estos son llamados chips neuronales. Las neuronas y las conexiones se emulan con dispositivos 57 específicos, de forma que la estructura del circuito integrado refleja la arquitectura de la red. Se consigue de esta forma realizaciones que funcionan a alta velocidad, permitiendo en muchas ocasiones el proceso en tiempo real pero a costa de una pérdida notable de flexibilidad obteniendo una estructura que se comporte lo más similar posible a como lo haría una red neuronal. Como diferencia con los neurocomputadores, se puede resaltar el menor número de neuronas de los chips neuronales, consecuencia del hecho de que dentro del propio chip se incluyen todas las interconexiones lo cual aumenta su velocidad varios órdenes de magnitud respecto a los neurocomputadores. Aunque la tecnología microelectrónica parece ser la más adecuada para la realización de redes neuronales, existen varios problemas sin resolver, como es la dificultad de obtener el alto grado de interconexionado, o el problema de la entrada/salida masiva de datos, condicionada por el número de pines, o el poder conseguir sinapsis con peso variables, necesarias si se quiere que la red tenga una verdadera capacidad de aprendizaje. El primer problema que supone la solución microelectrónica corresponde a la elección de los siguientes aspectos: • Implementación analógica o digital: es necesario hacer consideraciones sobre los aspectos relacionados con la precisión, velocidad, consumo, inmunidad al ruido, memoria, capacidad de aprendizaje, etc. • Arquitectura en matriz de neuronas o de sinapsis: En la matriz de neuronas, cada nodo o neurona está localmente conectado a sus vecinos. El tipo de red y algoritmo definen la necesidad de interconexión la cual esta limitada por la capacidad de integración del silicio. En una matriz de sinapsis se da una organización tipo PLA (Programable Logic Array), con una serie de líneas horizontales correspondientes a los equipotenciales de entrada y una serie de líneas verticales que corresponden a las líneas de suma de neuronas. Cada sinapsis es una multiplicación. Otra tecnología que podría ser apropiada en la implemetación de las redes neuronales es la tecnología electroóptica, con la ventaja de utilizar la luz como medio de transporte de la información, permitiendo la transmisión masiva de datos. 1.2.7 Aprendizaje Redes Neuronales Artificiales54 1.2.7.1 Reglas de aprendizaje Aprendizaje se puede definir como la modificación del comportamiento inducido por la interacción con el entorno y como resultado de experiencias conducente al establecimiento de nuevos modelos de respuesta a estímulos externos. 54 ________.________ p. 35-42. 58 En el caso de las redes neuronales artificiales, se puede considerar que el conocimiento se encuentra representado en los pesos de las conexiones entre neuronas. La característica más interesante de las redes neuronales artificiales es su capacidad de aprendizaje. Las reglas de aprendizaje especifican cómo adaptar los pesos sinápticos. Esta adaptación se realiza mediante una interacción continua entre la red neuronal y el entorno. 1.2.7.2 Mecanismo de Aprendizaje El aprendizaje es el proceso por el cual una neurona modifica sus pesos en respuesta a una información de entrada. Los cambios que se producen durante el proceso de aprendizaje se reducen a la destrucción, modificación y creación de conexiones entre las neuronas. En las redes neuronales hay dos tipos de aprendizajes: • Redes Neuronales con aprendizaje supervisado • Redes Neuronales con aprendizaje No supervisado La diferencia fundamental entre ambos tipos esta en la existencia o no de un agente externo (supervisor) que controle el proceso de aprendizaje de la red. Otro criterio utilizado para diferenciar las reglas de aprendizaje se basa en considerar si la red puede aprender durante su funcionamiento habitual (ON LINE) o si el aprendizaje supone la desconexión de la red (OFF LINE). 1.2.7.3 Redes Neuronales con aprendizaje supervisado El aprendizaje supervisado se caracteriza porque el proceso de aprendizaje se realiza mediante un entrenamiento controlado por una gente o revisor externo que determina la respuesta que debería generar a partir de una entrada determinada. Hay tres tipos de aprendizajes supervisados: • Aprendizaje por corrección de error • Aprendizaje por esfuerzo • Aprendizaje estocástico En la siguiente tabla se presenta las redes que tienen este tipo de aprendizaje.55 Tabla 8. Tipos de redes con aprendizaje supervisado TIPO DE APRENDIZAJE SUPERVISADO MODELO DE RED ADALINE/ MADALINE 55 ________.________ p. 77-82. 59 APRENDIZAJE POR CORRECCIÓN DE ERROR OFF LINE PERCEPTRON BACKPROPAGATION BRAIN-STATE-IN-A-BOX COUNTER PROPAGATION LINEAR REWARD PENALTY ASSOCIATIVE REW. PENALTY ADAPTIVE HEURIST. CRITIC BOLTZMAN MACHINES CAUCHY MACHINES APRENDIZAJE POR REFUERZO APRENDIZAJE ESTOCÁSTICO ON LINE OFF LINE 1.2.7.4 Redes con aprendizaje no supervisado Estas redes no requieren influencia externa para su aprendizaje, la red no recibe ninguna información del entorno para modificar sus pesos, y se puede decir que se pueden autoorganizar. Estas redes deben encontrar las características, regularidades, correlaciones o categorías que se puedan establecer entre los datos que se presenten en su entrada. En cuanto a los algoritmos de aprendizaje no supervisado se tienen dos tipos: • Aprendizaje hebbiano: pretende medir la familiaridad o extraer características de los datos de entrada. • Aprendizaje Competitivo y Cooperativo: se orienta hacia la clasificación de los datos. En la siguiente tabla se muestran las redes que tienen este aprendizaje y que utilizan alguno de estos dos algoritmos. Tabla 9. Redes con aprendizaje no supervisado56 TIPO DE APRENDIZAJE NO SUPERVISADO MODELO DE RED HOPFIELD LEARNING MATRIX TEMPORAL ASSOC. MEMORY LINEAR ASSOC. MEMORY LAM OPTIMAL LAM DRIVE-REFORCEMENT FUZZY ASSOCIATIVE MEMORY ADDITIVE GROSSBERG SHUTTING GROSSBERG BIDIRECTIONAL ASSOC. MEMORY ADAPTIVE BAM LEARNING VECTOR QUANTIZER COGNITRON/NEOCOGNITRÓN APRENDIZAJE HEBBIANO OFF LINE ON LINE APRENDIZAJE 56 OFF LINE ________.________ p. 84-100. 60 COMPETITIVO/ COOPERATIVO TOPOLOGY PRESERVING MAP ADAPTIVE RESONANCE THEORY ON LINE 1.2.8 Aplicabilidad de las Redes Neuronales Artificial RNA57 Algunas de las características que hacen deseables el empleo de RNA en la solución de un problema son: • • • • • Inexistencia de un modelo o un de un experto en el dominio del problema, o que en el caso de que exista el experto, éste no pueda transmitir adecuadamente su conocimiento para la realización de un Sistema Experto. Gran cantidad de datos, además cuando los datos son ruidosos, contradictorios o incompletos. Necesidad de adaptación al medio, bien porque el entorno evolucione o bien porque se disponga de nuevos datos que puedan requerir reconfiguraciones parciales o totales del sistema. Cuando el parámetro de tiempo de respuesta es crítico para el sistema. Evidencia de no lineadidad significativa. 1.2.8.1 Redes Neuronales Artificiales en Problemas de Predicción La predicción es un intento permanente de anticipación de un futuro incierto y forma parte de un proceso complejo de toma de decisiones. Las técnicas de predicción clasificadas según el tipo de información que utiliza es: • Información Subjetiva. La predicción toma como base propia opinión del experto sobre el futuro de la cuestión en estudio. • Información Histórica. Utiliza la propia evolución del fenómeno objeto del estudio en período anteriores (series temporales). • Información Relacional o Causal. Toma como base las reglas internas de funcionamiento del tema cuyo comportamiento se trata de predecir. 1.2.8.2 Modelo de red58 El modelo de red que se utilizará será del tipo multicapa alimentado hacia delante y con células analógicas que contienen funciones de activación sigmoidal. Cada capa recibirá señales de la capa inmediatamente siguiente. Como se ve en la siguiente figura. 57 ZAFRA, José Luis y CARPINTERO, Antonio. Algunas aplicaciones de las redes neuronales. Consejo superior de investigaciones científicas. 1992. p. 246. RÍOS CARRIÓN, Juan. Redes de Neuronas Artificiales en problemas de predicción. Consejo superior de investigaciones científicas. 1992. p.5. 58 61 Entradas Capas intermedias Capa de salidas Figura 30. Red Neuronal Multicapa Las C capas de células serán distinguidas por un índice c=1,2,...,C. El valor c=0 se reservará para designar el conjunto de entradas de la red. Dentro de cada capa tenemos nc células reales, que se designan mediante un índice que tomará valores de 1 a nc. Además se usaran las siguientes notaciones: • Sip(c): Salida de la i-ésima célula de la capa c-ésima cuando se presenta el patrón de entrada p. Para c=0 representa la i-ésima componente del patrón de entrada p. • Oip(c): Es otra notación para Sip(c). • netip(c): Entrada neta de la i-ésima célula de la capa c. • wij(c): Peso de la sinapsis entre la célula i-ésima de la capa c-1 y la i-ésima de la capa c. Sólo esta definido para 1≤c≤C y 1≤i≤nc. • tip: Salida deseada de la i-ésima célula de la capa de salida al presentarse el patrón p de entrada. El índice p representa el patrón de entrada, y sí el conjunto de posibles patrones es discreto, p tomará valores enteros entre 1 y P, donde P representa el número total de posibles patrones. En tal caso, los elementos definidos anteriormente pueden interpretarse como elementos de matrices. En otros casos el conjunto de patrones será continuo, y p será entonces un parámetro que varía continuamente. • Modelo analógico con función de activación sigmoidal ordinaria La función de activación será la sigmoide 1 F( X ) = 1 + e− X y el conjunto de valores de activación será el intervalo será el intervalo abierto (0,1). • Modelo analógico con función de activación sigmoidal simétrica su función de activación es la tangente hiperbólica e X − e− X th( X ) = x e + e− X y su conjunto de valores de activación es el intervalo abierto (-1, +1). Una vez definido el modelo, su modo de funcionamiento se definirá así: por cada patrón “p” de entrada que se presente, los siguientes cómputos son realizados por las células de cada capa c de la red: 62 ( netipc ) = ∑ j =1...nc−1 c Wij S (jp −1) ( ( Sipc ) = F (netipc ) ) Los cómputos se inician en la primera capa de células, y se propagan hacia delante a través de las sucesivas capas c=1,2,...C. 1.2.8.3 Método iterativo para el ajuste de la red El ajuste de una red neuronal consiste en la determinación de los valores de sus pesos sinápticos que mejor aproximan las salidas reales de la red a las salidas deseadas para cada patrón de entrada. El modo de realizar dicha determinación consiste en someter a la red a un entrenamiento, durante el cual se le presentan los distintos patrones de entrada, se comparan las salidas proporcionadas por la red con las deseadas, y se modifican los pesos sinápticos de acuerdo con algún algoritmo que asegure una progresiva aproximación entre las respuestas de la red y las que se desean. El proceso de entrenamiento desde un punto de vista matemático se puede asimilar a un problema de optimización. Primero, hay que definir una función “distancia” entre las salidas reales de la red y las deseadas. Una forma de realizarlo consiste en considerar las salidas como las componentes de un vector, y usar la distancia euclídea. Si la red tiene n células de salida, y para el patrón p genera las salidas sp=(s1p,s2p,...snp), siendo tp=(t1p,t2p,...tnp) las salidas deseadas, entonces la siguiente función (llamada “función de error”) sirve como medida de la diferencia entre unas y otras: E p = 1 / 2∑ (tip − sip ) 2 i =1 n De hecho la distancia euclídea entre sp y tp es √(2Ep) El problema puede plantearse como minimización de Ep, o más minimización del promedio de Ep sobre todos los patrones p. Las salidas obtenidas Sip dependen de los pesos sinápticos de la red, y por tanto Ep puede considerarse como una función de dichos pesos. El método de optimización se dice de orden p cuando el algoritmo de optimización posee determinadas propiedades de convergencia. Inicialmente se puede considerar de orden p aquellos algoritmos en los que intervienen las derivadas parciales de la función objetivo hasta el orden p. Los métodos iterativos deterministas para optimizar una función f:Rn→R se basan fundamentalmente en algoritmos de la siguiente forma: • • Elegir un punto xo∈R. Dado xk seleccionar una dirección de búsqueda dk. 63 • • • Seleccionar un número real positivo adecuado ak. (Generalmente para minimizar f(xk+ ak dk) Calcular xk+1= xk+ ak dk. Sustituir xk por xk+1 y regresar al paso 2. Los métodos deterministas de primer orden para la optimización de funciones hacen uso de las derivadas parciales de la función objetivo hasta el primer orden para la determinación de la dirección de búsqueda. Uno de los más conocidos es el denominado “método de descenso de gradiente” ( o de “ascenso”, si se trata de un problema de maximización). Se basa en el uso del gradiente (cambiando de signo) de la función objetivo como dirección de búsqueda, y su fundamento es: Sea f(x) la función a minimizar, donde x=(x1, x2,..., xn). Su desarrollo en serie de Taylor hasta el primer orden es: f(x+h)= f(x)+∇f(x)h=f(x1, x2,..., xn)+Σi=1nhi∂/∂xi f(x1, x2,..., xn) donde h=f(h1, h2,..., hn) y ∇f(x) = gradiente de f(x), es decir, un vector cuyas componentes son ∂f(x1, x2,..., xn)/∂xi Si se toma h=-h∇f(x), donde h es una constante positiva lo bastante pequeña como para justificar la aproximación utilizada, se obtiene f(x-h∇f(x))= f(x)-h(∇f(x))2 lo que lleva a que el valor de la función f(x) tiende a descender al pasar de x a (x)h∇f(x). Este resultado sirve como fundamento del siguiente algoritmo: tómese un punto arbitrario de partida xo y aplíquese reiteradamente la siguiente fórmula: ∆xk=-h∇f(xk) xk+1=xk+∆xk donde h es un pequeño parámetro positivo fijo. Esto proporciona una sucesión {xk} de puntos para los que es de esperar que los valores de la función f(xk) vayan descendiendo progresivamente. Este algoritmo tiene varios inconvenientes: • • No hay criterio “a priori” para la elección del punto de partida xo y del parámetro h. Sin embargo la elección de dichos parámetros puede ser fundamental para el éxito del método. Puede conducir a un punto de mínimo relativo (donde ∇ f(x)=0) que no sea mínimo absoluto. 64 A pesar de los inconvenientes mencionados anteriormente, el método de descenso de gradiente ha dado origen a uno de los métodos más empleados para el ajuste iterativo de redes neuronales: el método de retropropagación. 1.2.8.4 Algoritmo59 Dada una función de error: E p = 1 / 2∑ (tip − sip ) 2 i =1 n la aplicación del método de descenso de gradiente conduce a la siguiente fórmula de actualización de pesos: ∆ p wij = − h(∂E p / ∂wij ) El problema ahora es el cálculo de ∂Ep/∂wij. Si wij es el peso sináptico de una neurona de salida, el cálculo de la derivada parcial no presenta dificultad: ∂E p ∂wij = − (tip − sip )(∂sip ∂wij ) = − (tip − sip ) s jp F ' (neti ) donde neti=Σjwijsjp. La derivada de la función de activación admite una forma simple en el caso de que sea una sigmoide: F ( x ) = 1 (1 + e − x ) ⇒ F ' ( x) = F ( x)(1 − F ( x)) o la tangente hiperbólica: F ( x ) = th( x ) ⇒ F ' ( x ) = 1 − ( F ( x)) 2 Para neuronas situadas en capas anteriores, el cálculo de ∂Ep/∂wij es más difícil, pero puede simplificarse poniendo: δ ip = −∂E p ∂netip Aplicando la regla de la cadena, tenemos: −∂E p ∂wij = − (∂E p ∂netip )(∂netip ∂wij ) = δ ip sip Basta, por tanto, calcular δip para todas las células de la red. desarrollando una fórmula recursiva. En general se tiene: Esto se logra δ ip = − (∂E p ∂sip )(∂sip ∂netip ) ∂sip ∂netip = F ' (neti ) Para las neuronas de salida se verifica: ∂E p ∂sip = − (tip − sip ) luego si la i-ésima célula es de salida. δ ip = (tip − sip ) F ' (neti ) 59 ________.________ p.10. 65 Para las células de capas posteriores se tiene: ∂E p ∂sip = ∑ (∂E p ∂net kp )(∂net kp ∂sip ) = ∑ δ kp wki k k donde k recorre las células con las que se halla conectada la i-ésima neurona. Entonces se obtiene la siguiente fórmula recursiva: δ ip = F ' (neti )∑ δ kp wki k De este modo los cálculos pueden disponerse así: • Alimentación hacia adelante. Comenzando con las entradas de la red y progresando hacia delante, calcular las salidas: netip = ∑ wij s jp j sip = F (netip ) • • Calcular δip para la capa de salida: δ ip = (tip − sip ) F ' (netip ) Calcular δip para las capas anteriores a la salida mediante la siguiente fórmula recursiva (“retropropagación”): δ ip = F ' (netip )∑ δ kp wki k donde el índice k recorre todas las células a las que se halla conectada la i-ésima neurona. • Calcular los incrementos de los pesos: ∆ p wij = µδi jp wip En el modelo de red mostrado, cada neurona se conecta únicamente a células de la capa siguiente, lo cual permite expresar el algoritmo haciendo referencia explícita a las capas de células. Se usa el índice c=0,1,2,...C para ello. Con las notaciones utilizadas, el algoritmo de retropropagación sería así: • Para c=1 hasta C, hacer lo siguiente: ( ( c netipc ) = ∑ wijc ) s(jp −1) j s ( c) ip ( = F (netipc ) ) • • • ( ( ( Calcular δ ipc ) = (tip − sipc ) ) F ' (netipc ) ) Para c=C-1 descendiendo hasta 1, se hace lo siguiente: ( ( ( c δ ipc ) = F ' (netipc ) ) ∑ δ (kp+1) wkic+1) k Calcular ∆ p wij = µδ ip s jp Una vez calculados los incrementos de pesos ∆pwij, caben dos posibilidades: 66 • Actualización “incremental” de pesos. Los pesos se actualizan inmediatamente tras la presentación de cada patrón: wij (nuevo) = wij (antiguo) + ∆ p wij Actualización de pesos “en lote” (batch): los incrementos se acumulan para todos los posibles patrones: wij (nuevo) = wij ( antiguo) + ∑ ∆ p wij p • 1.3 RED HÍBRIDA NEURO-FUZZY (RHND) Esta nueva herramienta es una combinación entre redes neuronales artificiales y controladores fuzzy, minimizando de esta forma los problemas en las aplicaciones de control inteligente. El uso de técnicas híbridas resaltan las ventajas y soslayen las desventajas de las técnicas individuales. Toman su topología de las Redes Neuronales Artificiales típicas (RNA) preservando los nodos que desarrollan una función simple (sigmoide, logística o lineal), pero intercalan capas de nodos con funciones internas más complejas (funciones de pertenencia, implicación y concreción en subconjuntos difusos). Las redes neuronales artificiales (RNA) son conocidas por la gran habilidad para aprender las características de un grupo de patrones de entrada - salida, y la cantidad de generalización que entregan cuando se les enfrenta a datos no presentados durante las etapas de entrenamiento. La importancia de la fuzzy logic es la facilidad de expresar los factores complejos de un sistema de control por descripciones lingüísticas autoexplicatorias de la estrategia de control permitiendo representar importantes piezas de razonamiento común y calcular su factor de certeza. El siguiente esquema muestra la estructura general de un sistema Neuro-Fuzzy. Agente Traductor Diligente 67 Figura 31. Estructura general de un sistema Neuro-Fuzzy. 60 El módulo llamado agente puede ser un Controlador fuzzy o un Sistema Experto (controlador computacional) con fuzzy logic, el módulo diligente contiene una red neuronal, que continuamente está observando las entradas y salidas del agente y en determinados casos aprende las situaciones nuevas. El módulo transductor tiene como tarea extraer de la arquitectura resultante de la red neuronal la información aprendida y expresarla en reglas utilizando predicados vagos para ser incorporada a un Controlador. 1.3.1 Justificación de la fuzzy logic y las redes neuronales61 Aunque la tarea de control que cumple un ser humano se realiza de manera adecuada, esta depende del grado de especialización que alcanzan los operadores, su estado de animo y de los distintos operarios. Por tanto se hace necesario proveer controles automáticos adecuados, debido a la complejidad de algunos procesos se tiene una incipiente automatización y gran carga de mando manual. Estas limitaciones se deben: alta dimensionalidad del proceso, variación con el tiempo de las características del sistema, no linealidad en el comportamiento del proceso, modelamiento pobre de la dinámica del proceso y problemas de medición bajo incertidumbre. Es aquí, donde se requiere un control que goce de características inteligentes, con el cual sea posible controlar estos procesos en un grado mucho mayor que el actual y con las mismas o mejores prestaciones con las que lo hace el operador humano. El control inteligente se puede definir como aquel mecanismo que es capaz de razonar, comprender y aprender de la tarea de control que realiza, mejorando permanentemente su desempeño. Para lograr un control inteligente es necesario utilizar nuevas técnicas que faciliten manejar los procesos, entre estas tecnologías se tiene la fuzzy logic y las Redes Neuronales. Una neurona fuzzy puede modelarse como una unidad de procesamiento que recibe unas señales de entrada a través de unas sinapsis fuzzy, la entrada es el producto de la salida de la neurona anterior por el peso fuzzy de la conexión. La entrada neta de la neurona no se obtiene como la suma aritmética de las entradas, sino como la suma fuzzy de las mismas. MORAGA, Claudio. Redes neuronales y lógica difusa. Aplicaciones de la lógica borrosa. Madrid: Consejo superior de Investigaciones científicas, 1992. 159p. HILERA, José y MARTÍNEZ, Víctor. aplicaciones. 1995. p.300. 61 60 Redes neuronales artificiales. Fundamento, modelos y 68 1 . . . j . . . N S1 1 . . . i . . . M Sj SN Capa C-1 Capa C Figura 32. Red con neuronas fuzzy 1.3.2 Comparación entre las características de las redes neuronales y la fuzzy logic62 • • • • • • Las redes neuronales se caracterizan por su capacidad de procesamiento paralelo de información, mientras que el procesamiento de un programa de ‘fuzzy logic” depende de la arquitectura del ordenador si se realiza en software, cuando es realizado en hardware esta limitado por la capacidad del procesador fuzzy (entradas, salidas y funciones de membresía). Una red neuronal (un perceptrón de varias capas) fundamentalmente asocia pares de vectores de información (vectores de entrada o estímulos y vectores de salida). El procesamiento de un sistema fuzzy es a nivel de la inferencia lógica. Tanto una red neuronal como el sistema de fuzzy logic exhiben una capacidad de interpolación en el sentido de procesar adecuadamente elementos nuevos de información. Las redes neuronales tienen capacidad de aprendizaje supervisado, sobre la base de ejemplos. Un sistema de fuzzy logic se distingue por su capacidad de realizar inferencia, utilizando la extensión fuzzy del modus ponens. En las redes neuronales se desarrolla un conocimiento a posteriori a través del proceso de aprendizaje, que se materializa en el ajuste de las ponderaciones de los perceptrones elementales. La fuzzy logic opera sobre la base de reglas de diferencia que presuponen un conocimiento a priori sobre el universo de discurso. Un perceptrón de varias capas es un clasificador nítido; en cambio un sistema de fuzzy logic considerado como clasificador es, obviamente, un clasificador fuzzy. La operación elemental de un perceptrón es una evaluación de selección sobre el producto escalar de un vector de información con un vector de ponderaciones (ajustables) comparado con un vector (umbral) de referencia. Las operaciones en un proceso de inferencias son los conectivos lógicos fuzzy, en particular las llamadas normas y conormas triangulares. MORAGA, Claudio. Redes neuronales y lógica difusa. Aplicaciones de la lógica borrosa. Madrid: Consejo superior de Investigaciones científicas, 1992. 152p. 62 69 • • El procesamiento de información en una red neuronal es fundamentalmente no lineal debido a que las funciones de selección son sigmoides o escalonadas. El procesamiento de un sistema fuzzy logic puede considerarse como adaptivo, en el sentido de que permite utilizar el grado de precisión requerido por la aplicación concreta y cambiarlo de una aplicación a otra con relativa facilidad. Mediante la utilización de perceptrones elementales redundantes es posible construir redes neuronales tolerantes a fallas. Esto puede ser considerado como una tolerancia estructural. Un sistema de fuzzy logic puede operar sobre la base de Etiquetas lingüísticas, lo cual hace que estos sistemas sean inherentemente robustos. Tabla 10. Ventajas y desventajas de las Redes Neuronales y la Fuzzy Logic63 Representación del conocimiento Entrenabilidad Redes Neuronales Implícita, el sistema no puede ser fácilmente interpretado o modificado (-) Se entrenan ellas mismas a partir del conjunto de datos (+++) Fuzzy Logic Explícito, la verificación y optimización son fáciles y eficientes (+++) Ninguna, se puede definir explícitamente (-) 1.3.3 Ventajas y desventajas del uso de RHND para controles fuzzy Entre los aspectos que hacen atractivo el uso de Redes Híbridas Neurofuzzy (RHND) con respecto a un Sistema Experto (SE) para la implantación de controles fuzzy pueden destacarse: • Capacidad de aprendizaje sin que se pierda significado de las reglas originales o se presenten distorsiones severas en la implantación del sistema después del entrenamiento • Disponibilidad de algoritmos de entrenamiento supervisado, ampliamente probados en RNA (Redes Neuronales Artificiales), de los que pueden usarse con muy pocas modificaciones en las RHND • Menor tiempo de inferencia frente a las implantaciones con programas de Sistema Experto (SE), además se procesa en forma paralela, porque se evita las arduas búsquedas en árboles de decisión • La facilidad de programación de un RHND frente a la complejidad inherente de los programas de SE. La principal desventaja es su capacidad limitada de explicación cuando se compara con la que tienen los programas de SE. 1.3.4 Pasos de desarrollo de sistemas NeuroFuzzy64 70 • • • • • • Obtención de los datos de entrenamiento. Para esto se obtienen los conjuntos de datos que representan el comportamiento deseado del sistema. Cada conjunto de datos da un valor de salida de ejemplo para una combinación de variables de entrada. Creación del sistema fuzzy logic. El proceso de entrenamiento NeuroFuzzy comienza con un sistema fuzzy logic inicial que puede ser definido por el usuario o por un asistente de diseño fuzzy. Cualquier pieza de información que se puede incluir en el sistema inicial a parte de la experiencia el algoritmo NeuroFuzzy podría no extraerla de los datos de entrenamiento. Este es un hecho muy importante, debido a que la mala calidad de los datos es la razón que hace que falle con mayor frecuencia el entrenamiento de la red neuronal. La fuzzy logic permite la utilización de información de múltiples fuentes como son la experiencia de los usuarios y los datos de muestra. Definición del aprendizaje Neuro-Fuzzy. Se seleccionan las partes del sistema que el módulo Neuro-Fuzzy puede modificar, esto es una ventaja sobre el aprendizaje en la red neuronal en la cual el sistema completo es siempre entrenado para tener un mejor control del proceso de aprendizaje. Especialmente cuando se utiliza el Neuro-Fuzzy para optimizar un sistema fuzzy logic, se pueden excluir partes del sistema de aprendizaje. Si se han definido reglas por experiencia como parte del sistema fuzzy logic inicial estas pueden ser utilizadas para el aprendizaje. Esto es muy útil si no se esta completamente seguro de que reglas o funciones de membresía de las definidas son correctas. Selección del método de aprendizaje. El método de aprendizaje define como los errores entre los resultados computados por el sistema fuzzy logic actual y los valores de salida deseados causaran una modificación de las reglas y las funciones de membresía. Para optimizar el desempeño se puede parametrizar el método de aprendizaje. Dos parámetros son los más importantes. Uno es la rata de aprendizaje para reglas y el otro la rata de aprendizaje para funciones de membresía. Estos parámetros definen cual fuertemente el algoritmo Neuro-Fuzzy modifica una regla o una función de membresía en cada paso de aprendizaje. Fase de entrenamiento. Aplicando lo anterior se seleccionan y modifican las reglas y funciones de membresía hasta minimizar el error según el criterio utilizado. Optimización y verificación. Por medio de analizadores lógicos, herramientas de desarrollo de software y hardware y pruebas in situ se verifica la correcta operación del sistema y generalmente por métodos numéricos se realizan diferentes tipos de optimización. Una ventaja de la Neuro-Fuzzy respecto a la solución por medio de redes neuronales es que el código generado es mucho más eficiente. 1.3.5 Entrenamiento de sistemas Fuzzy Logic con NeuroFuzzy El algoritmo del “error back propagation” fue el más utilizado para la implementación del entrenamiento de las Redes Neuronales. Primero, se selecciona una muestra del 63 64 VON ALTROCK, Constantin. Fuzzy Logic & NeuroFuzzy. New Jersey: Prentice Hall. 1995. p. 69. ________.________ p. 71 71 conjunto de datos de entrenamiento. Segundo, se calcula el valor de la salida de la red neuronal para el conjunto de muestras de entrenamiento actual. Tercero, se compara la salida de la red con la salida deseada de la muestra de entrenamiento. Por ultimo, la diferencia, llamada error determina cual neurona de la red puede o debe ser modificada y como. La asignación matemática del error inverso en las neuronas de la red es llamado “back propagation” del error. Para determinar cual neurona fue la que influenció el algoritmo del “back propagation” del error, se diferencia matemáticamente las funciones de transferencia de las neuronas. Un problema es que la inferencia del fuzzy logic estándar no puede ser diferenciada porque esta utiliza operaciones matemáticas como son mínimo y máximo. Para resolver estos problemas algunas herramientas de desarrollo NeuroFuzzy utilizan métodos de inferencia extendidos para fuzzy logic. La metodología más común es utilizar memorias fuzzy asociativas FAMs (Fuzzy Asociative Memory). En una implementación simple una FAM es una regla fuzzy logic con un peso asociado. Matemáticamente se puede asignar FAMs a neuronas en una red neuronal. Esto permite la utilización de un algoritmo de back propagation con error modificado en fuzzy logic. Figura 33. Tecnología Neurofuzzy 1.3.5.1 Generación neuronal de reglas de control fuzzy 72 Las redes neuronales con aprendizaje competitivo sin supervisión permiten establecer clases o categorías de datos (clusterización). Con lo cual se puede modificar las redes para establecer las reglas que gobiernan el funcionamiento de un sistema de control fuzzy. Para esto es necesario disponer de un gran número de datos, a partir de los cuales la red pueda establecer las relaciones y categorías, que en este caso son las reglas de control. Cuando la red aprende todas las parejas, han establecido a qué clase (regla) pertenece cada una, registrando en sus pesos los centroides o representantes de cada clase. 1.3.5.2 Ajuste neuronal de funciones de pertenencia fuzzy Una posible utilización de las redes neuronales en sistemas fuzzy es el ajuste o afinado de las funciones de pertenencia. Para lo cual, se podría caracterizar estas funciones mediante parámetros y utilizar una red sin supervisión, que permita obtener un representante de la función de pertenencia a través de diferentes ejemplares de la misma ofrecidos por varios especialistas diferentes, ajustando una función de pertenencia cuya forma es conocida; sin embargo, se puede utilizar una red neuronal con aprendizaje supervisado, para que la propia red establezca la forma de dicha función. Se podría utilizar una red backpropagation con tantas neuronas de entrada como entradas el sistema (x1,...,xN), y tantas salidas como diferentes conjunto fuzzy (C1,...,CK) a los que pueden pertenecer las entradas. La red se entrenaría presentando diferentes valores de entrada que activarían las salidas correspondientes a los conjuntos a los que pertenece cada valor. Después de la fase de aprendizaje, se dispone de una red que, aunque en principio se ha entrenado para que genere valores binarios (0 si pertenece al conjunto y 1 si no es así), al disponer de capas de neuronas ocultas, en los correspondientes pesos ocultos la red ha establecido unas formas concretas para las funciones de pertenencia, de tal forma que ante un nuevo valor de entrada genera como salida un valor entre 0 y 1 que representa el grado de pertenencia al conjunto Ci representado por esa salida. 1.3.5.3 Diseño de controladores Neurofuzzy análogos Se presenta una arquitectura paralela para controladores fuzzy y una metodología para su realización como un chip CMOS análogo para aplicaciones de baja y media precisión. Estos chips pueden se hechos para aprender a través de adaptación o parámetros controlados eléctricamente guiados por un algoritmo de aprendizaje compatible con hardware dedicado. Los diseños enfatizan la simplicidad a nivel circuital, un prerequisito para incrementar la complejidad del procesador y su velocidad de operación. Los juegos fuzzy y la inferencia fuzzy capacitan para discernir acerca de características locales para predecir las conducta de un sistema, aún si una descripción matemática exacta es desconocida o mal definida. Por ejemplo, la 73 inferencia fuzzy puede estabilizar un polo invertido en un carro moviéndose a través de declaraciones como “Si el polo está cayendo rápidamente a la izquierda, luego el carro debe moverse rápidamente hacia la izquierda.” Para la inferencia fuzzy, como para el operador humano, no hay necesidad de formulaciones exactas de la dinámica de los sistemas. Hay dos diseños que se aproximan al hardware de inferencia fuzzy: el análogo y el digital. Hay dos clases de chips fuzzy análogos: de función fija y adaptivos. 1.3.5.4 Estrategias de Programación Criterios para la evaluación de estrategias: • Variación del rango de parámetros adaptivos • Variación del rango de parámetros de control • Influencia del circuito controlado en rango de entrada de modo común • No uniformidad de la relación entre parámetros de control y parámetros adaptivos. 2. SCINEF El Sistema de Control Integrado Neuro-Fuzzy es un sistema completo de control que utiliza como métodos de control, además de los tradicionales, fuzzy logic y redes neuronales. El núcleo del sistema es un procesador Z80180S de Zilog Inc. más un microcontrolador análogo programable fuzzy AL220 de Adaptive Logic . A este sistema se le adicionó la facilidad de conexión del estándar industrial PC104 el cual brinda la posibilidad de integrar cualquier tipo de periféricos al sistema, entre los cuales se destacan los módulos de Basic I/O, AD/DA, Digital I/O y Comunications. 2.1 MÓDULOS 75 FUZZY PROCESSOR OPTO-22 AD / DA CONVERTERS HIGH VOLTAGE DRIVER PC 104 BUS INTERFACE DIGITAL I/O SERIAL INTERFACE RS232/RS485 CORE MODULE PIC SLAVE PROCESSOR BASIC PC 104 Interface High Voltage Driver I / O Programmable Oscilator 88C55 Interface - Parallel Port - Smart Card Interface - Voice Module Interface PC Keyboard Interface Matrix Keypad 16 x 8 5 Ch. 8-bit AD Digital Prog. PWM I2C, SCP Interface SCI (USART) 3 Counter/Timers Buzzer Figura 34. Diagrama de bloques SCINEF (hardware) 76 2.1.1 Mainboard DRIVER DE CORRIENTE BUFFERS/ PC104 INTERFACE MODULO LCD PUERTO IMPRESORA IMPRESORA ISD SMART CARD CORE MODULE SUPERVISOR VOLTAJES PIC SLAVE PROCESSOR 5 Ch. 8-bit AD MATRIX KEYPAD CONTROLLER 3 Counter/Timers I2C, SCP Interface SCI (USART) PC KEYBOARD CONTROLLER Digital Prog. PWM Buzzer Figura 35. Diagrama de Bloques Mainboard 2.1.1.1 Core Module El Core Module, CM7000 de ZWorld, es una unidad procesadora completa, con sistema de desarrollo integrado para lenguaje C y/o ensamblador y sus principales características son: • Pequeño tamaño, 1.80 x 2.05 “ (45.7 x 52.1 mm) • Microprocesador: Z180 con una velocidad de reloj de 9.216 MHz o 18.432 MHz, incluyendo dos canales de DMA, dos puertos seriales y dos temporizadores programables. • SRAM: de 32 Kbytes a 512 Kbytes. 77 • • • • CM7100 EPROM: base para DIP de 32 pines con el cual puede utilizar memorias EPROM hasta de 512 Kbytes. CM7200 Flash EPROM: puede utilizar memorias hasta de 256 Kbytes. Soporte de direccionamiento directo para periféricos con 6 líneas de selección de hasta 64 direcciones cada una. Baja EMI. Figura 36. Diagrama de bloques CORE MODULE CM7110 Opciones • • • Supervisor ADM 691: provee de watchdog timer, power on reset, alarma de bajo voltaje y soporte de batería de respaldo. Reloj de tiempo real 72423. CM7100 EEPROM: 512 bytes 2.1.1.2 PIC Slave Processor El PIC16C74A se utiliza como procesador paralelo esclavo y es el encargado de la administración de periféricos que de ser controlados directamente por el CORE MODULE disminuirían su rendimiento innecesariamente. Este módulo también provee al sistema de funciones de entrada /salida específicas para las cuales, de ser implementadas en discreto emplearían un alto número de integrados y algunos circuitos de gran complejidad. Sus módulos funcionales se describen a continuación: • • PC Keyboard Interface. Interface compatible con teclados para computadores AT de 82, 101 ó 102 teclas. Matrix Keypad 16 x 8. Controlador de teclado matricial con interface de doce pines configurables por software soportando matrices de hasta contactos sin necesidad de hardware adicional y 128 contactos con decodificador de 4 a 16. Su modo de detección no es por barrido constante de los contactos activos sino por interrupción para lo cual se cuenta con 5 entradas con esta función. 78 • • 5 Ch. 8-bit AD. Se utiliza el conversor AD del microcontrolador con la referencia de voltaje de 5V siendo posible de esta manera monitorear las fuentes de +5, +12, voltaje de alimentación del CORE, el voltaje de la batería y un voltaje externo. Digital Programmable PWM. Para este módulo se utiliza uno de los puertos de captura/comparación/PWM del integrado permitiendo así generar señales controladas digitalmente de entre 1.22KHz hasta más de 4MHZ con resolución de 12-bit y ciclo útil de 0 a 100% con resolución de 10-bit. I2C, SCP Interface. Utilizados para funciones de comunicación con protocolos de 3 hilos compatibles SPI (serial port interface) SSP (synchronous serial port). Estos puertos utilizan los mismos pines de la interface para teclado PC AT. SCI (USART). Serial communication interface que provee al módulo de funciones USART. 3 Counter/Timers. Estos contadores pueden ser incrementados incluso encontrandose apagado el integrado (modo sleep) por medio de un reloj externo. Buzzer. Fue implementado por conexión directa con el puerto de PWM (frecuencia variable, ciclo 50%). • • • • 79 Figura 37. Diagrama de bloques PIC16C74A 2.1.1.3 Basic I/O Este módulo se utiliza para adicionar características esenciales de entrada y salida del sistema como son: • Oscilador programable de 1 MHz con divisores que proveen hasta 57 frecuencias diferentes entre 0.5 pulsos por minuto hasta 1 MHz. Con 80 posibilidad de reloj externo o de software. Salidas tree-state tanto para el oscilador fijo a 1 MHz como para el programable. 6 temporizadores contadores de 16 bits para relojes hasta de 10 MHz con 6 modos de funcionamiento independientes cada uno. Un puerto paralelo para impresora. Un puerto paralelo compartido para tarjeta inteligente, grabador/reproductor de voz o impresora. Driver de alta corriente de 8 salidas de hasta 300 mA cada una y hasta 30 V. Puerto auxiliar de salida compatible TTL de 4 bits. 2 led independientes de señalización de estados. Interface I/O para display de cristal líquido. Selección de periféricos: 6 líneas de selección fija de 64 direcciones cada una, 8 líneas de selección fija de 4 direcciones cada uno y 20 líneas de selección EEPROM programables para selección de periféricos. Bufferización de todas las señales de control y datos del sistema. Monitor de voltaje para las fuentes de ±5, ±12 y una auxiliar. Protección para voltajes de polaridad inversa en todas sus fuentes. Reset interno y externo. Batería interna y externa. Conector para voltaje de respaldo de memoria RAM. Regulador interno de 5V @ 1A con monitor de voltaje, diodo de protección para voltajes de polaridad inversa, voltaje de entrada entre 7.5 a 37 V. • • • • • • • • • • • • • • • 2.1.1.4 Periféricos 81 LCD TECLADO VOICE MODULE INTERFACE CORE MODULE CM7110 IMPRESORA INTERFACE SMART CARD OSCILADOR TEMPORIZADOR Figura 38. Diagrama de bloques periféricos 2.1.2 Microcontrolador fuzzy logic El microcontrolador fuzzy utilizado es un AL220 de Adaptive logic , el cual es un microcontrolador análogo, económico, de muy alto rendimiento, y de funcionamiento stand alone el cual incluye conversores A/D D/A. Dado que el AL220 es un controlador dedicado, este ofrece mayor facilidad de utilización, desempeño, características y robustez en ambientes de operación adversos. El dispositivos posee cuatro entradas análogas y cuatro salidas análogas de 8 bits de resolución. Las salidas pueden ser actualizadas a una velocidad de 0.1 milisegundos (100 veces más rápido que un microcomputadores de 8 bits). 82 IN PROCESADOR FUZZY OUT CONVERSOR DIGITAL/ ANALOGO OUT IN CONVERSOR ANALOGO/ DIGITAL CORE MODULE CM7110 RED NEURONAL DIGITAL OUT CONTROLADOR DIGITAL DIGITAL IN Figura 39. Diagrama de bloques Controlador Fuzzy Logic 83 Otras características importantes de este controlador son: • Todas las salidas son realimentadas por hardware a la entrada. • Versiones EEPROM y ROM 256 bytes. • Como es basado en reglas se elimina la necesidad de watchdog timer. • Empaques plásticos de bajo precio de 18 pin DIP y 20 pin SOIC. • Modo de bajo poder. • Absolutamente monolítico: solo requiere un oscilador. • Posibles circuitos osciladores: RC, resonador cerámico, cristal o reloj externo. • Reset externo • Función de preescalización para la modificación de la duración del ciclo de control. • Sistema de desarrollo integrado INSIGHT IIe con capacidad para simular y emular en tiempo real el funcionamiento del dispositivo así como de programarlo. 2.1.3 Módulos AD y DA Estos módulos son necesarios debido a que se requiere una interface análoga de entrada y salida con el AL220 y además como entradas y salidas análogas de propósito general. Para la implementación de este módulo se utilizaron conversores AD/DA de 8 canales 8 bits, además de buffers entrada y salida para ajustes de nivel y offset, así como sus respectivas protecciones de sobrevoltaje. Se implemento un sistema de multiplexores de tal manera que el conversor AD de 8 canales pueda entregar el valor de 16 señales que son: 8 variables de entrada, 4 señales de salidas del AL220 y las 4 salidas análogas finales del sistema; el conversor DA de 8 canales utiliza 4 de sus salidas para ser multiplexadas con las salidas del AL220 y otras 4 para remplazar cualquiera de las entradas del mismo. 2.1.4 Comunicaciones Utilizando los dos puertos seriales estándar del Z180 más algunos puertos de entrada y salida se implementaron módulos multiplexados para diferentes protocolos e interfaces, los cuales son enumerados a continuación: Puerto serial 0: • 1 puerto serial RS232 con señalización CTS/RTS configurable como DTE o DSE y protección de sobrevoltaje y sobrecorriente • 2 puertos half duplex 485 con señalización CTS/RTS. • 1 puerto full duplex 485 con señalización CTS/RTS . • 1 puerto para módem TTL compatible con selector de canal, PTT, RDY y CTS/RTS. • Protección de sobrevoltaje y terminadores de línea para todos los puertos. • 2 multiplexores análogos duales de 4 canales con opción de ON/OFF. 84 Puerto serial 1: • 1 puerto serial RS232 configurable como DTE o DSE y protección de sobrevoltaje y sobrecorriente • Multiplexor análogo dual de 4 canales con opción de ON/OFF. CORE MODULE CM7110 PUERTO SERIAL 0 PUERTO SERIAL 1 RS232 MODEM RS485 RS232 Figura 40. Diagrama de bloques Módulo de Comunicaciones 2.1.5 Digital I/O Este módulo posee dos unidades completamente compatibles con la interface periférica programable 8255. Lo cual provee 48 I/O programables en puertos de 4 y 8 bits en tres modos: unidireccional I/O, unidireccional I/O con protocolo y bidireccional I/O con protocolo. Además de esto se tiene el manejo de 4 fuentes de interrupción internas, 2 externas y 2 canales de DMA. Estas interrupciones pueden ser de uso exclusivo o compartido ya que el hardware así lo permite. Gracias a la configuración de sus conectores este módulo es compatible con el estándar industrial OPTO-22 para dispositivos de entrada y salida tanto análogos como digitales. Dicha interface posee además protecciones de sobrevoltaje para proteger todas sus entradas y salidas, y fuentes de alimentación para dispositivos externos protegidas. 85 CORE MODULE CM7110 PPI 82C55 ESTANDAR OPTO-22 I/O Figura 41. Diagrama de bloques Módulo I/O Digitales 2.1.6 Driver de alta corriente CORE MODULE CM7110 DRIVER ALTA CORRIENTE RELEVOS Figura 42. Diagrama de bloques Driver Alta Corriente Éste módulo comprende dos tipos de salidas: 8 interruptores de estado sólido con capacidad de manejar cargas inductivas de hasta 350 mA a 30V y como contactos secos, 8 relevos dobles conmutables (DPDT Relays) que son manejados por un driver interno; cada relevo puede manejar hasta 0.6A @ 110 VDC, 0.6A @ 125 VAC o 1A @ 30VDC. Este trabaja como un puerto estándar de salida y no es posible verificar su estado una vez escrito. 2.1.7 Interface Smart Card CORE MODULE CM7110 SMART CARD INTERFACE Figura 43. Diagrama de bloques Smart Card Interface 86 Éste módulo se diseño para se compatible con cualquier puerto paralelo y se basa un lector universal de tarjetas inteligentes que puede leer y escribir cualquier tipo de tarjeta de las disponibles en el mercado hasta la fecha sin importar el tipo de protocolo, número de hilos utilizados por la misma o si utiliza encripción o no. Se adicionó al sistema con la intención de poder reprogramar los diferentes parámetros del sistema por algún medio físico y como control de acceso al mismo. 2.1.8 Interface Módulo de voz CORE MODULE CM7110 VOICE MODULE INTERFACE Figura 44. Diagrama de bloques módulo de voz El diseño de este módulo lo compatible con cualquier puerto paralelo estándar y se utilizó como interface con el usuario para facilitar el monitoreo del proceso, la generación alarmas, ayuda para usuarios discapacitados o como ayuda sonora en línea del sistema en el caso que no sea posible un contacto visual adecuado con el sistema de control. 2.2 FUZZY LOGIC 2.2.1 Microcontrolador Fuzzy AL220 El AL220 es un microcontrolador análogo fuzzy; el dispositivo tiene 4 entradas análogas que son digitalizadas por un conversor A/D de 8 bits, estas son latcheadas hacia el comparador (fuzzificador) que compara las entradas con las funciones de membresía para hallar los valores digitales desde los términos de las variables fuzzy. El comparador hace el cálculo de los máximos y mínimos para determinar cual es la regla ganadora. Por último, en el modo de salida (defuzzificador) se determina el valor de la acción de la regla ganadora y se efectúa la reconstruye la señal a través del conversor D/A para las 4 salidas análogas. 87 MUX entrada A/D 8-bit latch Centro digital 8-bit latch MUX salida D/A Almacenamiento de parámetros Figura 45. Diagrama de bloques de AL220 2.2.1.1 Características • Máximo 4 entradas análogas con valor entre 0.5 y 4.5 V • Máximo 4 salidas análogas con valor entre 0.5 y 4.5 V, estas salidas se pueden realimentar externa o internamente a las entradas obteniéndose de esta forma 8 entradas. Figura 46. Diagrama esquemático de entradas y salidas AL220 El AL220 puede ser usado para controlar una gran variedad de sistemas mejorando el desempeño, incrementando la eficiencia y resolviendo los problemas de no linealidad del sistema a controlar. Tiene una memoria EEPROM para almacenar las funciones y los parámetros de las reglas. Es el único sistema de desarrollo en fuzzy logic que maneja funciones de membresía flotante, además se puede realizar derivadas, contadores y PWM’s. 2.2.2 INSiGTH IIe 2.2.2.1 Características Para programar el AL220 se dispone de INSiGTH IIe que es programador, simulador y emulador, este aparato facilita la interface entre software y hardware utilizado en 88 fuzzy logic, en software el sistema de desarrollo INSiGTH IIe esta basado en ventanas que proveen las herramientas para introducir los elementos fuzzy necesarios para simular y diseñar con AL220. Las ventanas principales son: • Entradas y salidas: Aquí se le asigna un nombre a cada una de las entradas y salidas. • Variables fuzzy: En esta ventana se definen las funciones de membresía. • Se pueden tener 111 variables (funciones de membresía) estas se definen por centro, ancho y tipo de función. • El centro y el ancho pueden ser fijos o flotantes, cuando es fijo se le asigna un valor entero de 0 a 255 para el centro y para el ancho entre 0 y 63, si es flotante se mueve dependiendo del valor de una entrada o salida. Fijo Flotante 63 100 63 Figura 47. Función de membresía con centro y ancho fijo Fijo Flotante 63 I/O 63 Figura 48. Función de membresía con ancho fijo y centro variable Fijo Flotante I/O 100 I/O Figura 49. Función de membresía con centro fijo y ancho variable 89 Fijo Flotante I/O I/O I/O Figura 50. Función de membresía con centro y ancho variable Maneja seis tipos de funciones: Simétrico inclusivo, simétrico exclusivo, inclusivo izquierdo, exclusivo izquierdo, inclusivo derecho y exclusivo derecho. Simétrico Inclusivo Exclusivo Figura 51. Tipo de función simétrica Izquierdo Inclusivo Exclusivo Figura 52. Tipo de función izquierda 90 Derecho Inclusivo Exclusivo Figura 53. Tipo de función derecha Reglas. Se pueden tener 56 reglas con 56 acciones máximo, una acción es cada variable fuzzy incluida en la regla, en cada regla se pueden adicionar utilizando AND las variables fuzzy que se necesiten. La salida de las regla puede ser inmediata o acumulativa ya sea fija o flotante. La forma inmediata fija le asigna a la salida un valor entero definido por el programador entre 0 y 255, cuando dicha regla sea la ganadora, si es flotante la salida será el valor de la salida de referencia. La salida acumulativa incrementa o decrementa la salida existente por el valor de la acción de la regla ganadora, este valor puede estar entre -128 y 255 para fija o de la misma forma descrita anteriormente si es flotante. 255 250 200 150 100 50 0 Inmediato/salida digital OUT=200 OUT=150 255 250 200 150 100 50 0 Acumulativo/salida análoga OUT=+25 OUT=+25 OUT=+50 OUT=+25 Figura 54. Métodos de salida Posee un editor de ecuaciones para simular el comportamiento del integrado en el computador se puede tener un archivo con los datos de prueba para las entradas o estos datos se generan a partir de ecuaciones, teniendo la oportunidad de corroborar el funcionamiento. Las ecuaciones pueden ser simples utilizando los operadores +,,* y / o funciones matemáticas trigonométricas, de comparación (=,), logarítmicas, y aritméticas (SQR, ABS). En la ventana principal se puede observar el comportamiento del sistema en la simulación de diferentes formas ya sea gráficamente, en matriz o alfanumérico. 91 Además de simular también se emula en tiempo real el sistema a controlar. El emulador tiene las mismas funciones del AL220 con la ventaja de monitorear todas las entradas y salidas disponiendo también de las ecuaciones utilizadas para la simulación. Para la emulación se puede utilizar el modo STAND ALONG en el cual no es necesaria la conexión al computador ya que se puede almacenar el programa en la EEPROM. La velocidad de emulación puede ser modificada desde 1MHz hasta 20MHz. 2.2.3 Proceso de diseño Ya se conocen las características generales del microcontrolador fuzzy y de su programador, ahora es necesario explicar como se aplican. Para llegar obtener las funciones de membresía y las reglas finales para elaborar el control fuzzy fue necesario tabular los datos tomados del sistema y interpretar numéricamente los aportes del operario experto. Esta data fue adaptada para poder ser aplicada al microcontrolador AL220, además fue completada, analizada y organizada de manera que se pudieran agrupar en intervalos cada uno con características similares clasificados en categorías (variables), a cada intervalo se le asigna una función de membresía. Las funciones de membresía se definen con un nombre, centro, ancho y tipo de la función, por ejemplo Temp High, Center 191, Wide 30, left Inclusive. Teniendo las funciones de membresía para cada intervalo de cada variable se plantean las reglas que rigen el comportamiento del sistema, estas se forman relacionando las diferentes funciones y buscando que se cumplan las condiciones para lograr el correcto funcionamiento del proceso. Inicialmente se hacen reglas sencillas para cada caso ya que de esta forma es más fácil comprobar paso a paso el comportamiento, luego de tener el proceso totalmente controlado se van combinando y depurando las reglas hasta obtener el funcionamiento más óptimo con el menor número de ellas. Finalmente, después de tener la simulación completa y depurada se emula utilizando el INSIGTH IIe al cual se le aplica datos de entrada similares a los reales y se observa el comportamiento de sus salidas, sino se obtienen los resultados esperados se puede reformar las reglas o las funciones de membresía, teniendo la ventaja de poder probar los cambios fácilmente. También es posible programar el microcontrolador AL220 y colocarlo en el Sistema de Control Integrado Neuro-Fuzzy para ser conectado al proceso que en este caso es un generador de 1MW, esto se debe hacer cuando se hayan hecho todas las pruebas en la simulación y la emulación sea satisfactoria porque no se tiene la posibilidad de modificar su contenido. 92 2.3 Red Neuronal Debido al alto grado de desarrollo en este campo, se dispuso de muchas posibilidades a la hora de la implementación de la red neuronal. Finalmente se optó por utilizar un algoritmo simple de back propagation para el entrenamiento de la red y para evitar reinventar la rueda, se recurrió a uno de los cientos de programas que utilizan este tipo de aprendizaje para entrenar la red; este es el Neural Planner, el cual es un programa ampliamente reconocido por su simplicidad y eficiencia. Otra buena escogencia hubiese sido el Plug-in para Microsoft Excel de Neuro-Solutions pero su desempeño en el aprendizaje de la red es menor que el del Neural Planner en lo referente a velocidad porque en realidad soporta más opciones pero para el objetivo del proyecto estas salían sobrando. El Neural Planner calcula los valores de las sinapsis y del bias de una red de topología arbitraria sin importar el número de capas de hasta 256 neuronas de entrada, 256 de salida, y 8192 - (neuronas de entrada + neuronas de salida) de neuronas ocultas. Este programa posee dos algoritmos de aprendizaje: On-line Back Propagation y Batch Back Propagation además de diferentes opciones para el control del proceso de aprendizaje como son: Figura 55. On-line Back Propagation 93 • • • • • • • • • Rata de aprendizaje Momentum Error objetivo Ciclos por prueba Ciclos antes de prueba Objetivos % correctos o en el rango +/- % Ciclos por refresco Período de Actualización Algoritmo de Aprendizaje El Neural Planner Utiliza como función de activación la sigmoide de forma: F(x) = 1− 1 1 + e β ⋅x Ecuación 1. Sigmoide Donde β = 1, obteniéndose valores normalizados a la salida de cada capa entre 0 y 1 Para la red principal se utilizaron cuatro variables de entrada que fueron las mismas del controlador fuzzy : Carga, Temperatura, Delta de Carga y el Error entre la Carga y la potencia generada. Obteniéndose como variables de salida la potencia generada la refrigeración, el delta de frecuencia y la corriente máxima. Dicha red utiliza dos capas ocultas con 7 neuronas por capa y se puede apreciar en la Error! Unknown switch argument.. Figura 56. Red Neuronal Se encontró que el tipo de respuesta obtenida de la red neuronal para el control óptimo en muchos aspectos, incluso en ciertos casos, a pesar de su baja velocidad 94 de respuesta, resulta ser más acertado que el control fuzzy ya que su grado de aproximación (interpolación y extrapolación) para valores intermedios es mucho mayor y además con la ventaja de que es posible aprender de experiencias previas. Debido al tiempo empleado por el algoritmo de aprendizaje por backpropagation se hace muy poco práctico implementarlo directamente en el controlador y por tanto se utilizó un procesador Host para esta tarea, el cual calcula los pesos de las sinapsis minimizando el error cuadrático medio (MRSE) de las salidas de la red con respecto a las muestras de entrenamiento utilizadas. La red neuronal en un comienzo se diseño orientada solamente a la modificación de tipo adaptivo de los parámetros del sistema fuzzy empero se encontró que con un pequeño incremento en el grado de complejidad de la red, ésta también podía proporcionar un algoritmo de control neuronal completo para el sistema. 2.4 Componentes Electrónicos 2.4.1 SP720 Electronic Protection Array for ESD and Over-Voltage Protection Es un arreglo de SCR’s (estructura de diodo bipolar), se utiliza para proteger la entrada de los circuitos de transientes, sobrevoltajes y descargas electrostáticas, tiene dos SCR’s de protección por entrada uno que protege para voltajes mayores al voltaje V+ y el otro para voltajes menores a V-, V+-V- máximo es 35V. Tiene un total de 14 entradas disponibles que pueden ser usadas para proteger el mismo número de señales externas o un bus. Se puede conectar una sola entrada o dos entradas en paralelo, protege para descargas electrostáticas directas en conexión sencilla 4kV y para conexión paralela 8kV, para descargas por contacto con el aire 15kV, la capacidad de limitar la corriente de pico es ±2A (100µseg.) y ±5A (4µseg.) y su velocidad de conmutación es de 2nseg. 95 Figura 57. Diagrama funcional SP720 Se emplearon por su facilidad de conexión y manejo, evitan el daño de otros integrados costosos y difíciles de adquirir, además proporcionan confiabilidad de conexión entre diferentes circuitos y sirve de protección de las entradas y salidas que están disponibles por el usuario. En el diseño se utilizaron para proteger los puertos seriales y el puerto paralelo, I/O digitales programables y entradas análogas del procesador fuzzy. 2.4.2 MAX8215 ±5V, ±12V (±15V) Dedicated Microprocessor Voltage Monitors Contiene 5 comparadores de voltaje, 4 para monitorear +5V, -5V, +12V y -12V y el quinto es un comparador auxiliar para monitorear un voltaje fijado por el usuario. Las resistencias necesarias para monitorear estos voltajes están incluidas en el integrado además todos los comparadores tienen salidas open-drain independientes, el consumo máximo del dispositivo es 250µA. Tiene detección de sobrevoltaje y bajovoltaje o un retardo programable usando el comparador auxiliar. 96 Figura 58. Diagrama de bloques MAX8215 Se utilizó en el diseño para monitorear todos los voltajes suministrados por la fuente (+5V, -5V, +12V y -12V) y el comparador auxiliar se emplea como detector del voltaje de +5V del CORE o tiene la opción de monitorear un voltaje externo. 2.4.3 NE590 Addressable peripheral drivers Es un driver latcheado de alta corriente que posee 8 salidas darlington open-colector para manejar cargas hasta de 250mA (350mA pico). La salida activa se determina por 3 bits de dirección por lo cual puede operar como latch o como demultiplexor, las salidas son intercambiadas de on a off dependiendo del nivel de voltaje a la entrada del pin de datos y la salida seleccionada. Estas son cargadas al aplicar un nivel bajo en /CE, las entradas son de baja carga siendo compatibles con los buses. Se puede escoger cual salida activar independientemente del estado de las otras salidas. Al activar la entrada /CLR todas las salidas son apagadas (desactivadas, puestas en corte). 97 Figura 59. Diagrama de bloques NE590 Tabla 11. Tabla de verdad NE590 98 En el diseño se empleó para manejar un puerto de propósito general para dispositivos de alta corriente, del cual dos salidas se utilizan para los ventiladores de refrigeración del módulo, teniendo disponible las otras 6 salidas. En total se dispone en todo el sistema de 14 salidas de alta corriente más 8 salidas de relevos DPDT (Double Position Double Turn) lo que proporciona 16 contactos secos conmutables activados por pares. Cada relevo puede manejar ya sea 30V @ 1A, 110VDC @ 0.6A ó 125VAC @ 6A con tiempos de conmutación de tan sólo 5ms. 2.4.4 MC14052/ MC14053 Analog Multiplexer/ Demultiplexer Son interruptores análogos controlados digitalmente. Figura 60. Esquemático MC14052 y MC14053 Tabla 12. Tabla de verdad MC14052 y MC14053 99 2.4.5 MC14052 Multiplexor/demultiplexor dual de cuatro canales análogos. Son 2 interruptores individuales cada uno con cuatro posiciones a seleccionar, la posición se escoge con las combinaciones posibles de los dos pines de control (ver tabla de verdad) y sale por la línea correspondiente. Así: X3,Y3 X2,Y2 X1,Y2 X0,Y0 X,Y Figura 61. Esquemático interruptor MC14052 Figura 62. Diagrama de bloques MC14052 Se emplea en el módulo de comunicaciones para multiplexar una de las líneas de transmisión de los puertos seriales y para demultiplexar la línea de recepción correspondiente. Físicamente se posee para este puerto transceptores para los estándares RS232, RS485/422 y un puerto compatible TTL. En la práctica se obtiene un puerto RS232, dos puertos half-duplex y un puerto full-duplex RS485/422 y la 100 interface TTL para módem con selector de canal y PTT (Push To Talk), todos estos con líneas de protocolo RTS/CTS en sus niveles respectivos. Los módulos de comunicaciones funcionan con voltaje sencillo de 5V generando internamente ±12V para los transceptores que así lo requiera. 2.4.6 MC14053 Analog Multiplexer/ Demultiplexer Multiplexor/demultiplexor triple de dos canales análogos. Son 3 interruptores individuales cada uno con dos posiciones a seleccionar, la posición se escoge con el pin de control y se conecta a la línea común correspondiente. Así: X1 X X0 Habilitador A: A=0 X=X0 A=1 X=X1 Y1 Y Y0 Habilitador B: B=0 Y=Y0 B=1 Y=Y1 Z1 Z Z0 Habilitador C: C=0 Z=Z0 C=1 Z=Z1 Figura 63. Esquemático interruptor MC14053 Figura 64. Diagrama de bloques MC14053 101 Se emplean a la entrada y salida del módulo fuzzy para seleccionar que señales entran o salen del o al procesador fuzzy. A las entradas pueden multiplexarse ya sea uno de dos canales de entrada o la salida del conversor digital-análogo. Las salidas del procesador fuzzy se pueden multiplexar cada una independientemente con sus canales correspondientes del DAC. 2.4.7 MC14551 Quad 2-channel Analog Multiplexer/ Demultiplexer Interruptor análogo controlado digitalmente. Multiplexor/Demultiplexor cuádruple de dos canales; dependiendo del nivel lógico del pin de control se obtendrá en la salida uno de los dos canales. Así: Figura 65. Diagrama de bloques MC14551 Se emplea para seleccionar las entradas al conversor análogo-digital entre las salidas del procesador fuzzy o del sistema completo y las entradas análogas disponibles. 102 2.4.8 MC74ABT245 Octal 3-state Non-Inverting Bus Transceiver Transceptor (transmisor - receptor) 3-state no inversor bidireccional es usado para comunicaciones asíncronas entre buses de datos. El dispositivo tiene un pin de Output Enable (habilitación de salida) el cual es activo bajo, que es usado para poner los puertos de entrada-salida en estado de alta impedancia. El pin de Dirección determina si los datos van de A hacia B o de B hacia A. Figura 66. Diagrama de bloques MC74ABT245 103 Tabla 13. Funcionamiento MC74ABT245 Se utiliza como interface entre el bus de datos y los dispositivos que necesitan acceso al bus para recibir y transmitir información al módulo principal, entre ellos el display LCD. 2.4.9 MC74ABT373 Octal 3-state Non-Inverting Transparent Latch Son registros de 8 bits que latchean los datos de sus entradas hacia las salidas cuando el pin de Latch Enable esta habilitado. El pin de Output Enable no afecta el estado de los latch pero cuando esta en alto forza las salidas a estado de alta impedancia. Los datos pueden ser latcheados cuando las salidas no estén habilitadas. Figura 67. Diagrama lógico expandido MC74ABT373 104 Tabla 14. Funcionamiento MC74ABT373 Fue utilizando en el módulo de comunicaciones, se tomaron las señales de recepción de los puertos RS232 y RS485, por medio de este latch se comunican con el bus de datos y el procesador principal (CORE) para identificar si algún puerto utilizado tiene problemas de conexión defectuosa en la línea (falla por circuito abierto). 2.4.10 MC74HC374 Octal 3-state Non-Inverting D Flip-Flop Los datos se obtienen en las salidas cuando output enable está habilitado y se ha presentado flanco de subida en el reloj. El pin de Output Enable no afecta el estado de los latch, cuando este está en alto las salidas son forzadas a estado de alta impedancia y además los datos pueden ser almacenados cuando las salidas no están habilitadas. Figura 68. Diagrama lógico expandido MC74HC374 Tabla 15. Funcionamiento MC74HC374 105 En general se utilizan estos integrados como puertos de salida (registros de sólo escritura). La decodificación de direcciones y la lógica de escritura a puerto para todos estos registros se realiza en las PALs. En el módulo la mainboard se utilizan para cambiar la frecuencia del oscilador programable así como para habilitar o deshabilitar la fuente externa del reloj y las salidas finales de los osciladores. Manejan también los leds de usuario disponibles. En el módulo de los puertos seriales se utilizan como selector para las direcciones del multiplexor/demultiplexor, habilitador del mismo, habilitadores para transmisión y recepción de los drivers de RS485/422 y como selector de canal y habilitador de PTT en el módem. En el módulo fuzzy se utilizan para direccionar los multiplexores tanto de entrada como de salida al procesador fuzzy. A la entrada se puede multiplexar uno de dos canales análogos y a su vez entre el análogo seleccionado y la salida respectiva del DAC. La salida se puede demultiplexar ya sea de la salida del procesador fuzzy o de su canal respectivo del DAC. Por último, direccionan los multiplexores del ADC en grupos de cuatro independientemente. 2.4.11 MC74ABT640 Octal 3-state Inverting Bus Transceiver Tiene el mismo funcionamiento de MC74ABT245 pero sus salidas son inversoras. Transceptor (transmisor - receptor) 3-state inversor bidireccional es usado para comunicaciones asíncronas entre buses de datos. El dispositivo tiene un pin de Output Enable (habilitación de salida) el cual es activo bajo, que es usado para poner los puertos de entrada-salida en estado de alta impedancia. El pin de Dirección determina si los datos van de A hacia B o de B hacia A. Tabla 16. Funcionamiento MC74ABT640 106 Figura 69. Diagrama de bloques MC74ABT640 Se utiliza para invertir algunas señales de entrada y salida utilizadas en el estándar PC104 (compatible bus AT, X86) las cuales tienen la lógica invertida con respecto al CORE (CM7100, familia Z86). 2.4.12 SPG8640BN Programmable Type Crystal Oscillator Es un oscilador de cristal programable, sus características principales son la capacidad de seleccionar 57 frecuencias de salida con 6 pines de control, consumo bajo de corriente (1mA máximo) y tolerancia ±100ppm. La frecuencia de oscilación interna es 1MHz (T=1µseg.) la cual se tiene disponible en una salida adicional, además con los pines de control por software se puede seleccionar desde 1MHz (T=1µseg.) hasta 1/120 Hz (T=2 min.) con dos grupos de divisores de frecuencia multiplicables entre sí de 1,2,3,4,5,6,10,12 y 1,10,102, 103, 104, 105, 106, 107. Si se necesita una frecuencia patrón diferente a 1MHz se puede aplicar esta por el pin EXC (external clock) y con el pin CSEL (clock select) en nivel lógico alto habilitar a este reloj, el cual puede ser de hasta 1MHz, y también por software seleccionar con los pines de control la frecuencia de salida. Adicionalmente se puede utilizar como contador de eventos hasta 12x107. 107 Figura 70. Diagrama de bloques SPG8640/50 En el diseño se consideraron todas las opciones, con el oscilador interno, oscilador externo y como contador de eventos. Todas las salidas del oscilador se tienen disponibles en el conector de señales del PC104, cada señal se puede desactivar enviándola a 3-state y en su lugar colocar otra señal independiente del oscilador que puede ser generada por otro de los módulos del sistema. El reloj se puede seleccionar digitalmente de tres posibles fuentes: • Oscilador interno f = 1MHz • Oscilador externo f ≤ 1MHz • Puerto de salida seleccionable por software. Este modo es bastante útil cuando se desea utilizar el oscilador como contador de eventos, para sincronizar tareas entre los diferentes módulos o para generar un reloj sincrónico con la ejecución del programa. 2.4.13 MX7228 CMOS Octal 8-Bit D/A Converter Conversor Digital-Análogo de 8 bits con salidas de voltaje, tiene entradas latcheadas separadas y salida buferizadas compatibles con microprocesador e interface con TTL/CMOS. Internamente, la transferencia de datos se realiza por un registro latcheado con una vía común de 8-bit compatible con el bus de entrada TTL/CMOS (5V). Las 3 direcciones determinan cual latch es cargado cuando /WR cambia a bajo. 108 Figura 71. Diagrama de bloques MX7228 Se empleo en el módulo fuzzy para convertir los datos digitales provenientes del CORE en análogos y así aplicarlos al demultiplexor para tenerlos disponibles en el procesador fuzzy, o también aplicarlos al multiplexor para obtener estas señales en el puerto de salida hacia el proceso dando la posibilidad de enviar datos digitales procesados por el CORE. 2.4.14 MAX487E ±15kV ESD-Protected, Slew Rate-Limited, Low-Power, RS-485/RS-422 Transceiver Transceptor de bajo consumo RS-485 y RS-422 para comunicaciones en ambientes hostiles. Cada transmisor de salida y las entradas del receptor están protegidas contra descargas electrostáticas (ESD) sin efecto memoria. Contiene un transmisor 109 y un receptor, se caracteriza por tener en los transmisores un reducido slew-rate que minimiza el EMI (Electromagnetic Interference) y reduce las reflexiones causadas por las terminaciones inadecuadas de los conductores, permitiendo así transmisiones de datos libres de errores hasta de 250kbps. Además tiene una corriente baja en el modo shutdown porque solo consume 0.5µA, y para su alimentación se utiliza una fuente única de +5V. Los transmisores tienen limitación de corriente en corto circuito y están protegidos contra la disipación excesiva de potencia por un circuito térmico que coloca estas salidas en estado de alta impedancia. Las entradas del receptor tienen un seguro de falla que garantiza un nivel lógico alto en la salida si la entrada es un circuito abierto. Figura 72. Configuración de pines y circuito típico de operación MAX487E 2.4.15 MAX202E ±15kV ESD-Protected, +5V RS-232 Transceivers Transmisores/receptores de línea diseñados para interface RS-232 y comunicaciones V.28 para ambientes hostiles. Cada salida transmisora y cada entrada receptora esta protegida contra descargas electrostáticas hasta de ±15kV. Los transmisores y receptores garantizan una rata de datos de hasta 120kbps y 3V/µseg de slew-rate como mínimo. Consiste en tres secciones: La conversión de +5V a ±10V es ejecutada por conversores de voltaje duales charge-pump y cuatro condensadores externos de 0.1µF. Drivers RS-232 (transmisores). Con Vcc=5V, la excursión típica del voltaje a la salida del transmisor es ±8V cuando esta cargado con un valor nominal de 5kΩ del receptor RS-232. Las entradas son compatibles con CMOS/TTL. Receptores RS-232. Los receptores convierten las señales RS-232 a niveles lógicos de salida CMOS. Garantizan un umbral en la entrada de los receptores de 0.8V y 2.4V lo cual cumple las especificaciones de EIA/TIA-232. 110 Figura 73. Circuito típico de operación En el módulo de comunicaciones se empleo el puerto serial 1 como transceptor para comunicaciones de datos bidireccionales y crear una interface entre el usuario y el sistema de control. Este puerto utiliza interface RS232. El puerto serial 0 se multiplexa y demultiplexa para transmisión y recepción entre una interface RS232, 2 puertos half-duplex RS485, 1 puerto full-duplex RS485 y una interface TTL para módem con selector de canal y habilitador de PTT. 2.4.16 MAX161 CMOS 8-Bit 8-Channel Data Acquisition System Es un sistema de adquisición de datos, cada integrado incluye conversor A/D de 8bits, multiplexor de 8 canales, puerto RAM dual 8x8 y I/O lógicas compatibles con microprocesador. Tiene implementación directa para el control de offset y ganancia para todos los canales. 111 Figura 74. Diagrama funcional MAX161 Se utilizó como conversor análogo-digital en el módulo fuzzy tomando los datos análogos salientes del procesador fuzzy o provenientes del sistema que se esta controlando para convertirlos en digitales y de esta forma puedan ser procesados en el CORE. Los datos pueden ser accesados en cualquier momento ya que se dispone de un puerto RAM para su lectura y no es necesario esperar el fin de la conversión. Este puede interrumpir al procesador con el fin de conversión de cada uno de los canales o de todos como grupo; además dicha interrupción puede ser habilitada y deshabilitada tanto por software como por hardware. 2.4.17 MX584 Pin Programmable Precision Voltage Reference Es un compensador de temperatura, agrupa varias referencias de voltaje programable por un pin, estas referencias son +2.5V, +5V, +7.5V y +10V para estas 112 salidas no necesita componentes externos, pero se necesitan otros voltajes pueden ser programados con resistencias externas. Es diseñado para ser utilizado con conversores A/D y D/A de 8 a 14 bits. Figura 75. Diagrama fucional MX584 Se emplea en el módulo fuzzy para generar la referencia de voltaje negativa que necesitan el ADC (MAX161) y la positiva del DAC. También como referencia para la tierra virtual del DAC a 0.5V para ajustar los niveles de señal con los del procesador fuzzy. 2.4.18 1.5KE6.8 THRU 1.5KE440CA GLASS PASSIVATED JUNCTION TRANSIENT VOLTAGE SUPPRESSOR Breakdown Voltage - 6.8 to 440 Volts Peak Pulse Power - 1500 Watts Supresores de voltajes transientes. Voltaje de ruptura 15V, potencia pico 1500W capacidad de 10/1000µseg. con rata de repetición (ciclo útil) de 0.05%, tiempo de respuesta bajo típicamente menor a 1.0ps desde 0V a V (unidireccional) y 5.0ns para tipos bidireccionales. Para dispositivos con V(BR)≥10V, ID típico menor a 1.0µA. Se utilizó 1.5KE15CA bidireccional junto con PCTs (Positive Coeficient Termistors) en los puertos seriales para proteger las I/O de los puertos RS-232 y RS-485 de los voltajes transientes. 113 2.4.19 PALCE22V10 24-Pin EE CMOS Versatile PAL Device Implementa funciones de transferencia de la familia lógica Booleana. Es un arreglo AND programable manejando un arreglo fijo OR. El arreglo AND fue programado para crear términos de productos y el OR para términos basados en sumas. Tiene 10 macroceldas programables como registros o combinacionales, activo alto o activo bajo según las necesidades del usuario. Interconexión con componentes periféricos (PCI), reset asíncrono global y preset sincrónico para inicialización. Figura 76. Diagrama de bloques PALCE22V10 Se utilizaron dos PAL’s para evitar las compuertas lógicas que eran necesarias para manejar los bits de control de latch y buffers a través de todo el diseño, PIC, PPI y LCD. Una PAL se encarga del direccionamiento básico de los integrados de I/O en todos los módulos (excepto el fuzzy) y la otra de todos los bits de control del módulo fuzzy tanto del procesador como de los conversores, latch, buffers que están involucrados para seleccionar los datos que se manejaran tanto a la entrada como a la salida de dicho procesador. 2.4.20 MC74HC138 1 of 8 Decoder/Demultiplexer El decodificador tiene tres bit de dirección para seleccionar cual de las ocho salidas se activara (activo bajo). El dispositivo tiene tres entradas de Chip Select, dos activa baja y dos activo alto para facilitar la demultiplexación y conexión en cascada. 114 Figura 77. Diagrama lógico expandido MC74HC138 Tabla 17. Tabla de verdad MC74HC138 115 Se empleo para decodificar el Chip Select 6 (CS6) para direccionar todos los dispositivos de la main-board y los puertos seriales ya que el procesador principal (CORE) solo dispone de 6 CS con 64 direcciones asignadas a cada uno. En el módulo fuzzy además del direccionamiento local del módulo, activa o desactiva los pines de control del procesador fuzzy, del oscilador y de las interrupciones . 2.4.21 82C55A CHMOS PROGRAMMABLE PERIPHERAL INTERFACE Interface Periférico Programable. Compatible con todos los dispositivos INTEL y otros microprocesadores. 24 pines de entrada/salida que pueden ser programados individualmente en dos grupos de 12 y utilizados en tres modos de operación. En el modo 0 cada grupo de 12 pines I/O pueden ser programados en conjuntos de 4 y 8 para ser entradas o salidas. En el modo 1, cada grupo puede ser programado para tener 8 líneas de entrada o salida, 3 de los 4 pines restantes son utilizados por líneas de protocolo o handshaking y señales de control de interrupción. El modo 2 configura el grupo A como bus bidireccional con protocolo. Figura 78. Diagrama de bloques 82C55 Se emplearon en el módulo de I/O digitales de propósito general y sus entradas/salidas se configuraron para cumplir con el estándar OPTO-22 que da acceso al manejo de gran variedad de dispositivos comerciales para adquisición de datos y control de procesos. En la mainboard se utilizó un 82C55 para el puerto de 116 impresora y la interface para tarjeta inteligente (Smart Card) e ISD (Information Storage Devices), el cual es un chip monolítico para grabación y reproducción de voz. 2.4.22 HD66100F LCD Driver with 80-Channel Outputs Esta compuesto por un circuito de salidas interno que maneja 80 segmentos de LCD, circuitos internos con funciones de conversión serial/paralelo, registros bidireccionales de 80-bit y un circuito latch de 80-bit. Figura 79. Diagrama de bloques HD66100F No se utilizó directamente en el diseño como integrado independiente, va incluido en el display LCD empleado y en combinación con otros integrados controla su funcionamiento. Se utiliza su hoja de datos como referencia para la utilización de sus funciones avanzadas. 2.4.23 485SDA12 Addressable RS-485 Data Acquisition Module Módulo de adquisición direccionable RS-485. Es una fácil solución para la adquisición serial de datos. Ofrece 11 canales de entrada A/D de 12 bits (resolución de 0.610mV @ 2.5VDC de referencia), 3 salidas digitales TTL (0VDC a 5VDC) y 3 entradas digitales (-30 VDC a +30 VDC). Detección automática de rata de baudios y 256 direcciones únicas definidas por el usuario. Con estas características el módulo puede ser usado para sensar un variedad de condiciones externas y controlar varios dispositivos. 117 Figura 80. Módulo B&B 485SDA12 Por medio de este módulo y a través de la interface RS485 se pueden extender las capacidades de monitoreo y control hasta distancias superiores a 1.2 Km a una velocidad de 9600 bps. 2.4.24 RTC-72423 4-bit REAL TIME CLOCK MODULE Módulo de reloj de tiempo real con interface de 4-bit. Incorpora un cristal de cuarzo que hace innecesaria cualquier tipo de ajuste o calibración y permite diseños sencillos. Posee compatibilidad directa con el bus del microprocesador (tiempo de acceso 120nseg.). Tiene un reloj (hora, minutos, segundos) y calendario (año, mes, semana, día). Función para seleccionar 12/24 horas y salto automático de año. Enmascaramiento de interrupción. 118 Figura 81. Diagrama de bloques RTC-72423 Este integrado es utilizado por el procesador principal (CORE CM7100) para tener un reloj de tiempo real independiente del procesador principal y para mantener una referencia de tiempo aún cuando el procesador se encuentre apagado ya que su alimentación proviene de la batería de respaldo. 2.4.25 MAX691A Microprocessor Supervisory Circuit Circuito supervisor de microprocesador. Este integrado se ocupa de la detección de la PFI (Power Failure Interrupt), generación de la señal de RESET y de la administración de energía para la memoria RAM. Tiene desempeño mejorado con corrientes de consumo de 30µA y corriente de standby de 1µA, retraso para activar el reset típicamente de 200ms en power-up y 6ns de retraso en la propagación del chip-enable (habilitador). Protección de escritura de la CMOS RAM o EEPROM, salidas separadas de watchdog , intercambio para iniciar el uso de la batería de respaldo, y una salida de RESET que es valida con Vcc menor a 1V. Tiene un voltaje umbral de reset de 4.65V. Monitor de voltaje para falla de la alimentación o advertencia de batería baja. 119 Figura 82. Diagrama de bloques MAX691A 2.4.26 ISD2500 Series Single-Chip Voice Record/Playback Device 60-, 75-, and 90-Second Durations ISD (Information Storage Device) dispositivo para almacenamiento de información. Almacena información de voz en forma análoga, sus principales características son: alta calidad en la reproducción de la voz humana, un sólo integrado graba y reproduce la información de voz. El dispositivo CMOS incluye un oscilador, preamplificador para el micrófono, control automático de ganancia, filtro antialiasing (efecto no deseado causado por métodos de muestreo impropios), filtro de suavizado y amplificador para parlante. Además, el ISD2500 es compatible con cualquier tipo de microprocesador. Las grabaciones son almacenadas en celdas de memoria no volátiles, retención de mensajes hasta por 100 años, posee direccionamiento completo para manejo de múltiples mensajes, para aumentar la duración se pueden conectar varios integrados en cascada, para minimizar el consumo tiene Power-down automático. 120 Figura 83. Diagrama de bloques ISD2500 3. APLICACIÓN DEL CONTROLADOR FUZZY LOGIC El control fuzzy se realiza con el microcontrolador análogo AL220, el proceso a emular para demostrar el funcionamiento del Sistema de control integrado NeuroFuzzy es un generador de potencia de 1 MW utilizado en un campo petrolero. Figura 84. Generador Las variables a controlar directamente por el controlador fuzzy son: potencia generada, temperatura del sistema, corriente máxima y frecuencia para lo cual se cuenta con las variables de entrada: Carga, variación de carga y temperatura equivalente. La carga varia desde 0 hasta 1 MW y la potencia generada debe suplir esta demanda, para lo cual es necesario conocer la variación de carga y así producir la potencia requerida para consumo evitando de esta forma perdidas de energía por producción excesiva de potencia. La temperatura equivalente depende de las temperaturas de los cilindros del generador, del refrigerante y del ambiente. La ecuación que las relaciona es: Teq = 0.5Tcyl + 0.3Trefr + 0.2Tamb 122 La temperatura equivalente varia porque a medida que el generador produce potencia, el movimiento de los cilindros hace que aumente la energía disipada en forma de calor. El refrigerante se utiliza para disminuir la temperatura de los cilindros, porque a medida que esta temperatura aumenta es necesario incrementar la velocidad con que el refrigerante fluye a través de ellos para que la temperatura del sistema disminuya por intercambio de calor entre el refrigerante, los cilindros y el intercambiador de calor. La temperatura ambiente no se puede controlar por que depende de cambios atmosféricos, tiene menor influencia en la temperatura equivalente porque no esta ligada muy estrechamente con el sistema. Pero es necesario tomarla en cuenta por que un cambio brusco puede afectar el punto de operación de los generadores. La frecuencia normal de funcionamiento es de 60 Hz ±1 Hz, cuando la carga le exige más potencia de la que puede generar es necesario aumentar la frecuencia para que el voltaje que es normalmente de 13.5 KV se mantenga y así se tenga la potencia requerida, si las condiciones de carga son normales se debe mantener la frecuencia en 60.0 Hz. El límite de corriente máxima nominal es de 75A pero este debe ser controlado dinámicamente colocándolo al menos 10A por encima del consumo actual siempre y cuando la potencia generada sea superior al 40% ya que de lo contrario debe permanecer constante en 40A así: 75 A * 0.4 + 10 = 40 A , esto con el objeto de poder evitar cambios bruscos en la corriente de salida por eventos tales como: sobrecargas, cortos circuitos, problemas de interconexión con la red pública de distribución de energía, atentados terroristas a torres y líneas de transmisión, y malos funcionamientos causados por problemas en la red de transporte de crudo. Para hacer el control con fuzzy logic fue necesario contactar a un experto en el manejo del sistema para saber que cambios se realizan en una determinada situación, esta información fue tabulada, analizada y modificada para optimizar el control. De la información suministrada los comportamientos críticos son: • El generador esta produciendo una determinada potencia que suministra la energía necesaria a la carga, pero si la carga se incrementa y la potencia no alcanza el requerimiento el generador debe incrementar la potencia para la nueva carga. Si disminuye la carga, la potencia se debe decrementar porque si se mantiene al mismo nivel se estará perdiendo energía, pero este decremento no debe ser muy grande porque se corre el riesgo que la potencia no sea suficiente para los requerimientos de carga. • 123 • Si la carga es máxima y la potencia es máxima pero hay un incremento de carga el generador no podrá suministrar la potencia necesaria en condiciones normales de frecuencia, voltaje y corriente. Para poder suministrar la potencia se aumenta la frecuencia hasta 1 Hz. Cuando la carga disminuye y la potencia es suficiente la frecuencia debe volver a su valor normal de 60.0 Hz. Cuando la temperatura equivalente aumenta se debe disminuir para evitar recalentamiento del generador, para lo cual se aumenta la velocidad con que fluye el refrigerante por los cilindros. Cuando la temperatura a disminuido lo suficiente se puede bajar la velocidad de circulación. Para que el generador funcione eficientemente se debe tener una temperatura mínima por lo tanto al iniciar el funcionamiento del sistema cuando la temperatura de los cilindros y el refrigerante es bastante baja se debe evitar refrigerar los cilindros para lograr un punto de operación eficiente en el generador, empero tampoco se debe detener el flujo del refrigerante ya que se necesita que este se caliente también uniformemente sino que se debe mantener su flujo lo más bajo posible. • • • El comportamiento final del controlador observando la respuesta de las entradas y salidas respectivamente se tiene en la siguiente figura. Figura 85. Respuesta del controlador fuzzy AL220 4. FUZZY HARDWARE 4.1 SISTEMAS DE DESARROLLO PARA FUZZY LOGIC 4.1.2 Togai InfraLogic - FCA Technology En fuzzy hardware Togai InfraLogic tiene disponible el sistema de desarrollo FCA (Fuzzy Computational Accelerator), el cual es una tecnología basada en un núcleo (CORE) que provee un diseño VLSI rápido y fácil. Togai InfraLogic ofrece dos complementos para implementar un sistema FCA: Coprocesador fuzzy VY86C570 y la librería para el CORE FCA VY86C500. La características principales de la tecnología FCA son: • Escalizable desde 8 a 32 bits • Optimización de reglas basado en formatos • Rápida ejecución de reglas fuzzy • Defuzzificación calculada en el CORE por: método de centroide, altura y alfa • Flexibilidad en las reglas • Varias premisas en representación mbf incluyendo mapas, listado de puntos • Operaciones fuzzy AND, OR y NOT • Provee una evaluación completa de las reglas fuzzy (evaluación de premisas alfa, conclusión mbf, composición y defuzzificación). Figura 86. Aplicaciones FCA 125 4.1.2.1 VY86C500 FCA Core Library Es un elemento de la librería de fuzzy logic que provee el manejo de 12 bit para propósito general. Requiere memoria RB y un Observación/ Conclusión/ Datos temporales (OCTD) y Memoria de intercambio (SMI). El CORE desempeña los cálculos fuzzy incluyendo la evaluación de las funciones de membresía, evaluación de reglas, composición de las funciones de membresía de salida y defuzzificación. La inferencia se realiza por los métodos de suma de productos, centroide, altura o métodos alfa de defuzzificación. Figura 87. Diagrama de bloques VY86C500 4.1.2.2 VY86C570 FCA Chip Es un coprocesador fuzzy de alto desempeño con un núcleo FCA (Fuzzy Computational Acceleration) de 12 bit, 4K x 12 OCTD (Observation, Conclusion, & Temporaly Data), RB(Rule Base) SMI (Shared Memory Interface), y una interface lógica. Todo esto combinado en un solo integrado. Características: • Bajo consumo, < 250mW • Alto desempeño. opera a 20 MHz 126 • • • • Alta resolución, opera a 12 bit Extremadamente rápido, interface de 70µseg., evaluación hasta de 800.000 reglas fuzzy por segundo Hasta 1024 entradas o salidas (dependiendo de la memoria RB implementada) Defuzzificación calculada en el CORE por los métodos de centroide, altura o alfa 4.1.2.3 Precio Este sistema de desarrollo fuzzy de InfraLogic Technology, solo ORTECH ENGINEERING INC. y su costo es: HFDP (FCA Kit de evaluación e incluye lo descrito anteriormente) FC110 Chips (VY86C570 adicional) OEI552 (Kit de desarrollo) TILShell (software de desarrollo edición estándar) es distribuido por $ 950.00 $ 75.00 $ 495.00 $1650.00 Figura 88. Circuito Integrado FCA 4.1.3 GMD 4.1.3.1 Fuzzy Set 001 A Reconfigurable Analog Fuzzy Controller Es un controlador fuzzy con 2 entradas y una salida. Utiliza como método de inferencia la operación min-max de Mamdani y para la defuzzificación emplea el método de centro de gravedad. Cada entrada salida consiste de 5 términos lingüísticos: NL, NS, Z, PS, PL. El controlador implementa 13 reglas fuzzy, las cuales se seleccionan por pines de control. Sus características principales son: • 2 entradas y 1 salida en modo de voltaje • 13 reglas configurables • Operación hasta 6 MFLIPS • Definición ajustable de términos fuzzy para cada entrada y salida • Opera a +6V y -6V 127 4.1.3.2 Fuzzy Set 002 A Reconfigurable Analog Fuzzy Controller Esta diseñado para aplicaciones fuzzy en tiempo real y sistemas fuzzy hardware de alta velocidad. Utiliza como método de inferencia la operación min-max de Mamdani y para la defuzzificación emplea el método de centro de gravedad. Sus principales características son: • Método de inferencia max-min • Defuzzificador incluido en el integrado • Alta velocidad de procesamiento, hasta 4.3 MFLIPS • Soporta S-, Z-, MFs (Membership Function) triangular y trapezoidal • Hasta 125 reglas (3 antecedentes, 1 consecuente) • 3 entradas y 1 salida en modo voltaje • 8 bit de dirección y 8 bit de bus de datos • Disponibilidad de herramientas de desarrollo Figura 89. Diagrama de bloques Fuzzy Set 002 Los precios de estos integrados fueron imposibles de encontrar, se consiguieron la referencias y las hojas técnicas con Liliane Peters en Alemania ([email protected]) pero fue fallido todo nuevo intento de colaboración. 4.1.4 SGS-THOMSON MICROELECTRONICS W.A.R.P. FAMILY - HCMOS FUZZY DEDICATED MICROPROCESSORS 128 La familia W.A.R.P. son microprocesadores para fuzzy logic operan con variables lingüísticas y razonamiento humano. Esta familia esta compuesta por dos integrados: W.A.R.P. 1.1 y W.A.R.P.2.0. 4.1.4.1 W.A.R.P. 1.1 (WEIGHT Associative Rule Processor) Se caracteriza por: • Alta velocidad en el procesamiento de reglas • Funciones de membresía para los antecedentes con una forma • Funciones de membresía • Hasta 256 reglas (4 antecedentes, 1 consecuente) • Hasta 16 variables de entrada configurables • Hasta 16 funciones de membresía por cada variable de entrada • Hasta 16 variables de salida • Hasta 128 funciones de membresía para todos los consecuentes • Método de inferencia: MAX-DOT • Defuzzificador incluido en el integrado • Disponibilidad de herramientas de software y emuladores Figura 90. Diagrama de bloques W.A.R.P. 1.1 4.1.4.2 W.A.R.P. 2.0 (WEIGHT Associative Rule Processor) 8-Bit Fuzzy Co-Processor Sus características principales son: • Co-Procesador Digital Fuzzy de 8-bit I/O • Alta velocidad de procesamiento de reglas 4 entradas, 2 salidas, 32 reglas en 33.1µseg. 129 • • • • • • • • • • • • • Hasta 256 reglas (4 antecedentes, 1 consecuente) Hasta 8 variables de entradas configurables Hasta 16 funciones de membresía para los antecedentes con forma triangular y trapezoidal Hasta 4 variables de salida Hasta 256 funciones de membresía para todos los consecuentes Defuzzificador en el mismo integrado Máxima frecuencia de reloj de 40 MHz Pulso prefijado para iniciar la conversión A/D Interface directa a los microprocesadores más comunes Operación STAND ALONE Polaridad prefijada para la señal de handshaking Alimentación de +5V Disponibilidad de herramientas de software y emuladores Figura 91. Diagrama de bloques W.A.R.P. 2.0 4.1.4.3 Precio El sistema de desarrollo fuzzy de SGS-THOMSON, es distribuido por NUHORIZONS INC. y su costo es: Sistema de desarrollo $1000.00 W.A.R.P. 1.1/W.A.R.P. 2.0 $ 6.00 5. CONCLUSIONES Las redes neuronales, aunque son difíciles de modificar debido a que su base de conocimiento se encuentra distribuida en todos sus elementos, son muy fáciles de entrenar en base modelos o ejemplos, es decir ya sea con aprendizaje supervisado o no supervisado, mientras que los sistemas basados en fuzzy logic son bastante difíciles de entrenar y afinar, aunque sus modificaciones son muy fáciles de realizar y el cambio en una regla, si este se realiza correctamente, no afecta para nada el funcionamiento total de sistema; por lo cual se pueden localizar y corregir rápidamente cualquier tipo de inconveniencias en la respuesta del mismo sin necesidad de una reconfiguración total de la base de conocimientos. Es vital para el entrenamiento y afinamiento tanto de controladores basados en fuzzy logic como en redes neuronales que los datos sean suministrados en forma coherente, es decir, teniendo en cuenta que no se le deben entregar datos ideales, libres de todo ruido o perturbación, sino que al contrario, se debe procurar en lo posible que al realizar las pruebas, estas se hagan en condiciones extremas, incluso aquellas a las que el sistema, se supone, nunca va a ser sometido para de esta manera asegurar que se obtendrá un sistema robusto, con la suficiente tolerancia a fallas de todo tipo, como pueden ser los errores de deriva, calibración o comunicaciones con los sensores o transductores externos e incluso en el caso de una posible falla total de una de las variables de entrada o en uno de los actuadores de salida. Para mejorar el tiempo de respuesta del sistema es aconsejable seguir la misma filosofía anterior, y aun cuando los controladores no cubran los requerimientos de las muestras o modelos de entrenamiento, por ejemplo en cuanto a ancho de banda, slew rate, precisión, etc., como dichos requerimientos están muy por encima de los del problema real, este será sin lugar a dudas, dentro de lo posible, óptimamente solucionado. Aún cuando gran cantidad de problemas a resolver por medio de redes neuronales solo requieren la utilización de una capa oculta, por razones de generalización y considerando el estado actual de desarrollo de los recursos computacionales, es preferible utilizar redes con dos capas ocultas las cuales, teóricamente son capaces de resolver cualquier tipo de problema así este no sea de tipo lineal, tenga múltiples entradas y/o múltiples salidas y sus clases no sean linealmente separables. Los resultados obtenidos demuestran que las implementaciones de redes neuronales mediante software aún cuando adolecen de una baja velocidad de procesamiento al ser ejecutadas en microcontroladores sin coprocesador matemático, en la mayoría de los casos son más que suficientes para la solución de una amplia variedad de problemas, sin necesidad alguna de realizar cambios 131 drásticos en su estructura. El mismo algoritmo de aprendizaje aplica a diversos tipos de sistemas; lo único que se modifica son las muestras, las cuales a su vez hacen que se modifiquen los pesos de las sinapsis y el bias de las neuronas pero manteniendo intacta la topología del sistema. Existen actualmente gran cantidad de herramientas computacionales para utilización en problemas de ingeniería aplicada como son paquetes de simulación, procesamiento de datos, estadística, control de procesos, adquisición de datos, CAD, CAM, etc. entre los cuales se destacan los siguientes: Labview, Mathcad, Matlab, Intellution, Excel, Orcad, Pspice, EWB, etc. y con los cuales se pueden realizar todo tipo de procesos a la información que entra o sale de los sistemas, dando valiosa información a cerca de como mejorarlos y sobre todo ahorrando gran cantidad de tiempo en el desarrollo de proyectos. Todos estos programas soportan directa o indirectamente la utilización de módulos, tool-boxs, librerías u otro tipo de interfaces con sistemas de procesamiento tanto de fuzzy logic como de redes neuronales que reducen considerablemente el esfuerzo realizado para la realización de proyectos que envuelvan este tipo de tecnologías. Como se mostró en el diseño y realización de este proyecto, las tecnologías actuales debido a su nivel de integración y complejidad, permiten e incluso a veces, requieren, que la lógica de control utilizada sea muy compleja, lo que hace muy poco práctica la utilización de lógica cableada (compuertas, decodificadores, etc. interconectados entre sí) dejando solo la opción de la lógica programable, la cual es una herramienta muy poderosa para el desarrollo de este tipo de proyectos. Por ejemplo, en el diseño básico del SCINEF dos PAL eléctricamente reprogamables, las cuales al ser reemplazadas por lógica cableada se convertirían en al menos 11 integrados, los cuales a su vez ocuparían 10 veces mas espacio en el circuito impreso y consumiendo, además, 8 veces más corriente que la actual. Otra ventaja adicional de la lógica programable es que se puede reconfigurar con extrema facilidad en solo minutos en caso de modificaciones en las condiciones de la lógica control del sistema por adición de periféricos u otros aspectos; estos mismo sería imposible si se tuviese un diseño con lógica cableada. (Por cierto la relación de costos es mayor de 10:1 en favor de la lógica programable). Al solucionar todos los detalles de un proyecto tanto en software como en hardware, cuando llega el momento de resolver el problema macro, esto se realiza casi de forma inmediata o como consecuencia de lo ya desarrollado ya que todos los problemas de interface entre componentes ya se encuentran solucionados. En niveles básicos de ingeniería, se toman los componentes que se tienen a disposición y se adaptan para la tarea que se necesita realizar; esto en general puede llegar a ser algo económico financieramente hablando pero un desperdicio total en tiempo. Cuando se desea realizar un proyecto con los más altos estándares de calidad no se puede recurrir a lo anteriormente mencionado, ya que si se considera el estadio actual de desarrollo de las comunicaciones y de los medios de transporte, el comercio con cualquier país del mundo (especialmente con los Estados Unidos) se encuentra relativamente al alcance de la mano. Por ejemplo, si 132 se requiere un tipo de integrado que realice una función específica a cierta velocidad, con cierto consumo de potencia, con un rango de costo determinado, con un voltaje de operación especial, empaque, etc., no se busca el equivalente más cercano o compatible y se mira que pasa; se busca quienes lo fabrican, por intermedio de quien lo venden y cuanto tiempo se demora en enviarlo al lugar donde es requerido; lo cual gracias al Internet es labor tal vez de unas pocas horas o a lo sumo días. Seguramente en esta búsqueda se encontrarán referencias mejores que cumplan los requerimientos exigidos mucho mejor de lo planteado inicialmente, obteniendo con esto, como ya se había dicho, estándares de calidad, robustez, rendimiento, velocidad y ciclo de vida útil mayores a los esperados. BIBLIOGRAFIA CHEN, C.H, Fuzzy Logic and Neural Networks Handbook. Mc Graw Hill, Inc. 1996 CONSEJO SUPERIOR DE INVESTIGACIONES CIENTIFICAS. Aplicaciones de la lógica borrosa. Madrid: Julio Gutiérrez Ríos Editores, 1992. DIAZ, Adenso y Otros. Optimización Heurística y Redes Neuronales. Madrid: Editorial Paraninfo S.A., 1996. FAUSETT, Laurence. Fundamentals of Neural Netrworks. Architectures, Algoritms and applications. Englewood Cliffs: Prentice Hall, 1994. HAYKIN, Simon. Neural Networks, A Comprehensive Foundation. New York: Macmillan College Publishing Company, 1994. HERNANDEZ, Germán y Otros. Memorias del Primer Congreso Colombiano de Neurocomputación. Santafé de Bogotá, D.C.: Editora Guadalupe Ltda., 1996. HILERA, José y MARTINEZ, Víctor. Redes Neuronales Artificiales. Fundamentos, Modelos y Aplicaciones. Adison-Wesley Iberoamericana, 1995. KLIR, George y FOLGER, Tina. Fuzzy Sets, uncertanty and information. KOSKO, Bart. Neural Networks and fuzzy system, A dinamical system approach to mackhine intelligence. ________. Neural Networks for signal processing. Englewood Cliffs: Prentice Hall, 1992. MAMDANI, E. H., Application of Fuzzy Logic to Approximate Reasoning Using Linguistic Synthesis, IEEE Transactions on Computers, Vol. C-26, No. 12 (1997), p. 1182-1191. MCNEILL, Martin y THRO, Ellen. Fuzzy Logic, A practical Approach. Cambridge: Ap Profesional, 1994. NIE, Junhong y LINKENS Derek. Fuzzy-Neural Control, Principles, algorithms and applications. Englewood Cliffs: Prentice Hall, 1995 134 TANAKA, Kazuo. An Introduction to Fuzzy Logic for Practical Applications. Springer. 1997. SKAPURA, David. Building Neural Networks. Adison-Wesley Iberoamericana, 1995. VON ALTROCK, Constantin. Fuzzy Logic & Neurofuzzy Applications Explained. Englewood Cliffs: Prentice Hall, 1995. ZADEH, L. A., Fuzzy Sets, Information and Control, Vol. 8, (1965), p. 338-353. ZIMMERMANN, H. and THOLE, U., On the Suitability of Minimum and Product Operators for the Interception of Fuzzy Sets, Fuzzy Sets and Systems, 2, p. 173-186.


Comments

Copyright © 2025 UPDOCS Inc.