基于Skyline的空战态势回放技术

时间:2024-04-07 点赞:48024 浏览:95359 作者原创标记本站原创

本论文是一篇目标类毕业论文格式模板,关于基于Skyline的空战态势回放技术相关毕业论文开题报告范文。免费优秀的关于目标及数据及态势方面论文范文资料,适合目标论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。

摘 要 :空战二维或三维态势显示系统已经有了一些成熟的产品,但三维态势回放应用并不多,原因在于大量态势数据的存取问题和目标的快速刷新问题,文本采用基于Skyline提供的3D空间技术,设计了相应存取方案,有效解决了这两个问题,实现了战场态势的回放、拖放、慢放、快放功能,能够直观逼真的还原战场态势,为军事人员研究战争提供重要的辅助工具.

关 键 词 :Skyline;空战态势;回放

中图分类号:TP399-CB 文献标识码:A 文章编号:1007-9599 (2012) 15-0000-02

1.引言

Skyline软件系统公司是全球领先的三维空间地理信息可视化软件供应商.TerroExplorer Pro是该软件套系中的一个产品,它提供了3D编辑器和显示空间,并二次开发接口,用户可以根据需求,开发出个性化的应用系统.Skyline利用了流(Stream)[1]的加载方式,其原理是将完整的数据划分为若干块,用户通过向系统发送请求的方式得到所需数据块的过程,这种机制节省了系统不必要的开支,大大提高了系统的运行效率.在国内,Skyline已经得到很多应用,周美娟[2]等人提出基于Skyline的三维GIS展现,已经广泛应用于系统.李虎[3]在其硕士论文中,对在Skyline中三维模型的建立、加载和二维与三维联动技术做了大量研究,但是对三维态势进行回放,国内研究较少,其难点在于态势信息的存取,因为态势信息是按照时间序列描述空战中各个目标状态和位置的数据,其特点是数据记录条数多,如一场2对1的空战,如果空战持续半小时,按照1s存储十帧,那么记录的条数约为18万条,每一条记录又包含了目标的详细信息,要进行回放时,就是把这些数据重新呈现出来.文本根据空战态势战数据的特点,设计相应的存取机制,并利用Skyline提供的二次开发方法,设计了回放机制.


2.数据准备

无论是真实的空战还是仿真空战,我们假定都能收到空战中各个目标的状态信息,这些信息都是按照一定时间间隔一帧帧发送的,系统能够对这些信息进行实时处理和存储.为减少存储空间,提高回放效率,在存储态势数据之前,需要对数据进行预处理,并建立目标与时间序号之间的索引.

2.1 去除冗余数据

去除冗余数据可以大大减少存储空间,在空战过程中,并不是所有目标的位置和状态都发生变化,这些没有发生变化的目标,就不需要存储其信息.去除静态目标信息的方法是:定义一个临时数组Temp_Target [Target ID],记录每一个目标的上一帧数据,当要存储下一帧数据时,与之比较,如果数据相同,则不存储,如果不相同,则进行存储,同时替换临时数组的值,以便与下一帧进行比较,利用该方法可以对局部重复数据进行过滤.另外,一些目标如空载导弹这样的目标,在未发射之前是绑定在飞机上,在导弹发射之前,只需记录其所属飞机编号就可以,当导弹发射以后,才开始存储该导弹的信息.

2.2 建立时间序列和更新目标之间的索引

把时间序列与更新目标之间关联起来,建立时间序列和更新目标之间索引,可以按照时间顺序找到更新的目标序号,即一个时刻对应的记录编号,通过编号得到目标信息.

2.3 数据的存取方式

经过上述的数据预处理后,把态势数据按照上述的结构逐条写入硬盘文件,当接收结束后,关闭硬盘文件.经过上述的数据预处理,一个30万条记录的空战,大小约为为5MB左右.在内存中开辟一个结构体, 完全能够临时存储.在进行回放之前,把硬盘文件中的态势数据依次读入内存中的结构体里面,为Skyline的调用做好准备.

3.解决方案

3.1 平台准备

在使用Skyline进行二次开发之前,先引入TerraExplorerX.dll动态链接库文件以后,再程序中引入3D显示空间和信息树控件,然后加载mpt格式的场景文件,还要准备准备对应的空战武器三维模型(支持的类型有.x、.dxf、.flt、.xpc或.fpc格式),在加载目标时调用.

3.2 总体设计

