文档详情

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

发布:2024-10-09约4.62千字共4页下载文档
文本预览下载声明

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

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

主程序:chap5_2.m

%ga(通用算法)程序优化EPID参数;closeall;

globalrinyouttimef

尺寸=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(大小,1);kpid(:,

2)=minx(2)+(maxx(2)-minx(2))*rand(大小,1);kpid(:,3)=minx(3)

+(maxx(3)-minx(3))*rand(大小,1);

g=100;bsj=0;

%***************开始转动***************分叉g=1:1:g

time(kg)=kg;

%******步骤1:evaluatebestj****fori=1:1:sizekpidi=kpid(i,:);

[kpidi,bsj]=chap5_2f(kpidi,bsj);

bsji(i)=bsj;终止

[oderji,indexji]=sort(bsji);bestj(kg)=oderji(1);bj=bestj(kg);

ji=bsji+1e-10;%避免变零

fi=1./ji;

%cm=最大值(ji);

%fi=cm-ji;

[oderfi,indexfi]=排序(fi);%排列Fismalltobiggerbestfi=oderfi(大

小);%letbestfi=最大值(fi)

bests=kpid(indexfi(size),:);%letbests=e(m),mistheindexfibelongtomax(fi)

kgbjbests

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

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

%******step2:selectandreproductoperation******fi_sum=sum(fi);

fi_u大小=(奥德菲/fi_u总和)*大小;

fi_s=floor(fi_size);%selectingbiggerfivaluer=size-sum(fi_s);

rest=fi_u-size-fi_u-s;

[restvalue,index]=sort(rest);

fori=尺寸:-1:尺寸-r+1

fi_s(index(i))=fi_s(index(i))+1;%addingresttoequalsizeend

k=1;

fori=size:-1:1%selectthesizethandreproducefirstlyforj=1:1:fi_s(i)

tempe(k,:)=kpid(indexfi(i),:);

显示全部
相似文档