1. INTELIGENCIA ARTIFICIAL
Trabajo Práctico nº 3
Lógica Fuzzy
Sistema de Refrigeración
[ºC]
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
2. Inteligencia Artificial 2008– TPNº3 – Lógica Fuzzy – Muccela José Daniel
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.
1
UTN FRT
3. Inteligencia Artificial 2008– TPNº3 – Lógica Fuzzy – Muccela José Daniel
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.
T (ºC) Sistema Experto
Fuzzy V (RPM)
Sistema de
H (%)
Refrigeración
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]
2
UTN FRT
4. Inteligencia Artificial 2008– TPNº3 – Lógica 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 – Rápida – Muy Rápida
[RPM]
Valores de Referencias:
Muy Lenta= [0 500]
Lenta= [400 1600]
3
UTN FRT
5. Inteligencia Artificial 2008– TPNº3 – Lógica Fuzzy – Muccela José Daniel
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
4
UTN FRT
6. Inteligencia Artificial 2008– TPNº3 – Lógica Fuzzy – Muccela José Daniel
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.
Cambiar
nombre de
variable
En esta ventana Ingresamos las variables de entrada (amarillo) y la
variable de salida (celeste)
5
UTN FRT
7. Inteligencia Artificial 2008– TPNº3 – Lógica Fuzzy – Muccela José Daniel
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.
6
UTN FRT
8. Inteligencia Artificial 2008– TPNº3 – Lógica 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 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.
7
UTN FRT
9. Inteligencia Artificial 2008– TPNº3 – Lógica Fuzzy – Muccela José Daniel
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…
8
UTN FRT
10. Inteligencia Artificial 2008– TPNº3 – Lógica Fuzzy – Muccela José Daniel
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:
9
UTN FRT
11. Inteligencia Artificial 2008– TPNº3 – Lógica Fuzzy – Muccela José Daniel
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.
10
UTN FRT
12. Inteligencia Artificial 2008– TPNº3 – Lógica Fuzzy – Muccela José Daniel
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.
11
UTN FRT
13. Inteligencia Artificial 2008– TPNº3 – Lógica Fuzzy – Muccela José Daniel
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.
Desplazar
con el
mouse
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.
T = 40 ºC
H = 100 %
V = 3800 RPM
12
UTN FRT