航天器在轨运行的三维可视化仿真_第1页
航天器在轨运行的三维可视化仿真_第2页
航天器在轨运行的三维可视化仿真_第3页
航天器在轨运行的三维可视化仿真_第4页
航天器在轨运行的三维可视化仿真_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、项目编号:A15165本科生科研训练计划项目(SRTP)项目成果 项目名称: 航天器在轨运行的三维可视化仿真 项目负责人: 林凡庆 项目合作者: 曲大铭 侯天翔 杨唤晨 孙洁 所在学院: 空间科学与物理学院 专业年级: 空间科学与技术2013级 山东大学(威海)大学生科技创新中心航天器在轨运行的三维可视化仿真 空间科学与物理学院空间科学与技术专业 林凡庆 指导教师 许国昌 杜玉军摘要:航天器在轨运行的三维可视化程序设计是建立卫星仿真系统最基础的工作。航天器在轨运行的三维可视化仿真有着重要的意义:它既可以使用户对卫星在轨运行情况形成生动直观、全面具体的视觉印象,又可以大大简化卫星轨道的设计过程。

2、本文首先构建了航天器在轨运行的三维可视化仿真程序的基本框架,然后对涉及到的关键理论与知识,如时间、坐标转换、卫星轨道理论、OpenGL图形开发库等也做了阐述,最后介绍了我们的主要工作和科研成果。我们的主要成果是实现了卫星在轨运行的三维可视化仿真并对原有程序进行了改进。关键词:航天器 在轨运行 三维可视化 程序设计 OpenGL Abstract:The programmer of three-dimensional visualization on satellite in-orbiting is the utmost foundational work in establishing sat

3、ellite emulation system. The three-dimensional visual simulation on satellite is of great significance: it assures that users may receive a vivid and direct-viewing and it also can greatly simplify the design process of satellite orbit.The basic frame of three-dimensional visual simulation program o

4、n satellite in-orbiting has been set up firstly. then, related essential theory and knowledge such as time system, coordinate conversation, satellite orbit, OpenGL and etc also has been introduced. Lastly, our main work and research results has been introduced. Our main achievement is that we realiz

5、ed the program of three-dimensional visualization on satellite in-orbiting and we improve the original program.Key words:satellite In-orbit movement 3D visualization programming OpenGL 一、引 言当今社会是一个信息的社会,谁掌握了信息的主动权,就意味着掌握了整个世界。而人造卫星是当今人们准确、实时、全面的获取信息的重要手段,卫星的各项应用已经成为信息社会发展的强大动力。而人造卫星的应用是一项高投入、高风险、长周期

6、的活动,仿真技术由于具有可控制、可重复、经济、安全、高效的特点,在人造卫星应用领域以至整个航天领域都起到了重大的作用。目前国际上较常用的卫星仿真软件主要有美国的Winorbit、美国Cybercom System公司研制的CPLAN和AGI公司的STK。其中以STK功能最为强大,界面最为友好,在卫星仿真领域占有绝对领先地位。STK功能虽然强大,但其价格昂贵,源码也不公开,无法自主扩展,并且该软件被限制了对中国的销售,所以中国不得不独立开发适于自己的卫星仿真系统1。而且国内目前卫星系统的仿真软件很少,主要有一些大学开发的小型的卫星系统仿真软件,还有北京航天慧海系统仿真科技有限公司开发的Vpp-S

7、TK航天卫星仿真开发平台V4.0。总体来说,国内目前在这个方面的技术还相当不成熟,因此研究和自主开发卫星仿真系统意义重大。仿真可视化,就是把仿真中的数字信息变为直观的,以图形图像形式表示的,随时间和空间变化的仿真过程呈现在研究人员面前,使研究人员能够知道系统中变量之间、变量与参数之间、变量与外部环境之间的关系,直接获得系统的静态和动态特征2。本文首先构建了航天器在轨运行的三维可视化仿真程序的基本框架,然后对涉及到的关键理论与知识,如时间、坐标转换、卫星轨道理论、OpenGL图形开发库等也做了阐述,最后介绍了我们的主要工作和科研成果。二、程序设计综述(一)程序的总体框架我们根据太阳、地球、月球等

8、天体运行的规律、人造卫星轨道理论以及常用的时间和坐标系统的转换关系,以OpenGL仿真技术为手段,在Windows平台上使用 Visual C+高级编程语言,实现卫星在轨运行的三维可视化表达的程序。我们设计的程序的主要功能有:1. 显示地球、卫星和星空背景等空间对象运动变化过程。2. 动态显示卫星轨迹、覆盖范围等本身不可见对象。3. 视点变换和多场景的一致显示。4. 在有条件的情况下,实现卫星轨道的设计与变更、轨道预报。我们根据程序的主要功能将程序分为4个模块:数据读取和预处理、实体建模和运动建模、视景仿真驱动和三维显示输出。 图1 程序总体框架图(二)系统设计原则1.通用性和可扩展性3。为了

9、保证系统的通用性和便于对系统进行扩展和完善,采用面向对象程序设计方法;采用类和动态链接库(DLL)进行模块化设计。2.满足实时动态的仿真要求3。为满足系统实时性,仿真算法、数据通讯等要求达到一定速度。3.结构化、标准化、可扩展的输入输出方式3。4.良好的人机交互功能3。采用OpenGL技术显示卫星轨道,使画面清晰、直观;允许用户随时查询、修改和保存数据;允许同时打开多个仿真窗口,可以同时对多个方案进行仿真和比较,进行分析,也可以对同一方案的不同运行阶段同时进行仿真和比较。5.数据快速的交互能力3。三、基本理论(一)OpenGL仿真技术OpenGL(Open Graphics Library)是

10、美国高级图形和高性能计算机系统公司(SGI)开发的一套计算机图形处理系统,是图形硬件的软件接口。由于OpenGL的优越性能,目前OpenGL已被认为是高性能图形和交互式视景处理的标准4。利用OpenGL实现三维动画的基本步骤如下:1.建模要实现三维动画, 首先在三维用户坐标系中建立运动物体的三维模型, 对于复杂的三维动画还要建立运动物体周围的三维场景。三维模型通常采用点( Point) 、线( Line) 和多边形( Polygon) 等元素建立。在OpenGL 中可以利用函数glBegin()和glEnd()指明一个几何元素的定义开始和结束,用glVertex3*()、glNormal3*(

11、)和glColor3*()分别指明顶点、法向量和颜色。2.渲染渲染包括消隐、光照、材质、纹理映射等方面。消隐就是消除被遮挡的不可见的线或面, 得到具有真实感的图形。在OpenGL 中, 消隐是通过深度测试实现的。消除深度缓存用函数glClear()实现, 启动深度缓存分别用函数glEnable ()实现。为了使模型具有真实感, 必须进行光照处理, 使模型表现出明暗效果。通常, 光源从颜色、位置、方向等方面刻画。光源用函数glLight*()定义, 启动光照和光源都可以使用函数glEnable()实现。在光照下, 对模型进行明暗处理, 模型就表现出明暗效果。在OpenGL 中, 用单一颜色处理的

12、称为平面明暗处理, 用许多不同颜色处理的称为光滑明暗处理。设置明暗处理模式的函数为glShadeModel()。OpenGL 用材料对光的红、绿、蓝三原色的反射率来近似定义材料的颜色,定义材质用函数glMaterial*( ) 实现。物体的表面一般表现出一定的纹理, 在模型渲染中纹理映射也是比较重要的一方面。3.图形变换图形变换是三维动画实现的关键一步, 只有通过图形变换,三维物体模型才能表现出运动效果。实现物体运动, 通常要用到平移变换、旋转变换、缩放变换等, 这些变换分别用函数glTranslate*()、glRotate*()、glScale*()实现。而且三维动画要在屏幕上显示出来,

13、还需要进行透视投影变换、裁剪变换、视口变换。这些变换分别用函数gluPerspective()、glClipPlane()、glViewport()实现。图形变换通常要用到矩阵堆栈操作。4.交换帧缓存为了提高动画输出效率, OpenGL 采用了双缓存技术, 用函数SwapBuffers()实现交换帧缓存。(二)时间系统和标志法常用时间系统及转换关系:1.世界时UT格林尼治零子午线处的民用时称为世界时,北京时间减去8小时即得到世界时。世界时系统是以地球自转为基础的,为了弥补极移现象和地球自转速度的不均匀性造成的缺陷,需要在世界时UT中引入极移改正和地球自转速度的季节性改正 Ts。由此得到的世界时

