Está en la página 1de 10

DISEO E IMPLEMENTACION DE UN CONTROLADOR DIFUSO BASADO EN FPGA.

V. H. Grisales1 , J. E. Bonilla2, M. A. Melgarejo2

Universidad Distrital Francisco Jos de Caldas , Santaf de Bogot , Colombia. (1) Grupo de Investigacin y Desarrollo en Instrumentacin y Control UD ( GIDIC ). (2) Grupo de Investigacin en Lgica Programable y Tcnicas digitales UD ( GILP ).

Contacto: Miguel Melgarejo E-mail: gilp@udistrital.edu.co

Resumen: Este articulo presenta El desarrollo de un controlador difuso PD basado en FPGA , la inferencia se lleva a cabo por medio de una Look Up Table de 256 posiciones. El sistema ha sido especificado empleando un estndar como VHDL integrando en un solo IC la arquitectura del controlador , modulo de comunicacin dedicado y mdulos de conversin digital analgico basados en PWM y modulacin sigma-delta. Se ha utilizado MATLAB como plataforma de trabajo para llevar acabo el proceso de diseo y prueba del controlador y su sistema de desarrollo. Abstract : This paper shows the development of a FPGA based PD fuzzy controller , the inference was made using a 256 values Look Up Table. The system integrates the controller architecture , communication unit and two DAC modules : PWM based and sigma-delta modulation based. The specification of the system has been made using VHDL. The work tool used was MATLAB , this tool allowed to develop the design and probe process of the controller and its associated system.

DISEO E IMPLEMENTACION DE UN CONTROLADOR DIFUSO BASADO EN FPGA.


V. H. Grisales1 , J. E. Bonilla2, M. A. Melgarejo2 Universidad Distrital Francisco Jos de Caldas , Santaf de Bogot , Colombia. (1) Grupo de Investigacin y Desarrollo en Instrumentacin y Control UD ( GIDIC ).

(2) Grupo de Investigacin en Lgica Programable y Tcnicas digitales UD ( GILP)


Resumen: Este articulo presenta El desarrollo de un controlador difuso PD basado en FPGA , la inferencia se lleva a cabo por medio de una Look Up Table de 256 posiciones. El sistema ha sido especificado empleando un estndar como VHDL integrando en un solo IC la arquitectura del controlador , modulo de comunicacin dedicado y mdulos de conversin digital analgico basados en PWM y modulacin sigma-delta. Se ha utilizado MATLAB como plataforma de trabajo para llevar acabo el proceso de diseo y prueba del controlador y su sistema de desarrollo.
Palabras Clave: Hardware difuso , Control difuso , FPGA.

I. INTRODUCCIN Los sistemas de control difuso han generado un impacto apreciable dentro del contexto acadmico e industrial, su implementacin se encuentra soportada tradicionalmente por plataformas completas de computo o ICs de aplicacin especifica que generan un compromiso con una tecnologa particular. Con el desarrollo de los dispositivos lgicos programables y las metodolgicas de diseo asociadas como es el caso de los lenguajes de descripcin de hardware ; es posible construir sistemas computacionales complejos que integran en un solo IC una gran cantidad de funciones, siendo de naturaleza reconfigurable , por lo tanto , el proceso de desarrollo involucrado presenta un alto grado de flexibilidad . Teniendo en cuenta el panorama anterior , este trabajo tiene por objetivo integrar tanto lgica difusa como lgica programable en un esquema de controlador PD difuso. Para tal efecto , se tiene en cuenta los siguientes principios : la lgica difusa puede ser vista como una metodologa para la extraccin de mapeos no lineales a partir de un conjunto de reglas de control y en segundo lugar , la lgica programable ofrece los recursos adecuados para la implementacin de mapeos booleanos. El proceso de integracin llevado a cabo va ms all de convertir un mapeo de control no lineal en una estructura fsica de naturaleza digital , tambin incluye el desarrollo de las estructuras necesarias para el tratamiento de las variables asociadas al controlador , mdulos de conversin digital analgico y sistemas de comunicacin para operacin en un ambiente industrial . El proceso de integracin inicia con un estudio de los problemas de cuantificacin y truncamiento al ser el controlador un sistema digital con longitud de palabra finita ; se establece un modelo adecuado para su implementacin en hardware , dicho modelo se especifica en VHDL para ser sintetizado e implementado en una FPGA empleando herramientas de trabajo en Lgica programable. Por ultimo , se han desarrollado una serie de aplicaciones complementarias en MATLAB , de esta forma el controlador puede ser configurado y sintonizado bajo Simulink ; Establecindose una plataforma completa en lgica difusa que permite realizar un trabajo de diseo Off Line , llevarlo hacia un dispositivo digital , en donde previo a su funcionamiento en campo , es posible sintonizarlo empleando emulacin .

