当前位置 首页 >PPT汇报 >

基于STK引擎的星载遥感器对地观测仿真软件设计

作者:jkyxc 浏览数:


打开文本图片集

【关键词】STK(Satellite Tool Kit) 软件二次开发 卫星可见分析 姿态仿真

1 引言

在开发卫星在轨仿真的软件项目时,开发团队不仅要对卫星本身作详尽仿真,而且需要完整地掌握航天领域的其它高级专业知识和天体运动的理论知识,同时在软件可视化仿真方面也面临着巨大的挑战。STK的全称是Satellite Tool Kit(卫星仿真工具包),是由美国AGI公司开发,是航空航天领域一个功能强大的大型仿真平台,并且随着其版本变化其功能得到不断地增强和扩展。目前为止,STK航天工业领域中仍然是处于领先地位卫星系统分析软件,利用它可以快速方便地分析航天任务中各种错综复杂的情况,并能以形象直观的三维场景真实地再现空间目标整个寿命周期的运行情况。但STK软件自成体系,和其它软件交互数据、软件界面的灵活性往往不能适合项目需求。

从国内近年发表的航空航天领域关于STK二次开发仿真软件设计的文献看,多注重于STK功能实现本身,关于二次开发软件设计实现的内容较少,并且局限于VC6.0和Matlab开发环境,虽然可以查阅STK的英文帮助文档,但难以在短时间对STK的二次开发有较为全面的理解和快速高效开发。

在自主开发的软件中嵌入STK,把STK作为卫星在轨仿真的计算引擎和三维可视化引擎,是一个可行的技术途径。本文以介绍VS2008为开发平台,介绍利用STK二次开发实现卫星在轨可视化仿真软件的实现方法,在此基础上,给出了在轨卫星的可见性分析和姿态仿真的软件设计方法和仿真软件的运行结果。

2 STK二次开发仿真技术基础

2.1 通过STK二次开发实现仿真任务的技术选用

通过STK可以实现的任务可以分为五类,分别为自动化重复性任务、和其它程序集成、扩展AGI插件和用户接口定制、开发定制应用程序、实时数据处理。

2.1.1 实现自动化重复性任务

可以利用HTML、Connect和STK Object建立链接STK功能组件的工具,或者用远程工具驱动STK,如按钮工具、COM接口、命令行或批处理文件向STK发送Connect命令也可实现自动化重复性任务。

2.1.2 和其它应用程序集成

STK和其它程序的接口有多种形式可供选择,具体接口形式的选择取决于任务的类型。任务涉及仅仅是分析,还是既涉及分析又涉及可视化,抑或是可视化回放,可选用的客户端程序不同。客户端应用程序几种具体形式为:MATLAB, 自定义程序, MS Office,浏览器等,STK系统内部预置有用户采用的开发环境所必备的程序接口,如STK MATLAB接口、COM接口、视景控件(the Viewer Control)和视景应用对象模型(Viewer Application object models),以及数量众多的不同的Connect库等。

2.1.3 扩展AGI插件扩展和用户接口定制

AGI在产品扩展上为用户提供了多种途径。可扩展机制可以分划分为两个方面:用户接口可扩展和计算引擎可扩展。用户接口可扩展指的是允许用户为STK定制图形用户界面(GUI)和控件,提供用户自定义的工作流程,从而使程序绑定STK程序的功能;计算引擎可扩展性选项是指STK引擎插件允许用户仅定制模型中非通用部分,而对通用部分则借力于现成商务软件(COTS software),即STK本身。

插件的优点至少包含两方面内容。首先,写一个高可信度的软件组件对大多数用户有难度。当然,最佳的情形是软件具备高可信度模型可以使用。AGI不断提高产品的可信度和可靠性持续改进产品,但其产品的开发基础往往在于聚焦通用功能,从而覆盖大多数用户需求。就问题产生的性质来说,更高可信度模型的非通用应用功能需求,仅可能在少数高级用户中存在。其次,总体说来,一个模型的非通用部分的范围很窄,因而大部分可以利用现有的通用模型。当然,如果定制软件部分的价格同时也包含了所有通用部分的费用,用户可以自己开发整个软件,但必须经过不断地测试、维护、改进和升级才能满足变化的需求。

