




已阅读5页,还剩82页未读, 继续免费阅读
(航空宇航科学与技术专业论文)航天器发射仿真可视化框架设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国防科学技术大学研究生院硕士学位论文 摘要 随着我国航天发射活动的增加,与航天发射任务相关的仿真任务也日益增多。 与此同时,由于计算机图形技术的进步使得实现三维可视化的硬件门槛不断降低, 各种仿真任务的可视化需求也与日俱增。这对可视化软件的开发框架提出了新的 要求。可视化软件的开发框架不但需要有足够的通用性以适应不同的仿真任务需 求,还需要有足够的可重用性以减少开发工作量,进而减少开发周期,适应任务 量增加的趋势。为了适应上述新要求,本文使用应用范围十分广泛的可视化开发 平台v e g a 作为三维渲染工具,利用其提供的应用程序接口( a p i ) 函数进行场景 管理和图形渲染,在其基础上进行了二次开发。论文首先对软件结构进行了分析 和规划,确定了软件框架的总体结构;然后讨论了对仿真任务进行参数化描述的 方法,在此基础上实现了软件框架的配置模块;接着对仿真对象进行了分类归纳, 构建了一个覆盖范围较广的仿真实体类体系,依据这个体系实现了仿真实体模块; 同时还开发了网络数据接口模块、文件数据接口模块以及用户交互与仿真管理模 块和一些辅助模块,并在此基础上进行了系统集成,最终形成了一个航天器发射 仿真可视化软件框架。整个设计过程始终围绕着通用化、可重用这一要求进行。 在设计过程中还参考了软件工程和统一建模语言等领域的一些相关概念。框架完 成之后,对其进行了测试和实际应用试验,测试结果表明该框架基本达到了设计 要求。 关键字:航天器仿真;仿真可视化;框架设计;模块实现;系统集成 第i 页 国防科学技术大学研究生院硕士学位论文 a b s t r a c t w i t ht h ei n c r e a s ei ns p a c el a u n c ha c t i v i t i e sa sw e l la st h ea d v a n c e si nc o m p u t e r g r a p h i c st e c h n o l o g y ,m o r ea n dm o r es i m u l a t i o nt a s k sr e l a t e t os p a c el a u n c h 、i m v i s u a l i z a t i o nr e q u i r e m e n tw e r ed e m a n d e d s on e wr e q u i r e m e n t sa r ep r o p o s e dt o v i s u a l i z i n g - s o f t w a r e sd e v e l o pf r a m e w o r k av i s u a l i z i n g - s o f t w a r e sd e v e l o pf r a m e w o r k n o to n l yn e e d st oh a v es u f f i c i e n tv e r s a t i l i t yt om e e tt h en e e do fd i f f e r e n ts i m u l a t i o n t a s k s ,b u ta l s on e e d st oh a v ee n o u g hr e u s a b i l i t yi no r d e rt or e d u c ed e v e l o p m e n t w o r k l o a d ,t h e r e b yr e d u c i n gt h ed e v e l o p m e n tc y c l e i n o r d e rt o s a t i s f y t h e s e r e q u i r e m e n t s ,t h et h e s i su s eaw i d e l yu s e dv i s u a l i z a t i o np l a t f o r n ln a m e dv e g aa s3 d r e n d e r i n g t o o la n du s i n gi t s a p p l i c a t i o np r o g r a mi n t e r f a c ef u n c t i o n s f o rs c e n e m a n a g e m e n ta n dr e n d e r i n g 1 1 1 et h e s i sf i r s t l yp l a nt h es o f t w a r e sa r c h i t e c t u r e ;t h a n a n a l y s i sh o w t od e s c r i b eas i m u l a t i o nt a s kw i t hp a r a m e t r i cd e s c r i p t i o nm e t h o da n db u i l d ac o n f i g u r a t i o nm o d u l e ;a f t e rt h a t ,t h et h e s i sg r o u pt h es i m u l a t i o no b j e c t st o g e t h e ra n d b u i l das i m u l a t i o ne n t i t yc l a s ss y s t e m ,b a s eo nt h i ss y s t e mb u i l das i m u l a t i o n e n t i t y m o d u l e ;f i n a l l y ,t h et h e s i sd e v e l o p e da l o c a lf i l ea n dn e t w o r kd a t a - i n t e r f a c em o d u l ea s w e l la sau s e ri n t e r a c t i o na n ds i m u l a t i o nm a n a g e m e n tm o d u l e a l lt h i st h i n g sf i n a l l y f o r mav i s u a l i z i n g - s o f t w a r e sd e v e l o pf r a m e w o r ko fs p a c el a u n c h i n gs i m u l a t i o n i nt h i s p r o c e s s ,t h ed e s i g na n di m p l e m e n t a t i o no ft h ef r a m e w o r kw a sa l w a y sf o c u s i n go nh o w t 0b eg e n e r a l - p u r p o s ea n dh i g h l y r e u s a b l e 1 1 1 ed e s i g nm a d er e f e r e n c et os o m er e l a t e d c o n c e p t so fs o f t w a r ee n g i n e e r i n ga n dt h eu n i f i e dm o d e l i n gl a n g u a g e a f t e rt h e f r a m e w o r kw a sc o m p l e t e d ,w ea l s oc o n d u c t e dat e s to ni t ,t h er e s u l t ss h o w st h a tt h e f r a m e w o r ks u c c e s s f u l l ya c h i e v e st h ed e s i g nr e q u i r e m e n t si nt h em a i n k e yw o r d s :s p a c e c r a f ts i m u l a t i o n ;s i m u l a t i o nv i s u a l i z a t i o n ;f r a m e w o r k d e s i g n ;m o d u l ed e s i g n ;s y s t e mi n t e g r a t i o n 第i i 页 国防科学技术大学研究生院硕士学位论文 表目录 表2 1 各种开发平台比较9 表6 1 数据文件格式6 4 第1 i i 页 国防科学技术大学研究生院硕士学位论文 图目录 图2 1 外部接口1 0 图2 2 仿真实体模块用例图1 2 图2 3 文件数据接口模块用例图1 3 图2 - 4 网络数据接口模块用例图1 4 图2 5 任务配置模块用例图1 5 图2 6 视点控制模块用例图1 5 图2 7 辅助作图模块用例图1 6 图2 8 用户交互与仿真管理模块用例图1 7 图2 - 9 模块关系图18 图2 1 0 类结构图1 9 图3 1 x m l 文件根节点的子节点2 1 图3 2 场景节点展开图2 2 图3 3 数据来源节点展开图2 3 图3 4 时间基准节点展开图2 3 图3 5 仿真实体节点展开图2 5 图3 - 6 特效节点展开图2 6 图3 7 部件节点展开图2 7 图3 8 配置模块的模块图2 9 图3 - 9 配置模块状态图2 9 图3 1 0 配置模块的配置流程图3 0 图3 1 l 配置模块的保存流程图3 1 图4 1 仿真实体模块图3 4 图4 2 c s i m o b j e c t 类的状态图3 7 图4 3r e f r e s h f x s t a t e ( ) 函数的流程如图3 8 图4 4 c o n f i g ( ) 函数流程图4 0 图4 5 r e f r e s h p o s ( ) 函数流程图4 1 图4 6 静态实体类r e f r e s h p o s ( ) 函数流程图4 4 图4 7 部件类r e f r e s h p o s ( ) 函数流程图4 6 图4 8 d o f 类r e f r e s h p o s ( ) 函数流程图4 9 图5 1 文件数据接口模块图5 2 图5 2r e a d f i l e i n t o m e m o r y ( ) 函数流程图5 4 图5 3 网络数据接口模块图5 6 第1 v 页 国防科学技术大学研究生院硕士学位论文 图5 4 网络数据接口类的状态图5 7 图5 5c r e a t e r e c e i v e r ( ) 函数流程图5 8 图5 - 6 视点控制模块图6 1 图5 7c o b s e r v e r 类的状态图6 1 图5 8 用户交互与仿真管理模块图6 5 图6 1 运行时线程间关系6 8 图6 2 主线程与v e g a 线程的处理流程6 9 图6 3 主线程与接收线程的处理流程7 0 图6 - 4 应用实例所用的想定信息文件7 1 图6 5 场景定义7 l 图6 6 数据源定义7 2 图6 7 时间基准的定义7 2 图6 8 导弹实体的定义7 3 图6 - 9 载入想定文件7 3 图6 1 0 运行效果1 7 4 图6 1 1 运行效果2 7 4 第v 页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得 的研究成果尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意 学位论文题目: 航丞器缝盟笾墓丑塑也捱玺遮丑:生塞理 学位论文作音签名:盘数主鱼 日期: z ,1 7 1 年月2 3 日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定本人授权 国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子 文档,允许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印缩印或扫描等复制手段保存、汇编学位论文 ( 保密学位论文在解密后适用本授权书。) 学位论文作者签名: 遗塑丝 作者指导教师签名:夕 国防科学技术大学研究生院硕士学位论文 第一章绪论 1 1 研究背景 随着计算机科学和系统科学的发展,仿真技术的地位日益重要,其应用范围 遍及政治、经济、军事、交通、能源、科学实验、教学以及管理等社会各部门各 领域。计算机仿真技术不仅用于评估现有系统的性能、测试系统结构,也可以用 于评估一个新系统的设计是否合理、预测其性能是否能达到预定要求【l 】。 所谓仿真技术,是以相似原理、信息技术和系统科学以及各应用领域的有关 专门技术为基础,以计算机和专用设备为工具,利用系统模型对实际或设想的系 统进行动态试验研究的- - f j 多学科综合的技术性学科【2 j 。所谓系统仿真,就是建立 待仿真系统的模型,并在模型上进行试验的活动。当进行实物试验实验代价高昂 或风险较大时,仿真技术就成为一种十分重要甚至必不可少的研究手段【3 】。 航天发射仿真任务,是门类繁多的系统仿真任务中的一种,其主要任务是对 各种航天发射活动,如运载火箭、卫星、飞船以及弹道导弹等的发射、入轨直至 运行、再入的整个过程进行模拟,以帮助相关人员进行任务规划、实验风险评估、 效能分析、系统设计以及实验后的各种评估分析工作。由于航天活动固有的系统 复杂程度高、风险大、航天器造价昂贵且多为一次性使用等特点,航天器发射仿 真任务的应用频率日益频繁,随着我国航天事业的发展壮大,类似的仿真任务需 求还将不断增加。 航天发射仿真任务的直接结果通常是大量的数据。数据对于进行仿真结果的 定量分析、可信度评估、系统验证等工作是必不可少的,但以数据形式表现的仿 真结果却不利于人们对仿真结果形成直观认识、进行定性分析。为了克服这一缺 点,仿真可视化技术被结合到航天发射仿真任务中,对仿真结果进行处理,并以 图形的形式对仿真结果进行实时可视化显示或事后回放。 所谓的可视化,是一系列的转换,这种转换将原始数据转换成可显示的图像, 这种转换的目的在于将信息转换成可被人类通过视觉感知系统直观地领悟的形 式。仿真可视化( v s ) 技术,是一种基于仿真计算结果的可视化技术,目的在于 构建一个可以真实再现仿真结果的可视交互环境。它的实质是采用图形或图像方 式对仿真计算过程进行跟踪、控制,并对结果作后处理,同时实现仿真软件界面 的可视化。它以计算机技术为核心,依据计算机仿真得到的数据,利用计算机图 形学的相关理论方法,将仿真数据转化为能被计算机的图像显示设备使用的图形 数据,并最终在这些图像显示设备上显示出逼真的虚拟景象 4 1 。可视化仿真技术作 为计算机技术的前沿领域之一,已被广泛应用于虚拟现实、驾驶模拟、场景再现、 第1 页 国防科学技术大学研究生院硕士学位论文 城市规划等领域。 对于航天器发射仿真可视化任务而言,它以航天器发射仿真任务的仿真计算 结果为基础,可以直观地表现飞行器整个飞行过程( 包括飞行过程中的各种动作) 及当前的飞行状态,是航天器发射仿真任务的一种有力而直观的表现工具。 目前,随着计算机软硬件的发展以及图形处理能力的增强,三维显示的硬件 门槛不断降低,需要对仿真结果进行可视化显示的应用也越来越多,对可视化生 成的图形质量要求亦逐渐提高,可视化技术在航天器发射仿真任务中的应用前景 将更加广阔。 在这种情况下,对航天器发射仿真可视化任务进行进一步研究,找出其共有 特性并形成一个航天器发射仿真任务可视化软件框架就成为一项迫切的任务。 1 2 问题的提出 本课题组在所进行的航天器发射仿真任务中,很早就已引入仿真可视化技术, 在航天器发射仿真可视化方面拥有较多的实践经验与技术积累,并在工程实践的 基础上逐渐建立了一个仿真可视化软件框架。 该仿真可视化软件框架经过多年的使用、测试和修改完善,在大量项目中得 到应用,业已十分成熟,被证明是可靠和有效的。然而,随着可视化任务的增多, 以及新的仿真任务对可视化效果的要求逐步提高,该仿真可视化框架也逐渐暴露 出以下缺点: 1 、该框架的通用性还不够强,将其应用于不同的任务时,有时仍需对框架本 身进行修改和调整。 2 、该框架的可重用性还需要进一步提高,在其基础上进行可视化程序开发时, 重复性工作仍较多,代码编写量较大。随着任务数量的增加,这一缺点越来越显 著,耗费了大量的时间,不利于将精力集中到提高视觉效果和画面质量上来。 3 、该框架最初开发时间较早,从开始构建到最终成形,中间经历的时间跨度 较大,在这段时间内,计算机软硬件技术均大幅前进。由于这些历史原因,导致 该软件框架是一个结构化与面向对象程序设计方法混用的混合程序,包含各个时 期的软硬件发展烙印,不能完全适应当前的软件开发方法。 4 、该框架经过多次变动,在一定程度上对软件的维护造成不利影响。 为了应对当前面临的可视化任务日益繁重的新情况,需要开展新的仿真可视 化软件框架的研究工作,力求解决原有框架存在的这些问题,搭建一个新的通用 性较强的航天器发射仿真可视化软件框架,该框架应该具有在面对不同的仿真可 视化任务时基本不需要修改源代码的能力。这也是本文的研究目标和主要工作所 在。 第2 页 国防科学技术大学研究生院硕士学位论文 1 3 解决问题的途径 要解决上节提出的各种问题,最终形成一个完整可用的仿真可视化软件框架, 首先需要有一个清晰完整的解决问题的思路。经过对需要解决的问题进行分析整 理,参考软件工程中面向对象软件开发的一些思路和方法以及前人的一些研究工 作【5 h 1 4 】,确定了基本的研究路线、步骤以及解决上节所述若干问题的基本途径如 下: 1 、根据实际情况选定仿真可视化软件的开发平台。 可视化开发平台是可视化软件运行的基础,它将出于应用层的可视化软件和 底层的图形硬件及操作系统隔离起来,为用户的可视化应用软件提供一系列与硬 件无关的图形接口。除非打算直接对硬件进行操作,否则执行各种图形生成与绘 制工作都需要通过可视化开发平台提供的a p i ( 应用程序接口) 函数来完成。由于 可视化开发平台所处的基础地位,应该首先确定要使用的开发平台。 2 、选择软件的开发语言与开发环境。 软件开发选用的开发语言和开发平台在一定程度上决定了软件的开发方式、 可以利用的已有资源以及开发的难易程度。由于大部分可视化开发平台均只支持 某几种特定的开发语言与开发环境,因此对于开发语言与开发环境的选择应在选 定可视化开发平台之后进行。 3 、进行框架软件的总体设计,形成合理的软件结构 在开发平台、所用语言和开发环境确定后,即可开始对框架软件进行总体设 计。总体设计不仅要对软件功能进行合理划分,确定软件在模块这一级的总体结 构,从而建立一个较为合理的框架结构,还需要对各模块进行需求分析,确定各 模块会被那些角色使用,需要实现哪些功能和接口。一个合理的软件结构不仅可 以提高软件的可读性和可维护性,方便日后维护修改,也是软件开发顺利的基本 保证。 4 、实现按照想定配置仿真任务 要使可视化软件框架有较强通用性,仿真可视化软件必须能够按任务想定进 行配置,否则只能通过修改代码达到适应不同任务的目标。要实现按任务想定对 软件进行配置,则必须明确描述一个任务需要哪些信息,并对这些信息进行分类, 包括对需要可视化表现的仿真对象进行分类,确定描述它们所需要的信息【3 】【7 1 。这 里完成的分类工作还可以指导接下来进行的对仿真对象类的实现。分类完成并确 定描述方法后,即可选定记录格式,设计实现一个可以读取此类想定信息并完成 软件配置的功能模块。 5 、构建仿真实体类体系 第3 页 国防科学技术大学研究生院硕士学位论文 在仿真可视化软件中,存在许多需要进行可视化表现的要素,这些要素按照 面向对象的设计思想,可以归类为许多仿真对象,这些仿真对象是可视化软件中 的核心对象。为了实现通用化,我们需要把这些现实中的对象抽象为一个个类, 每个类代表一种现实中的对象物体,在本文中把这些类称为仿真实体类。在此基 础上我们还需要清理出它们之间的联系,进而组成一个类体系。由这个类体系中 的某个类实例化而成的类对象则是这些现实中的对象物体在仿真软件中的一种数 字化了的抽象表达,本文中把这些类实例称为仿真实体。在可视化过程中,现实 对象物体所有需要表现的行为和属性均应由其在软件中对应的类实例来体现。这 些类的划分方法,应与前述第四步分析如何描述一个仿真任务时完成的对象划分 相一致;每个类需要具备哪些属性( 即成员变量) ,也应按前述第四步所明确的 描述一个对象所需要的信息来确定;每个类需要实现的操作( 即成员函数) ,则 应参照前述第三步进行的需求分析确定。 6 、实现一个拥有较好兼容性的数据接口 要实现可视化软件框架的通用性,除了需要实现按想定配置任务功能和仿真 实体类之外,还需要设计实现一个较为通用的数据接口,以适应不同的仿真计算 程序输出的仿真结果。除此之外,该数据接口应能适应多种数据来源,如来自以 太网或来自本地磁盘的数据等。 7 、实现可视化软件框架需要的其它功能模块。 一个完整的可视化软件不仅需要上述三类核心功能,还需要提供一些其他的 辅助功能以方便用户使用,这些功能包括视点控制以及演示数据生成等。 8 、完成系统集成 在前面七个步骤均已完成的基础上,即可设计并实现一个负责与用户交互的 模块,该模块同时负责管理软件的其余各个模块。通过这个交互与管理模块将各 部分集合起来,最终完成整个软件的设计实现。 9 、进行测试与完善。 1 4 可视化开发平台与可视化软件框架发展概况 可视化开发平台是一类为可视化程序的开发人员提供基础a p i 函数的软件, 是大部分仿真可视化应用程序的开发基础。可视化软件框架则是在可视化开发平 台的基础上开发的一类作为各种可视化软件的模版使用的软件。 目前,国内外对仿真可视化相关领域的研究十分活跃。可视化开发平台与可 视化软件框架之间相互推动,共同前进。 目前投入使用的可视化开发平台有多种,形成了多个成熟的产品系列。其中 国外的平台有m u l t i g e n p a r a d i g m 公司的v e g a 和v e g ap r i m e 系列、m a k 公司的 第4 页 国防科学技术大学研究生院硕士学位论文 s t e a l t h 系列、m e t a v r 公司的v r s g ,q u a n t u m 3 d 公司的o p e n g v s t l 5 j 以及开源的 o s g 系列等;国内有北京信息科技大学开发的3 d v r 等,但产品种类较少。 v e g a 是一个广泛应用于实时视觉模拟、虚拟现实和普通视觉应用等领域的可 视化开发环境。v e g a 的早期版本专用于s g i 工作站,是以i r i sp e r f o r m e r 为基础 开发的。后来推出的w i n d o w s n t 版本的v e g a 建立在o p e n g l 的基础之上,但为 了兼容性仍提供了一个虚拟p e r f o r m e r 层【l 州。v e g a 的一个显著特点在于其特有的 l y n x 界面,通过l y n x 可以快速、方便地改变应用程序的性能、通道、c p u 分配、 视点、观察者、特殊效果、环境、特效、模型等各方面的特性而无需编写源代码。 v e g a 提供了一套完整的符合c 语言规范的应用程序接口( a p i ) ,其回调函数机 制为软件开发人员提供了很大的灵活性。 v e g ap r i m e 是v e g a 的后续产品,其核心是全新的v e g as c e n eg r a p h ( v s g ) , 完全摒弃了p e r f o r m e r 。v s g 使用c + + 编写,利用了c + + 的很多高级特性,如模板、 多态、以及s t l 库等,相应地,v e g ap r i m e 提供的a p i 也符合c + + 规范。与此同 时,v e g ap r i m e 继承并改进了v e g a 中广受好评的l y n x 界面,称为l y n xp r i m e 。 目前v e g ap r i m e 的最新版本为3 o 。 s t e a l t h 是m a k 公司的一个重要的分布式仿真工具,与m a kr t i 配合使用, 用于对分布式仿真形势的了解、调试及回顾。它提供了十余种虚拟战场观察模式, 被业界认为是虚拟战场三维观察的标准。 v r s g 是m e t a v r 虚拟世界生成器的一个组成部分,是一个基于d i r e c t x 开发 的在p c 平台上使用的3 维实时可视化开发平台,能够真实再现几何细节。它在大 规模地形数据的处理上有独到之处,配合m e t a v r 的地形生成器能够较方便地构 建高保真度的大型、超大型虚拟场景【1 7 1 。 o s g 是o p e n s c e n e g r a p h 的简称,是一套基于o p e n g l 开发,完全符合标准 c + + 规范的应用程序接口( a p i ) 。它经应用于诸如飞行器仿真、游戏、虚拟现实、 科学计算可视化等领域。它基于场景图的概念,提供一个在o p e n g l 之上的面向 对象的框架,从而把开发者从o p e n g l 程序的大量底层图形调用中解脱出来。与 此同时,o s g 仍然能够方便地自定义o p e n g l 渲染器,让用户根据需要优化渲染 性能,这是其他开发平台难以做到的。得益于开源的优势,目前o s g 的应用范围 在快速扩大【1 8 1 【1 9 1 2 0 1 。 o p e n g v s 是q u a n t u m 3 d 公司生产的专业级显卡的捆绑软件,它的前身是 g v s 。o p e n g v s 是世界上第一款运行在通用工作站平台上的实时三维场景驱动软 件,为软件开发者提供了强大的a p i 。 国内的可视化开发平台主要有两类,一类直接在o p e n g l 、d i r e c t 3 d 等底层图 形a p i 的基础上完全自主开发,但通常带有很强的实验性质,很少形成商业化的 第5 页 国防科学技术大学研究生院硕士学位论文 产品;另一类则利用o s g 这类开源平台,在其基础上开发。前面所述的北京信息 科技大学开发的3 d v r 即属于这一类。 国外开发的这类平台由于其应用推广和销售工作较为成功,使得它们的更新 与维护均较为及时,功能也较为完善。国内由于缺少从事这一领域的专门厂商, 通常这类底层的开发平台都由高校或研究所进行开发与研究,这些机构在软件的 持续维护与后续升级等方面存在困难,因此国内开发的可视化开发平台往往功能 不够全面,应用范围也不广,且版本更新缓慢,商业化运作不太成功。 这些平台均有一些相似的特点,例如都具有较强大的场景管理功能,提供多 种几何模型文件接口,有完善的坐标系管理功能,使开发可视化程序时避免了多 边形生成、渲染以及坐标变换等繁重的工作。一言以蔽之,可视化开发平台帮助 用户进行底层的场景裁剪、坐标变化、纹理映射等操作,用户不需要关心如何把 物体画出来的问题,只需要专心构建场景和完成实体的驱动( 即把实体在规定时 刻放到规定的位置的过程) 。由此可见,使用可视化开发平台开发可视化软件可 以大大降低开发工作量。但另一方面,定义、配置、管理以及驱动仿真对象等工 作仍需要开发者自己处理。因此,若无一个较为通用化的程序框架,则每个可视 化程序均须在程序中分别配置每一个仿真对象并将其与相关显示及资源数据相关 联,开发过程中仍将面临较多的重复性劳动。 针对上述问题,国内外在这些渲染平台的基础上进行了许多相应的工作,在 防空与空袭作战、导弹飞行、雷达站( 群) 、水利水电、兵棋推演等应用领域的 仿真应用中进行了仿真可视化通用框架的研究及设计【2 l 卜【2 6 】。目前,已有不少仿真 应用框架投入使用。这些应用框架研发的主要目的是通过建立一个划分合理、封 装完善的系统结构,尽量减少模块间的耦合程度,做到任务配置、仿真运行与输 入输出等主要部分的分离,力求提高仿真应用框架的灵活性、统一性与通用性【2 7 1 。 这些工作均实现了一定程度上的通用化,取得了不少成果。典型的有西工大的飞 行视景仿真平台f s s t l 8 i b 9 】、重庆大学自动化学院开发的航天发射场视景仿真系统 2 8 】等;国外的有j a d e 、美国经济仿真框架( a s p e n ) 等。 在上面列举的可视化开发框架中,以西工大的f s s 最为典型。该框架基于o s g 开发,提出了装配式的视景仿真过程生成方法,用户通过在软件开发框架上添加 各种资源,如窗口、视口、场景、飞行器、地形、数据等,软件将这些资源均作为物 体或属性物体来处理,当资源添加完成后用户通过装配器将各种资源有机的结合 在一起,从而形成了整个视景仿真过程。 1 5 本文的主要内容 本文主要针对原有仿真可视化软件框架存在的一些不足进行了分析,在此基 第6 页 国防科学技术大学研究生院硕士学位论文 础上利用面向对象的分析方法,对可视化软件可能面对的任务特性以及任务中可 能面对的仿真实体进行归纳,找出可以描述各种常用可视化任务和仿真实体方法。 以这种描述方法为基础,设计并实现一个新的仿真可视化软件框架,实现对不同 可视化任务和不同仿真实体的兼容,以弥补原框架的不足。 各章具体内容安排如下: 第一章:绪论,简要介绍了本论文的研究背景、提出研究这一课题的原因、 拟采用的研究途径以及国内外相关领域的研究现状等。 第二章:框架的总体设计,主要解决仿真可视化软件框架所用开发平台、开 发语言以及开发环境的选择、软件框架的模块划分与模块结构、各模块的功能需 求分析等问题。 第三章:配置模块的设计与实现,主要工作在于确定仿真想定需要包含哪些 信息,仿真实体应如何分类,想定信息存成哪种格式、设计并实现能解释此种格 式的想定信息配置模块等。 第四章:仿真实体类的设计与实现,主要工作是根据第二章和第三章的分析, 完成各仿真实体类及其使用的其他一些辅助类的设计。 第五章:数据接口的设计与实现,主要工作是设计并实现了两类数据接口, 即以太网数据接口和文件数据接口。 第六章:视点控制及其它附属功能的设计和实现,主要工作为设计并实现了 视点控制模块以及弹道数据生成模块。 第七章:系统集成与应用举例,本章设计并实现了用户交互与仿真管理模块, 并在此基础上进行了系统集成和实际应用测试。 第7 页 国防科学技术大学研究生院硕士学位论文 第二章框架的总体设计 总体设计的任务主要有以下三个方面,一是确定设计目标;二是选择开发平 台和开发语言、开发环境;三是明确软件的功能需求,划定软件的基本结构。 2 1 设计要求 本软件框架主要应用于航天器发射的仿真可视化任务,也可用于表现航天器 在轨及再入期间的各种活动。在仿真过程中可能需要表现的动作主要有发射、分 离、在轨机动、调姿、诱饵释放等。需要用到的场景包括发射场景、地球全局场 景以及再入场景等,其中发射场景及再入场景可能有多个。 根据本框架的应用场合和绪论中所述的设计目的,确定本框架的具体设计要 求如下: l 、以此框架为基础开发的可视化程序应该既可作为计算机数值仿真或半实物 仿真的演示输出部分,也可以作为单独的可视化程序。 2 、此框架应具备足够的灵活性,可以在不修改源代码或尽可能少修改源代码 的前提下,完成各种航天器的发射仿真可视化任务。支持用户自定义扩展,在面 对过去没有的新类型飞行器发射仿真任务时,可以在不改动或尽量少改动源代码 的前提下,通过可扩展的接口调用用户提供的驱动模块正确完成演示。 3 、能从网络数据源或本地文件获取数据,并能适应不同的网络数据包或数据 文件格式。 2 2 总体方案的选择 2 2 1 三维可视化开发平台的选择 受各种因素的限制,可供选择的三维可视化开发平台方案主要有以下几种: l 、使用v e g a 开发 2 、使用v e g ap r i m e 开发 3 、使用o s g 开发 4 、直接使用d i r e c t x 开发 5 、直接使用o p e n g l 开发 若使用d i r e c t x 或o p e n g l 进行开发,可以通过另行编写顶点处理器以及像素 处理器以替代图形硬件默认的顶点像素处理方式,获得极高的图像质量,但开发 工作量很大,且过去这方面的积累不足,开发周期难以控制口9 1 - - 3 1 1 。 第8 页 国防科学技术大学研究生院硕士学位论文 若使用o s g 进行开发,由于o s g 是种开源软件,因此软件可控性强,底 层代码对开发人员可见,有利于测试、调试以及开发工作的深入,且o s g 应用新 技术较快,图像质量较好。但是由于缺少类似v e g a v e g ap r i m e 的图形化开发界面 以及一些实用工具包,开发工作量较大,而且前期积累也较少,没有可以直接继 承使用的模块。 使用v e g a v e g ap r i m e 进行开发的有利之处在于开发经验丰富,有大量积累, 许多模块可直接使用无需重新编写,且由于有l y n x 图形界面的帮助,开发工作量 可进一步减少。不利之处在于v e g a v e g ap r i m e 的底层机制不可见,一些问题不明 就里,难以深入解决;提供的功能虽丰富但仍有不足;无法改变图形渲染方法, 进一步提高图形质量的空间有限。 各种驱动工具的综合对比参见表2 1 。 表2 - 1 各种开发平台比较 项目 图形开发经验开发工作量应用频率3 应用前景其他存在的 工k 质量 问题 v e g a一般有大量开 | 高已停止更新,将使用单精度 发经验逐步被取代坐标 v e g a 稍好 有一定开 较使用v e g a 开发 较高 用于替代v e g a系统仍不完 p r i m e 发经验有所增加善 o s g 较好未开发过 较使用v e g ap r i m e 低开源软件,生命稳定性较差, 完整系统开发有一定增加力较强 版本杂乱 d i r e c t x 好1无开发经铰使用o s g 开发有暂未应用微软持续改进, | 验大幅增加前景较好 o p e n g l好2有较多开较使用d i r e c t x 开一般4硬件支持充分, l 发经验 发有所增加前景较好 注:1 指不使用硬件默认处理方式,自行开发s h a d e r 的情况下。 2 指不使用硬件默认处理方式,自行开发s h a d e r 的情况下。 3 指本课题组参与过和即将参与的项目中的使用频率。 4 专指完全使用o p e n g l 进行开发的频率。 根据上述分析,对开发平台的熟悉程度、开发工作量、易用性、可靠性、图 形质量等方面进行了综合权衡。结合本课题的一些实际情况,如时间有限,课题 组正在进行中的项目使用v e g a 者居多,将要进行的项目多要求使用v e g ap r i m e , 且从v e g a 转换到v e g ap r i m e 工作量不算太大等等,决定选用v e g a 作为本框架软 件的开发平台,并在开发过程中考虑将来转换到v e g ap r i m e 的可能行。 2 2 2 开发语言及开发环境的选择 本框架软件运行在w i n d o w s 平台下,由于v e g a 提供c 语言形式的a p i 函数 第9 页 国防科学技术大学研究生院硕士学位论文 库,决定选用c + + 作为开发语言,以微软的v i s u a lc + + 为开发环境。 可供选择的开发方式主要有以下几种: 1 、使用w i n d o w sa p i 2 、使用m f c 基础类库 3 、使用n e tf r a m e w o r k 直接使用w i n d o w sa p i 进行开发需要自行编写消息循环处理消息,并自行管 理程序内消息的递送,较为繁琐,编码量大,但可以根据需要灵活定制并完全控 制程序运行流程【3 2 】。 使用m f c 基础类库进行开发可以利用m f c 提供的各种基本类型,快速搭建 程序框架。由于m f c 提供的窗口类已实现了消息循环,并建立了消息递送及消息 映射机制,较为方便。但由于m f c 类库将w i n d o w s 程序的运行机制封装得较深, 程序可读性有所下降【3 3 1 1 3 4 1 。 n e tf r a m e w o r k 是微软从v c 7 0 开始支持的一种全新的f r a m e w o r k ,特点是可 以实现跨语言调用,且支持智能内存管理,其功能十分强大,但效率有所降低, 且经测试,在其托管环境下v e g a 提供的一些函数不能正常运行【3 5 1 。 综合各方面因素考虑后,决定基于m f c 基础类库搭建程序的基本构架。 2 3 外部接口分析 软件的外部接口是软件系统与外界交换信息的渠道,本软件框架需要从外部 输入的数据和其它各种仿真可视化软件基本一致,主要包括用户指令、配置信息、 仿真数据以及绘图资源等。用户指令主要由鼠标、键盘、手柄等外设输入;配置 信息和显仿真数据可能储存在本地硬盘上,也可能来自网络设备;绘图资源包括 模型文件、纹理贴图等,由于数据量较大,通常储存在本地硬盘中。根据输入数 据的逻辑分类以及各自的物理来源,定义了五个接口,这五个外部接口的定义如 图2 1 所示。 图2 1 外部接口 第1 0 页 国防科学技术大学研究生院硕士学位论文 2 4 软件系统的模块划分与功能需求分析 对系统进行模块划分及功能需求分析是总体设计的主要工作,是开展后续工 作的前提条件和重要保证。在开始着手实现软件的具体功能之前,都必须先经过 模块划分与功能需求分析阶段,以便清楚地界定软件的功能,避免由于开发过程 中软件功能越加越多,导致软件开发时间和工作量不可控制地增大,同时也可防 止出现开发过程中将某项功能遗漏的状况【3 6 儿3 7 】。 通常,模块划分与功能需求分析是个相互结合的迭代过程,需求功能分析 常使用用例分析作为手段【3 9 l 3 引。具体过程为首先将软件系统初步划分为主要的几 个功能模块,通过对这些模块进行用例分析,确定划分是否合理,根据具体情况 对模块划分进行调整,重复这一分析调整过程,直到满意为止。限于篇幅,本章 对迭代过程不再敷述,只给出最终划分结果。此后即可根据模块划分确定软件的 模块间关系和类体系结构,从而明确所需要定义的内部接口。 根据上节进行的外部接口分析结果,本框架需要实现的5 个外部接口。其中 绘图资源接口已经由v e g a 实现,可直接调用v e g a 提供的a p i 函数完成。键盘鼠 标输入的数据则由操作系统接收并处理,以键盘鼠标消息的形式传递给应用程序, 在本框架中,对消息的分发处理大部分由m f c 框架及v e g a 自身实现的消息处理 机制完成,无需单独作为一个模块。因此,网络数据接口、数据文件接口和配置 接口可单独放在一个模块中实现,分别称为网络数据接口模块、文件数据接口模 块以及任务配置模块。网络数据接口模块和文件数据接口模块不仅负责从介质中 获取所需数据,而且还负责将这些数据转换成软件内部使用的形式并保存起来, 同时提供查询接口,供其他模块获取数据之用。想定配置模块不仅实现对外接口, 把配置文件内容读入,还要负责按配置文件内容对软件系统和仿真任务进行配置。 对于一个仿真可视化软件而言,图形用户界面是极为重要的组成部分,它直 接与用户打交道,所需具备的各种功能繁杂而又有一定的相似性,所以将负责与 用户进行交互的功能单元单独作为一个模块是切合实际的。由于本框架的图形用 户界面以m f c 基础类库的窗口类( c w n d 类) 为基础,与m f c 的消息响应机制 耦合紧密,因此用户指令接口也包含在本模块中。此外,为了便于按用户的指令 控制各个模块的运行,将仿真管理功能和用户
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 仓颉造字教学活动方案
- 仙人指路活动方案
- 代为祭扫活动方案
- 代表视察调研活动方案
- 代销理财活动方案
- 以案释法宣讲活动方案
- 价格打折活动方案
- 任职宣誓活动方案
- 企业九一八活动方案
- 企业元旦春节活动方案
- 《污水处理过程》课件
- 江苏省2024-2025年跨地区职业学校职教高考一轮联考(机械专业综合理论试卷含答案)
- 肿瘤患者心理护理与社会支持课件
- 《平衡计分卡在烟草公司绩效管理中的应用研究》
- 天津市2021年中考历史真题试卷(含答案)
- 药企微生物培训
- DB11∕T 1771-2020 地源热泵系统运行技术规范
- 2023-2024学年广西百色市高一下学期7月期末联考物理试题(解析版)
- 2024年冬季N0M世界青少年数学思维研学活动模拟题4年级
- 销售苗木实习报告
- 老旧小区道路及公共设施改造项目施工组织设计方案
评论
0/150
提交评论