基于无线通信网络的分布式视景仿真系统开发*
2010-06-25徐恒杰
徐恒杰,林 涛,张 鲲,张 利
(清华大学 微纳电子系,北京 100084)
1 引言
视景仿真综合运用计算机图形学、多媒体技术、数据库技术等,通过三维图像、声音等手段生动地展现仿真过程,使观察者获得比数字、文字、曲线等传统形式更加直观、深刻的感受[1]。基于此优势,它已经获得了广泛的应用。同时,无线通信网络的快速发展和普及促使对网络性能方面的仿真和评估日益成为网络通信研究的重要方面。国内近年来对两者的研究都处于快速发展阶段,但对两者结合的研究工作尚处于初级阶段。笔者把分布式视景显示与OPNET网络仿真平台相结合,通过视景仿真技术来表现通信网络的特征,对通信仿真结果中的非视觉物理量进行可视化显示,并开发了比较丰富的视景显示内容。
2 仿真系统功能设计
为逼真地展示分布式系统的网络通信效果,把视景平台设置成海洋战场环境,并把各海上作战模型作为网络通信节点模型,模拟自然环境变化、噪声干扰及通信节点移动、消失等因素对通信网络性能的影响[2]。本仿真平台不仅要能完成通信系统技术体制的性能分析,也要能进行通信网络的组织运用分析,为通信网络的优化配置提供参考。因此,通信网络仿真平台应能对预定的通信方案进行仿真分析。
本仿真系统的主要功能包括:1)模拟动态的海洋综合环境。本系统综合运用图形化建模、软件编程等手段,模拟了海洋的天空、云朵、海面等自然环境,并构建了环境数据库(包括实体模型数据、纹理数据、地形数据等)。然后把这些环境内容依据不同的视景显示平台和视点位置做出渲染并显示。2)通信网络组建、仿真及可视化。利用工具选单在属同一视景平台的3D实体模型间组建通信网络并通过后台的OPNET网络仿真软件[3]仿真其通信过程,通信仿真结束后在相应视景显示平台用直观可视化方式显示非视觉物理量,如网络拓扑结构、信噪比、误码率、通信频段等。3)战场效果模拟。本仿真系统设计开发了一些战场效果,对节点模型的运动和攻击、节点模型之间及与自然环境间的碰撞都进行逼真模拟,并制作了相应的爆炸、烟雾、火花、水柱、水花等特效。
从用户角度看,本仿真系统需要拥有良好的人机交互界面。一方面,允许在仿真过程中灵活输入各种组网或运动指令,对场景环境进行实时监视和控制,如自由改变视点、切换显示画面、改变海洋环境、发起通信或攻击等;另一方面,仿真系统必须能够生成合乎现实物理规律的三维场景,进行实时视景展示。由于分布式系统中各节点模型间既相对独立又互相协同,仿真系统必须实时接收本地控制平台和其他特定控制平台的仿真指令和更新通报,以实现整个仿真系统的协调统一,反映全局态势[2]。
3 仿真系统软硬件实现
分布式仿真系统的设计要充分考虑当前应用要求和未来的扩展性,而且系统中的实体模型普遍较复杂、数据量大,还存在基于网络的控制平台之间的交互,因此必须充分考虑系统内模型和软件模块的可重用性和共享性。
3.1 硬件配置
根据仿真系统的功能要求,并考虑系统稳定性、可移植性和扩展性,本系统硬件主要由2个视景控制平台和1个通信仿真平台构成。2个视景控制平台各模拟1支编队的行为,同时兼具实时场景显示的功能。系统的硬件结构如图1所示。
整个系统处于局域网中,各硬件节点的功能如下:
视景控制平台(Client)模拟海洋自然环境和Client编队的各种行为,实现队内成员间的组网通信及成员个体的运动、对敌攻击等特性。编队成员包括驱逐舰、预警机、直升机等5个节点模型。该控制平台具有良好的人机交互界面,既能动态显示场景内自然环境及Client和Server编队节点模型的状态属性,又能对用户的输入指令精确响应。
视景控制平台(Server)在系统中具有两种功能。一是模拟场景中Server编队的行为,其成员包括巡洋舰、战斗机、预警机等5个节点模型,具备上述Client控制平台的所有对应功能。二是充当交互数据库服务器,双方编队的组网通信情况、通信仿真结果及所有节点模型运动、攻击行为的更新数据都在该控制平台内汇集然后发布,这种设计主要考虑到整个系统的可扩展性及控制平台子系统间场景属性更新的同步。该控制平台在整个系统中处于核心位置。
通信仿真平台利用基于专业网络仿真软件OPNET开发的通信仿真驱动程序,对2支编队所组建通信网络的性能参数如误码率、延时、信噪比等进行仿真统计和评价,然后反馈给视景控制平台进行可视化显示。通信仿真平台对各编队所有已建网络都能仿真,但只与Server端进行数据传输,即所有组网信息及仿真结果都在它与Server之间进行传输,然后由Server判断进行转发或自用。
3.2 软件结构
根据本仿真系统的功能要求和硬件配置,针对分布式系统的特点,本文对仿真系统进行了精细的模块化设计。视景控制平台的软件部分主要由5大功能模块组成,分别是模型数据模块、仿真控制功能模块、用户交互功能模块、网络通信接口模块和视景显示功能模块。这5大功能模块中仿真控制功能模块是居中的核心模块,它又分成模型控制子模块和系统控制子模块。模型控制子模块主要针对与节点模型本身相关的控制内容,如运动、发起攻击、沉没等,这些内容在各模型间具有某些相似之处,可以进行抽象化设计。系统控制子模块主要针对和整个系统运行相关的控制内容,涉及到模型间的协调和整个仿真系统运行的可信度,是设计的最关键部分。软件模块的具体结构关系如图2所示。
仿真系统开发中用到的支撑软件包括:
1)预处理软件,如三维建模软件Creator和图像处理软件Photoshop。
2)视景支撑软件,如可视化仿真软件 Vega[1]和OpenGL三维图形库[4]。
3)通信网络仿真软件(如OPNET)。
4)开发平台及语言,如VS2005,MFC和C语言。
3.3 系统运行机理
本仿真系统作为一个综合性的仿真平台,软硬件结构复杂、涉及面广,需要对系统结构进行精心布局,分步骤分阶段地实现。整个系统的框架结构如图3所示。
在框架结构中,处于核心地位的仿真控制单元将调度本地场景数据库中的数据,处理来自用户的交互指令和通信接口的请求,最后驱动视景显示单元完成场景的渲染工作。本地场景数据库单元管理着子系统的模型数据,这些数据包括地形数据、基本模型库、纹理库以及其他场景数据。场景模型可以通过建模工具进行优化,然后重新组合到数据库中。用户交互单元接收来自用户的输入,传送到仿真控制单元执行。通信接口单元接收来自仿真系统中其他控制平台的信息和请求,发送自身的信息和请求。视景显示单元根据控制单元的驱动来完成用户所订制的显示内容。
4 关键技术研究
4.1 OPNET仿真机制
OPNET软件是美国OPNET Technology公司开发的大型通信与计算机网络仿真软件包,采用离散事件驱动的仿真机制,其中“事件”是指网络状态的变化[3]。其仿真核心通过维护全局事件列表来确保每一事件都在正确的时刻和模块下被执行。在仿真粒度上,OPNET以Packet为基本通信单位来模拟网络中数据的流动,一个Packet可以包含多个存储信息的分组域。仿真过程中,节点可以根据实际情况创建、修改、检查、复制、发送、接收以及销毁分组。在建模层次上,OPNET采用3层建模机制来描述网络:
1)网络层,描述被仿真网络的拓扑结构,如网络的终端数量及其各自的位置。
2)节点层,OPNET中所有网络设备(如交换机、路由器)都抽象地称为节点。节点由一系列描述其特性的属性构成。
3)进程层,描述节点内部具有的行为、决策和算法,如某路由协议的具体实现过程。
4.2 OpenGL图形化绘制
本文所实现仿真系统的诸多界面效果采用OpenGL开放性三维图形库进行设计。OpenGL是输出到图形硬件的一个软件编程接口,它包含有许多的命令,可以用来定义3D物体和交互式三维应用的各种操作[4]。利用OpenGL,本系统实现了半透明的操作选单及消息窗口;当网络节点间发生通信时,OpenGL绘制的三维运动线段将表示通信链路,而且线段的颜色和粗细分别代表通信的频段和流量;当鼠标指向该线段时,将弹出仿真数据窗口以显示当前网络的性能。下面以绘制三维运动线段为例说明OpenGL的使用,首先定义OpenGL所要绘制线段的颜色:
glColor3f(red,green,blue);
定义线段的格式及其运动速度:
glEnable(GL_LINE_SMOOTH);
glLineStipple(5,pattern);
glEnable(GL_LINE_STIPPLE);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glHint(GL_LINE_SMOOTH_HINT,GL_DONT_CARE);
定义线段的粗细:
glLineWidth(lineWidth);
glBegin(GL_LINES);
glVertex3f(x1,y1,z1);
glVertex3f(x2,y2,z2);
glEnd();
glDisable(GL_LINE_STIPPLE);
4.3 仿真实时性
在确保场景模型逼真度的前提下,如何提高仿真实时性一直是视景仿真领域的研究重点。三维实体建模一般分两步:一是几何建模,用基本面构建对象的立体外观;二是形象建模,对模型进行增强视觉效果的处理。为降低视景系统的计算开销,提高仿真实时性,在用Creator软件进行建模时可以在保证物体模型的真实性和可塑性的基础上,尽量使模型所含的面数最少[5]。这样可以减少系统的存储负担,提高系统的渲染速度;而且单个多边形有一系列的属性和顶点,可以把许多属性相同的多边形整合成网格,就能使多边形共享共同的属性和顶点。在实时运行时,系统处理网格效能更高,可以大大提高运行性能和显示效果。为减少组成模型的面片数,还可以通过纹理映射技术代替低细节层次的模型,这样用极少的多边形进行纹理映射后就能得到真实感较强的模型平面。大量高分辨力纹理的使用也会给系统带来沉重负担,为提高实时性,可以采用纹理拼接和Mipmap技术。纹理拼接可以使系统只调用视点观察到的一小块纹理,Mipmap技术可产生一系列精度不同的纹理。
4.4 碰撞检测技术
仿真系统中节点模型间的攻击行为以及节点模型与自然环境间的接触等都涉及到碰撞检测技术,碰撞后所触发的一系列效果也是表现仿真真实性的重要内容。碰撞检测的基本任务就是确定2个或多个模型彼此之间是否发生了接触或穿透,本系统采用是否发生了线形相交的判断技巧,实现了2种情形的碰撞检测:1)视点与周围环境模型的碰撞检测,使视点变化时能随地形或障碍物形状而改变位置,不至穿透地表或进入障碍物模型内部;2)场景内节点模型与周围环境模型的碰撞检测,本系统为场景内所有模型均进行了碰撞检测设置,而且依据对象类型分别设置了不同碰撞效果,如导弹击中飞机或舰船将引发爆炸起火、飞机坠海时产生水柱、舰船碰撞时着火下沉等。视景仿真软件Vega能够对Creator建立的模型文件中各个不同的部分进行分类 (如地形可分为陆地、海洋等),然后设置标记,利用分类标记和碰撞对象还能够实现碰撞发生后产生不同效果。
5 仿真结论
本文的软硬件设计确保了仿真系统运行的实时性和逼真性,图4和图5显示了本仿真系统的工作效果。随着分布式仿真技术的发展,仿真系统将不断向复杂化和大型化发展,使得大规模仿真成为可能。笔者提出的分布式视景仿真系统从结构上为大规模无线通信网络仿真系统的研究提供了参考,下一步还可从增加分布式规模、加强网络性能理论分析方面对其深入开发。
[1]王乘,李利军,周均清,等.Vega实时三维视景仿真技术[M].武汉:华中科技大学出版社,2005.
[2]刘健,刘忠,刘高峰.基于HLA的海战场综合环境仿真系统的开发[J].系统仿真学报,2008,20(11):1-2.
[3]陈敏.OPNET网络仿真[M].北京:清华大学出版社,2004.
[4]高颖,黄罗军,许志国,等.基于OpenGL的某导弹视景仿真技术研究[J].兵工学报,2007,28(1):125-128.
[5]王乘,周均清,李利军.Creator可视化仿真建模技术[M].武汉:华中科技大学出版社,2005.