分布式卫星在轨仿真系统研究
摘 要:为了给操作者提供全面且直观的卫星在轨信息,采用分布式体系结构构建基于虚拟实现的卫星在轨仿真系统。系统采用可扩展的接口,由功能相对独立的模块组成。讨论系统仿真状态的管理策略,分析系统的仿真推进方式与时空一致性问题,给出系统仿真流程。该系统结构简洁,网络数据吞吐量小。
1 概述
随着航天技术的发展,航天任务需求呈现日益复杂且多样化的发展趋势。在执行轨道任务时,地面控制中心应当能监测卫星在轨运行状态,控制卫星完成既定轨道任务,甚至需要对星载设备进行效能评估。现代卫星需要控制和管理的状态越来越多,如何高效表达卫星状态,向管理员传递准确可靠的在轨信息成为应用中需要解决的问题之一。图形学技术的发展使虚拟现实技术能以一种形象直观的手段完整而全面地构建三维虚拟环境,使系统具有良好的沉浸感,实现用户与环境直接自然交互。将虚拟现实技术应用于卫星在轨演示系统,通过灵活而多样的观控模式能提高操作员对环境的感知能力,克服大场景多尺度等问题[1-3]。但实时高精度的轨道计算与逼真的三维环境绘制都需要消耗大量计算资源,难以由单台微机完成。
目前的解决方法是使用专业的图形工作站,这增加了系统开发成本,且导致跨平台移植性差。为了在普通微机上采用虚拟现实技术(Virtual Reality, VR)创建卫星在轨监控虚拟环境,演示、验证基于 VR 的卫星在轨显示与遥控技术,本文在分析现有轨道软件的基础上,提出一种简洁可靠的分布式卫星在轨演示系统体系结构,在高精度轨道计算的基础上采用虚拟现实技术生成具有临场感的观控环境,向操作员提供全面而准确的卫星状态信息。各模块通过定义良好的接口交互,具有良好的可扩展性。通过该仿真系统,操作员能监控卫星在轨运行状态,并对卫星在轨任务进行评估。
2 分布式卫星在轨仿真系统
分布式卫星在轨仿真系统的主要目的是为基于 VR 的卫星在轨监控研究提供一个演示平台。系统采用分布式仿真技术构成一个在时间上和空间上相互耦合的虚拟卫星演示环境。对卫星轨道进行仿真计算,建立卫星在轨运行模型,借助文本数据、二维星下点轨迹以及三维立体显示等方式提供多元信息表达,操作员可以完成仿真状态控制、任务规划、轨道机动方案选择、卫星机动可行性验证等高层管理以及星载设备操控等直接交互。通过合理分布系统负载,在保证系统具有较高轨道计算精度的同时实现系统信息无抖动显示,从而为虚拟现实技术应用于卫星在轨显示系统奠定了基础。
该系统具有以下功能:
(1) 轨道仿真。卫星在轨运行受多种因素的影响,包括地球引力、大气阻力、太阳光压等。为尽量精确地仿真卫星在轨运行情况,需要建立多个与之相关的数学模型,这些模型的准确性直接决定仿真计算轨迹的可信度。本文结合应用背景,综合考虑轨道计算精度和计算实时性约束,给出包含由于地球非球影响产生的 J2、J3、J4 摄动项的卫星轨道动力学模型,在保证实时计算的前提下满足系统对仿真精度的要求。
(2) 仿真状态控制。仿真执行时,操作员能够控制全系统仿真状态,推进、调整时间,改变仿真步长等,以保证系统信息的一致性。
(3) 仿真想定。提供操作员设计卫星轨道任务的接口,在完成想定之后进行轨道运行仿真,以验证轨道设计的正确性。
(4) 轨道状态的可视化显示。采用文本数据、二维轨迹显示和三维立体显示等多种手段提供准确而全面的卫星运行状态信息。
(5) 卫星遥控、轨道机动决策。在运行过程中,操作员可以设定变轨时间、变轨方式、变轨约束等参数,也可以直接控制星载设备。系统执行在线或离线计算,预测卫星飞行轨迹,判断在各种摄动干扰下卫星是否能够完成设定的任务,从而帮助操作员进行机动方案选择、任务分析与决策,以及星载设备效能的评估等。
3 系统组成与结构
利用 HLA(High Level Architecture)作为仿真系统的支撑结构能够提高各子系统的互操作能力和可重用性,但增加了各子系统管理的复杂度。且 HLA 时间管理策略繁琐,不适合实时分布式仿真[4]。因此,本系统的设计没有采用 HLA 作为仿真支撑平台,而是直接采用基于网络通信的分布式仿真结构。该演示平台采用分布式的体系结构,包括控制中心、轨道仿真端、立体显示端和卫星模拟端 4 个部分(图 1)。
图 1 系统拓扑结构
控制中心是系统的总控平台,也是卫星遥控平台,包括一台微机和力回馈操纵杆。该子系统具有仿真管理的功能,负责规划、设置、管理整个系统的运行以及对在轨演示系统的效能进行评价。该模块提供遥操作接口,操作员能通过具有力回馈的操纵杆控制卫星上的星载设备。立体显示端包括一台微机和立体眼镜,采用虚拟现实技术多视角显示卫星运行轨迹,提供具有沉浸感的用户界面,操作员配戴立体眼镜可以身临其境地监视卫星在轨状态。轨道仿真端和卫星模拟端均由单台微机组成。轨道仿真端为系统计算卫星轨道运行状态,包括位置、速度、姿态以及星载设备状态等,并通过网络发送给立体显示端和卫星模拟端。卫星模拟端从轨道仿真端接收卫星数据,为了模拟天地之间信息传输延迟,卫星模拟端将卫星状态数据经时延处理后发送给控制中心,提供仿真卫星遥测数据。系统采用基于 TCP/ IP 协议的客户端-服务器通信模式,利用面向连接的网络协议保证仿真信息的可靠实时交换。
在每个仿真步长内,轨道仿真端将卫星数据发送给立体显示端和卫星模拟端。立体显示端显示卫星当前运行状态,卫星模拟端向控制中心发送延迟后卫星状态数据,操作员通过地面监控终端操控卫星任务。这 4 个部分通过局域网络连接,构成完整的在轨演示系统。
从逻辑结构上看,系统可以分为通信支持层、数据处理层和交互服务层,如图 2 所示。
图 2 系统逻辑结构
通信支持层负责全系统仿真数据与命令的交换传输。数据交互服务层一方面负责接收解释操作员的交互指令并转发给数据处理层,另一方面负责向操作员显示仿真运行状态。
数据处理层是数据交互服务层和通信支持层之间的桥梁,负责交互信息的组织封装和解释,向数据交互服务层提供服务。
4 仿真管理
仿真运行过程中各子系统保持仿真状态一致性(即信息一致性)是仿真结果真实可信的首要条件。
4.1 仿真状态管理
为保证各子系统仿真状态的一致性,需要提供系统当前仿真状态完备的描述方式。系统仿真状态采用五元组描述: S=<starttime, simutime, simustate, step, brealtime> 其中,starttime 为仿真开始时间;simutime 为仿真运行时间;simustate 为仿真状态;step 为仿真步长;brealtime 为系统时间推进方式变量。S 可以有效地描述系统状态。
卫星的仿真状态采用三元组描述:
SS=<starttime, simutime, binitial>
其中,starttime 为卫星加入仿真执行的起始时间;simutime为仿真运行时间;binitial 为卫星初始化标志。SS 可以完整地描述卫星的当前状态。显然,任意时刻系统各组成模块以及所有卫星的仿真状态应保持一致,即仿真时间保持同步,不同模块保存的卫星当前时刻状态一致。系统以控制中心的仿真时间为时间基准,以卫星模拟端的卫星姿态数据为卫星状态基准,其余各方接受这 2 个模块的信息同步调制。
4.2 仿真时间推进方式与信息一致性策略
系统采用固定增量推进法推进仿真时间,由系统定时器控制仿真时间推进。实现时,可以采用仿真时间推进或实时推进。采用仿真时间推进可以加速系统推进速度,达到超实时仿真。
信息一致性包括空间一致性和时间一致性[5-6]。为保持系统的时间一致性,仿真执行系统以协调世界时(UTC, Coordi- nated Universal Time)为基准,仿真实体的仿真时间保持与系统时间一致。为保持系统的空间一致性,本文以地心惯性坐标系为基准坐标系,轨道计算可以在轨道坐标系中完成,但参与交互的位置、速度等信息都统一到该坐标框架下。
仿真运行时,控制中心和各仿真端按各自的仿真时钟独立推进仿真时间。但由于存在时钟误差和网络传输延迟,其时间推进不可能保持同步。在超实时仿真时,50 ms 的时延也会带来仿真状态表达的逻辑错误。因此,时延是课题必须解决的问题。
每个通信周期仿真时间误差可表示为:
c d ∆tt t =∆ +∆ (1)
其中, c ∆t 为时钟误差,包括基准时钟误差 s ∆t 和系统时钟误差 2 个部分,前者的大小与仿真步长的设置密切相关。通常而言,仿真步长越小, s ∆t 越小。网络时延 d ∆t 是由传导延迟和网络并发访问冲突引起的。由于网络带宽有限,因此大容量高频率的网络数据传输必然导致网络延迟增大。从这个角度讲,减小系统仿真步长会减小 s ∆t ,但增大了网络时延 d ∆t 。
因此,为保证仿真端时间一致性,必须尽量减小 ∆t 的大小。
一方面,通过定义良好的结构化网络数据格式在保证信息完备的同时,尽可能消除数据冗余,从而减小网络数据流量,即减小了 d ∆t 。另一方面,采用合理的对时策略减小 ∆t 。借鉴 DIS 和 HLA 的时间管理策略,本文在仿真节点之间交换的信息中引入包含有该信息产生时刻的时戳信息,用以协调系统时间同步。以控制中心作为总控平台,在每个仿真周期,控制中心通过读取各仿真端数据帧中的时戳标志和自身的仿真时间判断是否需要发送对时命令。当控制中心判断双方的仿真时间不一致时,向仿真端发送仿真对时命令,并将时间差作为参数发送给仿真端。仿真端收到仿真对时命令后自行调节时间,调整自身的仿真时间与控制中心保持同步。仿真的主进程可以根据统一的时间参考坐标进行,不会出现后发生的事件先被执行的现象,从而避免了逻辑混乱。
4.3 数据平滑
由于系统中的实时数据到达的时间不同,且网络存在丢包的可能,因此控制中心若完全依赖网络数据,场景中的卫星轨迹将出现剧烈抖动。本文采用数据平滑方法对网络数据进行处理。若控制中心在时刻t +1未能及时获取卫星数据包,控制中心便根据上一时刻仿真端卫星轨道数据采用 Dead Reckon 算法外推仿真端卫星当前仿真时刻卫星状态,计算方法如下:
已知t 时刻的位置、速度与加速度,外推 t+1 时刻的位置和速度,即:
(2)
其中,α 为卫星相对基准坐标系的加速度,可以根据前一时刻卫星速度推算得到。
控制中心收到网络数据包后,根据最近时刻的卫星当前状态修正本地卫星状态,并剔除明显滞后或超前的跳动数据。
4.4 系统流程
仿真开始时,控制中心初始化自身的仿真状态 S 和卫星仿真状态 SS。控制中心接收到轨道仿真端、立体显示端和卫星模拟端的连接消息后,向它们发送仿真开始命令,将此时的仿真状态信息 S 发送给轨道仿真端。轨道仿真端根据控制中心仿真状态 S 初始化自己的仿真初始状态 S 和卫星仿真状态 SS。立体显示端收到仿真开始命令后加入仿真执行,根据接收到的卫星数据实时生成三维场景。卫星模拟端则开始对收到的卫星状态数据进行处理并发送给控制中心。系统具有仿真运行、冻结、单步前进、单步后退、仿真结束 5 种状态。
仿真执行过程中控制中心卫星与轨道仿真端卫星按照设定的轨道运行,在系统的用户界面上显示等轴投影方式下卫星的星下点轨迹。操作员可以进行改变仿真步长、添加或删除卫星、轨道机动任务等操作。仿真冻结时,控制中心卫星和轨道仿真端卫星处于冻结状态,控制中心和轨道仿真端停止卫星轨道计算和数据更新。在单步前进或单步后退状态下,操作员可以控制仿真时间向前推进或向后回溯一步,便于操作员单步察看此时各方状态。仿真结束时,控制中心向轨道仿真端和立体显示端发送仿真结束命令,断开网络连接,轨道仿真端、立体显示端和卫星模拟端收到仿真结束命令后退出仿真执行。在仿真运行过程中,当仿真状态发生改变时,控制中心将向轨道仿真端发送状态改变命令,通知轨道仿真端改变仿真状态,从而保证双方状态一致性。控制中心卫星在操作员的控制下可以执行轨道机动,完成轨道规划、转移等任务。
5 仿真结果
基于上述分析,本文采用 Visual C++与 OpenGL 实现基于 VR 的分布式卫星轨道演示系统。仿真运行时,系统所有卫星运行状态均显示在控制中心界面上(图 3)。控制中心提供用户友好的界面以实现控制中心的监控功能。实际运行测试表明,系统运行平稳,网络数据吞吐量合理,实现了监控图像的准确连续显示,可以帮助操作员高效监控卫星在轨运行状态,证明了系统结构的合理性。
基于虚拟现实技术的卫星在轨显示与遥控是当前卫星监控系统的研究课题之一。本文对该结构的分布式仿真系统进行探讨,设计一种简洁高效的分布式的卫星监控仿真平台,为操作员进行轨道设计与任务分析提供了方便。
a)控制中心界面 (b)立体显示端界面
图 3 控制中心界面与立体显示端界面
>>相关产品