粒子群算法优化模糊pid
基于粒子群算法的PID控制器优化设计

基于粒子群算法的PID控制器优化设计PID控制器是一种经典的控制器,适用于很多控制问题。
它由比例(P)、积分(I)和微分(D)三个环节构成,可以根据系统的反馈误差进行相应的调节,并实现系统的稳定控制。
然而,传统的PID控制器设计可能无法达到最优性能,因此可以采用PSO算法来优化PID控制器的参数。
PSO算法的基本思想是通过模拟粒子在空间中的移动,根据个体经验和群体信息不断调整位置,从而找到最优解。
具体步骤如下:1.初始化粒子的位置和速度。
粒子的位置表示PID控制器参数,速度表示参数的变化量。
2.根据当前位置计算适应度函数值,即系统的控制误差。
适应度函数值越小,表示当前位置越优。
3.选择个体历史最优位置和群体历史最优位置。
4.更新粒子速度和位置。
根据个体历史最优位置和群体历史最优位置进行速度更新,从而改变下一步的方向。
5.判断是否达到终止条件。
例如,达到最大迭代次数或达到目标误差范围。
6.如果未达到终止条件,则返回步骤3继续迭代;否则,输出最优解。
通过PSO算法优化PID控制器的参数,可以使系统的控制性能得到提升。
在优化过程中,粒子群算法利用了个体和群体的经验,具有较好的全局能力和收敛性,能够找到较优的PID控制器参数。
相比于传统的试错调参方法,PSO算法更加高效、自动化,可在较短的时间内得到较优的解。
需要注意的是,PSO算法的性能可能受到一些因素的影响,如粒子数量、惯性权重、学习因子等。
为了获得更好的优化效果,可以通过参数调节、改进算法等方式进行优化。
总之,基于粒子群算法的PID控制器优化设计能够帮助改进传统PID 控制器的性能,提高系统的稳定性和控制精度。
这种方法具有广泛的应用前景,可在各个领域的控制问题中发挥作用。
粒子群算法优化模糊 pid

粒子群算法优化模糊 pid
模糊 PID 控制器是一种基于模糊逻辑的 PID 控制器,它结合了传统 PID 控制器和模糊控制的优点,可以更好地适应复杂的非线性系统。
粒子群算法是一种启发式全局优化算法,通过粒子间的合作与竞争来寻找最优解。
在模糊 PID 控制器的设计中,PID 参数的选择对控制器的性能有着重要的影响。
传统的 PID 参数整定方法往往需要依赖经验或者试错,而粒子群算法可以用于优化模糊 PID 控制器的参数,以提高控制器的性能。
具体来说,可以将模糊 PID 控制器的参数作为粒子群算法的搜索空间,通过粒子群算法的迭代来寻找最优的参数组合。
在粒子群算法中,每个粒子代表一个候选的参数组合,粒子的位置和速度可以根据粒子的历史最优位置和全局最优位置进行更新。
在优化过程中,可以通过模糊规则来调整 PID 参数的取值范围,以保证控制器的稳定性和鲁棒性。
同时,可以使用适应度函数来评价控制器的性能,以指导粒子群算法的搜索方向。
总的来说,使用粒子群算法优化模糊 PID 控制器的参数可以提高控制器的性能和自适应能力,是一种有效的方法。
基于改进粒子群算法的移相全桥模糊PID控制

基于改进粒子群算法的移相全桥模糊PID控制赵凯;曾涛【期刊名称】《厦门大学学报(自然科学版)》【年(卷),期】2024(63)2【摘要】[目的]为了得到具有良好性能指标的移相全桥(PSFB)控制方案,本文提出了基于改进粒子群算法(IPSO)寻优的模糊比例积分微分(PID)控制方法.[方法]在PSFB的小信号模型基础上,使用模糊控制器改善PID的参数,随后应用自适应惯性权重和压缩因子法优化PSO的全局特性和收敛性,进而计算模糊控制器的比例因子和量化因子,以提高系统的控制效果.在Simulink仿真环境中分别使用常规PID、模糊PID、IPSO优化模糊PID三种方式对移相全桥拓扑进行仿真,并设计了一台100 W的样机,验证所提控制策略的有效性.[结果]仿真结果中,IPSO优化的模糊PID控制相对于常规PID和模糊PID,其调节时间、超调量、稳态误差分别下降79.6%、99.4%、42.9%和40.2%、20%、87.5%;基于TMS320F28034硬件的实验结果中,IPSO优化的模糊比例积分(PI)控制相对于增量式PI和模糊PI,其调节时间、超调量、稳态误差、电压输出纹波分别下降52.4%、56.4%、46.7%、75.0%和12.1%、37.4%、20%、66.7%.[结论]将IPSO应用于PSFB的PID控制,相对于常规PID和模糊PID,具有更高的控制精度、更快的收敛速度、更强的抗干扰能力.【总页数】12页(P259-270)【作者】赵凯;曾涛【作者单位】厦门大学航空航天学院【正文语种】中文【中图分类】TM46【相关文献】1.移相全桥动态模型及自适应模糊PID控制器设计2.模糊自适应PID控制的移相全桥变换器设计与仿真3.模糊PID复合控制的移相全桥ZVS PWM变换器设计研究4.遗传算法优化的移相全桥变换器模糊PID控制因版权原因,仅展示原文概要,查看原文内容请购买。
粒子群算法自寻优模糊PID控制器设计

粒子群算法自寻优模糊PID控制器设计杨洋;张秋菊【摘要】针对常规模糊PID控制器的控制规则和控制参数固定不变而降低了系统自适应能力的问题,提出了一种基于粒子群算法寻优的方法对模糊控制器进行寻优.通过改变模糊控制器的3个尺度系数(Ke、Kec、Ku),可以改变不同阶段系统的误差以及误差变化率所对应的权重.以ITAE指标作为粒子群寻优的目标函数,可以保证系统的快速响应性、超调量、调节时间以及稳态误差等.通过在Matlab下建立交流永磁同步电机(PMSM)模型,对其仿真分析表明:粒子群算法自寻优模糊PID控制器有着更优越的控制性能.【期刊名称】《机械制造与自动化》【年(卷),期】2018(047)003【总页数】4页(P201-204)【关键词】模糊PID控制;粒子群算法;参数自寻优【作者】杨洋;张秋菊【作者单位】江南大学机械工程学院,江苏无锡214122;江苏省食品先进制造装备技术重点实验室,江苏无锡214122;江南大学机械工程学院,江苏无锡214122;江苏省食品先进制造装备技术重点实验室,江苏无锡214122【正文语种】中文【中图分类】TP2710 引言近年来,随着“工业4.0”的提出,工业伺服控制领域向着智能化方向发展。
部分厂家已经将参数自寻优自适应功能作为开发新一代伺服控制器的必备功能[1]。
目前,市场上的伺服控制器通常采用PID控制方法,PID控制器的参数整定问题又是伺服控制的难点问题[2-4]。
不少学者将智能控制与传统的PID控制方法相结合来实现控制系统的智能化,使之具有自寻优、自适应的能力。
目前,智能控制策略主要是基于模糊控制理论、神经网络控制以及遗传算法理论等[5-7]。
模糊控制理论诞生以来应用于许多领域,取得了良好的控制效果[8]。
自从1974年第一台模糊控制器[9]诞生以来,人们对模糊控制器投入了极大的研究热情,并已经得到了广泛的研究和应用[10]。
然而模糊PID控制也有其缺点,它过分地依赖于专家经验而无法满足特殊条件下的抗干扰能力。
粒子群算法优化pid参数

