您的位置:首页 > 编程语言 > MATLAB

STK与MATLAB联合仿真方法及应用研究

2013-06-17 07:22 337 查看
STK与MATLAB联合仿真方法及应用研究
常建松,林晓辉

摘要:卫星工具软件STK(Satellite Tool Kit)是进行卫星系统分析和仿真的有效工具。其重要模块STK/Connect可提供用户在客户机/服务器环境下利用其它软件与STK连接的功能。在深入研究了STK/Connect模块的基础上,实现了STK与MATLAB软件的双向通讯,进而提出利用二者联合仿真,并将这种联合仿真的方法应用于飞行器轨道运动学和动力学高精度仿真实验,以及网络环境下利用STK进行实时可视化三维仿真。取得了良好的效果。

关键词:卫星工具包;连接模块;联合仿真

1引言

随着现代航天技术日新月异的发展,出现了大量的航天分析和仿真软件,美国Analytieal Graphics公司开发的STK(Satellite Tool Kit),是航天工业领先的商品化分析软件,它可以快速方便地分析复杂的陆、海、空、天任务,并提供易于理解的图表和文本形式的分析结果,确定最佳解决方案。它支持航天任务周期的全过程,包括政策、概念、需求、设计、制造、测试、发射、运行和应用。

由美国MathWorks公司开发的MATLAB语言是当今国际上科学界(尤其是自动控制领域)最具影响力、也是最有活力的软件。它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形与界面设计、便捷的与其他程序和语言接口的功能。MATLAB语言在各国高校与研究单位起着重大的作用。

STK作为专门用于航天领域的仿真软件,能提供包括地球影像、卫星轨道在内的逼真的二维三维显示环境,同时STK的高精度轨道姿态预报模块(HPOP)可以提供各种高精度的轨道姿态信息;而MATLAB软件优势在于可以进行复杂的数值运算,灵活的程序设计,因此如果能将二者联合应用于同一仿真过程中,可以取长补短,充分发挥各自的优势,获得更加良好的仿真结果。基于这种思想,本文提出了利用STK和MATLAB进行联合仿真的方法,并对这种联合仿真方法的应用做了初步研究。

2 STK与MATLAB相互通信实现

2.1 STK/Connect模块介绍

STIC/CON模块提供用户在服务器环境下与STK连接的功能。STK/CON为第三方应用程序提供了一个向STK发送命令和接收来自STK数据的通信工具。STK/CON在早期名

称是交互处理通讯模块(IPC),STK/CON包括一系列功能打开UNIX或TC/IP到STK的接口,以便给STK发送连接命令和接收从STK返回的数据,当通讯完成后关闭接口。CON具有提供信息的功能,可按用户规定的各种方式输出错误信息和诊断信息。如果需要,用户还可取消此信息将之用于自己的目的。使用STK/CON时仅需提供连接名和端口,以便STK驻留和打开接口。IPC指令可以用单一函数发送然后返回所希望的任何数据。



主要特性:

①在客户机/服务器环境下工作——cON通过TCP/IP的Socket或UNIX Domain Socket很方便地建立用户的应用程序和STK的接口。这种网络能力允许来自任何虚拟环境的

实时数据传送。

②连接库——你可以使用与CON同时提供的库来方便的建立和使用TCP/IP,利用库提供的函数、常值和其它消息能力可以建立第三方应用程序与STK的连接。

③信息功能——CON可以有选择的生成信息,用户也可以取消标准的信息,使用自定义的格式编辑它以适应第三方的应用程序。这个功能可以让你更好的控制信息环境。

④实时可视化——cON联接着STK和STK/VO,这样你可以实时观察事件。例如,我们可以通过STK/CON获得从火箭或卫星上得到的遥测数据,而后在2维或3维地图窗口中

模拟飞行任务,帮助了解和解决任何可能出现的情况。

2.2 MATLAB环境下常用连接命令简介

如表1所示为MATLAB与STK接口程序常用的一些连接命令,这里只给出命令的功能和格式。



2.3 相互通信的实现

首先在机器中安装与STK版本相匹配的MATLAB软件,之后在安装STK软件的过程中勾选MATLAB/interface选项,这样在安装完成后,MATLAB的toolbox文件夹下就会有新创

建的stk文件夹,其中包含有全部的MATLAB与STK的连接命令,运行mexConnect.C可以查看.

下面通过一个实例来实现STK与MATLAB的相互通信过程。

首先,连接初始化,开通到STK的默认端口。命令如下:

remMachine=stkDefaultHost;

conid=stkOpen(remMachine);

其次,建立新场景,并命名为Matlab_Basic,命令如下:

