Problemas de logica Difusa A - Oscar Villarreal - Sistemas de Control Inteligente.pdf

10
PROBLEMAS DE LOGICA DIFUSA OSCAR VILLARREAL MARTINEZ CETYS UNIVERSIDAD SISTEMAS DE CONTROL INTELIGENTE 1. Se tienen los siguientes números difusos: A = 0.33/6 + 0.67/7 + 1/8 + 0.67/9 + 0.33/10 B = 0.33/1 + 0.67/2 + 1/3 + 0.67/4 + 0.33/5 Calcula y dibuja las funciones de membrecía resultantes de A + B, A * B y A / B Los conjuntos difusos permiten expresar la incertidumbre en el valor de un cierto número o de una cierta variable. Se denomina número difuso a una cantidad imprecisa expresada por medio de un conjunto difuso. Estos números difusos pueden aparecer en expresiones aritméticas, es decir, es posible realizar operaciones con ellos [Dubois, 1987]. El resultado de una operación aritmética sobre dos números difusos da lugar a un resultado impreciso, es decir a un nuevo número difuso, que estará descrito mediante un conjunto difuso diferente que debemos calcularLas operaciones aritméticas con números difusos se realizan con los valores reales del conjunto y no con los valores de pertenencia. Los valores a utilizar en las operaciones están definidos por aquellos números que tienen el mismo valor de pertenencia. SUMA: A (+) B = [a 1 , a 2 ] (+) [b 1 , b 2 ] = [a 1 +b 1 , a 2 +b 2 ] (1) Figura 1. Solución en MATLAB. En MATLAB se pueden resolver estas operaciones como se muestra en la Figura 1. Definiendo los valores y las pertenencias de cada valor obtenemos el resultado y podemos graficar como se muestra en la Figura 2

Transcript of Problemas de logica Difusa A - Oscar Villarreal - Sistemas de Control Inteligente.pdf

Page 1: Problemas de logica Difusa A - Oscar Villarreal - Sistemas de Control Inteligente.pdf

PROBLEMAS DE LOGICA DIFUSA OSCAR VILLARREAL MARTINEZ CETYS UNIVERSIDAD SISTEMAS DE CONTROL INTELIGENTE

1. Se tienen los siguientes números difusos: A = 0.33/6 + 0.67/7 + 1/8 + 0.67/9 + 0.33/10 B = 0.33/1 + 0.67/2 + 1/3 + 0.67/4 + 0.33/5

Calcula y dibuja las funciones de membrecía resultantes de A + B, A * B y A / B “Los conjuntos difusos permiten expresar la incertidumbre en el valor de un cierto número o de una cierta variable. Se denomina número difuso a una cantidad imprecisa expresada por medio de un conjunto difuso. Estos números difusos pueden aparecer en expresiones aritméticas, es decir, es posible realizar operaciones con ellos [Dubois, 1987]. El resultado de una operación aritmética sobre dos números difusos da lugar a un resultado impreciso, es decir a un nuevo número difuso, que estará descrito mediante un conjunto difuso diferente que debemos calcular” Las operaciones aritméticas con números difusos se realizan con los valores reales del conjunto y no con los valores de pertenencia. Los valores a utilizar en las operaciones están definidos por aquellos números que tienen el mismo valor de pertenencia. SUMA:

A (+) B = [a1, a2] (+) [b1, b2] = [a1+b1, a2+b2] (1)

Figura 1. Solución en MATLAB.

En MATLAB se pueden resolver estas operaciones como se muestra en la Figura 1. Definiendo los valores y las pertenencias de cada valor obtenemos el resultado y podemos graficar como se muestra en la Figura 2

Page 2: Problemas de logica Difusa A - Oscar Villarreal - Sistemas de Control Inteligente.pdf

plot (A,M, 'r', B,M, 'b', R,M, 'k') (2)

Figura 2. Gráfica de números difusos y su resultado en la suma aritmética. MULTIPLICACION:

A (*) B = [a1, a2] (*) [b1, b2] = [a1*b1, a2*b2] (3) Al igual que en la suma, la multiplicación de números difusos se puede realizar en MATLAB como muestra la Figura 3. Observe como en el caso de la multiplicación el resultado no es una función lineal.

Figura 3. Gráfica de números difusos y su resultado en la multiplicación aritmética.

Page 3: Problemas de logica Difusa A - Oscar Villarreal - Sistemas de Control Inteligente.pdf

Por último en las Figuras 4 y 5 se muestran los resultados de la división y las fórmulas utilizadas en MATLAB para su ejecución

A (:) B = A (*) B -1 = [a1, a2] (*) [1/b2, 1/b1] = [a1/b2, a2/b1] (4)

Figura 4. Formulas y funciones en MATLAB para ejecutar la división de números difusos.

Figura 5. Gráfica de números difusos y su resultado en la división aritmética.

Page 4: Problemas de logica Difusa A - Oscar Villarreal - Sistemas de Control Inteligente.pdf

2. Para las siguientes relaciones difusas obtén la relación R(A,C) mediante la composición max-average.

A\ B b1 b2 b3 B\C c1 c2 c3

a1 0.9 0.2 0.2 b1 0.3 0.8 0

a2 0.9 0.4 0.5 b2 0 0.6 1.0

a3 1.0 0.6 1.0 b3 0.3 0.8 0.2

Para este ejercicio utilizamos una formula simple en Excel donde obtenemos el promedio de cada renglón y columna y el resultado será el máximo valor de las 3 combinaciones para cada caso:

=MAX(((a1b1+b1c1)/2),((a1b2+b2c1)/2),((a1b3+b3c1)/2)) (1)

Utilizando otras funciones: =MAX(AVERAGE(a1b1,b1c1),AVERAGE(a1b2,b2c1),AVERAGE(a1b3,b3c1)) (2)

A/B b1 b2 b3

a1 0.9 0.2 0.2

a2 0.9 0.4 0.5

a3 1 0.6 1

B/C c1 c2 c3

b1 0.3 0.8 0

b2 0 0.6 1

b3 0.3 0.8 0.2

R (A,C) c1 c2 c3

a1 0.6 0.85 0.6

a2 0.6 0.85 0.7

a3 0.65 0.9 0.8

Page 5: Problemas de logica Difusa A - Oscar Villarreal - Sistemas de Control Inteligente.pdf

3. Establece una relación entre las variables S = Calidad de servicio y P = Propina, para ser usada en un restaurante.

Con la sintaxis “fuzzy” abrimos el GUI (Graphic User Interface) “FIS Editor” de MATLAB el cual es una herramienta que nos permite editar características del más alto nivel en sistemas de interferencia difusa, tales como el número de entradas y variables de salida. El “FIS Editor” nos permite llamar otros editores para realizar las operaciones. Al mismo tiempo este editor nos brinda la opción de interactuar con el sistema difuso con mayor flexibilidad. Para el caso de la relación Calidad del Servicio – Propina se muestran los siguientes gráficos tomados directamente de un sistema propuesto en MATLAB. Cabe mencionar que los sistemas se muestran con la única intención de ejemplificar las acciones que se pueden realizar dentro de la interface grafica de usuario (GUI); los valores mostrados no implica un sistema difuso óptimo.

Figura 1. “FIS Editor” de MATLAB mostrando la relación Servicio-Propina.

Page 6: Problemas de logica Difusa A - Oscar Villarreal - Sistemas de Control Inteligente.pdf

Figura 2. Editor de las funciones de membrecía. Entrada => Servicio en rango del 0 al 10

Figura 3. Editor de las funciones de membrecía. Salida => Propina en rango del 0 al 15

Page 7: Problemas de logica Difusa A - Oscar Villarreal - Sistemas de Control Inteligente.pdf

4. Define las variables difusas Volumen (de líquido en un tanque) y Apertura de válvula, indicando los valores lingüísticos de cada una así como sus funciones de membrecía.

Nuevamente haciendo uso de la interface grafica de usuario (GUI) “FIS Editor” de MATLAB se definen las relaciones entre el Volumen de un Tanque y la Apertura de una Válvula de llenado; así mismo se establecen las funciones de membrecía mostrando algunas características del tipo de función (en este caso triangular o trapezoidal) y sus valores lingüísticos a través del Editor de Reglas. Al final se muestra una gráfica del Sistema que ejemplifica los valores mostrados. Nuevamente se hace hincapié en que los valores mostrados son únicamente de referencia. Se crea un nuevo FIS con el Editor utilizando el método Mamdani. Posteriormente se crean sus funciones de membrecía de Entrada (Válvula) y de Salida (Volumen del Tanque). El rango de apertura de la válvula queda definido entre 0 y 20 con funciones: Cerrada, Media y Abierta El rango de volumen del Tanque se establece entre 0 y 100 con funciones: Vacio, Bajo, Medio y Lleno.

Figura 1. Editor “FIS”. Relación Volumen-Válvula en un sistema difuso

Page 8: Problemas de logica Difusa A - Oscar Villarreal - Sistemas de Control Inteligente.pdf

Figura 2. Variable de Entrada Volumen incluyendo sus funciones de membrecía

Figura 2. Variable de Salida Válvula incluyendo sus funciones de membrecía

Page 9: Problemas de logica Difusa A - Oscar Villarreal - Sistemas de Control Inteligente.pdf

En el editor de reglas se muestran 3 reglas básicas iniciales del tipo “IF-THEN”: 1. Si el Tanque (Volumen) está lleno entonces la Válvula permanece cerrada 2. Si el Tanque (Volumen) está vacio entonces la Válvula permanece abierta 3. Si el Tanque (Volumen) está en un nivel bajo entonces la Válvula permanece

Medio abierta Así mismo se pueden editar más combinaciones de reglas “IF-THEN” e incluso agregar reglas del tipo “OR-AND” y agregar más variables de entrada o salida. La formulación de las reglas va dando como resultado un comportamiento diferente del Sistema. Las ventajas de las reglas “IF-THEN” y “AND-OR” en un Sistema Difuso es que, a diferencia de un Sistema Digital o de Control Tradicional, cada una de las reglas de estos sistemas tiene un grado de membrecía y se le puede agregar un peso para darle mayor “valor” o prioridad.

Figura 3. Ejemplo del Editor de Reglas. Por último se presenta la grafica correspondiente a este sistema. Agregar o eliminar reglas tendrá como consecuencia la modificación del sistema. En este ejemplo se puede observar como a menor Volumen contenido en un Tanque mayor será la apertura de la Válvula. Mientras el tanque se va llenando la apertura de la Válvula se va haciendo menor.

Page 10: Problemas de logica Difusa A - Oscar Villarreal - Sistemas de Control Inteligente.pdf

Figura 4. Comportamiento de la Válvula dependiendo del Volumen (Contenido en un Tanque)