Herramientas de usuario

Herramientas del sitio


desarrollo:firmware:ufuzzy

µFuzzy

Introducción

µ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.

Características soportadas

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

Advertencia

La versión 0.4 de µFuzzy no soporta reglas con pesos. Esta característica será incluida en la versión 0.5.

Diseño

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:

  • Está programado en ANSI C, excepto por el uso de enteros de 64 bits, aunque puede deshabilitarse.
  • No utiliza I/O.
  • No reserva memoria dinámicamente.
  • No utiliza operaciones con punto flotante.
  • No depende de macros propias de ningún compilador.
  • Sólo depende de <stdint.h>, por usar enteros de tamaño fijo y enteros rápidos.

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.

Más información

desarrollo/firmware/ufuzzy.txt · Última modificación: 2016/08/01 22:54 por fsalinas

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki