基于遗传算法的BP神经网络火炮身管烧蚀磨损量预测
2019-12-26王国辉张宝栋李向荣
王国辉,张宝栋,李向荣
(陆军装甲兵学院 兵器与控制系,北京 100072)
火炮炮口射弹初速是火炮内外弹道的重要参数,是衡量火炮性能的重要指标。炮口射弹初速的下降,会引起射击距离缩短和散布面积增大等问题。对于压制火炮,直接影响火炮系统的首发命中率和首群覆盖率;对于坦克炮,初速下降会减少坦克炮射程和动能弹的穿甲效能,而引起火炮初速减退的主要原因就是身管的烧蚀磨损作用,因此,建立火炮身管烧蚀磨损量预测模型,能够有效预测身管烧蚀磨损量的变化趋势,对于估算火炮内弹道性能具有重要意义。
在借鉴国内外研究的基础上,针对身管磨损量难以建立确定的数学模型,采用实测方法又存在很大的不便性,因此,预测算法在身管磨损量的估算中应用广泛,但大部分预测算法只是单纯的建立预测模型,存在预测结果不佳,实用性不强等缺点。
反向传播(Back Propagtion, BP)算法是近年来兴起的重要的智能算法之一,在其他各个领域中早已有人展开研究,但在军事领域还很少见,同类方法在文献[1-2]中有应用,但仅依靠BP神经网络进行预测。因此,笔者提出了基于遗传算法(Gene-tic Algorithms, GA)和反向传播算法的火炮身管磨损量预测模型。利用GA算法对网络进行优化,并与未优化的BP网络预测结果进行对比分析,发现经过优化后的网络模型的预测精度更高,能够为火炮身管烧蚀磨损量提供有效预测[1]。
1 身管内膛烧蚀磨损分析
身管内膛烧蚀磨损量Δd是影响火炮初速变化的主要原因,也是引起内弹道性能变化的重要因素[3],通过测量火炮身管磨损量,对实验测量数据进行分析,得到烧蚀磨损的一般规律,根据该规律建立预测模型,有助于提高模型与实际磨损状况的贴合度,对于提高模型的准确性具有重要意义,还增强了结果的可信度。
利用专门的身管内膛直径测量仪器对某型坦克炮身管内膛固定点处的直径进行测量。坦克炮身管内膛截面每隔60°测量一次,取平均值作为该固定点处的内径磨损量值。选取多门磨损程度不同、射弹发数不同的坦克炮,通过实弹射击获取各弹种射弹发数与磨损量之间的对应数据,并结合该型坦克炮多年积累的磨损数据进行记录,表1为采集于火炮身管全寿命周期内的磨损数据,即火炮身管从装配部队到报废的整个寿命周期,涵盖身管烧蚀磨损各个阶段的特征数据,能够适应不同坦克炮在不同烧蚀磨损情况下的身管烧蚀磨损量预测。表1中当该型坦克炮身管磨损量达到3.42 mm时,已不能满足火炮射击要求,宣告身管报废。
火炮身管烧蚀磨损量是由于发射弹丸时弹丸与身管之间的相互作用而引起的,且随着射弹数目的增加磨损量也在不断增大,而且,不同弹种的坦克炮弹对身管的烧蚀磨损程度也不尽相同,根据这一规律,建立相应的预测模型,可以实现从不同弹种的射弹数目到磨损量的映射。
表1 某型坦克炮身管内膛固定点处磨损量
分析表1中的数据并结合坦克炮身管专家经验可知,身管的烧蚀磨损一般分为3个阶段:在发射弹丸初期,身管内膛只存在少量磨损,内膛表面良好,火炮的内弹道性能变化不明显;超过一定数量后,开始明显磨损,这一时期的内膛磨损状态变化无规律可循;在继续发射一定数量弹丸后,身管的烧蚀磨损程度逐渐增大,火炮的内弹道性能逐渐下降,符合一定的变化规律。因此,对身管的烧蚀磨损量进行预测要考虑身管全寿命周期内的烧蚀磨损变化,而不能只对寿命周期内的某一阶段展开研究,通过测量、记录全寿命周期内坦克炮射弹数和身管烧蚀磨损量能更准确地反映内膛烧蚀磨损的变化情况,从而建立的预测模型适应性更强,可信度更高。
2 基于遗传算法的BP神经网络
2.1 BP神经网络
BP神经网络是一种强调网络采用误差反向传播的学习算法[4]。数据首先从输入层到输出层的方向向后传播,计算网络输出与期望值的误差,再从输出层向输入层的方向向前传播,这个过程就是对各层的连接权值和阈值不断调整的过程,其目标是使网络输出值与期望值的误差最小。BP神经网络具有很强的自适应和推广概括能力,特别适用于求解内部机制复杂的问题,对于火炮身管内膛烧蚀磨损机制复杂的这类问题十分适用。然而,在BP神经网络实际应用中,由于是按误差函数的负梯度方向对权值进行调整的,其优化计算经常容易陷入局部极小值中;此外,BP网络采用迭代更新的方式确定权值,需要一个初始权值和阈值,初始值的选取对于BP神经网络十分重要,初始值的过大过小都会对性能产生很大的影响,这就需要与其他人工智能算法结合才可有效改善算法性能[5]。
2.2 基于遗传算法的BP神经网络
遗传算法(GA)是一种通过模拟自然界生物进化过程来搜索最优解的方法[6]。按照所确定的适应度函数,采用selection、crossover、mutation 3个主要的遗传算子对种群中的个体进行操作,通过在个体间不断交换染色体信息,使种群得以进化,最终使适应值好的个体得以保留,而适应值差的个体则在进化过程中被逐渐淘汰,种群中的个体经过不断进化,逐步逼近最优解,并且由于遗传算法既不关注设计变量与目标函数之间的数学关系,也不需要目标函数梯度等信息来确定搜索方向,故很适合用来对参数进行优化[7]。充分利用GA算法全局搜索的特性实现对种群的优化功能,将适应度函数最高的个体保留,以该个体对应的权值和阈值作为BP神经网络的初始值,从而达到优化网络模型的目的,这克服了BP网络对初始值的依赖,有效提高了网络性能和收敛速度。算法流程如图1所示。
由于火炮身管内部的烧蚀磨损作用机制复杂,各种因素交叉影响,并且目前火炮身管均采用镀铬技术进行保护,镀层的剥落存在很强的随机性,要建立准确的数学模型是很困难的,也是不现实的。采用BP神经网络建立火炮身管烧蚀磨损量的预测模型,根据实验测量数据对模型进行训练,利用GA算法对网络进行优化,能够显著提高BP算法性能和预测模型精度,因此,笔者提出基于遗传算法的BP神经网络来建立身管烧蚀磨损量的预测模型。
3 身管烧蚀磨损量的GA-BP预测模型
以不同弹种射弹数作为BP网络的输入,身管烧蚀磨损量作为网络输出,建立基于遗传算法的BP神经网络身管磨损量预测模型,利用表1中实验测量得到的坦克炮身管磨损量和射弹数目的数据对网络展开训练,并对网络性能进行测试。模型的建立主要分为BP神经网络结构的确定、遗传算法优化、网络训练和网络仿真4个方面。
3.1 神经网络结构的确定
研究表明3层BP神经网络能够用相应的输入向量和输出向量逼近任何有理函数[8],因此,选用3层神经网络来构建身管磨损量的预测模型,分别为输入层、隐含层和输出层。一般地,要进一步提高网络性能,降低误差,可以选择适当增加隐含层数,但这会使得网络结构趋于复杂化,运行速度减慢,因此,遵循一般网络结构设计准则:优先考虑增加隐含层中的神经元数,可以达到与采用多层隐含层相同的目的,还可更容易地观察训练结果。
图2中,m1、m2、m3是指坦克炮常用的3个弹种穿甲弹、破甲弹和榴弹的射弹数目,IW和LW代表各层之间的连接权值。
3.2 遗传算法优化
在对神经网络展开训练之前,首先引入GA算法对BP网络初始值进行优化,设定参数:种群规模为50,进化代数为100,交叉概率为0.6,变异概率为0.05.具体优化过程如下:
1)初始值编码。采用实数编码方式对网络权值和阈值进行编码,编码长度由各层所含神经元的个数决定。设置的BP神经网络拓扑结构为3-6-1,则共有3×6+6×1=24个权值,6+1=7个阈值,所以遗传算法个体编码长度为31.
2)种群初始化。选择的种群规模为50.
3)计算适应度函数。针对BP神经网络,期望值和网络输出值的误差越小,表示染色体越优[9],因此,以种群中所有个体与对应的目标样本的误差平方和作为染色体的适应值E,计算公式为
(1)
式中:N代表样本数量;T为期望值;Y为模型输出值。最后计算个体的适应度值Efit=1/E.
4)数据归一化。在进行遗传操作和神经网络建模训练前需要完成对表1中数据的归一化处理,目的是将所有数据都转化为[0,1]之间的数,方便数据的操作处理,使其更适合于神经网络的训练,并可保证程序在运行时收敛加快,增加网络的预测精度,减少预测误差[10]。归一化处理公式为
(2)
式中:x*和x分别为归一处理后和处理前的数据;xmax和xmin分别为样本数据的最大值和最小值。
5)使用MATLAB的GA工具箱进行优化操作,获得种群最优个体后,对个体的最优解进行解码操作,得到BP神经网络的初始权值和阈值,达到优化BP神经网络的目的。
图3为求解过程中的适应度函数变化曲线,其中,虚线为平均最优适应度变化曲线,实线为个体适应度变化曲线。从图3中可以看出适应度函数曲线在开始过程中增长很快,在40代遗传操作后逐渐趋于平缓;到大约60代以后,进化过程中种群的平均适应度与个体适应度基本达到最大值,且在曲线上有相互趋同的形态,没有振荡现象发生,表示算法收敛进行的很顺利;同时,种群中的适应度函数变化曲线趋同后,连续若干代没有发生进化,表明种群已经成熟[11],直到最大进化代数100次时算法停止。
3.3 神经网络的训练
采用GA算法完成BP神经网络的优化,赋给网络初始值之后,就可以开始对网络进行训练。在训练之前需要设定BP网络参数,采用附加动量法对网络展开训练,最大训练次数设定为1 000次,学习率为0.5,期望误差设定为0.000 1,附加动量因子为0.8,其中,用trainlm函数(Levenberg-Marquardt训练规则)进行训练。根据采集的22组数据,选用第1~17组样本作为训练数据,第18~22组样本作为检验数据[12]。
网络训练过程如图4所示。网络经过53次训练,收敛到要求精度0.000 1,此时,已获得训练成功的BP神经网络,表明该BP网络已具备预测能力。
3.4 仿真预测结果对比
利用神经网络工具箱中的sim函数对训练好的BP网络进行仿真。图5为BP神经网络预测结果。
图6为GA-BP神经网络预测结果。经过与图5的对比,从图中可以直观地发现,两种方法预测值与期望值的变化趋势完全一致,预测值和期望值都非常接近,但加入GA算法优化后的网络预测精度更高,拟合程度更好。
考虑到与同类BP算法进行对比,结果说服力不强,引入GM(1,1)灰色预测模型对身管烧蚀磨损量进行预测,预测结果如图7所示。
表2为3种预测模型的精度对比。
表2 3种模型预测精度对比
可见,3种预测模型中,采用BP神经网络的预测模型的平均相对误差均小于GM(1,1)灰色预测模型,而采用GA算法优化后的模型预测精度比两者都高,得到的身管烧蚀磨损情况与事实情况相吻合,检验样本平均吻合度高达98.6%,相比GM(1,1)和BP模型,检验样本的平均相对误差分别减少了0.658%和0.544%,反映了加入遗传算法优化后网络模型的优越性,从而证明了算法的可行性和建模的准确性,预测结果可在实际应用中发挥重要作用。但表2中编号为18的样本加入遗传算法优化后的预测精度小于未优化的BP算法,主要原因在于BP算法的本身,它的计算过程是一种软计算,包含一定程度上的随机性,因此,出现这种情况是正常的。从整体的检验结果来看,还是优化后的预测精度高度优化前的预测精度。
利用表1中火炮全寿命周期内身管烧蚀磨损量与射弹数之间的对应数据进行建模预测,得到的结果适合火炮身管全寿命周期内烧蚀磨损的各个阶段,相比同类的其他算法都更具有优势;并且与实验测量数据的拟合程度较高,预测精度在允许的误差范围内,能更全面地反映火炮身管烧蚀磨损的变化趋势及一般规律[1]。
BP神经网络中各层之间的连接权值大小代表着输入变量对输出变量的影响程度,根据建立的身管烧蚀磨损量预测模型,可得到BP网络的权值和阈值矩阵,根据网络中各层之间的连接关系,可计算得出不同弹种对身管烧蚀磨损的影响程度,可为身管磨损计算提供参考方法。
4 结束语
通过对身管内膛烧蚀磨损量进行测量,分析烧蚀磨损的一般规律,引入GA算法,建立GA-BP神经网络预测模型,降低了预测值的相对误差,预测精度与实测数据的平均拟合度达98.6%,这表明GA-BP网络能够准确描述身管内膛磨损量与不同弹种射弹数目之间复杂的非线性关系,从而验证了算法的可行性以及模型的实用性。火炮身管烧蚀磨损量GA-BP预测模型的建立能有效预测磨损量的变化情况,避免了实验测量仪器操作时的不便性,节省了大量人力物力资源;同时,利用预测模型能自动完成烧蚀磨损量的预测,可为身管寿命估算提供参考;并且通过烧蚀磨损火炮的内弹道方程组可对内弹道性能的变化情况进行求解,并在射击时予以修正,对于提高火炮首发命中率具有重要意义。