中国科技核心期刊      中国指挥与控制学会会刊     军事装备类重点期刊
工程实践

步战车低空打击视景仿真系统设计与实现*

  • 肖仁强 ,
  • 吴盘龙 ,
  • 周竹青
展开
  • 南京理工大学, 江苏 南京 210094

作者简介:肖仁强(1991-),男,江西上饶人,硕士,研究方向为火炮视景仿真。

吴盘龙(1978-),男,研究员,博士生导师。

周竹青(1997-),女,本科。

收稿日期: 2017-06-17

  修回日期: 2017-07-26

  网络出版日期: 2022-04-29

基金资助

*国家自然科学基金(61473153)

航空科学基金(2016ZC59006)

江苏省六大人才高峰(2015-XXRJ-006)

Design and Implementation on Visual Simulation System of Infantry Combat Vehicle Low Altitude Shooting

  • XIAO Ren-qiang ,
  • WU Pan-long ,
  • ZHOU Zhu-qing
Expand
  • Nanjing University of Science and Technology, Nanjing 210094, China

Received date: 2017-06-17

  Revised date: 2017-07-26

  Online published: 2022-04-29

摘要

以承担低空防御任务为研究背景,对某型号步兵战车视景仿真系统进行设计。基于Vega Prime/Multigen Creator软件,并以Visual C++.net作为程序设计与开发平台,首先通过卡尔曼滤波器对空中目标的位置、速度等测量数据进行估算;然后将求得的数据导入航迹仿真程序解得火控的射击诸元;再依据外弹道方程组对步兵战车发射的炮弹进行飞行轨迹仿真,最终击中目标。所用到的相关技术有DOF、碰撞检测,以及刀刃、火焰、爆炸等各种特效。该程序能完成步兵战车打击目标的整个仿真流程,仿真效果图表明仿真效果良好。

本文引用格式

肖仁强 , 吴盘龙 , 周竹青 . 步战车低空打击视景仿真系统设计与实现*[J]. 指挥控制与仿真, 2017 , 39(5) : 80 -84 . DOI: 10.3969/j.issn.1673-3819.2017.05.017

Abstract

To study the background of bearing low-altitude defense mission, the visual simulation system of a certain kind of infantry combat vehicle is designed. First of all, based on Vega Prime/Multigen Creator and takeing Visual C++. Net as a programming and development platform, the Kalman filter is used to measure the informations of the target, including the location, the speed etc; Then the obtained data is imported the channel simulation program, the fire control program finds the answer of firing data; Then, based on the exterior trajectory equations, the track of the shell which is fired by the combat vehicles is simulated. Finally the shell hits the target. The related technologies used are DOF, impact checking, as well as a variety of blade,flame, explosion and other special effects. The program can complete the whole process of infantry combat vehicle strikes the target. According to the simulation results given, it shows that the simulation results are good.

视景仿真又名虚拟现实仿真,是当代最具潜力的科学技术之一。视景仿真通过计算机对对象数学建模和研究,构建出一个虚拟环境,从而给人带来“沉浸式”感受[1]。本文所要仿真的步兵战车能有效地打击轻型装甲车辆、有生力量和低空飞行目标等。针对打击低空飞行目标,实际中存在开销费用大等问题,因此,不能频繁采用实物进行实弹练习[2]。为了减少训练成本,本文采用视景仿真经济、直观、逼真地再现步兵战车打击直升机的三维动画场景[3]

1 Vega Prime介绍

Vega Prime是MultiGen-Paradigm公司开发的三维虚拟场景实时再现软件,其特点包括界面友好、功能齐全、面向对象等。由于它大幅减少源代码的编写,使得软件的进一步维护和实时性能的优化变得更加容易,从而大大提高了开发效率。同时,它还拥有一些具有特殊功能的模块,用于满足特定的仿真需求[4]。Vega Prime主要包括6个方面的优点:1)可移植性很好;2)与C++STL(Standard Template Library)兼容;3)可扩展第三方插件;4)支持MetaFlight文件格式;5)支持double数据类型;6)支持OpenGL 1.2和DirectX。

2 仿真系统介绍

基于Vega Prime的视景仿真分为仿真模型构建、LynX Prime图形界面配置和仿真程序开发三部分[5]。仿真模型构建:利用Creator软件建立实体模型和战场三维地形[6]。建模工具采用Multigen-Paradigm公司下另一款软件Multigen Creator,包括步兵战车、炮弹、直升机等三维实体模型,Creator的很多用途得通过配套的Vega Prime才能体现出来。LynX Prime图形界面配置:只通过友好的编辑界面就可以调用接口函数来配置参数,完成后直接将配置文件(.acf)导出生成C++代码,极大地简化了应用程序的开发过程。视景仿真程序开发:该部分为核心内容,通过处理内部数据和帧循环,完成整个仿真过程,整个视景仿真框架如图1所示。
图1 视景仿真系统框架

