基于遗传算法的PID整定原理及matlab仿真程序

基于遗传算法的PID整定原理及matlab仿真程序

ID:38690537

大小:24.00 KB

页数:5页

时间:2019-06-17

基于遗传算法的PID整定原理及matlab仿真程序_第1页
基于遗传算法的PID整定原理及matlab仿真程序_第2页
基于遗传算法的PID整定原理及matlab仿真程序_第3页
基于遗传算法的PID整定原理及matlab仿真程序_第4页
基于遗传算法的PID整定原理及matlab仿真程序_第5页
资源描述:

《基于遗传算法的PID整定原理及matlab仿真程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、主程序:chap5_2.m%GA(GenericAlgorithm)ProgramtooptimizePIDParametersclearall;closeall;globalrinyouttimefSize=30;CodeL=3;MinX(1)=zeros(1);MaxX(1)=20*ones(1);MinX(2)=zeros(1);MaxX(2)=1.0*ones(1);MinX(3)=zeros(1);MaxX(3)=1.0*ones(1);Kpid(:,1)=MinX(1)+(MaxX(1)-MinX(1))*rand(Siz

2、e,1);Kpid(:,2)=MinX(2)+(MaxX(2)-MinX(2))*rand(Size,1);Kpid(:,3)=MinX(3)+(MaxX(3)-MinX(3))*rand(Size,1);G=100;BsJ=0;%***************StartRunning***************forkg=1:1:Gtime(kg)=kg;%******Step1:EvaluateBestJ******fori=1:1:SizeKpidi=Kpid(i,:);[Kpidi,BsJ]=chap5_2f(Kpidi,B

3、sJ);BsJi(i)=BsJ;end[OderJi,IndexJi]=sort(BsJi);BestJ(kg)=OderJi(1);BJ=BestJ(kg);Ji=BsJi+1e-10;%Avoidingdevidingzerofi=1./Ji;%Cm=max(Ji);%fi=Cm-Ji;[Oderfi,Indexfi]=sort(fi);%ArrangingfismalltobiggerBestfi=Oderfi(Size);%LetBestfi=max(fi)BestS=Kpid(Indexfi(Size),:);%LetBes

4、tS=E(m),mistheIndexfibelongtomax(fi)kgBJBestS%******Step2:SelectandReproductOperation******fi_sum=sum(fi);fi_Size=(Oderfi/fi_sum)*Size;fi_S=floor(fi_Size);%SelectingBiggerfivaluer=Size-sum(fi_S);Rest=fi_Size-fi_S;[RestValue,Index]=sort(Rest);fori=Size:-1:Size-r+1fi_S(In

5、dex(i))=fi_S(Index(i))+1;%AddingresttoequalSizeendk=1;fori=Size:-1:1%SelecttheSizethandReproducefirstlyforj=1:1:fi_S(i)TempE(k,:)=Kpid(Indexfi(i),:);%SelectandReproducek=k+1;%kisusedtoreproduceendend%************Step3:CrossoverOperation************Pc=0.90;fori=1:2:(Size

6、-1)temp=rand;ifPc>temp%CrossoverConditionalfa=rand;TempE(i,:)=alfa*Kpid(i+1,:)+(1-alfa)*Kpid(i,:);TempE(i+1,:)=alfa*Kpid(i,:)+(1-alfa)*Kpid(i+1,:);endendTempE(Size,:)=BestS;Kpid=TempE;%************Step4:MutationOperation**************Pm=0.10-[1:1:Size]*(0.01)/Size;%Bigg

7、erfi,smallerPmPm_rand=rand(Size,CodeL);Mean=(MaxX+MinX)/2;Dif=(MaxX-MinX);fori=1:1:Sizeforj=1:1:CodeLifPm(i)>Pm_rand(i,j)%MutationConditionTempE(i,j)=Mean(j)+Dif(j)*(rand-0.5);endendend%GuaranteeTempE(Size,:)belongtothebestindividualTempE(Size,:)=BestS;Kpid=TempE;endBes

8、tfiBestSBest_J=BestJ(G)figure(1);plot(time,BestJ);xlabel(’Times’);ylabel(’BestJ’);figure(2);plot(timef,rin,’r’

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。