2.1.4 开发定制程序

STK引擎可以为用户开发定制程序使用,STK用户界面不需要出现,允许用户使用自己的接口将STK功能嵌入到程序中。

2.1.5 RT3数据实时处理

STK桌面应用和STK引擎定制程序的一个共性任务是对实时处理输入的数据。AGI公司的RT3扩展软件为向STK输入实时数据的输入提供了框架。为简化实时输入数据的处理,可用直接使用STK对象模型(STK Object Model)。

RT3开发SDK包括应用编程接口API、文档,以及一套例子代码文件。RT3 SDK可通过自定义数据输入接口增强RT3拓展软件的功能,使数据处理专业化,并可预先设置显示参数。RT3 SDK还能用来分析和处理STK引擎程序以及来自AGI公司的软件部件产品线的类库的输入数据。在用户开发的程序中使用RT3需要购买用户许可证书。如果已经安装了RT3,RT3 SDK可从这里看到:Start > Programs > AGI > RT3。

2.2 利用STK引擎开发应用软件

STK为开发各种应用软件提供了两类核心库,分别是STK Object Model和Connect。通过这两个核心库,可以在用户自己开发的软件中改变STK场景和参数配置。由于两者在基于STK二次开发软件中涉及的最多,下面分别对两者作简要介绍。

2.2.1 使用STK Object Model核心库