14、分别称为UT1和UT2。未经改正的世界时则用UT0表示。三者关系如下:l D UT1=UT0+ (1) UT2=UT0+ Ts (2)、 Ts的值国际地球自传服务区(IERS)会给出。2.国际原子时TAI以原子能级跃迁辐射频率定义的标准时间单位,取1958年1月1日世界时零时为其起算点。国际原子时(TAI)与UT1有如下关系: (UT1-TAI)1958.0=+0.0039s (3) 3.地球力学时TT在天文学中,天体的星历是要根据天体力学中的运动方程计算的,在这些天体运动方程中,时间是一个独立变量,被定义为力学时。地球力学时取原子时的秒为其秒长,故它是一个均匀的时间系统。地球力学时TT和国际

15、原子时TAI有如下关系: TT=TAI+32.184s (4)时间标志法:时间标示法是指表示时间的方法。它有别于时间系统的概念,而是建立在时间系统上的时间表达方式。常用的时间标示法有:历法(即通用时)、儒略日及约化儒略日等1。历法符合人们的生产生活习惯,但不适合于科学计算。而儒略日(JD)则是一种采用连续数值标志时间的方法。它是这样定义的:从公元前4713年1月1日12时开始计算的天数。这种标志方法非常适合科学计算,并可以很方便的将不同的时间标志法联系起来。然而用儒略日标志的现今时间数值很大,甚至连计算机都无法精确的表示。为了解决这一问题,1973年国际上提出了约化儒略日(MJD)时间标志法,

16、即从儒略日中减去2400000.5天。(三)坐标系统空间坐标系分为两大类:一类是地球坐标系,该坐标是一种非惯性坐标,是固结在地球上的,随地球一起旋转,又称地固坐标系,如地心大地坐标系、地球固连坐标系;另一类是天球坐标系,该坐标系与地球自转无关,可以建立惯性坐标系,用此坐标系可以方便的描述航天器轨道,如地心天球坐标系。1.天球赤道坐标系天球赤道坐标系的三个坐标是(r, , )。r为地心到空间某点N的距离;在赤道面内,为春分点向东到N点的矢径在赤道面上投影的角距,通常称为赤经;为N点的矢径与赤道面的夹角,向北为正,通常称为赤纬。图2 天球赤道坐标系 2.地球坐标系 地球坐标系是与地球固连在一起,建

17、立在地球或地球参考椭球之上的坐标系。地球空间直角坐标系(这里实际上指瞬时真地球坐标系)的原点位于地心,Z轴和瞬时自转轴重合,指向北,X轴指向经度零点(即格林尼治子午线与赤道的交点),Y轴组成右手坐标系。(四)卫星在轨坐标及其覆盖区域的计算 卫星在惯性空间的运动可以用6个经典的轨道要素描述:半长轴a,偏心率e,右升交点赤经,轨道倾角i,近地点幅角,真近点角f。通过这6个轨道要素可以计算卫星在惯性空间的位置矢量和速度矢量,如图5。为了在三维场景中绘制卫星的覆盖区域,需要计算卫星覆盖边界点的经纬度坐标。当地球被近似为球体时,卫星覆盖区域是地球三维模型上的一个圆,如图3所示。图中Oe为地心,O 为卫星

18、的星下点,过O 点的经线与卫星覆盖圆交于P1 、P2 2 点, A 为覆盖圆上一点。如图3 所示,在球面三角形POA 中,有以下关系式:=2-1h1=90-1h2=90-2式中:1 ,2 分别为O 点和A 点的经度;1 和2分别为O 点和A 点的地心纬度。 图3 卫星覆盖区域 图4 球面三角形解此球面三角形,可以得到如下关系式:由此式可以解出和l2,在解三角函数时要注意角度的象限, l2的范围是0180,所以由第一个式子可直接解出,而的范围是- 180180,所以要分别解出正弦和余弦值以确定象限。由0180变换,就可以求出覆盖圆上各点的经纬度坐标。 图5 卫星轨道根数示意图四、研究过程(一)形

