APP下载

基于虚拟现实平台的弹丸三维模型驱动及实现

2018-04-04张德键焦志刚王珞冰

兵器装备工程学报 2018年3期
关键词:刚体质心弹丸

张德键,焦志刚,王珞冰

(沈阳理工大学 装备工程学院, 沈阳 110159)

炮弹作为现代战争中最主要的大规模杀伤性武器,一直受到各国军队和武器研究者们的关注。为了能观察到炮弹在外弹道的运动,提高火炮炮弹的散布和打击精度,增加炮弹射程,火炮研究者们提出了很多设计方案。张斐[1]设计了一种机械装置,通过ADAMS和Workbench进行模拟实验,模拟出了3种不同类型弹丸的飞行姿态。李华等[2]采用3DMAX进行渲染,将Simulink与虚拟现实语言相结合实现了弹丸六自由度刚体弹道的可视化仿真。张进强等[3]将MATLAB与OpenGL结合,实现了基于数值仿真实时驱动的弹道可视化平台,该平台可以对炮弹的飞行轨迹、姿态、散布等进行仿真分析。张维[4]建立了弹丸六自由度刚体弹道的Simulink模型,并在MATLAB的GUIDE环境下,建立了外弹道的可视化系统。

虚拟现实技术自诞生以来,就一直受到军方的青睐。安兴等[5]介绍了美军在构建战场、单兵训练、异地同环境作战训练、军事指挥人员训练、武器装备研制及信息网络虚拟战等7个方面虚拟现实技术的应用现状及发展。栾悉道,谢毓湘等[6]从现实战场,单兵模拟训练、近战战术训练,多兵种联合演习等4个方面分析了虚拟现实技术在军事上的应用现状,并在高新武器研发、军事地图、军事医学救治和远程操控机械设备等方面阐述了虚拟现实技术在军事上的发展前景。王彪等[7]结合虚拟现实技术,设计了一种军用桥梁半实物仿真模拟训练器的研制方案。

本文将重点研究如何借助虚拟现实技术实现将弹丸六自由度刚体弹道方程的计算数据与弹丸三维模之间的传递方法。并验证这种方法的可行性,得到弹丸刚体外弹道的可视化视景仿真。

1 数学模型

弹丸外弹道方程组可分为质点弹道方程组和六自由度刚体弹道方程组,对比这两种方程对弹丸外弹道的描述,质点弹道方程是在忽略马格努斯力、科氏惯性力和全部力矩的情况下建立的,描述的是理想状态下弹丸的运动,在该状态下,可将弹丸当作质点,弹丸的运动轨迹呈不对称的抛物线。质点弹道方程只能描述弹丸的外弹道轨迹[8]。

弹丸六自由度刚体弹道方程中包含了精确、复杂的角运动,其可以看作是弹丸质心运动方程和弹丸绕质心运动方程组成。质心运动方程和绕质心运动方程建立在不同的坐标系下,本文选用地面坐标系、弹道坐标系建立弹丸质心运动方程,选用第一弹轴坐标[9]系建立弹丸绕质心运动方程。

弹丸质心运动方程:

弹丸绕质心运动方程:

其中:v为弹丸速度,θa为速度高低角,ψ2为速度方向角,x、y、z为弹丸位置坐标,ωξ、ωη、ωζ为3个坐标轴方向的角速度,φa为弹轴高低角,φ2为弹轴方位角,Mξ、Mη、Μζ分别为外力矩在弹轴坐标系上3个坐标轴方向的上的分量,Jξ为转动惯量,γ是弹丸转速,方程具体内容请参考文献[9]。

2 计算数据的传递

要想准确描述弹丸在空气中的飞行轨迹和飞行姿态,需要知道弹丸运动的位置坐标,旋转的角速度以及各角度变化等数据。使用弹丸六自由度刚体弹道方程计算出弹丸飞行时的位置坐标值,3个轴方向的角运动以及弹丸的章动角和偏航角的变化。如何将这些数据通过脚本传递到弹丸的三维模型上是准确描述弹丸在空气中的飞行轨迹和飞行姿态的关键步骤。

弹道仿真运行脚本采用迭代的编程思想,设置一个迭代的步长Dt,该步长值是一个浮点型的参数。让弹丸外弹道计算的初始值加上该初始值与步长Dt的乘积,将这一次计算的数值赋予第一次计算的数值A1。再将A1的值加上A1值与Dt的乘积赋予A2,依次类推,直至方程中弹丸y轴的位置坐标小于0为止,数学公式描述如下:

