TPNº3-Logica Fuzzy

download TPNº3-Logica Fuzzy

of 13

Transcript of TPNº3-Logica Fuzzy

INTELIGENCIA ARTIFICIALTrabajo Prctico n 3 Lgica Fuzzy Sistema de Refrigeracin

[C]

Profesores: Ing. Mario Figueroa Ing. Pablo Rovarini Alumnos: Jos Daniel Muccela Comisin: 5 k 2 Ao 2008

Facultad Regional Tucumn Universidad Tecnolgica Nacional

Inteligencia Artificial 2008 TPN3 Lgica Fuzzy Muccela Jos Daniel

TP N3 Controlador Fuzzy Problema: Deber elaborar un Sistema Experto Fuzzy para controlar un Sistema de Refrigeracin de una sala de conferencias. Los parmetros de medicin son Temperatura y Humedad. La variable de salida es la Velocidad del Ventilador. Para Temperatura deber considerar 5 Term-Set. Para Humedad deber considerar 5 Term-Set. Para la variable de salida Velocidad del Ventilador deber considerar 5 Term-Set. Usted deber indicar los valores de referencias de Temperatura (C), Humedad (%) y Velocidad de Ventilacin (RPM). Para su sistema puede usar Matlab, C++, etc. Deber presentar su trabajo en carpeta mas el CD con el ejecutable.

UTN

FRT

1

Inteligencia Artificial 2008 TPN3 Lgica Fuzzy Muccela Jos Daniel

Desarrollo Controlador Fuzzy para Sistema de Refrigeracin Se necesitan 3 variables que son los parmetros a considerar para el desarrollo del modelo. Estas variables son: T (Temperatura) H (Humedad) V (Velocidad del Ventilador) Las variables de entrada al sistema son Temperatura y Humedad. La variable de salida es la Velocidad.

T (C) H (%)

Sistema Experto Fuzzy Sistema de Refrigeracin

V (RPM)

Definimos los Term-Set para cada variable interviniente en el problema. Term Set para Temperatura: Muy Baja Baja Media Alta Muy Alta

[C]

Valores de Referencias: Muy Baja= [0 7] Baja= [5 15] Media= [14 22] Alta= [20 32] Muy Alta= [28 +40]UTN FRT2

Inteligencia Artificial 2008 TPN3 Lgica Fuzzy Muccela Jos Daniel

Term Set para Humedad: Baja Media Alta

[%]

Valores de Referencias: Baja= [0 20] Media= [10 70] Alta= [60 +100]

Term Set para Velocidad del Ventilador: Muy Lenta Lenta Media Rpida Muy Rpida

[RPM]

Valores de Referencias: Muy Lenta= [0 500] Lenta= [400 1600]UTN FRT3

Inteligencia Artificial 2008 TPN3 Lgica Fuzzy Muccela Jos Daniel

Media= [1400 2200] Rpida= [2000 3200] Muy Rpida= [3000 +3800]

Una vez definidos los Term-Set de cada variable procedemos a armar una tabla donde a partir de las variables de entrada (T y H) y sus respectivas variables lingsticas encontraremos los valores de salida para la variable V.T H B M A MB B M ML M R A L R MR MA M R MR

Donde:T:Temperatura H: Humedad ML: Muy Lenta MB: Muy Baja B: Baja L: Lenta B: Baja M: Media A: Alta MA: Muy Alta

M: Media M:Media

A: Alta R: Rpida MR:Muy Rpida

A partir de esta tabla y de la interseccin de los estados de las variables, encontramos las reglas que se aplicarn para el funcionamiento del sistema de control. Las mismas estn marcadas en letra roja. Estas reglas se corresponden con la variable de salida Velocidad del Ventilador. Las celdas rellenas son casos que pueden no presentarse o rara vez pueden suceder. Se encontraron 9 (nueve) reglas y 6 (seis) casos que no se consideran. Deduccin de las reglas que se aplicarn:N Regla 1 2 3 4 5 6 7 8 9 IF IF IF IF IF IF IF IF IF T T T T T T T T T IS IS IS IS IS IS IS IS IS Regla M AND H IS B THEN V IS ML A AND H IS B THEN V IS L MA AND H IS B THEN V IS M M AND H IS M THEN V IS M A AND H IS M THEN V IS R MA AND H IS M THEN V IS R M AND H IS A THEN V IS R A AND H IS A THEN V IS MR MA AND H IS A THEN V IS MR