系统总体为数据层、逻辑层、表现层三层结构.表现层主要负责与用户进行交互,提供各种如测高、测距、捕捉目标、获取经纬度等;逻辑层是为表现层服务,提供各种服务接口,负责与数据库和Skyline提供的接口交互;数据层负责数据的存储和供应,如图三所示.

3.3 详细流程

系统主要依靠时钟函数按照一定的时钟频率读取内存中按照时间序列建立好的索引态势数据,然后利用Skyline提供的二次开发接口和3D显示控件,把目标的位置和状态显示出来,其主要流程如图四所示,首先一次性把态势数据读入内存中,然后加载mpt格式的三维场景文件到3D显示控件中,在利用时钟函数按照时间顺序读取内存中的目标参数,利用Skyline提供的接口方法,创建、移动、删除目标.还可以根据目标的移动过的位置,画出目标的轨迹,如图四所示.

3.4 目标管理

Skyline为目标的三维动态显示提供了丰富的方法,只需要结合实际需求,合理的调用现成方法,可以快速实现目标的创建、更新和删除.比如创建一个目标动态目标使用CreateDynamicObject()、创建轨迹CreatePolyline()、目标位置的移动SetPosition()、目标定位FlyToObject()等利用已有的方法,赋予各个方法的参数,就能实现该功能.在一个窗口类中,要对同一个类进行多次实例化,必须建立映射,才能区分出来,在VC++语言环境中,可以通过map类型的关联容器来实现,map[4]是键值对的集合,map 类型通常可理解为关联数组(associative array),可使用键作为下标来获取一个值,正如内置数组类型一样,值就可以使一个数值,也可以是一个对象.在VC++中构造如下:std::map m_TargetFlag;ITerrainPolyline5Ptr的一个映射.m_TargetFlag [LineName]就是目标的实例,其中TargetName是目标标识的名称.这样就可以区分各个目标在在一个场景中的实例了,通过相应的实例,进行相关的操作.

3.5 回放控制

回放控制包括快放、慢放、拖放.快放和慢放的实现原理主要是调整时钟函数的运行周期,当周期变大时,读取内存中数据的频率慢,使得用户感觉目标运动的速度也变慢.快放实现原理相同,只是把时钟函数的周期变小.拖放的实现,相对比较麻烦,上文中已经提到,建立时间与目标序号的索引值,目的就是为了进行拖放,通过拖动进度条上的滑块,得到拖放后的时间索引值,再根据索引值去更新对应的目标ID,此时场景中要进行相关的处理,对场景中所有目标进行遍历,检查器状态是否和内存中的一致,如果有目标增加,则要创建相应的目标,如果有目标减少,则要删除该目标.同时还要检查目标的位置是否发生了变化.如果发生了变化,则要把目标置于新的位置上,轨迹也要做相应增补和擦除.

4.实例分析

利用MFC框架,开发出空战态势回放的原型系统,该画面显示的是一个二对一的空战效果,图中显示了飞机和飞机划过的轨迹和一枚导弹.该态势一共有173454万条记录,空战按正常速度回放时间为34分钟左右,加载了100米分辨率的场景文件,加载时间约为10s,读取173454数据时间约为15s,当态势数据和场景数据加载完成后,该系统对计算机资源的消耗处于一个稳定状态,不会因为用户进行地图漫游,目标查询等操作而出现延时,这正是使用Skyline的优势所在,也说明本文使用的方法时合理的.

相关论文

我国旅游业的电子信息技术态势

关于电子商务及旅游电子商务及信息技术方面的免费优秀学术论文范文,电子商务相关电子商务论文题目,关于我国旅游业的电子信息技术态势相关。

石油化工污水回用处理工艺技术进展

本文是一篇石油化工论文范文,关于石油化工类函授毕业论文,关于石油化工污水回用处理工艺技术进展相关本科论文范文。适合石油化工及电化学及。

即时通信技术现状未来态势

本文是一篇即时通信论文范文,即时通信类本科毕业论文,关于即时通信技术现状未来态势相关开题报告范文。适合即时通信及通信技术及计算机技术。

水利工程堤坝防渗技术

本文是一篇水利工程论文范文,水利工程方面毕业论文提纲,关于水利工程堤坝防渗技术相关开题报告范文。适合水利工程及堤坝及城市建设理论方面。

盾构法施工技术

本文是一篇盾构施工论文范文,盾构施工有关毕业论文开题报告范文,关于盾构法施工技术相关毕业论文格式范文。适合盾构施工及盾构及地下工程方。