STK对象模型(STK Object Model)是一个COM库集,包括STK Objects、STK X、STK Util,、STK ESRI Display、STK Vector Geometry Tool、和STK Astrogator等COM库,涵盖数据类型、接口、事件和表示各种STK应用程序结构的类。通过这些类库,使得开发基于STK和STK引擎定制程序变得简而易行。各种组件提供的开发工具对STK对象实现自动化控制,并在整个生命周期内实现对STK对象的管理,通过数据提供工具(data provider),执行可见性和覆盖计算,并对STK发出的事件做出响应。由于STK Object Model是建立在微软组建对象(COM)技术之上的,因此STK Object Model可用于支持COM标准的任何自动化程序开发环境。常见的开发环境包括inc .Net (Visual Basic, Visual C#, etc.), Java, Visual C++, PowerPoint, Excel, Access,以及支持COM后绑定的脚本语言。在STK桌面应用程序和对STK X作为引擎的两种情况下,均可使用STK对象模型。

2.2.2 使用Connect核心库

Connect 模块为CS模式连接STK提供一个简单的途径。用第三方程序调用Connect核心库的函数、常量和各种消息,可建立和STK的通信连接。Connect允许重写标准消息和通知,用自己的消息格式实现和第三方软件的兼容,所以利用Connect对STK实现二次开发的程序有很好的消息环境。

在实时性上,通过Connect实现STK和3D图形通信,可实现事件的可视化实时仿真实现。举例来说,用Connect在发射和早期轨道阶段可注入实时的遥测数据,在2D和3D场景中可以对该任务实现可视化实时化仿真,协助任务执行人员理解和解决在发射阶段可能发生的问题。

2.3 STK Connect模块的使用

由于Connect提供了外部控件和STK交互的机制,在航天仿真应用程序的开发中应用很广。在外部调用STK的应用程序中,其工作机制的要点在于:在外部程序中向STK发送Connect命令实现和STK的交互。通过外部程序或者HTML网页发送Connect命令和STK交互,可采用两种方式:其一,通过TP/ICP链接经指定端口发送Connect命令,STK默认的端口为5001,当然通过Edit->Preferences菜单可修改Connect的默认参数;其二,通过COM接口向STK发送命令,这种情况下不必通过通信网络端口实现。需要注意的是,COM无法支持异步Connect命令。

在STK9.X中,在相应的安装目录下,有支持多种语言开发环境的例程可供参考,这些例程已经完成了外部程序对STK二次开发的软件环境的搭建。开发者在基本例程框架的基础上,可实现基于STK二次开发的对仿真软件实现。支持STK9.X二次开发的环境有C++/C++CLI/CSharp/HTML/Java/Matlab/ PowerPoint/Vb.net,在STK系统安装文件夹下,分别由这几种语言下的二次开发例程。其中,CSharp/java/Matlab的例程较多,对CSharp而言,VS2008下有24个例程,涉及到航空航天仿真的许多方面,从简单易行角度这几种语言不失为首选。但C++语言的实时性最好,结合文件夹下部署的例程和丰富的Connect Api,可以开发出功能强大的航空航天仿真应用软件。

3 基于VS2008/MFC平台的STK二次开发

3.1 仿真软件实现

在VS2008/MFC平台下进行STK二次开发的开发步骤为:开发环境搭建、用户界面设计、通过MFC用户界面发送Connect接口指令驱动STK引擎、将STK计算结果和仿真可视化结果在用户界面展示和结果文件存盘等,本文结合STK的给定的例程说明。

3.1.1 开发环境搭建

STK9.X的C++例程是基于MFC的对话框程序,在该MFC例程框架下,已经完成了STK系统的2D和VO控件的添加以及和STK引擎交互的支撑文件的配置。在例程的工程文件中,包含了通过MFC和STK交互的基本文件和函数。具体可仔细研究阅读程序代码。

3.1.2 用户界面设计

在例程的MFC对话框界面中,已经具备了少量功能简单的控件和STK的二维地图和三维地球控件,利用MFC完备的功能通过各种控件的综合设计,可达到符合设计要求的结果。图1为本文在轨卫星可见分析和姿态仿真的界面设计,图2为卫星和仿真场景参数输入界面,图3为地面观测目标参数的录入界面。

3.1.3 Connect接口指令发送驱动软件运行

在MFC平台下向STK发送命令的函数为:m_VOControl.GetApplication().ExecuteCommand("Connect_Command"),其中m_VOControl为三维地球可视控件变量,所有Connect命令均通过该方法发送至STK引擎,“Connect_Command”指Connect命令,可通过SDK获得,并以符合系统要求的格式作为发送的命令字符串。STK在接到Connect命令后,执行相应的计算并将计算结果返回或者生成结果报告存盘;同时在2D和VO空间中进行二维和三维可视化仿真显示。

3.2 软件运行结果

图4给出了在VS2008下利用MFC开发的在轨卫星的可见性分析和姿态仿真仿真软件的运行结果;图5为条带目标下,在轨卫星的可见弧段的可视化显示结果;图6为在轨卫星仿真的姿态计算结果。同时,该软件还可仿真结果输出为文本文件存入磁盘,以备后续的仿真读取。

4 结论和展望

通过对在轨卫星的可见性和姿态仿真软件的开发可以看出,在熟悉MFC程序框架、STK Connect接口指令系统和STK的专业仿真功能的基础上,在微软

公司的VS2008平台下对STK进行二次开发可完成较为复杂的航空航天仿真任务。后续的卫星在轨软件研制中,将对RT3实时数据仿真方法进行研究,以适应遥测数据作为卫星在轨仿真输入下的实时数据处理情形。

参考文献

[1]丁王达,邱晓刚,黄柯棣.基于STK-RTI中间件的天地一体作战建模仿真研究[J].系统仿真学报,2005,17(02).

[2] 郭伟民,赵新国,曹延华.基于STK的微小卫星姿态控制可视化演示与验证[J].系统仿真学报,2008,20(z1).

[3]屈亭,皮亦鸣,曹宗杰.基于STK/Matlab的GPS卫星可见性仿真分析[J].科学技术与工程,2009,9(13).

[4]杜耀珂.基于STK的卫星实时视景仿真系统设计[J].空间控制技术与应用,2009,35(02).

[5]胡伟.基于STK二次开发的全球导航星座部署研究[J].系统仿真学报,2008,20(23).

[6]李峰,彭会湘,王京京.基于STK的卫星入轨主动段仿真显示设计[J].计算机与网络,2013,39(02).

[7]李峰,齐志国,王永安.设计模式在STK二次开发接口封装中的应用[J].计算机与网络,2013,39(03).

[8]张智海,廖学军,高永明.基于HLA与STK的空间轨道快速拦截模型设计与仿真[J].系统仿真学报,2013,25(10).

[9]杜宁,周连文,季诚胜等.荧火一号火星探测器姿控平台验证演示技术[J].上海航天,2013,30(4).

[10]STK Software Development Kit,AGI,www.agi.co.

推荐访问:遥感 观测 仿真 引擎 设计

相关文章:

Top