19、体建模我们运用OpenGL仿真技术,在Visual Studio上运用C+高级编程语言,来实现三维物体的形体建模。这里所说的形体建模不是单指物体几何形状的确定,而是要构造出一个比较逼真的形体,其中包括物体的材质属性、光照、纹理等一些特性。1.星空我们在程序中用纹理贴图的方式进行了星空的绘制,这样绘制星空相对较为简单,但图像较为模糊,而且只能显示部分星空。在对老师原有程序的改进上,我们根据星表的数据,在假想的天球上,根据星体的视星等和赤经赤纬,在对应的位置上绘制出相应亮度的星体,这样绘制的星空更具有真实感,实现了对星空较好的仿真。2.地球地球的模型相对来说比较简单。为了能在屏幕中看到地球,需要将

20、地球推入屏幕背后足够的距离以便使我们可以看见全部的场景,所以我们首先用glTranslatef*()函数将当前点移入屏幕背后一定距离;然后我们用函数gluSphere*()绘制了一个球;因为用OpenGL进行纹理贴图时,图像的宽和高必须是2的n次方,所以我们选择了一幅像素为2048*1024的地球位图,然后我们用纹理映射函数glTexCoord2f*()及相应的一系列函数将地球位图贴在了我们所绘制的球上。在贴纹理的过程中,我们发现纹理的方向与坐标轴的实际方向不符,然后我们利用glRotate*()函数使地球转动相应角度,从而使地球方向与坐标轴方向对应。3.卫星有两种方法来建立卫星模型,一是直接

21、在程序中用OpenGL来绘制卫星模型,二是用3D制图软件绘制卫星三维模型,然后将卫星三维模型读进程序。本程序中的卫星模型是用第一种方法实现的。我们用3Dmax制作了一个卫星模型,但没有成功的把它读进程序之中。4.太阳和光照这里我们将太阳简化为一个球体,为了使其看起来逼真,我们将一个光晕的位图贴到中心与太阳中心重合的正方形上。为了给地球和其他物体提供光照,本程序将一个辐射白光的点光源设置在太阳的中心位置。 图5 太阳模型效果图(二)数据源程序所采用的数据源主要有两种:轨道根数数据和依巴谷星表。依巴谷星表是欧洲空间局(简称ESA)依巴谷天体测量卫星(Hipparcos)计划的主要成果。依巴谷卫星由

22、欧洲空间局于1989年8月发射升空,1993年8月完成历史使命,观测寿命为4年,用以测量恒星视差和自行,以古希腊天文学家喜帕恰斯的名字命名。其中在1989年11月至1993年3月共40个月期间,卫星观测得到了高质量的科学资料。利用喜帕恰斯卫星的测量数据发布了依巴谷星表. 图6 星表数据示例(三)动画的实现计算机动画是采用计算机技术,以一定的速率连续播放的由计算生成的静态离散画面(帧) ,利用人眼的视觉残留特性,这些画面序列在人眼的视网膜上形成了连续运动图像。在Windows 编程模型中实现动画效果的基本思路是每次以不同却连续的图像刷新显示视窗。OpenGL采用了双缓存技术,OpenGL在绘图之

23、前,事先分配了两块缓存区域,即前台缓存和后台缓存:后台缓存用来计算场景、生成画面;前台缓存用来显示后台缓存已画好的画面。当显示完一帧缓存后,再将两个缓存区进行交换,不断重复上述工作就实现了画面的更新,也就实现了动画。五、科研成果(一)软件功能及运行效果该软件可以模拟从宇宙中某一视角观察地球、太阳和卫星的运行状态,画面清晰,仿真效果良好。图7 软件界面(二)原有软件添加星表数据后的运行效果图7 原有软件界面参考文献:【1】杜玉军著:卫星轨道的三维可视化程序设计,武汉大学,2008。【2】吴家铸,党岗,刘华锋等著:视景仿真技术及应用,西安:电子科技大学出版社,2001。【3】薛国凡,孙卿,徐明毅,王乘著:卫星可视化仿真与跟踪概论,华中科技大学,2004。【4】OpenGL图形编程EB/OL.中国游戏开发者网站,/Download.aspx.2001-09-20。【5】任民宏著:利用OpenGL实现三维动画,陕西理工学院计算机科学与技术系,2007。【6】D. Shreiner & M. Woo & J. Neider & T .Davis. “OpenGL Programming Guide”, America: Addition Welsey,2008.【7】王

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论