基于Unity3D的卫星运行可视化系统设计与实现
2017-04-14田意翔孙剑伟朱瑞峰
田意翔,孙剑伟,朱瑞峰
基于Unity3D的卫星运行可视化系统设计与实现
田意翔,孙剑伟,朱瑞峰
(华北计算技术研究所,北京市 100083)
在航天工程中,人造卫星有着十分广泛的用途,比如导航定位、通信、科研及军事等应用。而人造卫星的这些应用往往离不开卫星状态的各个参数数据,其中卫星的运行轨道和运行姿态是决定卫星应用功能的两个主要因素,是卫星系统工程设计的重要组成部分。因此,本文应用可视化技术,设计出了一套基于Unity3D的卫星运行可视化系统。该系统可以实时显示卫星轨道运行的全过程,为卫星实时管理提供了重要的辅助决策。
卫星轨道;可视化;Unity3D
0 引言
近年来,我国在航天航空领域取得了一系列令人瞩目的成就,而高速发展的航空航天领域也为各种高新科技的应用提供了广阔的平台,航天工程已经逐渐成为各国关注的焦点。航天航空工程中所产生的大量航天数据(比如卫星状态数据)的实时处理和动态显示则是在航天任务中做出科学决策的重要技术基础[1]。
应用可视化技术,结合相关模拟仿真程序,就能用得到的卫星轨道参数、卫星位置信息等有效数据构建出卫星在轨运行的场景,从而准确描述并重现卫星的实时运行和姿态,为卫星轨道分析设计,卫星运行状态监测等卫星应用提供十分直接的指导[2]。
Unity3D是一款让视景开发人员可以轻松创建实时三维视景、数字娱乐游戏、建筑可视化漫游等互动内容的、支持多平台发布运行的综合型三维开发工具,也是一个具有成熟开发者社区的专业实时三维制作引擎。根据Unity3D整合度高、可交互的图像化开发环境、模型渲染效果好、资源利用率小、上手快和最后生成的软件可以跨平台的种种特点,本文选择了Unity3D作为系统软件的开发平台[3]。
图1 系统架构图Fig.1 system architecture diagram
1 系统的结构设计
本系统采用的是基于Unity3D平台框架的特点采用MVC模式和组件模式混合的系统架构。该架构不仅使系统开发过程明确清晰,而且使得系统内部模块之间能充分解耦和有效的复用,也能提高系统的可扩展性[4]。
系统主要分成了数据层、业务逻辑层和表示层,分别与MVC设计模式中的模型层、控制层和视图层相对应。
数据层是可视化软件的驱动层,数据层从软件外部通过网络传输或文件获取与业务相关的实时数据或历史数据;业务逻辑层负责根据数据层提供的数据绘制复杂的二三维可视化效果;表示层负责把业务层逻辑层内绘制的效果通过计算机硬件在显示器渲染出来。
其中,根据对象模型和业务关系的复杂程度,又在业务逻辑层分成了基础层组件、图元层组件和可视层组件。
基础层:是业务逻辑的最底层,主要包括了Unity3D内置组件和科学计算组件。
图元层:是逻辑业务的中间层,包含有轨道绘制组件等。
可视层:是业务逻辑的最上层,作为最顶层他不仅含有与业务相关的效果组件也包含了游戏对象模型。
Unity3D的一大特点在于,使用对象模型描述游戏对象的外形特征;使用组件来描述游戏对象的状态、行为、物理特征;使用业务逻辑为对象赋予交互功能,包括对象间的物理交互和用户界面与对象间的交互。
2 系统设计中的关键技术
2.1卫星轨道计算
牛顿万有引力定律和开普勒三定律是计算卫星运行轨道的理论基础,由二者可以导出卫星运行的六个参数。这六个参数在被确定的情况下可以根据二体运动方程解出任意给定时刻卫星的位置和速度,反之亦然。因此,这六个能够决定卫星轨道的参数被称为基本轨道要素,也叫轨道根数[5]。
图2 轨道根数图Fig.2 track elements diagram
其中n为卫星平均角速度,μ为地球引力常数,τ为过近地点时刻。
偏近点角E和平近点角M满足开普勒方程:
由于这个方程存在唯一解。可用迭代法可解开普勒方程:
当丨Ei+1-Ei丨<ε时,取E=Ei+1。此时ε为给定的精度,迭代的初值可以取E1=M。
知道了⇀上述参数后,⇀就可以求得t时刻的卫星位置矢量r和速度矢量v:
对于圆轨道,0e=,同时可取为升交点为近地点,则近地点幅角,0ω=。
2.2卫星姿态控制
卫星在太空中运行时的位置和姿态是处于不断的变化之中,由于存在外干扰力矩的影响,这种变化往往不能按照研究人员所期望的规律而进行。因此,这就需要对其进行姿态稳定和控制[7]。
本文所涉及的应用中要求卫星无论运行到任何位置,卫星的姿态应该保持以下状态,即卫星的前部始终指向地球中心,同时太阳板也始终与当前的卫星轨道平行[8]。
按照图3所示,要使卫星坐标系的y轴负方向始终指向地球坐标系的原点(地心),还要使得卫星坐标系的x轴与卫星在当前位置处的轨道切线方向重合。为了实现上述卫星姿态控制的目标,需要根据姿态参数,通过旋转卫星实现卫星主体姿态的调控。此外还要根据太阳光线方向,旋转太阳帆板实现帆板对日定向。
卫星本地坐标系与地球坐标系在初始化时可以看作是处于重合状态,此时,地球与卫星都处于地球坐标系的原点(0,0,0)处。为实现以上的卫星姿态控制目标,首先要通过卫星轨道参数计算出在指定时刻卫星在地球坐标系中的位置坐标,然后再通过平移变换把卫星放置在地球坐标系的某点上,这就完成了卫星的定位[9]。
图3 卫星坐标示意图Fig.3 satellite coordinates diagram
按图4所示,O点为地球坐标系xyz的原点,O′为卫星的本地坐标系xyz′′′的原点。当卫星通过平移直接放置(即未旋转)在卫星轨道上时,卫星的初始姿态如图4中所示:x′轴与x轴平行,y′轴与y轴平行,z′轴与z轴平行。从图4中可看出,为实现以上的卫星姿态控制目标,其方法是通过旋转变换,使卫星坐标系的y′轴方向与OO′向量重合,使卫星坐标系的x′轴与卫星在当前位置处的轨道切线方向重合。因此之后就要计算出在卫星的本地坐标系中卫星绕各个坐标轴旋转的角度,然后通过旋转变换完成卫星的姿态调整。
图4 卫星初始姿态Fig.4 Initial attitude of the satellite
2.3模型构建
3D Max作为最常使用的三维建模软件之一,功能十分强大,制作流程高效简洁。因此,在这里使用它来构建一些复杂的模型,如卫星、天线[10]。
此外,本系统应用Unity3D内置球模型加纹理贴图的方法构建三维地球对象模型。因为如果应用3D Max来构建逼真度较高的地球三维模型,构建的模型中会要求有更多的面片,这个会导致模型本身就很大,并且使得Unity3D在加载时需要消耗大量的内存和显存。而应用球模型加纹理贴图的方式,只需要制作分辨率较高的世界地图,并将其作为求模型的纹理贴图就能完成三维地球模型的构建,这样模型本身不是很大,而且不会对内存和显存有过高的要求[11]。
相比于地球模型。卫星模型更加的复杂,既要考虑卫星模型的整体运动,也要局部考虑太阳帆板等部分的单独运动。此外,由于不像地球模型那样规则,为使卫星模型显得更加美观、逼真,还需要有不同的材质、纹理应用于卫星的不同部位[12]。
3 系统展示
在各个系统组件完成之后,利用Unity3D平台进行了系统集成和渲染。最终构建出了以地球球心为中心绕地球运动的卫星运行可视化实时场景,将大量的实时数据或原始数据进行科学计算和处理后转化为图形、图像,以更形象、直观、整体的表达了出来。系统效果图如下所示。
图5 卫星轨道运行图Fig.5 satellite in orbit diagram
4 结束语
本文研究并实现了基于Unity3D平台下的卫星运行可视化系统,并对系统架构以及卫星轨道计算、卫星姿态控制、三维建模等关键技术进行了阐述。
为了开发更加逼真的卫星可视化软件系统,还需研究许多细节方面的问题,如对象的数据结构、模型数据库、可视化建模方法、渲染效率、仿真视觉效果等。本系统更加偏重于星地实时真实数据的可视化方面,在卫星运行模拟仿真方面涉足不多,未来可以朝着这个方向继续研究和完善星地可视化软件系统,做到不用真实数据也能模拟实现逼真的星地动态场景,从而建立更加实用、效果更好、应用更灵活的软件系统,以适合于各类航天应用的需求。
[1] 岳钢, 王楠. 网络学习中知识可视化效率研究[J]. 软件, 2015, 36(2): 92-96.
[2] 钟彩. 边缘检测算法在图像预处理中的应用[J]. 软件, 2013, 34(1): 158-159.
[3] 陈杨毅, 陈凌宇. 基于最优几何的改进型多星座卫星选星算法[J]. 软件, 2014, 35(1): 26-31.
[4] 赵黛岩, 孙剑伟. 星地时间同步任务规划综合评价技术研究[J]. 软件, 2014, 35(1): 60-64.
[5] 白文娟. 基于OpenGL的GPS卫星轨道仿真与可视化实现[D]. 哈尔滨工程大学, 2009.
[6] 杨平利, 黄少华, 江凌, 袁媛. 卫星运行三维场景及星下点轨迹可视化研究[J]. 计算机工程与科学, 2012, 05: 101-106.
[7] 张志恒, 尹路明, 王茂磊. 采用组合优化策略的电子侦察卫星规划方法[J]. 软件, 2014, 35(4): 143-149.
[8] 刘冠男, 傅宁. 基于流量工程的最小链路代价多层卫星路由算法[J]. 软件, 2015, 36(10): 72-76.
[9] 韩江雪, 李昕. 基于NS2 的多层卫星网络路由协议开发方案[J]. 软件, 2016, 37(02): 63-65.
[10] 肖启东. 多星座组合导航系统的RAIM 算法研究[J]. 软件, 2015, 36(4): 97-101.
[11] 杨柯. 分层技术在计算机软件开发中的应用效果分析[J].软件, 2013, 34(10): 47.
[12] 陈国强. 基于GPU 的图像处理算法研究[J]. 软件, 2014, 35(2): 135-136.
Design and Implementation of Satellite Operation Visualization System Based on Unity3D
TIAN Yi-xiang, SUN Jian-wei, ZHU Rui-feng
(North China Institute of Computing Technolgy, Beijing 100083, China)
In aerospace engineering, satellites have a wide range of uses, such as navigation and positioning, communications, research and military applications. The application of satellite satellites is often inseparable from the satellite state of the various parameters of data, in which the satellite orbit and running posture is to determine the satellite application function of the two main factors, is the satellite system engineering design an important part. Therefore, this paper uses Visualization technology to design a set of satellite visualization system based on Unity3D. The system can display the whole process of satellite on-orbit operation in real time, which provides important auxiliary decision for real-time satellite management.
Satellite orbit; Visualization; Unity3D
TP391
: A
10.3969/j.issn.1003-6970.2017.02.023
田意翔,男,华北计算技术研究所,研究生;孙剑伟,男,华北计算技术研究所,高级工程师;朱瑞峰,华北计算技术研究所,软件工程师。
本文著录格式:田意翔,孙剑伟,朱瑞峰. 基于Unity3D的卫星运行可视化系统设计与实现[J]. 软件,2017,38(2):112-115