粒子群算法(Particle Swarm Optimization, PSO)是一种基于群体智能的优化算法,可以用于求解非线性、非凸、多峰和高维等优化问题。
在PID 控制器参数优化中,PSO 算法可以用来寻找最优的PID 参数组合,以达到最优的控制性能。
下面是PSO 算法用于PID 控制器参数优化的一般步骤:
1. 初始化:随机生成粒子群的位置和速度,初始化全局最优解和局部最优解。
2. 计算适应度:对于每一个粒子,计算其适应度值,即PID 控制器的控制效果。
3. 更新位置和速度:根据粒子的当前位置和速度,更新其位置和速度,以使其适应度值最大。
4. 检查个体最优解和全局最优解:检查每个粒子的适应度值是否有更新,并更新全局最优解。
5. 判断终止条件:判断是否满足终止条件,例如最大迭代次数或者适应度值达到预设阈值。
6. 输出结果:输出最终得到的PID 参数组合,并应用到实际控制系统中。
在实际应用中,PSO 算法可以通过不断迭代优化PID 控制器的参数,以达到最优的控制效果。
同时,可以通过调整粒子群的初始位置和速度、权重系数、停止准则等参数,进一步提高算法的收敛速度和精度。
基于粒子群算法PSO的PID控制器优化设计资料

