APP下载

模拟演练态势回放系统的设计与实现

2012-07-25石书浩郑昌文

计算机工程与设计 2012年3期
关键词:线程态势演练

石书浩,张 洁,吕 品,郑昌文

(1.中国科学院软件研究所 综合信息系统技术国家级重点实验室,北京100190;2.中国科学院研究生院,北京100049)

0 引 言

现代模拟演练仿真系统,是作战训练的重要手段之一,能够在战略和战役层次上对战争的整体和局部进行推演模拟[1]。模拟演练的一个重要目的是对作战经验进行总结提炼,因此,在演练结束后,对演练的整个态势变化过程进行记录和回放,是十分必要的。通过态势回放复盘过程,可以清晰地重现各参演方在演练过程中的战略战术运用、部队调度、后勤保障等过程,可以为各参演方进行战略分析、战法训练、经验总结以及战争评估等提供重要依据[2-3]。

态势 (Situation)是指战场空间中兵力分布和战场环境的当前状态及发展变化趋势的总称[4]。态势仿真系统可对军事地形、资源与环境等空间信息,以及我军、友军和敌军战场态势数据进行存储、检索、分析、显示和输出,为各级作战指挥人员提供全面的战场态势感知[5]。目前国内外态势仿真的研究,重点集中在通用作战图COP(common operational picture)上,研究态势可视化[6]与态势感知方法[5-6]。在态势可视化仿真方面,国内外的研究集中在不同构架下的实时推演态势仿真,如基于高层体系结构HLA(high level architecture)的态势仿真[7],基于地理信息系统GIS (geography information system)的态势仿真[8-9],分布式态势仿真系统[10]等,对态势回放的关注并不多见。

态势回放系统,不仅与通用作战图及实时推演态势仿真系统在仿真内容和仿真方法上相似,而且具有其自身的特点。由于大型模拟演练的持续时间长、参演方多、演练态势复杂,演练过程会产生海量态势数据11。态势更新频繁时,一小时能够产生10GB以上的仿真数据。态势回放系统要求能够根据仿真时间轴实时跳转,且能够支持高倍速的态势回放。因此,如何管理和调度这些海量态势数据,并以高帧率、高逼真度绘制表现出来,是态势回放系统需要解决的两大核心问题。

在某大型模拟演练系统中,演练过程中产生的数据按时间顺序存入数据库中。演练结束后,数据库中存储的数据被采集并生成为特定格式的回放文件。态势回放系统载入回放文件,解析文件中的数据,通过动态调度传输算法将数据关联到可绘制单元,采用基于OpenGL的实时绘制方法,将整个演练过程中的态势变化动态呈现在复盘界面上。

1 系统总体结构设计

模拟演练态势回放系统采用自底向上的设计思想,把系统划分为三层结构:数据层、支撑层和应用层。系统总体结构如图1所示。

图1 系统总体结构

1.1 数据层

数据层提供系统运行所需的各种数据,包括:①地理信息数据。用于绘制模拟演练区域地图。②演练模型库。用于绘制参演模型实体。③回放文件。用于绘制表现整个演练态势。其中,回放文件是最核心的数据。回放文件具有自定义的数据格式,包含以下几种类型文件:①索引文件。存储回放过程的总体信息,如起始和终止时间、帧数、每帧对应数据文件的位置等。②数据文件。存储演练过程中各参演模型实体的静态和动态数据。③事件文件。存储演练过程中的事件信息。④控制文件。存储用户自定义的回放过程的视点、过滤设置等信息。

1.2 支撑层

支撑层为回放系统运行提供数据处理与调度、时间控制与管理、绘制环境搭建和基础运算等功能。

由于演练过程数据量庞大,文件解析在一帧中即可产生大量数据,给数据处理和绘制表现带来很大负担。为保证回放过程表现的流畅度和复盘界面的绘制效率,支撑层提供一种基于数据缓冲思想的动态调度传输方法,大大提高了系统运行效率。

此外,为了使系统具有较高的绘制效率和灵活的跨平台性,支撑层为应用层创建了OpenGL绘制环境,提供基础的图形、纹理和像素绘制方法,并提供各种优化方法提升绘制效率[12]。

其他支撑方面,时间管理保证了回放过程数据调度的时序性。基础运算为裁剪、轨迹、弹道、方向角等计算提供算法支撑。

1.3 应用层

