BP神经网络在弹丸落点预测中的应用

2021-11-17 04:31王良明
计算机仿真 2021年2期
关键词:弹丸弹道落点

王 森,王良明,傅 健

(南京理工大学能源与动力工程学院,江苏 南京 210094)

1 引言

现代战争中,对目标的精确打击已成为影响战争结局的关键因素,越来越多的国家开始把精确打击作为弹箭技术发展的重要方向。要准确地命中目标,就需要对弹丸的落点进行准确的预测,从而根据预测落点与目标点的偏差来调整弹上的执行机构,使弹道得到修正,从而减小弹丸的脱靶量[1]。

目前主要采用弹道积分外推法来预测弹丸的落点[2],该方法首先需要根据不同弹丸的运动特性建立外弹道方程,然后把弹丸飞行过程中某一点的飞行状态参数带入外弹道方程作为方程的积分初值,接着采用龙格库塔法对弹道方程进行积分解算,直到弹丸落地,从而获得弹丸的落点位置。弹道积分外推法的解算精度由弹载计算机的性能和积分步长决定。要想获得较高的精度就需要选择较小的积分步长,这会使得解算时间过长、所需计算资源较多,同时积分过程中的累积误差也会增大。在弹道积分外推法的基础上,一些学者把卡尔曼滤波法引入到了弹丸落点的预测中[3-5],在一定程度上降低了随机噪声和累计误差对预测精度的影响。引入卡尔曼滤波虽然提高了积分外推法的容错能力,但其需要建立较为准确的系统状态模型和量测模型,由于弹道模型是非线性模型,因此在滤波的过程中会使计算量增大,从而使解算时间增长。还有学者提出了使用多项式拟合预测落点的方法[6-7],通过拟合弹丸各状态变量与飞行时间的关系来计算落点。该方法的解算时间较快,但在精度上还有待提升。

近年来,越来越多的智能算法被应用于系统控制、模式识别、性能预测等领域,其中,人工神经网络是使用较为活跃的一种方法。人工神经网络受到生物神经网络运行机理的启发,采用分布式并行运算的方法来对输入的信息进行处理,并且在输入信息的传递过程中使用了非线性激活函数,使其具有非线性映射能力和容错性,非常适用于处理非线性系统的问题。因此,本文把人工神经网络算法和弹丸落点预测问题相结合,提出了基于BP人工神经网络的弹丸落点预测方法。

2 BP神经网络

2.1 标准BP算法

BP神经网络(Back Propagation Neural Network,BPNN),即反向传播神经网络,属于多层前馈型神经网络,具有输入层、隐含层和输出层,各层之间的神经元采用全连接的方式,每一层中的神经元互不相连。BP神经网络采用输入信号正向传递和输出误差反向传播的监督式学习规则,是目前各种人工神经网络模型中运用最为广泛的一种,具有较为成熟的理论体系[8]。输入信号在网络中的正向传递会产生网络的实际输出,通过比较实际输出与输入信号的期望输出,得到网络的误差,将得到的误差从输出层传入网络,采用梯度下降法对网络各层的权值和阈值进行修正,当样本的输出误差收敛于设定误差时,结束训练过程,得到网络模型。典型的三层BP神经网络结构如图1所示。

图1 BP神经网络结构图

图中,xj为输入层第j个神经元的输入,j=1,2,…n;wij为输入层第j个神经元到隐含层第i个神经元之间的权值,i=1,2,…h;bi为隐含层第i个神经元的阈值;φ为隐含层的激活函数;wki为隐含层第i个神经元到输出层第k个神经元之间的权值,k=1,2,…m;ak为输出层第k个神经元的阈值;ψ为输出层的激活函数;yk为输出层第k个神经元的输出。

1) 信号的正向传递过程。

隐含层第i个神经元的输入neti和输出oi为

(1)

(2)

输出层第k个神经元的输入netk和输出yk为

(3)

(4)

2) 误差的反向传播过程。

对于每一个样本p,设其输出层第k个节点的期望输出为Tk,则此样本的二次型误差目标函数Ep为

(5)

得出样本的期望输出和网络正向输出之间的误差后,给定学习率η,就可根据梯度下降法按照误差目标函数的负梯度方向对输出层和隐含层的各参数进行调整。

输出层权值的修正量和阈值的修正量为

(6)

(7)

隐含层权值的修正量Δwij和阈值的修正量Δbi为

(8)

