李鹏飞,刘 威,张子煜,康 嘉,张嘉萍
(苏州科技大学机械工程学院,苏州 215000)
数控加工是高精度复杂曲面的最重要加工手段,精加工使用的刀轨直接决定最终的加工精度。逼近误差是指刀具在进给方向上从一个刀位点运动到下一个刀位点形成的包络面与刀触点轨迹线之间的最大误差。相邻刀触点、刀位点的距离(即步长)越大,逼近误差越大。步长规划方法主要有等参数法、等距法、步长筛选法和等误差步长法[1-2]。目前计算逼近误差一般采用几何迭代法[3-4],现有算法模式几乎无法再提高计算效率,当需要大量逼近误差计算的高精度刀轨(如等误差刀轨)生成时,逼近误差计算时间难以减少。逼近误差计算效率低已成为制约高质量刀轨广泛应用的主要瓶颈之一。
逼近误差计算的实质是在刀触点轨迹线上搜索一刀触点,此刀触点到刀位点连线的距离为最值,此最值可确定逼近误差值。智能优化算法是常用的高效率的最值计算方法,它们是通过对生物群体协同搜索机制和物理原理驱动下的变化现象抽象、提炼出的优化算法,在全局寻优的精度和效率上比传统的迭代法优势明显[5],理论上能够用于在刀触点轨迹线上搜索与刀位点连线的距离为最值的点。
常见的智能算法有粒子群优化算法(particle swarm optimization,PSO)[6]、遗传算法(genetic algorithm,GA)[7]、模拟退火算法(simulated annealing,SA)[8]、引力搜索算法(gravitational search algorithm,GSA)[9]等。PSO算法模拟鸟群或蜂群的觅食行为进行最优解搜索。GA算法是一种基于进化论的优化算法,其核心思想是通过模拟自然界中的遗传机制,逐步优化问题的解决方案。GA算法因为遗传算子交叉变异操作使其具有较强的全局搜索能力,但收敛速度慢。
作为应用最广泛的智能算法之一,PSO因计算高效,被广泛应用于多个领域[10]。但标准PSO易过早收敛、陷入局部最优[11]。为此,SHI等[12]提出了带约束因子的PSO算法,以提高算法灵活性和收敛速度。EBERHART、SHI等[13-15]则对惯性权重的变化分别提出了线性递减、随机惯性、非线性递减的优化策略,以保持局部最优和全局最优之间的平衡。PENG等[16]提出一种跟随非线性惯性权重系数变化的动态学习因子,以提高算法的全局搜索能力和局部搜索精度。SHI、GONG等[7-9]分别提出GA算法、SA算法、GSA算法与PSO算法相结合的方法。
受PSO算法、逼近误差计算过程原理相似和上述研究成果启发,综合PSO算法与GA算法两种算法的优点,本文首先结合逼近误差特点对标准PSO算法种群初始化、惯性权重因子、学习因子进行优化,然后将GA算法中的交叉变异策略引入优化后的PSO算法中,构建出混合PSO算法,最终实现逼近误差的高效、高精度计算。
(1)
图1 逼近误差ei示意图
(2)
图2 刀触点Pj映射到标准区间示意图
步骤1:运用式(3)计算出粒子mj所对应的刀触点的参数值uj,代入式(4)计算出参数值uj在刀触点轨迹线CC上对应的点pj;
uj=mjui+(1-mj)ui+1
(3)
pj=CC(uj)
(4)
步骤2:运用式(1)计算出刀触点到刀位点连线之间的距离Lj;
步骤3:运用式(5)计算出粒子mj的适应度值f(j)。
f(j)=|R-Lj|
(5)
为了提高计算效率,结合逼近误差的几何原理,本节基于标准PSO算法提出混合PSO算法:引入Tent映射的种群初始化,设计基于sigmoid函数的非线性惯性权重系数,运用非线性控制方法学习因子,以改进标准PSO算法的效率;引入GA算法中的交叉变异算子,提高算法的全局搜索能力,从而建立适用于逼近误差计算的混合PSO算法。
标准PSO算法计算过程中,每个粒子都能够由适应度函数计算出适应度值,记录个体的适应度极值pbest与群体极值gbest,以此驱动粒子在迭代计算中更新位置和速度,最终计算出满足精度要求的理论最优解。
将标准PSO算法用于在刀触点轨迹线上搜索一个到刀位点连线的距离为最值刀触点,刀触点粒子的速度和位置的更新如式(6)所示。
(6)
式中:xi(k)、vi(k)分别为第i个粒子在第k次迭代时速度和位置,w为惯性权重因子,c1、c2分别为个体、社会学习因子,r1、r2为(0,1)之间相互独立的随机数。随着迭代次数的增加,所获得的极值逐渐逼近理论解,一般以迭代次数上限或极值变化量作为终止条件结束算法。
在PSO算法中,初始化粒子的位置对算法的收敛速度和性能有着重要的影响。作为一种典型的混沌序列映射函数,Tent映射生成的混沌序列随机性好,具有简单易实现、计算速度快等优点[17],将Tent映射引入PSO算法能够可以有效地扩展搜索空间,提高全局搜索能力。
由于精加工的相邻刀触点之间的局部刀触点轨迹线长度较小,曲率变化不大,因此逼近误差理论刀触点位置基本分布在搜索区间的中间位置附近。为此,提出使用Tent映射生成[0,1]之间随机数,并通过线性变换将这些随机数映射到中间区间[0.25,0.75]上,作为PSO算法初始粒子的位置。具体实现步骤为:
步骤1:生成[0,1]之间的一个随机数,作为初始值x0;
步骤2:通过Tent映射公式计算下一个值,如式(7)所示;
(7)
步骤3:将xi的值线性映射到[0.25,0.75]之间,如式(8)所示;
(8)
惯性权重w表示粒子继承先前速度的多少,PSO算法的初期一般需要较大的惯性权重因子以获得较强的全局搜索能力,并随着迭代次数增加递减,从而加快粒子收敛。为了提高逼近误差计算效率,鉴于非线性动态惯性权重的综合性能优于线性[18],本文利用sigmoid函数曲线在区间[-6,6]内的前、中、后段上升速度由慢到快再到慢的非线性特点,提出将PSO算法的迭代次数映射到此区间,获得如式(9)所示的惯性权重函数,此函数能够在搜索初期、中期、后期分别获得较慢、较快、较慢的惯性权重下降速度,从而使粒子的全局搜索能力在初期时较强,随后中期近似线性递减,局部搜索能力逐渐增强,后期变化率再次减小,保证较强的局部搜索能力。
(9)
式中:k为迭代次数,wmax、wmin为惯性权重系数最大、最小值。
PSO算法的学习因子c1和c2分别调节个体学习能力和群体学习能力。当c1>c2时,粒子的运动更偏向个体最优方向,反之则更偏向群体最优方向。c1取值过大时,会导致过多刀触点粒子聚集于局部刀触点轨迹线,影响全局寻优效果;c2取值过小时,刀触点粒子会过早收敛局部最优。
鉴于刀触点轨迹线的凹凸性易使计算逼近误差时陷入局部最优,合适的寻优策略是:在迭代初期,由于位置不确定性,粒子应注重自我认知,侧重个体最优解进行全局搜索;在迭代后期,粒子较为接近最优位置,应注重群体认识,侧重群体最优解邻域的局部搜索。为此,本文在文献[9]学习因子变化策略的基础上,提出了基于迭代次数的学习因子非线性变化方法,使得c1、c2随着迭代次数k的增加而分别减小、增大,如式(10)所示。
(10)
式中:c1max、c1min、c2max和c2min分别为个体、群体学习因子的最大、最小值。
为了进一步改善PSO算法容易陷入局部最优解的问题,引入GA算法的交叉变异策略提高刀触点粒子的全局搜索能力。
交叉方面,将刀触点粒子以固定交叉概率放入交叉池中,在杂交池中随机挑选出两两相互独立刀触点粒子进行交叉,根据两刀触点粒子的位置平均值计算出的交叉权重确认交叉点,直到杂交池中所有粒子完成交叉操作。交叉操作有助于交叉后的刀触点粒子继承交叉前粒子的优势并保持种群的多样性,交叉后粒子位置由两交叉粒子的位置加权计算,新个体的位置公式如式(11)所示。速度公式如式(12)所示。
(11)
(12)
变异方面,在每次进化中,为了弥补了随机突变的不准确性,提出对交叉后的新粒子群体根据固定的变异概率pm选取粒子进行变异,有效地增加了种群的多样性。对交叉后的刀触点粒子计算适应度值,进行降序排列,对适应度值较小(即距离理论逼近误差刀触点位置较远)的刀触点粒子进行变异操作,将(0,1)之间随机数作为变异后粒子的位置,使它们具有一定概率跳动到理论逼近误差刀触点位置附近。刀触点粒子位置公式如式(13)所示。
(13)
基于2.1~2.5节提出的PSO算法构建和优化方法,可规划出混合PSO算法计算逼近误差的整体流程,具体步骤如下,流程如图3所示。
图3 逼近误差计算流程图
步骤1:将搜索区间[ui,ui+1]映射到[0,1],设置种群规模N和速度阈值vmax、vmin,交叉概率pc,变异概率pm,设置最大迭代次数kmax或计算精度作为终止条件,初始化速度和位置;
步骤2:计算全部粒子的适应度值;
步骤3:对刀触点粒子以交叉概率pc进行交叉操作,对交叉操作后的刀触点粒子计算适应度值并进行降序排列;
步骤4:以变异概率pm选择交叉操作后适应度值最小的刀触点粒子的粒子进行变异操作;
步骤5:计算变异操作后粒子适应度值并记录pbest与gbest;
步骤6:判断是否满足收敛条件(如满足计算精度或达到最大迭代次数),如果满足转向步骤7;否则以式(9)改变惯性权重w,根据式(10)改变学习因子c1、c2。根据式(6)更新粒子的速度和位置,转向步骤2继续迭代;
步骤7:输出当前最优粒子位置和适应度值,作为理论逼近误差位置和逼近误差值,算法终止。
算法的实现需要对种群规模N、最大迭代次数kmax、最大速度vmax与最小速度vmin、惯性权重w、学习因子c1和c2、交叉概率pc、变异概率pm进行设置。
较小的种群规模N与最大迭代次数kmax可能会导致算法陷入局部最优解,而较大的种群规模与最大迭代次数可以提高算法的全局搜索能力,但增加了算法的计算量,参考文献[19]进行测试,设置种群规模N为50,最大迭代次数kmax为100。
最大速度和最小速度的取值范围通常在搜索空间的范围内,并且被设置为搜索空间范围的一定比例。通过测试、比较不同取值,选取最大速度和最小速度设置为搜索空间范围的20%与5%,即速度阈值vmax与vmin为0.2与0.05时算法收敛速度较好。
惯性权重最大最小值wmax和wmin的取值也影响算法的收敛速度,然而取值并无明确的理论依据,多采用实验法选值,常将其设置在0.4~0.9之间[19]。算法选用了多组数值进行测试,当wmax=0.9、wmin=0.4时,性能提高明显,代入式(9)获得惯性权重w计算式,w随迭代次数k的变化如图4所示。
图4 惯性权重变化图
与惯性权重类似,常将个体、群体学习因子设置为固定值2[19]。本文结合优化后惯性权重的变化趋势,在选用了多组数值组合进行了测试后,确定当c1max=2.5、c1min=1.5、c2max=2.5、c2min=1.5时,学习因子变化如图5所示,满足了前中期加强粒子运动遍历性、全局搜索能力和后期加强局部搜索能力的要求。
交叉和变异概率的设置与粒子搜索区间复杂度有关,如果解空间较大且复杂,较高的交叉和变异概率可以更好地探索潜在解;相反,如果解空间较小或具有明显的最优解,较低的概率可能足够。参照文献[7],算法选用多组数值进行测试,交叉概率pc和变异概率pm分别为0.6和0.05时,算法有较好的收敛速度。
完成上述数值选取后,在课题组自主开发的CAM软件上完成了所有算法的程序开发,实现了逼近误差计算功能。
以图6a中的曲面为例生成刀轨,曲面包围盒尺寸为190 mm×150 mm×45 mm,选择直径10 mm的球头刀,刀轨行数为150,使用等误差步长法生成刀轨,逼近误差允许区间为[9 μm,10 μm],计算精度为0.1 μm。分别采用几何迭代算法、标准PSO算法和本文提出的混合PSO算法计算逼近误差,进而生成等误差刀轨。生成的刀轨如图6b所示,仿真图如图6c所示,运行环境为Intel i5-13400、16 G RAM的计算机,3种算法所消耗的时间如表1所示,本文算法比几何迭代算法的计算时间减少了18%以上,比标准PSO优化算法的计算时间减少了8%以上,验证了算法的高效率。
表1 等误差刀轨的计算时间
(a) 曲面示意图 (b) 等误差刀轨 (c) 等误差刀轨加工仿真图
为了提高数控加工中逼近误差的计算效率,本文研究了基于混合PSO算法的逼近误差计算方法。将刀触点设置为粒子,将刀触点轨迹线上搜索范围映射到标准区间[0,1],提出了适应度函数;结合逼近误差特点引入Tent映射初始化种群,优化了惯性权重因子和学习因子的变化策略并引入了GA算法的交叉变异操作。测试结果表明,所提出的混合PSO算法耗时更短。在未来的研究中,可进一步在结构、参数优化等方面改进算法,或探索其它类型的智能算法,以进一步提高逼近误差的计算效率。