資源描述:
《模糊控制算法PID算法比較分析.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、模糊控制算法PID算法比較分析電氣學(xué)院控制理論與控制工程專業(yè)徐磊學(xué)號:一:題目對于已知系統(tǒng)的傳遞函數(shù)為:,假設(shè)系統(tǒng)給定為階躍值R=1,系統(tǒng)的初始值R(0)=0,試分析設(shè)計(jì)1〉常規(guī)的PID控制器2〉常規(guī)的模糊控制器3〉比較兩種控制器的控制效果當(dāng)通過改變模糊控制器的比例因子時(shí),分析系統(tǒng)響應(yīng)有什么變化?二:思路對于模糊控制,采用二維輸入,分別是誤差e和誤差變化率e,然后通過增益放大,輸入到模糊控制器中,然后模糊控制器輸出也通過增益放大。模糊控制器的輸入、輸出論域取值為[-6,6],隸屬度均勻劃分為五個(gè)區(qū)域,隸屬度函數(shù)采用梯形和三
2、角形函數(shù)。μN(yùn)BNSZE1PSPB-6-5-3-2-10123456兩個(gè)輸入和一個(gè)輸出的隸屬度函數(shù)相同。程序框圖如下:三:程序clear;num=1;den=[10,1];[a1,b,c,d]=tf2ss(num,den);x=[0];%狀態(tài)變量初始T=0.01;%采樣周期h=T;N=10000;%采樣次數(shù)td=0.5;%延時(shí)時(shí)間Nd=50;%延時(shí)周期R=1*ones(1,N);%輸入信號e=0;de=0;ie=0;%誤差,誤差導(dǎo)數(shù),積分kp=12.5;ki=0.8;kd=0.01;fork=1:Nuu(1,k)=-(kp
3、*e+ki*de+kd*ie);%PID輸出序列ifk<=Ndu=0;elseu=uu(1,k-Nd);end%龍格庫塔法仿真k0=a1*x+b*u;k1=a1*(x+h*k0/2)+b*u;k2=a1*(x+h*k1/2)+b*u;k3=a1*(x+h*k2)+b*u;x=x+(k0+2*k1+2*k2+k3)*h/6;y=c*x+d*u;e1=e;e=y(1,1)-R(1,k);de=(e1-e)/T;ie=ie+e*T;yy1(1,k)=y;end%設(shè)計(jì)模糊控制器a=newfis('Simple');a=addvar
4、(a,'input','e',[-6,6]);a=addmf(a,'input',1,'NB','trapmf',[-6-6-5-3]);a=addmf(a,'input',1,'NS','trapmf',[-5-3-20]);a=addmf(a,'input',1,'ZR','trimf',[-202]);a=addmf(a,'input',1,'PS','trapmf',[0235]);a=addmf(a,'input',1,'PB','trapmf',[3566]);a=addvar(a,'input','de',[
5、-66]);a=addmf(a,'input',2,'NB','trapmf',[-6-6-5-3]);a=addmf(a,'input',2,'NS','trapmf',[-5-3-20]);a=addmf(a,'input',2,'ZR','trimf',[-202]);a=addmf(a,'input',2,'PS','trapmf',[0235]);a=addmf(a,'input',2,'PB','trapmf',[3566]);a=addvar(a,'output','u',[-66]);a=addmf(a,'
6、output',1,'NB','trapmf',[-6-6-5-3]);a=addmf(a,'output',1,'NS','trapmf',[-5-3-20]);a=addmf(a,'output',1,'ZR','trimf',[-202]);a=addmf(a,'output',1,'PS','trapmf',[0235]);a=addmf(a,'output',1,'PB','trapmf',[3566]);%規(guī)則表rr=[5544354433443324332233221];r1=zeros(prod(size(
7、rr)),3);%初始化%r1賦值k=1;fori=1:size(rr,1)forj=1:size(rr,2)r1(k,:)=[i,j,rr(i,j)];k=k+1;endendr2=ones(25,2);rulelist=[r1,r2];%得到規(guī)則表a=addrule(a,rulelist);e=0;de=0;ie=0;x=[0];ke=8.5;kd=0.5;ku=2.2;%增益,比例因子ki=0.01;fork=1:Ne1=ke*e;de1=kd*de;ife1>=6e1=6;elseife1<=-6e1=-6;end
8、ifde1>=6de1=6;elseifde1<=-6de1=-6;endin=[e1de1];uu(1,k)=ku*evalfis(in,a)-ie*ki;ifk<=Ndu=0;elseu=uu(1,k-Nd);endk0=a1*x+b*u;k1=a1*(x+h*k0/2)+b*u;k2=a1*(x+