1、MATLABkSTK构建卫星轨道姿态控制仿真演示系统杜耀珂郑科宇(上海航天控制【j翻研究所上海200233)摘要:通过在MATLAB中建立卫星的轨道运动和姿态动力学仿真模型就可以分析在不同的控制作用下,卫星的轨道和姿态的变化情况。这种方法可以得到具体的卫星轨道和姿态参数及其变化曲线,然而它却难以体现出卫星本体在空间中的实际变化情况,不能直观的显示控制作用对卫星的轨道和姿态的影响本文结合STK对二维和三维图像的显示和处理特点,利用MATLAB得到的仿真数值,通过网络连接控制在STK中的显示效果。通过仿真分析实现了对卫星轨道和姿态的控制,并且直观的反映了控制作用的效果。关键词:姿态控制;轨道控制;
2、STK;MATLABSatellite Orbit and Attitude Control Emulation DemoSystem with MATLABSTKDu Yaoke Zheng Keyu(Shanghai Aerospace Control Engineering Institutg,Shanghai,200233,Chi雌)Abstract:SatelliteS orbit and attitude simulation model can be setup with the help of Simulink in MATLAB,and then thesatelliteS
3、orbit and attitude change can be analysed under different control conditionsThis method Can get parameters and curvesof the satelliteS orbit and attitude,however,it has difficulties in describing the satelliteS orbit and attitude changes in outer spaceThe paper use the simulation value of MATLAB,wit
4、h the merit of STK in 2D and 3D graphic dealing and monitoring,control thegraphics changes in STKThe simulation result meets the control demands and displays intuitionistic control effectKeywords:attitude control;orbit control;STK;MATLAB引言随着可视化技术在仿真中的广泛应用,对卫星的轨道和姿态控制仿真不仅要求仿真系统具有精确的模型和实验结果,还要求真实再现航天任
5、务的全过程,因此有必要建立一个视景仿真系统,给设计人员和决策者以更直观更形象的理解。MATLAB是一套功能非常强大的商业数学软件。它包含了数值计算、高级图形与可视化、高级语言编程等功能。从信号处理,语音处理,数据采集,数值运算,图像处理,到电子仿真,金融分析等等,几乎在各个工业领域,它都已经得到了广泛应用。由于MATLAB这些特点,在卫星的姿态和轨道控制领域的许多仿真分析都是在它的基础上建立起来的。但是如果仪仅利用MATLAB进行仿真,容易得到的是一些实验数据和物理量的变化曲线,不能在空fBJ环境中显示卫星的运行状况,分析起来不够直观。STK(Satellite Tool Kit)是由美国An
6、alytical Graphics公司开发的卫星仿真工具包,是航天工业领先的商业化分析软件,它可以快速方便地分析复杂的陆、海、空、天任务,并提供易于理解的图表和文本形式的分析结果,用于43确定最佳解决方案。不但具有强大的数据仿真功能,还具有三维模型编辑和三维可视化模块(STKVO),可以为STK和其它附加模块提供逼真的三维视景显示功能。在STK中通过建立一定的场景并加入卫星的模型,通过设定该场景的参数,就能实现对卫星运行的二维和三维仿真视景。虽然它有效的解决了三维视景显示问题,但是在卫星的运行过程中,如果需要对卫星实施变轨或者大角度姿态机动就需要将仿真停止,重新设定相关的参数,不能实现对整个视
7、景系统的连续仿真运行。本文结合MATLAB和STK两个软件各自的优点,利用STK提供的与MATLAB的接口模块,通过在MATLAB处理相关数据并给STK发送相关的命令控制STK的运行,从而让视景仿真系统按照MATLAB程序预先的设定运行,大大增强了卫星轨道姿态控制视景仿真的灵活性和可操作性。1 MATLAB与STK通信的实现MATLAB与STK的通信主要是通过两个模块,其中STKConnect模块提供了一种使用客户机服务器端方式连接STK的快捷工作方式。STKConnect设计用于给第三方的应用程序提供一个向STK引擎发送指令和接收数据的通信路径。STKConnect允许打开Microsoft
8、 COM或者TCPflP到STK的连接,发送STKConnect指令,接收STK的数据,完成后关闭连接。STKConnect也提供一个消息功能以用户定义的方式来输出错误和诊断信息。使用STKConnect时,只需提供连接名和端口以便进行数据通信。STKConnect指令可以用单一函数发送并返回所期望的数据。另外,STK本身的STKMATLAB接口在STK和MATLAB之问提供了一个双向的通信路径。利用超过150个MATLAB指令,如使用STK支持的分析功能一样,MATLAB的用户可以使用STK的功能对轨道、弹道、大弧度抛物线建模。整个系统的结构如图1所示。另外,MexConnect提供了从MA
9、TLAB命令行直接使用STKConnect指令的能力。MexConnect工具使得可在MATLAB中创建、复制和报告各种不同的STK对象类。所有的STK数据,包括动态位置、速度和高度数据,可以传送到MATLAB的工作空间中做更深入的数学分析。另外Aerospace Toolbox(航天工具箱)可以使用MATLAB用户创建和输出的多重坐标系下的STK格式的星历和姿态文件用于在STKVO中进行三维显示。夏瑚矿等IMAllAB =l徽险二o 涨_ l仿真 接收数据 视景仿真控制台) =到口lIAnimateOptionl【设置场景的动画。如设置一颗卫星的动画开始时间的程序调用:Animate Sce
10、narioSatellite SetValues”1 May 200012:12:123000”10 O1(2)GraphicsBasicAttributeOptionlAction在二维地图上设置显示卫星星下点轨迹及其颜色、显示卫星轨道、星下点和轨道显示的线性等。如在二维地图上设置显示卫星星下点轨迹及其颜色Graphics ScenarioSatellite Basic Show ON Orbit ONGroundTrack ON Label ON LineWidth 5 MarkerStyleCircle Color l:(3)VOPassLeadTrailOptionl【Typel【St
11、ate】在三维立体图上设置显示卫星轨道,如在三体图上显示卫星轨道的程序调用:,VO ScenarioSatellite Pass OrbitLead A11 OrbitTrailAll(4)MapProjectionProjectionType【】【ProjOptionParams】在二维地图上设置地图投影类型和观察位置,如设置视点位置在北纬49度、东经120度、高度为17000000米的正交投影地图的程序调用:Orthographic Center900ScenarioOrbit_Control_Scenario40 120,17000000 Format ECI(5)SetAttimdeP
12、rofileProfileType使用SetAttitude Profile命令用来定义物体坐标系的空间指向,从而设定物体的姿态控制方式。例如:Se认ttitIlde*SatelliteaosSat Profile Fixed Euler11 22 33 313”CentralBodyEarth B1950”(6)VO3DView3DViewOption l【使用VO 3DView命令用来给一个三维窗口设定一些视点观察参数。例如:VO。3dView Eye FromTo FaeilityFaelV0宰3dView Zoom Out2(7)VOModelPointing”“ModelPointO
13、ptionl使用VO ModelPointing命令用来设定载入模型的一部分始终指向另一个物体,例如太阳,地球。其中所设定模型的那一部分必须在其模型文件中申明。例如:VO *SatellitaattSat ModeIPointing”SolarArrays-000000”Intervals Add 2”24000”6000”FacilityaosFac”24000”36000”Sun(8)V0ReloadArticFile使用VO ReloadArticFile命令来重新载入卫星模型的行为控制文件,使通过程序编写的卫星模型的行为控制文件能够驱动卫星模型依照设定的行为控制进行动作。例如:VO S
14、cenariostkDemoSatelliteShuttle ReloadArticFile2三维卫星模型的建立为了方便三维模型的编辑和查看,STK专门提供了一个模型查看程序:“MDEexe”模型文件(车mdl)可以在记事本、写字板或是MATLAB的脚本(Script)程序中输入,编写完毕后,将文件保存为以mdl为扩展名的文件类型。若要对其进行修改时,同样可以使用记事本程序或其他编辑文本文件的程序。如果要查看更改后的效果,用MEDexe打开相应的模型文件即可。现在以建立卫星模型(Satellite)为例,其中基本图元(Primitive)包括圆柱、多边形、球形它们是构成模型的基础。由基本图元构
15、成模型的各个组成部分(Component)。例如太阳能电池板等,再由各个组成部分构成整个模型(Satellite)。整个结构是一个倒置的树型结构。见图1:蛔融口Q呷嘣图2卫星模型的基本结构Root可以认为是表明模型的父物体的关键字,这很重要,因为一个模型文件必须有一个父物体。例如在卫星的模型文件中有以下典型的代码:RootReferTranslate030Component SolarpanelEndRefer以上代码表明将电池板这个组件(Component)作为Satellite的一部分,Refer和EndRefer必须成对出现。除了可以用文本编辑器编写模型文件,然后根据在MEDexe中的显
16、示效果进行更改之外,STK本身并没有提供模型制作工具。STK提供的模型制作方法是首先通过三维制作软件LightWave中建立模型,然后利用STK网站提供的转换工具LwConvertexe进行转换之后才能被STK使用。三维模型中的活动关节在视景仿真中非常重要,通过定义仿真过程中活动关节的动作可以表征航天装备运行过程中状态的变化。例如,改变卫星天线的指向来表征卫星服务对象的改变,卫星太阳帆板的展开和驱动帆板的转动等等。对活动关节的编辑分为静态编辑和动态编辑。静态编辑指对关节的初始位置的编辑;动态编辑是指对仿真运行过程中关节的活动的定义,包括起止时间、起止位置、运动方式等。实体模型的关节活动存储在关
17、节活动文件(Articulation File)中,每个关节活动文件中包含一个或多个关节活动的定义,每个关节活动由开始时刻、持续时间、初始值、终止值等11个参数来定义。通过对这些参数的修改,可以定义线性、阶跃、非线性等类型的关节活动。以线性型动作为例,定义下列参数:STARTTIME 1 OooODI瓜枷ON 10ODEADBANDDI瓜棚ON 0OACCELDUR棚0N OODECELDUR枷0N 00DUTYCYCLEDEITA 00PERIOD 00ARTICI枷oN tailRudder田RANSFORMi棚0N tailRudderZRotationSTARTVALUE 20OEND
18、VALUE 100图3关节活动定义线性动作VALUElDem扣104000口 1口10DSTARTTIME11lE3卫星在轨运行的视景仿真实现视景仿真利用MATLAB制作仿真界面,控制轨道参数的载入并通过与STK的接口控制在STK窗口中的演示效果。当数据全部输入后,系统即可按预定程序运行,不需要再通过STK上的菜单操作控制仿真的运行。仿真软件数据输入结构流程图如图3所示:图4是轨控仿真软件的初始界面。图4轨道控制仿真软件数据输入结构流程图(精确轨道动力学模型)(1)在“输入轨道参数对应的时刻”一栏,输入“年月日时分秒”,也可以点击“载入数据”按钮,将上一次输入的“年月日时分秒”载入。(2)在“
19、请选择输入轨道参数的类犁”一栏,可选择“输入瞬时轨道六要索”或“输入拟平均根数”两项之一,然后点击“输入参数”按钮,分别弹出如F界面:(3)选择推力模型推力模型可选择“推力始终不变模型”或“推力实时变化模型”二者之一,选择后,按“输入参数”按钮,即弹出如下界面:可按照界面提示输入相应的发动机参数,也可点击“载入”按钮,装入上一次输入的发动机参数,然后点击“提交”按钮。点击“开始运行”按钮后,系统会检查STK当前是否存在场景,若存在,则会弹出“载入轨道控制场景,必自口Z-“vur sTK轨控仿真界面*#mt#mHH# 月 R ” * #r_r r r一一r_rt菇女*#*黉iiiiiF#刊*t#
20、口t自t ;耐孔#刊*t#m目#*自m*二而ij;i丁 m2【Hm*#*#女K _7 IM十n女#m镕M(目IF*】4结束语丰女坫丁对MATLAB#STK的综台运用构建TT艰的轨道和整态控制的视景仿真系统,该系统实现了直观、简洁的町视化仿真环境为航*任务的顶世设计及方颦的行性分析等提供T个直观实用的T儿。特女簟:#J,城-日KmmK#mgK#目m|“mn 2003STK uz,MuaL 4 0jhmSlZln丑叫刊GmmlcsINC(AGD】99831 STK 4J6Rclcam NoksZI ABayficalGn岫kINqAGI)I“8 Em#“十L MATLAB 6 5 R J“n lUr【mn 20035l#*5#Simaliak4#2j“# “m,HjK2002MATLAB&STK构建卫星轨道姿态控制仿真演示系统作者: 杜耀珂, 郑科宇作者单位: 上海航天控制工程研究所 上海 200233本文链接:http:/