3. Control de procesos con lógica difusa (CLD) 3.1. Presentación El Control por Lógica Difusa (CLD) es un tipo de control, usualmente de tipo realimentado, que está basado en reglas. Se orienta al mejoramiento de las características del control "clásico", por ejemplo, incorporando conocimiento que no puede ser descrito en el modelo analítico en que se basa el diseño del algoritmo de control, y que usualmente, en control "clásico", se deja para modos manuales de operación u otros mecanismos de límites o de seguridad. Las aplicaciones de CLD pueden dividirse en dos clases: 1) Aquellas en que el CLD es un control supervisor, es decir, complementa al control realimentado convencional, y 2) aquellas en que el CLD reemplaza al control convencional. A pesar de que la trascendencia del CLD en el contexto teórico general del control de procesos es aún objeto de discusión, el mejor argumento para consagrar su lugar en la ingeniería de control es que se trata de una tecnología útil desde un punto de vista industrial y comercial [Driankov, 1993]. Se argumenta que otra ventaja del CLD frente al control tradicional es la reducción del tiempo de desarrollo y mantención [Driankov 1993], lo que está mostrado con diferentes ejemplos, sin embargo, parece más prudente señalar que puede resultar así, pero que depende de la aplicación que se trate. Por ejemplo, si una planta está bien modelada, y existen ya algoritmos de control funcionales (o para problemas similares), optimizar el control podrá significar un esfuerzo menor que diseñar un sistema de CLD completamente nuevo. Un diseño de un controlador PID convencional parte por modelar el sistema o proceso usando ecuaciones diferenciales, en cambio, en el CLD las reglas se orientan a modelar el comportamiento del operador humano. En las figuras 3.1 y 3.2 se muestran los diagramas de bloques generales para un CLD y para un sistema de control “clásico”. Figura 3.1. Diagrama de bloques CLD Figura 3.2. Diagrama de bloques control “clásico” El CLD funciona básicamente de la forma explicada en el capítulo 2, es decir, aplicando un conjunto de reglas que se combina usando lógica difusa. Una regla se activa ("dispara") si se cumplen las condiciones descritas en las premisas de la regla. La evaluación de aquellas condiciones se efectúa en forma difusa, tomando en cuenta la incerteza inherente al conocimiento disponible. Las variables de entrada (en inglés, inputs) se interpretan como variables lingüísticas. No es inusual que más de una regla sea gatillada para una misma combinación de variables de entrada, en este caso, la máquina de inferencia en un CLD actúa como un procesador paralelo, es decir, todas las reglas que tienen algún grado de verdad en sus premisas son gatilladas y contribuyen al conjunto difuso de salida. Aplicando la inferencia de Mamdani, el resultado que arroja cada una de las reglas se combina para dar el resultado del conjunto, que es la unión de las salidas de cada una de las reglas gatilladas. Los consecuentes de todas las reglas gatilladas se relacionan en el rango [-1,1], combinándose localmente por un OR lógico. Un OR lógico es una conorma T (norma S), por ejemplo la función max (máximo puntual). Es importante mencionar que se podría usar cualquier conorma T para ello, la función max es la más usada en aplicaciones de tiempo real. La expresión para el conjunto difuso de la variable de salida dada por la inferencia de Mamdani es entonces: ∀ b ∈ UB: uB(CR)(b) = maxk { min (uA(k)(a), uB(k)(b)) }. Existen variados métodos para construir la interfaz de des-difusión de un CLD, como por ejemplo: - centro de gravedad (o centro de área) (en inglés: center of gravity); promedio de los supremos (en inglés: mean of maxima); alturas (en inglés: heights). El método de centro de gravedad es el más utilizado, consiste en obtener la abscisa del centro del área que se forma bajo la función que representa al conjunto difuso combinado de salida. Como su nombre lo indica, el promedio de los supremos se obtiene considerando únicamente los trazos con valor de pertenencia máximo dentro de todo el conjunto. El método de alturas considera el valor de la altura (equivalente al grado de certeza) obtenido por cada una de las reglas individuales gatilladas. El centro de gravedad de cada consecuente de esas reglas, que es conocido previamente, (típicamente trapezoides o triángulos) se pondera por el valor de la altura en cada caso, y se obtiene un promedio ponderado de todos los consecuentes representados en el conjunto de salida. El promedio de los supremos y el de alturas son métodos computacionalmente más rápidos en comparación con el método de centro de gravedad. La Figura 3.3 grafica el proceso recién descrito para dos reglas arbitrarias, utilizando el método de centro de gravedad como interfaz de des-difusión. Figura 3.3. Un ejemplo sencillo de inferencia difusa. Algunos han descrito a un CLD como un sistema experto en tiempo real, la aceptación de esta afirmación depende de la acepción que se tenga de lo que es un sistema experto, algunas de las características importantes para un sistema experto que el CLD no posee, son la capacidad de explicar las decisiones tomadas y presentar una interfaz amistosa que muchas veces interactúa con el usuario. El CLD no es una panacea cuya aplicación sea obviamente superior en cualquier aplicación, se ha visto que puede ser ventajoso aplicar CLD cuando una o más de las variables controladas son continuas, y/o si el modelo de la planta (o proceso) no está bien definido, es muy complejo o no se conoce. Típicamente se aplica cuando el manejo de planta más adecuado ha sido hecho por operadores humanos con experiencia (basado en heurística). También ha mostrado ventajas en los casos en que es importante usar sensores de baja precisión y/o bajo costo. Repasemos ahora algo de historia del CLD, y del estado del arte. En un comienzo la lógica difusa estuvo limitada al terreno teórico. La primera demostración práctica del uso del CLD la dieron Mamdani y Assilian (Queen Mary College, Londres, 1975), controlando un pequeño modelo de máquina a vapor. La primera aplicación comercial importante ocurrió también en Europa, para un controlador de temperatura de un horno de cemento desarrollado por Smidth y Cía. en Dinamarca [Holmblad, 1982]. El primer microprocesador de inferencia difusa fue desarrollado en los laboratorios AT&T Bell durante los primeros años de la década de los 80. Sin embargo, los grandes propulsores de la masificación en aplicaciones de CLD en operación están en Japón. Los fabricantes japoneses han sido líderes en esta área, con aplicaciones como: a) robots; b) ferrocarril subterráneo: permitiendo detener suavemente los trenes; c) máquinas lavarropas: usan sensores ópticos o electro-ópticos para determinar la suciedad de la ropa y determinar la cantidad óptima de detergente, agua y ciclos de lavado necesarios; d) refrigeradores: sistema de auto-descongelado; e) cámaras: para compensar en situaciones de luz complicadas (entre otras aplicaciones); f) frenos anti-bloqueo (ABS). También existen aplicaciones de lógica difusa en que ésta se utiliza como herramienta en la modelación de procesos complejos o pobremente definidos, construyendo modelos difusos (sin embargo, las aplicaciones prácticas actuales son generalmente controladores difusos). Tal como en los controladores convencionales, en variadas situaciones es ventajoso utilizar controladores difusos adaptivos. La mayor complejidad de incluir adaptación en el controlador es que agrega un elemento de potencial inestabilidad, por lo que no es siempre aconsejable. Existen varias formas de incorporar adaptabilidad en un controlador difuso. Por ejemplo, la definición del recorrido universal de cada variable de entrada, y en consecuencia, en como se efectúa la normalización, puede ser adaptiva. La selección inicial de los factores de escala respectivos podrá ser modificada (por ejemplo, utilizando reglas de adaptación) de acuerdo a la variación dinámica de la planta. 3.2. Principios de diseño de un CLD La selección de los factores de escala para normalizar los recorridos universales de cada variable son un compromiso entre la sensibilidad durante el tiempo de subida (en inglés: rise time) y la precisión requerida en régimen permanente (en inglés: steady-state precision). Las variables de entrada en un CLD pueden ser escogidas de muchas formas, sin embargo, lo típico es que sean las siguientes, habiendo también variaciones en el tema: a) variables de error: la diferencia entre el valor actual de cada una de las variables controladas y el valor deseado (e). b) variables de tasa de variación del error: suponiendo que las mediciones de las variables controladas son series discretas en el tiempo con tasa de muestreo constante, la tasa de variación del error (ê) en el instante k se construye como: ê(k) = e(k) - e(k-1). Así también es usual que cada variable de salida (en inglés: output) del controlador esté dada por: u(k) = u(k-1) + du(k) , en que el cambio incremental du(k) está determinado por e y ê. La representación del conjunto de reglas que forman la base de conocimiento del controlador difuso puede hacerse usando tablas difusas de decisión, o mapas de reglas difusas. Un mapa de reglas difusas muestra las reglas de la base de conocimiento que serán gatilladas ante los diferentes valores difusos que tomen dos variables de entrada. La Figura 3.4 muestra un mapa de regla difusa de una regla específica. ng np E2 ce pp pg ng np E1 ce pp pp pg Figura 3.4. Esquema de un mapa de regla difusa. Un mapa de regla difusa como el mostrado en la Figura 3.4 indica que se activará la consecuencia “pp” si la entrada E1 pertenece a “pp” o “pg” y E2 pertenece a “np”. En control difuso hay típicamente 3 tipos de conjuntos difusos que se usan habitualmente, “incrementos”, “disminuciones” y “aproximaciones”. Por su simpleza son muy utilizados aquellos que se definen usando líneas rectas - Incrementos o Función Gamma Γ: Γ:U→[0,1] a) Función de 2 parámetros (trazos rectos): 0; u < α u −α Γ(u;α , β ) = ;α < u < β β −α 1; u > β Una variante de Γ es la función S. b) Función S: 0; u ≤ α u − α 2 2 ;α < u ≤ β γ − α S (u;α , β , γ ) = 2 1 − 2 u − γ ; β < u ≤ γ γ −α 1; u > γ α +γ β= 2 S es una función de dos parámetros. Se usa más en lógica difusa y no tanto en control difuso. - Decrementos o Función L: L:U→[0,1], (función de dos parámetros). 1; u ≤ α β − u L(u;α , β ) = ;α < u ≤ β β −α 0; u > β - Aproximaciones o Función π: π:U→[0,1], (función de 4 parámetros) 0; u < α u −α ;α ≤ u < β β α − π (u;α , β , γ , δ ) = 1; β ≤ u < γ δ −u δ − γ ;γ ≤ u < δ 0; u ≥ δ Esta función puede ser simplificada a una función Λ (lambda) de tres parámetros, es decir, triangular. Por otra parte, extendiendo de la definición de la función S, puede definirse una función “Campana - π”, de la siguiente forma: S (u; γ − β , γ − β / 2); u ≤ γ 1 − S (u; γ − β , γ − β / 2); u > γ π (u; β , γ ) =