📄 xinxincomeon.m
字号:
%建立FIS
fuz2=newfis('simpleFuzzy2');
%设置语言变量E和三角形隶属函数
fuz2=addvar(fuz2,'input','e',[-6,6]);
fuz2=addmf(fuz2,'input',1,'NB','trimf',[-6,-6,-4]);
fuz2=addmf(fuz2,'input',1,'NM','trimf',[-6,-4,-2]);
fuz2=addmf(fuz2,'input',1,'NS','trimf',[-4,-2,0]);
fuz2=addmf(fuz2,'input',1,'NZ','trimf',[-1,0,0]);
fuz2=addmf(fuz2,'input',1,'PZ','trimf',[0,0,1]);
fuz2=addmf(fuz2,'input',1,'PS','trimf',[0,2,4]);
fuz2=addmf(fuz2,'input',1,'PM','trimf',[2,4,6]);
fuz2=addmf(fuz2,'input',1,'PB','trimf',[4,6,6]);
%设置语言变量EC和三角形隶属函数
fuz2=addvar(fuz2,'input','ec',[-6,6]);
fuz2=addmf(fuz2,'input',2,'NB','trimf',[-6,-6,-4]);
fuz2=addmf(fuz2,'input',2,'NM','trimf',[-6,-4,-2]);
fuz2=addmf(fuz2,'input',2,'NS','trimf',[-4,-2,0]);
fuz2=addmf(fuz2,'input',2,'Z','trimf',[-2,0,2]);
fuz2=addmf(fuz2,'input',2,'PS','trimf',[0,2,4]);
fuz2=addmf(fuz2,'input',2,'PM','trimf',[2,4,6]);
fuz2=addmf(fuz2,'input',2,'PB','trimf',[4,6,6]);
%设置控制变量U和三角形隶属函数
fuz2=addvar(fuz2,'output','u',[-7,7]);
fuz2=addmf(fuz2,'output',1,'NB','trimf',[-7,-7,-5]);
fuz2=addmf(fuz2,'output',1,'NM','trimf',[-7,-5,-3]);
fuz2=addmf(fuz2,'output',1,'NS','trimf',[-5,-3,-1]);
fuz2=addmf(fuz2,'output',1,'Z','trimf',[-2,0,2]);
fuz2=addmf(fuz2,'output',1,'PS','trimf',[1,3,5]);
fuz2=addmf(fuz2,'output',1,'PM','trimf',[3,5,7]);
fuz2=addmf(fuz2,'output',1,'PB','trimf',[5,7,7]);
rr=[ 7 7 6 5 5 5 5;
7 6 5 5 5 5 5;
6 5 5 5 4 4 4;
5 5 4 4 4 3 3;
5 5 4 4 4 3 3;
4 4 4 3 3 3 2;
3 3 3 3 3 2 1;
3 3 3 3 2 1 1];
r1=zeros(prod(size(rr)),3);
k1=1;
for i=1:size(rr,1)
for j=1:size(rr,2)
r1(k1,:)=[i,j,rr(i,j)];
k1=k1+1;
end
end
[r,s]=size(r1);
r2=ones(r,2);
rulelist=[r1,r2];
fuz2=addrule(fuz2,rulelist);
% 设置去模糊方法(重心法)
fuz2=setfis(fuz2,'DefuzzMethod','centroid');
%绘制FIS系统图形
plotfis(fuz2);
Ulist=zeros(13,14)
%建立控制表
for i=1:13
for j=1:14
e=-7+j;
if (e<0)& (j<7);
e=e;
elseif j==7;
e=-0.05;
elseif j==8
e=0.05;
else
e=e-1;
end
ec=(i-7);
Ulist(i,j)=evalfis([e,ec],fuz2);
end
end
Ulist=ceil(Ulist)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -