Lógica Difusa script
Publicado por Jesus Ortega (3 intervenciones) el 18/02/2016 17:57:08
Buenos días, necesito ayuda en este código, me marca algunos errores.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
function [] = sistema_difuso3(Fuerza,Distancia)
if 0<=Fuerza && Fuerza<=10
FBaja=1;
FMedia=0;
FAlta=0;
elseif 25==Fuerza
FBaja=0;
FMedia=1;
FAlta=0;
elseif 40<=Fuerza && Fuerza<=50
FBaja=0;
FMedia=0;
FAlta=1;
%sentancias con formula de fuerza
elseif 10<Fuerza && Fuerza<25
FBaja=(25-Fuerza)/15;
FMedia=(1-FBaja);
FAlta=0;
elseif 25<Fuerza && Fuerza<40
FBaja=0;
FMedia=(40-Fuerza)/15;
FAlta=(1-FMedia);
end
%sentencia para distanca
if 0<=Distancia && Distancia<=10
DBaja=1;
DMedia=0;
DAlta=0;
elseif 25==Distancia
DBaja=0;
DMedia=1;
DAlta=0;
elseif 40<=Distancia && Distancia<=50
DBaja=0;
DMedia=0;
DAlta=1;
%sentencia con formula para distancia
elseif 10<Distancia && Distancia<25
DBaja=(25-Distancia)/15;
DMedia=(1-DBaja);
DAlta=0;
elseif 25<Distancia && Distancia<40
DBaja=0;
DMedia=(40-Distancia)/15;
DAlta=(1-DMedia);
end
%reglas de sistema difuso
B1=min(FBaja,DBaja);
B2=min(FBaja,DMedia);
B3=min(FMedia,DBaja);
M1=min(FBaja,DAlta);
M2=min(FMedia,DMedia);
M3=min(FAlta,DBaja);
A1=min(FMedia,DAlta);
A2=min(FAlta,DMedia);
A3=min(FAlta,DAlta);
%Solucion del sistema
Bs1=[B1 B2 B3];
EBt=max(Bs1);
Mt1= [M1 M2 M3];
EMt=max(Mt1);
As1= [A1 A2 A3];
EAt=max(As1);
%Defusificación
s=((30*EBt)+(150*EMt)+(270*EAt))/((3*EBt)+(3*EMt)+(3*EAt));
display('El Porcentaje de energia es: ')
display(s)
end
Valora esta pregunta


0