基于Vega的导弹制导视景仿真系统
来源:第三维度
作者:杜亚琦,陈 涛,高伟
视景仿真是虚拟现实技术的最重要的表现形式。它是一种可以使用户产生身临其境感觉的交互式仿真环境,实现了用户与所仿真的环境直接进行自然交流。视景仿真采用计算机图形图像技术,根据仿真的目的,构造仿真对象的三维模型或再现真实的环境,达到非常逼真的仿真效果¨J。随着精确末制导武器的研制和发展,多模复合精确末制导导弹仿真技术研究已成为精确制导武器的先导技术。在节省研制费用和缩短研制时间的同时,更重要的是为导弹提供校验和分析手段,最终为多模复合精确导导引头系统提供演示验证平台。文中选用了业界领先的视景仿真软件MuhiGen Creator和Vega,并结合VC++MFC开发出精确末制导导弹视景仿真系统。
1 视景开发环境
为了达到逼真的效果,在仿真系统中,需要预先建立复杂的三维场景模型;同时在仿真过程中,会要求对这种复杂的三维场景模型进行实时渲染。
Paradigm公司提供的建模工具Muhigen Creator和开发工具Vega无疑是在虚拟现实领域的业界领先的建模和仿真软件平台。
1.1 Vega
Vega是一个用于建立实时仿真和虚拟现实应用程序开发的高性能软件环境和工具库。Vega包括友好的图形环境界面Lynx、完整的C语言应用程序接口API、丰富的相关实用库函数和一批可选的功能模块,因此能够满足多种特殊的仿真要求,将Vega的应用范围扩展到各个领域。由于Vega大幅度地减少了源代码的编程,使软件的维护和实时性能的进一步优化变得更加容易,从而大大提高了工作效率。
1.2 Creator
Multigen Creator是一套高逼真度、最佳优化的实时三维建模工具,它能够满足视景仿真、交互式仿真以及其他的应用领域的要求。它是惟一将多变性建模、矢量建模和地形生成集成在一个软件包中的手动建模工具,能进行矢量编辑和建模、地形表面生成。其强大的建模功能可为众多不同类型的图像发生器提供建模系统及工具,它的诸如层次细节(LOD)、多边形筛选、逻辑筛选、绘图优先级以及分离面等高级实时功能使得OpenFlight(。fit)格式在实时三维领域中成为最流行的图像生成格式,并成为视景仿真领域的行业标准 J。OpenFlight数据格式的逻辑化层次场景描述数据库会使图像发生器知道在何时以何种方式实时的、无以匹敌的精度及可靠性渲染三维场景。
2 视景仿真建模
视景仿真建模分为2个部分:场景建模和场景驱动。场景建模是将所要仿真的场景和对象通过数学方法表达成存储在计算机内的三维图形对象的集合。场景驱动是指先通过Lynx界面建立应用程序定义文件 。adf定义虚拟场景中的元素属性及其相互关系,然后使用Vega一套完整的用于开发交互式、可视化的软件平台和工具集实现驱动、控制、管理虚拟场景并能够方便的实现大量特殊视觉和声音效果,从而形成最终的虚拟应用程序 。其基本框架如图1所示。
图1实时仿真应用程序创建过程
2.1 场景建模
系统仿真过程:攻方是一枚巡航导弹,目标是海上的舰船,导弹由发射台发射,在一定的高度上红外制导开始工作,其测角信息经处理后跟踪目标直至命中目标。因此在本仿真系统中,我们设计2个实物模型:导弹和舰船。导弹制导仿真系统主要针对导弹的飞行姿态和飞行轨迹进行模拟,所以导弹的模型需要根据实际导弹进行精确建模。需建立4个舵面和4个弹翼,并且为了能对其控制,为每一个舵面和弹翼建立一了个自由度,即为每一个舵面和弹翼建立一个集合层节点。舰船为导弹攻击的对象,不需要对其进行复杂的控制,只要做的使场景更加逼真即可,所以用纹理映射技术来代替,以提高渲染的速度,来满足实时性的要求。
2.2 场景驱动
利用Creator建立了实物模型之后,利用Vega的Lynx图形用户界面来生成ADF文件,对Vega应用程序中系统、窗口、通道、场景运动体、观察视点、运动模型等进行初始化配置。在导弹制导视景仿真系统中,重点对几个参数进行设置:
1)通道:为了可以同时监控导弹和舰船,在这里设置了2个通道,分别观察导弹和舰船。
2)观察者:除了分别在2个通道建立两个观察者之外,还需要建立2个无通道观察者,分别监控导弹和舰船,以便能在任一个通道可以同时观察导弹和舰船遭遇的场景。
3)场景运动体:导弹和舰船分别建立场景运动体。为了便于在各个角度观察导弹运行的状态,需要改变视点的位置,这就需要建立一个观察者运动体,此运动体不附着任何实体,位置和导弹保持一致,控制此运动体的运动规律内以达到改变视点的目的 。
2.3 导弹与舰船的碰撞检测建模
导弹和舰船的碰撞检测是导弹制导仿真系统的一个核心,检测的准确与否直接关系到制导效果的评测。文中选用一种有效的弹体与目标的碰撞检测的算法。依据武器发射装置、弹体和目标之间的内在联系,通过矩阵变换和立体解析几何的计算,建立碰撞检测所需的各种判断。针对目标形状的复杂性,将描述目标几何性质的数据离散化,采用规范的数据结构,建立相应的数据库 J。另外,为进行碰撞检测,需建立目标各面面表mi:{m ,m ,},m。,为第。面的一个节点号,用于查找该节点的坐标,m 为第面可见面标志。m =0,第 面不可见;m ,=1,第面可见。弹体是否命中目标,可通过监测目标的各可见面上是否有的弹着点来实现,如果弹体与可见面有交点,则可判定弹体通过目标占据空间,即弹体命中目标。
3 视景仿真实现
此系统是基于HIA 的导弹制导仿真系统,这样可以把主要工作集中在研究系统性能,而不必考虑底层的仿真互操作和网络通信等问题,可以快速建造一个分布式仿真系统。系统中有4个联邦成员(也叫节点),包括导弹弹道仿真节点、红外成像制导节点、视景仿真节点和仿真控制节点。仿真开始,各节点向RTI发出请求,申请加入联邦执行,RTI根据各节点提出的申请在相应的联邦执行中注册一个实例,分配给对象惟一的标识符ID,并向各节点返回该成员函数的句柄。红外成像制导节点收集数据传输给弹道仿真节点,经过处理计算出导弹的弹道数据,并将导弹的位置、速度、飞行姿态等信息实时地传输给视景仿真节点,视景仿真节点接收导弹弹道仿真节点计算出的弹道数据,并把接收到的数据以三维可视化的形式表现出来。
当联邦执行结束时,仿真控制节点控制仿真的结束,向所有成员发出结束仿真执行的消息,各节点接到消息后,结束本地的仿真程序执行,然后向RTI发送操作完成消息。当联邦执行中最后一个节点退出时,RTI、撤销服务进程结束运行。然后根据碰撞检测的结果进行评测 一 。
视景仿真节点利用Vega提供的API函数进行编程,驱动场景。首先要初始化,通过函数vgInitSys()、vgDefineSys()、vgConfigSys()来初始化系统,vgInitFx()来初始化特效,vgInitMarine()初始化海洋模块。18j初始化程序如下:
UINT runVegaApp(LPVOID pParam )
{
vgInitWinSys();//初始化窗口
vgDefineSys();初始化Vega文件
vgConfigSys();//配置系统 ’
vgInitMarine();//初始化海洋模块
vgInitFx();//初始化特效模块
return 0;
}
将从弹道仿真节点接收到的二进制数串转换成导弹的位置坐标及姿态角信息是程序的一个核心。
弹道数据输出的是以二进制字符串表示的浮点型数,这里我们定义一个字节指针P和一个浮点型指针q,每接受8个字节一起赋给q,然后再继续接受,这样就可以把接受到的二进制数还原成浮点型数据赋给导弹的相应坐标。主程序代码如下:
{
1 BYTE P;//output btye
2 float q;//transition var。
3 int i://sum of byte
4 CString str,temPSTr;//mid character string
5 i=0;//clear i
6 q address of input var。// input value
7 for(i is between 1 and 4){//condition of count
8 (P+i)=the seventh value;}
9 cout < < ‘‘the value of coordinate is P” :
10 clear P
11}
4 仿真结果的视景显示
运行该仿真系统,视景仿真节点能将舰船航行、导弹寻找和命中目标的飞行过程以及爆炸场景以三维可视化的界面显示出来。通过显示的结果能够直观地判断导弹最终是否击中目标,由此可以衡量和检验导弹导引性能的好坏。图2是导弹高空飞行的场景,主通道显示导弹飞行,次通道显示舰船航行。 图3是导弹经红外成像末制导命中目标的场景。
图2 高空飞行的导弹
图3 击中目标场面
5 结束语
此仿真系统初步建立了导弹制导视景仿真系统,将弹道计算的结果以三维视景仿真技术展示出来,使仿真效果更直观、更形象、更逼真,可以更好地验证弹道仿真的效果,达到了预期的结果。该系统具有一定的军事科研价值和商业市场潜力,在制导研究、武器设计方面都有非常重要的意义。
参考文献:
[1]吴义明,齐欢.导弹对抗的视景仿真[J].计算机仿真,2005(8):01—04.
[2]MuhiGen—Paradigm Ine.MuhiGen Creator User‘S Guide(Vision 2.4.1)[z].Ballas:USA MultiGen—ParadigmIne,2001.
[3]杭皴,王晓锋,杨国来,等.基于MuhiGen Creator/Ve—ga的虚拟现实仿真系统[J].弹箭与制导学报,2007(01):02—03.
[4]MultiGen—Paradigm Ine.Lynx User’S Guide(Vi—sion 3.6) [z].Ballas:USA MuhiGen—Paradigm Ine,200 1.
[5]高颖,黄罗军.导弹模拟训练系统中的碰撞检测技术研究[J].弹箭与制导学报,2007(27):02—04.
[6]王海波,康凤举.基于HLA的分布式作战视景仿真系统开发[J].计算机仿真,2005(09):0l一03.
[7]李漾,许锦洲.基于HLA的雷达对抗仿真系统研究[J].指挥控制与仿真,2007(29):01—03.
[8]龚卓容.Vega程序设计[M].北京:国防工业出社,2002.