2.1 虚拟场景模型构建

2.1.1 空间坐标系

要进行模型的建立,首先需要对坐标系的相关知识进行了解。在Vega Prime的众多坐标系中,笛卡尔直角坐标系为软件默认的坐标系类型。(XYZ)表示物体在直角空间中的位置,(HPR)表示物体在直角空间中的姿态,H是朝向Heading的值,取正表示左旋转,取负表示右旋转;P是斜度Pitch的值,取正表示向上旋转,取负表示向下旋转;R是转角度Roll的值,取正表示运动转向右边旋转,取负表示运动转向左边旋转。这就是所谓的六自由度,坐标系满足右手定则。一般情况下,观察者在坐标系中的初始位置方向是位于负Y轴上,面向正Y轴。坐标系如图2所示。
图2 Vega Prime中笛卡尔坐标系

2.1.2 实体模型

视景仿真构建模型时,为了使模型更加真实化,同时简化组成模型的数据结构,常用到这些功能:外部引用、实例、公告牌、LOD、DOF、贴图等[7]。外部引用是一种帮助管理模型重复复制的模型组织机制;实例的机制类似于外部引用;公告牌用于解决建模时,视线方向的改变对“草”、“树木”这一类景物的观赏效果的影响;LOD处理视线远近对应模型不同细致程度;DOF控制模型的部分节点按给定的角度进行旋转或平移;贴图是使用规定的贴图文件格式,包括jpg、rgba、inta,使得模型表面与实际情况相符合,也称为纹理贴图技术。贴图是Creator、3DMax等建模软件用于处理模型表面细节的基本手段,带来的优势是可以用更少的内存和计算消耗来提高运行速度。图3(a)-(d)分别给出直升机模型贴图前、贴图后效果图和步兵战车模型贴图前、贴图后效果图。
图3 (a) 直升机模型贴图前效果图
图3 (b) 直升机模型贴图后效果图
图3 (c) 步兵战车模型贴图前效果图
图3 (d) 步兵战车模型贴图后效果图

2.1.3 三维地形

本次步兵战车视景仿真的环境设置在戈壁上。Creator的一个插件地形模块用于处理高程文件,高程数据在地形上表现为多个方块形单元,单元上的经纬度数据表示坐标系上XY方向的数值,单元上的“标签”表示坐标系上Z方向的数值,即海拔高度。为了便于管理大范围地形数据,采用分块批量处理方式将其分为多个多边形,每个分块可以独立生成一个文件,然后在生成整个地形时通过外部引用将这些子文件导入。
进行地形可视化仿真建模,首先要获取地形数据,可到相关的地理信息资源库网站上下载现成的DED文件,或者利用Creator本身的转换工具将下载的高程文件转换成DED格式文件,然后设定地形LOD;再进行最重要的任务,三维地形数据库的建立与优化。该部分包括各种参数、属性设定,主要有地形投影参数、批处理参数、三角化算法、等高格属性、贴图参数等。Creator提供了四种不同类型的三角形化转换算法[8],用来将数字高程数据转换为地形模型数据。生成地形模型数据库的流程如图4所示。
图4 地形建模流程图

2.2 系统软件介绍

为了实现步兵战车打击直升机的视景仿真程序设计,使得程序更加清晰便于改动,将不同功能的部分进行模块化封装。如图5所示,整个仿真程序由界面管理模块、算法模块、数据处理模块、控制模块和动画显示模块等五个部分组成,各模块功能如下:
图5 系统模块结构框架
1)界面管理模块:基于MFC框架的应用界面控制系统;
2)算法模块:对目标进行卡尔曼滤波预测[9-11],龙格-库塔法求解弹道微分方程组;
3)数据处理模块:保存与传送数据;
4)控制模块:处理消息映像机制和实时控制仿真循环;
5)动画显示模块:设置四个通道同时对视景仿真过程进行观察。

2.3 系统功能介绍

火控算法主要包括两大部分:航迹滤波以及射击诸元解算[12]。该视景仿真开始前,通过界面设置目标初始状态,经卡尔曼滤波得到一系列表达目标位置与姿态的数据,再把数据导入到航迹仿真程序,最终得到相对于该航迹下不同时刻的射击诸元。仿真开始阶段,首先跟踪目标,当达到设定的射击条件时,步兵战车发射炮弹击中目标。整个功能流程图如图6所示。
图6 仿真阶段功能流程图

3 关键技术与解决途径

3.1 MFC消息映像机制