应用层在数据层和支撑层的基础上实现系统的具体应用,完成对整个回放过程的管理与控制,以及对整个演练态势的绘制与表现。

回放过程的管理与控制,一方面基于用户易用性考虑,提供丰富的操作手段,实现对演练可视区域进行场景漫游、对系统进行个性化配置、对回放态势表现的内容进行过滤性显示、对回放文件播放进行灵活控制等。另一方面基于时序控制考虑,由仿真时钟源产生时间并定时发送,控制复盘界面绘制内容的更新、暂停、回退、跳转等。

演练态势的绘制与表现,就是在复盘界面上绘制表现出整个演练过程。绘制表现的内容包括:演练区域基础地理地图、演练区域六角格地图、参演实体模型、演练事件表现、演练过程特殊效果等。

2 系统模块与工作流程

2.1 系统模块

基于以上总体结构设计思想,系统设计为由5个模块组成:本地数据载入模块、回放文件解析模块、数据调度传输模块、绘制模块和用户界面交互模块。系统模块结构如图2所示。

图2 系统模块结构

本地数据载入模块工作在数据层和支撑层。作为数据层的一部分,它提供本地存储的基础地理信息数据、演练区域六角格数据和演练模型数据。作为支撑层的一部分,它对载入的数据做解析处理,提供给应用层绘制使用。

回放文件解析模块与本地数据载入模块类似,从提供回放数据的角度看,属于数据层;从解析数据文件供上层使用的角度看,属于支撑层。二者没有合并为一个模块,而是分别设计为不同的模块,原因在于:①回放文件由其他系统提供,具有灵活多变的特点,不属于本地数据。②二者解析数据的方法不同,不宜在同一模块处理。

数据调度传输模块工作在支撑层,负责实现数据层和应用层的数据交互。为保证数据调度的时序性,模块还提供了时间管理。为了实现高效的数据交互,模块内采用了一种海量数据动态调度传输方法,具体将在后面的系统关键技术中详述。

绘制模块负责在复盘界面绘制整个演练区域的地理信息、参演模型、演练态势、战斗特效等。具体的绘制表现是系统的功能实现,属于应用层;而绘制相关的基础计算和绘制环境的创建则属于支撑层,是为具体的绘制提供支撑。为提升绘制效率,模块内采用一种基于OpenGL的实时绘制方法,具体将在后面的系统关键技术中详述。

用户交互模块负责呈现UI(user interface)界面,响应用户的各种操作指令,属于应用层模块。

在上述各模块中,数据调度传输模块是整个系统运转的总枢纽。绘制模块是整个系统表现的核心。

2.2 系统工作流程

系统采用多线程技术,在启动后即创建多个线程。其中,后台数据处理线程完成数据的载入和动态数据的关联,并调度数据交由绘制线程绘制。绘制线程循环更新绘制帧。用户操作线程实时响应用户的各种操作,并根据操作内容控制数据调度及刷新绘制内容。系统工作流程如图3所示。

系统的具体工作流程为:①启动系统,进行系统初始化,形成系统界面;②数据处理线程载入本地演练模型和地图数据,数据载入完毕后,调度传输给绘制线程;③绘制线程进入绘制帧的更新循环,并绘制出战区地图;④用户操作线程进入事件循环,响应用户操作,进行地图漫游;⑤当用户打开回放文件时,数据处理线程解析出模拟演练数据和战斗事件,形成绘制可用的动态数据,并和演练模型相关联,调度传输给绘制线程;⑥绘制线程更新绘制帧,绘制出演练态势;⑦当用户进行播放控制操作时,将产生播放控制数据,并入动态数据,调度传输给绘制线程,完成回放过程的开始、暂停、加减速、时间跳转等;⑧当用户操作线程进行态势过滤和界面配置时,绘制线程更新绘制帧,调整相应的绘制内容。⑨如果系统接收到退出请求,则退出,否则,继续执行绘制线程的更新循环和用户操作线程的事件响应循环。

图3 系统工作流程

3 系统关键技术

3.1 海量数据动态调度传输

数据调度和传输的目的是:从回放文件解析出的海量数据中,调度当前绘制线程需要使用的数据,并高速传输给绘制线程使用。回放文件的逻辑结构如图4所示。

图4 回放文件逻辑结构

图4 中,静态帧包含当前仿真时刻所有推演数据;动态帧只包含当前仿真时刻相对于上一静态帧时刻发生变化了的数据。静态帧和动态帧相结合的结构,具有以下优点:①大大缩减了文件的数据量,提升文件载入速度。②为基于仿真时间的跳转提供了方便。以图5为例,若在回放过程中要从时刻T1跳转到T2,则只需在静态帧S2的基础上叠加动态帧A22的变化量,即可得到T2时刻的态势数据。

图5 时间轴跳转

由于大型模拟演练系统的回放数据量庞大 (一小时的仿真数据量>10GB),因此无法在回放初始化时一次性载入回放文件。为了保证绘制的实时性,系统采用动态的方式,边载入解析,边调度传输。

海量数据的动态调度传输主要面临速度问题,包括以下两方面:

(1)传输速度。由于文件解析是从外存载入数据,且一帧的数据量大 (一个静态帧的数据量>100MB),因此数据的载入及解析消耗了一个更新周期内的大部分时间,导致处理后的数据无法在更新周期内及时传输给绘制线程使用。

(2)调度速度。由于回放文件组织结构复杂,且每一个静态帧都涉及大约5-6万个模型实体的数据更新,因此数据调度时无法在较短时间内查找到正确的实体数据存储位置。

针对以上问题,使用具有双缓冲区的数据缓存策略,解决文件解析和绘制线程之间的传输速度问题。同时,基于演练模型的分类,设计了可快速查找的数据存储结构,提升数据调度时的查找速度。具体如图6所示。

图6 数据调度传输

图6 中,缓冲区Buffer A缓存回放文件解析出的帧数据,Buffer B缓存绘制线程待用数据。缓冲区大小以帧为单位,帧数视情况而定。若缓冲区过大,会减缓系统启动速度,增加系统开销;若缓冲区过小,则缓冲作用不明显。

数据存储区采用分类存储方式,在全局维护一个子类地址索引表。各子类内部采用定长数组链表的方式存储。采用此数据结构,利用索引表可快速定位到某子类,而子类内的数组结构可保证对单个模型实体的快速定位,链表结构可保证实体个数的动态变化。

数据调度传输的过程分为两部分,一是从回放文件解析到存入数据存储区。二是从数据存储区取数据用于更新绘制线程。

第一部分的具体流程为:①载入回放文件,解析出一帧数据存入Buffer A。②若Buffer A不满,则循环执行步骤①,否则进入步骤③。③启动数据调度,将数据存入存储区。同时完成数据优化、去冗余等预处理操作。

第二部分的具体流程为:①绘制线程发出更新绘制请求,查询Buffer B是否满。②若Buffer B满,则取出一帧数据参与更新绘制,同时响应绘制线程。否则进入步骤③。③根据请求,到数据存储区查找所需数据。④返回步骤③查找内容,存入Buffer B。

从整个流程看,缓冲区Buffer A为数据的分类调度和预处理缓冲了时间;Buffer B缓存了未来几帧绘制线程将要用到的数据;数据存储区具有可快速查找的存储结构,能满足数据存取时的快速查找。整个方法很好地实现了海量数据动态调度和传输的目的。

3.2 高效实时绘制

实时绘制主要面临效率问题。对实时绘制效率影响较大的有:演练区域地图绘制、参演模型绘制、态势绘制。针对以上问题分别采取优化措施。

(1)演练区域地图绘制

由于演练区域范围广阔 (约2250*2250km2),地图绘制量庞大,因此采用分层分块、实时调度的方法来提升绘制效率。具体方法为:从本地数据文件载入地理信息数据后,按照一定格式将数据拆分为点、线、多边形、文字等绘制图元,将所有图元按照坐标范围分块,按照视点远近分层,每块都生成单独的OpenGL显示列表,每层制定不同分辨率显示策略。在实时绘制中,使用少量计算即可判断当前可视区域内有那些层和块需要参与绘制,调用相应的显示列表即可绘制出。此外,演练区域六角格的绘制不仅要分层分块,还要在创建显示列表时避免正六边形相邻边的重复绘制[13-14]。由于OpenGL显示列表在调用时有较高的性能,因此大大提升了该部分的绘制效率。

(2)参演模型绘制

