Sei sulla pagina 1di 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
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 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 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.
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%.


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
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 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: CMD TEMP
o Negativo
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.
Error


Salida








Fig. 13 Funciones de pertenencia de la entrada 2.
Fig. 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)

N Z P
E
R
R
O
R


D
(
C
M
D
-
T
E
M
P
)
/
D
T

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

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.
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, men
opciones => Surface.












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 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 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.
Comida Servicio
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 propina
Tabla 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 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.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
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

Potrebbero piacerti anche