A1=A初+(A初×Dt)

程序运行逻辑框图如图1。

方程只迭代一次是不能实现实时传递数据的,这里需要将弹丸六自由度刚体弹道方程的迭代脚本写在Unity脚本中的Update()函数下[10]。这个函数会在每一帧渲染前被调用,一次刷新一帧,也就是将弹丸六自由度刚体弹道方程写在这个函数下时,Update()函数每刷新一帧,方程就会被迭代一次,弹丸六自由度刚体弹道方程的计算程序会在Update()函数下,以上述的计算方式循环,直至弹丸y轴坐标值小于0为止。将计算结果在Console显示框中输出,结果如图2所示。

3 三维模型驱动

数据计算成功后,需要将描述弹丸运动的参数赋予弹丸三维模型,因此需要调用Unity内部的Transform组件中的位置函数和旋转函数,Transform组件用于储存并操控物体的位置、旋转和缩放[11]。其中transform.postion()函数来描述物体在三维空间的位置变化,括号中对应的是物体运动的三维坐标。方程计算出的弹丸运动位置的三维坐标填写到三维空间函数Vector3()中,并将三维空间函数Vector3()的数值赋予transform.postion()函数中,在Update()函数下,transform.postion()函数实时刷新,弹丸三维模型就会以计算出的参数进行运动,使用Unity中的绘线工具,呈现出弹丸的飞行轨迹。transform.LocalEulerAngle()函数是表示物体相对于父级物体旋转的角度,当使用这个函数时,设置的角度值为绝对值,括号中获取的是物体运动的角速度。同样随着方程计算出弹丸运动角速度的刷新,弹丸三维模型将实时按照计算数据转动,呈现弹丸运动姿态。调用Instantiate()函数克隆弹丸预制物体运行效果如图3、图4以及图5所示。

4 结论

本文通过将弹丸六六自由度刚体弹道方程脚本写在Update()函数下,将方程计算的数据赋给了Unity中的Transform()函数,实现了用计算数据驱动弹丸三维模型运动,该过程实现弹丸外弹道可视化的关键步骤。通过该项技术还可以实现例如尾翼弹、导弹、水下弹药、鱼雷、火箭等武器系统的发射仿真,有助于分析在风、雨、雷电等极端环境下影响弹丸飞行的各个因素。是弹丸外弹道研究的一次新的尝试。

参考文献:

[1]张斐.弹丸飞行姿态运动学分析与模拟试验研究[D].太原:中北大学,2013.

[2]李华,陈伟伟.基于虚拟现实建模语言的弹道可视化仿真[J].探测与控制学报,2009,31(1):77-80.

[3]张进强,蒋夏军.外弹道可视化研究与实现[J].计算机工程与科学,2015,37(2):372-378.

[4]张维.基于MATLAB的武器外弹道仿真可视化技术研究[D].太原:中北大学:2014.

[5]安兴,李刚.虚拟现实技术在美军模拟训练中的应用现状及发展[J].光电与控制,2011,18(10):42-46.

[6]栾悉道,谢毓湘.虚拟现实技术在军事上的应用[J].系统仿真学报,2003,15(4):604-607.

[7]王彪,邹煜.虚拟现实技术在军事模拟训练中的应用[J].工兵装备研究,2007,26(5):52-56.

[8]钱林方.火炮弹道学[M].北京:北京理工大学出版社,2009:12.

[9]韩子鹏.弹箭外弹道学[M].北京:北京理工大学出版社,2008.

[10] 夏瀚笙,沈峘,王莹,等.三维数字图像相关法的匹配策略和应变场计算[J].重庆理工大学学报(自然科学),2017(9):110-118.

[11] Ceeger Logo视界.Unity圣典[DB/OL].http://www.ceeger.com/Script/Transform/Transform.localEulerAngles.html,2010.12.

猜你喜欢

刚体质心弹丸
重型半挂汽车质量与质心位置估计
重力式衬砌闸室墙的刚体极限平衡法分析
神秘的『弹丸』
基于GNSS测量的天宫二号质心确定
空化槽对弹丸水下运动特性的影响
巧求匀质圆弧的质心
复杂边界条件下弹丸热力耦合模型的挤进仿真
考虑刚体响应的多层响应谱抗震分析
基于某主动防护的弹丸撞击网板过载特性分析*
汽车质心高度计算及误差分析方法研究