基于BP神经网络的自行高炮车体姿态预测方法研究
2021-10-26郭峰谢立中周成于存贵
郭峰,谢立中,周成,于存贵
(1. 南京理工大学 机械工程学院,江苏 南京 210094;2. 湖北江山重工有限责任公司 火箭炮研究院,湖北 襄阳 441057)
0 引言
自行高炮在高速射击过程中,车体在三维空间上产生六自由度的无规律平移与转动,尤其是3个方向的转动以及车体自身的弹塑性变形,对自行高炮的射击精度产生较大影响。为了确保自行高炮的射击精度,需要实时、准确地获得车体姿态信息,火控系统根据当前的姿态信息对跟踪和解相遇问题进行相应的修正计算[1]。
何思婷[2]提出通过激光扫描传感器对车体姿态进行测量的方法。通过采用4台二维激光扫描传感器及补偿算法有效地测量了车体姿态。杨凌霄等[3]利用陀螺仪和加速度计惯性传感器共同组成惯性测量单元,用于检测小车当前的倾斜角度和角速度,通过对两者数据进行融合来得到更加准确的倾角信息,从而完成小车的姿态检测。孟凡东等[4]通过数学建模和仿真分析,对自行高炮车体姿态测量误差对射击诸元的影响进行了分析研究。梁传建等[5]通过建立某火炮上装部分的非线性有限元动力学模型,研究火炮射击时座圈的动态响应。
综合对载车姿态获取方法的研究,目前技术都难以实现在几十毫秒内获得准确的姿态数据。为解决此问题,本文通过仿真获取样本数据,基于BP神经网络训练学习构建关于车体姿态的预测模型,实现任何射角、连续射击发数条件下对车体姿态的实时预测。
1 预测模型总体方案
自行高炮射速极高,每发射击间隔只有几十毫秒,连续射击时,车体姿态与射角,射击发数难以通过简单的函数关系进行相互映射,而复杂的数学模型又无法满足对每发射击之后的车体姿态实时计算并传输结果的要求。本文提出一种基于BP神经网络的车体姿态预测方法,图1为预测模型构建的总体方案。通过仿真均匀获取不同射角下车体振动的姿态数据,将方向角、高低角、射击发数作为输入,绕规定坐标轴的3个姿态角作为输出构建训练样本库,设计网络结构,经过训练获得关于射角和射击发数的姿态预测模型。BP神经网络属于多层前向神经网络,网络采用误差反向传播的学习算法,理论上可以实现任何非线性映射[6]。
图1 总体方案
2 某自行高炮刚柔耦合动力学建模
2.1 全炮拓扑关系
自行高炮的发射过程,由于各零部件之间存在不可消除的间隙以及各部件的弹塑性变形,是极其复杂的载荷与振动冲击过程。为了能够通过建立动力学模型模拟整个发射过程,在不影响最终计算精度的情况下,需要对系统做一定的简化。将全炮分为起落部分、回转部分(去除俯仰)、下座圈、驾驶室、车体、前桥、中桥、后桥和4个千斤顶,在软件中赋予各部件与实际结构之间的等效质量、质心及转动惯量等相关参数。
全局坐标系定义:全局坐标原点位于两前轮中心在地面上的投影,且x为前后方向,指向车头为正,z为上下方向,向上为正,根据右手定则确定y轴方向。高炮在射击时,各部件之间会产生相对运动,根据其功能及运动关系,确定全炮拓扑关系(图2)如下:起落部分与回转件之间、回转件与下座圈部分之间分别采用旋转副连接(h1、h2),下座圈、驾驶室、前桥部分、中桥部分、后桥部分(考虑实际射击只有4个千斤顶支撑,轮胎处于离地状态,故轮胎与地面之间无相互作用,且分别合并在车桥部分)及4个千斤顶与车架之间采用固定副连接(h3、h4、h5、h6、h7、h8、h9),4个千斤顶与大地之间通过多分量力和力矩来模拟其相互作用力(h10、h11)。
图2 全炮拓扑关系
2.2 车架柔性化
针对某自行高炮射击时采用千斤顶支撑,轮胎离地,车架的弹性变形是影响载车姿态的主要因素,故需要对车体柔性化处理。在有限元软件中将车架简化为壳,在车架与其他部件连接处创建外连接点,通过MPC(多点约束)模拟实际各部件与车架的连接方式[7]。车架的网格划分采用S4R四节点壳单元,共划分131 415个单元,如图3所示。考虑到某高炮车架的复杂程度,提取前30阶模态。图4为构建好的全炮刚柔耦合动力学模型。
图3 车架网格划分
图4 全炮刚柔耦合动力学模型
2.3 模型验证
在自行高炮的下座圈边缘部分以45°为基准对称选取4个传感器安装位置,为保证测试数据的准确性及可靠性,对安装平面进行二次加工,采用转接式螺栓胶粘法安装传感器,以提高安装精度,通过四点阵元法测量实弹射击时载车振动加速度,传感器位置如图5所示。在实弹试验中,加速度传感器将车体的振动加速度信号转换成电信号,信号调理模块将信号进行滤波和放大处理,信号最终在PC端动态显示并存储。将采集到的加速度信号经过小波及带通滤波,通过4个点求取座圈中心的角加速度,同工况下的仿真数据做同截止频率的滤波处理,稳定状态做幅值对比,通过调节仿真模型参数最终达到精度要求。
图5 加速度传感器安装示意图
试验采用的工况:千斤顶支撑,方向角分别为170°和93°,高低角均为0°,后坐激励均为7连发。将构建好的全炮动力学模型做同工况仿真计算,并与试验数据进行对比,对比结果见表1。由表1对比结果显示,仿真与试验结果之间的误差能够满足使用要求,说明该动力学模型能够反映该自行高炮发射时的实际振动状态,仿真数据具有一定的可靠性,可以通过仿真获得的数据构建代理模型的样本库。
表1 仿真与试验角加速度对比 单位:°/s2
3 训练样本库构建
3.1 仿真工况的设计
针对所研究的小口径高射炮,影响其车体姿态变化的初始条件主要有:方向角、高低角及射击时间。由于不同连发数的射频一样,因此射击时间统一为最大连发数所需时间,最后提取整个射击过程中随时间变化的姿态信息。根据该自行高炮的射界,采用均匀采样的方法,每10°分一组工况,方向角0°~360°取36组,高低角0°~80°取9组。针对姿态曲线强非线性特点,采用全因子分析法,仿真交叉组合后的全部工况。
3.2 数据预处理
1)数据清理
由于在仿真过程中模型因出现异常而导致一些非正常结果的出现,所以每完成同一方向角不同高低角的工况仿真之后,提取随时间变化的载车姿态曲线,做统一比较,针对异常的数据进行多次仿真并修正。完成所有仿真后,以高低角、方向角和射击发数为输入,每发末时刻车体绕x、y、z轴的转动角度为输出整理数据并导入matlab软件。
2)数据归一化
针对所构建的预测模型为多输入多输出模型,不同指标之间量纲也有所不同,原始数据之间存在较大的数量级差异,如果直接采用原数据做分析、训练模型,数值较大的指标在训练过程中会对数值较小的指标产生削弱作用。为提高最终预测模型的可靠性,需要对原始数据做归一化处理[8]。
在本次研究中采用常用的归一化方法,max-min标准化方法。通过对原始数据进行线性变换,使结果映射到[0,1]之间,转换函数如式(1)。
(1)
式中xmin、xmax分别为样本的最小值和最大值。
4 神经网络预测模型
4.1 BP网络算法
BP网络的隐含层可以为一层或者多层,图6为单隐含层的BP神经网络的拓扑结构。BP网络的隐含层一般采用Sigmoid函数作为传递函数[9],根据输出值的范围不同,可分为Log-Sigmoid函数和Tan-Sigmoid,式(2)为简单的Log-Sigmoid函数。与线性函数相比,Sigmoid函数具有更高的精度与容错性,适用于各种非线性拟合。
图6 BP神经网络结构
(2)
BP网络训练过程采用的最速下降法,假设x1=x0-η∇F(x0),当步长η足够小时,必然存在:
F(x1) (3) 所以,只需要在最开始给定初始值x0和步长η,根据x1=x0-η∇F(x0)就能够得到关于变量x0满足式(3)的序列。经过反复的迭代,最终得到函数的最小值。 F(xn+1) (4) 在实际训练过程中,标准的最速下降法往往存在收敛慢的缺点,针对这方面的不足,本次研究采用L-M(levenberg-marquardt)算法对标准BP法做改进。L-M算法是类似拟牛顿法的一种算法[10]。为了避免在速率修正过程中计算Hessian矩阵,当误差性能函数存在平方和的形式时,Hessian矩阵便可以近似地表示为 H=JTJ (5) 此时梯度为 g=JTe (6) 其中:e为误差;J是包含有性能误差函数对网络权值的一阶导数的雅可比矩阵。根据式(6),L-M算法随网络的权值做修正: ω(n+1)=ω(n)-[JTJ+μI]-1JTe (7) 式中:I为单位矩阵;μ为比例系数。当μ取0时,L-M退化为牛顿法,当μ取值较大时,式(7)等效为小步长的梯度下降法,相对Hessian矩阵,雅可比矩阵更易于计算,故效率很高。 神经网络采用matlab软件内置模块,按照需求设计网络结构及相关参数。预处理之后样本库的输入和输出均为3×8 424阶矩阵,根据规模,本次训练的网络结构选用的是单个隐含层的BP网络,输入和输出神经元均为3个。隐含层神经元采用试算法确定,传递函数选用Sigmoid函数。确定参数后,将样本导入设计好的网络开始训练。BP网络具有误差信号反向传播能力[11],当训练的结构不满足精度要求时,将进行反向权值调整,直至精度达到要求,最终训练结束。图7是在matlab中网络训练之后的回归结果,可以看出目标值和输出结果基本上在同一个直线上,训练结果比较好。 图7 网络拟合回归图 随机选取非训练样本工况,分别通过动力学仿真和训练好的代理模型计算姿态结果,采用mse(均方误差性能函数)计算误差值,检验代理模型预测的准确性[12]。mse的计算公式为 (8) 式中:N为向量长度;y1、y2分别为动力学仿真与代理模型计算值。 本次验证采用的工况为:方向角55°,高低角0°,射击发数为25发。图8-图10分别是仿真与代理模型预测绕不同方向的结果对比。由结果可以看出,两种方法得到的姿态结果相差很小,通过BP神经网络构建的代理模型可以很好地对不同工况下车体姿态做预测。 图8 绕x方向 图9 绕y方向 图10 绕z方向 针对某自行高炮射击过程中难以实时测量车体姿态的问题,本文通过构建全炮刚柔耦合动力学模型,并以试验数据做验证,结合L-M算法BP神经网络构建车体姿态预测的代理模型。结果表明,代理模型能够对射击时的车体姿态进行预测,并且满足精度要求。训练好的代理模型可作为黑匣子,射击前通过输入射击初始条件,将预测得到的车体姿态数据传输至火控,为火控在射击过程中调整火炮射击姿态提供依据。4.2 L-M算法
4.3 网络训练
4.4 预测模型验证
5 结语