stkNewObj('/', 'Scenario‘, 'Matlab_Basic');

再次,创建新卫星,并命名为Basic_Sat,命令如下:

stkNewObj(’*/', ’Satellite’,’Basic_Sat’)

最后,设置卫星参数,高精度轨道模式,J2000惯性坐标系,窗口起始时间0(秒),结束时间86400(秒),步长60(秒),坐标系时域0(秒),轨道半长轴6978137.0(米),偏

心率0.00150,轨道倾角30(度),近地点角距0(度),升焦点赤经60(度),平近点角0(度)。命令如下:

stkSetPropClassical(’*/Satellite/Basic_Sat’, ’HPO_P’, ’J2000’, 0, 86400, 60.0, 0.0, 6978137.0, 0.00150, 30, 0.0, 60, 0.0)

如上的简单实例就是在MATLAB环境下操控STK的一个基本过程,当然还可以根据任务需要进行更为复杂的控制,但是其主要思路和基本原理都是相同的。

3 联合仿真方法应用研究

3.1 MATLAB环境下利用STK进行高精度仿真

一般情况下,利用MATLAB进行飞行器轨道运动学和动力学仿真实验中,建立的仿真动力学模型不可能非常精确,仿真精度不高,至多考虑到J2项摄动影响,而STK高精度轨

道预报模块(HPOP),可以考虑到J24项影响,并且包括多种大气阻力模型,太阳光压模型等摄动力模型,因此HPOP提供的轨道姿态数据具有非常高的精度,利用这些数据进行仿真,可以满足高精度仿真实验要求。

要想利用STK提供的各种高精度数据信息,这就涉及到如何将STK软件产生的数据取回MATLAB的问题,下面介绍一种简单的实现方法。该方法需要应用stkReport命夸,其基

本格式如下:

[secData, secNames]=stkReport(’objPath“, ‘rptStyle‘, tStart, tStop, dT)

其中0bjPath为有效路径,即目标在stk窗口中的位置.也可从stkObjNames命令获得;sptStyle返回报告类型,必须与STK中存在的报告类型相匹配.这些类型可以在STK的Report窗口中找到.也可以建立包含任务需要数据信息的自定义格式;tStarl报告开始时间;tStop报告结束时间,dT数据时间步长;secData为返回报告数据的元胞数组。

接下来要对取回信息进行利用,方法有多种.其一是可将GetReport获得的数据信息进行读取分解,以矩阵变量的形式存储下MATLAB的工作i间中,应用基本矩阵操作命令即可对数据进一步加以利用。还有一种方法就是利用连接命令stkFindData.c,其作用就是提取报告中的数据.一般格式为

data=stkFindData(section, ’name’)

其中section为报告片断,即stkReport得到的secData的一部分.name为数据元素名称,必须与报告中包含的元素名称相匹配;data为自定义元素名。

通过以上两个命令即可实现STK高精度轨道/姿态预报数据的返回,从而通过MATLAB实行进一步的高精度仿真实验。

3.2 网络环境下利用STK进行实时可视化三维演示仿真

作为航天领域的专业软件.STK通过VO窗口能够提供包括地球影像、卫星轨道在内的逼真的三维显示环境。同时,通过MATLAB与STK双向通讯功能的实现,可实时读取仿

真数据.利用MATLAB驱动STK三维显示窗口进行实时的可视化三维仿真。这一过程中需要用到以下两个连接命令:

SetPosition<ObjectPath>|PositionTypel "<Date Time>“<PositionData>

其中ObjectPath为有效路径,PositionType为位置类型,可选择ECI,LLA等格式;DateTime为数据时间,PositionData为与选择的位置类型相对应的位置数据。

AddAltitude<ObjectPath>Ouat "<DayTime>”<Q1><Q2><Q3><Q4>

其中ObjectPath为有效路径;DayTime为数据时间.Q1 Q2 Q3 Q4为姿态四元素。

可通过sprintf函数将显示数据赋值给上面两个命令中的变量,其功能为以控制格式把数值转换为串并存放的变量中。
仿真基本原理如图2,任务计算机组将需要数据输入存储机.仿真演示平台实时读取数据,并通过MATLAB与STK的联合仿真,利用STK的VO显示窗口.实现任务的实时可视化三维演示。



仿真过程中可能出现个别数据丢失的现象,但并不影响总体仿真结果.三维窗口的可视化显示过程仍可顺利完成。

4结束语

近年来,STK与MATLABB成为航天仿真实验必不可少的工具软件.为了充分发挥这两种软件在仿真实验中的各自优势,本文在深入研究了STK/Connect模块的基础上,实现了 STK与MATLAB软件的双向通讯并对这种联合仿真方法的应用做了初步研究,即飞行器轨道运动学和动力学的高精度仿真实验,以及网络环境下利用STK进行实时可视化
三维仿真。相信随着对STK和MATLAB软件研究的探入,这种联合仿真方法将有更为广阔的应用前景。

更多STK学习资料免费下载:

http://download.csdn.net/user/appe1943
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  stk