大型模拟演练系统在战况复杂时,参演模型实体数量约为5-6万个。为解决绘制数量多引起的绘制效率低下问题,一方面在载入模型时,将模型由像素绘制转化为纹理,相同的模型调用同一份纹理,从而提高了绘制效率。另一方面对区域内逻辑上具有隶属关系的模型集团,采用层次树结构15存储,便于按照视点远近,对区域内具有不同分辨率的模型进行动态的聚合与解聚[15-16]。例如:当视点较远时,某小块区域内的多个陆军模型聚合为一个模型,当视点较近时,区域放大,该模型也随之解聚为原有的多个模型。通过聚合与解聚方法,控制了绘制区域内的模型数量,在不影响仿真效果的情况下,有效提升了绘制效率。

(3)态势绘制

为缓解数据频繁更新对绘制带来的压力,在绘制线程中,对数据量较大的位移数据等做更新控制,根据当前的播放速率跳帧更新,并不更新回放文件中每一帧的数据。其他关键的事件和状态数据等不做更新控制,防止遗漏数据。更新控制减少了数据吞吐量,因此有效提升了绘制效率。

4 系统实现

按照以上设计思路,实现了应用于某大型模拟演练系统的态势回放系统。系统运行部分效果如图7所示。

图7 地图绘制效果

通过系统界面的 “文件”菜单加载回放文件,能够在地图绘制界面上叠加显示参演模型实体、推演态势以及战斗特效。随着仿真时间的变化,以上绘制内容动态地发生变化。在表1所示的软硬件环境中,对应不同的实体个数和回放速度,系统的绘制效率如图8所示。

表1 态势回放系统软硬件配置

图8 不同回放速度下帧率随实体个数变化

由图8的变化曲线可以发现,随着参演实体个数的增长,绘制帧速的下降速率趋向平缓。这是因为采用了分层分块和聚合解聚的方法,有效控制了视野区域内的实体个数。此外,随着播放速度的提升,帧率有明显下降。特别是在从2倍速向4倍速切换时,受数据更新速度的影响,帧速受到较大影响。但从4倍速向8倍速切换时,由于采取了跳帧更新的策略,帧速变化趋于平缓。

5 结束语

本文阐述了模拟演练中态势回放系统的设计思想、模块划分及工作流程,提出了一种海量数据的动态调度传输方法和基于OpenGL的高效实时绘制方法。系统实现中具有良好的性能和绘制效率,表现态势丰富、清晰,能够满足模拟演练态势回放的需求。本系统是在二维地理信息平台上表现战区级模拟演练态势,在以后的研究中,将进一步向三维真实感战场环境中扩展,面向更大规模的模拟演练,实现基于时间维、空间维、信息维的,表现全球级、战区级、战场级的多维多粒度模拟演练可视化仿真。

[1]HU Xiao-feng,SI Guang-ya.War gaming &simulation principle and system [M].Beijing:Publishing Company of National Defence University,2009 (in Chinese). [胡晓峰,司光亚.战争模拟原理与系统 [M].北京:国防大学出版社,2009.]

[2]PENG Chun-guang,JU Ru-sheng,YANG Jian-chi,et al.Analysis of technology of modern wargaming [J].Journal of System Simulation,2009,21 (z12):302-305 (in Chinese).[彭春光,鞠儒生,杨建池,等.现代兵棋推演技术分析 [J].系统仿真学报,2009,21 (增刊12):302-305.]

[3]HU Xiao-feng,SI Guang-ya,LUO Pi,et al.Study on war complex system and war gaming &simulation [J].Journal of System Simulation,2005,17 (11):2769-2774 (in Chinese).[胡晓峰,司光亚,罗批,等.战争复杂系统与战争模拟研究[J].系统仿真学报,2005,17 (11):2769-2774.]

[4]ZHAO Zong-gui,LI Jun-ling,WANG Ke,et al.The currentstatus and trend in development of common operational picture[J].Journal of CAEIT,2008,8 (4):384-392 (in Chinese).[赵宗贵,李君灵,王珂,等.共用作战图现状与发展趋势[J].中国电子科学研究院学报,2008,8 (4):384-392.]

[5]HU Hong-bo,GUO Hui-dong.Architecture and techniques of common operationa1situation picture [J].Command Control &Simulation,2006,28 (5):28-32 (in Chinese).[胡洪波,郭徽东.通用作战态势图的构成与实现方法 [J].指挥控制与仿真,2006,28 (5):28-32.]

