?? dflc.m
字號:
function [] = dflc( )clear%隸屬度函數(shù)MF=[0 0 0 0.4 1;0 0.2 1 0.2 0;1 0.4 0 0 0];%規(guī)則表LAW=[1 1 2;1 2 3;2 3 3];%初始化e1(1)=0;de1(1)=0;u=30;y1(2)=0;for clk=1:200 y(clk)=y1(clk+1); time(clk)=clk/2; e1(clk+1)=u-y1(clk+1); de1(clk+1)=e1(clk+1)-e1(clk);%離散化e if e1(clk+1)<-18 e11=1; elseif e1(clk+1)<-6 e11=2; elseif e1(clk+1)<6 e11=3; elseif e1(clk+1)<18 e11=4; else e11=5; end%離散化de if de1(clk+1)<-36 de11=1; elseif de1(clk+1)<-12 de11=2; elseif de1(clk+1)<12 de11=3; elseif de1(clk+1)<36 de11=4; else de11=5; end%模糊推理 for i=1:3 for j=1:3 t=min(MF(i,e11),MF(j,de11)); for k=1:5 o((i-1)*3+j,k)=min(t,MF(LAW(j,i),k)); end end end for xx=1:5 t=0; for yy=1:9 t=max(o(yy,xx),t); end o(10,xx)=t; end%反模糊化 t=0; s=0; for x=1:5 t=t+o(10,x)*x; s=s+o(10,x); end u1(clk+2)=51*t/s-123; y1(clk+2)=exp(-0.05)*y1(clk+1)+(1-exp(-0.05))*u1(clk);end%畫圖plot(time,y);xlabel('time');ylabel('y');[time' y']
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -