APP下载

基于改进粒子群算法的PID参数优化

2021-06-02许森林

农业装备与车辆工程 2021年5期
关键词:适应度偏差种群

许森林

(200093上海市 上海理工大学 机械工程学院)

0 引言

PID控制器结构简单、安全可靠,而且PID算法相比于其他工控算法的鲁棒性好[1],算法易于实现,所以在工控行业深受控制工程师的喜爱。传统的PID控制相对于一些高级的控制还存在着一些不足之处,例如:精度比较差、非线性运动造成的误差。PID控制的难点在于参数的调节,因此,我们引入智能算法来对PID参数进行优化。随着科学技术的发展,大量智能群体算法应用于工业控制领域。例如:基于BP神经网络和蝙蝠算法对PID参数进行调参[2],遗传算法对PID控制参数整定[3],以确保控制系统稳定运行。

Eberhart博士与Kennedy博士在1995年首次提出了模仿鸟类捕食行为的群体智能算法-粒子群算法[4]。利用群体在三维空间内逐步寻找最优解,对于非线性函数多值问题表现特别突出,PSO算法理论成熟,算法简单,全局搜索能力强。廖玮霖、程杉[5]等在标准的粒子群算法的基础上引入多策略融合,解决了粒子容易造成局部最优。谷晓琳、黄明[6]等人在解决空间多维问题上,基于标准的粒子群加入惯性权重利于逻辑回归算法动态调节权重的值,以防粒子陷入局部最优。本文在此基础上提出了一种适合在高维复杂空间求解的新型的粒子群算法。

为了提高在高维复杂空间求解计算的效率,本文在标准的粒子群算法的基础上引入小生境思想和计算机集群技术,提出了一种分布式的粒子群算法。初始化的粒子种群在不同的区间采用不同的计算机进行计算,把各个计算机上求得的解汇总到主计算机上,从而计算出全局最优解,加快了算法收敛速度。这种求解过程就形成了本文改进的粒子群算法。实验结果表明:本文使用的算法与标准的PSO相比在求解性能和精度上表现更出色,在求解高维复杂空间优化问题上有一定的参考意义。

1 数控机床伺服系统数学模型

数控机床各个运动轴构成机床整个伺服系统,进给轴的伺服系统能够很清晰反应电机受控的运动指令和进给轴的实际位置变化,提高电机的运行性能以及位置的精度,实际上也是提高了数控机床的精度,对于工业的发展具有重要意义。

被控对象是永磁旋转伺服电机、惯性负载、滚珠丝杠为传递轴构成一个被控系统。试验台需要满足不同要求的直线运动,例如:匀速直线运动,匀加速直线运动,变速运动,正弦函数指令运动。可以将这个系统简化为二质量系统[7]。

动力学和电学方程

根据矢量变换原理和和磁场定向规则,三相交流电在电机旋转运动的过程中产生了一个旋转磁场,两项交流电在正交绕组时,也会产生磁场,依据矢量变换原理,上面的状态可以得出数控伺服系统的框图,见图1。

图1 数控伺服系统的框图Fig.1 Block diagram of CNC servo system

2 PID控制器原理

PID控制是一种基于反馈控制的控制方法。这种控制方法是不断将反馈的输出信号与实际的命令信息进行对比,如果出现了误差e(s),此时,PID控制系统就会产生反馈信号,发送一个控制信号,使得偏差不断减小,持续发送指令信号给被控设备,使其偏差减小,达到输出量与输入指令一致。

在PID控制系统中,控制器的设计对系统的各种伺服状态起到了决定性作用,影响被控设备工作的整体性能。为了被控设备及控制系统的稳定性,实现对运动轨迹规划的精准执行,必须对控制系统进行研究。

目前常用的PID算法是一种易于实现、稳定性高的控制方式。其典型的组成环节如下:

(1)比例控制

比例控制对系统的影响会改变信号输出的增益,对信号的相位不会造成延迟等影响。如图2所示为比例控制的结构示意图。

图2 比例控制Fig.2 Proportional control

当系统产生偏差之后,比例环节就会对系统产生控制作用,偏差越大,比例环节的作用能力就越强,从而减小系统的偏差,达到理想的输入。比例环节的KP过小则很难起到作用;但过大的KP会超出系统的稳定性裕度,使得系统不稳定。因此,为了使系统保持稳定,需要考虑系统超调量来约束比例增益KP的取值。同时,当系统仅在比例控制下时会产生稳态误差,这就需要引入其他环节与比例环节配合进行系统的控制。

式中:u(t)——控制信号;KP——比例增益;e(t)——误差信号;r(t)——参考信号;y(t)——反馈信号。

(2)积分控制

偏差信号的积分与积分控制的作用力与成正比,通过引入积分项能消除被控设备与指令的误差,如图3所示。

式中:Ti——积分时间常数;Ki——积分增益。

图3 积分控制Fig.3 Integral control

