µFuzzy es módulo de lógica difusa pensado para embebidos de bajo costo, independientemente de su arquitectura. Permite implementar sistemas de control a partir de una serie de reglas en lenguaje natural que describan el comportamiento deseado. A pesar de que en la actualidad existen otras librerías de lógica difusa, esta fue especialmente diseñada pensando en las limitaciones de los sistemas embebidos.
Métodos de inferencia | Sugeno |
---|---|
Mamdani | |
Funciones de membresía | trapezoidal |
tabulada | |
T-normas | mínimo |
producto algebraico | |
diferencia acotada | |
producto drástico | |
producto de Einstein | |
producto de Hamacher | |
S-normas | máximo |
suma algebraica | |
suma acotada | |
suma drástico | |
suma de Einstein | |
suma de Hamacher | |
Métodos de defuzzificación | centro de gravedad |
media ponderada | |
Conectivos lógicos | conjunción |
disyunción | |
negación |
La versión 0.4 de µFuzzy no soporta reglas con pesos. Esta característica será incluida en la versión 0.5.
Este módulo fue desarrollado con el objetivo de ser compatible con cualquier microcontrolador que pueda programarse en ANSI C. Por estas razones, se tomaron los siguientes recaudos a la hora de desarrollarlo:
Por otro lado, por razones de performance, µFuzzy utiliza un formato binario propio denominado CFS para definir las reglas del sistema. Para brindar compatibilidad con el formato FIS de MATLAB que es el más difundido, se desarrolló un conversor por línea de comandos denominado cfsconvert, fácilmente integrable al toolchain, y capaz de generar un archivo CFS o código fuente C.