粒子群算法优化模糊pid_第1页
粒子群算法优化模糊pid_第2页
粒子群算法优化模糊pid_第3页
粒子群算法优化模糊pid_第4页
粒子群算法优化模糊pid_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文选取常见的二阶惯性加纯滞后环节,传递函数为:e_G(Ts+1)(Ts+1)12在这里,12=0.3PID在这里,12=0.3PID参数取为K二2,K二1,K二2pdi本设计中的模糊控制器采用两输入(e,ec),三输出(P,I,D)的形式来调整PID参数。e的论域为[-3,3],ec的论域为[-3,3]。推理机使用{NB,NM,NS,O,PS,PM,PB},表示{负大,负中,负小,零,正小,正中,正大为了可以调节尽可能多的系统,此控制器选定在负边界处和正边界处分别选用平滑连续的Z型隶属度函数和S型隶属度函数,在中间部分采用灵敏度较强的三角形隶属度函数。规则表如下图所示:NBNMNSZEPSPMFBFBZE/PM/PSze/pk/psNS/PE/ZEW/PB/ZEo/fb/zeM/PS/PSm/PS/NBPMZE/PB/IffiZE/PS/MBNS/PE/ZEW/PS/NSNB/FS/WW/ZE/ZEim/PS/NBPSPM/ZE/NBPS/ZE/NBZE/ZE/WW/ZE/NSH/ZE/WM/NS/ZEm/ZE/nZEFB/NS/NSPM/NS/N5PS/NS/NSNS/NS/NSO/NS/NSW/NS/ZEm/zE/oNSPB/ZE/NBPB/ZE/NBPM/ZE/NMZE/ZE/NSZE/ZEMNS/NS/HNS/NS/HWFB/FB/MBPB/PS/JIEPM/FS/NMPS/FS/NSFS/FS/NSZE/FS/OZE/PS/ONEPB/PM/PSPB/PB/PSPM/FE/EEPM/FE/EEPS/FB/ZEZE/PB/PSZE/PM/FS1)主程序:clearclc%%参数设置w=0.6;%惯性因子c1=1.414;c1=1.414;c2=1.623;Dim=5;%加速常数%加速常数%维数SwarmSize=100;%粒子群规模ObjFun=@PSO_PID;%待优化函数句柄MaxIter=100; %最大迭代次数MinFit=0.01;%最小适应值Vmax=2;Vmin=-2;Ub=[2050111];Lb=[00000];%%粒子群初始化Range=ones(SwarmSize,1)*(Ub-Lb);Swarm=rand(SwarmSize,Dim).*Range+ones(SwarmSize,1)*Lb; %初始化粒子群VStep=rand(SwarmSize,Dim)*(Vmax-Vmin)+Vmin; %初始化速度fSwarm=zeros(SwarmSize,1);fori=1:SwarmSizefSwarm(i,:)=feval(ObjFun,Swarm(i,:));%粒子群的适应值end%%个体极值和群体极值[bestf,bestindex]=min(fSwarm);zbest=Swarm(bestindex,:);%全局最佳gbest=Swarm;%个体最佳fgbest=fSwarm;%个体最佳适应值fzbest=bestf;%全局最佳适应值%%迭代寻优iter=0;y_fitness=zeros(1,MaxIter);%预先产生4个空矩阵K_p=zeros(1,MaxIter);K_i=zeros(1,MaxIter);K_d=zeros(1,MaxIter);e=zeros(1,MaxIter);ec=zeros(1,MaxIter);while((iter<MaxIter)&&(fzbest>MinFit))forj=1:SwarmSize%速度更新-Swarm(j,:))+VStep(j,:)=w*VStep(j,:)+c1*rand*(gbest(j,:)c2*rand*(zbest-Swarm(j,:))+ifVStep(j,:)>Vmax,VStep(j,:)=Vmax;endifVStep(j,:)<Vmin,VStep(j,:)=Vmin;end%位置更新Swarm(j,:)=Swarm(j,:)+VStep(j,:);fork=1:DimifSwarm(j,k)>Ub(k),Swarm(j,k)=Ub(k);endifSwarm(j,k)<Lb(k),Swarm(j,k)=Lb(k);endend%适应值fSwarm(j,:)=feval(ObjFun,Swarm(j,:));%个体最优更新iffSwarm(j)<fgbest(j)gbest(j,:)=Swarm(j,:);fgbest(j)=fSwarm(j);end%群体最优更新iffSwarm(j)<fzbestzbest=Swarm(j,:);fzbest=fSwarm(j);endenditer=iter+1;%迭代次数更新y_fitness(1,iter)=fzbest;%为绘图做准备K_p(1,iter)=zbest(1);K_i(1,iter)=zbest(2);K_d(1,iter)=zbest(3);e(1,iter)=zbest(4);ec(1,iter)=zbest(5);end%%绘图输出figure(l)%绘制性能指标ITAE的变化曲线plot(y_fitness,'LineWidth',2)title('最优个体适应值', 'fontsize',18);xlabel('迭代次数','fontsize',18);ylabel('适应值','fontsize',18);set(gca,'Fontsize',18);figure(2)%绘制PID控制器参数变化曲线plot(K_p)holdonplot(K_i,'k','LineWidth',3)title('Kp、Ki优化曲线','fontsize',18);xlabel('迭代次数','fontsize',18);ylabel('参数值','fontsize',18);set(gca,'Fontsize',18);legend('Kp','Ki',1);figure(3)%绘制PID控制器参数变化曲线plot(e)holdonplot(ec,'k','LineWidth',3)title('e、ec优化曲线','fontsize',18);xlabel('迭代次数','fontsize',18);ylabel('参数值','fontsize',18);set(gca,'Fontsize',18);legend('e','ec',1);figure(4)%绘制PID控制器参数变化曲线plot(K_d)holdontitle('Kd优化曲线','fontsize',18);xlabel('迭代次数','fontsize',18);ylabel('参数值','fontsize',18);set(gca,'Fontsize',18);legend('Kd',1);clearclc(2)simulnik与算法结合程序functionz=PSO_PID(x)assignin('base','Kp',x(1));assignin('base','Ki',x(2));assignin('base','Kd',x(3));assignin('base','e',x(4));assignin('base','ec',x(5));[t_time,x_state,y_out]=sim('pca',[0,20]);z=y_out(end,1);(3)Simulink仿真图:实验结果:K=15,K=20,K=1,ITAE=8.8446,波形如下图所示。pid实验结论:本次设计使用的是pid,粒子群算法模糊pid,粒子群算法模糊smithpid相结合,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论