II. SISTEMAS DIFUSOS BASADOS EN LUTs. La teora de los sistemas difusos tiene una contribucin importante en el sentido de ofrecer un procedimiento sistemtico para transformar un conjunto de reglas lingsticas en un mapeo no lineal [2] ; En el caso de un controlador difuso , todo el sistema compuesto por fusificador, defusificador , base de reglas y motor de inferencia puede ser reemplazado por un mapeo no lineal o superficie de control , la cual se extrae realizando el proceso de inferencia difusa sobre un barrido completo de los universos discurso de entrada para obtener las salidas correspondientes entregadas por el defusificador. En el caso de un controlador difuso con una base de M reglas , motor de inferencia por producto , defusificador por centro promedio y funciones de pertenencia gaussianas , puede ser representado por (1) [2] ;

empleando esta expresin sobre cada uno de los puntos del dominio de x , se establece la superficie de control equivalente. A Modo de ejemplo considrese el caso del pndulo invertido , para el cual se construye un controlador difuso que pretende balancearlo observando el error de posicin ( E ) y el cambio en dicho error ( CE ) con el fin de generar una fuerza actuante U como variable de control.
_ n ( x x il ) 2 y l exp 2 i l 2 i =1 l =1 a i + ( i ) f ( x) = _ M n ( x x il ) 2 exp 2 i l 2 l =1 i =1 a i + ( i )

( 1)

En primera instancia se plantea el siguiente conjunto de cuatro reglas IF -THEN : IF E es positivo and CE es positivo THEN U es positivo Grande. IF E es positivo and CE es negativo THEN U es cero. IF E es negativo and CE es positivo THEN U es cero. IF E es negativo and CE es negativo THEN U es negativo grande.

Donde los conjuntos difusos positivo , negativo , negativo grande , cero y positivo grande son caracterizados por funciones de pertenencia gaussianas. Usando como defusificador centro promedio , motor de inferencia por producto y realizando el barrido completo sobre E para ( 0.4 rad ) y CE (1 rad/s) se obtiene la superficie de control de la Figura 1.

Figura 1. Superficie de control para el problema del pndulo invertido.

La superficie de control extrada puede ser llevada a un esquema de bsqueda por tabla o LUT ( Look Up Table ) [3] , donde los universos discursos de entrada se convierten en los ndices de bsqueda y los valores de la superficie se almacenan en posiciones especificas dentro de la tabla. En la medida que esta tabla almacene un mayor numero de valores se obtendr una descripcin ms apropiada del sistema difuso , los valores no definidos pueden ser calculados por interpolacin .

IV. ESTIMACION DEL TAMAO DE LA LUT. Considerando que la superficie de control puede ser llevada a un esquema de bsqueda por tabla es necesario estimar las propiedades de la misma de manera que sea viable su implementacin en hardware teniendo en cuenta las limitaciones del dispositivo lgico programable empleado para tal efecto [ 5]. El primer parmetro a ser tenido en cuenta es la resolucin de salida del controlador RO , ya que define el numero de bits necesarios para representar los valores contenidos dentro de la LUT determinando igualmente el tamao de la misma ; esto puede observarse en ( 2 ) , el numero de valores de la LUT NV crece exponencialmente con el numero de bits necesarios N , para su representacin. Emplear un numero mayor de posiciones para NV con una representacin de N bits , genera una situacin de redundancia y se trabajara a la misma resolucin dada por NV ; entonces , el aumento de posiciones implica necesariamente un mayor numero de bits para representacin , si el objetivo es ganar resolucin. Ahora, trabajar con un numero de posiciones inferior a NV para una representacin de N bits es un problema critico ya que existen valores sin definir, presentndose un problema de perdida de resolucin. Al estar definido N y por lo tanto NV , y considerando el numero de variables de entrada ( VE ) , se puede especificar el tamao de los

RO = NV

1 NV
N

(2)

RE NE M

1 NE

(3)

= 2

= 2M N = VE

ndices de bsqueda ( NE ) al igual que la longitud de palabra para su representacin ( M ) , definindose la resolucin de los universos discurso de entrada( RE ) , la cual se puede estimar de acuerdo a (3). Se puede observar, que no es necesario tener una definicin completa de todos los valores de los universos discurso de entrada , tan solo aquellos que definan la trayectoria que debe seguir la dinmica del sistema , por lo tanto , la superficie de control adquiere una nueva naturaleza, se convierte en una recopilacin de los principales valores que pueden garantizar un control adecuado o estabilidad.

V. MODELADO DEL CONTROLADOR En los sistemas de control prcticos es necesario dirigir un proceso hacia un punto particular , esto se lleva a cabo por medio de la comparacin entre el estado actual del proceso y el valor al cual se pretende llevarlo ; En ocasiones esta comparacin no es suficiente y se recurre a complementarla con un calculo de su historial (Acciones integrales ) o con la estimacin de su tendencia ( Acciones derivativas ) , esto con el fin de establecer la forma como el proceso se dirige hacia el punto de inters. Algunos trabajos demuestran que bajo un esquema difuso es ms sencillo estimar las reglas de control que gobiernan las acciones derivativas que las integrales [5]. Bajo las consideraciones anteriores se han elegido como universos discurso de entrada el Error ( E ) y el cambio en el Error ( CE ) ; entonces es necesario especificar una forma viable para su calculo e implemntacin en hardware ; por lo tanto debe tenerse en cuenta la resolucin a la cual trabajaran estas operaciones y el formato de las mismas. El calculo del error ( E ) se lleva a cabo por medio de una diferencia entre la variable de proceso y el punto de establecimiento ; en la medida que se emplee un mayor numero de bits para efectuar esta operacin se reduce el ruido de cuantificacin y los efectos de desviacin en clculos posteriores. El calculo de la tendencia ( CE ) se establece por medio de una derivada hacia atrs o en este caso como una primera diferencia al tratarse de un sistema discreto ; Tradicionalmente , este calculo se realiza de acuerdo a (5) Donde x(k) es el valor del error presente y x(k-h) el valor del error en el instante anterior de muestreo, de manera que h es el valor del periodo de muestreo ; llevar a cabo esta operacin de forma natural en hardware dedicado , necesitaria una representacin en punto flotante para h y una estructura compleja para la divisin correspondiente. Una solucin a este problema es redefinir (5) de la forma como se muestra en (6) x ' (k ) = x( k ) x( k h ) h (5)
x ' ( k ) = f [x ( k ) x ( k h ) ] (6) 1 f = h

