智能控制作業(yè)報告-基于遺傳算法的模糊控制器最優(yōu)設(shè)計_第1頁
智能控制作業(yè)報告-基于遺傳算法的模糊控制器最優(yōu)設(shè)計_第2頁
智能控制作業(yè)報告-基于遺傳算法的模糊控制器最優(yōu)設(shè)計_第3頁
智能控制作業(yè)報告-基于遺傳算法的模糊控制器最優(yōu)設(shè)計_第4頁
智能控制作業(yè)報告-基于遺傳算法的模糊控制器最優(yōu)設(shè)計_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)西安理工大學(xué)研究生課程論文/研究報告課程名稱: 智能控制 任課教師: 論文/研究報告題目: 基于遺傳算法的模糊控制器最優(yōu)設(shè)計 完成日期: 2016 年 8 月 27 日學(xué) 科: 電力電子與電力傳動 學(xué) 號: 姓 名: 1.基于遺傳算法的模糊控制MATLAB程序:clear allclose allclcT=0.1; %控制系統(tǒng)采樣時間TM=200; %控制系統(tǒng)運行次數(shù)time=zeros(1,TM);kp=0.2;ki=0.002;kd=20;tr=0; %定義初始種群

2、參數(shù)N=10; %初始種群數(shù)目M=3; %遺傳代數(shù)varb=3; %語言值個數(shù)yout1=zeros(N,TM);yout=zeros(M,TM);fitness=zeros(1,N); %產(chǎn)生初始種群n=varb2;n1=varb2+varb*2; %每條染色體的長度mfpara1=randint(N,n,1,varb); %控制規(guī)則表mfpara2=-1*rand(N,varb); %mfpara2(1),mfpara2(2),mfpara2(3)分別為an,bn,cnmfpara3=rand(N,varb); %mfpara3(1),mfpara3(2),mfpara3(3)分別為ap,

3、bp,cpinit=mfpara1,mfpara2,mfpara3; %離散化被控對象num=1;den=conv(conv(1,0.1,1,0.2),1,0.7);g=tf(num,den);yn=c2d(g,T,zoh);tt,ff=tfdata(yn,v); %開始循環(huán)p=1 while p=M %循環(huán)代數(shù)從1到3 q=1 while q=N %染色體數(shù)從1到10 y=zeros(1,TM); u=zeros(1,TM); er=zeros(1,TM); yr=zeros(1,TM); e1=0;e2=0;E1=0; y1=0;y2=0;y3=0; u1=0;u2=0;u3=0; e=z

4、eros(1,TM); E=zeros(1,TM); for k=1:TM %運行系統(tǒng) yr(k)=1; y(k)=-ff(2)*y1-ff(3)*y2-ff(4)*y3+tt(2)*u1+tt(3)*u2+tt(4)*u3; y3=y2;y2=y1;y1=y(k); u3=u2;u2=u1; e(k)=yr(k)-y(k); er(k)=(e(k)-e1)/T; detae=fu_zzy(init(q,:),e(k),er(k),varb); %調(diào)用模糊控制規(guī)則程序 E(k)=e(k)+detae; u(k)=kp*E(k)+ki*sum(E)+kd*(E(k)-E1); E1=E(k);

