工况软件模拟演示验证系统设计
2012-10-18朱利伟李宇波李辉芬
朱利伟,李宇波,李辉芬,黄 琼,孙 楠
(中国卫星海上测控部,江苏江阴 214431)
0 引言
在进行航天测量船海上测控工况设计时,传统的工况设计软件计算结果不够形象直观,且程序版本和计算精度也不完全统一,不便于互相验证。为满足后续试验任务需求,有必要研制一套试验任务模拟演示验证系统,使用户能够对航天器的飞行状态和测量船执行任务的场景有直观全面的了解,为决策指挥提供一定程度的可视化支持,为型号总体人员提供验证海上测控方案正确与否的平台,尤其可以对应急工况的设计提供及时准确的仿真验证手段。
试验任务模拟演示验证系统包括试验任务工况设计软件和模拟演示验证系统2个部分。其中试验任务工况设计软件用于进行海上测控任务的工况设计,并以数据文件的形式输出设计结果。模拟演示验证系统采用基于卫生工具包软件(Satellite Tool Kit,STK)的可视化平台实现进行设计开发,用于仿真验证工况设计结果并向用户提供试验任务过程的可视化支持。
1 系统设计
模拟演示验证系统利用STK软件的STK/X嵌入式软件开发技术实现。STK是美国分析图形有限公司(Analytical Graphics Inc.,AGI)开发的航天领域中的商品化的卫星系统仿真分析软件[1,2]。STK/X是AGI公司使用4DX嵌入技术生成的STK整合模块。基于OpenGL技术的三维可视化技术,可以逼真地再现空间视景环境、飞行器飞行姿态和关键动作等。
使用STK/X技术嵌入到程序中进行开发设计,需要掌握大量的STK Command操作命令接口,这为基于STX/X的程序开发带来很大的困难。鉴于此,提出了开发STK/X操作驱动引擎的设计思路。STK/X操作驱动引擎的好处,就是它隐藏了几乎所有复杂的STK Command操作命令,使程序开发者能够更加专注于仿真演示验证系统软件本身的设计开发。利用STK/X操作驱动引擎方法,把模拟演示验证软件分为4层,如图1所示。
图1 程序设计分层结构
各层的主要功能及数据传递关系如下:
① 最底层是 STK/X嵌入控件,通过 STK Command命令接受上层输入的指令和参数,调用数据文件进行仿真演示,并可以输出STK计算的跟踪性能,其二维和三维窗口可以实现图形的显示与实时刷新。
②第2层是驱动引擎层,是任务开发中应用STK/X技术的核心部分。驱动引擎层向下使用STK Command命令,直接对STK控件和计算模块进行操作控制并传递数据;向上提供标准的程序函数接口,使得上层的其他软件开发人员可以不去关心STK Command操作的实现过程,只要调用普通函数接口就可以传递用户操作和数据;
③第3层是数据处理层,该层的作用是衔接用户输入和STK驱动引擎。数据处理层接收用户操作层获取的操作和输入的数据,并对操作和数据进行处理和转换,生成STK适用的指令和数据参数,提供给驱动引擎层使用;
④最上层是用户操作层,提供程序和工况设计人员的接口。该层主要通过程序界面实现数据输入检查,对输入操作响应,并向下一层传递操作和参数。
2 需要解决的问题
模拟演示验证系统软件的分层设计把不同的功能分在不同的层次进行设计开发,每一层所涉及的开发技术都不相同。
2.1 STK/X嵌入控件层和驱动引擎层
嵌入控件层的技术特点是对象嵌入式程序开发,需解决STK/X控件技术。
编写驱动引擎层需要掌握大量的STK Command操作命令,还需要建立必须的STK三维模型供STK三维窗口控件使用。操作命令可以通过STK软件的Help文件查询和学习掌握,该层需要解决的问题包括STK三维建模方法和STK三维模型的动作控制方法。
2.2 数据处理层和用户操作层
数据处理层实现工况设计用户数据和STK数据之间的转换。海上航天测控涉及的数据主要包括:任务总体参数、航天测量船工位参数、发射场工位参数、火箭弹道数据和卫星轨道姿态数据等。其中火箭和卫星的数据量大且较复杂,因此需要解决的问题包括火箭位置速度姿态的转换和卫星轨道姿态的转换。
用户操作层的主要功能是向用户提供程序操作界面以获取用户输入的数据。根据STK所提供的对外接口的特点,选择Microsoft Visual C#进行程序界面的设计开发。该层没有需要解决的问题。
3 关键技术
3.1 STK/X控件技术
STK/X主要使用AGI Map Control和AGI Globe Control 2个控件实现二维和三维界面的显示和刷新,使用AgSTKXApplication完成在整个应用程序生命周期对STK对象的管理和调度[3]。应用STK/X控件技术,用户可以根据需要开发独立的视景系统,实现在不打开STK主程序的情况下使用STK的演示界面和计算函数库,这使得开发模拟演示验证部分的软件成为可能。
3.2 STK三维建模技术
STK演示界面最基本的对象是STK三维模型。要实现对STK对象的操作,首先就要建立STK模型。由于STK所使用的模型无法通过三维建模软件直接建模,需要采用不同的方法间接获得STK模型。
STK模型文件采用.mdl格式,是一种利用文本描述语言定义的模型格式,易于学习和应用。但由于文本编写模型工作量大、效果不直观等原因,很难使用文本工具直接编写出复杂的STK三维模型。因此,需要采用其他三维模型软件建立三维模型,再通过工具软件转换成为STK支持的.mdl模型格式。AGI公司官方发布的LwCoventer软件可以把使用LightWave 软件[4,5]建立的三维模型(.lwo 格式)直接转换成.mdl模型使用。如果用其他三维软件建立三维模型,可以考虑先用Deep Exploration软件把三维模型转换为.lwo格式,再用LwCoventer转换为STK的.mdl格式。
对于三维建模软件不方便建立的模型信息,可以考虑先把模型转换成.mdl格式后再用文本工具单独编辑该部分。
3.3 STK三维模型控制技术
在STK控件提供的场景中使用三维模型可以实现三维对象飞行动作的仿真演示,这就是STK的三维模型控制技术。
由于STK三维模型使用的是文本描述语言,可以在语言中直接描述三维模型各部分之间的相对动作以及模型本身相对三维空间的平移、缩放和旋转等动作。实现该功能需要编写.**ma格式的动作操作文件(火箭动作文件格式.lvma,卫星动作文件格式.sama)。该功能的实现过程为:用户输入三维对象的动作及时间节点(如输入在120 s卫星太阳帆板开始展开);数据处理层把该输入转换为驱动引擎层需要的输入数据并通过函数接口传递给驱动引擎层;驱动引擎层编写.**ma动作文件,并通过STK Command命令使STK加载该文件,实现三维模型的动作过程。
3.4 火箭位置速度姿态的转换
在试验任务中弹道文件提供了火箭在发射坐标系中的位置(x、y、z)和速度 (Vx、Vy、Vz),需要把它转换到STK所需的地心固连系的位置速度,并编写STK弹道(STK数据文件,.e格式)。火箭在发射坐标系的位置转换为地心固连系的位置可采用先旋转、再平移的方法。根据发射方位角把火箭在发射坐标系的坐标转换到测量坐标系,再根据发射点的经纬度从测量坐标系转换到地心固连系;将坐标系原点从发射点平移至地心。发射点的经度、纬度、高程(L、B、H)[6,7]转换为地心固连系公式如下:
弹道文件还提供了发射坐标系的火箭姿态数据,可以采用以下3种方法转换成STK姿态文件:
①可以把火箭轨道参数中给出的火箭相对发射坐标系俯仰、偏航和滚转角转换到地固系。转换后的表示形式可以用四元素或者欧拉角表示;
②可以把火箭轨道参数中给出的火箭的攻角和侧滑角转换为地固系中的火箭姿态,这种方法计算简便,但由于文件中没有给出火箭滚动的数据信息,此方法计算的火箭姿态不能显示滚动情况;
③在发射工位建立发射坐标系,可以利用直接编写.a格式的发射系火箭姿态文件。
利用STKCommand命令载入弹道和姿态文件,可实现火箭在STK场景里的飞行仿真。
3.5 卫星轨道姿态的转换
目前任务中卫星的轨道一般以轨道六要素的形式给出。STK可以直接接受轨道六要素的输入,仿真生成卫星轨道。因此,可以直接在驱动引擎层编写输入卫星轨道的STK Command命令实现卫星轨道的仿真。
对于卫星姿态,目前的总体文件中没有给出详细的数据供使用。因此,需要通过仿真获取卫星的姿态数据,生成卫星姿态数据文件,再通过驱动引擎层加载姿态文件实现卫星姿态仿真演示。
卫星姿态文件的数据以姿态角的格式给出,当取313转序[8]时的计算方法如下:
式中,θx为313 转序下的 3 个欧拉角;ωx、ωy、ωz为卫星绕3轴转动的角速度。
卫星建立对日定向姿态的判断可以通过卫星太阳帆板的法向和卫星对太阳矢量的夹角来实现,当2个矢量夹角为0°(方向重合)时即实现对日定向。设太阳在惯性系中的矢量为,卫星太阳帆板法向在体坐标系的向量为[ ]= 0 0 1T,如采用式(3)中的313转序欧拉角,则转化为地心惯性系公式为:
计算二者夹角余弦值Cz,sun为:
当Cz,sun=-1时,表示卫星-Z轴对准太阳。
用以上方法仿真计算某卫星入轨后建立对日定向姿态的过程,卫星体坐标系z轴与太阳的方向夹角余弦随时间的变化关系如图2所示。
图2 卫星入轨后z轴与太阳方向关系
4 结束语
试验任务模拟演示验证系统的实现,使工况设计拥有了形象化手段和演示验证工具,能够为决策指挥提供一定程度的可视化支持,在海上航天测控任务中具有重要的应用价值。同时,基于驱动引擎的分层设计思想为其他项目的开发也具有很好的借鉴意义。■
[1]黄 洁.VC和STK集成的途径及其在仿真中的应用[J].计算机仿真,2007(24):291 -294.
[2]STK User's Manual Version 4.2.1.Analytical Graphics INC(AGI)[S],2000.
[3]Analytical Graphics Inc.STK/X Help.U.S.A.,Analytical Graphics Inc.[S],2004.
[4]黄 剑.Light Wave7.5高级实例教程[M].北京:中国电力出版社,2003.
[5]刘光明.基于多种软件平台的卫星动力学仿真研究[J].系统仿真学报,2007(19):308 -311.
[6]孔祥元.大地测量学基础[M].武汉:武汉大学出版社,2006.
[7]边少锋.大地坐标系与大地基准[M].北京:国防工业出版社,2005.
[8]章仁为.卫星轨道姿态动力学与控制[M].北京:北京航空航天大学出版社,1998.