Control Difuso¶

Es un sistema de control que esta basado en la lógica difusa.

Lofti A. Zadeh desarrollo la lógica difusa.

¿Qué tan mojada esta la ropa?¶

Lógica Booleana¶

  • Mojada (Verdadero)
  • Seca (Falso)

Lógica Difusa¶

  • Parcialmente Mojada (0.7)
  • Parcialmente Seca (0.3)

Beneficios del control difuso¶

  • No requiere conocer el modelo dinámico del sistema a controlar. Por tanto,
    • No requiere identificar el sistema
    • No necesita aproximar el modelo
    • No necesita linealizarlo.
  • Pero,
    • No se conoce bien el sistema

Aplicaciones del control difuso¶

Estructura de un controlador difuso¶

Tomada de A survey on industrial applications of fuzzy control

Etapas dentro de un controlador difuso¶

  • Valores de Entrada (crisp inputs)
  • Módulo de Fusificación
  • Entradas difusas
  • Módulo de Inferencia
  • Conclusiones difusas
  • Módulo de Defusificación
  • Valores de Salida (crisp outputs)

Variables lingüísticas / Funciones de membresia¶

Reglas de Control¶

Dado un sistema con dos entradas $X$ y $Y$ y una salida $Z$, podemos definir las reglas de control en el modulo de inferencia así:

  • Si $X$ es $A_1$ y $Y$ es $B_1$, entonces $Z$ es $C_1$
  • Si $X$ es $A_2$ y $Y$ es $B_2$, entonces $Z$ es $C_2$
  • Si $X$ es $A_3$ y $Y$ es $B_3$, entonces $Z$ es $C_3$

Modulo de Defusificación¶

Para la defusificación se pueden usar diferentes métodos:

  • Centroide: considera a la función como una función de distribución de masa y busca su centroide.
  • Bisectriz: divide el area bajo la función en dos regiones iguales.
  • Máximo central (MOM mean of maximum): toma el promedio de los máximos.
  • Máximo más grande (LOM largest of maximum): toma el máximo más grande.
  • Máximo más pequeño (SOM smallest of maximum): toma el máximo más pequeño.

Modulo de inferencia¶

Existen diferentes métodos de inferencia, entre ellos:

  • Mamdani

Ejemplo : Impresora¶

Realicemos el control de posición de la impresora via el voltaje del motor con un controlador difuso.

  • Variable de entrada : Error de posición
  • Variable de salida : Voltaje del motor

Sistema de control¶

Reglas de control¶

  • Si el error es NG, entonces el voltaje es NG (negativo grande)
  • Si el error es NP, entonces el voltaje es NP (negativo pequeño)
  • Si el error es C, entonces el voltaje es C (cero)
  • Si el error es PP, entonces el voltaje es PP (positivo pequeño)
  • Si el error es PG, entonces el voltaje es PG (positivo grande)

En MATLAB¶

Usaremos la aplicación fuzzy logic designer, debemos tener instalado el Fuzzy Logic Toolbox

Fuzzy logic designer¶

Esta es la ventana inicial, donde definiremos la variable de entrada como el error y la variable de salida como el voltaje.

Funciones de membresia¶

Cambiar los valores de error en posición

  • ENG = (Range -20, 20, Type: Trapmf, Params: -20 -20 -10 – 5)
  • ENP = (Range -20, 20, Type: Trimf, Params: -10 -5 -0 )
  • EC = (Range -20, 20, Type: Trimf, Params: -5 -0 5 )
  • EPP = (Range -20, 20, Type: Trimf, Params: 0 5 10 )
  • EPG = (Range -20, 20, Type: Trápmf, Params: 5 10 20 20 )

Funciones de membresia¶

Cambiar los valores de voltaje

  • VNG = (Range -12, 12, Type: Trapmf, Params: -12 -12 -6 – 3)
  • VNP = (Range -12, 12, Type: Trimf, Params: -6 -3 -0 )
  • VC = (Range -12, 12, Type: Trimf, Params: -3 -0 3 )
  • VPP = (Range -12, 12, Type: Trimf, Params: 0 3 6 )
  • VPG = (Range -12, 12, Type: Trapmf, Params: 3 6 12 12 )

Añadir reglas de control¶

  • Vamos a edit y buscamos el término Rules.
  • Emparejamos las entradas y salidas correspondientes con el bóton "Add rule"
  • Cuando hayamos terminado cerramos la ventana.
  • Seleccionamos el metodo de fusificación.
  • Exportamos las reglas.

Visualización de las reglas¶

Visualización de la superficie de control¶

Archivos para Matlab¶

  • Controlador difuso
  • Simulink