STK 11.6 安装、与MATLAB的互联及其混合编程
STK 11.6 安装、与MATLAB的互联及其混合编程
1. STK介绍
STK软件由美国分析图形公司(Analytical Graphic, Inc.)开发,原名Satellite Tool Kit,即卫星工具包。随着STK中模块的增加,功能越来越完善,其应用已经不局限于卫星相关任务,因此在STK 11.2版本时,将STK的全名改为System Tool Kit,即系统工具包,目前的最新版本是STK 11.6。STK可对包括航天任务在内的复杂系统进行建模和分析,模拟并评估其在真实环境或仿真环境下的性能,应用对象包括卫星、飞机、船舶、车辆、地面站和雷达等,应用领域包括航天任务、无人机和航空器任务、导弹防御和电子系统等。STK具有如下优点:功能强大,可对各领域、各对象在任务周期内的全过程仿真;使用简单,通过合理的人机交互界面,使用户无需深厚的专业知识即可完成任务设计、分析和优化等工作,且具有强大的图文输出能力;数据完善,提供众多恒星、卫星、城市、地面站等数据库,并可连接服务器进行在线更新;具有可视化功能,可提供逼真的二维和三维的显示环境;良好的实时性和扩展性,可通过预设的程序接口与Visual Studio和Matlab等软件互联,实线协同开发和优化。因此,STK已经在NASA、ESA、MIT和美国空军等700多个组织中得到了广泛应用,特别是在广泛应用于全球卫星导航星座等仿真研究中。
2. STK安装
当前最新版本是STK 11.6,在此介绍STK 11.6 版本的安装过程。
STK 11.6 的安装包分为基本版和高级模块,基本版中包括STK的基础功能、Parallel Computing、Planetary Data Supplement等功能。
2.1 基本版安装
STK 11.6 安装包大小约为3.33 G, 将安装包解压,点击install.exe,进入安装界面,把选项全部选上,在Help栏里选择Install Desk Help,可以查看离线帮助文档。
然后一直选择“Next”,到设置安装路径时,可以选择自行设定安装位置,默认是C:\Program Files\AGI,也可以更改安装到分区D或其他分区中。确定后单击“Install”。
到这里STK基本版的安装就完成了,如果不安装插件可以直接到**步骤。这时候也可以正常使用STK的基本功能,但是有些特殊的功能模块是没有的。
2.2 高级模块安装
一般来说,基本版就能满足大部分人的需求。但除此之外,还有一些高级模块,比如红外分析模型EOIR、分析模型Analyzer等,这些模块的专业功能也很强大,可以根据自己的需求进行安装。
每个模块中都有一个instatll.exe的文件,单击这个文件进行安装,系统将自动的将这些高级模型安装到STK基本版的安装路径中。以EOIR模块为例,解压,单击“instatll.exe”,然后一直单击Next或Install,直至安装完成。
安装**
第1步:在stk-11.6.0-crk\Program Files (x86)\AGI\LicenseManager\bin路径下,找到AgLicVbInterface.dll文件。把**文件放到安装目录下,替换原始文件。原始文件路径C: Program Files(x86)\AGI\LicenseManager\bin
第 2 步: 将stk-11.6.0-crk\ Program Files中的文件,全部复制到对应的安装路径中,替换安装路径\ Program Files中的原文件。
第3步:将stk-11.6.0-crk\ProgramData文件夹中的license文件STK_1160_complete_include_develop.lic,复制到C:\ProgramData\AGI\LicenseData中。
经过如上步骤,STK 11.6就安装完成了,桌面上会出现STK 11.6 的图标。本人电脑上还安装了32位的STK 10,可以看到其图标是明显不一样的。
单击桌面图标,选择continue startup,第一次会出现Privacy Policy,选择Accept就好了,然后就能启动STK 11.6了。
STK中有一些设置好的场景,其位置在安装路径中C:\Program Files\AGI\STK 11\Data\ExampleScenarios,可以打开这些文件进行学习。
STK与MATLAB的互联
STK和Matlab互联时需要安装连接器connector,并且对STK、Matlab和connector的版本有一定要求。首先是对软件的位数版本的要求,32位的STK只能通过32位的connector和32位的Matlab互联,同样的,64位的STK也只能通过64位的connector和64位的Matlab互联。此外,即使这三个软件都是32位或者64位的版本,对其版本的更新代数也有要求,比如STK10只能连接Matlab R2014a或者之前的版本,所需要的连接器connector的版本则对应于1.05到1.01。具体的需要实现互联的版本要求参考下图。
本人计算机上安装有Matlab 2017b和MATLAB 2018b。一般来说,先安装64位的matlab, 然后再安装STK 11.6,并且在安装STK中勾选上MATLAB Connectors,则STK安装完成后,就已经实现了STK与MATLAB的互联安装了。
打开STK软件,在Edit Reference 中,选中左边的MATLAB,可以看到与STK连接的MATLAB版本,这样就代表STK与MATLAB互联完成了。
然后再打开MATLAB,输入stkInit,对STK的连接进行初始化,可以看到如下提示,这就表示MATLAB已经与STK进行连接,此后就可以利用MATLAB对STK进行编程。
STK与MATLAB的混合编程
打开MATLAB和STK,在MATLAB窗口中输入stkInit并能成功运行,则表明STK和MATLAB已经互联成功。通过MATLAB连接STK可以通过调用接口函数stkExec实现,其基本语法为:
rnt = stkExec(conID, cmdStr);
其中conid = stkOpen(stkDefaultHost)返回的互联主机端口的连接句柄,cmdStr为发送给STK的指令,例如cmdStr = ‘New / Scenario GPS_Test’,表示生成一个新的场景,并将该场景命名为 “GPS_Test.sc”;cmdStr = ‘SetAnimation * CurrentTime “3 Mar 2019 17:04:00.000”’则表示将当期场景时刻设为3 Mar 2019 17:04:00.000。
利用通用接口函数stkExec,可以直接向STK发送约600条指令,包括场景设置、建立研究对象、相对运动和相对关系的分析计算、生成报告等功能。下面以一组简单命令举例说明。在打开STK和Matlab的前提下,在Matlab窗口输入如下命令:
stkInit;
conid = stkOpen(stkDefaultHost);
cmdStr = ‘New / Scenario GPS_Test’;
stkExec(conid,cmdStr);
date_start = ‘3 Mar 2019 00:00:00.000’;
date_end = ‘5 Mar 2019 00:00:00.000’;
cmdStr = sprintf(‘SetTimePeriod * “%s” “%s”’,date_start,date_end);
stkExec(conid,cmdStr);
cmdStr = sprintf(‘SetAnalysisTimePeriod * “%s” “%s”’,date_start,date_end);
stkExec(conid,cmdStr);
cmdStr = sprintf(‘SetAnimation * CurrentTime “%s”’,date_start);
stkExec(conid,cmdStr);
cmdStr = ‘New / Satellite Sat1’;
stkExec(conid,cmdStr);
Ele = [9000e3,0.1,60,20,00,100];
cmdStr = sprintf(‘SetState */Satellite/Sat1 Classical TwoBody “%s” “%s” 10 J2000 “%s” %s’,…
date_start,date_end,date_start,num2str(Ele));
stkExec(conid,cmdStr);
该段命令运行完成后,在STK窗口中新建得到一个名为“GPS_Test”的场景,场景的分析时间为3 Mar 2019 00:00:00.000 ~5 Mar 2019 00:00:00.000,当前场景时刻为3 Mar 2019 00:00:00.000;场景中新建得到一颗名为“Sat1”的卫星,该卫星的轨道六要素为 ,长度单位为 km,角
度单位为度,轨道六要素对应时刻为3 Mar 2019 00:00:00.000,轨道积分模型为TwoBody,每一步的积分间隔为10 s,整个积分区间与场景的分析时间相同,坐标系为J2000坐标系。对应的STK窗口下图。
MATLAB与STK的GUI界面
实现MATLAB与STK的互联后,不仅可以靠单独命令对STK进行控制,可以在GUI编程中调用STK进行场景和动画演示。
因为之前STK 10版本的使用比较多,所以就简单展示一下用MATLAB 2014a和STK 10互联做的GUI界面。这个界面主要是演示GPS系统的可见性分析和覆盖分析。
在MATLAB的GUI界面设计中,其布局如下图。开始运行后,GUI界面如下图,可以设置场景时间,地面位置等参数,然后分别计算各种指标,并且可以进行动画演示,生产各种报告等。
总结
上述就是STK 11.6的安装流程,与STK的互联及混合编程等内容的介绍。STK和MATLAB都是功能强大的软件,将两者互联,可以结合STK功能丰富、性能可靠、动画演示等优点和MATLAB的语法简单、函数库丰富、科学计算强大等优点。利用STK和MATLAB 互联进行编程,可以在保留 STK强大的轨道分析计算能力的同时,发挥Matlab软件在数值计算和优化等方面的功能,从而可以适用于更为广泛和复杂的航天任务分析设计中。
附注:
STK和MATLAB都是功能十分强大的软件,如果能熟练掌握STK和MATLAB中的大部分功能,就完全可以不用担心以后的工作了。我目前所掌握的也只是其中一小部分功能,还需要加强学习,学无止境,加油。
最后,需要交流或者获取软件的同学,可加Q:2692707502.
在MATLAB和STK的编程设计方面,本人也在能力范围之内提供有偿帮助,具体可加Q或小黄鱼联系。