理想情况下,当系统产生偏差时,即使误差在偏小的情况下,积分项也可以随着时间而增长,因此,积分项就可以调整控制器,直到稳态误差的减小为0。积分环节能够有效地消除外力和比例控制带来的余差、超调和振荡等稳态误差,但同时也会产生使系统的动态响应变慢等缺点。

(3)微分控制

微分控制如图4所示。其对于系统的稳态不起作用,只影响系统的动态调节过程,在系统中引入微分控制可以显著提高控制系统的稳定性与快速响应能力。

式中:Td——微分时间常数;Kd——微分增益。

图4 微分控制Fig.4 Differential control

对于微分控制,在输入量信号与输出量信号的偏差为0时也可以起到作用,因为微分控制能够预测偏差的变化,具有超前控制的能力。微分环节的超前反应可以对未来的输入与输出的偏差进行估计,从而提高系统的动态表现。

PID对偏差e(t)进行比例、微分控制和积分控制,然后对其组合形成每个伺服周期的控制量u(t),从而使输出达到理想的响应[8]。PID控制的时域微分方程为

为了实际中对PID算法的一般需要,对PID算法进行离散化,离散化后的PID算法公式为

式中:T——采样时间间隔;e(x)——X时刻的系统偏差量。

3 标准PSO算法原理

粒子群算法的搜索过程和鸟类的捕食行为类似,粒子代表着鸟类,搜索范围就是鸟类搜寻食物的区域,在这个区域内有一块食物,即是全局最优解。一开始鸟群中的鸟作为单独的个体分散在这一区域中,有的鸟距离食物较近就会朝着食物飞去,由于鸟群的集体行为,其他鸟群也会跟着这个鸟的方向飞,搜寻这个鸟的附近区域,直到找到这块食物。

粒子群算法(PSO)是通过粒子的不同位置分布与迭代对目标进行优化的智能算法。设解空间为S维的搜索空间,每个粒子可看作一个向量,第i个粒子的位置可表达为,在解空间的飞行速度可以表达为,其中,m为粒子种群个数。粒子每次迭代会根据其当前的适应度产生局部极值和全体极值,然后粒子会依赖当前自身与种群的历史最优解去更新粒子新的速度与位置。设在S维的搜索空间,第i个粒子搜索过程中的最佳位置为种群的最佳位置为则粒子的更新公式如下:

式中:i∈[1,m];s ∈[1,S];c1,c2——非负的更新系数;r1,r2——没有依赖关系的独立伪随机数。

种群中的粒子在解空间中任何一个所处的位置均可以看成当前所求优化问题的潜在解。而粒子极值的求解通过适应度函数来确定,一般设适应度函数为优化目标函数。设f(x)为适应度函数,判断当前的粒子i是不是为解空间中的最佳位置可表达为

PSO算法的流程如图5所示,具体步骤如下:

图5 PSO算法流程图Fig.5 PSO algorithm flowchart

(1)根据实际问题的搜索范围和参数个数确定粒子的维度和个数,在搜索范围内随机初始化粒子群的位置和速度,并设定种群的初始局部最优值和全局最优值。

(2)适应度函数是用来确定每个粒子的个体适应度值。将每个粒子的历史记录中最优的值作为粒子当前的个体极值;将所有粒子的历史最优适应度值作为种群的群体极值,并记录对应的位置信息。

(3)由式(15)、式(16)计算并更新每个粒子的位置和速度信息,并根据限制范围保证粒子不超出搜索界限。

(4)检验最优值是否满足结束条件或者是否等于最大进化代数,如果等于最大迭代次数则停止迭代并输出最终结果,否则继续步骤(2)。

4 改进的PSO算法

从基本的PSO算法的优化机制分析可知,标准PSO算法的初始化种群的优劣会直接影响算法的优化结果。标准的PSO算法是随机生成的初始种群,在迭代的过程中极其容易造成局部最优值。如果标准PSO算法的初始化种群过于分散,有可能在迭代优化的过程中造成收敛过慢、严重的会造成收敛消失。因此,本文引入小生境技术和分布式原理[9],在PSO算法机制中对初始种群的各个区间段进行分段式同时求解,分别求取不同阶段上的局部最优解,将所有的解汇聚到一起,从而找到全局最优解。DNPSO按区间分布式求解示意图如图6所示。

图6 DNPSO分布式求解示意图Fig.6 Schematic diagram of DNPSO algorithm distributed solution

PSO优化算法缺乏速度的动态调节,对复杂问题的搜索中很难获得很好的效果。种群数量和初始化的随机性分布对PSO算法的影响较大,粒子数量的增加可以提升算法搜索的准确性,提升效果非常明显,但是过多的粒子数量会引起计算机计算量的增加,使得计算时间较长;而如果粒子的数量设置得较少,虽然能减少计算的时间,但是会使得算法中粒子的多样性大大减少,从而极有可能丢失最优极值点。Shi Y和Eerhart[10]引入了惯性权重系数ω加快粒子的求解速度,因此粒子的更新公式可以表达为

