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

一种基于改进麻雀算法的PID参数优化方法

2022-04-27 03:52:11 来源:中国专利 TAG:

一种基于改进麻雀算法的pid参数优化方法
技术领域
1.本发明属于pid技术领域,具体涉及一种基于改进麻雀算法的pid参 数优化方法。


背景技术:

2.随着各种优化问题的不断出现,各类算法不断涌现,群体智能算法的出 现为各种优化问题提供了问题解决的新思路。群体智能优化算法是一种模 仿自然界生物种群行为或生物行为以及自然现象的元启发式优化算法。随 着群体智能算法的优化效果被大众所认可,群体智能算法不断发展,越来越 多的群体智能算法被提出,其中包括firefly algorithm(fa)、ant lionoptimizer(alo)、whale optimization algorithm(woa)、sine cosinealgorithm(sca)、crow search algorithm(csa)and harris hawksoptimization(hho)等新型优化算法。
3.麻雀搜索算法(ssa)是在2020年由xue等人提出来的新型群智能优化 算法。该算法受麻雀觅食等行为启发,在优化问题上较grey wolf optimizer (gwo)、particle swarm optimization(pso)and genetic algorithm等传统的 智能优化算法有着明显的优势,稳定性高、寻优精度较好、收敛速度快。该 算法尽管收敛速度较快,但是容易陷入局部最优且寻优结果具有较大的随 机性。针对此缺陷,许多学者提出了麻雀搜索算法的不同策略的优化算法, 并成功解决了许多工程问题。lv等学者根据麻雀搜索算法的原理和模型提 出了鸟群算法和麻雀算法融合算法,以及混沌麻雀搜索算法,前者利用在麻 雀算法的发现者和加入者中加入了鸟群算法的搜索机制,改变了“全维度缩 减”的更新策略,有效突破了局部限制搜索,加强了全局搜索能力;后者采 用tent混沌映射初始化种群,使得种群更加均匀,再在迭代一次后,根据个 体适应度与平均适应度的情况进行混沌扰动和高斯变异的二次迭代防止寻 优过程中出现局部聚集,增强了其跳出局部最优的能力并在图像分割的应 用上取得了良好的效果。han等学者提出了一种基于立方映射和精英反向 学习初始化种群的混沌麻雀算法,同时引入了正弦螺旋算法,平衡了算法的 开发和探索能力,最后在算法陷入停滞时,采用高斯游走策略跳出停滞,在 15个基准测试函数中验证了其寻优性能,同时在有威胁的情况下进行并在 无人机航迹规划仿真,与其它优化算法相比,该算法得到了代价最优且满足 约束的安全可行航迹。ouyang等学者提出了一种学习麻雀算法,在发现 者搜索阶段加入透镜反向学习,使得搜索更加灵活,增加了种群的多样性, 同时引入了螺旋的指导机制,使得发现者搜索更加精密,随后加入一种局部 搜索机制,防止遗漏高质量解,并在12个基本测试函数和cec2017测试集 中与其他群智能算法和改进的麻雀算法进行对比,表现出来良好的寻优能 力,最后将改进的麻雀算法在机器人路径规划上验证了有效性,规划出了稳 定且安全的最优路径。
4.上述算法都在麻雀算法的基础上取得了一定成效,但是仍然有一些不 足:
5.(1)改进初始化种群的方法仍然存在一定的随机性,不能保证每次初始 化的种群的达到绝对均匀。
6.(2)选取的改进搜索策略会受到区域的局限性,容易超出边界,未能在 整个空间
进行有效的全局搜索,这样导致大量个体超出边界,仍然存在陷入 局部最优的情况。
7.(3)加入者向发现者采取直接跳跃的方式,容易遗漏最优解,改进的局 部搜索精度提升并不显著,在搜索精度上还可以有更大的提升。
8.(4)在边界控制方面,针对超出边界的个体,采用更新为边界的策略, 并没有利用好个体的位置,减少了种群的多样性。
9.基于上述问题,如何提供一种能够更好的确定pid的最优参数的方法, 成为了亟待解决的问题。


技术实现要素:

10.为了解决现有技术中存在的上述问题,本发明提供了一种基于改进麻 雀算法的pid参数优化方法。本发明要解决的技术问题通过以下技术方案 实现:
11.一种基于改进麻雀算法的pid参数优化方法,包括:
12.s1、初始化麻雀种群,设置所述麻雀种群参数;
13.s2、计算麻雀种群中n个麻雀个体的适应度值,将n个麻雀个体按照适 应度值进行排序,确定当前最优适应度值和当前最差适应度值;
14.s3、选取适应度值靠前的前pd个麻雀作为发现者,根据发现者的位置 更新公式更新所述发现者的位置;
15.s4、选取n个麻雀中除作为发现者的麻雀外的麻雀作为加入者,根据加 入者的位置更新公式更新所述加入者的位置;
16.s5、从麻雀种群中选取sd个麻雀作为警戒者,根据警戒者的位置更新 公式更新所述警戒者的位置:
17.s6、根据每个麻雀当前位置的适应度值和前一次迭代该麻雀所保留的 适应度值确定当前迭代麻雀的位置;
18.s7、判断当前迭代次数是否达到设定的最大迭代次数,若否,则继续执 行步骤s2至步骤s6,当达到麻最大迭代次数时,输出麻雀种群中的最优适 应度值和最佳位置,以得到pid的参数k
p
、ki和kd。
19.在本发明的一个实施例中,所述麻雀种群参数包括麻雀总数量n、当前 迭代次数t,最大迭代次数m、维度d和安全阈值st。
20.在本发明的一个实施例中,计算麻雀种群中n个麻雀个体的适应度值的 函数为:
[0021][0022]
其中,e(t)表示输入值与输出值之间的误差,u(t)表示控制值,w1和w2表示权重,取值范围为[0,1]。
[0023]
在本发明的一个实施例中,所述发现者的位置更新公式为:
[0024][0025]
其中,x
i,j
表示当前第i个麻雀在第j维中的位置,α∈[0,1]且是一个随机数, r2表
示预警值,且r2∈[0,1],st∈[0.5,1],q表示一个服从正态分布的随机 数,l表示一个元素全为1的1
×
d的矩阵。
[0026]
在本发明的一个实施例中,当时,所述加入者的位置更新公式为:
[0027][0028]
其中,xworst表示当前的最坏位置,xi,j表示当前第i个麻雀在第j维中的 位置,
[0029]
在本发明的一个实施例中,当时,所述加入者的位置更新公式为:
[0030][0031]
其中,x
i,j
表示当前第i个麻雀在第j维中的位置,rand()表示一个属于0和 1之间的随机数,f(x1)表示x1的适应度值,f(x2)表示x2的适应度值,a表示 一个元素仅是1或-1的1
×
d的矩阵,a