UTN

FRT

4

Inteligencia Artificial 2008 TPN3 Lgica Fuzzy Muccela Jos Daniel

Desarrollo del modelo a travs del soft: El Software que utilizaremos para el desarrollo del modelo propuesto es el Matlab Versin 7 - R14. Primeramente llamamos a la herramienta Fuzzy (Fuzzy Logic Toolbox) del Matlab a travs de la ventana de comandos escribiendo fuzzy.

Al abrirse creamos un nuevo proyecto FIS y elegimos el mtodo que se emplear para su resolucin. Por defecto lo crea con el mtodo Mandani.

Una vez hecho esto se accede a la ventana donde se comienza a trabajar con el sistema.

Cambiar nombre de variable

En esta ventana Ingresamos las variables de entrada (amarillo) y la variable de salida (celeste)5

UTN

FRT

Inteligencia Artificial 2008 TPN3 Lgica Fuzzy Muccela Jos Daniel

Podemos ir agregando variables a nuestro modelo a travs de la siguiente ventana. En ella seleccionamos si queremos una variable de entrada o de salida.

Especificamos el nombre de las variables de entrada (amarillo) Temperatura y Humedad; y la variable de salida (celeste) Velocidad. El modelo queda como se muestra a continuacin.

Antes de seguir trabajando guardamos el modelo a travs del men File -> Export. Guardamos a Disco para poder recuperar nuestro trabajo posteriormente.

UTN

FRT

6

Inteligencia Artificial 2008 TPN3 Lgica Fuzzy Muccela Jos Daniel

Ahora debemos definir los Term-Set (las funciones de pertenencia) para cada variable. Hacemos doble clic en el cuadro amarillo del modelo que creamos. Nos lleva a la siguiente ventana.

En esta ventana, cargamos los Term-Set correspondientes a la Temperatura. El nombre del mismo lo colocamos en el cuadro Name que se encuentra a la derecha. En el cuadro Params elegimos el rango numrico del Term-Set [valor_lateral_derecho valor_central valor_lateral_izquierdo]. A la izquierda de la ventana colocamos el rango para todos los Term-Set que vamos a crear. En este caso de 0 a 40 grados centgrados. Para agregar un nuevo Term-Set a la variable vamos al men Edit -> Add Custom MF

De la misma manera creamos los Term-Set para las otras variables. A continuacin se muestra la carga de los Term-Set para la variable Humedad.

UTN

FRT

7

Inteligencia Artificial 2008 TPN3 Lgica Fuzzy Muccela Jos Daniel

A continuacin se muestra la carga de los Term-Set para la variable Velocidad.

Luego procedemos a la carga de las reglas que se usarn para nuestro modelo. La ventana que se muestra a continuacin se accede a travs de doble clic sobre la regin blanca del modelo que creamos (AireAcondiciondado (Mandani)) o bien a travs del men Edit -> Rules

UTN

FRT

8

Inteligencia Artificial 2008 TPN3 Lgica Fuzzy Muccela Jos Daniel

En esta ventana slo seleccionamos de las listas de la parte inferior de la pantalla, los estados para cada variable (antecedentes) y el estado de la variable de salida correspondiente (consecuente), elegimos el modo del operador booleano (And en nuestro caso) y a continuacin agregamos la regla al listado superior con Add rule. (Para lograr esto primeramente tendramos que haber cargado los Term-Set de las variables de entrada y de salida) Y as cargamos todas las reglas. Una vez concluido cerramos la ventana. Ahora nos queda probar y visualizar los resultados del modelo que creamos. Podemos ver grficamente como trabaja el sistema a travs de las reglas creadas ingresando al men View -> Rules

Nos muestra la siguiente ventana:

UTN

FRT

9

Inteligencia Artificial 2008 TPN3 Lgica Fuzzy Muccela Jos Daniel

En ella podemos ver los nmeros correspondientes a las reglas y las tres variables que intervienen en el problema. En el cuadro Input cargamos los valores para los cuales deseamos probar el funcionamiento del sistema, esto es, el valor numrico para la Temperatura y la Humedad. De acuerdo a los valores que se inserten el resultado podr visualizarse en la ltima columna correspondiente a la variable Velocidad. En ella se ve el valor en RPM que toma el sistema cuando tiene una determinada temperatura y humedad. Los datos de entrada son procesados para calcular el grado de membresa que tendrn dentro del controlador. El dispositivo de inferencia junto con la base de conocimientos realizan la toma de decisiones y de acuerdo a esto acta el sistema. El mtodo de inferencia se basa en el grado de pertenencia de los datos de entrada en los conjuntos difusos de los espacios correspondientes a cada uno; esto sirve para tomar una decisin en el espacio de salida. Para llevar a cabo el proceso de inferencia se usan distintos mtodos (mnimo-mximo, mximo-producto, etc.). Dentro del controlador hay una parte que es el defuzificador, que es quien realiza el procesado final de los datos, con el fin de adecuar los valores difusos obtenidos de la inferencia en valores no difusos tiles para el proceso que queremos controlar (en esta caso nuestro sistema de refrigeracin). Para lograr esto el sistema emplea el mtodo del centroide o centro de rea que consiste en calcular el centro de gravedad de una figura, a partir del polgono formado por el proceso de inferencia. Tambin podemos visualizar grficamente la superficie que se forma como resultado del modelo planteado. Esto se logra a partir del men View -> Surface.

UTN

FRT

10

Inteligencia Artificial 2008 TPN3 Lgica Fuzzy Muccela Jos Daniel

Nos muestra la siguiente ventana:

Este grfico muestra la superficie que se forma como consecuencia de la interseccin de los valores que van tomando las variables del sistema. Cuanto menor sea la temperatura y la humedad vemos que el color del grfico se torna azul. A medida que aumentan dichas condiciones el grfico se torna color amarillo. Tambin vemos claramente cuando la temperatura y la humedad toman el mximo valor; en esta caso la velocidad del ventilador tambin toma el mximo valor (parte superior del grfico).

Probando el Sistema de Control: Como vimos anteriormente, en esta ventana podemos probar el funcionamiento del sistema creado. La lnea roja que atraviesa el conjunto de reglas (9) para la variable temperatura puede desplazarse con el mouse hacia izquierda o derecha (disminuyendo o aumentando la temperatura) para especificar una temperatura al sistema. Lo mismo puede hacerse para la variable humedad. El resultado de estas acciones puede verse sobre la tercera columna, la que corresponde a la velocidad del ventilador. Aqu se muestra en RPM (revoluciones por minuto) la velocidad que tomara el ventilador en base a la temperatura y humedad establecidas en el ambiente de la sala.UTN FRT11

Inteligencia Artificial 2008 TPN3 Lgica Fuzzy Muccela Jos Daniel

Los valores para las variables de entrada tambin pueden ingresarse a travs del cuadro de texto Input que se encuentra al pie de la ventana. Para el caso que se muestra a continuacin fijamos la temperatura en 16 C y una humedad de 41,6%. Como resultado se obtiene una velocidad de 1800 RPM.

Desplazar con el mouse

A continuacin puede verse como el sistema genera y dibuja la superficie resultante. En este grfico se ve la disposicin de las variables de entrada y la variable de salida. Se puede ver que para una interseccin del plano conformado por la temperatura y la humedad (ejes x e y), la variable Velocidad toma un determinado valor en su respectivo eje (z). Por ejemplo para el punto formado por una temperatura de 40 C y una humedad del 100%, la velocidad del ventilador es 3800 RPM.T = 40 C H = 100 % V = 3800 RPM

UTN

FRT

12