📄 lou.m
字号:
clc
clear all
b=newfis('fis'); %建立新的FIS系统%
writefis(b,'myfuzzy2'); %将名为fis的模糊控制系统保存到磁盘%
b=readfis('myfuzzy2'); %从磁盘中读取名为fis的模糊控制系统%
b=addvar(b,'input','e',[-6 6]); %给FIS添加新的输入变量e%
b=addvar(b,'input','ec',[-6 6]); %给FIS添加新的输入变量ec%
b=addvar(b,'output','u',[-7 7]); %给FIS添加新的输入变量u%
b=addmf(b,'input',1,'PL','gaussmf',[1.227 6]); %将隶属度函数PL添加到FIS%
b=addmf(b,'input',1,'PM','gaussmf',[1.311 4]); %将隶属度函数PM添加到FIS%
b=addmf(b,'input',1,'PS','gaussmf',[0.849 2]); %将隶属度函数PS添加到FIS%
b=addmf(b,'input',1,'PO','trimf',[0.111 0.111 2.57]); %将隶属度函数P0添加到FIS%
b=addmf(b,'input',1,'NO','trimf',[-2.492 0.0159 0.0476]);%将隶属度函数N0添加到FIS%
b=addmf(b,'input',1,'NS','gaussmf',[0.7957 -2]); %将隶属度函数NS添加到FIS%
b=addmf(b,'input',1,'NM','gaussmf',[1.069 -4]); %将隶属度函数NM添加到FIS%
b=addmf(b,'input',1,'NL','gaussmf',[1.227 -6]); %将隶属度函数NL添加到FIS%
b=addmf(b,'input',2,'PL','gaussmf',[1.201 6]); %将第二个输入的隶属度函数PL添加到FIS%
b=addmf(b,'input',2,'PM','gaussmf',[0.9841 4]); %将第二个输入的隶属度函数PM添加到FIS%
b=addmf(b,'input',2,'PS','gaussmf',[1.011 2]); %将第二个输入的隶属度函数PS添加到FIS%
b=addmf(b,'input',2,'O','gaussmf',[0.715 0]); %将第二个输入的隶属度函数0添加到FIS%
b=addmf(b,'input',2,'NS','gaussmf',[0.9572 -2]); %将第二个输入的隶属度函数NS添加到FIS%
b=addmf(b,'input',2,'NM','gaussmf',[0.9841 -4]); %将第二个输入的隶属度函数NM添加到FIS%
b=addmf(b,'input',2,'NL','gaussmf',[1.25 -6]); %将第二个输入的隶属度函数NL添加到FIS%
b=addmf(b,'output',1,'PL','gaussmf',[1.211 7]); %将输出的隶属度函数PL添加到FIS%
b=addmf(b,'output',1,'PM','gaussmf',[0.9908 4]); %将输出的隶属度函数PM添加到FIS%
b=addmf(b,'output',1,'PS','gaussmf',[0.802 1]); %将输出的隶属度函数PS添加到FIS%
b=addmf(b,'output',1,'O','gaussmf',[0.6763 0]); %将输出的隶属度函数0添加到FIS%
b=addmf(b,'output',1,'NS','gaussmf',[0.802 -1]); %将输出的隶属度函数NS添加到FIS%
b=addmf(b,'output',1,'NM','gaussmf',[1.025 -4]); %将输出的隶属度函数NM添加到FIS%
b=addmf(b,'output',1,'NL','gaussmf',[1.243 -7]); %将输出的隶属度函数NL添加到FIS%
rulelist=[8 7 1 1 1;8 6 1 1 1;8 5 1 1 1; 8 4 1 1 1; %定义模糊规则%
8 3 2 1 1;8 2 4 1 1;8 1 4 1 1; 7 7 1 1 1;
7 6 1 1 1;7 5 1 1 1;7 4 1 1 1; 7 3 2 1 1;
7 2 4 1 1;7 1 4 1 1;6 7 2 1 1; 6 6 2 1 1;
6 5 2 1 1;6 4 2 1 1;6 3 4 1 1; 6 2 5 1 1;
6 1 5 1 1;5 7 2 1 1;5 6 2 1 1; 5 5 3 1 1;
5 4 4 1 1;5 3 5 1 1;5 2 6 1 1; 5 1 6 1 1;
4 7 2 1 1;4 6 2 1 1;4 5 3 1 1; 4 4 4 1 1;
4 3 5 1 1;4 2 6 1 1;4 1 6 1 1; 3 7 3 1 1;
3 6 3 1 1;3 5 4 1 1;3 4 6 1 1; 3 3 6 1 1;
3 2 6 1 1;3 1 6 1 1;2 7 4 1 1; 2 6 4 1 1;
2 5 6 1 1;2 4 7 1 1;2 3 7 1 1; 2 2 7 1 1;
2 1 7 1 1;1 7 4 1 1;1 6 4 1 1; 1 5 6 1 1;
1 4 7 1 1;1 3 7 1 1;1 2 7 1 1; 1 1 7 1 1];
b=addrule(b,rulelist); %在FIS中添加规则%
writefis(b,'myfuzzy2'); %将名为fis的模糊控制系统保存到磁盘%
b=setfis(b,'defuzzmethod','mom'); %采用mom(极大平均法)进行反模糊化
showfis(b);
out=evalfis([-6 -6],b)
for i=-6:6 %创建模糊矩阵%
for j=-6:6
u(i+7,j+7)=round(evalfis([i j],b));
end
end
u
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -