Escolar Documentos
Profissional Documentos
Cultura Documentos
CALLAO
Facultad de Ingeniera Elctrica y
Electrnica
Escuela Profesional de Ingeniera
Electrnica
CURSO :
CONTROL INTELIGENTE
CICLO :
2016-B
PROFESOR :
ING. RODRIGUEZ BUSTINZA, RICARDO
BELLAVISTA CALLAO
2016
UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERA ELCTRICA Y ELECTRNICA
a = params(1);
b = params(2);
c = params(3);
d = params(4);
b_minus_a = b - a;
d_minus_c = d - c;
y_val = @(x_val) max (0, min (min (1, (x_val - a) / b_minus_a), ...
(d - x_val) / d_minus_c));
y = arrayfun (y_val, x);
end
function y = tri_mf(x,param)
a=param(1);
b=param(2);
c=param(3);
y=max(min((x-a)/(b-a),(c-x)/(c-b)),0);
end
2
UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERA ELCTRICA Y ELECTRNICA
subplot(412),plot(x2,mf_in2)
title('VELOCIDAD DEL VIENTO'),ylabel('\mu_{Viento}')
% SENSACION TERMICA---------------------------------------------------
-----
y=linspace(-40,50,puntos_n); %universo
param_out=[-40 -25 -10
-25 -10 5
-10 5 20
5 20 35
20 35 50];
mf_out(1,:)=tri_mf(y,param_out(1,:));
mf_out(2,:)=tri_mf(y,param_out(2,:));
mf_out(3,:)=tri_mf(y,param_out(3,:));
mf_out(4,:)=tri_mf(y,param_out(4,:));
mf_out(5,:)=tri_mf(y,param_out(5,:));
subplot(413),plot(y,mf_out)
title('SENSACION TERMICA'),ylabel('\mu_{SensT}')
% REGLAS [Temp Viento SenTerm]----------------------------------------
-----
% Matriz que reprenta las 12 reglas
R=[1 1 3
1 2 2
1 3 1
2 1 4
2 2 3
2 3 2
3 1 5
3 2 4
3 3 3
4 1 5
4 2 5
4 3 4];
% FUZZIFICADOR--------------------------------------------------------
-----
% valores numericos de cada conjunto difuso para T=7
% u_fria=0.3; u_fresca=0.7; u_calida=0; u_caliente=0;
u_A=[0.3 0.7 0 0];
% valores numericos de cada conjunto difuso para Nudos=22
% u_bajo=0; u_suave=0.44; u_alta=0.76;
u_B=[0 0.44 0.76];
% OPERACION DIFUSA----------------------------------------------------
-----
k=1; % indice de los grados
for i=1:4 % temperaturas
for j=1:3 % velocidad del viento
s(k)=min(u_A(i),u_B(j)); %grados para cada regla
k=k+1;
end
end
% IMPLICACION DIFUSA--------------------------------------------------
-----
y=linspace(-40,50,puntos_n); % universo
for k=1:12 % grados para el disparo de las reglas
for m=1:puntos_n % universo
% k da el numero de regla
% R(k,3) da el conjunto difuso
D(k,m)=min(s(k),mf_out(R(k,3),m)); %consecuente difuso
end
end
3
UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERA ELCTRICA Y ELECTRNICA
% AGREGACION----------------------------------------------------------
-----
for k=1:12
C_agg(k)=0; % inicia con un valor 0
for m=1:puntos_n
% implicacion del consecuente
% se obtiene hallando el area del trapecio
% en este caso se usa una suma de riemman
C_agg(k)=C_agg(k)+(90/puntos_n)*D(k,m);
end
end
% DEFUZZIFICACION-----------------------------------------------------
-----
z0=0; % salida crisp inicia en 0
% se obtiene usando el metodo del Centroide
for k=1:12
z0=z0+param_out(R(k,3),2)*C_agg(k);
end
z0=z0/sum(C_agg);
disp('La sensacin trmica correspondiente a 7C y una velocidad del
viento de 22 nudos es')
disp(z0)
subplot(414),plot(y,D), hold
subplot(414),plot([z0 z0],[0 0.7],'m')
title('RESULTADO')