Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lab 1. Laboratorio Lógica Difusa
Lab 1. Laboratorio Lógica Difusa
Laboratorio 1
Lógica difusa con Matlab
1. Objetivo.
- Analizar el control con lógica difusa.
2. Marco Teórico
Consideremos el caso del control de temperatura de un ambiente. Las posibilidades de
control son 2, el caso de enfriamiento y el caso de calentamiento. Vamos a analizar el
caso en que solo es necesario el enfriamiento del ambiente y para eso utilizaremos un
ventilador. El objetivo es mantener una temperatura adecuada basado en dos variables
(antecedentes): temperatura y actividad. Las variables lingüísticas son frío, tibio y
caliente para describir la temperatura, mientras que las variables lingüísticas baja y alta
son usadas para describir el nivel de actividad dentro del ambiente.
La variable de salida (consecuente) es la velocidad de enfriamiento.
Las reglas difusas (6) obtenidas a partir de estas dos entradas son:
Si la temperatura es fría y la actividad es baja entonces la velocidad es muy baja
Si la temperatura es fría y la actividad es alta entonces la velocidad es baja
Si la temperatura es tibia y la actividad es baja entonces la velocidad es media baja
Si la temperatura es tibia y la actividad es alta entonces la velocidad es media
Si la temperatura es caliente y la actividad es baja entonces la velocidad es media alta
Si la temperatura es caliente y la actividad es alta entonces la velocidad es alta
3. Procedimiernto
Aplicación en Matlab
%Universo de discurso
x= [0: 5: 100] ; %Temperatura
y = [0:1 :10]; %Actividad
z= [0:1:10]; %Velocidad
%Tempertaura
frio= trapmf (x, [0 0 30 50])
tibio= trimf (x, [30 55 80])
caliente = trapmf (x, [60 80 100 100])
1
Facultad Ingeniería Electrónica y Mecatrónica
plot (x,frio)
antecedente_t= [frio; tibio; caliente]
xlabel 'Temeperatura'
ylabel 'Pertenencia'
plot (x,antecedente_t)
axis ([-inf inf 0 1.2])
xlabel 'Temperatura'
ylabel 'Pertenencia'
title 'Temperatura'
text (10, 0.95, 'frio’)
text (10, 0.95, 'tibio')
text (80, 0.95, 'caliente')
%Actividad
actividad_baja= trapmf (y, [0 0 2 8])
actividad_alta = trapmf (y, [2 8 10 10])
antecedente_a= [actividad_baja;actividad_alta]
plot (y,antecedente_a)
axis ([-inf inf 0 1.2])
xlabel 'Nivel de Actividad'
ylabel 'Pertenencia'
title 'Actividad'
text (1, 0.95, 'baja')
text (9, 0.95, 'alta')
2
Facultad Ingeniería Electrónica y Mecatrónica
3
Facultad Ingeniería Electrónica y Mecatrónica
Una vez definidas las funciones de pertenencia y los valores consecuentes evaluaremos el
sistema difuso para un patrón con temperatura de 65.0 y actividad de 5.8, para lo cual se
fusificaran las entradas hallando el grado de pertenencia para cada función.
MU_t= [mut1;mut2;mut3]
MU_t =
0
0.6000
0.2500
MU_a= [mua1;mua2]
MU_a =[
0.3667
0.6333]
Aplicando las reglas de implicación AND de Sugeno para hallar el grado de pertenencia de cada regla.
0
0
0.2200
0.3800
0.0917
0.1583
4
Facultad Ingeniería Electrónica y Mecatrónica
Salida_y =
6.4431
Lo cual significa que la velocidad del ventilador será 6.4431 para una temperatura de 65ºF y un nivel
de actividad de 5.8.
figura a
5
Facultad Ingeniería Electrónica y Mecatrónica
figura b
Se pide:
a) Usando Matlab establezca la función de pertenencia para una posición actual de 5,1m.
b) ¿Cual es la interpretación de esta posición en términos lingüísticos?
c) ¿Qué otra(s) variable(s) adicional(es) necesitaría(n) ser fuzificadas para el diseño del
controlador?