En la ecuacin ( 6 ) la diferencia en lugar de ser dividida por el periodo es multiplicada por la frecuencia de muestreo ; al ser f un valor entero , esta operacin puede ser ejecutada empleando una representacin natural y una cantidad adecuada de recursos fsicos. La regin entre lneas punteadas de la Figura 2 representa el modelo determinado como etapa de entrada al controlador ; la resolucin de estas operaciones es modelada por medio de cuantificadores con pasos de cuantificacin de uno ; ya que se esta operando sobre vectores binarios que representan cantidades enteras. Despus de estas operaciones se incluyen dos ganancias GE y GCE , las cuales adems de llevar a cabo la sintonizacin del controlador , son el vinculo entre los universos definidos y los ndices de bsqueda de la LUT. las operaciones descritas anteriormente se deben ejecutar a una resolucin mayor que la definida para el ndice bsqueda , con el fin de tener un mejor recurso de observacin en el error y su tendencia. Estas ganancias operan bajo el principio de aritmtica fraccionaria o escalado [6] , donde un valor ubicado entre 1 y 1 , es representado por un numero entero de n bits el cual es multiplicado por la ganancia ( un entero de m bits ) , dando origen a un valor de m+n bits del cual se extraen los n bits mas significativos , entonces , se e establece un valor mximo de ganancia igual a uno , esto con el fin de evitar desbordamiento , optimizar recursos de implemntacin al trabajar con pocos bits para representacin e incluir el uso de ganancias fraccionarias de uso comn en sistemas discretos. El resultado de n bits obtenido debe sufrir un nuevo reajuste de tamao para ser acoplado a los ndices de bsqueda en la LUT , lo que equivale a tomar la parte mas significativa de la palabra con longitud M de

acuerdo a (3). Aunque es preferible tomar M+1 bits significativos y aplicar una estrategia de saturacin; esta saturacin hace al modelo mas real ya que no se cuentan con recursos suficientes para extrapolar los valores que se encuentren por fuera de los universos discursos definidos. Aunque en la Figura 2 no se especifica , es posible llevar acabo una optimizacin de recursos integrando en una sola estructura de computo la ganancia f y la ganancia GCE , tan solo se hace necesario considerar el valor de la frecuencia al momento de establecer un valor de sintona para GCE.

Figura 2. Modelo completo del controlador fuzzy-LUT.

Teniendo una representacin completa del modelo se pueden estimar las variables relativas al tamao de la LUT y las diversas resoluciones . Se ha especificado una longitud de palabra a la salida de N = 8 bits , luego NV = 256 posiciones y un paso de cuantificacin RO = 0.0039 cubrimiento del 0.39% .Dos variables de entrada VE =2 luego NE = 16 y M = 4 bits , RE = 0.0625 , cubrimiento del 6.25%. Se elige una resolucin de entrada de 10 bits , estimando una perdida por ruido de 2 bits , haciendo que la resolucin efectiva de trabajo a la entrada coincida con los 8 bits empleados a la salida.

VI. ESPECIFIACION DEL CONTROLADOR. La especificacin del controlador inicia con la descripcin funcional en VHDL de cada una de las partes que se han detallado hasta el momento ; estas descripciones fueron agrupadas en mdulos interconectados estructuralmente partiendo de una librera contenedora de las descripciones funcionales . El sistema inicial es presentado en la Figura 3a , Se observa que la arquitectura es una representacin natural del modelo establecido y se describe a continuacin : A. Fuzzy controller Aritmetic Unit ( FAU ). En este modulo se calcula el error ( E ) y cambio en el error ( CE ) , las operaciones son llevadas a cabo con representacin entera a 10 bits y se ejecutan de forma paralela en cada ciclo de reloj. B. Variable Bank. Banco de tres registros de ocho bits en los cuales se almacenan las siguientes variables :Set_point (10 bits) ,GE (6 bits) ,GCE ( 6 bits ) . Modo de operacin ( 2 bits). Estas variables son distribuidas en los 24 flip-flops del banco de registros por medio de un solo canal de bidireccional de 8 bits. El modo incremental agrega un integrador a la salida del controlador , su funcin es reducir el error de estado estacionario y el sobreimpulso derivativo , pero su presencia depende del proceso a controlar [5]. C. Multiplicador vectorial (VMULT_FC) La arquitectura de la Figura 3a , posee dos entidades de estas con las mismas caractersticas esto se debe a la necesidad de obtener los productos del error y el cambio en el error provenientes de la FAU (cuantificados a 10 bits), y sus respectivas ganancias GE y GCE (cuantificados a 6 bits). Cada multiplicador realiza su trabajo ejecutando y almacenando productos parciales que al final son sumados para obtener el resultado. El producto final es cuantificado a 10 bits. D. Saturadores ( Sat_dec ) Arreglo de comparadores que toman la salida de cada uno de los multiplicadores limitndolas entre los valores

de 8 y 7 (decimal), de manera que cada salida (E*GE y CE*GCE) resulten en cuatro bits para direccionar la memoria RAM. E. Bloque de RAM (LUT) Almacena la superficie de control, su capacidad es de 256x8 bits, donde el bus que la direcciona es dividido en 2, una parte baja correspondiente al producto del error por su ganancia (4 bits), y una alta, correspondiente al cambio en el error por su respectiva ganancia (4 bits). Posee las mismas lneas de control que cualquier memoria RAM; habilitador de escritura/lectura y habilitador de salida de la memoria al bus de datos de FLC. F: Memory_manager Se constituye como un selector que administra las lneas provenientes desde el bus del datos del FLC hacia las lneas de direccin de la LUT en el momento de la escritura del mapeo y la programacin del reloj general del sistema. G .Clk_unit El sistema posee una frecuencia de reloj base (clk), la cual puede ser dividida y administrada por esta unidad, esto debido a que el FLC trabaja dos frecuencia de reloj principales, la correspondiente al PWM (pwm_clk) y a la general que administra cada una de las entidades del FLC que requieren sincronismo (flc_clk) . La seal para el PWM es la octava parte de la fundamental, y flc_clk puede ser programada desde clk/1024 fundamental hasta clk/16384. H. Selector de integracin (Int_sel) Esta unidad se encarga de tomar la salida del bloque de RAM (8 bits) que contiene el mapeo e integrarla o no de acuerdo al tipo de controlador que se desea implementar (PD incremental o PD simple).La salida de esta entidad (8 bits) es llevada al bus del FLC en arreglos de 4 bits y administrada a travs de un arreglo de buffers de tres estados. I. Unidades de salida La salida total del FLC se obtiene de dos formas, por modulacin de ancho de pulso (PWM) o salida de 8bits para DAC externo. La primera da la posibilidad de conectar el sistema a una etapa de potencia tipo H , la segunda provee reconstruccin de la seal de una forma tradicional a partir de una entrada digital a 8 bits. j. Unidad de comunicaciones El proceso de control de todas las unidades componentes del FLC, y su intercomunicacin entre si y con el PC, es llevado a cabo por esta entidad, ella se encarga de distribuir determinadas seales de control por un bus destinado para tal fin, hacia las dems unidades, de acuerdo al cdigo que es ledo por ella desde el PC a travs del bus de comunicaciones de 4 bits. K. Unidades adicionales Las unidades adicionales esta conformadas por los buffers de tres estados que se encargan de limitar el acceso a la entrada de la memoria, el bus de datos, el bus del FLC y el bus de comunicaciones del sistema, adems del multiplexor que selecciona la variable de proceso externa para el funcionamiento en modo normal, o la variable de proceso desde el PC para emulacin. Las seales de control de estas entidades son emitidas desde la unidad de comunicaciones. VII. OPTIMIZACION DE LA ARQUITECTURA Empleando la misma librera de componentes diseada , se llev a cabo una optimizacin de la arquitectura con el fin de reducir la cantidad de recursos fsicos dentro de la FPGA liberando espacio para incluir componentes complementarios para dar robustez al controlador. La modificacin incluida consiste en emplear tan solo una unidad de multiplicacin vectorial para efectuar los productos EGE y CEGCE. Esto requiere de la ejecucin en forma secuencial de estas operaciones y su debida multiplexacin , por lo tanto , se hace necesario incluir una maquina de estados finita para la sincronizacin del proceso. En la Figura 3b se presenta la arquitectura optimizada++ ( optimizada + dos componentes adicionales), se caracteriza por una lgica reducida encargada del multiplexado de las operaciones y retencin de resultados. Se han liberado recursos fsicos al emplearse una sola unidad de multiplicacin , estos han sido utilizados en componentes adicionales , que se describe a continuacin:

(a)
Figura 3 . Arquitectura general (a) y optimizada ++ (b) del FLC

(b)

A..DAC basado en Modulacin sigma delta ( SD_modul) Adems de la interfaz PWM se incluye dentro de la arquitectura un modulador sigma delta , este modulador funciona segn el principio de noise shaping , donde una seal discreta es sometida a un proceso de sobremuestreo y modulacin para reducir su componente de ruido de cuantificacin [6] . La Figura 4 presenta un modelo sencillo de modulador sigma-delta , se observa que tanto la seal de entrada como la de salida son sometidas a un proceso de comparacin por error, el cual es integrado para luego ser recuantificado por medio del comparador. La salida del modulador ( yi ), en este caso cuantificada a 1 bit , se lleva hacia un filtro pasabajo , donde es eliminada la componente armnica no deseada , obtenindose de esta forma una seal continua que sigue la secuencia de entrada ( xi[n] ). Un modulador de este tipo es una opcin sencilla para realizar conversin digital analgica empleando una cantidad mnima de recursos fsicos dentro de la FPGA, eliminando la necesidad de contar con un sistema de DAC externo. , igualmente ofrece un rango dinmico de 80 dB , adecuado para el tratamiento de seales cuantificadas a 8bits.[7]

Figura 4. Modulador sigma delta.

B. Filtro promedio ( FP_modul ). El filtrado promedio es una estrategia adecuada de fcil implementacin para la reduccin de ruido aditivo gaussiano en seales muestreadas. El filtro promedio es un FIR de naturaleza pasa-bajo , su pendiente detransicin entre la banda de paso y la banda de corte es proporcional al numero de muestras NM que se entran a promediar. En ( 7 ) se presenta la ecuacin descriptiva del filtro promedio, al hacer coincidir NM con una potencia de dos , la divisin que se debe efectuar puede ser reemplazada por un desplazamiento de l bits hacia la derecha , esta operacin tiene un costo mnimo en recursos fsicos.[8]
y[ n ] = NM 1 NM
l NM 1

x[ n k ]

(7)

k =0

= 2

Figura 5. Modelo de filtro promedio incluido en la arquitectura optimizada.

VIII. SINTESIS E IMPLEMENTACION EN FPGA. Se ha seguido una metodologa Top-Down para la implementacin del controlador en FPGA .Cada una de las entidades fue simulada, posteriormente , toda la descripcin estructural del controlador fue sintetizada en una FPGA Xilinx XC4010E ( 400 CLBs , 64 IOBs) [1], para las arquitecturas inicial y optimizada. En este proceso se gener un listado de redes y componentes que fue llevado a la herramienta de Place & Routing de Xilinx , donde se obtuvo la cadena de configuracin de la FPGA , resultados de uso de recursos y reporte sobre tiempos de propagacin. La informacin obtenida en estos reportes permite establecer una asignacin dedicada de IOBs con el fin de facilitar el proceso de Layout y edicin de PCB ; el hecho de asignar nuevamente la distribucin de seales de entrada y salida en la FPGA requiere que se ejecute nuevamente el proceso de Place & Routing . Los resultados de implementacin son presentados en la Tabla 1.
Arquitectura CLBs % de uso Mximo Retardo(ns) Mxima frecuencia CLK (MHz)

Inicial Optimizada Optimizada++

329 248 305

82 62 76

32.26 34.4 36

30 29 27

Tabla 1. Resultados de implementacin en FPGA.

