基于改进粒子群算法的火炮内弹道多参数符合计算
2022-01-26姚养无李树军
贺 磊,姚养无,李树军,丰 婧
(1.中北大学机电工程学院,太原 030051;2.宁波军鸽防务科技有限公司,浙江 宁波 315000;3.中北大学信息与通信工程学院,太原 030051)
0 引言
火炮内弹道计算结果在火炮炮身设计、火炮反后坐装置设计及其反面校核等多个方面起着至关重要的作用。火炮内弹道计算过程中涉及到很多参数,而这些参数大多都在一定的范围内取值,同一个参数取值不同,内弹道计算结果可能变化很大[1]。想要得到准确可靠的内弹道计算结果,内弹道计算就必须通过调整参数取值的方法,使内弹道计算结果与内弹道测试结果相一致,即进行内弹道多参数符合计算。将内弹道符合计算后的结果运用于火炮设计部分,可使计算得到的火炮各零部件尺寸更为准确可靠。
数十年间,学者们在遗传算法应用于火炮内弹道符合计算领域已做了诸多研究和探索。其中,刘宁将遗传算法引入到火炮内弹道符合计算中,得到了较为理想的符合结果[1];张晓东通过改进遗传算法中的交叉概率和变异概率,提高了内弹道符合计算的效率和精度[2];刘林[3]将遗传算法应用于混合装药的内弹道符合计算中,得到了较为理想的最大膛压值和弹丸初始值。近年来,由于粒子群算法相较于遗传算法具有更为简单的生物背景和更为快速的收敛速度而被国内外学者广泛关注,其连续两年在中科院发布的《研究前沿》中被评为热点前沿。但是,目前国内的学者们并没有将这一热点群智能算法运用于火炮内弹道符合计算。本文在经典内弹道基本方程组的基础上,采用改进的粒子群算法,应用于火炮内弹道多参数符合计算,实践证明该方法是内弹道多参数符合计算的理想方法之一。
1 经典内弹道方程组及计算原理
火炮射击过程中发生的现象十分复杂,它包含多种运动形式,并且这些运动形式又相互依存、相互制约,因此,为了研究火炮膛压和弹丸速度变化规律,就必须建立起反映这些依存和制约关系的内弹道方程组[4]。其基本方程组归纳如下:
1)形状函数
2)燃速方程
3)弹丸运动方程
4)弹丸速度与行程公式
5)内弹道基本方程
由上述经典内弹道方程组可知,计算时改变任意一个内弹道参数都会使计算结果发生明显变化,内弹道计算结果(如最大膛压、弹丸出炮口速度)与内弹道参数之间建立了明确的函数关系。在参数取值范围内,内弹道计算结果对这些参数连续可导,即存在着连续可导的函数关系。为此,可把它们考虑成在这些参数取值范围内的连续可导函数,即:
式中,yj代表最大膛压Pm、弹丸出炮口速度Vg等,xi代表可调整的内弹道参数χ、θ、K、f 等,n 为要调整的参数个数,k 为计算结果个数。
2 粒子群算法及其改进
粒子群优化(Particle Swarm Optimization,PSO)算法是一种基于群体智能的演化计算方法。1995年,美国社会心理学家James Kennedy 和电器工程师Russell Eberhart 对鸟类群体行为进行建模和仿真,受研究结果的启发提出了粒子群优化算法。该算法模拟了鸟类的觅食行为,将求解问题的解空间类比成鸟类的飞行空间,并把每只鸟抽象成一个既没有质量也没有体积的粒子,用一个粒子来表征问题在可行域内的一个可能解,将寻找问题最优解的过程看成鸟类寻找食物的过程,以此用来求解复杂的优化问题。
由于基本粒子群算法的惯性权重为一定值,缺乏对粒子群速度的动态调节,容易使粒子群陷入局部最优进而使其出现收敛精度差的问题;同时,基本粒子群算法的学习因子c1、c2也为定值,不能很好地平衡粒子的全局搜索能力和局部搜索能力。针对上述问题,本文算例使用了改进后的粒子群算法,即通过动态调整惯性权重w、学习因子c1、c2的方法对火炮内弹道进行多参数符合计算。
2.1 算法原理
粒子群算法首先在解空间中随机生成初始化粒子群,待优化问题的变量数决定解空间的维数。在粒子有了初始位置和初始速度后开始迭代寻优,在每次迭代中,每个粒子通过跟踪两个“极值”来更新自己在解空间中的位置和速度:一个极值就是粒子自身所找到的最优解,这个解叫做个体极值点;另一个极值是整个种群目前找到的最优解,这个极值叫作全局极值点。假设在一个D 维的目标搜索空间中,有N 个粒子组成一个群落。粒子在空间飞行时,具有速度和位置两个特征,在每次迭代中,粒子i 第j 维的速度vij和位置xij按如下的表达式进行更新:
其中,vij为第i 个粒子的运动速度,i=1,2,…,N,j=1,2,…,D,T 为当前的迭代次数,w 为惯性权重,c1、c2为学习因子,r1、r2为[0,1]范围内的均匀随机数,pij为第i 个粒子的个体极值,xij为第i 个粒子的位置,pgj为所有粒子的全局极值。
2.2 惯性权重w 的改进
惯性权重w 表示保留原来速度的程度,一个较大的惯性权值有利于全局搜索,而一个较小的惯性权值有利于局部搜索。本文为了更好的平衡算法的全局搜索与局部搜索能力,提出了一种非线性递减惯性权重,其表达式为:
其中,wstart为初始惯性权重,wend为迭代至最大次数时的惯性权重,k 为当前迭代次数,Tmax为最大迭代次数。一般来说,惯性权值取值为wstart=0.9、wend=0.4时的算法性能最好。这样,随着迭代的进行,惯性权重由0.9 逐渐递减至0.4,有利于迭代初期的全局搜索和迭代后期的局部搜索。非线性递减惯性权重的变化规律如图1 所示。
图1 惯性权重的变化曲线
从惯性权重曲线的变化规律可以看出:初始迭代的时候惯性权重值w 较大,有利于在迭代初期寻找出满足条件的局部最优值;在接近最大迭代次数时惯性权重w 较小,有利于在寻找到局部最优值之后能够快速地收敛逼近于全局最优值,提高运算效率。
2.3 学习因子c1、c2 的改进
学习因子c1表征粒子的“个体认知”,即粒子自身对最佳运动方向做出的判断;学习因子c2表征粒子的“社会经验”,即粒子受周围环境影响而对最佳运动方向作出的判断。本文为了更好地平衡算法的全局搜索与局部搜索能力,使学习因子c1和c2动态化,其表达式为:
其中,k 为当前迭代次数,Tmax为最大迭代次数。动态学习因子c1、c2的变化规律如图2 所示。
图2 学习因子的变化曲线
从学习因子曲线的变化规律可以看出:在迭代初期,学习因子c1取值较大而c2取值较小,目的是让粒子多向自己的个体最优值学习而向全局最优值少学习一些,增强粒子的全局搜索能力;迭代中期,学习因子c1和c2的值趋于2,这有利于均衡粒子的全局搜索能力和局部搜索能力;在迭代后期,使学习因子c1取较小值c2取较大值,目的是让粒子快速向全局最优解靠拢。
2.4 适应度函数
对于多目标优化问题,要想使每个目标函数都达到最优值往往是很难办到的,因为各个单目标的优化往往是相互制约的,不能同时达到最优解。这就需要各个单目标的最优解相互协调,以便取得整体最优结果。本文算例采用目标规划法,直接使用内弹道特性值的符合误差之和作为适应度函数,其函数形式如下:
其中,f(X)为适应度函数,n 为单目标个数,fi(X)为第i 个单目标函数,fi*是第i 个单目标的最优值,这里取内弹道的试验值。
2.5 改进粒子群算法计算流程
改进粒子群算法中的粒子在自身经验引导和其他个体的影响下,实现复杂空间最优解的搜索,其具体计算流程如下:
1)初始化粒子群,包括群体规模N,每个粒子的位置xi和速度vi;
2)计算每个粒子的适应度值F[i];
3)对每个粒子,用它的适应度值F[i]和个体极值Pbest(i)比较,如果F[i]<Pbest(i),则用F[i]替代Pbest(i);
4)对每个粒子,用它的适应度值F[i]和全局极值gbest(i)比较,如果F[i]<gbest(i),则用F[i]替代gbest(i);
5)更新粒子的位置xi和速度vi;
6)更新粒子的惯性权重w 和学习因子c1、c2;
7)进行边界条件约束;
8)如果满足结束条件(误差足够小或达到最大迭代次数)退出,否则返回2)。
3 算例及分析
目前内弹道方程组通常采用数值方法求解,本文采用四阶龙格-库塔法(RK-4)进行内弹道微分方程组的求解。
查阅相关的资料及根据现有的经验可确定各符合参数的取值范围如表1 所示。
表1 符合参数的取值范围
本文算例以某型57 mm 高射炮内弹道参数为基础,查阅相关资料可知某型57 mm 高射炮内弹道参数如表2 所示[4];符合计算后内弹道参数值与初始参数值的对比见下页表3 所示;符合计算后的弹道特征值与初始弹道特征值的对比如表4 所示。
表2 某型57 mm 高射炮内弹道参数
表3 内弹道参数符合计算结果
从表4 的计算结果可以看出,符合计算后的误差之和为3.16%,而初始误差和为6.55%,误差减小了3.39%,证明了使用改进后的粒子群算法进行火炮内弹道符合计算的合理性。符合计算后的理论设计值与试验值吻合度更好,使理论的内弹道曲线具有更高的精度。符合计算过程中的适应度函数值变化过程如图3 所示,符合计算前后的膛压曲线和弹丸速度曲线如图4、图5 所示。
图3 适应度值变化曲线
图4 符合前后压力变化曲线
图5 符合前后速度变化曲线
表4 内弹道特性值符合计算结果
从图3 可以看出,适应度值在粒子群迭代120次以后逐渐趋于平稳,表明适应度函数在120 次以后逐渐收敛于全局最优解;从图4、图5 可以看出,符合后的最大膛压较试验值偏大,但与试验值的偏差较初始值小;而炮口速度较试验值小,但与初始值相比,更加接近试验值。
4 结论
本文对粒子群算法进行了改进,即采用了恰当的速度更新权重和适当的动态学习因子,提高了粒子的全局搜索能力和收敛速度,同时能有效避免粒子群陷入局部最优。文中选择了燃速指数N、绝热指数θ 与武器类型有关的常数K、火药力f 这4 个内弹道参量进行符合计算,实际使用中可根据需要和参数对弹道特性的影响程度选取不同的参数。使用改进后的粒子群算法对某型57 mm 高射炮进行内弹道参数符合计算,算例证明该算法收敛速度快,符合精度高,可作为内弹道参数符合计算的理想方法之一。除此之外,改进后的粒子群算法还可以应用于机械结构优化、建筑工程项目管理、智能天线等多个领域。