=a
t
(aa
t
)-1
,l表示一个元素全为1的1
×
d 的矩阵,x1=x
*
·
rand(),x
*
表示麻雀的当前位置,x2=x
**
·
rand(),x
**
= x
best
|x
*-x
best
|
·a
·
l,x
best
表示当前所占据的最优位置。
[0032]
在本发明的一个实施例中,所述警戒者的位置更新公式为:
[0033][0034][0035]
其中,k=a t/m,a=0.1,aj表示第j维的下界,bj为第j维的上界, x
i,j
表示当前第i个麻雀在第j维中的位置,x
best
表示当前所占据的最优位置, β表示控制步长参数,是一个服从均值为0且方差为1的正态分布的随机数, k是一个属于[-1,1]的随机数,fi表示当前麻雀个体的适应度值,fg表示当前的 最优适应度值,fw表示当前的最差适应度值,ε为一实数。
[0036]
在本发明的一个实施例中,步骤s6包括:
[0037]
将每个麻雀当前位置的适应度值和前一次迭代该麻雀所保留的适应度 值进行比
较,若当前位置的适应度值大于前一次迭代该麻雀所保留的适应 度值,则将前一次迭代该麻雀所保留的适应度值替换当前位置的适应度值, 若当前位置的适应度值小于前一次迭代该麻雀所保留的适应度值,则利用 麻雀位置更新公式进行更新操作。
[0038]
在本发明的一个实施例中,所述发现者的位置更新公式为:
[0039][0040]
其中,为第i个麻雀在第t 1次迭代中在第d维中的位置信息,为第i个麻雀在第t次迭代中在第d维中的位置信息,为当前全局的最优 位置,α∈[0,1]为一个随机数,r2为预警值,st为安全值,q为服从[0,1]正 态分布的随机数,l为1
×
d维元素均为1的矩阵,ωi为权重公式, ω
min
为最小权重值,ω
max
为最大 权重值,p为控制因子。
[0041]
在本发明的一个实施例中,所述麻雀位置更新公式为:
[0042][0043]
其中,ub和lb分别表示空间的上界和下界,rand()表示一个属于0和1之 间的随机数。
[0044]
本发明的有益效果:
[0045]
(1)本发明为了提高个体的有效利用和有效搜索提出了一种变螺旋系 数策略并改进了边界控制。
[0046]
(2)本发明为了改善寻优精度低和寻优过程遗漏较优解的问题提出了 一种改进的迭代局部搜索策略。
[0047]
(3)本发明为了提高算法跳出局部最优的能力提出了一种改变透镜聚 焦能力的逐维透镜学习。
[0048]
(4)本发明将issa应用到pid参数的优化,帮助pid参数的快速整定。
[0049]
本发明解决了麻雀算法对当前个体利用差,缺少有效搜索的缺点,改善 了其寻优性能,有效改善了算法陷入局部最优解和寻优精度低的问题。本发 明提出了一种基于迭代局部搜索的改进麻雀搜索算法(即issa),在加入者的 全局搜索的阶段引入变螺旋系数,充分利用个体关于原点的对立解,减少超 出边界的个体,保证了算法具有细致且灵活多样的搜索能力;在加入者的局 部搜索阶段,采取改进的迭代局部搜索策略,用于增加搜索精度,防止遗漏 最优解。然后在警戒者中采取改变焦距能力的逐维透镜成像学习策略,利用 每个维度的动态边界使搜索范围更加灵活,帮助跳出局部最优解。最后改进 了边界控制,有效利用了超出边界的个体,同时保留了个体的随机性。本实 施例的issa具有良好的通用性。最后本实施例将issa应用到pid参数整定, 整定后结果的精度和收敛速度都较ssa算法有一定提升,表明算法具有良好 的实用性。
[0050]
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
[0051]
图1是本发明实施例提供的一种基于改进麻雀算法的pid参数优化方法 的流程示意图;
[0052]
图2是本发明实施例提供的一种pid控制器的结构示意图;
[0053]
图3是本发明实施例提供的一种改进迭代局部搜索算法的主要思想的 示意图;
[0054]
图4是本发明实施例提供的一种透镜学习的原理的示意图;
[0055]
图5是本发明实施例提供的一种收敛曲线与pid控制输出的示意图。
具体实施方式
[0056]
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施 方式不限于此。
[0057]
实施例一
[0058]
请参见图1,图1是本发明实施例提供的一种基于改进麻雀算法的pid参 数优化方法的流程示意图。本实施例提供一种基于改进麻雀算法的pid参数 优化方法,该方法包括步骤s1至s7,其中:
[0059]
s1、初始化麻雀种群,设置所述麻雀种群参数。
[0060]
其中,麻雀种群参数包括麻雀总数量n、当前迭代次数t,最大迭代次数 m、维度d和安全阈值st。
[0061]
在麻雀觅食的过程中,分为发现者和加入者两个行为策略。麻雀种群中 位置较好的个体视作发现者,一般占10%~20%,剩余个体作为加入者。同 时,随机分配10%~20%的个体作为警戒者。发现者负责带领种群搜索方向 和发现食物,加入者则跟随发现者获取食物,警戒者警惕周围环境威胁并及 时发出危险信号,提醒麻雀种群向安全区域靠拢。
[0062]
s2、计算麻雀种群中n个麻雀个体的适应度值,将n个麻雀个体按照适 应度值进行排序,确定当前最优适应度值和当前最差适应度值,其中,最优 适应度值为最小的适应度值,最差适应度值为最大的适应度值。
[0063]
如图2所示,pid控制器是业界内最普遍采用的控制器(约占控制器的 90%)。pid控制器由三个基本增益参数组成,来实现对被控对象的控制,主 要适用于基本线性和动态特性不随时间变化的系统。当比例参数k
p
增大时, 则上升时间和稳态误差减小。当积分参数ki增大时,则上升时间较小,但稳 定时间和过冲增大,而由k
p
、ki增大产生的负面效果可以通过调节微分参数 kd来克服。pid控制器的输出与输入关系如下:
[0064][0065]
人工的pid参数整定是一个很耗时间的过程,一般采取通过工程人员的 经验技巧进行凑试,智能算法能够短时间完成参数的整定。本实施例对pid 参数进行优化。
[0066]
本实施例的目标函数(即适应度值函数)如下:
[0067][0068]
其中,e(t)为输入值与输出值之间的误差,考虑到迭代过程的动态特性, 采取其
绝对值的积分;u(t)为控制值,加入此项是为了避免控制幅度过大; w1和w2为权重,取值范围为[0,1]。
[0069]
此外还需采取措施防止超调,即当出现超调时,目标函数中额外引入超 调项,此时设置如下:
[0070][0071]
其中,w3为权值,且w3》》w1,一般情况下w1=0.999,w2=0.001, w3=100。
[0072]
s3、选取适应度值靠前的前pd个麻雀作为发现者,根据发现者的位置更 新公式更新发现者的位置。
[0073]
具体地,发现者负责引导种群觅食或者引导种群前往安全区域的位置, 发现者的位置更新公式如下:
[0074][0075]
其中,t表示当前的迭代次数,m为最大的迭代次数。x
i,j
表示当前第i个 麻雀在第j维中的位置。α∈[0,1],且是一个随机数。r2代表预警值,st为安全 阈值,且r2∈[0,1]、st∈[0.5,1]。q表示一个服从正态分布的随机数。l表示 一个元素全为1的1
×
d的矩阵。当r2《st时,这说明此时的群体环境处于安全 状态,周围没有发现捕食者(2),发现者可以进行广泛的搜索,引导种群获 取更高的能量;当r2≥st时,表示种群内个体已经发现了捕食者且发出了警 报,发现者迅速调整搜索策略,逃离当前位置,进而带领种群转移至安全位 置。
[0076]
加入者为了获取优质食物,紧随发现者之后或者独自觅食,故加入者的 位置更新描述如下:
[0077][0078]
其中,x
p
是发现者当前所占据的最优位置,x
worst
表示当前的最坏位置。 a为一个元素仅是1或-1的1
×
d的矩阵,其中a

