Generación de controladores difusos en FPGA basados en síntesis de alto nivel - Sarramone, Luca (2022)
La lógica difusa (FL, Fuzzy Logic) es una lógica alternativa a la lógica clásica que pretende introducir un grado de vaguedad a las funciones que evalúa. El objetivo es que el resultado tenga que considerar el grado de incertidumbre que la mayoría de los fenómenos presentan en la descripción de su naturaleza. Las funciones de pertenencia dentro de la teoría de conjuntos difusos pueden adquirir valores en el rango 0 a 1, a diferencia de la teoría de conjuntos clásicos donde únicamente se devuelven valores binarios. Los sistemas que implementan este tipo de lógica son conocidos como controladores de lógica difusa o FLC (por sus siglas en inglés Fuzzy Logic Controller). A diferencia de su contraparte clásica, los controladores difusos no emplean modelos matemáticos complejos para su funcionamiento. Esta característica los hace especialmente adecuados para procesos complejos y mal definidos, en los cuáles utilizar un modelo analítico resulta difícil debido a la falta de conocimiento en el dominio o porque las variables de entrada y salida no son medibles. En los últimos años, para la implementación de controladores difusos tuvo gran aceptación el uso de microcontroladores, DSPs (Digital Signal Processors) y FPGAs. En particular, estas últimas han sido usadas de manera exitosa como soluciones de diseño de hardware en control industrial. El uso de esta plataforma en el desarrollo de FLC’s presenta grandes ventajas, por su velocidad de procesamiento, consumo de potencia, y especialmente por su flexibilidad de diseño y reconfiguración. Tanto es así, que en este último tiempo la tendencia se dirige hacia el co-diseño de plataformas Hardware/Software basado en descripciones y síntesis de alto nivel. Aún más, gracias a las herramientas síntesis de alto nivel (HLS), hoy día es posible generar implementaciones RTL a partir de lenguajes de alto nivel tipo C. La automatización de este proceso permite a los desarrolladores concentrarse en el comportamiento del algoritmo, evitar errores y reducir el tiempo de desarrollo. Párrafo extraído de la tesis de grado a modo de resumen.