Práctica. Lógica Difusa Con Matlab

download Práctica. Lógica Difusa Con Matlab

of 16

Transcript of Práctica. Lógica Difusa Con Matlab

  • 5/20/2018 Prctica. Lgica Difusa Con Matlab

    1/16

    Prctica 2. Lgica Difusa

    Resumen

    En esta prctica se da una introduccin a la lgica difusa, y se realizan dos ejemplos del uso del

    ToolBoxfuzzylogic de MATLAB, para la solucin de problemas sencillos.

    En esta prctica se da una introduccin a la lgica difusa, empezando por su concepto, su relacin

    con el comportamiento humano, su uso y las teoras en las que se basa. Enseguida se muestran

    otras caractersticas de este tipo de lgica y la forma y situaciones en la que se usa diferencindola

    de la lgica clsica. Como parte final de la introduccin se hace referencia a conceptos que son

    tiles para el entendimiento de este tema incluyendo entre ellos el del controlador difuso,

    enumerando las partes de las que consta y las caractersticas de cada una de ellas.

    En el cuerpo de este trabajo se desarrollan dos problemas usando la lgica difusa, el primero

    (hecho en clase) determina el porcentaje de propina a pagar dependiendo de si el servicio fue

    considerado pobre bueno o excelente y de si la comida fue mala o deliciosa. El segundo problema

    consta de mantener la temperatura de un cuarto en un valor deseado, esto se logra activando unenfriador o un calentador de forma independiente dependiendo de si el error y la diferencia del

    error es positiva, negativa o cero. En ambos problemas se hace un desarrollo paso a paso de la

    implementacin de estos sistemas; se observa la construccin de la funcin, las entradas y sus

    conjuntos de pertenencia, as como las salidas, las reglas que son necesarias para dar una salida y

    cmo se obtiene un valor numrico a partir de calificaciones que son meramente basadas en una

    cuestin personal.

    Finalmente se analizan resultados y se dan conclusiones.

    Objetivo:

    Conocer y aplicar los fundamentos de la lgicafuzzya ejemplos acadmicos y de la vida diaria.

    Introduccin y marco terico

    La cantidad y variedad de aplicaciones de la lgica difusa (fuzzy, borrosa, heurstica) han crecido

    considerablemente. La lgica difusa es una lgica alternativa a la lgica clsica que pretende

    introducir un grado de vaguedad en las cosas que evala. En el mundo existe mucho conocimiento

    ambiguo e impreciso por naturaleza. El razonamiento humano con frecuencia acta con este tipo

    de informacin. La lgica difusa fue diseada precisamente para imitar el comportamiento del ser

    humano. La clave de esta adaptacin, se basa en comprender los cuantificadores de cualidad para

    nuestras inferencias.

    Este tipo de lgica se pude definir como la aplicacin de la Teora de los conjuntos difusos junto ala extraccin de valores reales de problemas complejos. Se basa en reglas heursticas de la forma

    SI (antecedente) ENTONCES (consecuente), donde el antecedente y el consecuente son tambin

    conjuntos difusos, ya sea puros o resultado de operar con ellos.

    Los mtodos de inferencia para esta base de reglas deben ser sencillos, verstiles y eficientes. Los

    resultados de dichos mtodos son un rea final, fruto de un conjunto de reas solapadas entre s

    (cada rea es un resultado de una regla de inferencia). Para escoger una salida concreta a partir de

  • 5/20/2018 Prctica. Lgica Difusa Con Matlab

    2/16

    tanta premisa difusa, el mtodo ms usado es el del centroide, en el que la salida final ser el

    centroide del rea total resultante.

    Las reglas de las que dispone el motor de inferencia de un sistema difuso pueden ser formuladas

    por expertos o aprendidas por el propio sistema, haciendo uso de redes neuronales para

    fortalecer las futuras tomas de decisiones.

    La lgica difusa se inici en 1965 por Lotfi A. Zadeh, profesor de la Universidad de California en

    Berkeley. Surgi como una herramienta importante para el control de sistemas y procesos

    industriales complejos, as como tambin para la electrnica de entretenimiento y hogar, sistemas

    de diagnstico y otros sistemas expertos.

    Se puede aplicar en procesos demasiado complejos, cuando no existe un modelo de solucin

    simple o un modelo matemtico preciso. Es til tambin cuando se necesita usar el conocimiento

    experto que utiliza conceptos ambiguos o imprecisos. De la misma manera se puede aplicar

    cuando ciertas partes de un sistema a controlar son desconocidas y no pueden medirse de forma

    confiable y cuando el ajuste de una variable puede producir desajuste de otras. No es

    recomendable utilizar la lgica difusa cuando algn modelo matemtico ya solucionaeficientemente el problema, cuando los problemas son lineales o cuando no tienen solucin.

    La lgica difusa en comparacin con la lgica convencional permite trabajar con informacin que

    no es exacta para poder definir evaluaciones convencionales, contrario con la lgica tradicional

    que permite trabajar con informacin definida y precisa.

    Con la finalidad de entender ms este tipo de lgica se enumeran algunos conceptos tiles:

    Conjunto Ntido: Es un conjunto que puede ser enumerado, consta de reglas y tiene una funcin

    caracterstica; la cual define un conjunto al tomar como parmetro un elemento y regresa 1 si el

    elemento pertenece a un conjunto y cero si no pertenece a l.

    Conjunto Difuso o Borroso: Son una generalizacin de los conjuntos ntidos. En la teora de

    conjuntos difusos, los elementos pueden pertenecer parcialmente a los conjuntos. El grado de

    pertenencia se determina por una funcin de membresa (tambin llamada funcin de

    pertenencia).

    Una funcin de membresa define un conjunto difuso de la siguiente manera, toma como

    argumento un elemento, y regresa un valor entre 0 y 1 que define el grado en que ese elemento

    pertenece al conjunto. La definicin de un conjunto difuso depende del problema en particular y

    de la persona que lo define.

    Fuzzy Sets o Conjuntos Difusos: Desde el punto de vista de que se aplican palabras a la definicin

    de cualquier propiedad. No pueden ser definidos con 0 o 1, se ha de establecer un peso para la

    caracterstica estableciendo valores intermedios.

    Grado de Pertenencia: Este valor establece el punto de transicin entre 0 y 1 entre las condiciones

    del conjunto difuso.

    Resumen de la informacin: A partir de un conjunto de entradas se puede determinar una

    situacin.

  • 5/20/2018 Prctica. Lgica Difusa Con Matlab

    3/16

    Variable difusa: Cualquier valor que est basado en la percepcin humana ms que en valores

    precisos de medicin. Est vinculada con el uso del lenguaje y pueden ser usadas en estructuras

    del tipo if- then.

    Controlador Difuso: Trabaja de manera muy diferente a los sistemas de control convencionales.

    Estos usan el conocimiento experto para generar una base de conocimientos que dar al sistema

    la capacidad de tomar decisiones sobre ciertas acciones que se presentan en su funcionamiento.

    Permiten describir un conjunto de reglas que utilizara una persona para controlar un proceso y a

    partir de estas reglas generar acciones de control.

    Fig. 1 Estructura de un modelo difuso.

    Fusificacin: Convertir valores crisp o va-lores reales en valores difusos. Se asignan grados de

    pertenencia a cada una de las variables de entrada con relacin a los conjuntos difusos

    previamente definidos utilizando las funciones de pertenencia asociadas a los conjuntos difusos.

    Base de conocimiento: Contiene el conocimiento asociado con el dominio de la aplicacin y los

    objetivos de control. Se deben definir las reglas lingsticas de control que realizarn la toma de

    decisiones que decidirn la forma en la que debe actuar el sistema.

    Inferencia: Relaciona los conjuntos difusos de entrada y salida para representar las reglas que

    definirn el sistema. Se utiliza la informacin de la base de conocimiento para generar reglas

    mediante el uso de condiciones (si- entonces).

    Defusificacin: Adecua los valores difusos generados en la inferencia en valores crisp, que

    posteriormente se utilizarn en el proceso de control. Se utilizan mtodos matemticos simples

    como el mtodo del Centroide, Mtodo del Promedio Ponderado y Mtodo de Membresa del

    Medio del Mximo.

    Planteamiento

    Problema 1.

    Con base en la calidad del servicio y de la comida, se quiere determinar qu porcentaje de propina

    se le proporcionar al mesero. El servicio ser calificado del 1 al 10, del mismo modo ser

    calificada la comida, el resultado de la funcin nos dar un valor numrico de propina en un rango

    del 0 a 16%.

  • 5/20/2018 Prctica. Lgica Difusa Con Matlab

    4/16

    Desarrollo y Memoria de Clculo

    Desarrollo

    Del ejercicio que se realiz en clase.

    1.

    Se abre el mdulo de Fuzzy Logic en MATLAB, haciendo clic en la opcin FIS Editor GUI

    (Fuzzy)

    Fig. 2 Mdulo de Lgica Difusa en MATLAB

    2.

    Se introducen el nmero de variables de entrada que sern procesadas en las reglas * para

    obtener la salida de la funcin

    Fig. 3 Se muestra como aadir una nueva variable.

    3.

    Se nombra cada una de las entradas y las salidas, del mismo modo se le asigna un nombre

    a la funcin y a cada uno de los conjuntos para cada variable.

    Fig. 4 En esta ventana es en donde se pueden cambiar los valores del conjunto de pertenencia de cada variable.

    4.

    Se pueden modificar los valores de los conjuntos de pertenencia o membresa, con base

    en la experiencia o criterio personal. Modificamos el modelo que tienen los conjuntos de

    pertenencia por default, y para la primera variable que es Servicio, seleccionamos un

    comportamiento tipo Gaussiano, que se muestre en un rango del 1 al 10. El rango en el eje

  • 5/20/2018 Prctica. Lgica Difusa Con Matlab

    5/16

    X es cmo vamos a evaluar a las variables, en este caso existen 2; Servicio y Comida, las

    cuales sern calificadas dentro de este rango.

    Fig. 5 Editar el tipo del conjunto de pertenencia.

    5.

    Se ajustan los valores del conjunto de membresa para las dos variables. Se cambian los

    valores que tiene por default, en el caso de la variable Comida se seleccionaron solo dos

    conjuntos de membresa los cuales tienen un tipo trapezoidal, en este caso tambin es

    necesario eliminar un conjunto ya que se tiene 3 por default. Los conjuntos determinan:

    En qu nivel, segn la calificacin que se le da al conjunto, se pertenece o

    no a esa categora. Tomando como ejemplo la variable comida, si se le

    asigna un valor de 0, entonces pertenece 100% a la categora de Malo,

    pero si se le asigna una calificacin de 10, entonces la pertenencia quetiene al conjunto Malo es 0% y 100% al conjunto de Deliciosa.

    De nuevo, los valores del rango se seleccionan a criterio personal. Se obtiene lo siguiente.

    Fig. 6 Funcin de pertenencia de la variable servicio.

    Fig. 7 Funcin de membresa de la variable comida.

    6.

    Para la salida se establecen, del mismo modo, los conjuntos de membresa, en este caso la

    salida es la propina, el rango en X de la propina cambia, ya no es el mismo que el del

    servicio y comida, porque ahora lo que se busca es evaluar qu tanto por ciento de

    propina se proporcionar al mesero. El rango va de un 0 a 16.

    Se cambian los nombres de las funciones de membresa y se ajustan segn parezca

    conveniente. En este caso se definieron 3 conjuntos para la salida; poca, promedio y

    generosa, poca con un tipo triangular y promedio y generosa con un tipo trapezoidal.

  • 5/20/2018 Prctica. Lgica Difusa Con Matlab

    6/16

    Fig. 8 Funcin de membresa de la propina.

    7.

    Ya definidas las variables de entrada, de salida y sus respectivos conjuntos de pertenencia

    se procede a declarar las reglas gobernarn la salida con respecto a las variables de

    entrada. En este caso especfico tenamos 3 reglas consideradas en un principio:

    Si el servicio es pobre o la comida es mala entonces la propina es poca.

    Si el servicio es bueno entonces la propina es promedio.

    Si el servicio es excelente o la comida es deliciosa entonces la propina es

    generosa.

    Estas reglas se declaran haciendo clic en la pestaa Edit y posteriormente en la ventana que

    aparece.

    En esta ventana se muestran las variables de entrada y sus conjuntos de pertenencia, y los

    conectores lgicos de forma en que podemos declarar las reglas. Se define la salida para cada

    regla.

    Fig. 9 Declaracin de las reglas del sistema

    8.

    Por ltimo podemos visualizar cmo trabaja nuestra funcin.

    En la pestaa View, se selecciona Rules y se despliega la pantalla que se muestra a

    continuacin, en el recuadro de Input, introducimos los valores de nuestras dos variables,

    primero la de Servicio que es la que est declarada primero y posteriormente comida. En

    la salida nos proporciona un valor numrico de propina, segn las reglas que se

    establecieron anteriormente. Este valor es el resultado de la desfuzificacin realizada

  • 5/20/2018 Prctica. Lgica Difusa Con Matlab

    7/16

    internamente por MATLAB, usando el mtodo de ubicar el centroide de la figura

    resultante en la salida.

    Fig. 10 Visualizacin del resultado de la funcin.

    Planteamiento

    Problema 2

    Se tiene un controlador difuso simple de temperatura a fin de mantener un cuarto a una valor

    deseado, en este caso dicho valor le llamaremos CMD el cual alimenta a nuestro controlador,

    adems de la temperatura real del sistema. Como podemos ver en la figura, despus del

    controlador tenemos un enfriador y un calentador, los cuales sern o no activados

    independientemente, segn sea el caso.

    CONTROLADOR DIFUSO SIMPLE

    CONTROLADOR

    DIFUSO

    CALENTADOR

    ENFRIADOR

    SISTEMA

    SALIDA

    SALIDA

    TEMP

    CMD

    Fig. 11 Modelo del controlador basado en lgica borrosa o fuzzy.

    Algunas variables que tenemos que definir

    CMD:Temperatura Objetivo (Deseada)

    TEMP:Temperatura Observada

    ERROR:CMDTEMP

    o Negativo

  • 5/20/2018 Prctica. Lgica Difusa Con Matlab

    8/16

    o Cero

    o Positivo

    ERROR:Diferencial del ERROR (Calentando o Enfriando)

    o

    Negativo

    o

    Cero

    o

    Positivo SALIDA:CONTROL (CALENTAR, SEGUIR, ENFRIAR)

    El sistema tiene 2 entradas (variable lingstica) y una salida (variable lingstica):

    Error:Es la diferencia entre la temperatura observada y la deseada

    Error:Es la relacin de cambio del error.

    Desarrollo y Memoria de Clculo

    Desarrollo

    1.

    Las variables de entrada pertenecen en mayor o menor medida a 3 conjuntos que se

    denominan; negativo, cero y positivo. La variable de salida tambin pertenece a 3

    conjuntos borrosos que son; calentar: Actuar sobre el calentador del sistema, seguir:

    mantener la accin anterior y enfriar: Actuar sobre el enfriador del sistema.

    Un experto en la materia proporcion la siguientes graficas de entrada y salidas.

    Entradas

    Error

    Fig. 12. Funcin de pertenencia de la entrada 1.

  • 5/20/2018 Prctica. Lgica Difusa Con Matlab

    9/16

    Error

    Salida

    Fig. 13 Funciones de pertenencia de la entrada 2.

    Fig. 14 funciones de pertenencia de la salida.

  • 5/20/2018 Prctica. Lgica Difusa Con Matlab

    10/16

    2.

    Se declaran las reglas, se tienen 9 en total, las cuales se muestran en la siguiente tabla.

    ERROR (CMD-TEMP)

    N Z P

    ERROR

    D(CMD-TEMP)/DT

    N ENFRIAR CALENTAR CALENTAR

    Z ENFRIAR SEGUIR CALENTAR

    P ENFRIAR ENFRIAR CALENTAR

    De forma explicita

    (Error negativo and error negativo) then (enfriar)

    (Error negativo and error cero) then (enfriar)

    (Error negativo and error positivo) then (enfriar)

    (Error cero and error negativo) then (calentar)

    (Error cero and error cero) then (seguir)

    (Error cero and error positivo) then (enfriar)

    (Error positivo and error negativo) then (calentar)

    (Error positivo and error cero) then (calentar)

    (Error positivo and error positivo) then (calentar)

    3.

    Una vez que tenemos todo definido procedemos a utilizar la herramienta defuzzylogic

    Inicialmente colocamos el nmero indicado de entradas y salidas.

  • 5/20/2018 Prctica. Lgica Difusa Con Matlab

    11/16

    Fig. 15 Ventana principal del ToolBox de FuzzyLogic

    4.

    Las configuraciones se dejan intactas.

    Se definen los grados de perteneca antes mencionados.

    5.

    Posteriormente en la ventana principal, en el recuadro de color blanco se hace clic para

    definir las reglas del sistema.

    Fig. 16 Definicin de las funciones de membresa.

  • 5/20/2018 Prctica. Lgica Difusa Con Matlab

    12/16

    Fig. 18 Ventana que muestra el grfico en 3D de superficie del sistema.

    Fig. 17 Ventana donde se definen las reglas.

    Todas las reglas estn basadas en el operador lgico and.

    6.

    Al terminar se puede revisar el Surface colocndose en la ventana principal, menopciones => Surface.

    7.

    Y finalmente de nuevo en la ventana principal, men opciones => rules desplegar la

    siguiente ventana.

  • 5/20/2018 Prctica. Lgica Difusa Con Matlab

    13/16

    Fig. 19 Ventana Rules, se muestran los valores de entrada y salida de la funcin.

    En la esquina inferior izquierda se encuentra el vector fila con 2 elemento (entradas) las cuales se

    pueden modificar a fin de conocer la respuesta del sistema

    Fig. 20 Vector de entradas del sistema

    Resultados y Discusin

    Para ambos problemas, a partir de dos variables de entrada, de las cuales se expresaron sus

    funciones de pertenencia membresa de cada una de las variables lingsticas. Las salidas, de la

    misma forma se definen como un conjunto de variables lingsticas que tienen conjuntos de

    pertenencia, declarados segn la experiencia personal de quin observa el proceso que se est

    evaluando.

    Para el primer y segundo problema, se ingresan datos al vector de entrada, se observa el grado depertenencia a la funcin de membresa segn el valor numrico ingresado, y conforme la regla

    definida, es el grado de pertenencia que le corresponde la salida.

    Especficamente para el problema 1, asignamos valores segn lo siguiente, los calificativos para la

    comida y el servicio no iguales a los nombrados en las entradas y sus funciones de membresa, son

    solo adjetivos que describen de alguna forma los valores numricos ingresados.

    Comida Servicio

  • 5/20/2018 Prctica. Lgica Difusa Con Matlab

    14/16

    Fig. 21 Prueba 1

    Muy mala (1) Bueno(8)

    Regular(5) Malo(2)

    Buena(7) Muy malo(0)

    Excelente (10) Excelente (8)Tabla 1 La tabla muestra valores de entrada para realizar pruebas.

    Segn las reglas que se ingresaron:

    1.

    2.

    Si el servicio es pobre o la comida es mala entonces la propina es poca.

    3.

    Si el servicio es bueno entonces la propina es promedio.

    4.

    Si el servicio es excelente o la comida es deliciosa entonces la propina es generosa.

    Verifiquemos el comportamiento del programa, esperando los siguientes resultados,

    expresados solo en palabras, el programa nos dar una mejor aproximacin de la propina,

    arrojando datos numricos.

    Comida Servicio Resultado esperado

    Muy mala (1) Bueno(8) Poca propina

    Regular(5) Malo(2) Poca propina

    Buena(7) Muy malo(0) Propina poca, pero mayor que

    los casos anteriores.

    Excelente (10) Excelente (8) Muy buena propinaTabla 2 Salidas lingsticas esperadas

    Despus de especular un poco con respecto a los resultados, se prueba el programa realizado.

    Para la primera prueba, donde la comida es calificada con 1 y elservicio con 8, tenemos una propina resultante de 6.83.

    En la segunda prueba en donde el servicio y la comida son pobres,

    con entrada de 2 y 5 respectivamente, la propina resultante es de

    4.64%

    Fig. 22 Prueba 2

  • 5/20/2018 Prctica. Lgica Difusa Con Matlab

    15/16

    Para la tercera prueba, el servicio obtiene un valor de 0 y la

    comida de 7, por lo que la propina es de 1.85

    En la cuarta prueba el servicio y la comida son buenos, calificados con 8 y 10

    respectivamente, por lo que la propina se eleva al 11.7%

    Tabla 3. Valores reales, numricos, de la salida, propina.

    Con base en la prueba 1 y la 3, se puede observar que pesa ms que el servicio sea bueno, por

    encima de que la comida sea sabroso o no, ya que el nivel de propina cuando la comida es regular

    pero tiene mal servicio, no se compara al caso de que la comida sea mala y el servicio bueno, ya

    que la propina es casi 4 veces ms grande, en el ltimo caso. Si se quiere modificar los valores

    numricos que arroja la funcin ser necesario cambiar sus funciones de pertenencia, en cada

    variable, segn la ponderacin que tendr respecto a la salida, de nuevo basado en la experiencia

    o criterio propio.

    Del segundo ejercicio algunos ejemplos de la respuesta son:

    ERROR ERROR' SALIDA

    -1.5 0.5 -53.3

    -1.5 4 -56.5

    -0.5 0.5 -21.6

    1 1.3 13.4

    0.5 0.5 11.6

    4 4 0

    3 3 74

    Comida Servicio Resultado

    Muy mala (1) Bueno(8) 6.38

    Regular(5) Malo(2) 4.64

    Buena(7) Muy malo(0) 1.85

    Excelente (10) Excelente (8) 11.17

    Fig. 23 Prueba 3

    Fig. 24 Prueba 4

  • 5/20/2018 Prctica. Lgica Difusa Con Matlab

    16/16

    Tabla 4. Salidas de la funcin 2

    Se puede observar en la tabla que se cumplen las reglas antes dispuestas, por ejemplo en error= -

    1.5 y error= 0.5 la salida es -53.3 que significa que se est enfriando el lugar, de hecho si se

    mantiene el error negativo y error es an ms grande en magnitud la temperatura disminuye

    ms. Por el contrario si los dos errores son positivos la temperatura del lugar aumenta, entre ms

    altos en magnitud sean, la temperatura del lugar aumenta ms.

    Conclusiones

    La aplicacin de la lgica difusa a problemas cotidianos result ser muy didctico con respecto al

    funcionamiento de la lgica borrosa, ya que se comprob que con ella, se puede transformar un

    conjunto de variables que no son numricas y obtener como salida un nmero.

    Este tipo de herramientas, nos muestran otra opcin en el caso de controladores, ya que la lgica

    difusa se puede aplicar a sistemas, que debido a su funcionamiento complejo, o a sus partes

    fsicas, no puedan ser representadas por medio de un modelo matemtico.

    La nica desventaja que podra ser considerada es que, se requiere de un conocimiento previo del

    funcionamiento del sistema, o de la situacin que se est analizando, ya que la asignacin de las

    funciones de membresa es lo que repercute directamente en la salida de la funcin.

    Por ltimo se puede retomar este tipo de mtodos y combinarlos con el control moderno, para

    obtener mejores resultados en la implementacin de los sistemas de control.

    Referencias

    Wikipedia.org

    Cala.unex.es/cala/epistemowikia

    http://catarina.udlap.mx/

    Tecnologas de Sistemas Inteligentes (IA95- 022) Introduccin a la Lgica Difusa. M. Valenzuela

    1996- 1998