MFC的消息驱动机制及其基于对话框的各种控件为数据处理提供了极大的方便[13]。在参数设置界面上,本文通过添加自定义消息来实现仿真动画演示和控件上目标滤波数据更新显示同时进行。为此需要从CWnd类派生的类响应一个消息,并为该继承类添加消息的处理函数。但在此之前,要确保句柄m-hWnd关联一个窗口,然后向该句柄发送自定义消息。将代码添加到仿真循环中,并通过自定义消息映像机制,为该消息WM-MYMSG关联响应函数,实现滤波数据显示。

3.2 键盘输入设备

在视景仿真阶段,随着实体模型的移动,可能会导致物体偏移甚至脱离通道内观察者的视角。本文通过编码来实现键盘对观察视角的控制,使得被观察者始终处于观察者视角之内。Vega Prime提供了相关的键盘类来对应键盘的全部功能键。为了使用方便,我们像声明主线程函数一样,定义声明一个键盘函数。在函数内部,通过条件判断语句,来实时检测相关按键的布尔输入源。当某个按键被按下,则执行该条件判断语句下的具体代码来实现视角的移动。需要注意的是,在定义完键盘函数之后,还需要把该函数设置成对应窗口的键盘函数,即让函数的参数获取到窗口的指针。

3.3 场景特效显示

为了使得仿真效果更加生动,Vega Prime采用粒子系统的方式来实现环境特效,同时为了避免冗余繁杂的编程,提供了界面友好的图形用户配置工具Lynx Prime来定义粒子系统的相关属性,配置好之后可直接导出生成C++代码[14]。所有场景显示特效都继承于基本特效模块(vpFx模块),vpFx是所有基本特效的抽象基类,它涉及的参数包括使能Enable、设置触发碰撞检测TriggerIsector、整体颜色OverallColor、纹理文件TextureFile等。本文所使用的爆炸、火焰等自然现象,都是基于粒子特效创建的。粒子系统可以看成由多个绕点旋转的“公告牌”(即其正面朝向观察者)组成。这些“公告牌”便是基本粒子群,它们经过组合形成特效的基本形态,用于表现物体的属性与行为[15]
Vega Prime的有专门管理粒子属性的API,粒子在其生命周期内的尺寸变化、颜色变化、缩放比例、运动特性等各种属性可以通过各自对应的表采用线性插值设置。但表本身是私有的,所以需要通过函数对它进行访问。另外,粒子生命周期的时间是归一化的。下面介绍本文用到的几种专用粒子特效。
当炮弹出炮管的一瞬间,由于自身的高速度,在与空气发生摩擦时,导致后面气体与弹体摩擦后带有很高温度产生等离子体辐射,也就是实际射击时所看到的火焰,炮管产生的火焰特效效果如图7所示。建立一个火焰特效的步骤是:
图7 炮管末端火焰特效
1)确定特效发生的位置。由于炮管在仿真阶段会移动,故在进行特效触发之前,需要建立一个转换。转换定义了一个节点,同时创建了一个局部坐标系,将位置设置在炮管末端。根据Vega Prime应用程序的父子关系,首先让转换成为炮管的子节点,再让火焰特效成为转换的子节点,从而实现火焰特效在未触发之前始终随着炮管的移动而位于其尾部。
2)创建特效实例对象。该部分为核心,管理着火焰特效的各个参数设定,包括特效的颜色、缩放比例、材质文件和持续时间等,所创建的特效会被保存在容器队列中。
3)特效的触发。默认情况下,关闭特效的触发方式。当仿真到发射炮弹的阶段时,通过代码直接调用。
同理,炮弹击中直升机所产生的爆炸特效的建立步骤与火焰特效大致相同。不同之处在于,爆炸特效的触发方式为某碰撞检测事件发生时运行。即给碰撞检测实例对象的距离参数设置一个合理的值,当炮弹朝直升机飞行,它们之间的垂直线段距离小于设定值时,爆炸特效触发。爆炸特效效果图如图8所示。
图8 直升机爆炸特效图
爆炸发生时产生的碎片特效以及直升机坠毁后的燃烧特效的制定过程同样依照上述步骤进行。它们的配置方法可归纳为一般性:创建特效,设置参数;将特效依附于所需的对象上,可以是场景、转换甚至是其他特效。

3.4 自由度节点DOF应用

Creator中模型的另一种表现形式在层次面板区,里面的每一个长方形代表了模型中的一个元素,称之为节点。其中的自由度节点DOF是一种可以在模型中实现旋转、平移、缩放等的可控节点。为了令仿真结果更加真实化,有画面感,需要让步兵战车的炮塔和炮管在仿真过程中实现一定程度的转动。
根据火控解算程序得到的方位角和高低角等射击诸元,在操作炮塔和炮管DOF之前,必须首先获得DOF指针,由于两个DOF指针都在步兵战车上,则首先需要得到步兵战车的指针:
vpObject *gaopao=vpObject::find("lav25");
然后获取DOF:
vsDOF*m-turret=static-cast<vsDOF*>(gaopao->find-named("turret"));
m-turret->ref();
vsDOF*m-barrel=static-cast<vsDOF*>(gaopao->find-named("maingun"));
m-barrel->ref();
函数ref()作用是增加引用计数,因为Vega Prime实例创建后的初始参考计数为0,而引用计数达到零时,实例将会被删除,ref()函数便是为了避免意外删除实例。最后在循环仿真阶段,通过定义的炮塔和炮管的指针去调用相关函数,实现相对应部位的转动。

3.5 控制物体透明

实际军事打击中,炮弹在击中目标后发生爆炸。在视景仿真中,采用将炮弹设为透明使其在触发爆炸特效后消失。本文把控制物体透明功能编写成一个静态函数,该函数的参数分别为物体对象指针和设置是否透明的布尔值。在函数实现部分,首先使用结构体vrAlphaTest::Element,其中的一个数据成员m-enable为布尔型,取值1.0时表示透明,值为0.0时表示不透明。然后,通过模型对象的几何体获取几何体的状态,并利用状态对象修改元素的值。
最终,在主线程的帧循环判断中,定义一个对象的静态指针变量和一个静态逻辑值来调用该透明控制函数。

4 结束语

利用键盘上的WASD键可以控制主窗口左上方俯视通道的视角上下左右移动,同样可以利用键盘的上下左右键控制左下方的步兵战车通道视角。窗口多通道显示的效果图如图9所示。
图9 视景仿真窗口多通道显示
本文基于Vega Prime的步兵战车低空打击视景仿真系统,实现滤波,模拟跟踪、发射炮弹和打击目标的整个过程。结果表明,该视景仿真满足一定的 “沉浸式”体验,能够较逼真、直观地还原真实场景。
[1]
万明, 樊晓光, 南建国, 等. Vega Prime视景仿真开发技术[M]. 北京: 国防工业出版社, 2015.

[2]
钟孟春, 李程, 张春林, 等. 步兵战车反坦克导弹三点法导引弹道视景仿真[J]. 计算机仿真, 2014, 31(9):24-27,37.

[3]
申海荣, 王新民, 赵凯瑞. 基于Vega/MFC的直升机视景仿真设计[J]. 计算机测量与控制, 2010, 18(10):2385-2388.

[4]
王孝平, 董秀成, 郑海春, 等. Vega Prime实时三维虚拟现实开发技术[M]. 成都: 西南交通大学出版社, 2012.

[5]
单显明, 吴家龙, 夏宏森. 基于Vega Prime的炮兵雷达视景仿真系统[J]. 火控雷达技术, 2010, 39(2):65-68.

[6]
杜君, 梁强, 姚凡凡. 虚拟战场环境程序化地形细节生成方法[J]. 装甲兵工程学院学报, 2013, 27(4):80-85.

[7]
赵建荣, 江浩. 基于creator的无人机飞行器三维建模和优化技术研究[J]. 自动化技术与应用, 2014, 33(11):18-21.

[8]
陈琼. 基于Creator的四种地形转换算法研究[C]. 系统仿真技术及其应用2008年学术会议论文集, 上海: 上海机电工程研究所, 2008.

[9]
Wu P L, Zhang X Y, Cao H J. Combining the IMM with second order debiased converted measurement for detonation control[J]. International Journal of Computational Science and Engineering, 2017, 14(1): 84-91.

DOI

[10]
Wu P L, Zhang L Z, Zhang X Y. The design of DSP/FPGA based maneuvering target tracking system[J]. WSEAS Transactions on Circuits and Systems, 2014, 13:75-84.

[11]
Liu J L, Wu P L, Li X X, et al. Maneuvering Target Tracking with Radar/IR Heterogeneous Measurements[J]. Journal of Aeronautics, Astronautics and Aviation, 2015, 47(4):369-376.

[12]
刘恒, 梅卫. 火控系统仿真软件设计与开发[J]. 火力与指挥控制, 2010, 35(12):126-128.

[13]
戚泽华, 杜小菁, 廖炎平, 等. 基于 VEGA PRIME 的集束火箭仿真训练系统的研究[J]. 系统仿真学报, 2010, 22(2):366-369

[14]
张晶, 李青, 陈义军, 等. 基于Vega Prime的环境特效与爆炸特效实现技术[J]. 自动化技术与应用, 2010, 29(9):23-26.

[15]
周迎春, 房凌晖, 郑翔玉, 等. 基于粒子系统的虚拟战场烟雾特效仿真[J]. 计算机仿真, 2015, 32(7):417-420.

文章导航

/