查字典论文网 >> 太阳帆航天器三维动画可视化仿真平台的设计与实现

太阳帆航天器三维动画可视化仿真平台的设计与实现

小编:侯志祥

0 引言

太阳帆航天器是一种在深空探测和星际航行等领域极具潜力的新型航天器,利用太阳光压产生持续推力,给航天器提供持续动力,本身无需携带大量的燃料,因此在深空探测和星际航行等航天领域具有广阔的应用前景,近年来受到国际航天界的广泛关注。

美国宇航局(NASA)、日本宇航局(JAXA)、欧洲航天局(ESA)等多个世界研究机构正在研制利用太阳帆航天器进行推进任务(如Pole Site、Geosail、Geostorm等),但是,离利用太阳帆进行深空探测及星际航行还有一定的距离,还有一系列的关键技术需要攻克。针对太阳帆航天器进行一次太空航行任务,需要高额的成本,本文提供了一种经济且有效的方式,研究并开发了一套三维可视化仿真平台,利用仿真平台模拟太阳帆航天器的飞行情况,为实际太阳帆航天器飞行提供一定的参考。

截止目前,未发现有关太阳帆航天器可视化仿真平台的文献。本文利用C++6.0、Multigen Creator/Vega、及MATLAB等软件相结合搭建了一个太阳帆三维动画可视化仿真平台。利用视点控制及多通道多视点技术分别在不同的通道中观察太阳帆的飞行轨迹及姿态变化;通过VC++与MATLAB的交互编程,利用MAT文件的仿真数据驱动多个物体同时移动;利用Vega和OpenGL混合编程,实现了飞行轨迹及姿态信息实时显示的功能。

1 太阳帆航天器三维动画可视化仿真平台总体设计

三维动画可视化仿真系统主要由太空飞行仿真场景及视景仿真模型两大部分构成。飞行仿真场景是指太阳帆所飞行的具体环境;视景仿真模型是指太阳帆航天器的具体结构模型。

本文首先利用Creator建立太空环境飞行仿真场景(太空环境)和太阳帆航天器的结构视景仿真模型(flt文件);接着利采用Vega提供的Lynx工具将flt文件导入相应的场景中,然后,进行一系列的初始化工作,并将其储存为应用程序定义文件(ADF)文件;最后,通过MATLAB计算各个时刻太阳帆的飞行轨迹和姿态数据,并通过载入模型对象的位置及姿态数据,完成对太阳帆的飞行轨迹和姿态变化的三维可视化仿真。

2 仿真软件平台环境和开发中的关键技术

2.1 在Visual C++环境下Vega应用程序的开发

Windows平台上Vega应用程序的开发,利用MFC框架开发程序能够有效地应用Vega函数库,可以极大程度地减小程序开发的工作量。本文采用基于MFC开发Vega应用程序。

2.2 三维动画场景和模型的建立

Multigen Creator是一款专业化的建模软件工具,可以有效地创建交互式实时应用的三维模型及场景。本文利用Creator建立太空环境模型和太阳帆航天器的结构模型。太阳帆航天器的结构主要包括大面积帆膜、支撑机构及中心控制机构等其它附属机构,模型的正面视图如图2所示。将Creator中建好的模型文件导入Vega中,利用Vega所提供的Lynx定义三维动画场景中的模型元素属性和相互位置关系,最后生成用于太阳帆航天器三维动画仿真平台的ADF文件,即虚拟场景文件。

2.3 多通道渲染技术

本文采用多通道技术实现在同一时刻不同位置观察各角色模型对象的运动状态。在一个通道中观察包括太阳帆在内的多个运动模型的相对运动轨迹,而在另外一个通道中观察太阳帆航天器姿态的变化过程,结合两个通道同时观察太阳帆航天器飞行状况。

2.4 数据驱动

本系统利用仿真数据与各模型对象进行关联,通过不断调用相关联的数据进行位置及姿态的更新,实现逼真的可视化效果,能够准确地展现控制效果。利用MATLAB与VC++之间的交互编程调用MAT文件,并采用MAT文件的操作方法来读取MAT文件,从而实现利用仿真数据驱动太阳帆、地球等模型对象的运动。

3 仿真实例

三维可视化仿真平台系统界面主要包括菜单栏、主窗口和操作面板。其中主窗口中有两个通道,分别显示各模型对象飞行的轨迹与太阳帆的姿态变化;操作面板则用来控制仿真的进度,并同时显示太阳帆、地球等角色对象的位置、姿态及速度信息。首先载入使用MATLAB进行太阳帆航天器轨迹优化仿真后保存的MAT数据文件,与太阳帆、地球等模型绑定其相关的位姿数据。太阳帆航天器以一定的位姿出现在仿真环境中,通过视点切换,并选择合适的视点来观察太阳帆飞行过程。仿真过程中可以选择开始仿真、暂停仿真、重启仿真。

4 结论

本文通过Vega和VC++相结合的方法,设计并开发了一套太阳帆航天器三维动画可视化仿真平台。利用Creator软件建立相关模型;采用多通道多视点技术分别观察太阳帆航天器的飞行轨迹及姿态变化,并通过视点控制技术,可以从任意位置任意角度观察太阳帆航天器的飞行状态;通过MATLAB与VC++的交互编程,实现了多个运动体同时移动;通过回调函数解决了Vega和OpenGL混合编程问题,给系统增加了显示飞行轨迹及重要数据信息的功能。

热点推荐

上一篇:如何减少相似航班号对管制工作的影响

下一篇:如何对幼儿进行德育教育论文 幼儿园关于德育教育之类的论文