5、u1=u(k); e2=e1;e1=e(k); end for k=1:TM if abs(y(k)-1)=0.1 tr=k*T; %上升時間tr break end end ymax=0; for k=1:TM if ymax2)|(overshoot1)|(accer50) fitness2=0; else tr1=tr*50; overshoot1=overshoot*100; accer1=accer*2; index=tr1,abs(overshoot1),accer1; fitness1=(0.6*index(1)+1.2*index(2)+1.2*index(3)/3; fitn

6、ess2=100-fitness1; end fitness(q)=fitness2; y; yout1(q,:)=y; q=q+1 end %一代種群運行完畢 fitness maxfit1,h=max(fitness); maxfit(p)=maxfit1 %每代的最大適配值存入maxfit yout(p,:)=yout1(h,:); %每一代當適配值最大時,系統(tǒng)的階躍響應(yīng)輸出 init=gene_tic(init,fitness,p,N,varb,n,n1); %調(diào)用遺傳算法優(yōu)化,得到新的種群 p=p+1end %運行3代后結(jié)束 for k=1:TM time(k)=k*T;end pl

7、ot(time,yout(1,:),r-,time,yout(2,:),g-,time,yout(3,:),b-)legend(遺傳第1代,遺傳第2代,遺傳第3代)grid onbest=max(maxfit) e1=1;y=;e=;e1=0;y1=0;y2=0;y3=0;u1=0;u2=0;u3=0;for k=1:TM %運行系統(tǒng) yr(k)=1; y(k)=-ff(2)*y1-ff(3)*y2-ff(4)*y3+tt(2)*u1+tt(3)*u2+tt(4)*u3; y3=y2;y2=y1;y1=y(k); u3=u2;u2=u1; e(k)=yr(k)-y(k); er(k)=(e(k

8、)-e1)/T; u(k)=kp*e(k)+ki*sum(e)+kd*(e(k)-e1); u1=u(k); e1=e(k); endfigure(2)opt=find(maxfit=best);plot(time,y,-,time,yout(opt(1),:)legend(PID控制器,GA優(yōu)化的模糊PID控制器)grid on各子函數(shù)MATLAB程序:模糊控制子程序fu_zzy.mfunction detae=fu_zzy(init,F,L,varb)if F=1 F=1;endif L=1 L=1;end %模糊控制規(guī)則an=init(10);bn=init(11);cn=init(12

9、);ap=init(13);bp=init(14);cp=init(15);a=newfis(fuzzf); %建立隸屬度函數(shù)a=addvar(a,input,F,-1,1);a=addmf(a,input,1,NL,zmf,-1,an);a=addmf(a,input,1,ZR,trimf,an,0,ap);a=addmf(a,input,1,PL,smf,ap,1);a=addvar(a,input,L,-1,1);a=addmf(a,input,2,NL,zmf,-1,bn);a=addmf(a,input,2,ZR,trimf,bn,0,bp);a=addmf(a,input,2,PL

10、,smf,bp,1);a=addvar(a,output,detae,-1,1);a=addmf(a,output,1,NL,zmf,-1,cn);a=addmf(a,output,1,ZR,trimf,cn,0,cp);a=addmf(a,output,1,PL,smf,cp,1); %建立控制規(guī)則表rulelist=1 1 init(1) 1 1;1 2 init(2) 1 1;1 3 init(3) 1 1; 2 1 init(4) 1 1;2 2 init(5) 1 1;2 3 init(6) 1 1; 3 1 init(7) 1 1;3 2 init(8) 1 1;3 3 init(

11、9) 1 1;a=addrule(a,rulelist);a1=setfis(a,DefuzzMethod,mom);writefis(a1,fuzzf);a2=readfis(fuzzf); %模糊控制器輸出detae=evalfis(F,L,a2);2)遺傳算法子程序gene_tic.mfunction init=gene_tic(init,fitness,k,N,varb,n,n1)fitness=fitness;N=N;varb=varb;init=init; %復(fù)制sumfit=sum(fitness); %sumfit為每一代總的適應(yīng)值zongfit(k)=sumfit; %保存每

12、一代總的適應(yīng)值到zongfitsumfit1(1)=fitness(1);for i=2:N sumfit1(i)=sumfit1(i-1)+fitness(i);endlunpan=round(sumfit*rand(1,N);A=zeros(N,n1);for i=1:N for j=1:(N-1) if (lunpan(i)=0)&(lunpan(i)sumfit1(j)&(lunpan(i)=sumfit1(j+1) A(i,:)=init(j+1,:); end endendinit=A; %交叉pc=0.6; %交叉概率選為0.7Q=rand(1);place=round(n1-1

13、)*rand(1)+1); %產(chǎn)生交叉位match=randperm(N); %產(chǎn)生匹配對的隨機序列B=zeros(N,n1);if Qpc for i=1:place B(:,i)=init(:,i); end for i=place:n1 for j=1:(N/2) B(match(j-1)*2+1),i)=init(match(j*2),i); B(match(j*2),i)=init(match(j-1)*2+1),i); end endendinit=B; %變異pm=0.01; %變異概率選為0.01d=round(N*n1*pm); %計算變異位個數(shù)if d=0 init=ini

14、t;elseif d=1 i=round(N*rand(1)+1); j=round(n1*rand(1)+1); if j=n init(i,j)=round(varb-1)*rand(1)+1); %如果是前n位數(shù),則變異為1至VN中的一個 elseif j=n+varb init(i,j)=-1*randint(1,1,1,16)*1/16; %如果是n+1至n+3位數(shù),則變異為-1至0之間中的一個 elseif j1 C=zeros(1,N*n1); x=randint(1,d,1,N*n1); %隨機產(chǎn)生d個變異位置,存入x中 C=reshape(init,1,N*n1); %將N行