La arquitectura optimizada gana un 20% en recursos de uso con respecto a la arquitectura inicial y presenta un retardo mayor debido a la presencia de elementos de multiplexacin que agregan ms capas de propagacin antes y despus del multiplicador vectorial haciendo ms extensa la ruta critica en la FPGA. Se observa que el hecho de eliminar un multiplicador vectorial libera una cantidad adecuada de recursos . El espacio liberado es suficiente para la implementacin del filtro promedio y el modulador sigma-delta con un excedente de 14 CLBs. Es recomendable trabajar diseos que demanden menos del 85% de los recursos disponibles ya que es necesario contar con espacio para optimizacin de rutas y asignacin de puertos IOB. El nico parmetro de operacin que sufre un cambio considerable ante el decremento de la frecuencia del sistema es la seal a la salida del modulador PWM. La frecuencia de la seal de sincronismo del controlador FLC_clk sufre un cambio mnimo ante este decremento y puede ser corregido fcilmente modificando el valor de divisin en CLK_Unit.

IX. PLATAFORMA Y SISTEMA DE DESARROLLO El sistema que permite la interaccin entre el FLFCB y el PC fue desarrollado usando las herramientas de diseo proporcionadas por MATLAB (Simulink, Fuzzy Logic Toolbox y GUIs). La interfaz grafica elaborada permite la obtencin de la superficie de control a partir de una archivo de extensin .fis generado por el toolbox para lgica difusa de MATLAB[9] .La superficie de control presentada en la Figura 1 fue obtenida con la herramienta desarrollada , igualmente a travs de esta , la superficie es cuantificada con 16 valores (4 bits) por variable de entrada y 256 valores (8 bits) para la variable de salida de acuerdo al proceso descrito en (8), (9) y (10).

En las relaciones anteriores n es el numero de bits al cual se va cuantificar la superficie, 4 en este caso. X corresponde al vector de valores iniciales extrados de la superficie y x3 es el vector con los valores finales. El ncleo del sistema de desarrollo enfocado a trabajos en control difuso es la tarjeta dedicada FLFCB ( FPGA based LUT Fuzzy Controller Board ) , la cual integra los componentes adicionales para configuracin e interconexin del controlador. La descripcin del sistema se presenta en la Figura 6, su operacin se encuentra enfocada hacia los siguientes propsitos : Configuracin : Carga de la superficie de control en la RAM del controlador , igualmente se establece la frecuencia de muestreo y el modo de operacin Sintonizacin: Ajuste del set_point , GE y GCE. Puede ser llevado a cabo operando directamente sobre el proceso a controlar o sobre un modelo del mismo ( emulacin). Si el sistema es configurado en modo de emulacin, este se enlaza con Simulink, de forma tal que el controlador puede ser visto como un bloque al que se tiene acceso a travs del LPT, de esta manera el PC enva y recibe datos al FLFCB emulando el proceso en su totalidad. Observacin : adquisicin de seales internas ( E y CE ) y externas ( Variable de proceso y salida del controlador). Este proceso es llevado a cabo cuando el controlador est operando en campo.

Figura 6. Sistema de desarrollo orientado a control difuso basado en FLFCB.

X. PRUEBA DEL CONTROLADOR. El controlador es probado siguiendo el ejemplo del pndulo invertido ; Por lo tanto , la superficie de control de la figura 2 es sometida al proceso de discretizacin y cuantificacin por medio de las herramientas descritas en X. El modelo del sistema de control empleado en la prueba del controlador se presenta en la Figura 7 . Se han llevado a cabo tres pruebas : respuesta al escaln con perturbacin, seguimiento de seal rampa y seguimiento de seal parbola. Las condiciones de prueba son : GE = 63 , GCE = 63 , fsampling = 1000Hz. y un mximo de excursin de 450 ( 0.35 Rad. escalados y cuantificados a 10 bits ) .Los resultados son presentados en la Figura 8. La respuesta ante el escaln unitario presenta un sobreimpulso de 12% y un tiempo de respuesta de 1.6 segundos sin oscilacin amortiguada. El error de estado estacionario es de 0.67% y la perturbacin introducida a