=a
t
(aa
t
)-1。当i》n/2时,表示 适应度较低的第i个加入者没有获得食物,处于非常饥饿的状态,需要飞往 其他地方觅食,以获得更高的能量;当i《n/2时,加入者会监督发现者以及 跟捕食率较高的发现者争夺食物,从而提高自身的能量。
[0079]
当意识到危险,麻雀种群会做出反捕食行为,其数学表达式如下:
[0080][0081]
其中,x
best
表示当前的全局最优位置。β为控制步长参数,是一个服从均 值为0且方差为1的正态分布的随机数。k是一个属于[-1,1]的随机数,控制麻 雀移动的方向同时也可以控制移动步长。fi表示当前麻雀个体的适应度值。 fg和fw分别当前的最优适应度值及最差适应度值。ε为一个极小的实数,防止 分母为0。当fi≠fg表示当前的麻雀处在种群的边缘,单个个体容易受捕食者 的攻击,需要向种群中心的其他个体靠拢,降低自身被捕食的
风险。fi=fg时, 这表明处于种群中心的麻雀个体意识到了危险,为躲避危险,需要逃离当前 位置,向附近的其他麻雀个体靠拢。
[0082]
s4、选取n个麻雀中除作为发现者的麻雀外的麻雀作为加入者,根据加 入者的位置更新公式更新所述加入者的位置。
[0083]
具体地,加入者占据种群的大多数个体,加入者有向发现者快速靠拢的 独特更新机制,当导致收敛速度很快;且具有一定的全局搜索的能力, 当时。但是全局搜索能力不强,受搜索区域的边界限制,容易在前期 造成在边界聚集现象,导致种群多样性丢失,易陷入局部极值现象,且跳出 局部最优能力较差。
[0084]
加入者位置更新方式采取服从正态分布的随机系数,将个体迭代500次, 在不考虑边界的情况下,该系数具有很强的全局搜索能力;但是在考虑边界 的情况下,该机制对于处于边界或者边界附近的个体是及其不利的,很多系 数绝对值是超过1的,而当超出边界时,造成种群个体在边界处聚集,没有 充分利用好当前位置,导致种群多样性大大降低,整体算法性能降低。基于 此,本实施例提出了变螺旋系数来降低超出边界的个体,同时控制搜索的步 长和方向,能够充分利用整个种群空间,加入者前期搜索的空间较大,维持 种群多样性,有利于跳出局部最优的陷阱;后期局部搜索更加细致,极大地 提升了算法的寻优能力。
[0085]
变螺旋系数的公式原理如下:
[0086]
h=a

