19
Práctica 2. Lógica Difusa Resumen En esta práctica se da una introducción a la lógica difusa, y se realizan dos ejemplos del uso del ToolBox fuzzylogic de MATLAB, para la solución de problemas sencillos. En esta práctica se da una introducción a la lógica difusa, empezando por su concepto, su relación con el comportamiento humano, su uso y las teorías en las que se basa. Enseguida se muestran otras características de este tipo de lógica y la forma y situaciones en la que se usa diferenciándola de la lógica clásica. Como parte final de la introducción 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 características de cada una de ellas. En el cuerpo de este trabajo se desarrollan dos problemas usando la lógica 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 un enfriador 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 implementación de estos sistemas; se observa la construcción de la función, las entradas y sus conjuntos de pertenencia, así como las salidas, las reglas que son necesarias para dar una salida y cómo se obtiene un valor numérico a partir de calificaciones que son meramente basadas en una cuestión personal. Finalmente se analizan resultados y se dan conclusiones. Objetivo: Conocer y aplicar los fundamentos de la lógica fuzzy a ejemplos académicos y de la vida diaria. Introducción y marco teórico La cantidad y variedad de aplicaciones de la lógica difusa (fuzzy, borrosa, heurística) han crecido considerablemente. La lógica

Práctica 2. Control Avanzado (2)

Embed Size (px)

Citation preview

Prctica 2. Lgica DifusaResumenEn esta prctica se da una introduccin a la lgica difusa, y se realizan dos ejemplos del uso del ToolBox fuzzylogic 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 un enfriador 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 lgica fuzzy a ejemplos acadmicos y de la vida diaria.Introduccin y marco tericoLa 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 a la 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 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 soluciona eficientemente 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.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.PlanteamientoProblema 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%.

Desarrollo y Memoria de ClculoDesarrolloDel 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 MATLAB2. 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 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 que tiene 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.

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 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 2Se 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.

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: CMD TEMP Negativo Cero Positivo ERROR: Diferencial del ERROR (Calentando o Enfriando) Negativo Cero 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 ClculoDesarrollo1. 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.EntradasErrorFig. 12. Funcin de pertenencia de la entrada 1.

ErrorFig. 13 Funciones de pertenencia de la entrada 2.

SalidaFig. 14 funciones de pertenencia de la salida.

2. Se declaran las reglas, se tienen 9 en total, las cuales se muestran en la siguiente tabla.ERROR (CMD-TEMP)

NZP

ERRORD(CMD-TEMP)/DTNENFRIARCALENTARCALENTAR

ZENFRIARSEGUIRCALENTAR

PENFRIARENFRIARCALENTAR

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 de fuzzylogic Inicialmente colocamos el nmero indicado de entradas y salidas.

Fig. 15 Ventana principal del ToolBox de FuzzyLogic4. Las configuraciones se dejan intactas.Se definen los grados de perteneca antes mencionados.Fig. 16 Definicin de las funciones de membresa.

5. Posteriormente en la ventana principal, en el recuadro de color blanco se hace clic para definir las reglas 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, men opciones => Surface.Fig. 18 Ventana que muestra el grfico en 3D de superficie del sistema.

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

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 DiscusinPara 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 de pertenencia 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.ComidaServicio

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.ComidaServicioResultado 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 propina

Tabla 2 Salidas lingsticas esperadasDespus de especular un poco con respecto a los resultados, se prueba el programa realizado.Fig. 21 Prueba 1

Para la primera prueba, donde la comida es calificada con 1 y el servicio 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

Para la tercera prueba, el servicio obtiene un valor de 0 y la comida de 7, por lo que la propina es de 1.85Fig. 23 Prueba 3

ComidaServicioResultado

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

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.Fig. 24 Prueba 4

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:ERRORERROR'SALIDA

-1.50.5-53.3

-1.54-56.5

-0.50.5-21.6

11.313.4

0.50.511.6

440

3374

Tabla 4. Salidas de la funcin 2Se 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.

ConclusionesLa 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.ReferenciasWikipedia.orgCala.unex.es/cala/epistemowikiahttp://catarina.udlap.mx/Tecnologas de Sistemas Inteligentes (IA95- 022) Introduccin a la Lgica Difusa. M. Valenzuela 1996- 1998CONTROLADORDIFUSOCALENTADORENFRIADORSISTEMASALIDA

SALIDA

TEMP

CMD

CONTROLADOR DIFUSO SIMPLE