[6]XUE Ben-xin.Studies on common operational picture of battlefield situation [J].Military Operations Research and Systems Engineering,2008,22 (3):17-22 (in Chinese). [薛本新.通用战场环境态势图研究 [J].军事运筹与系统工程,2008,22 (3):17-22.]

[7]MA Ya-ming,ZHANG Ya-jun,ZHANG Jiang-shui,et al.Design and implementation of battlefield situation simulation system supporting HLA [J].Computer Engineering,2009,35 (4):265-267 (in Chinese). [马亚明,张亚军,张江水,等.支持HLA的战场态势仿真系统设计与实现 [J].计算机工程,2009,35 (4):265-267.]

[8]CAI Zhi-hao,PENG Xiao-yuan.Visualization of virtual battlefield state based on geographic information system [J].Journal of System Simulation,2003,15 (7):983-985 (in Chinese).[蔡志浩,彭晓源.基于地理信息系统的虚拟战场态势显示[J].系统仿真学报,2003,15 (7):983-985.]

[9]TANG Li-wen,LIAO Xue-jun,YUWEN Jing-bo.Campaign situation system based on the second development of MapGIS[J].Journal of the Academy of Equipment Command & Technology,2004,15 (2):27-31 (in Chinese). [唐立文,廖学军,宇文静波.基于MapGIS二次开发的作战态势显示系统[J].装备指挥技术学院学报,2004,15 (2):27-31.]

[10]LI Yan,HUANG Ke-di.Studies on distributed battlefield situation visualization system [J].Journal of System Simulation,2008,20 (zl):316-318 (in Chinese). [李艳,黄柯棣.分布式战场态势可视化系统研究 [J].系统仿真学报,2008,20 (增刊1):316-318.]

[11]LIU He-hui,HUA Yi-xin,ZHANG Ya-jun.Data scheduling mechanism of situation replay based on time-grid [J].Journal of Geomatics Science and Technology,2010,27 (4):302-305(in Chinese).[刘合辉,华一新,张亚军.仿真回放数据的时间栅格管理机制 [J].测绘科学技术学报,2010,27(4):302-305.]

[12]TIAN Jin-qin,DING Hong-sheng.The research of optimization based on OpenGL program design [J].Computer System Application,2006,15 (10):65-68 (in Chinese).[田金琴,丁红胜.基于OpenGL程序设计的优化探讨 [J].计算机系统应用,2006,15 (10):65-68.]

[13]YANG Lun,PENG Chun-guang,HUANG Jian,et al.Research and implementation of terrain quantization algorithm in wargame system [J].Computer Simulation,2008,25 (9):96-99 (in Chinese).[杨伦,彭春光,黄健,等.兵棋演练中地形量化算法研究与实现 [J].计算机仿真,2008,25 (9):96-99.]

[14]ZHAO Xin,ZHONG Hui,LI Qun,et al.Research of the hexagon-based terrain environment modeling at campaign level[J].Journal of Chinese Computer Systems,2008,29 (11):2157-2161(in Chinese). [赵新,仲辉,李群,等.面向战役仿真的正六边形地形环境建模研究 [J].小型微型计算机系统,2008,29 (11):2157-2161.]

[15]LU Yun-Jun,WANG Meng-lin.Application of multiple resolution modeling in signal corps operations simulation [J].Journal of System Simulation,2007,19 (22):5108-5111(in Chinese).[鲁云军,王梦麟.多分辨率建模方法在通信兵作战仿真中的应用 [J].系统仿真学报,2007,19(22):5108-5111.]

[16]YIN Hua-fei,LV Pin,ZHENG Chang-wen,et al.Research on the joint running of multi-resolution models [J].Chinese Journal of Stereology and Image Analysis,2010,15 (3):269-273(in Chinese). [尹华飞,吕品,郑昌文,等.多分辨率仿真模型互联运行问题研究 [J].中国体视学与图像分析,2010,15 (3):269-273.]

猜你喜欢

线程态势演练
首次演练
2019年12月与11月相比汽车产销延续了增长态势
汇市延续小幅震荡态势
我国天然气供需呈现紧平衡态势
统计知识综合演练B卷
浅谈linux多线程协作
未雨绸缪演练忙
县乡一体化探索呈加速态势
线程池技术在B/S网络管理软件架构中的应用
基于上下文定界的Fork/Join并行性的并发程序可达性分析*