式中:ω——非负的惯性权重系数,惯性权重可以调节粒子的飞行速度,从而加快算法的种群搜索能力与个体搜索能力。PSO算法在粒子迭代中,惯性权重系数可以调整当前粒子求优的速度与前一次搜索的关系。但是,若ω的值太小,会导致算法优化能力降低,从而使粒子提前陷入局部最优解,从而使最终的优化结果僵化。

为了更好地求出全局最优解,本文采用随机的动态权重ω的方法对粒子群算法进行改进[11]。ω的表达式为:

式中:N(0,1)——符合标准正态分布的随机数;rand(0,1)——位于0到1之间的随机数。若ω为恒定值,会导致粒子不收敛,但是如果将ω设置为随机分布,那么就可以利用动态地改变ω值,使得上次迭代的速率对当前的种群内粒子的优化搜寻速度形成动态的影响,再结合小生境思想,对各个阶段求得最优解,可以有效避免陷入局部最优解。

DNPSO的算法具体进化步骤如下:

Step1:初始化算法的基本参数,定义集群的worker数量、各变量的搜索范围和扩展步长。

Step2:根据worker的数量分配粒子的个数,再将各个变量的搜索范围分成等长的区段,每个worker在各个变量中随机但不重复地选择一个区段并组合,并在这些区段范围内初始化粒子的位置和速度。

Step3:根据式(15)和式(16)在每个worker中独立地执行粒子群算法,返回局部最优位置和适应度至client。

Step4:分别求解对应区间段上的局部最优解,最后把所有局部最优解汇总到主机进行全局最优解的求解,并以该位置为中心减去和加上半个搜索步长,创建新的搜索区段加入到下一次的搜索中。

Step5:单独分配一个worker去搜索扩展的区间,然后根据剩余的worker数量重新分段各个变量的搜索范围,并初始化粒子后分配给空闲的worker。

Step6:返回至step3直到满足算法停止条件,输出结果。

5 改进粒子群算法的PID参数优化和仿真研究

先建立MATLAB仿真模型,用来验证基于DNPS算法PID控制器的有效性。

初始化粒子种群为30;惯性权重w=0.9,学习因子 c1,c2取2;最大迭代次数为100代。采用不同的算法分别PID控制器参数优化以及阶跃响应。实验结果如图7和图8所示。

图7 PID控制器参数优化曲线Fig.7 PID parameter optimization curve

从图7作图 DNPSO优化迭代次数图可以看 出PID参数优化结果 为KP=4.067;Ki=0;Kd=19.279 6。从图8阶跃响应仿真曲线上可以看出,应用改进的PSO算法的控制器与传统的PSO算法对比,被控对象有很明显的减少系统的响应。

图8 阶跃响应仿真曲线Fig.8 Step response simulation curve

结合数控伺服系统的数学模型进一步研究DNPSO控制器的性能,建立二质量伺服系统的仿真模型。采样时间为0.001 s,输入正弦信号指令,速度环中外加干扰Tf摩擦模型。利用改进的PSO算法优化得PID控制器对伺服控制系统进行正弦信号位置跟踪,并与传统的PSO算法优化的PID控制器进行对比分析仿真。图9为基于改进PSO优化下正弦信号位置跟踪。图10为基于标准PSO优化下正弦信号位置跟踪。

正弦信号为

Tf摩擦模型为

从图9和图10仿真分析结果可以明显看出,在摩擦模型时,基于改进的PSO算法的PID控制器在正弦信号下位移的跟踪与理想位置偏差非常小,而由标准PSO算法优化过后被控对象的位移跟踪与理论状态的位移有较大偏差。此外,在优化时间上,本仿真采用1台主机、4台分机分布式对伺服系统PID控制器参数进行优化,采用改进的粒子群算法能够避免粒子陷入局部最优解,从而节约大量优化时间。

图9 基于改进PSO优化下正弦信号位置跟踪Fig.9 Position tracking of sinusoidal signal based on DNPSO

图10 基于标准PSO优化下正弦信号位置跟踪Fig.10 Position tracking of sinusoidal signal based on PSO

6 结论

本文通过引入小生境思想提出了一种对初始化后的种群按照区间进行分段的方法,同时引入了动态加权因子来对标准POS算法进行改进。MATLAB仿真实验图9和图10表明,本文所提出的改进的粒子群能够很有效地精确获取全局最优值,减少了优化迭代的时间,对整个工控行业具有重要的参考价值。

猜你喜欢

适应度偏差种群
改进的自适应复制、交叉和突变遗传算法
山西省发现刺五加种群分布
50种认知性偏差
如何走出文章立意偏差的误区
“最大持续产量”原理分析
真相
由种群增长率反向分析种群数量的变化
启发式搜索算法进行乐曲编辑的基本原理分析
基于人群搜索算法的上市公司的Z—Score模型财务预警研究
机械装配偏差源及其偏差传递机理研究