·
cos(k
·
l
·
π)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0087][0088]
l=1-2
·
t/m
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)
[0089]
其中,h表示变螺旋系数。a

是一个用来控制螺旋线的参数,前期取值 为1,后期随着迭代次数不断缩小;k是一个表示螺旋线周期的参数,一般取 m/10;l是一个根据迭代次数从1到-1线性递减的参数。
[0090]
本实施例分别选取一个高维测试函数step和低维测试函数shekel,对原 有模型和改进的模型超出边界个体进行对比测试。设置种群个体为30,迭代 次数为500,各自运行10次并取平均值,测试结果如表1。
[0091]
表1
[0092]
函数stepshekel维度30 dim4dim边界[-1.28 1.28][0 10]原始算法加入者超出边界的次数15053739改进算法加入者超出边界的次数00原始算法超出边界的总次数16964381改进算法超出边界的总次数1611095
[0093]
根据表1可知,当加入者进行广泛搜索时,超出边界的数量占麻雀种群 总超出边界数量的绝大多数,导致大量个体流失,因此对加入者的广泛搜索 范围有必要进行约束;
基于变螺旋系数改进后的加入者超出边界的次数大 大减少至0,充分保留了当前个体的有利位置信息。
[0094]
对加入者的广泛搜索进行的改进,使加入者能够充分利用整个搜索空 间,更容易摆脱局部最优解的吸引,加强了对整个空间的搜索,使种群多样 性得到维持,前期增强算法探索能力的同时后期增强算法开发能力。基于此, 将ssa算法中的加入者公式更新如下:
[0095][0096]
当时,加入者具有向发现者最优解快速靠拢的独特更新机制,该 机制会导致算法快速收敛。加入者直接跳跃到发现者最优解的附近,尽管对 当前最优解附近有一定的开发能力,但是对当前解利用不足,且稳定性较差, 无法保证解的质量和精度,局部开发能力较差,一旦陷入而无法跳出局部极 值状态就会限制算法的整体性能。基于此本实施例提出了一种加强局部搜 索的方法,即改进的迭代局部搜索。
[0097]
局部搜索算法是一种简单的贪心搜索算法。局部搜索从一个初始解开 始,然后搜索解的临域,如有更优的解则更新该解,否则返回当前解。迭代 局部搜索则是在局部搜索得到的局部最优解上,加入扰动再重新进行局部 搜索,具有一定的探索性。
[0098]
改进后的迭部局部搜索,首先在初始解附近进行局部搜索,而后采取将 加入者向发现者靠拢的位置更新方式作为扰动,对初始解进行扰动,对更新 后的位置再次进行局部搜索。既充分利用了当前个体的位置信息,又充分利 用了当前最优解的位置信息,寻优更加灵活。第一次修改采用加入者向发现 者靠拢的机制进行扰动,使个体跳跃到当前全局最优位置的附近,用来跳出 局部最优;第二次修改使用局部搜索获得稳定的优化结果,提升局部搜索的 精度;第三次修改用来获得最优的局部搜索结果,保证解的质量,如图3所 示。同时本实施例分别采取了两种情况进行说明,图3的(a)表示个体扰动后, 在当前全局最优解得附近寻到更优解;图3的(b)表示个体利用自身有利位置 寻到更优解,两者都有助于跳出局部最优解。同时本实施例没有与当前全局 最优解进行比较而取代,用来维持种群多样性,防止前期过早陷入聚集现象。
[0099]
改进后的迭代局部搜索策略,比原迭代局部搜索更适合该算法。其工作 原理是:首先扰动初始解解(采取当i《n/2时,ssa算法的加入者具有向发现 者最优解快速靠拢的独特更新机制进行扰动),得到一个中间解,然后对初 始解和中间解进行重新搜索以获得更优解。第一次修改用来解决ssa算法易 陷入局部最优解的问题,算法流程如下:
[0100]
step1:借助当前最优解x
best
对初始解x
*
进行扰动,得到中间解x
**
。扰 动公式如下:
[0101]
x
**
=x
best
|x
*-x
best
|
·a
·
l
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0102]
原ssa加入者公式如下:
[0103][0104]
其中,x
best
为即发现者当前所占据的最优位置;x
*
为即麻 雀的当前位置;x
**
为即更新完后的位置。
[0105]
第二次修改用来解决ssa算法的优化结果不稳定和精度不高的问题。其 工作原理是:分别对初始解和中间解进行局部搜索,得到较优解。有效利用 了初始解的当前位置,防止个体在直接跳跃到当前最优解的过程中遗漏优 质解;同时对当前最优解附近进行局部搜索,有助于寻优解精度的提升,并 跳出小范围的局部最优。算法流程如下:
[0106]
step2:对初始解x
*
进行局部搜索,公式如下:
[0107]
x1=x
*
·
rand()
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(13)
[0108]
其中,rand()是一个属于0和1之间的随机数。
[0109]
step3:对中间解x
**
进行局部搜索,公式如下:
[0110]
x2=x
**
·
rand()
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(14)
[0111]
第三次修改旨在最优的局部搜索结果,保证解的质量。其工作原理是: 利用贪婪策略对初始解和中间解局部搜索后的结果进行比较,选取较优值 作为最终解x。其算法流程如下:
[0112]
step4:计算x1的适应度f(x1);
[0113]
step5:计算x2的适应度f(x2);
[0114]
step6:比较f(x1)和f(x2),选取较优的个体进行位置更新,即:
[0115]
如果f(x1)≤f(x2)
[0116]
x=x1[0117]
则x=x2[0118]
根据ssa算法和上述三次的修改,将ssa算法中i《n/2的加入者公式更 新如下:
[0119][0120]
s5、从麻雀种群中选取sd个麻雀作为警戒者,根据警戒者的位置更新 公式更新警戒者的位置。
[0121]
具体地,群智能算法都有容易陷入局部最优的缺点,对此提出了在群智 能算法中加入反向学习的方法,反向学习之后的解能更接近最优解。一般的 反向学习只能在一定的空间搜索寻找最优解,仍具有单调性和陷入局部最 优的可能。透镜学习具有比一般方向学习更好的寻优能力,能在一定空间内 不断收敛到最优解,但是一旦选择的空间内没有最优解,最后仍然会导致陷 入局部最优。同时侦查者具有反捕食行为,来帮助跳出种群跳出局部最优, 但是其跳出局部最优的能力不稳定,导致有时无法跳出局部最优。针对这一 现象,本实施例提出了一种改变透镜聚焦能力的逐维透镜成像学习的策略, 用来加强警戒者跳出局部最优的能力,对每个维度进行透镜学习,降低各维 度之间的相互干扰,前期选取聚焦能力较差的透镜进行反向学习,这时成像 较发散,距离透镜位置较远,能够帮助跳出局部最优,如图4的(a);后期选 取聚焦能力较强的透镜进行反向学习,成像较集中,距离透
镜位置较近,能 够加速收敛,如图4的(b)。
[0122]
透镜成像原理如下:
[0123]
如图4所示,以一维空间为例,假设在x位置有一个高度为h的个体,在 透镜的作用下,它在位置x
*
形成一个高度为h
*
的像。a,b为边界,透镜位置 为[a,b]的中点。由透像原理和三角形相似原理可以得到:
[0124][0125]
对上式进行变换可以得到:
[0126][0127]
其中,k用来表示透镜的聚焦能力,即成像大小。当k=1时,可以简化为:
[0128]
x*=a b-x
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(18)
[0129]
此时为一般的反向学习策略,可以看出一般反向学习策略是透镜成像 的特例。一般的反向学习策略k是固定的,得到的个体也是固定的。透镜学 习可以通过调整k来改变个体的位置,从而进一步增强群体的多样性,一般 采取不等于1的常数。本文提出一种根据迭代次数线性增加k的策略,即:
[0130]
k=a t/m
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(19)
[0131]
其中,a为一个较小的常数,防止前期迭代成像过大,本实施例取0.1。 前期k较小,成像较大;后期k为1附近,成像稍小,能帮助收敛。
[0132]
同时本实施例透镜成像扩展到每个维度,对每个维度进行透镜成像反 向学习,公式扩展如下:
[0133][0134]
其中,j为当前维度,aj为第j维的下界,bj为第j维的上界。
[0135]
同时本实施例采取动态边界即:
[0136]aj
=min(xj)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(21)
[0137]bj
=max(xj)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(22)
[0138]
其中,min(xj)为所有个体中第j维的最小值,max(xj)为所有个体中第j 维的最大值。因为aj,bj并不代表整个搜索空间的边界,所以当成像超出边 界[aj,bj]时,其实可能并没有超出整个搜索空间的边界。所以前期时k较小, 成像会超出当前第j维的边界,有助于扩大搜索范围,减少前期早熟停滞的 可能,有助于跳出局部最优。最后采取贪婪策略,如果反向解的适应度值小 优于原解的话则更新解,应用到本算法得到的警戒者的位置更新公式为:
[0139]
[0140]
s6、根据每个麻雀当前位置的适应度值和前一次迭代该麻雀所保留的 适应度值确定当前迭代麻雀的位置。
[0141]
在一个具体实施例中,步骤s6包括:
[0142]
将每个麻雀当前位置的适应度值和前一次迭代该麻雀所保留的适应度 值进行比较,若当前位置的适应度值大于前一次迭代该麻雀所保留的适应 度值,则将前一次迭代该麻雀所保留的适应度值替换当前位置的适应度值, 若当前位置的适应度值小于前一次迭代该麻雀所保留的适应度值,则利用 麻雀位置更新公式进行更新操作。
[0143]
在本实施例中,对逐维透镜反向学习的issa算法收敛性进行证明。需 要提出的是,收敛性证明并不一定能保证算法收敛到全局最优解,由于ssa 算法也是群智能搜索算法,所以有以下定理:
[0144]
定理1.若基于一般反向学习的ssa算法收敛,则issa算法也是收敛的。
[0145]
证明.设xi(t)和分别为第t代当前解和反向解,x
i,j
(t)和分别 为xi(t)和在第j维上的值,全局的最优解为x
best
.由定理1可得:
[0146][0147]
扩展到j维得:
[0148][0149]
由于aj(t)=min(xj(t)),bj(t)=max(xj(t)),所以得:
[0150][0151]
在第t代,基于透镜成像原理的反向学习策略产生的当前解得方向解为:
[0152][0153]
当t