15、n1列的矩陣init轉(zhuǎn)換為1行N*n1列的矩陣C for i=1:d if C(x(i)=0)&(C(x(i)=1 C(x(i)=randint(1,1,1,varb); %若變異位大于等于1,則隨機選?。?,varb)之間的整數(shù)賦值 end end init=reshape(C,N,n1); %將變異后的1行N*n1列的矩陣C,轉(zhuǎn)換為N行n1列的矩陣initendinit=init;程序運行結(jié)果程序運行過程中遺傳各代的每條染色體的階躍響應(yīng)性能指標如下表1,2,3所示。表1 遺傳第一代各染色體階躍響應(yīng)的性能指標染色體第1條第2條第3條第4條第5條第6條第7條第8條第9條第10條上升時間01.3

16、0001.10001.10001.10001.10001.10001.40001.80001.4000超調(diào)量-0.26731.64640.9836-0.5809-0.7620-0.76720.96781.98440.31880.6170累計誤差118.4311162.2475172.2924139.0905189.3429195.7397166.9554215.314818.9711124.3250適應(yīng)度值0000000054.06970表2 遺傳第二代各染色體階躍響應(yīng)的性能指標染色體第1條第2條第3條第4條第5條第6條第7條第8條第9條第10條上升時間1.80001.80001.80001.

17、80001.80001.80001.80001.80001.80001.8000超調(diào)量0.31880.31880.31880.31880.28110.31880.31880.31880.31880.3188累計誤差18.971118.971118.971118.971117.992818.971118.971118.971118.971119.3735適應(yīng)度值54.069754.069754.069754.069756.363354.069754.069754.069754.069753.7478表3 遺傳第三代各染色體階躍響應(yīng)的性能指標染色體第1條第2條第3條第4條第5條第6條第7條第8條第

18、9條第10條上升時間1.80001.80001.80001.80001.80001.80001.80001.80001.80001.8000超調(diào)量0.31880.31880.31880.31880.31880.31880.31880.20220.31880.3188累計誤差18.971118.971119.373519.508518.971118.971118.971119.623318.971119.3735適應(yīng)度值54.069754.069753.747853.639954.069754.069754.069758.214554.069753.7478程序運行的各代最大適應(yīng)度值為:maxfit = 54.0697 56.3633 58.2145程序運行的最佳適應(yīng)度值為:best = 58.2145Kp=0.2,ki=0.002,kd=10時系統(tǒng)運行結(jié)果如圖1所示,優(yōu)化后的控制器輸出平穩(wěn)但存在穩(wěn)態(tài)誤差,此時系統(tǒng)調(diào)節(jié)時間為1.8s,超調(diào)為2.1%,誤差為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論