(9)

2.2 标准BP算法的改进

标准BP算法使用的是非线性规划方法中的最速下降法,其要解决的问题是让设定的误差目标函数达到最小值,即让网络的实际输出与期望输出最为接近,从而获得网络各层权值和阈值的最优值。因为其按照误差目标函数的负梯度方向来计算网络各参数的调整量,所以存在陷入局部极小值的问题,并且标准BP算法也需要较长的时间来训练网络以使误差收敛[9]。为解决标准BP算法的不足,已提出了一些改进的方法,如变学习率算法、附加动量算法、高斯-牛顿算法、共轭梯度算法、Levenberg-Marquardt(LM)算法等数值优化算法。在这些改进算法中,LM算法是高斯-牛顿算法的变形,常用于最小化作为其它非线性函数平方和的函数,所以非常适合于神经网络误差目标函数的优化[10-11]。本文采用LM算法对标准BP算法进行改进。

设x为网络各层权值和阈值构成的向量,其修正量为Δx,有

xk+1=xk+Δx

(10)

式中,k为迭代次数。

误差目标函数为

(11)

式中,e(x)为实际输出与期望输出的误差。

由牛顿法则有

Δx=-[∇2E(x)]-1∇E(x)

(12)

式中,∇2E(x)为E(x)的Hessian矩阵,∇E(x)表示梯度,两者的计算式为:

∇E(x)=JT(x)e(x)

(13)

∇2E(x)=JT(x)J(x)+S(x)

(14)

式中,S(x)为误差函数,J为雅克比矩阵,两者的计算式为

(15)

(16)

对于高斯-牛顿法则,有

(17)

LM算法改进了上式,Δx的计算式为

(18)

式中,μ为比例系数,μ>0;I为单位矩阵。

可以看出,LM算法是梯度下降算法和高斯-牛顿算法的结合。当μ的取值较大时,LM算法近似于前者;当μ的取值较小时,LM算法又接近于后者。因此,LM算法综合了二者的优点,使训练网络所需的时间短、网络误差的收敛过程稳定,并且更容易得到全局最优值。

3 BP神经网络的落点预测方法

3.1 网络结构的确定

根据外弹道理论[2],弹丸当前状态参数与弹丸落点之间存在着非线性关系,形式为

O=F(I)

(19)

式中,O为落点信息,I为弹丸当前状态参数。

由于BP神经网络对非线性映射有着很好的逼近关系,所以可以通过BP神经网络得到弹丸当前状态参数与落点之间的一种映射关系F′(I),使得F′(I)→F(I),即可通过F′(I)得到弹丸的落点信息。

考虑到弹丸在飞行过程中参数的易获得性,选择弹丸当前位置在地面坐标系中的分量x、y、z和速度在地面坐标系中的分量vx、vy、vz作为神经网络输入层的输入,弹丸落点信息(射程X和横偏Z)作为神经网络输出层的输出。

由Kolmogorov定理知,对于给定的任一连续函数,可通过一个三层的神经网络来实现其映射关系[12]。当隐含层层数过多时,会使误差的反向传播变得复杂,可能导致误差函数收敛时间过长甚至出现无法收敛的情况。因此,本文选择的隐含层数为1层。对于隐含层神经元节点数目的选取,目前并无确定的选择方法,较多的是使用经验公式来确定其数目[13]

(20)

式中,n1为输入层神经元个数,n2为隐含层神经元个数,n3为输出层神经元个数,a为常数(取值0~10)。通过对隐含层神经元节点数目不同取值的仿真,本文最后选取隐含层节点数为13。

综上所述,本文选取的用于弹丸落点预测的神经网络结构为6-13-2,如图2所示。

图2 落点预测的BP神经网络结构

3.2 网络的训练

本文用于BP神经网络训练的弹道数据通过在不同的初始射角条件下使用四阶龙格库塔法解算六自由度外弹道方程得到。射角范围设置为从6°开始,每隔2°计算一条弹道,直到射角为70°时停止;四阶龙格库塔法的积分步长设置为0.005s;弹丸状态参数的采集时间为发射后5s至落地前5s,采集间隔为0.5s。将采集到的状态参数与落点信息一一对应,共得到4646组数据集。为了避免在训练过程中出现过拟合现象,提高网络的推广能力,将数据集的80%设置为训练数据集,20%设置为验证数据集[14-15]。在开始网络的训练之前,还需要对数据进行归一化处理,使输入数据的值在0到1之间,以消除数据间数量级的差别对网络训练的影响,归一化公式为