优的参数。由图6可知,对于不稳定的被控对象,由PSO设计出的最优PID控 制器使得Kp、Ki、Kd的选择合理,很好地控制了被控对象。
结果分析
图4 PSO优化PID得到的Kp、Ki、Kd变化曲线
结果分析
图5 PSO优化PID得到的性能指ห้องสมุดไป่ตู้ITAE变化曲线
结果分析
图6 PSO优化PID得到的最优参数对应的单位阶跃响应曲线
粒子群算法实现
根据粒子群算法的基本原理,粒子在搜索空间中的速度和位置根据 以下公式确定:
x 其中, 表示粒子群的位置;表示粒子群的速度;为惯性因子;
C1、C2为加速常数;r1、r2为[0,1]区间的随机数;Pt是粒子迄今为止搜 素到的最优为止;Gt是整个粒子群迄今为止搜索到的最优位置。
粒子群算法实现
图3 PSO优化PID的过程示意图
设计优化过程
图3中,粒子群算法与Smiulink模型之间连接的桥梁是粒子(PID控 制器参数)和该粒子对应的适应值(即控制系统的性能指标)。
优化过程如下:PSO产生粒子群(可以是初始化粒子群,也可以是更新 后的粒子群),将该粒子群中的粒子依次赋值给PID控制器的参数Kp、 ki、Kd,然后运行控制系统的Simulink模型,得到该组参数对应的性能 指标,该性能指标传递到PSO中作为该粒子的适应值,最后判断是否可 以退出算法。
图2 Simulink环境下的PID控制系统模型
解题思路及步骤
优化设计过程 利用粒子群算法对PID控制器的参数进行优化设计,其过程如图3所示。
粒子群算法(PSO)
粒子群优化策略在AGV模糊PID控制中的效果
粒子群优化策略在AGV模糊PID 控制中的效果粒子群优化策略在AGV模糊PID控制中的效果粒子群优化(Particle Swarm Optimization,PSO)是一种模拟自然界群体行为的启发式优化算法,其原理基于鸟群觅食、鱼群觅食等现象。
在自动引导车(Automated Guided Vehicle,AGV)模糊PID控制中,PSO策略可以有效地寻找最优的PID参数,提高AGV的控制性能。
下面是使用PSO策略在AGV模糊PID控制中的步骤:1. 定义优化目标:首先需要明确优化目标,比如AGV的位置控制误差最小化、速度响应时间最短化等。
这会成为PSO策略中的适应度函数。
2. 初始化粒子群:定义一群粒子,每个粒子代表PID参数的一个解。
初始时,粒子的位置和速度随机初始化,并根据适应度函数计算适应度值。
3. 更新粒子位置和速度:根据粒子当前位置和速度,以及全局最优和个体最优位置的信息,计算新的速度和位置。
速度更新包括两个部分:个体认知(向个体最优位置靠近)和群体认知(向全局最优位置靠近)。
位置更新则是根据新的速度计算得到。
4. 评估适应度值:对于更新后的每个粒子,计算其新的适应度值。
5. 更新全局最优位置:对于每个粒子,根据其新的适应度值和当前最优值进行比较,更新全局最优位置。
6. 停止条件判断:如果达到了停止条件(如迭代次数达到设定值或适应度值已经收敛),则停止迭代过程;否则返回第3步。
7. 输出最优解:当迭代结束后,输出全局最优位置所对应的PID参数,作为AGV的控制参数。
通过上述步骤,PSO策略可以找到一个较优的PID参数,从而提高AGV的控制性能。
相较于传统的试错方法,PSO策略可以更快地找到最优解,并且具有较好的全局搜索能力。
然而,PSO策略也存在一些问题。
例如,容易陷入局部最优点而无法找到全局最优解,需要适当调整参数以增加搜索空间。
此外,在使用PSO策略时,需要谨慎选择适应度函数和停止条件,以免影响优化效果。
粒子群优化pid算法
粒子群优化pid算法粒子群优化(PSO)是一种基于演化算法和群体智能的优化算法。
它的目标是在搜索空间中找到最优解,以使适应度函数最小化或最大化。
PID控制算法是一种用于控制系统的经典反馈控制算法。
在本文中,我们将介绍如何结合粒子群优化和PID控制算法来实现自动控制系统的优化。
PSO算法基本原理PSO算法最初是由Eberhart和Kennedy在1995年提出的。
它基于群体智能的思想,模拟鸟群或鱼群在搜索食物或迁徙的行为。
在搜索过程中,每个个体都受到自己和群体中其他个体的影响,通过不断地协作和调整,最终找到最优解。
PSO算法中的每个个体称为“粒子”,它具有自身的位置和速度。
在每次迭代中,每个粒子都会根据自身的位置和速度,以及其他粒子的位置和速度,更新自己的速度和位置。
更新公式如下:V(i,j)=ω*V(i,j)+c1*r1*(Pbest(j)-X(i,j))+c2*r2*(Gbest(j)-X(i,j))X(i,j)=X(i,j)+V(i,j)其中,V(i,j)是粒子i在第j个维度上的速度,X(i,j)是粒子i在第j个维度上的位置,ω是惯性权重,决定了粒子保持原有速度的比例。
c1和c2分别是自我认知因子和社会认知因子,r1和r2是0到1之间的随机数,表示个体本身和群体的影响程度。
Pbest(j)是粒子i在第j个维度上的最佳位置,Gbest(j)是全局最佳位置,表示整个群体在第j个维度上的最佳位置。
在PSO算法中,评估粒子适应度的函数称为目标函数。
PSO算法的最终目标是找到适应度函数的全局最优解。
PID控制算法是一种经典的反馈控制算法,广泛应用于工业控制、机器人等自动控制系统中。
PID控制算法由比例、积分和微分三个部分组成:u(t)=Kp*e(t)+Ki* ∫e(t)dt+Kd*de(t)/dt其中,u(t)表示被控对象的输出,Kp、Ki、Kd分别表示比例、积分、微分系数,e(t)为被控对象输出与期望值之间的误差,de(t)/dt表示误差的变化率。
基于粒子群算法的控制系统PID参数优化设计
基于粒子群算法的控制系统PID 参数优化设计摘 要本文主要研究基于粒子群算法控制系统PID 参数优化设计方法以及对PID 控制的改进。
PID 参数的寻优方法有很多种,各种方法的都有各自的特点,应按实际的系统特点选择适当的方法。
本文采用粒子群算法进行参数优化,主要做了如下工作:其一,选择控制系统的目标函数,本控制系统选用时间乘以误差的绝对值,通过对控制系统的逐步仿真,对结果进行分析。
由于选取的这个目标函数的解析式不能直接写出,故采用逐步仿真来实现;其二,本文先采用工程上的整定方法(临界比例度法)粗略的确定其初始的三个参数p K ,i K ,d K ,再利用粒子群算法进行寻优,得到更好的PID 参数;其三,采用SIMULINK 的仿真工具对PID 参数优化系统进行仿真,得出系统的响应曲线。
从中发现它的性能指标,都比原来有了很大的改进。
因此,采用粒子群算法的优越性是显而易见的。
关键词 目标函数;PID 参数;粒子群算法;优化设计;SIMULINKOptimal design of PID parameter of the control system based on Particle Swarm OptimizationAbstractThe main purpose of this paper is to study the optimal design of PID parameter of the control system based on Particle Swarm Optimization and find a way to improve the PID control. There are a lot of methods of optimization for the parameters of PID, and each of them has its own characteristics. The proper methods need to be selected according to the actual characteristics of the system. In this paper we adopt the Particle Swarm Optimization to tune the parameters. To finish it, the following tasks should be done. First, select the target function of the control system. The target function of the control system should be chosen as the absolute value of the error multiplied by time. Then we simulate the control system gradually, and analyze the results of the process. Because the solution of the target function cannot be worked out directly, this design adopts simulation gradually. Second, this paper adopts the engineering method (the critical ratio method) to determine its initial parameters p K ,i K ,d K , then uses the Particle Swarm Optimization to get a series better PID parameters. Third, this paper uses the tool of SIMULINK to optimize the parameters of PID and gets the response curve of the system. By contrast with the two response curves, it is clearly that the performance has improved a lot than the former one. Therefore, it is obviously to find the advantages in using the Particle Swarm Optimization.Key word : target function; PID parameters; Particle Swarm Optimization; optimal design; SIMULINK目录摘要 ...................................................................................................... 错误!未定义书签。
粒子群算法优化模糊pid
本文选取常见的二阶惯性加纯滞后环节,传递函数为: )1)(1(21++=-s T s T e G ss τ在这里,3.0,2,,121===τT T PID 参数取为2,1,2===i d p K K K本设计中的模糊控制器采用两输入(e, ec),三输出(P,I,D)的形式来调整PID 参数。
e 的论域为[-3,3],ec 的论域为[-3,3]。
推理机使用{,,,,,,}NB NM NS O PS PM PB ,表示{负大,负中,负小,零,正小,正中,正大}为了可以调节尽可能多的系统,此控制器选定在负边界处与正边界处分别选用平滑连续的Z 型隶属度函数与S 型隶属度函数,在中间部分采用灵敏度较强的三角形隶属度函数。
规则表如下图所示:(1)主程序:clearclc%% 参数设置w = 0、6; % 惯性因子c1 = 1、414; % 加速常数c2 = 1、623; % 加速常数Dim = 5; % 维数SwarmSize = 100; % 粒子群规模ObjFun = @PSO_PID; % 待优化函数句柄MaxIter = 100; % 最大迭代次数MinFit = 0、01; % 最小适应值Vmax = 2;Vmin =-2;Ub = [20 50 1 1 1];Lb = [0 0 0 0 0];%% 粒子群初始化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);for i=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) )for j=1:SwarmSize% 速度更新VStep(j,:) = w*VStep(j,:) + c1*rand*(gbest(j,:) - Swarm(j,:)) + c2*rand*(zbest - Swarm(j,:));if VStep(j,:)>Vmax, VStep(j,:)=Vmax; endif VStep(j,:)<Vmin, VStep(j,:)=Vmin; end% 位置更新Swarm(j,:)=Swarm(j,:)+VStep(j,:);for k=1:Dimif Swarm(j,k)>Ub(k), Swarm(j,k)=Ub(k); endif Swarm(j,k)<Lb(k), Swarm(j,k)=Lb(k); endend% 适应值fSwarm(j,:) = feval(ObjFun,Swarm(j,:));% 个体最优更新if fSwarm(j) < fgbest(j)gbest(j,:) = Swarm(j,:);fgbest(j) = fSwarm(j);end% 群体最优更新if fSwarm(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(1) % 绘制性能指标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)hold onplot(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)hold onplot(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)hold ontitle('Kd 优化曲线','fontsize',18);xlabel('迭代次数','fontsize',18);ylabel('参数值','fontsize',18); set(gca,'Fontsize',18);legend('Kd',1);clearclc(2)simulnik与算法结合程序function z=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 仿真图:实验结果:8446.8,1,20,15====ITAE K K K d i p ,波形如下图所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文选取常见的二阶惯性加纯滞后环节,传递函数为:
)1)(1(21++=-s T s T e G s
s τ
在这里,3.0,2,,121===τT T PID 参数取为2,1,2===i d p K K K
本设计中的模糊控制器采用两输入(e, ec),三输出(P,I,D)的形式来调整PID 参数。
e 的论域为[-3,3],ec 的论域为[-3,3]。
推理机使用
{,,,,,,}NB NM NS O PS PM PB ,表示{负大,负中,负小,零,正小,正中,正大}为了可以调节尽可能多的系统,此控制器选定在负边界处和正边界处分别选用平滑连续的Z 型隶属度函数和S 型隶属度函数,在中间部分采用灵敏度较强的三角形隶属度函数。
规则表如下图所示:
(1)主程序:
clear
clc
%% 参数设置
w = 0.6; % 惯性因子
c1 = 1.414; % 加速常数
c2 = 1.623; % 加速常数
Dim = 5; % 维数
SwarmSize = 100; % 粒子群规模
ObjFun = @PSO_PID; % 待优化函数句柄
MaxIter = 100; % 最大迭代次数
MinFit = 0.01; % 最小适应值
Vmax = 2;
Vmin =-2;
Ub = [20 50 1 1 1];
Lb = [0 0 0 0 0];
%% 粒子群初始化
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);
for i=1:SwarmSize
fSwarm(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) )
for j=1:SwarmSize
% 速度更新
VStep(j,:) = w*VStep(j,:) + c1*rand*(gbest(j,:) - Swarm(j,:)) + c2*rand*(zbest -Swarm(j,:));
if VStep(j,:)>Vmax, VStep(j,:)=Vmax; end
if VStep(j,:)<Vmin, VStep(j,:)=Vmin; end
% 位置更新
Swarm(j,:)=Swarm(j,:)+VStep(j,:);
for k=1:Dim
if Swarm(j,k)>Ub(k), Swarm(j,k)=Ub(k); end
if Swarm(j,k)<Lb(k), Swarm(j,k)=Lb(k); end
end
% 适应值
fSwarm(j,:) = feval(ObjFun,Swarm(j,:));
% 个体最优更新
if fSwarm(j) < fgbest(j)
gbest(j,:) = Swarm(j,:);
fgbest(j) = fSwarm(j);
end
% 群体最优更新
if fSwarm(j) < fzbest
zbest = Swarm(j,:);
fzbest = fSwarm(j);
end
end
iter = 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(1) % 绘制性能指标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)
hold on
plot(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)
hold on
plot(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)
hold on
title('Kd 优化曲线','fontsize',18);
xlabel('迭代次数','fontsize',18);ylabel('参数值','fontsize',18); set(gca,'Fontsize',18);
legend('Kd',1);
clear
clc
(2)simulnik与算法结合程序
function z=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 仿真图:
实验结果:8446.8,1,20,15====ITAE K K K d i p ,波形如下图所示。
实验结论:本次设计使用的是pid ,粒子群算法模糊pid ,粒子群算法模糊smith pid 相结合,仿真波形如下图所示。
黄色的是pid 波形,红色的是粒子群算法模糊pid ,蓝色的是粒子群算法模糊smith pid 。
从图中明显的可以看出加入粒子群算法模糊控制后波形超调量减少,调节时间缩短;在加入smith 后波形有了明显的改善。