马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
%模糊推理系统(FIS)<br>a=newfis('Simple'); %建立模糊推理系统<br>a=addvar(a,'input','e',[-6 6]); %添加误差变量 <br>% a=rmmf(a,'input',1,'mf',1); %[注意:]删除默认的隶属度函数(matlab6.0版本需要此项,6.5版本则不需要)<br>% a=rmmf(a,'input',1,'mf',1);<br>% a=rmmf(a,'input',1,'mf',1);<br>a=addmf(a,'input',1,'NB','gaussmf',[1.5,-6]); %添加隶属度函数<br>a=addmf(a,'input',1,'NM','gaussmf',[1.18,-4]);<br>a=addmf(a,'input',1,'NS','trimf',[-5.5,-2,-0.35]);<br>a=addmf(a,'input',1,'ZR','trimf',[-2,0,2]);<br>a=addmf(a,'input',1,'PS','trimf',[0.35,2,5.5]);<br>a=addmf(a,'input',1,'PM','gaussmf',[1.18,4]); <br>a=addmf(a,'input',1,'PB','gaussmf',[1.5,6]);<br>%----------------------------------------------------------------------------------%<br>a=addvar(a,'input','de',[-6 6]);<br>% a=rmmf(a,'input',2,'mf',1);<br>% a=rmmf(a,'input',2,'mf',1);<br>% a=rmmf(a,'input',2,'mf',1);<br>a=addmf(a,'input',2,'NB','gaussmf',[1.5,-6]);<br>a=addmf(a,'input',2,'NM','gaussmf',[1.18,-4]);<br>a=addmf(a,'input',2,'NS','trimf',[-5.5,-2,-0.35]);<br>a=addmf(a,'input',2,'ZR','trimf',[-2,0,2]);<br>a=addmf(a,'input',2,'PS','trimf',[0.35,2,5.5]);<br>a=addmf(a,'input',2,'PM','gaussmf',[1.18,4]);<br>a=addmf(a,'input',2,'PB','gaussmf',[1.5,6]);<br>%-----------------------------------------------------------------------------------%<br>a=addvar(a,'output','u',[-6 6]);<br>% a=rmmf(a,'output',1,'mf',1);<br>% a=rmmf(a,'output',1,'mf',1);<br>% a=rmmf(a,'output',1,'mf',1);<br>a=addmf(a,'output',1,'NB','gaussmf',[1.5,-6]);<br>a=addmf(a,'output',1,'NM','gaussmf',[1.18,-4]);<br>a=addmf(a,'output',1,'NS','trimf',[-5.5,-2,-0.35]);<br>a=addmf(a,'output',1,'ZR','trimf',[-2,0,2]);<br>a=addmf(a,'output',1,'PS','trimf',[0.35,2,5.5]);<br>a=addmf(a,'output',1,'PM','gaussmf',[1.18,4]);<br>a=addmf(a,'output',1,'PB','gaussmf',[1.5,6]);<br>%-----------------------------------------------------------------------------------%<br>%显示隶属度函数<br>figure(1) <br>subplot(3,1,1)<br>plotmf(a,'input',1)<br>ylabel('误差隶属度');<br>subplot(3,1,2)<br>plotmf(a,'input',2)<br>ylabel('误差率隶属度');<br>subplot(3,1,3)<br>plotmf(a,'output',1)<br>ylabel('输出隶属度');<br>%-----------------------------------------------------------------------------------%<br>%建立模糊控制规则<br>aa=0.5; %隶属度规则修正因子,[0,1]<br>for i=1:7<br> for j=1:7<br> rr(i,j)=ceil(((i-4)*(1-aa)+(j-4)*aa)*(-1))+4;<br> if rr(i,j)>7<br> rr(i,j)=7;<br> end<br> end<br>end %模糊控制规则<br> <br>r1=zeros(prod(size(rr)),3); <br>k=1;<br>for i=1:size(rr,1)<br> for j=1:size(rr,2)<br> r1(k,:)=[i,j,rr(i,j)];<br> k=k+1;<br> end<br>end<br>[r,s]=size(r1);<br>r2=ones(r,2);<br>rulelist=[r1,r2]; %规则矩阵,m+n+2列,m列输入,n列输出.m+n+1列为规则权值,m+n+2列操作符类型<br>a=addrule(a,rulelist); %在FIS中添加规则<br>%----------------------------------------------------------------------------------%
[此贴子已经被作者于2006-6-30 15:31:37编辑过]
|