logica fuzzy

13
INTELIGENCIA ARTIFICIAL Trabajo Práctico nº 3 Profesores: Ing. Mario Figueroa Ing. Pablo Rovarini Alumnos: José Daniel Muccela Comisión: 5 k 2 Año 2008 Facultad Regional Tucumán Universidad Tecnológica Nacional Lógica Fuzzy Sistema de Refrigeración [ºC]

Upload: daniel-muccela

Post on 16-Aug-2015

32 views

Category:

Technology


0 download

TRANSCRIPT

INTELIGENCIA ARTIFICIAL

Trabajo Práctico nº 3

Profesores:

� Ing. Mario Figueroa � Ing. Pablo Rovarini

Alumnos:

� José Daniel Muccela

Comisión: 5 k 2

Año 2008

Facultad Regional Tucumán

Universidad Tecnológica Nacional

Lógica Fuzzy Sistema de Refrigeración

[ºC]

Inteligencia Artificial 2008– TPNº3 – Lógica Fuzzy – Muccela José Daniel

UTN FRT 1

TP Nº3 – Controlador Fuzzy Problema :

Deberá elaborar un Sistema Experto Fuzzy para controlar un Sistema de

Refrigeración de una sala de conferencias. Los parámetros de medición 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 Ventilación (RPM).

Para su sistema puede usar Matlab, C++, etc.

Deberá presentar su trabajo en carpeta mas el CD con el ejecutable.

Inteligencia Artificial 2008– TPNº3 – Lógica Fuzzy – Muccela José Daniel

UTN FRT 2

Desarrollo

Controlador Fuzzy para Sistema de Refrigeración Se necesitan 3 variables que son los parámetros 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. Definimos los Term-Set para cada variable interviniente en el problema.

Term Set para Temperatura:

Muy Baja – Baja – Media – Alta – Muy Alta

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

Sistema Experto Fuzzy

Sistema de Refrigeración

T (ºC)

H (%)

V (RPM)

[ºC]

Inteligencia Artificial 2008– TPNº3 – Lógica Fuzzy – Muccela José Daniel

UTN FRT 3

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 – Rápida – Muy Rápida Valores de Referencias: Muy Lenta= [0 500] Lenta= [400 1600]

[RPM]

[%]

Inteligencia Artificial 2008– TPNº3 – Lógica Fuzzy – Muccela José Daniel

UTN FRT 4

Media= [1400 2200] Rápida= [2000 3200] Muy Rápida= [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 lingüísticas encontraremos los valores de salida para la variable V.

T H MB B M A MA

B ML L M

M M R R

A R MR MR

Donde:

T:Temperatura MB: Muy Baja B: Baja M: Media A: Alta MA: Muy Alta

H: Humedad B: Baja M: Media A: Alta

ML: Muy Lenta L: Lenta M:Media R: Rápida MR:Muy Rápida

A partir de esta tabla y de la intersección de los estados de las variables,

encontramos las reglas que se aplicarán para el funcionamiento del sistema de control. Las mismas están 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. Deducción de las reglas que se aplicarán:

Nº Regla Regla 1 IF T IS M AND H IS B THEN V IS ML 2 IF T IS A AND H IS B THEN V IS L 3 IF T IS MA AND H IS B THEN V IS M 4 IF T IS M AND H IS M THEN V IS M 5 IF T IS A AND H IS M THEN V IS R 6 IF T IS MA AND H IS M THEN V IS R 7 IF T IS M AND H IS A THEN V IS R 8 IF T IS A AND H IS A THEN V IS MR 9 IF T IS MA AND H IS A THEN V IS MR

Inteligencia Artificial 2008– TPNº3 – Lógica Fuzzy – Muccela José Daniel

UTN FRT 5

Desarrollo del modelo a través del soft: El Software que utilizaremos para el desarrollo del modelo propuesto es

el Matlab Versión 7 - R14.

Primeramente llamamos a la herramienta Fuzzy (Fuzzy Logic Toolbox) del Matlab a través de la ventana de comandos escribiendo fuzzy .

Al abrirse creamos un nuevo proyecto FIS y elegimos el método que se empleará para su resolución. Por defecto lo crea con el método Mandani.

Una vez hecho esto se accede a la ventana donde se comienza a

trabajar con el sistema.

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

Cambiar nombre de

variable

Inteligencia Artificial 2008– TPNº3 – Lógica Fuzzy – Muccela José Daniel

UTN FRT 6

Podemos ir agregando variables a nuestro modelo a través 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 continuación.

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

Inteligencia Artificial 2008– TPNº3 – Lógica Fuzzy – Muccela José Daniel

UTN FRT 7

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 numérico 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 centígrados. 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 continuación se muestra la carga de los Term-Set para la variable Humedad.

Inteligencia Artificial 2008– TPNº3 – Lógica Fuzzy – Muccela José Daniel

UTN FRT 8

A continuación se muestra la carga de los Term-Set para la variable Velocidad.

Luego procedemos a la carga de las reglas que se usarán para nuestro modelo. La ventana que se muestra a continuación se accede a través de doble clic sobre la región blanca del modelo que creamos (AireAcondiciondado (Mandani)) o bien a través del menú Edit -> Rules…

Inteligencia Artificial 2008– TPNº3 – Lógica Fuzzy – Muccela José Daniel

UTN FRT 9

En esta ventana sólo 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 continuación agregamos la regla al listado superior con Add rule. (Para lograr esto primeramente tendríamos 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 gráficamente como trabaja el sistema a través de las reglas creadas ingresando al menú View -> Rules

Nos muestra la siguiente ventana:

Inteligencia Artificial 2008– TPNº3 – Lógica Fuzzy – Muccela José Daniel

UTN FRT 10

En ella podemos ver los números 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 numérico 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 membresía que tendrán dentro del controlador.

El dispositivo de inferencia junto con la base de conocimientos realizan la toma de decisiones y de acuerdo a esto actúa el sistema. El método 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 decisión en el espacio de salida. Para llevar a cabo el proceso de inferencia se usan distintos métodos (mínimo-máximo, máximo-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 refrigeración). Para lograr esto el sistema emplea el método del centroide o centro de área que consiste en calcular el centro de gravedad de una figura, a partir del polígono formado por el proceso de inferencia.

También podemos visualizar gráficamente la superficie que se forma como resultado del modelo planteado. Esto se logra a partir del menú View -> Surface.

Inteligencia Artificial 2008– TPNº3 – Lógica Fuzzy – Muccela José Daniel

UTN FRT 11

Nos muestra la siguiente ventana:

Este gráfico muestra la superficie que se forma como consecuencia de la intersección de los valores que van tomando las variables del sistema. Cuanto menor sea la temperatura y la humedad vemos que el color del gráfico se torna azul. A medida que aumentan dichas condiciones el gráfico se torna color amarillo.

También vemos claramente cuando la temperatura y la humedad toman el máximo valor; en esta caso la velocidad del ventilador también toma el máximo valor (parte superior del gráfico). Probando el Sistema de Control: Como vimos anteriormente, en esta ventana podemos probar el funcionamiento del sistema creado. La línea 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 tomaría el ventilador en base a la temperatura y humedad establecidas en el ambiente de la sala.

Inteligencia Artificial 2008– TPNº3 – Lógica Fuzzy – Muccela José Daniel

UTN FRT 12

Los valores para las variables de entrada también pueden ingresarse a través del cuadro de texto “Input” que se encuentra al pie de la ventana. Para el caso que se muestra a continuación fijamos la temperatura en 16 ºC y una humedad de 41,6%. Como resultado se obtiene una velocidad de 1800 RPM.

A continuación puede verse como el sistema genera y dibuja la superficie resultante. En este gráfico se ve la disposición de las variables de entrada y la variable de salida. Se puede ver que para una intersección 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.

Desplazar con el mouse

T = 40 ºC H = 100 % V = 3800 RPM