La solución obvia para la síntesis software consiste en usar un lenguaje de programación estándar y ampliamente utilizado como C. Esto permite que las implementaciones software producidas por Xfuzzy puedan ser ejecutadas en cualquier arquitectura, desde microcontroladores a ordenadores de propósito general.
El módulo xfc toma un fichero XFL y genera un fichero fuente C que implementa el motor de inferencia difuso como una función C. Este fichero puede ser libremente combinado con otros módulos para producir aplicaciones de lógica difusa. La interacción entre el motor de inferencia difuso y el módulo que lo invoque se realiza a través de parámetros correspondientes a las variables de entrada y salida del sistema difuso. Dichos parámetros pertenecen a un tipo de dato C específico (FUZZY) definido en el fichero de salida por medio de una construcción typedef. Puede utilizarse cualquier tipo de dato C capaz de mantener un valor numérico. Los parámetros son pasados al motor de inferencia difuso por referencia (tipo FUZZY *).
xfc utiliza un conjunto de operaciones difusas predefinidas que son aplicadas cuando la especificación no las define explícitamente. Estas operaciones son:
T-norma _sd_min (mínimo). | T-conorma _sd_max (máximo). |
Negación _sd_not (complemento a 1). | Función de implicación _sd_min (mínimo). |
Método de defuzzificación _sd_CoA (Centro de Área). |
La ventana de síntesis C proporciona una interfaz para definir el tipo de dato de las variables difusas (el objetivo de la construcción "typedef FUZZY"), el nombre de la función que implementa el motor de inferencia y el prefijo usado para construir el nombre del fichero de salida.
![]() |