∞时,由上式得:
[0154][0155]
回归到整个维度得:
[0156][0157]
可知,当xi(t)收敛到x
best
时,其透镜学习产生的反向解也收敛到 x
best
。因此若基于一般反向学习的ssa算法收敛,则issa算法也是收敛的。
[0158]
在标准的ssa算法中,当寻优过程中的个体超出边界时会对该个体进行 边界控制,原理如下:
[0159][0160]
其中,ub和lb分别为空间的上界和下界。在这种方法中,对超出边界 的个体进行取边界的策略,会导致个体在边界处聚集,降低了种群的多样性。 由表1可知,尽管改进后的策略减少了超出边界的个体,但是仍然有一部分 个体超出了边界,在边界处聚集。针对超出边界的个体采取为当前最优解的 策略,会很难摆脱局部最优,为此本实施例提出了一种简单的边界处理方法 即麻雀位置更新公式为:
[0161][0162]
该方法将超出边界的个体,采取随机分配到搜索空间内,较原算法更有 效的利用了种群个体,增加了种群的多样性。
[0163]
s7、判断当前迭代次数是否达到设定的最大迭代次数,若否,则继续执 行步骤s2至步骤s6,当达到麻最大迭代次数时,输出麻雀种群中的最优适 应度值和最佳位置,以得到pid的参数k
p
、ki和kd。
[0164]
本实施例提出的迭代局部搜索改进麻雀搜索算法,首先采用变螺旋系 数来对加入者的广泛搜索进行改进,减少了超出边界的个体,同时加快了后 期的收敛速度;其次用改进的迭代局部搜索改进加入者的局部搜索,对初始 解分别采取局部搜索和进行扰动后进行迭代局部搜索,充分利用了当前位 置信息,防止过早收敛,并提升了解得质量和精度:然后利用改变聚焦能力 的透镜对警戒者进行逐维透镜反向学习,增大了搜索的空间范围,帮助种群 跳出局部最优;最后改进了边界控制策略,减少了个体在边界处的聚集,增 加了种群的多样性。多种策略的引入使得算法在寻优能力上具有较好的灵 活性,使得种群更加多样,加强了其摆脱局部最优的能力,衡了算法全局性 搜索能力与局部性搜索能力,有利于找到可靠解。
[0165]
时间复杂度是衡量算法性能的一个重要指标,用来度量算法运行时间 的多少。假设算法的种群大小为n,最大迭代次数为m,维数是d,则麻雀 搜索算法的时间复杂为o(n
·m·
d)。宏观上看,改进的麻雀搜索算法并没有 改变算法的结构和循环次数,所以其时间复杂度也是o(n
·m·
d),和原算法 保持一致。微观上看,迭代局部搜索和逐维透镜学习采用了贪婪策略,一定 程度上增加了部分加入者和全部警戒者的算法复杂度,但是改进策略的引 入并没有提高算法的数量级,所以时间复杂度上仍是o(n
·m·
d)。
[0166]
本实施例利用issa算法的目标就是找到一组pid参数,使得目标函数误 差最小。本实施例设置种群个体数和迭代次数分别是30、50,分别在单位跃 进和正弦输入的情况下进行测试,并独立运行10次,测试结果如图5所示, 寻优结果如表2所示。
[0167][0168]
由于10次的独立运行结果都一致,所以这里仅对一次进行展示。从图 (5)、表2中可以看到,在单位跃阶响应中issa能够在很短时间内完成对参数 的整定,并且收敛速度和精度比ssa更优;在正弦输入响应中,issa几乎能 和rin重合,追踪效果显著,ssa追踪效果
稍逊色,同时issa的收敛速度和精 度要比ssa稍好一些。上述结果验证了issa良好的算法性能,能快速准确地 完成pid参数的整定,有助于系统具有更短的响应时间、更高的系统控制精 度以及更好的鲁棒性,实用性至此得以证明。
[0169]
本实施例提出了一种基于迭代局部搜索等策略的改进麻雀搜索算法, 克服了对当前个体利用差,缺少有效搜索的缺点,有效改善了算法陷入局部 最优解和寻优精度低的问题。针对加入者的两种不同搜索机制,分别引入变 螺旋系数和改进的迭代局部搜索,以保证种群个体的高效搜寻能力和灵活 性。其次在警戒者中加入聚焦能力变化的透镜成像策略,帮助算法摆脱局部 最优解的吸引,并稳定收敛,最后通过修改了边界控制策略增加种群的多样 性。
[0170]
在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不 能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。 由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或 者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以 上,除非另有明确具体的限定。
[0171]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、
ꢀ“
具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具 体特征、结构、材料或者数据点包含于本发明的至少一个实施例或示例中。 在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或 示例。而且,描述的具体特征、结构、材料或者数据点可以在任何的一个或 多个实施例或示例中以合适的方式结合。此外,本领域的技术人员可以将本 说明书中描述的不同实施例或示例进行接合和组合。
[0172]
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明, 不能认定本发明的具体实施个局限于这些说明。对于本发明所属技术领域 的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单 推演或替换,都应当视为属于本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献