Professional Documents
Culture Documents
Lgica Difusa
Redes Neuronales Artificiales
Algoritmos Genticos
LOGICA DIFUSA
Control Convencional
Control no Convencional
LOGICA DIFUSA
Lgica Clsica:
Lgica Difusa:
LOGICA DIFUSA
La lgica difusa es una rama de la IA que permite analizar
informacin del mundo real en una escala entre lo falso y verdadero.
LOGICA DIFUSA
La lgica difusa se usa para automatizar procesos, utilizando
controladores difusos, basados en la experiencia del operador o
experto. Se traslada la experiencia humana hacia una computadora.
LOGICA DIFUSA
No requiere conocer el modelo dinmico del sistema a controlar. Por
lo tanto:
El control difuso no requiere identificar el sistema
No necesita aproximar el modelo
No necesita linealizarlo
Facilita el diseo del controlador
Pero se necesita conocer las reglas lingsticas de control de un
experto.
LOGICA DIFUSA
Quin invent la Lgica Difusa?
Naci en el ao de 1921 en Baku, Azerbaijan
Creci y estudi en Irn hasta obtener la
licenciatura.
Obtuvo el Grado de Mg y PhD en Estados
Unidos.
Lofti Zadeh
CONJUNTOS DIFUSOS
Ejemplo: Clasifique a las personas de acuerdo a su estatura en dos
conjuntos.
Conjuntos Clsicos:
Conjuntos Difusos:
CONJUNTOS DIFUSOS
Ejemplo: Clasifique a las personas de acuerdo a su estatura en dos
conjuntos.
Conjuntos Clsicos:
Conjuntos Difusos:
CONJUNTOS DIFUSOS
Universo de Discurso: La totalidad
CONJUNTOS DIFUSOS
Notacin:
Continuos
Discretos
CONJUNTOS DIFUSOS
Operaciones:
Subconjuntos
Conjuntos clsicos
CONJUNTOS DIFUSOS
Operaciones:
Subconjuntos
Conjuntos difusos
CONJUNTOS DIFUSOS
Interseccin
Conjuntos clsicos
Conjuntos difusos
CONJUNTOS DIFUSOS
Unin
Conjuntos clsicos
Conjuntos difusos
CONJUNTOS DIFUSOS
Complemento
Conjuntos clsicos
Conjuntos difusos
CONJUNTOS DIFUSOS
Propiedades de las Operaciones
Conmutativa
Asociativa
Distributiva
CONJUNTOS DIFUSOS
Propiedades de las Operaciones
Distributiva
CONJUNTOS DIFUSOS
Propiedades de las Operaciones
Identidad
Transitiva
Idempotencia
Involutiva
CONJUNTOS DIFUSOS
Propiedades de las Operaciones
Complementariedad
CONJUNTOS DIFUSOS
Propiedades de las Operaciones
Leyes de DeMorgan
FUNCIONES DE MEMBRESIA
FUNCIONES DE MEMBRESIA
FUNCIONES DE MEMBRESIA
FUNCIONES DE MEMBRESIA
FUNCIONES DE MEMBRESIA
FUNCIONES DE MEMBRESIA
FUNCIONES DE MEMBRESIA
Normal o Subnormal
Simtricas y No simtricas
FUNCIONES DE MEMBRESIA
Abiertas o Cerradas
FUNCIONES DE MEMBRESIA
Convexas o No convexas
FUNCIONES DE MEMBRESIA
Singleton
FUNCIONES DE MEMBRESIA
Conjunto cortado
FUNCIONES DE MEMBRESIA
Conjunto cortado
FUNCIONES DE MEMBRESIA
Conjunto cortado
FUNCIONES DE MEMBRESIA
Triangular
0
/
() =
( )/( )
0
FUNCIONES DE MEMBRESIA
Triangular
0
/
() =
( )/( )
0
FUNCIONES DE MEMBRESIA
Trapezoidal
=
0
/
1
( )/( )
( )
FUNCIONES DE MEMBRESIA
Trapezoidal
=
0
/
1
( )/( )
( )
FUNCIONES DE MEMBRESIA
Gaussiana
FUNCIONES DE MEMBRESIA
Campana Generalizada
FUNCIONES DE MEMBRESIA
Sigmoidal
RELACIONES DIFUSAS
Relacin Clsica
Relacin Difusa
RELACIONES DIFUSAS
Relacin Difusa
PRODUCTO CARTESIANO
Caso Clsico
Caso Difuso
COMPOSICIONES R.
DIFUSAS
Composicin
para funciones
Composicin para
relaciones difusas
COMPOSICIONES R.
DIFUSAS
Composicin para
relaciones difusas
COMPOSICIONES R.
DIFUSAS
Composicin para
relaciones difusas
COMPOSICIONES R.
DIFUSAS
Composicin para
relaciones difusas
COMPOSICIONES R.
DIFUSAS
Ejemplo: Considerando los conjuntos definidos en la tabla, calcular
por composicin el conjunto B = A o R donde R = A x B
COMPOSICIONES R.
DIFUSAS
Ejemplo: Considerando los conjuntos definidos en la tabla, calcular
por composicin el conjunto B = A o R donde R = A x B
COMPOSICIONES R.
DIFUSAS
Ejemplo.
clc, clear, close all
x=0:0.01:1;
A=sigmf(x,[15 0.5]);
y=0:0.01:5;
B=sigmf(y,[-3 2.5]);
figure,plot(x,A,'b','LineWidth',5),set(gca,
'FontSize',18), legend('A')
figure,plot(y,B,'r','LineWidth',5),set(gca,
'FontSize',18), legend('B')
% Producto Cartesiano
for i=1:length(A)
for j=1:length(B)
R(i,j)=min(A(i),B(j));
end
end
[X, Y]=meshgrid(y,x);
figure, mesh(X,Y,R), set(gca,'FontSize',18)
% Composicin
Ap=gaussmf(x,[0.04 0.5]);
for j=1:length(B)
for i=1:length(A)
aux(i)=min(Ap(i),R(i,j));
end
Bp(j)=max(aux);
end
figure, plot(x,Ap,'b','LineWidth',5),set(gca,
'FontSize',18), legend('Ap')
figure, plot(y,Bp,'r','LineWidth',5),set(gca,
'FontSize',18), legend('Bp')
OPERACIONES LOGICAS
Proposicin clsica: Es una proposicin que puede ser verdadera
(1) o falsa (0).
OPERACIONES LOGICAS
Proposicin clsica: Es una proposicin que puede ser verdadera
(1) o falsa (0).
OPERACIONES LOGICAS
Proposicin clsica: Es una proposicin que puede ser verdadera
(1) o falsa (0).
OPERACIONES LOGICAS
Proposicin difusa: Es una sentencia cuya veracidad puede tomar
valores entre 0 y 1.
OPERACIONES LOGICAS
Proposicin difusa: Es una sentencia cuya veracidad puede tomar
valores entre 0 y 1.
OPERACIONES LOGICAS
Proposicin difusa: Es una sentencia cuya veracidad puede tomar
valores entre 0 y 1.
OPERACIONES LOGICAS
Si: = 0.3, = 0.8 = 0.5
Calcular el grado de verdad de las siguientes proposiciones
compuestas.
VARIABLE LINGUISTICA
Ejemplo:
VARIABLE LINGUISTICA
Ejemplo:
VARIABLE LINGUISTICA
Ejemplo:
VARIABLE LINGUISTICA
Ejemplo:
REGLAS DIFUSAS
si x es A, entonces y es B
REGLAS DIFUSAS
Ejemplo.
REGLAS DIFUSAS
Ejemplo.
REGLAS DIFUSAS
Ejemplo.
% Implicacin Difusa
for i=1:length(x)
for j=1:length(y)
mR(i,j)=max(1-mA(i),mB(j));
end
end
[X, Y]=meshgrid(y,x);
figure, mesh(X,Y,mR), set(gca,'FontSize',18),
ylabel('Horas'),xlabel('Calificacin')
% Composicin
mAp=sigmf(x,[-10 1]);
for j=1:size(mR,2)
for i=1:size(mR,1)
aux(i)=min(mAp(i),mR(i,j));
end
mBp(j)=max(aux);
end
figure,
plot(x,mAp,'LineWidth',5),set(gca,'FontSize',18),
legend('Ap')
figure,
plot(y,mBp,'LineWidth',5),set(gca,'FontSize',18),
legend('Bp')
axis([0 20 0 1])
CONTROL DIFUSO
Control Convencional
Control no Convencional
CONTROL DIFUSO
CONTROL DIFUSO
Ejemplo. Control de la posicin del cartucho en una impresora
de inyeccin de tinta.
CONTROL DIFUSO
Variables lingsticas
CONTROL DIFUSO
Reglas de control
CONTROL DIFUSO
Reglas de control
CONTROL DIFUSO
Mtodo de inferencia
CONTROL DIFUSO
Mtodo de inferencia
CONTROL DIFUSO
CONTROL DIFUSO
Defusificacin
CONTROL DIFUSO
Defusificacin
CONTROL DIFUSO
CONTROL DIFUSO
clc, clear, close all
paso=0.01;
% Error de posicin
e = -20:paso:20;
ENG = trapmf(e,[-20 -20 -10 -5]);
ENP = trimf(e,[-10 -5 -0]);
EC = trimf(e,[-5 0 5]);
EPP = trimf(e,[0 5 10]);
EPG = trapmf(e,[5 10 20 20]);
subplot(3,1,1), plot(e,ENG,e,ENP,e,EC,e,EPP,e,EPG,'LineWidth',5)
set(gca,'FontSize',18), legend('ENG','ENP','EC','EPP','EPG')
xlabel('Error'), ylabel('\mu(Error)'),grid
% Accin de control (Voltaje)
v = -12:paso:12;
VNG = trapmf(v,[-12 -12 -6 -3]);
VNP = trimf(v,[-6 -3 0]);
VC = trimf(v,[-3 0 3]);
VPP = trimf(v,[0 3 6]);
VPG = trapmf(v,[3 6 12 12]);
subplot(3,1,2), plot(v,VNG,v,VNP,v,VC,v,VPP,v,VPG,'LineWidth',5)
set(gca,'FontSize',18), legend('VNG','VNP','VC','VPP','VPG')
xlabel('Voltaje'), ylabel('\mu(Voltaje)'),grid
axis([-12 12 0 1])
CONTROL DIFUSO
e0 = 9; %Error sensado
n = find(e==e0);
subplot(3,1,1), hold on,
plot(e0,ENG(n),'*',e0,ENP(n),'*',e0,EC(n),'*',e0,EPP(n),'*',e0,EPG(n)
,'*','LineWidth',5),hold off
% Fusificar e Inferencia difusa de mandani
B1 = min(VNG,ENG(n));
B2 = min(VNP,ENP(n));
B3 = min(VC,EC(n));
B4 = min(VPP,EPP(n));
B5 = min(VPG,EPG(n));
B = max(B1,max(B2,max(B3,max(B4,B5))));
subplot(3,1,3), plot(v,B,'LineWidth',5)
set(gca,'FontSize',18), legend('V')
axis([-12 12 0 1])
% Defusificacin
vo = defuzz(v,B,'centroid')
hold on, plot(vo*ones(1,3),[0 0.5 1],'r','LineWidth',5)
CONTROL DIFUSO
function vo = ControlDifuso_Impresora(e0,paso)
% Error de posicin
e = -20:paso:20;
ENG = trapmf(e,[-20 -20 -10 -5]);
ENP = trimf(e,[-10 -5 -0]);
EC = trimf(e,[-5 0 5]);
EPP = trimf(e,[0 5 10]);
EPG = trapmf(e,[5 10 20 20]);
% Accin de control (Voltaje)
v = -12:paso:12;
VNG = trapmf(v,[-12 -12 -6 -3]);
VNP = trimf(v,[-6 -3 0]);
VC = trimf(v,[-3 0 3]);
VPP = trimf(v,[0 3 6]);
VPG = trapmf(v,[3 6 12 12]);
for k=1:length(e0)
n = find(e==e0(k));
% Fusificar e Inferencia difusa de mandani
B1 = min(VNG,ENG(n));
B2 = min(VNP,ENP(n));
B3 = min(VC,EC(n));
B4 = min(VPP,EPP(n));
B5 = min(VPG,EPG(n));
B = max(B1,max(B2,max(B3,max(B4,B5))));
% Defusificacin
vo(k) = defuzz(v,B,'centroid');
end
CONTROL DIFUSO
clc, clear, close all
paso = 0.01;
e0 = -20:paso:20;
vo = ControlDifuso_Impresora(e0,paso);
plot(e0,vo,'LineWidth',5)
set(gca,'FontSize',18), title('Curva de Control')
grid
CONTROL DIFUSO
CONTROL DIFUSO
CONTROL DIFUSO
CONTROL DIFUSO
CONTROL DIFUSO
CONTROL DIFUSO
CONTROL DIFUSO
CONTROL DIFUSO
CONTROL DIFUSO
CONTROL DIFUSO
CONTROL DIFUSO
CONTROL DIFUSO
CONTROL DIFUSO
Curva de control
CONTROL DIFUSO
CONTROL DIFUSO
Fusificacin, corte,
unin, defusificacin
CONTROL DIFUSO
CONTROL DIFUSO
Controlador de Mamdani
CONTROL DIFUSO
Controlador de Mamdani
CONTROL DIFUSO
Controlador de Mamdani
CONTROL DIFUSO
Controlador de Mamdani
CONTROL DIFUSO
Controlador de Sugeno-Takagi-Kang
CONTROL DIFUSO
Controlador de Sugeno-Takagi-Kang
CONTROL DIFUSO
clc, clear, close all
% Error de posicin
paso=0.01;
e = -20:paso:20;
a = 1;
NG = sigmf(e,[-0.5*a -10]);
NP = gbellmf(e,[2.5 a -7.5]);
C = gbellmf(e,[5 a 0]);
PP = gbellmf(e,[2.5 a 7.5]);
PG = sigmf(e,[0.5*a 10]);
subplot(2,1,2), plot(e,NG,e,NP,e,C,e,PP,e,PG,'LineWidth',5)
set(gca,'FontSize',18), grid
axis([-12 12 0 1])
CONTROL DIFUSO
% Curva de control - Inferencia de Sugeno
imax = length(e);
for i=1:imax
W = [NG(i) NP(i) C(i) PP(i) PG(i)];
f1 = -12;
f2 = 2*e(i) + 8;
f3 = 0.4*e(i);
f4 = 2*e(i) - 8;
f5 = 12;
v(i) = (W(1)*f1+W(2)*f2+W(3)*f3+W(4)*f4+W(5)*f5)/sum(W);
end
subplot(2,1,1), plot(e,v,'LineWidth',5)
set(gca,'FontSize',18)
axis([-21 21 -13 13])
grid on
CONTROL DIFUSO
CONTROL DIFUSO
CONTROL DIFUSO
Controlador de Tsukamoto
CONTROL DIFUSO
Controlador de Tsukamoto
CONTROL DIFUSO
clc, clear, close all
% Error de posicin
paso=0.01;
e = -20:paso:20;
a = 0.2;
EN = sigmf(e,[-a 0]);
EP = sigmf(e,[a 0]);
subplot(3,1,1), plot(e,EN,e,EP,'LineWidth',5),
title('Error')
set(gca,'FontSize',18), grid
axis([-20 20 0 1])
v = -12:paso:12;
VN = trimf(v,[-12 12 12]);
VP = trimf(v,[-12 -12 12]);
subplot(3,1,2), plot(v,VN,v,VP,'LineWidth',5),
title('Voltaje')
set(gca,'FontSize',18),grid
axis([-12 12 0 1])
axis([-21 21 -13 13])
grid on
Ejemplo
Ejemplo
Ejemplo
Ejemplo