基于遗传算法PID控制寻优实现(有代码超详细)(3)

2019-08-30 19:14

Kpid(:,3)=MinX(3)+(MaxX(3)-MinX(3))*rand(Size,1); G=1000; BsJ=0;

%*************** 开始运行 *************** for kg=1:1:G time(kg)=kg;

%****** 步骤 1 : 产生 BestJ ****** for i=1:1:Size

Kpidi=Kpid(i,:); %代入PID参数

[Kpidi,BsJ]=chap5_3f(Kpidi,BsJ);%调用系统模型函数

BsJi(i)=BsJ; %取出最优值 end

[OderJi,IndexJi]=sort(BsJi); BestJ(kg)=OderJi(1); BJ=BestJ(kg);

Ji=BsJi+1e-10; %避免除0运算

fi=1./Ji;

[Oderfi,Indexfi]=sort(fi); %从小到大排列fi Bestfi=Oderfi(Size); %令 Bestfi=max(fi)

BestS=Kpid(Indexfi(Size),:); %令 BestS=E(m), m 是 max(fi) 的索引

kg BJ BestS

%****** 步骤 2 : 选择与新种群产生 ****** fi_sum=sum(fi);

fi_Size=(Oderfi/fi_sum)*Size;

fi_S=floor(fi_Size); % 向下取整运算 r=Size-sum(fi_S);

Rest=fi_Size-fi_S;

[RestValue,Index]=sort(Rest);

for i=Size:-1:Size-r+1

fi_S(Index(i))=fi_S(Index(i))+1; % 使得种群大小保持不变 end

k=1;

for i=Size:-1:1 for j=1:1:fi_S(i)

TempE(k,:)=Kpid(Indexfi(i),:); % 选择与生成新个体

k=k+1; % k 用来生成新个体 end end

%************ 步骤 3 : 交叉运算 ************ Pc=0.90; for i=1:2:(Size-1) temp=rand;

if Pc>temp %交叉条件 alfa=rand;

TempE(i,:)=alfa*Kpid(i+1,:)+(1-alfa)*Kpid(i,:); TempE(i+1,:)=alfa*Kpid(i,:)+(1-alfa)*Kpid(i+1,:); end end

TempE(Size,:)=BestS; Kpid=TempE;

%************ 步骤 4: 变异运算 **************

Pm=0.10-[1:1:Size]*(0.01)/Size; %具有更大 fi的个体具有更小的 Pm Pm_rand=rand(Size,CodeL); Mean=(MaxX + MinX)/2; Dif=(MaxX-MinX);

for i=1:1:Size for j=1:1:CodeL

if Pm(i)>Pm_rand(i,j) %变异条件 TempE(i,j)=Mean(j)+Dif(j)*(rand-0.5); end end end

%保证 TempE(Size,:) 为最优个体 TempE(Size,:)=BestS; Kpid=TempE; end Bestfi BestS

Best_J=BestJ(G) figure(1); plot(time,BestJ);

xlabel('Times');ylabel('Best J'); figure(2);

plot(timef,rin,'r',timef,yout,'b'); xlabel('Time(s)');ylabel('rin,yout');

5.3. 仿真优化及分析

由式(4-2)可知,二次型性能指标的常数?的取值范围为0?首先取??1,

??1。

设置控制系统M函数模型的运行时间为100秒。给定阶跃信号,采用实数编码方式,经过100代进化,获得的优化PID整定结果为Kp=0.2756,Ki=0,Kd=0.9210,性能指标J=5.1323。得到系统动态响应曲线,如图5-2所示。

1.41.210.8Out(t)0.60.40.2001020304050Time(s)60708090100

图5-2 系统响应曲线

由图5-2可测得,系统调节时间T=34s,超调量为12.5%,最终达到稳定,无静态误差,得到较好的动静态响应特性。图5-3表示控制器输出波形,如图,控制器输出峰值为1.17,并且35秒后趋于稳定。

1.210.80.6U(t)0.40.20-0.201020304050Time(t)60708090100

图5-3 控制器输出波形

图5-4为遗传算法随进化代数增加,性能指标J的变化过程,在100代前后得到最优参数。

3x 1042.52Best J1.510.500100200300400500Times6007008009001000

图5-4 遗传算法优化过程

二次型性能指标系数是否对对优化结果产生影响,可通过改变?值并进行寻优来研究。?值分别为0.25,0.5,0.75,1时的响应曲线比较图如图5-4所示。

1.4ρ=1ρ=0.75ρ=0.5ρ=0.25 1.210.8Out0.60.40.20 0102030Time(s)405060

图5-5 不同参数值下的响应曲线比较

当?值增加时超调量上升,调节时间增加。

6. 总结

本文在二次型性能指标的要求下,通过研究遗传算法,对控制对象进行PID参数整定,对PID系数进行了优化。利用优化结果进行了系统仿真,分析了控制器输出响应与系统动态响应。并对在不同?值下的的系统响应进行了对比分析,得出结论。可以得出,利用遗传算法可以较好的优化PID控制器参数,使系统得到较好的动静态响应。

参考文献

1.关守平,周玮等. 计算机控制系统[M]. 北京:科学出版社,2009.

2.薛定宇,陈泉阳. 高等应用数学问题的MATLAB求解[M].北京:清华大学出版社,2008.

3.薛定宇.控制系统计算机辅助设计[M].北京:清华大学出版社,2006. 4.周明,孙树栋.遗传算法原理及应用[M].北京:国防工业出版社,1999. 5.刘金琨.先进PID控制MATLAB仿真[M].北京:电子工业出版社,2004. 6.苏小林,阎晓霞.基于遗传算法的PID参数优化技术电力系统及其自动化学 报,1997, 9(2):20----26.

7.刘国贤,林宪枢,杨奇逊.基于遗传算法的控制器参数寻优[J],现代电力,1997,14(3):18----22

8.杨智,高靖,基于遗传算法的预测自整定PID控制器[J].控制与决策,2000,15(1):113----115,118


基于遗传算法PID控制寻优实现(有代码超详细)(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:毛泽东《共产党人》发刊词读后感

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: