一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种粒子群算法对PID参数的优化方法

2022-10-26 05:38:42 来源:中国专利 TAG:

一种粒子群算法对pid参数的优化方法
技术领域
1.本发明属于自动控制技术,特指一种粒子群算法对pid参数的优化方法。


背景技术:

2.pid控制是最早的经典控制技术,是工业过程控制应用最广泛的技术之一。pid控制以其结构简单、技术成熟、鲁棒性好、在实际应用中易于优化等优点,在化工、电力、机械等工业控制过程中得到了广泛的应用。虽然人们优化pid参数已经积累了大量的经验,但是对于一些非线性、大滞后的控制系统,控制器参数无法优化到最佳状态,控制系统无法取得良好的控制效果,影响工业生产过程的安全性和稳定性。
3.因此,为了提高pid控制器的性能,智能算法被广泛地应用于pid参数的优化中,智能算法包括遗传算法、粒子群算法、人群搜索算法、模拟退火算法等,其中,粒子群优化算法(pso)是基于群体智能的优化算法,通过粒子之间的相互合作、信息共享与相互竞争机制搜索优化问题的最优解,它以其实现容易、收敛快在实际问题应用中得到了广泛应用。
4.然而现有技术不够完善,粒子群优化算法在收敛的过程中,粒子群在初期时活动范围较大且较为杂乱,这就导致了初期时全局寻优能力较差的问题,而所有粒子在后期时趋于同一化,算法收敛到一定精度时无法继续优化,易于陷入局部最优的问题。


技术实现要素:

5.为克服现有技术的不足及存在的问题,本发明提供一种粒子群算法对pid参数的优化方法。
6.为实现上述目的,本发明采用如下技术方案:
7.一种粒子群算法对pid参数的优化方法,pid控制器采用粒子群优化算法对pid参数进行优化,具体包括如下步骤:
8.s1:初始化粒子群;
9.s2:将pid参数赋值为粒子的位置;
10.s3:采用如下适应度函数计算得到粒子的适应度值:
[0011][0012]
式中,f为粒子的适应度值,e(t)为pid控制器输出的pid参数和传感器检测到的状态数据之间的误差,u(t)为控制值,w1为第一惯性因子,w2为第二惯性因子,w3为第三惯性因子,且w1∈[0,1],w2∈[0,1],w3>>w1,
[0013]
根据粒子的适应度值寻找得到粒子的个体最优位置和粒子的群体最优位置;
[0014]
s4:采用如下公式更新得到粒子的位置和速度:
[0015][0016]
式中,v[n]为当前时刻的粒子速度,v[n 1]为下一时刻的粒子速度,x[n]为当前时
刻的粒子位置,x[n 1]是下一时刻的粒子位置,w为惯性因子,c1为自身认知因子,c2为社会认知因子,rand为介于0-1之间的自定义数,pbest[n]为粒子的个体最优位置,gbest[n]为粒子的群体最优位置;
[0017]
s5:判断s4的迭代次数是否小于最大迭代次数的三分之一值,若是则采用如下公式更新得到惯性因子:
[0018][0019]
式中,w
max
为惯性因子的最大值,w
min
为惯性因子的最小值,t为s4的迭代次数,t
max
为最大迭代次数,以及采用如下公式更新得到粒子的群体最优位置:
[0020]
gbest[n]=gbest[n] c2×
rand
×
|gbest[n]-gbest[n 1]|
ꢀꢀꢀ
(3),
[0021]
式中,gbest[n 1]为下一时刻粒子的群体最优位置,将更新得到的惯性因子和粒子的群体最优位置更新公式(1)再继续迭代s4的步骤,若否则进行s6的步骤;
[0022]
s6:判断s4的迭代次数是否不小于最大迭代次数的三分之一值且小于最大迭代次数的三分之二值,若是则采用公式(2)更新得到惯性因子,将更新得到的惯性因子更新公式(1)再继续迭代s4的步骤,若否则进行s7的步骤;
[0023]
s7:判断s4的迭代次数是否不小于最大迭代次数的三分之二值且小于最大迭代次数,若是则采用公式(2)更新得到惯性因子,将更新得到的惯性因子更新公式(1)再继续迭代s4的步骤,若否则将粒子的位置输出为优化后的pid参数。
[0024]
作为优选,所述s1的步骤中,具体包括:
[0025]
初始化粒子群的规模、维度、最大迭代次数、自身认知因子、社会认知因子和粒子速度。
[0026]
作为优选,所述惯性因子的最大值为0.9。
[0027]
作为优选,所述惯性因子的最小值为0.4。
[0028]
本发明相比现有技术突出且有益的技术效果是:
[0029]
(1)在本发明中,公式(2)采用根据s4的迭代次数来调整惯性因子,当粒子群处于迭代初期时,采用基于正弦调整的非线性递减的公式对惯性因子进行调整,惯性因子的变化速率逐渐变小,当粒子群处于迭代中期时,采用余弦调整的非线性递交递减的公式对惯性因子进行调整,惯性因子的变化速率由大到小再变大,当粒子群处于迭代后期时,采用正弦调整的非线性递增公式对惯性因子进行调整,惯性因子的变化速率逐渐变小,从而在整个迭代过程中,粒子群优化算法能够兼顾局部寻优能力和全局寻优能力,也避免了迭代后期发生局部最优解的问题,有利于最终输出的pid参数是全局的最优解,因此本粒子群算法对pid参数的优化方法具有收敛速度快、优化性能好、效率高和控制效果好等优点。
[0030]
(2)将本粒子群算法对pid参数的优化方法应用在pid控制系统上,传感器采集pid
控制系统的状态参数,pid控制根据状态参数生成pid参数,再根据粒子群算法对pid参数的优化方法对pid参数进行优化,优化后的pid参数用于对执行器进行控制,整个控制过程工序简单、技术成熟和鲁棒性好等优点,优化后的pid参数满足实际所要的控制效果,并且还提高了pid控制系统的响应速率、控制精度、稳定性和安全性。
[0031]
(3)粒子群优化算法对pid参数进行优化的过程中,兼顾了前一时刻的群体最优值和后一时刻的群体最优自,采用均值计算的方法,更能够寻找到时序上的群体最优值,因此进一步提高了粒子群优化算法对pid参数的优化性能。
[0032]
(4)在实际测试时,将本粒子群算法对pid参数的优化方法应用在无人机的姿态控制上,可以避免无人机在起飞瞬间由于翻滚角、俯仰角以及航向角偏差等问题导致无人机飞行不稳定的问题,既可以快速地响应无人机的姿态控制,也可以避免繁琐的仿真调节,确保了无人机工作时的姿态稳定性。
附图说明
[0033]
图1是本发明的步骤流程结构示意图;
具体实施方式
[0034]
为了便于本领域技术人员的理解,下面结合附图和具体实施例对本发明作进一步描述。
[0035]
pid控制系统包括pid控制器、执行器和传感器,pid控制器通信连接在执行器上,传感器通信连接在pid控制器上,从而在硬件上pid控制系统构成闭环反馈。在实际控制过程中,传感器检测pid控制系统的状态数据,pid控制系统的状态数据可以包括运动参数、温度参数、湿度参数等等,pid控制器对状态数据进行滤波、去噪和推算得到偏差值,再根据偏差值计算得到pid参数,根据pid参数控制执行器工作。
[0036]
在现有技术中,为了提高pid控制系统的响应效率、精准性等控制效果,pid控制器采用粒子群优化算法(pso)对pid参数进行优化。现有的应用在pid控制器上的粒子群优化算法因其收敛速度快、参数设置少和简单易行等特点,因此得到了广泛地应用。然而现有技术不够完善,粒子群优化算法对pid控制进行持续迭代时容易陷入局部最优解从而降低了输出结果的精度,究其根本,由于局部寻优能力和全局寻优能力并不会随着迭代的次数变化而变化。
[0037]
为了解决上述技术问题,如图所示,本实施例提供了一种粒子群算法对pid参数的优化方法,pid控制器采用粒子群优化算法对pid参数进行优化,具体包括如下步骤:
[0038]
s1:初始化粒子群;
[0039]
上述s1的步骤中,具体包括:初始化粒子群的规模、维度、最大迭代次数、自身认知因子、社会认知因子、粒子速度和搜索位置的范围。
[0040]
s2:将pid参数赋值为粒子群的位置;
[0041]
上述s2的步骤中,将pid参数赋值为粒子群的位置,使得粒子群能够适应pid控制的原理和规律。pid参数包括比例kp、积分ki和微分kd,将比例kp、积分ki和微分kd三个参数赋值为粒子的位置,该粒子的位置即为粒子的起始位置。
[0042]
s3:采用如下适应度函数计算得到粒子的适应度值:
[0043][0044]
式中,f为粒子的适应度值,e(t)为pid控制器输出的pid参数和传感器检测到的状态数据之间的误差,u(t)为控制值,w1为第一惯性因子,w2为第二惯性因子,w3为第三惯性因子,且w1∈[0,1],w2∈[0,1],w3>>w1,
[0045]
根据粒子的适应度值寻找得到粒子的个体最优位置和粒子的群体最优位置;
[0046]
s4:采用如下公式更新得到粒子的位置和速度:
[0047][0048]
式中,v[n]为当前时刻的粒子速度,v[n 1]为下一时刻的粒子速度,x[n]为当前时刻的粒子位置,x[n 1]是下一时刻的粒子位置,w为惯性因子,c1为自身认知因子,c2为社会认知因子,rand为介于0-1之间的自定义数,pbest[n]为粒子的个体最优位置,gbest[n]为粒子的群体最优位置;
[0049]
上述s4的步骤中,公式(1)为迭代公式,采用公式(1)迭代更新粒子的位置和速度,可让粒子的位置和速度逐渐逼近最优值。惯性因子的作用是控制粒子群的全局寻优能力和局部寻优能力,当惯性因子变大时,全局寻优能力变强,但局部寻优能力变弱。而当惯性因子变小时,全局寻优能力变弱,但局部寻优能力变强。因此,惯性因子对粒子群优化算法的优化能力起到至关重要的作用。
[0050]
s5:判断s4的迭代次数是否小于最大迭代次数的三分之一值,若是则采用如下公式更新得到惯性因子:
[0051][0052]
式中,w
max
为惯性因子的最大值,w
min
为惯性因子的最小值,t为s4的迭代次数,t
max
为最大迭代次数,以及采用如下公式更新得到粒子的群体最优位置:
[0053]
gbest[n]=gbest[n] c2×
rand
×
|gbest[n]-gbest[n 1]|
ꢀꢀꢀ
(3),
[0054]
式中,gbest[n 1]为下一时刻粒子的群体最优位置,将更新得到的惯性因子和粒子的群体最优位置更新公式(1)再继续迭代s4的步骤,若否则进行s6的步骤;
[0055]
上述s5的步骤中,当s4的迭代次数小于最大迭代次数的三分之一值时,粒子群处于初期阶段,初期阶段的粒子群呈现移动范围较大且较为杂乱的特性,此时需要粒子群优化算法具备较好的全局寻优能力,并且随着s4的迭代次数增加而减弱,采用公式(2)中的如下公式对惯性因子进行更新:
[0056]
[0057]
上式属于基于正弦调整的非线性递减的公式,随着s4的迭代次数的增加,惯性因子逐渐变小,在初期迭代过程中,更新得到的惯性因子不断地对公式(1)进行更新,从而提高了迭代收敛的精度,但是随着s4的迭代次数增加,粒子群优化算法容易陷入局部最优解的问题。
[0058]
s6:判断s4的迭代次数是否不小于最大迭代次数的三分之一值且小于最大迭代次数的三分之二值,若是则采用公式(2)更新得到惯性因子,将更新得到的惯性因子更新公式(1)再继续迭代s4的步骤,若否则进行s7的步骤;
[0059]
上述s6的步骤中,当s4的迭代次数不小于最大迭代次数的三分之一值且小于最大迭代次数的三分之二值时,粒子群处于中期阶段,中期阶段的粒子群出现了局部收敛最优解的问题但非十分严重。为了兼顾粒子群优化算法的局部寻优能力和全局寻优能力,采用公式(2)中的如下公式对惯性因子进行更新:
[0060][0061]
上式属于余弦调整的非线性递交递减的公式,随着s4的迭代次数增加,惯性因子逐渐变小,并且惯性因子的变化速率由大到小再变大,在中期迭代过程中,更新得到惯性因子不断地对公式(1)进行更新,从而在迭代中期时粒子群优化算法可兼顾局部寻优能力和全局寻优能力。
[0062]
s7:判断s4的迭代次数是否不小于最大迭代次数的三分之二值且小于最大迭代次数,若是则采用公式(2)更新得到惯性因子,将更新得到的惯性因子更新公式(1)再继续迭代s4的步骤,若否则将粒子的位置输出为优化后的pid参数。
[0063]
上述s7的步骤中,当s4的迭代次数不小于最大迭代次数的三分之二值且小于最大迭代次数时,粒子群处于后期阶段,后期阶段的粒子群的局部收敛问题十分严重,为此,采用公式(2)中的如下公式对惯性因子进行更新:
[0064][0065]
上式属于正弦调整的非线性递增公式,随着s4的迭代次数增加,惯性因子逐渐变大,并且惯性因子的变化速率逐渐变小,在后期迭代过程中,更新得到惯性因子不断地对公式(1)进行更新,从而在迭代后期时粒子群优化算法可具有较强的全局寻优能力,避免陷入局部最优解的问题。
[0066]
所述惯性因子的最大值为0.9,即w
max
=0.9。
[0067]
所述惯性因子的最小值为0.4,即w
min
=0.4。
[0068]
为了验证本发明的有益效果,基于本发明设立测试实验。下面详细介绍测试实验的过程:
[0069]
测试实验采用大疆四翼无人机,型号为mavic3,无人机上搭载有四个高精度的mpu9250陀螺仪,,四个mpu9250陀螺仪用于监测无人机姿态。设定粒子群的规模为50,维度为20,最大迭代次数为1000,自身认知因子取2,社会认知因子取2,粒子最大速度取200,最大搜索代数为100。测试程序运行在matlab7.8环境下运行,采用一台intl i5cpu计算机,ram为128g,操作系统为windows10专业版,开发环境为vs code。在实际测试过程中,四翼无
人机的试飞成功率为100%,输出的最优值偏差控制在14.93以内,鲁棒稳定性的结构奇异值控制在0.2以下,和现有技术相比,本发明在pid控制上呈现较好的优化性能,可以避免无人机在起飞瞬间由于翻滚角、俯仰角以及航向角偏差等问题导致无人机飞行不稳定的问题,既可以快速地响应无人机的姿态控制,也可以避免繁琐的仿真调节,确保了无人机工作时的姿态稳定性。
[0070]
上述实施例仅为本发明的较佳实施例,并非依此限制本发明的保护范围,故:凡依本发明的结构、形状、原理所做的等效变化,均应涵盖于本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献