metodología de codiseño hw/sw para la implementación de

Anuncio
METODOLOGÍA DE CODISEÑO HW/SW PARA LA IMPLEMENTACIÓN DE
CONTROLADORES DIFUSOS
A. CABRERA1, S. SÁNCHEZ-SOLANO2, R. SENHADJI2, A. BARRIGA2 y C.J. JIMÉNEZ2
1
Dpto. Automática y Computación. Facultad de Ingeniería Eléctrica. Instituto Superior
Politécnico “José Antonio Echeverría”, Ciudad de la Habana, Cuba.
2
Instituto de Microelectrónica de Sevilla. Centro Nacional de Microelectrónica, Avda.
Reina Mercedes s/n, 41012-Sevilla, España.
RESUMEN
En esta comunicación se describe una metodología de
codiseño HW/SW para la implementación de controladores difusos utilizando microcontroladores de propósito
general y elementos específicos de procesado construidos
mediante FPGAs o ASICs. Se exponen las diferentes
fases de la metodología, así como las herramientas de
CAD utilizadas para el desarrollo de las mismas, con
énfasis en el entorno de desarrollo de sistemas difusos
Xfuzzy. Por último, se incluye una aplicación práctica de
la metodología descrita al diseño de un controlador difuso
para un sistema de dosificación.
1. INTRODUCCIÓN
Al explorar el espacio de diseño de un sistema electrónico
de cierta complejidad siempre surgen dos alternativas
contrapuestas. Por un lado, el empleo de componentes
estándares cuya funcionalidad puede ser definida
mediante programación. Por otro, la implementación de
dicha
funcionalidad
mediante
un
circuito
microelectrónico específicamente construido para la
aplicación. Es bien conocido que la primera alternativa
(alternativa software) proporciona soluciones que
presentan una gran flexibilidad a pesar de requerir
consumos de área y tiempos de ejecución elevados,
mientras que la segunda (alternativa hardware) optimiza
los aspectos de tamaño y velocidad de operación a costa
de limitar la flexibilidad de la solución. A medio camino
entre ambas, las técnicas de codiseño hardware/software
(HW/SW) pretenden obtener un compromiso adecuado
entre las ventajas e inconve-nientes de estas dos
aproximaciones.
En esta comunicación se describe una metodología de
codiseño HW/SW para la implementación de sistemas de
control basados en lógica difusa, ilustrando la aplicación
de la misma a un caso práctico al abordar el desarrollo de
un controlador difuso para un sistema de dosificación.
En la Sección 2 se exponen algunas alternativas de
codiseño para la implementación de controladores
difusos. En la Sección 3 se detallan las diferentes fases
de la metodología propuesta. En la Sección 4 se describe
un caso práctico de aplicación de la metodología.
Finalmente, en la Sección 5 se resaltan los conclusiones
fundamentales de esta comunicación.
2. ALTERNATIVAS DE CODISEÑO
En todo proceso de codiseño de un sistema deben
analizarse las tareas a realizar, evaluando la repercusión
de las posibles opciones de implementación de cada tarea
sobre los parámetros que definen la funcionalidad y el
coste del sistema global. Los principales parámetros a
considerar en esta evaluación son la velocidad de
ejecución de la tarea y el área que conllevaría su
implementación hardware. A partir de los resultados de
este análisis se realiza el proceso de particionado el cual
consiste en decidir qué tareas deben ser realizadas
mediante software y cuáles deben ser implementadas
sobre hardware.
Existen diferentes estrategias para abordar el
codiseño de sistemas de control basados en lógica difusa,
que se distinguen entre sí por la forma en que realizan el
particionado HW/SW. Una de ellas consiste en analizar la
influencia del repertorio de instrucciones de un
procesador sobre la implementación de un sistema de
inferencia difuso, rediseñándolo de forma tal que soporte
aquellas operaciones que contribuyan en mayor medida al
incremento de la velocidad de inferencia [1-3]. De esta
forma el particionado se realiza al nivel de las
instrucciones del procesador.
Otra alternativa consiste en implementar el sistema
de inferencia, total o parcialmente, mediante hardware
dedicado con una arquitectura específica. Esta partición
a priori se basa en el hecho de que, de todas las tareas
que debe realizar un sistema de control basado en lógica
difusa, son los procesos relacionados con el cálculo de la
inferencia difusa los que mayor tiempo consumen [2]. Por
lo tanto la implementación de los mismos mediante un
hardware específico contribuirá significativamente al
incremento de la velocidad del controlador.
Es precisamente esta variante de codiseño la
abordada en el presente trabajo, donde la implementación
hardware del sistema de inferencia se lleva a cabo
mediante una arquitectura específica para sistemas
difusos que permite obtener realizaciones eficientes (en
términos de área y velocidad) basadas en el procesado de
reglas activas, la limitación a dos del grado de
solapamiento de las funciones de pertenencia de las
entradas y la utilización de métodos de defuzzificación
simplificados [4-6].
DESCRIPCIÓN
SIMULACIÓN
VERIFICACIÓN ON-LINE
PARTICIONADO HW/SW
IMPLEMENTACIÓN
HARDWARE
DESARROLLO
SOFTWARE
3. METODOLOGÍA DE CODISEÑO
Las diferentes fases de la metodología de codiseño para la
implementación de controladores difusos se muestran en
la Figura 1. Para la ejecución de cada una de las fases se
utilizan las herramientas de CAD incluidas en el entorno
de desarrollo de sistemas difusos Xfuzzy [6,7]. Dicho
entorno, que puede ser ejecutado sobre plataformas con
sistema operativo Unix o Windows, agrupa un conjunto
de herramientas que facilitan las diferentes etapas de
descripción, verificación y síntesis (tanto software como
hardware) de sistemas difusos.
En los siguientes apartados se describen las
caracterís-ticas más sobresalientes de cada fase de diseño
y se comentan las herramientas de CAD utilizadas así
como los detalles de implementación.
3.1. Fase de Descripción
Durante esta fase se realiza la descripción del sistema
de inferencia difuso que define la operación (estrategia de
control) del controlador. Para ello se emplea el lenguaje
de especificación de sistemas difusos XFL [6,8]. Este
lenguaje, utilizado por todas las herramientas de Xfuzzy,
permite definir los universos de discurso y las funciones
de pertenencia de las entradas y salidas del controlador,
la especificación de la base de reglas y la selección de los
diferentes operadores difusos utilizados como conectivos
de antecedentes, función de implicación y mecanismo de
agregación de reglas, así como el método de defuzzificación a utilizar.
Esta descripción es almacenada en un fichero de
texto (.xfl) siguiendo las reglas sintácticas del lenguaje
XFL. Dicho fichero puede generarse mediante un editor
VALIDACIÓN
Figura 1. Metodología de codiseño.
convencional o utilizando las diferentes opciones de
edición proporcionadas por el entorno gráfico de Xfuzzy.
3.2. Fase de Simulación
En esta fase se realiza una simulación off-line del
comportamiento del sistema de inferencia difuso sobre el
proceso a controlar con el objetivo de realizar un ajuste
preliminar de los parámetros del controlador. Para ello se
requiere de un modelo del proceso, descrito mediante
lenguaje C, y de una herramienta de simulación. La
herramienta xfsim [6] es la encargada de realizar esta
tarea dentro del entorno de desarrollo Xfuzzy.
Aunque esta fase de simulación permite un primer
ajuste de los parámetros del sistema de inferencia, debe
tenerse muy presente que sus resultados son solo
aproximados dadas las limitaciones del modelo utilizado
para representar al proceso. Por tal motivo, para un ajuste
más preciso de los parámetros del sistema de inferencia se
requiere de una interacción del mismo con el proceso
real. Este es el objetivo de la siguiente fase.
3.3. Fase de Verificación on-line
La característica fundamental de esta fase es la inclusión
del proceso real en el lazo de control, de forma que se
pueda obtener el ajuste óptimo de la base de conocimiento
del controlador difuso. Por supuesto, como el sistema de
inferencia será implementado finalmente mediante
hardware, los parámetros del mismo deben satisfacer las
restricciones impuestas por la arquitectura utilizada. Por
la misma razón, en esta fase, no solo debe evaluarse el
comportamiento del controlador con diferentes bases de
conocimiento, sino que también debe analizarse la
influencia de utilizar diferentes resoluciones en cuanto al
número de bits con que se representan los parámetros del
sistema.
Por otra parte, la interacción con el proceso real
requiere de elementos adicionales a los empleados en la
fase de simulación. Entre ellos estarán los elementos de
interfaz con los sensores y actuadores del proceso
(amplificadores de señal, convertidores A/D y D/A, etc.)
así como las rutinas de pre- y post-procesado necesarias
para obtener las entradas y generar las salidas del
controlador.
Para desarrollar esta fase se requiere de una
herramienta de CAD que implemente, mediante software,
el sistema de inferencia difuso, así como las rutinas de
pre- y post-procesado, y permita interactuar con el
proceso real a través de una tarjeta de adquisición de
datos. El entorno de desarrollo Xfuzzy dispone para esta
fase de la herramienta xflab [6,9].
Xflab permite el desarrollo integral de un controlador
difuso implementado en software. Con ella el modelo del
proceso utilizado en la fase de simulación se reemplaza
por una función que monitoriza el proceso real (a través
de la tarjeta de adquisición de datos), realiza la inferencia
y actúa sobre el proceso. Simultáneamente va registrando
las variables del sistema que se hayan seleccionado para
su posterior procesado con el objetivo de determinar el
mejor ajuste de los parámetros del controlador.
Xflab facilita la configuración de la tarjeta de
adquisición de datos (establecimiento de direcciones de
entrada/salida, asignación de canales análogicos y digitales, etc.), la codificación de las rutinas de procesado de
la información (filtrado, linealización, etc.) y la
definición de los parámetros de control que se deseen
(intervalo de muestreo, señales que serán registradas para
evaluar el comportamiento del controlador, etc.).
Una vez definida la configuración del sistema, xflab
invoca a otra herramienta de Xfuzzy (xfc) encargada de
obtener el código C del sistema de inferencia, combina
dicho código con el correspondiente a las rutinas de prey post-procesado y las de monitorización y control y los
compila y enlaza para obtener un fichero ejecutable que
corresponde a la implementación software del controlador
difuso.
Siguiendo este procedimiento resulta muy sencillo
modificar los parámetros del controlador (modificando la
especificación
XFL),
así
como
registrar
el
comportamiento del sistema, lo que permite evaluar
diferentes condiciones de operación con el objetivo de
obtener la mejor aproximación para la implementación
del sistema.
A diferencia de la fase de simulación que solo
permite el ajuste preliminar del sistema de inferencia, la
fase de verificación on-line permite comprobar y ajustar
la operación global del controlador difuso. No obstante,
debe tenerse presente que, como consecuencia de las
diferentes precisiones con que se realiza la inferencia por
software y por hardware, es posible que se requiera un
último ajuste de los parámetros del controlador difuso
durante la fase final de validación del sistema de control.
Al concluir esta etapa se dispone de una implementación software del controlador difuso completamente
operativa, la cual constituye el punto de partida de la
siguiente fase de identificación de tareas del sistema y
particionado de las mismas.
3.4. Fase de Particionado
Aunque las tareas específicas que debe realizar un
controlador difuso dependen finalmente de la aplicación
para la cual está siendo diseñado, dichas tareas suelen
coincidir con las tareas generales que se relacionan a
continuación:
a) Inicialización del sistema
b) Determinación del objetivo
c) Lectura de los sensores del sistema a controlar
d) Preprocesado de la información
e) Determinación de las entradas al sistema de
inferencia
f) Cálculo de la inferencia difusa
g) Procesado de la salida del sistema de inferencia
h) Generación de las señales de control para los
actuadores del sistema.
Concurrentemente con estas tareas debe incluirse la
de temporización del sistema, encargada de establecer el
periodo de muestreo de las señales provenientes de los
sensores. Por último, también deben incluirse en la lista
de tareas los mecanismos de monitorización de las
variables del controlador que faciliten la fase de
validación final del sistema. La forma usual de acometer
esta tarea es ir registrando en ficheros la información
seleccionada.
Una vez establecidas las tareas a realizar se procede a
efectuar el proceso de particionado HW/SW. De acuerdo
con las consideraciones de la Sección 2 el sistema de
inferencia será implementado mediante hardware. Las
restantes tareas deben ser evaluadas para obtener el mejor
compromiso entre velocidad y flexibilidad, aunque, en la
gran mayoría de los casos, la implementación software de
las mismas proporciona un resultado muy satisfactorio.
Por último, es necesario considerar la implementación de
los diferentes elementos que faciliten la interconexión de
los componentes hardware y software, la temporización
global del sistema y los mecanismos de monitorización.
Un aspecto clave en esta etapa de diseño es la
selección de las plataformas en donde serán ejecutadas las
tareas, es decir, el tipo de procesador en donde se
ejecutarán las tareas de software y el dispositivo hardware
sobre el que será implementado el sistema de inferencia.
La disponibilidad de placas de desarrollo que incluyen un
microcontrolador de propósito general y una FPGA
permite compartir entre ambos componentes la funcionalidad requerida por los controladores difusos a desarrollar
mediante la presente metodología. Así, el cálculo de la
inferencia difusa se asignará a un controlador de
propósito específico construido sobre la FPGA, mientras
que las rutinas de procesado de las entradas y salidas del
sistema de inferencia, así como el resto de las tareas, se
programarán en el microcontrolador. El proceso de
temporización será implementado utilizando uno de los
temporizadores disponibles en el microcontrolador. Por
supuesto, para completar el controlador será necesario
añadir los circuitos necesarios para adaptar las señales
utilizadas por los sensores y actuadores a las empleadas
en la placa de desarrollo (amplificadores de señal,
converti-dores A/D y D/A, etc.).
3.5. Fase de Implementación Hardware
Para el desarrollo de esta fase es necesario contar con
herramientas de CAD que trasladen la especificación del
sistema de inferencia en un código sintetizable, basado en
un lenguaje de descripción de hardware y acorde con la
arquitectura descrita en [4-6]. La característica más
sobresaliente del entorno de desarrollo Xfuzzy sobre otros
similares es la inclusión de herramientas que facilitan la
síntesis hardware del sistema de inferencia. Una de ellas
es xfvhdl [6,10], que permite obtener la descripción
VHDL de un sistema de inferencia a partir de su
especificación XFL. Dicha descripción es compatible con
diferentes herramientas de síntesis hardware para FPGAs
o ASICs. Como comentamos en la Sección anterior, el
uso de FPGAs resulta especialmente adecuado para
realizar un primer prototipo del sistema bajo desarrollo.
Nótese que la FPGA no solo debe contener el sistema
de inferencia sino también los elementos de interfaz de
entrada /salida entre éste y el microcontrolador, así como
otros elementos que pudiesen ser necesarios por las
características de la placa de desarrollo o del propio
sistema de control.
3.6. Fase de Desarrollo Software
Durante esta fase se desarrollan las diferentes rutinas que
dan soporte a las tareas que serán implementadas
mediante software. Para la puesta a punto de las mismas
se utilizan herramientas de desarrollo y depuración de
programas (ensambladores o compiladores, simuladores,
etc.).
Aunque no es imprescindible, es aconsejable que
también se desarrollen un grupo de programas que
permitan el diagnóstico y comprueben la operación de las
diferentes partes del controlador, aspecto que facilitará su
puesta a punto general.
3.7. Fase de Validación
Durante esta fase se procede a la integración de ambas
implementaciones sobre la placa de desarrollo y al ajuste
definitivo de los parámetros del controlador.
Una vez depuradas las diferentes partes del controlador, se procede a la validación integral del mismo.
Para ello se pone en operación el controlador difuso
implementado y se transmite hacia un ordenador personal
el grupo de variables seleccionadas que servirán para
evaluar el comportamiento del sistema. Después, con
ayuda de un paquete de rutinas matemáticas, se pueden
obtener los valores de algunos parámetros (tiempo de
establecimiento, sobreoscilación, tiempo de subida, error
cuadrático medio, etc.) que caractericen la operación del
controlador difuso implementado.
Dada la facilidad con que se pueden realizar las
modificaciones de las tareas que se ejecutan en el
microcontrolador, así como de los parámetros del sistema
de inferencia implementado en la FPGA, pueden
validarse diferentes versiones del controlador con objeto
de seleccionar la que proporcione mejores prestaciones.
4. APLICACIÓN DE LA METODOLOGÍA
Con el objetivo de ilustrar la metodología descrita, en la
presente Sección se expone la aplicación de cada una de
las fases de la misma para la implementación de un
controlador difuso para el sistema real que se describe
brevemente a continuación.
4.1. Descripción del Sistema
El sistema a controlar consiste en la maqueta de un
sistema de dosificación diseñada para experimentar con
distintas estrategias de control basadas en lógica difusa.
La maqueta está formada por dos cubetas independientes
de 120 cm de altura y 20 cm de diámetro. Cada una de
ellas posee una electroválvula en su parte superior para
controlar la entrada de líquido, un sensor de presión en la
parte inferior para proporcionar una medida del nivel de
líquido contenido y una válvula de control manual que
permite verter el líquido de cada cubeta en un recipiente
común. Desde este recipiente el líquido se bombea de
nuevo hacia las cubetas a través de una motobomba
gobernada por un variador de velocidad (Figura 2).
Los sensores de presión proporcionan una salida en
intensidad (4 a 20 mA) para una presión máxima
aproximadamente 10 veces superior a la manejada en el
problema. Las electroválvulas y el variador de velocidad
de la motobomba son controlados por señales de tensión
(0 a 10 V).
(error y variación de error) y proporciona una señal de
salida que representa la variación de la apertura de la
electroválvula o de la velocidad de la motobomba. El
sistema de dos cubetas se puede implementar con dos
controladores independientes que actúan sobre cada
electroválvula mientras que la motobomba es gobernada
por la suma acotada de la salida de ambos controladores.
No obstante, dadas las características de simetría de las
dos cubetas, los controladores difusos de ambas serán
idénticos, por lo que puede utilizarse solo uno si se
ejecutan secuencialmente los procesos de inferencia.
4.2. Detalles de la Implementación
Figura 2. Sistema de dosificación proporcionado
por SUR Automatización y Control.
Esta maqueta permite analizar diversas estrategias de
control. Utilizando tanto una sola cubeta como ambas, se
puede actuar sobre el motor manteniendo la(s) electroválvula(s) abierta(s), sobre la(s) electroválvula(s) con el
motor a velocidad constante, o sobre el motor y la(s)
electroválvula(s) simultáneamente. En todos los casos, el
objetivo del sistema de control será mantener el nivel de
líquido lo más cercano posible al objetivo prefijado. La
estrategia de control aplicada corresponde al equivalente
difuso de un controlador PD incremental. Por lo tanto, el
controlador difuso para una cubeta requiere dos entradas
De acuerdo con la metodología propuesta, se desarrolló
en primer lugar la fase de descripción XFL para el
sistema de inferencia correspondiente a un controlador
difuso PD con salida incremental para una sola cubeta.
Las funciones de pertenencia de las entradas (error y
variación del error) y de la salida (variación del voltaje
aplicado a la electro-válvula) fueron estimadas a partir
del comportamiento del sistema, considerando además las
limitaciones impuestas por la futura implementación
hardware. Por tal motivo se utilizaron 3 funciones de
pertenencia para las entradas, con grado de solapamiento
dos, 5 singletons para la salida y defuzzificación
mediante el método de la media difusa. La Figura 3
muestra estas funciones de pertenencia así como la base
de reglas utilizada.
Posteriormente fue simulado el comportamiento del
sistema mediante xfsim utilizando un modelo
simplificado del proceso. Esta simulación sirvió para un
primer ajuste de la base de conocimiento del sistema de
inferencia.
Un ajuste mucho mejor se obtuvo durante la fase de
verificación on-line al insertar el controlador en el propio
lazo de control. Utilizando xflab se realizaron un total de
27 implementaciones diferentes en donde se modificaron
las funciones de pertenencia de las entradas y la salida.
En cada caso se dejó evolucionar el sistema durante 2000
iteraciones modificándose la posición objetivo automáticamente cada 500 iteraciones. En cada una de las
pruebas se registraron un grupo de variables (error,
variación del error, nivel del líquido, variación de la
salida, etc.) cuyos valores fueron posteriormente
procesados para obtener los parámetros (tiempo de
subida, sobreoscilación, error cuadrático medio, etc.) que
permitieron seleccionar la especificación XFL que presentó mejor comportamiento [11].
Basándose en estos resultados se procedió a
desarrollar, también con xflab, el controlador difuso para
el sistema completo de las dos cubetas, obteniéndose
similares resultados de comportamiento. Además de
obtener la especificación XFL que sería posteriormente
error
N
-50
Z
-15
0
+35
? error
Z
N
-2
P
-0,25
0
+50 cm
P
+0,6
+2 cm
? out
NL
-2
N
Z
P
PL
-0.35
0
+0.35
+2 V
N
error
Z
N
Z
P
PL
Z
N
Z
P
P
NL
N
Z
P
Figura 3. Funciones de pertenencia y base de reglas.
Para minimizar los recursos empleados en la FPGA
disponible se aprovechó la característica de simetría
presente en los controladores de ambas cubetas. Así, se
realizan dos ciclos de inferencia secuencialmente.
En la fase de implementación hardware, la etapa de
síntesis de la FPGA se llevo a cabo con ayuda del entorno
“Xilinx Foundation 3.1i” [13]. La descripción VHDL del
? error
implementada mediante hardware, durante el desarrollo
de esta fase de diseño se identificaron las tareas que debía
acometer el controlador difuso para el control de los
niveles del líquido en ambas cubetas, punto de partida
para el particionado HW/SW.
La plataforma utilizada para la implementación del
controlador fue una placa XS-Board (XS40-005XL, de
XESS Corporation [12]), la cual dispone de un
microcontrolador Intel 8031 y una FPGA Xilinx XC4005, así como de 32 Kbytes de memoria RAM estática,
un circuito de reloj programable y otros dispositivos.
Dispone igualmente de un software de apoyo que permite
realizar las tareas de programación del reloj, descarga de
la configuración de la FPGA y del programa para el
microcontrolador, así como de un test de la placa.
sistema de inferencia fue obtenida a partir de su
especificación XFL utilizando la herramienta xfvhdl.
La resolución de las entradas y la salidas del
controlador se limitó a 6 bits. El controlador empleado
utiliza antecedentes almacenados en memoria y
defuzzificación mediante el método de la media difusa.
Por otra parte, dado que el sistema de inferencia actúa
como un coprocesador del 8031, fue necesario incorporar
también en la FPGA circuitos de interfaz con este
dispositivo, así como aquellos necesarios para acceder a
la memoria. El resultado de la implementación arrojó un
98% de utilización de los CLBs de la FPGA (193 de 196)
y una frecuencia máxima de operación de 20 MHz. A una
frecuencia de 10 MHz (tanto para la FPGA como para el
microcontrolador) el ciclo de inferencia es de 700
nanosegundos, tiempo inferior al de ejecución de una sola
instrucción en el 8031.
El montaje experimental desarrollado consistió en la
placa XS-Board insertada en una placa de montaje que
incluye los elementos de conversión A/D (AD7824) y
D/A (AD7226), así como la circuitería de
acondicionamiento de señal.
La implementación software sobre el 8031 se llevó a
cabo con la ayuda de distintas herramientas de desarrollo
disponibles para la familia MCS-51. El código
programado en el microcontrolador incluye el algoritmo
general del ciclo de adquisición, pre-procesado, obtención
de entradas, comunicación con el motor de inferencia,
post-procesado y generación de la salida del sistema,
junto con numerosas rutinas auxiliares que controlan los
mecanismos de interrupción, de entrada/salida hacia y
desde el motor de inferencia, y de comunicación con un
PC para registrar las variables que permitan validar el
comportamiento del controlador.
Se realizó una primera implementación mediante
codiseño del controlador difuso basándose en la misma
especificación XFL con la cual se obtuvieron las mejores
prestaciones en la fase de verificación. Los resultados
obtenidos, aunque aceptables en general, distaron
bastante de los esperados como consecuencia de la
diferencia de precisión ya señalada entre las inferencias
por software y por hardware. Por lo tanto, después de
analizar el comportamiento del sistema, fue necesario
realizar ajustes adicionales a las funciones de pertenencia
mostradas en la Figura 3. Se realizó nuevamente la
implementación hardware y se validaron los nuevos
resultados, mejores que los anteriores pero aún no tan
buenos como los obtenidos durante la fase de verificación.
Por ello se redujo el tiempo de muestreo a 100
milisegundos (mediante un simple cambio en el programa
del microcontrolador), obteniéndose resultados similares
a los obtenidos mediante el control con xflab. La Figura
4, donde se representa la evolución del nivel de líquido en
una de las cubetas del sistema para distintas posiciones
objetivo, muestra algunos de los resultados
experimentales obtenidos.
1
0
0
.0
8
0
.0
6
0
.0
4
0
.0
5. CONCLUSIONES
Se ha presentado una metodología de codiseño para la
implementación de controladores difusos utilizando
intensivamente las diferentes herramientas incorporadas
en el entorno de desarrollo de sistemas difusos Xfuzzy,
así como los aspectos más relevantes de la aplicación de
la misma a un proceso real. Además de la metodología en
sí, los siguientes aspectos son también relevantes:
1.) Es posible la realización de un controlador difuso
mediante codiseño HW/SW particionando 'a priori' los
procesos que serán ejecutados en ambas plataformas.
2.) El entorno Xfuzzy integra todas las herramientas
necesarias para llevar a cabo el desarrollo total del
sistema de inferencia difusa.
2.) El proceso de ajuste de parámetros de un sistema de
inferencia difuso con xflab para su posterior implementación mediante hardware es adecuado, aunque no está
exento de ajustes posteriores debido a la diferencia de
precisión con que se realiza la inferencia en ambas
aproximaciones.
4.) La implementación de un controlador difuso mediante
codiseño HW/SW utilizando placas de desarrollo
comerciales que incluyen microcontroladores y FPGAs,
en donde el sistema de inferencia actúa como un
coprocesador, constituye una opción muy atractiva por su
combinación de velocidad y flexibilidad.
6. REFERENCIAS
[1] Von Altrock, C. Adapting existing Hardware for Fuzzy
Computation, Institute of Physics Publishing, 1998.
2
0
.0
[2] Salapura, V.: “A Fuzzy RISC Processor”, IEEE
Transactions on Fuzzy Systems, vol. 8, No. 6, Dec. 2000.
0
.0
0
5
0
0
1
0
0
0
1
5
0
0
2
0
0
0
Figura 4. Nivel de líquido en la cubeta 2 vs muestras
(cada muestra equivale a 500 milisegundos).
[3] Ungering, A.P., Bauer, H., Goer, K.: “Architecture of a
Fuzzy Processor Based on an 8-bit Microprocessor”, Proc. IEEE
ICFS´94, Orlando, pag.297-301, 1994.
[4] Jiménez, C.J., Sánchez-Solano S., Barriga, A.: “Hardware
Implementations of a General Purpose Fuzzy Controller”, Proc.
Sixth International Fuzzy Systems Association World Congress
(IFSA´95), Sao Paulo, vol. 2, pag.185-188, Jul.1995.
[5] Sánchez-Solano, S., Barriga, A., Jiménez, C.J., Huertas,
J.L.: “Design and Applications of Digital Fuzzy Controllers”,
Proc. Sixth IEEE International Conference on Fuzzy Systems
(FUZZ_IEEE´97), Barcelona, vol. 2, pag. 869-874, Jul. 1997.
[6] Baturone, I., Barriga, A., Sánchez-Solano, S., Jiménez, C.J.,
López, D.: Microelectronic Design of Fuzzy Logic-Based
Systems, CRC Press, 2000.
[7] López, D.R., Jiménez, C.J., Baturone, I., Barriga, A.
Sánchez-Solano, S.: "Xfuzzy: A Design Environment for Fuzzy
Systems", Proc seventh IEEE International Conference on
Fuzzy Systems, pag. 1060-1065, Anchorage, May 1998.
[10] Lago, E., Jiménez C.J., López D.R., Sánchez-Solano S.,
Barriga A.: “xfVHDL: A Tool for the Synthesis of Fuzzy Logic
Controllers”, Proc. Design, Automation and Test in Europe
(DATE´98), Paris, pag 102-107, Feb. 1998.
[8] López, D.R., Moreno, F.J., Barriga, A. Sánchez-Solano, S.:
"XFL: A Language for the Definition of Fuzzy Systems", Proc.
sixth IEEE International Conference on Fuzzy Systems, Vol. 3,
pag. 1581-1591, Barcelona, Jul 1997.
[11] Cabrera, A., Senhadji, R., Sánchez-Solano, S., Barriga, A.,
Jiménez, C.J., Llanes, O.: "Development of Level Controllers
Based on Fuzzy Logic", Proc. First International ICSC-NAISO
Congress on Neuro Fuzzy Technologies (NF2002), Ciudad de la
Habana, Jan. 2002.
[9] Senhadji, R., Sánchez-Solano, S., López, D.R. Barriga, A.:
"Xflab: An On-line Verification Tool for Fuzzy Controllers",
Proc. International Conference on Information Processing and
Management of Uncertainty in Knowledge Based Systems, Vol.
1, pag. 44-49, Madrid, Jul 2000.
[12] XS40, XSP Board V1.4 User Manual, XESS Corporation,
USA, 1999.
[13] The Programmable Logic Data Book, Xilinx Inc., USA,
1999.
Descargar