焊接机器人视觉系统标定与初始焊位导引的引入混沌扰动
3.1.2采用自适应惯性系数
由粒子更新公式可知,粒子寻优时的其速度由三部分组成:上一代粒子的速度,与自身历史最优值和全局最优值相关的速度比重。
3.1.3选择合适的边界条件
PSO算法在优化求解时,需要设定对应的搜索空间。但是在实际的优化求解过程,粒子可能会超出解空间,如何出了这些超出边界的粒子直接关乎到整个算法的性能。前文的改进方法都是针对PSO算法搜索策略方面,并不能有效处理这些超出边界的粒子。对于这个问题,本文采用一种衰减的边界模型。当粒子超出边界时,把对应维度的向量反弹衰减,并重新置于解空间中,其示边界条件如图3-4所示:
3.1.4局部收敛的判断
在PSO算法中引入混沌变异的目的在于:在搜索过程中发生早熟、局部收敛时,施加一个扰动变量,帮助其跳出局部收敛。那么如何准确判断算法是否发生收敛是一个关键问题。否则盲目地使用混沌变异不仅不能带来预期的效果,还会破坏质量较好的粒子。
本文采用粒子的聚集程度作为判断是否发生局部收敛的标准。当陷入局部最优时,各粒子的适应值比较接近,最优值适应度变化不明显。因此本文在参考文献的基础上,提出了一种基于粒子适应值表征的粒子聚集程度的局部收敛判断方法。
3.2 ICPSO算法实现流程
经过3.1节中的几个方面的改善,最终形成了本文提出ICPSO算法。表3-1
列出了改进后的算法参数设置。
粒子群算法运行的基本步骤:
1) 种群初始化,首先设置基本参数,包括种群粒子个数N,搜索维度D,学习因子c1、c2,惯性系数形式的选择,设置搜索空间范围[a,b],限制搜索速度[Vmin,Vmax]最大迭代次数T,迭代终止条件,设置合适的适应度函数f。
2) 利用Logistic方程产生一组随机数列,初始化首代粒子,以保证粒子在解空间分布合理。用适应度函数衡量粒子的优劣,寻找并记录首代钟群中粒子个体最优值和全局最优值。
ICPSO算法流程图如下: 焊接机器人