IMPLEMENTACIÓN DE ALGORITMO DE CONTROL FUZZY PI
EN UN DISPOSITIVO DE LÓGICA PROGRAMABLE
Lya Velazco Molina,Universidad de la Habana Cuba [email protected]
Matilde Santos Peña, Universidad Complutense de Madrid [email protected]
Resumen
Algunos sistemas de control inteligente para diferentes aplicaciones, hasta el momento, se han desarrollado a partir de implementaciones de software cuyas limitaciones vienen dadas fundamentalmente por la velocidad. Con este trabajo se pretende un aporte científico significativo para mejorar este aspecto, el estudio está enfocado principalmente, al desarrollo de una plataforma de sistemas que permitan la realización de controladores inteligentes híbridos reconfigurables sobre un dispositivo programable, En nuestro trabajo hemos implementado un algoritmo de control fuzzy PI en una FPGA Spartan 3 dispuesta en un módulo XSA-3S1000
Palabras Clave: Control inteligente, controladores híbridos, FPGAs, codiseño Hw/Sw, Control Fuzzy PID
1 INTRODUCCIÓN
El impetuoso desarrollo de la microelectrónica ha conducido a un déficit cada vez mayor entre las capacidades de integración que permite la tecnología de circuitos integrados y las capacidades de realización que los diseñadores pueden incorporar en dichos circuitos. Por esta razón, las técnicas tradicionales de diseño digital han sido desplazadas por técnicas avanzadas que permiten introducir significativas ventajas y reducir el déficit señalado. [5-8] En esta dirección se enmarca el presente trabajo, en el mismo se propone una plataforma de desarrollo de sistemas de control que permitan la realización de controladores inteligentes híbridos reconfigurables como sistema empotrado sobre un dispositivo programable, haciendo uso de las técnicas avanzadas de diseño de sistemas digitales.
En este trabajo abordaremos de manera inicial las técnicas avanzadas de diseño de sistemas digitales. Posteriormente nos introduciremos en el control inteligente haciendo mayor énfasis en el modelo Neuro-Fuzzy. Además expondremos, teniendo en cuenta lo anterior, como mediante la vinculación de ambos temas se prevé desarrollar controladores inteligentes sobre dispositivos programables con muchas opciones de configurabilidad combinando así implementaciones hardware-software y por tanto las ventajas de ambas.
Esto constituye un enfoque novedoso y debe representar un aporte significativo en el desarrollo de los sistemas de control inteligente ya que hasta el momento se han estado desarrollando diferentes algoritmos para distintas aplicaciones, a partir de implementaciones software fundamentalmente y por consiguiente con las limitantes que estas implementaciones tienen en cuanto a velocidad. La aportación de esta contribución es la siguiente: En la sección 2 se hace un resumen de la técnicas avanzadas de de diseño de sistemas digitales. Las ventajas que aporta la utilización de algoritmos de control inteligente son resumidas en la sección 3. En la sección 4 se habla de la implementación fuzzy PI en la FPGA Spartan 3. Por último, en la sección 5 y a manera de conclusiones, abordamos la importancia que representa para nuestro estudio futuro el desarrollo de este trabajo.
2
TÉCNICAS AVANZADAS DE
DISEÑO DE SISTEMAS
ELECTRÓNICOS DIGITALES
Las técnicas avanzadas de diseño de sistemas electrónicos digitales complejos conforman un paquete tecnológico que agrupa a los lenguajes de descripción de hardware, la utilización de dispositivos lógicos programables, el desarrollo de los sistemas electrónicos empotrados, las técnicas de reusabilidad con énfasis en la utilización de módulos de Propiedad Intelectual y las técnicas de codiseño hardware/software. Estas técnicas no deben ser tratadas de forma aislada sino que su potencialidad radica en la utilización conjunta de las mismas. Así, mediante la utilización de las técnicas avanzadas de diseño digital, se incrementa la productividad de los diseñadores y se reduce el déficit relativo a la capacidad de integración. 2.1 LENGUAJES DE DESCRIPCIÓN DE
HARDWARE
Los lenguajes de descripción de hardware (HDL, Hardware Description Language) consisten en una descripción software, mediante una determinada sintaxis, de la funcionalidad de una componente hardware. La ventaja fundamental que reporta la utilización de estos lenguajes es permitir la descripción de diseños complejos con un alto grado de abstracción. De esta forma, y con el auxilio de las herramientas de CAD asociadas tanto al lenguaje como al dispositivo soporte de la implementación final, se libera con frecuencia al diseñador de los detalles específicos de cómo implementar una determinada funcionalidad, logrando así un incremento considerable en la productividad del diseñador con los consiguientes beneficios de reducir el tiempo de desarrollo del producto y, por consiguiente, su costo. Entre los lenguajes de descripción de hardware más conocidos se encuentran el VHDL (Very high speed integrated circuit Hardware Description Language) y el Verilog.
2.2 UTILIZACIÓN DE DISPOSITIVOS LÓGICOS PROGRAMABLES
Los dispositivos lógicos programables (Programmable Logic Devices, PLD) son componentes electrónicas cuya funcionalidad se determina al configurar (programar) el dispositivo. De forma general pueden ser interpretados como una estructura formada por una gran cantidad de componentes básicos que pueden ser interconectados entre si. Dependiendo de la funcionalidad que se desee las interconexiones serán diferentes, por lo que la programación del dispositivo consiste en establecer las interconexiones entre los componentes básicos del mismo para lograr la funcionalidad deseada.
La utilización de dispositivos programables es otro de los elementos distintivos de las implementaciones digitales actuales. Entre los dispositivos programables más conocidos se encuentran los PAL (Programmable array logic), los PLD (Programmable logic device) y las FPGAs (Field Programmable Gate Arrays), siendo estas últimas las de mayor potencialidad. El propio avance de la microelectrónica ha posibilitado que los recursos disponibles en los FPGAs actuales sean suficientes para contener todo un sistema digital complejo como bloques de memoria RAM con estructura multipuesto, circuitos de reloj, multiplicadores, microprocesadores, etc [12]
2.3 DESARROLLO DE SISTEMAS DIGITALES EMPOTRADOS
Por otro lado el avance vertiginoso de la industria microelectrónica ha permitido la integración de gran cantidad de recursos sobre un único circuito. Esta potencialidad permite empotrar en un solo circuito integrado todo un sistema electrónico complejo. En un único circuito estarán empotradas dos o más macrocomponentes electrónicas que antes se interconectaban como circuitos independientes. [3]
2.4 REUSABILIDAD DE LOS DISEÑOS Y UTILIZACIÓN DE MÓDULOS DE PROPIEDAD INTELECTUAL Una de las técnicas de diseño digital avanzado de mayor importancia son aquellas que permiten aprovechar toda la experiencia de desarrollos previos en los nuevos diseños, característica que se conoce como Reusabilidad. Esta técnica ha potenciado descripciones de circuitos bien documentadas, mediante un lenguaje de descripción de Hardware, fiables, y con adecuadas herramientas de desarrollo, a esto se le denomina Módulos de propiedad intelectual (IPs) y es lo que permite a los diseñadores reutilizar componentes ya diseñadas, liberándose así de los detalles de las implementaciones de algunas componentes y concentrándose fundamentalmente en los elementos de interconexión y la lógica adicional a implementar. Como ejemplo de esto tenemos: • Microprocesadores y microcontroladores • Interfaces de comunicación
• Procesadores digitales de señal • Interfaces para buses
• Controladores diversos (temporizadores, controladores de interrupción, de memoria, de red)
Así, ante el reto actual de diseñar un sistema digital empotrado, la tecnología de IPs constituye una herramienta imprescindible para permitir la reusabilidad de los diseños y facilitar que los diseñadores se concentren en los objetivos generales del sistema a diseñar más que en los detalles particulares de una componente local. Un sistema empotrado puede estar entonces compuesto de diversos módulos IP con funcionalidad bien depurada y elementos de hardware específico para la aplicación. Sobre estos últimos es que los diseñadores deben centrar su atención.
2.5 TÉCNICAS DE CODISEÑO
HARDWARE/SOFTWARE
Una forma de obtener un adecuado compromiso entre velocidad y flexibilidad es mediante las realizaciones híbridas hardware /software (HW/SW). Así, algunas tareas son ejecutadas en soporte software y otras implementadas mediante hardware específico. La esencia de las técnicas de codiseño hardware/software consisten en buscar la mejor alternativa (hardware o software) de implementar las diferentes tareas de un sistema digital, con el objetivo de obtener la mejor relación costo/velocidad y constituyen uno de los aspectos de mayor desarrollo actual dentro de las técnicas avanzadas de diseño de sistemas digitales complejos. [2-4-9-10-11]
3. ALGORITMOS DE CONTROL
INTELIGENTE
El Control Inteligente es un elemento indispensable en los sistemas de producción actuales. En la actualidad se utilizan algunas técnicas novedosas como son: lógica difusa, redes neuronales, sistemas expertos, algoritmos genéticos, esto no solo por el control de procesos, sino por el diagnóstico y reconfiguración de todo tipo de sistemas. El objetivo fundamental de esta línea de investigación es aplicar estas técnicas de la inteligencia artificial y obtener sistemas de control que sean más versátiles y cuya operación sea más simple. Todo esto trae como consecuencia un aumento en la disponibilidad y seguridad de los equipos, así como una reducción en los tiempos de modelado del sistema, y capacitación de los operadores en las tareas de mantenimiento. De manera general podemos describir los sistemas de control inteligentes como:
• Sistema que tiene la habilidad para actuar de forma apropiada en un entorno incierto
• Inteligencia, Proceso de análisis, organización y conversión de datos en información estructurada (conocimiento) • Posibilidad de sustituir a la mente humana
en una función dada, para la toma de decisiones, planificación y aprendizaje. • Utiliza de forma combinada técnicas de
Inteligencia Artificial, Investigación Operativa y Control.
• Capacidad del sistema de asemejar el comportamiento de alguno de sus elementos a alguna de las cualidades cognoscitivas del comportamiento humano, como el aprendizaje, el razonamiento simbólico, la planificación o la adaptación a un medio cambiante.[6]
3.1 ALGORITMO FUZZY PI A IMPLEMENTAR EN LA FPGA
En este trabajo estamos implementando un algoritmo de control Fuzzy PI en una FPGA. Un regulador proporcional-integral o PI tiene en cuenta el error y la integral del error. La ación de control se calcula multiplicando ambos valores por una constante y sumando los resultados. Los valores de las constantes, que reciben el nombre de constante proporcional e integral, definen el comportamiento del regulador. Para que el controlador borroso, produzca una acción de control proporcional e integral, se seleccionan como variables de entrada el error (e) y el cambio en el error (ce), y como salida el cambio o variación de la acción de control (U). Esta configuración es equivalente a considerar como entradas el error y la suma del error si la salida es la acción de control en términos no incrementales [7] Se les asignan dos etiquetas a cada una de las entradas, y se toman tres términos para las variables de salida:
i = N, P j = N, P k = N, Z, P Las reglas borrosas que constituyen la base de reglas de un controlador borroso PI incremental son de la forma:
Ri : si e es Ai y ce es Bi entonces U es Ui
Representan una relación borrosa R: U = R[GE.e(t), GR.ce(t)]
que viene explicitada en cuatro reglas de control:
R1 : si GE.e es P y GR.ce es P entonces U es P
R2 : si GE.e es P y GR.ce es N entonces U es Z
R4 : si GE.e es N y GR.ce es N entonces U es N
Tabla 1: Reglas de control para el PI
GE.e(t)
U P N
GR.ce(t) P P Z
N Z N
Como método de desborrosificación se utiliza Centro de gravedad del área de la curva suma(o punto que deja el mismo área a ambos lados del mismo). De los métodos de desborrosificación, este es el más utilizado. Genera como acción de control, el centro de gravedad de la función de partencia µC(z) de la acción de control. Para un
universo discreto de n elementos, el centro de gravedad se calcula como:
(1)
siendo zi la media y µC(zi) la masa de la función de pertenencia asociadas a cada etiqueta lingüística de la variable de salida, y n el número de reglas. Presenta la ventaja de que es un método robusto frente a variaciones en los parámetros de las funciones de pertenencia.
4. Implementación del controlador
fuzzy PI en la FPGA
El un Controlador Fuzzy PI de implemnta en lenguaje VHDL sobre una FPGA Spartan 3 soportada en una placa XSA-3S1000, en ella, la alta densidad de compuertas lógicas, el gran número de pines entrada-salida ( IOs) así como la memoria externa SRAM y FLASH, nos permite, realizar la implementación de un diseño de bajo coste, en un tiempo record. En la figura 1 se muestra el código en VHDL del método de desborrosificación empleado.
Figura 1: Método de desborrosificasión La tarjeta XSA-3S1000, esta organizada de la siguiente manera: [13]
• Una FPGA Spartan3 de XILINX XC3S1000-4FT256, la misma posee un millón de compuertas lógicas
• Un CPLD XC9572XL-10VQ64, este constituye la interfaz entre el puerto paralelo del PC y la FPGA
• Un oscilador que proporciona 100 MHZ de señal de reloj, la misma llega al CPLD quien a su vez genera dos señales de reloj CLKA y CLKB las cuales llegan a las entradas de reloj de la FPGA. Por defecto estas señales son de 100 Mhz y 50 Mhz respectivamente, aunque esto puede ser reprogramado para enviar frecuencias de reloj mas bajas a la FPGA en caso de que se desee.
• 256 M bit de memoria SDRAM conectadas a la FPGA
• Un led siete segmentos
• Cuatro interruptores unidos a la FPGA • Un puerto PS/2 para una interfaz con el
teclado o con el ratón
• Puerto VGA por el cual la FPGA puede generar señal de video para mostrar en un monitor VGA
La tarjeta XSA-3S1000 es insertada en una XStend Borrad V3.0 la cual brinda muchas más opciones de configurabilidad y facilidades para el diseño. Entre las mismas se encuentran otros tres led, dos de ellos de siete segmentos y uno en forma de barra de diez posiciones, interruptores y DIP switches que sirven como simples dispositivos de entrada, decodificador de video, otro puerto RS-232, interfaz USB, un interfaz de Ethernet, un interfaz IDE para disco duro que da acceso a la FPGA al almacenamiento de datos a largo plazo de manera permanente. Además nos da la posibilidad de conectar varios módulos. Una vista de este sistema se puede ver en la figura 2. [14]
REFERENCIAS
[1] Altera Corp, http://www.altera.com [2] Baturone, I., Barriga, A.,
Sánchez-Solano, S., Jiménez, C.J., López, D. , 2000, Microelectronic Design of Fuzzy Logic-Based Systems, CRC Press
[3] Becker, J., 2002, Configurable systems-on-chip (CSoC), Proceedings 15th Symposium on Integrated Circuits and Systems Design, p. 379-384, Sep. 2002 [4] Micheli, de G., Gupta, R.,
Hardware/software co-design, Proceedings of the IEEE, vol. 85, n. 3, p.
349-365, Mar. 1997 Figura 2: XStend Board
5. CONCLUSIONES
[5] Ferrari, A., Sangiovanni-Vincentelli, A., 1999, System design: traditional concepts and new paradigms, International Conference on Computer Design, p. 2-12, Oct.
El campo del control general, específicamente en el Control Inteligente, interesa mucho que el control sea ejecutado en tiempo real, ya que existen sistema donde el tiempo de respuesta es crítico. Para disminuir el tiempo se pueden optimizar los algoritmos o implementarlos en una arquitectura hardware o en FPGAs. Esto tiene la ventaja de que su ejecución será más rápida, sin embargo, al ser dispositivos o circuitos dedicados si se implementan en hardware, se pierde generalidad.
[6] Mar, M., Sullam, B., Blom, E., 2003, An architecture for a configurable mixed-signal device, IEEE Journal of Solid-State Circuits, vol. 38, n. 3 , p. 565-568. [7] Santos Peñas Matilde, 1994,
Contribución a los métodos de sintonía de los controladores basados en lógica borrosa. Tesis Doctoral
Se prevé que con la combinación de las técnicas de reutilización de los módulos de propiedad intelectual y las generaciones actuales de FPGAs, sea posible el desarrollo de controladores inteligentes, sobre dispositivos programables con muchas opciones de configurabilidad, combinando así implementaciones hardware-software y por tanto las ventajas de ambas.
[8] Savage, W., Chilton, J., Camposano, R., 2000, IP reuse in the system on a chip era, Proceedings13th International Symposium on System Synthesis, p. 2-7. [9] Tabbara, B., Tabbara, A., Sangiovanni,
A., 2000, “Function/architecture optimization and co-design of embedded systems”, Kluwer Academic Press, [10] Wolf, W, 1994., Hardware-software
co-design of embedded systems, Proceedings of the IEEE, vol. 82, n. 7, p. 967-989..
Al desarrollar un control fuzzy PI en una FPGA, hemos logrado iniciarnos en el tema de la implementación de algoritmos de control inteligente en dispositivos de lógica programable. Nuestro objetivo fundamental consiste programar controladores inteligentes de mayores complejidades como son redes neuronales u otros controladores Fuzzy, siempre con la idea de mejorar tiempos de respuestas y opciones de configurabilidad.
[11] Wolf, W., 2003 A decade of hardware/software codesign, Computer, vol. 36, n. 4, p. 38-43..
[12] Xilinx Inc, http://www.xilinx.com [13] XSA-3S1000 Board V1.0 User Manual [14] XStend Board V3.0 Manual