空间拦截仿真平台设计
2011-03-15董长虹
刘 哲 董长虹 韩 潮
(北京航空航天大学 宇航学院,北京 100191)
空间拦截仿真平台设计
刘 哲 董长虹 韩 潮
(北京航空航天大学 宇航学院,北京 100191)
仿真平台研制是系统仿真的重要课题.根据空间拦截过程仿真的需要,提出了一个可集成多种空间拦截任务、便于扩展、具有完善可视化功能的仿真平台设计方案.介绍了仿真平台的层次划分、各层次的主要功能以及层次间的关系.详细阐述了仿真平台的整体框架.重点研究了平台可视化的实现技术和集成多种拦截任务的具体方法.实际应用表明:该平台可以完成多种空间拦截任务的仿真并具备足够的扩展能力,完备的可视化功能更为空间拦截问题的研究提供了便利.
仿真;设计;多任务;可视化
随着计算机技术的迅速发展,航空航天领域仿真软件正向着通用化、可视化的方向发展.国外如美国AGI公司研制的STK(Satellite Tool Kit),是可执行陆、海、空、天、电(磁)等多种任务的仿真平台.STK应用内嵌的三维显示模块提供逼真的三维显示环境[1].再如文献[2]开发的开源飞行模拟软件包FlightGear,其核心的JSBSim飞行动力学引擎可以模拟多种航空飞行器的真实飞行,同时利用了OSG(Open Scence Graphic)图形库进行飞行场景的组织和渲染.当前国内也有仿真平台研发的报道,如基于HLA(High Level Architecture),以及 OpenGL(Open Graphics lib)[3]的仿真平台.
针对空间拦截任务,目前国内外很少有成熟的仿真平台公开发行.其原因:①出于军事安全的考虑,如STK的拦截飞行工具模块(IFT,Intercept Flight Tools)和导弹飞行工具模块(MFT,Missile Flight Tools)仅在美国国内销售;②由于拦截问题本身的复杂性:由于不同型号的拦截器其动力学模型有差异,制导体制也相去甚远,即便是同种拦截器,面对不同性能的目标时其相应的拦截策略也大相径庭.针对这种情况,自主研制一款集通用性(即可进行多种空间拦截任务的仿真)和完善的可视化能力于一身的仿真平台很有必要.
本文首先介绍了仿真软件的层次划分和各层次的主要功能,然后详细阐述仿真软件的系统设计与实现,重点讨论仿真软件层次内和层次间的服务与连接关系、建立于这些关系基础之上的多任务集成与扩展的实现方法、多视图的实现方法等.此外,文中还对拦截程序的文件配置方式和仿真场景的保存与恢复加以说明.
1 仿真软件的层次划分
本文将空间拦截仿真软件系统按功能的不同划分为3个层次:界面层、逻辑层、数据层.软件界面用于获得用户的输入,包括输入的数据及仿真进程的控制指令,并以多个视图的方式从不同角度表现逻辑层对输入数据的处理结果;逻辑层是软件的核心层次,将输入数据带入该层中的仿真程序进行计算,同时在计算过程中响应用户对仿真进程的控制指令,最后将得到的计算结果送给界面层显示或数据层保存;数据层则负责数据文件的读取和保存,本文的数据文件包括对逻辑层中的空间拦截程序进行初始值配置的文本文件及保存仿真场景数据的二进制文件.
仿真软件的3个层次中每2个层次间都有直接的关联,见图1.界面层可以控制逻辑层中的仿真进程的进行,也可调用数据层的配置程序对逻辑层中仿真程序进行初始参数配置.界面层的视图数据和逻辑层的仿真程序当前状态可以通过数据层存储为仿真场景文件,数据层也可读取仿真场景文件完成界面层和逻辑层仿真数据的恢复.
图1 仿真软件的3个层次
2 系统的设计与实现
软件系统的设计主要是将系统划分为不同功能的模块,明确各模块间的层次关系,确定模块间的接口及人机交互界面等.通常采用面向对象(object oriented)的设计方法,并在设计过程中遵循一定的设计模式[4].
2.1 逻辑层的3层库架构及其扩展方法
1)逻辑层的3层库架构.本文将逻辑层划分为3个层次:底层工具箱、飞行器模型库、飞行程序类库.
逻辑层中需囊括通用的工具、方法、模型、算法,这些功能比较独立和基础,组成了逻辑层的底层工具箱,为上层提供支持.为缩短研制周期,工具箱并未完全抽象成类,一部分由本实验室既有静态函数组成,这些静态函数接口定义明确,使用方便,计算结果准确.底层工具箱的构成见图2,图中灰色模块已封装成类.
图2 底层工具箱预置工具
逻辑层中还预置了不同的拦截导弹和目标模型.
预置的拦截导弹模型分为两种,这两种拦截导弹为拦截不同的目标而设计.两种模型都可进行全弹道仿真.导弹弹道跨越大气层内外,大气层内弹道计算通过调用底层库的数值积分函数,解算地心惯性坐标系下六自由度运动方程完成,大气层外弹道计算通过轨道预报器完成.拦截导弹调用底层库的坐标变换函数完成地心惯性坐标系与诸如发射坐标系、发射惯性坐标系、弹道坐标系、本体坐标系等的坐标系变换.底层库的插值函数、大气模型用于计算拦截导弹的气动力系数.
预置的目标模型涵盖了大气层内、外飞行的不同种类飞行器.这些模型的弹道数据的产生方式有两种:通过仿真平台实时计算或读入给定的弹道数据然后按需要进行插值;弹道数据的实时计算同样由底层库来支持.
以上飞行器模型全部封装成了类,形成了飞行器模型类库,类库组成见图3.这是逻辑层的第2层,应用底层库的服务,同时为上层提供服务.
逻辑层顶层为飞行程序类库.飞行程序类内嵌多种制导律,用于拦截导弹的初、中、末制导;在拦截过程中,飞行程序类需要得到目标及拦截导弹的状态信息,应用这些信息计算弹、目相对运动参数,并通过内嵌的制导规律计算出拦截导弹的控制指令,传送给拦截导弹控制其飞行.这样,飞行程序类相当于一个中介,协调导弹和目标的交互.因此,应用 Mediator(中介者)[4]设计模式设计飞行程序类.针对不同类型的拦截导弹及目标,逻辑层预置了3类Mediator,见图3.顶层库中每一个Mediator都具有对它所包含的拦截弹的拦截全程进行仿真的能力.
图3 逻辑层的飞行程序类库
2)逻辑层的扩展方法.仔细分析图3可以得到逻辑层自顶向下的扩展方案.如果逻辑层顶层预置的 Mediator 1,Mediator 2,Mediator 3中的导弹和目标的数据交互方式不能满足仿真需求,研究人员可自行开发新的Mediator,如图3中的Mediator 4,在Mediator 4中重新定义满足需要的数据交互方式.扩展的Mediator中包含的拦截导弹和目标可以使用飞行器模型库中预置的模型,如果没有合适的模型,则可先对飞行器模型库进行扩充,定义新的模型,再将模型集成到扩展的Mediator中.如果扩展的飞行器模型需要额外的底层工具的支持,则再对底层工具箱进行扩展.
2.2 界面层文档/视图模式和GDI动画的实现
1)界面层的文档/视图模式.由第1节可知,界面层需要实现与逻辑层的交互,并且需要具备多视图显示的能力.本文采用 MFC(Microsoft Foundation Classes)多文档应用程序框架设计人机界面,可以满足界面层的需求.MFC的全面介绍参见文献[5].为满足仿真平台的性能需求,采用Microsoft的GDI(Graphics Device Interface)实现了符合要求的动画,GDI的深入阐释参见文献[6].
文档/视图是MFC的基石,其最大好处是将数据与视图分离.对MFC的文档/视图的透彻讲解参见文献[7].MFC的多文档应用程序框架提供了文档模板类来记录文档与视图的关联信息.一个应用程序可以拥有多个模板,一个模板默认关联一个文档,一个文档可以关联多个视图.结合逻辑层的特点,直接利用MFC的多文档应用程序框架,完成了界面层的设计.
图4 仿真平台详细架构
界面层内部详细结构参见图4.图4中,将一个飞行程序类的实例作为一个文档的成员变量,这样逻辑层与界面层就关联起来.运行应用程序时,首先通过图4或图5中①所示的目标选择对话框选择特定的文档模板,利用文档模板中记录的文档和视图的关联信息来实例化文档及与其相关联的视图,同时也实例化了飞行程序,为仿真做好准备.
2)基于GDI的动画技术.近年来,体系完整、功能强大的开源图形库层出不穷.如OpenInventor,OSG,OGRE等.前两者提供的功能较为底层,基本上是对OpenGL的面向对象封装,并提供场景图结构,方便3D场景的管理.OGRE是一款游戏引擎,提供强大的游戏场景渲染和游戏资源的管理能力,主要面向3D游戏的开发者.
如果使用上述图形库实现仿真平台的动画视图,会达到逼真的显示效果,但开源图形库体系庞大而复杂,使用过程中往往有不可预料的问题发生,难于掌控,对开发人员的知识水平、经验要求较高.同时,3D场景运行时往往需要更多的计算机资源,对运行环境的要求都较高.为在有限时间实现多视图,保证质量,满足需求,本文直接使用GDI实现动画.
GDI较为底层,只提供2D绘图能力,并不支持3D渲染和动画,所以需要自行实现.GDI动画的关键技术在于两个方面:使用双缓存技术避免动画的闪烁;依据计算机图形学完成3D数据的正则投影、透视投影和视点切换.图4中,每个文档都关联一个视图列表,每个列表都包含了一组视图,包括2D视图、3D视图、曲线视图.程序运行时,文档包含的飞行程序实例进行计算得到相关数据,文档将这些数据送到与其关联的视图,对视图进行更新.本文实现的曲线视图、2D动画视图、3D动画视图见图5.
图5 仿真平台的多视图人机交互界面
2.3 数据层的XML配置及场景的保存与恢复
本文使用XML格式的文本文件保存仿真平台模型的配置参数,如图5所示的XML配置文件,③是目标卫星的6个初始轨道根数.为完成配置文件的生成和解析,本文实现了飞行程序配置模块.数据层中的飞行程序配置模块也实现为文档的一个成员变量,通过文档来实现配置模块对飞行程序的配置动作.具体的执行流程是:由图4或图5中②标示的配置文件选择框选择对应于特定目标的配置文件,然后由文档调用飞行程序配置模块对配置文件进行解析,解析得到的数据对文档中的飞行程序进行配置.
仿真场景文件中存储的数据包括2个部分:视图列表中的视图数据和飞行程序当前状态数据.仿真平台通过读取仿真场景文件可以复现场景.如图4所示,由于视图列表和飞行程序都与文档直接关联,故文档可直接得到这些数据,从而将仿真场景数据保存为仿真场景文件.恢复场景时,如图4中①所示,先由仿真场景文件选择对话框相应的仿真场景文件,则MFC框架会选择合适的文档模板,创建模板关联的文档和视图,然后通过文档读取仿真场景文件中的数据,对视图及飞行程序进行赋值,从而完成仿真场景的重现.
3 仿真平台一体化扩展及仿真实例
3.1 仿真平台的一体化扩展
仿真平台的一体化扩展指的是依据界面层、逻辑层和数据层的结构关系,3个层次同时进行功能性扩展.图4虚线标示的部分即为3个层次的扩展部分.2.1节已阐述了逻辑层的扩展方法,由图4知,在逻辑层增加了新类型的飞行程序之后,界面层需要新定义一个文档和文档模板,将新的飞行程序作为新文档的成员变量.文档关联的视图完全可以复用已有的2D、3D和曲线视图.
3.2 仿真实例
下面详细描述弹道导弹拦截卫星,并且弹道末段使用比例导引法时的仿真流程.第1步选择“文件”菜单下的“新建”,打开图5中①所示的目标选择对话框,选择“人造卫星”后,打开拦截人造卫星的仿真场景;第2步打开“文件”菜单下的“导入配置文件”对话框,选择一个场景配置文件,通过场景配置文件读入导弹、目标的相关参数.当末制导律为比例导引时,点击“配置”菜单中的“当前配置”,在制导律选择下拉框中选择“比例导引”.其它配置参数保持默认值.之后点击仿真进程控制中的“继续”按钮,开始运行仿真程序,则界面上将动态输出随时间变化的拦截导弹和卫星的飞行轨迹.点击工具栏上的“保存”按钮则可以将仿真生成的导弹和卫星数据保存为二进制文件.
4 结论
本文详细设计并实现了通用、具有完善的可视化能力的空间拦截仿真平台.该平台分为界面层、逻辑层、数据层3个层次.界面层采用MFC的多文档应用程序框架,界面层的文档将逻辑层、数据层以及视图列表相互联系,可以通过增加文档模板的形式增加新的飞行程序,从而集成更多的飞行程序,即完成仿真平台的扩展;界面层应用GDI实现了多个视图.逻辑层采取模块化、层次化设计.数据层实现了仿真场景保存、恢复以及飞行程序配置文件的生成和解析.该平台的设计和实现方式对于航空航天仿真软件的研制具有一定的参考价值.
References)
[1]杨颖.STK在计算机仿真中的应用[M].北京:国防工业出版社,2005:1-4 YangYing.The application of STK in computer simulation[M].Beijing:National Defense Industry Press,2005:1 - 4(in Chinese)
[2]张宇宏,胡亚海,彭晓源,等.基于HLA的防空导弹武器系统仿真平台研究[J].北京航空航天大学学报,2003,29(1):1-4 Zhang Yuhong,Hu Yahai,Peng Xiaoyuan,et al.Simulation platform based on HLA for air defense missile weapon system[J].Journal of Beijing University of Aeronautics and Astronautics,2003,29(1):1 -4(in Chinese)
[3]张建平,余芳强,吴大鹏,等.基于OpenGL的建筑施工虚拟仿真平台的研究与开发[J].土木建筑工程信息技术,2009,1(2):55-62 Zhang Jianping,Yu Fangqiang,Wu Dapeng,et al.Research and development of open GL-based construction virtual simulation platform[J].Journal of Information Technology in Civil Engineering and Architecture,2009,1(2):55 -62(in Chinese)
[4] Gamma E.Design patterns:elements of reusable object-oriented software[M].Boston,MA:Addision Wesley,1994:305 -315
[5] Kruglinski D J.Programming micros oft visual C++6.0 技术内幕[M].5版.北京:北京希望电子出版社,2002:3-542 Kruglinski D J.Programming micros oft visual C++6.0[M].5th ed.Beijing:Beijing Hope Electronic Press,2002:3 - 542(in Chinese)
[6] Feng Yuan.Windows graphics programming Win32 GDIand direct Draw[M].Vpper Saddle River:Prentice Hall PTR,2000:3-202
[7]侯俊杰.深入浅出MFC[M].2版.北京:华中科技大学出版社,2001:401-409 Hou Junjie.Dissecting MFC[M].2nd ed.Beijing:Huazhong U-niversity of Science and Technology,2001:401 - 409(in Chinese)
(编 辑:张 嵘)
Simulation platform design for space intercept
Liu Zhe Dong Changhong Han Chao
(School of Astronautics,Beijing University of Aeronautics and Astronautics,Beijing 100191,China)
It is important for system simulation to build up a simulation platform.A simulation platform scheme,which was able to integrate varied space intercept missions,easy to extend,and with perfect visualization ability,was presented.The hiberarchy of the platform,main functions of each layer,and relationship between layers were introduced.The platform's architecture was described in detail.The implementation of visualization and concrete approaches to integrate varied missions were particularly studied.It is demonstrated through practice that this platform is capable of performing multi space intercept tasks,easy enough to extend,and convenient to study space intercept problems due to its powerful visualization.
simulation;design;multitasking;visualization
TP 391.9
A
1001-5965(2011)03-0355-05
2010-01-08
刘 哲(1985-),男,辽宁阜新人,硕士生,neo_csdn@Yeah.net.