Figura 7. Modelo de prueba para el controlador.

3s tan solo vuelve este error negativo sin incidencia mayor ; esto demuestra que el controlador cumple adecuadamente con su funcin reguladora. En cuanto a su funcin de seguimiento , se observa que presenta un error de estado estacionario menor de 1% siempre y cuando la seal a seguir se encuentre en los limites de control. Para la seal rampa existe un pequeo sobreimpulso cercano al 6% y en el seguimiento de la seal parbola es despreciable. Es necesario notar que el tiempo de establecimiento es considerable ( 1.9 s) , por lo tanto , solo est capacitado para seguir seales cuyo periodo sea mayor a este tiempo , pero en general presenta un comportamiento adecuado como sistema de seguimiento.

(a)

(b)

(c)

Figura 8. Pruebas realizadas . (a) Respuesta al escaln con Perturbacin. (b) Seguimiento de Rampa . (c) Seguimiento de parbola.

CONCLUSIONES Se ha presentado el desarrollo de un controlador difuso basado en el esquema de LUT sobre una FPGA de tamao reducido , complementndose con mdulos para la adecuacin de seal anloga , haciendo de este controlador un a solucin adecuada en sistemas de control no lineal prcticos. El estudio realizado sobre cuantificacin es la base que da viabilidad a la implementacin en Hardware del controlador , ya que permite una minimizacin en el uso de recursos lgicos de la FPGA. La arquitectura del controlador implementada sobre un dispositivo reconfigurable le da una naturaleza abierta para futuros cambios en pro de su optimizacin. El uso de modulacin sigma delta para conversin digital-analgico hace que la arquitectura este a la vanguardia de los sistemas modernos para reconstruccin de seales. Se integra el controlador en un sistema de desarrollo en control difuso , ofreciendo al diseador la posibilidad de realizar un trabajo completo que va desde el diseo hasta la prueba en campo y complementarlo con procesos de emulacin previos a esta ultima.

REFERENCIAS
[1] Xilinx Co. , The Programmable Logic Data Book , July ,2000. [2] L. Wang , A Course in Fuzzy Systems and Control, Prentice Hall inc. , Upper Sadle River , NJ , USA , 1997, p. 119 -120. [3] J. Jantzen , Design of Fuzzy Controllers , Technical University of Denmark, Department of Automation, Bldg 326, DK-2800 Lyngby, DENMARK. Tech. report no 98-E 864 (design), 19 Aug 1998. [4] E. Lago, M. A. Hinojosa, C. J. Jimnez, A. Barriga, S. SnchezSolano, " xfvhdl: a tool for the synthesis of fuzzy logic controllers , Design Automation and Test in Europe (DATE'98), pp. 102107, Paris -France, February 2326, 1998. 1998 IEEE. [5] J. Jantzen , Tuning of Fuzzy PID Controllers , Technical University of Denmark, Department of Automation, Bldg 326, DK-2800 Lyngby, DENMARK. Tech. report no 98-H 871 (fpid), 30 Sep 1998. [6] J G. Proakis , D G. Manolakis , Digital Signal Processing. Principles , Algorithms and Applications ,Third Edition , Prentice Hall , Madrid ,1998, p 596 597. [7] C. Dick , F Harris , High performance FPGA filters Using SIGMA-DELTA modulation encoding ,international conference on acoustics speech and signal processing icassp , phoenix,arizona , march 15-19 , 1999. [8] M. Melgarejo , Desarrollo de un filtro digital promedio basado en FPGA , Revista de Ingeniera ,Facultad de ingeniera , Universidad Distrital Francisco Jos de Caldas , No 2 , 2000.

[9]The Mathworks inc , MATLAB Fuzzy Logic Toolbox , January , 1999.

10

También podría gustarte