(21)

式中,xi为归一化后的数据,xk为待归一化的数据,xmin为数据序列的最小值,xmax为数据序列的最大值。

按上述方法训练建立的BP神经网络,待网络的误差收敛后就可得到用于预测弹丸落点的神经网络模型,过程为:

1) 将仿真得到的数据集划分为训练数据集和验证数据集,并归一化数据集;

2) 初始化神经网络各层的权值和阈值;

3) 利用训练数据集对网络进行训练,根据网络的实际输出和期望输出之间的误差以LM算法来修正网络各层的权值和阈值;

4) 利用验证数据集的网络输出对训练过程进行过拟合情况的监控;

5) 当网络的输出误差达到最优时,停止网络的训练过程,得到落点预测的神经网络模型;

6) 输入新的弹丸飞行状态参数到训练好的模型中,网络输出预测的落点信息。

4 仿真结果及分析

4.1 网络训练结果

按照上文所述的方法训练BP神经网络,训练结果如图3所示。

图3 网络训练误差收敛曲线

从图中可以看出,网络的输出误差以指数形式下降,并逐渐接近于所设定的误差值。训练集与验证集的输出误差下降趋势一致,网络的训练过程稳定。当训练次数达到1612次时,输出误差为6.7012×10-7,虽然还未降到设定误差值10-7,但此时验证集的输出误差已达最小,因此训练过程提前停止,避免训练结果出现过拟合的情况。

4.2 落点预测仿真结果及分析

选择训练数据集外的三组弹道数据(射角分别为35°、45°和55°),并从每组弹道数据中随机挑选30个弹道状态点,以这30个状态点的状态参数(x、y、z、vx、vy、vz)作为测试数据,输入已训练好的BP神经网络模型中,来预测弹丸的落点。三组数据对弹丸射程和横偏的预测误差分别如图4和图5所示,每组数据预测误差绝对值的最大值、最小值和平均值如表1所示。

图4 射程预测误差

图5 横偏预测误差

表1 预测误差结果统计

由仿真结果可知,三组数据的射程预测误差均不超过10m,横偏预测误差均不超过2m,经过训练的BP神经网络以较高的精度实现了弹丸当前状态参数(x、y、z、vx、vy、vz到落点信息(X、Z)的映射。在实际应用中,可以扩大神经网络训练数据集中的数据量,以得到更高精度的预测结果。

同时,从三组弹道数据共90个弹道状态点中随机选择10个状态点,分别统计数值积分法和BP神经网络法的落点解算时间,结果如表2所示。

表2 落点解算时间

从解算时间的统计结果看,数值积分法的平均耗时为246.15ms,BP神经网络法的平均耗时为24.99ms,BP神经网络法在弹丸落点预测的解算时间上也有一定的优势。在实际应用中,训练过程可离线完成,只需要把训练好的神经网络模型装入弹载计算机中用于弹丸落点的实时预测,因此可以节省大量的训练时间,满足弹丸落点预测的快速性要求。

5 结论

为实现弹丸落点预测的快速性和准确性,本文引入了BP神经网络算法,并对标准BP算法进行了改进。以改进的BP神经网络算法为基础,建立了弹丸落点预测的神经网络模型,然后利用大量的弹丸状态参数(x、y、z、vx、vy、vz)和落点信息(X、Z)对建立的模型进行训练,最后对训练得到的神经网络模型进行了落点预测的仿真测试。仿真结果表明,射程预测误差的最大值和最小值分别为9.332m和0.009m,横偏预测误差的最大值和最小值分别为1.933m和0.024m;同时该方法的弹丸落点平均解算时间比数值积分法少了221.16ms。因此,本文提出的方法能以较高的精度预测弹丸落点,并且解算时间优于数值积分算法,可以为弹丸落点预测的实际应用提供参考。

猜你喜欢
弹丸弹道落点
水下截卵形弹丸低速侵彻薄钢板的仿真分析
一种基于遥测信息的外弹道择优方法
弹道——打胜仗的奥秘
空化槽对弹丸入水特性影响研究
电磁炮弹丸的高速侵彻贯穿研究
深空探测运载火箭多弹道选择技术全系统测试研究
奇妙的导弹弹道
关注有效落点 优化交往策略——小学英语课堂师生交往策略
究竟是谁干的
心的落点