本文主要是介绍MATLAB与STK互联38:利用root.ExecuteCommand(),生成报告(Report),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在之前的博文中,我们介绍了如何使用DataProviders获取数据。但有些人,可能更喜欢使用STK生成报告模式。在STK交互中,是可以直接生成报告的。本篇博文就梳理一下,生成报告的代码、报告类别等内容。
建立如下场景:卫星运行于500km×800km,倾角50°的轨道上。地面站为25°N、112°E。
下面上代码:
uiap = actxserver(‘STK11.application’);
root = uiap.Personality2;
root.NewScenario(‘report’);
sc = root.CurrentScenario();
sat = sc.Children.New(18,‘mysat’);
sat.SetPropagatorType(‘ePropagatorHPOP’);
kep = sat.Propagator.InitialState.Representation.ConvertTo(‘eOrbitStateClassical’);
kep.SizeShapeType = ‘eSizeShapeAltitude’;
kep.LocationType = ‘eLocationTrueAnomaly’;
kep.Orientation.AscNodeType = ‘eAscNodeLAN’;
kep.SizeShape.PerigeeAltitude = 500;
kep.SizeShape.ApogeeAltitude = 800;
kep.Orientation.Inclination = 50;
kep.Orientation.ArgofPerigee = 0;
kep.Orientation.AscNode.Value = 0;
kep.Location.Value = 0;
sat.Propagator.InitialState.Representation.Assign(kep);
sat.Propagator.Propagate;
fac = sc.Children.New(‘eFacility’,‘myfac’);
fac.Position.AssignGeodetic(25,112,0);
%计算地面站与卫星可见性,代码如下
access_facsat = sat.GetAccessToObject(fac);
access_facsat.Compute;
之前,我们利用DataProviders给出了可见弧段数据,但语句稍显复杂。下面用ExecuteCommand+report的形式,给出可见弧段报告,报告的格式与手动在STK中生成可见性报告是一样的。代码如下:
(1)可见性报告生成并保存
root.ExecuteCommand(‘ReportCreate */Satellite/mysat Type Save Style “Access” File “D:\stkdata\access.txt” AccessObject */Facility/myfac’);
生成的报告的样式如上图所示。
(2)AER报告生成并保存
生成mysat对myfac的AER报告,数据时间间隔为1s。代码如下:
root.ExecuteCommand(‘ReportCreate */Satellite/mysat Type Save Style “AER” File “D:\stkdata\AER.txt” AccessObject */Facility/myfac TimeStep 1’)
(3)AER报告生成并显示
代码如下:
root.ExecuteCommand(‘ReportCreate */Satellite/mysat Type Display Style “AER” AccessObject */Facility/myfac TimeStep 1’);
使用上述语句,STK必须处于运行状态,因为报告会显示在STK软件中,效果如下图所示:
代码中的Type 主要有Save Display Export三种,Export的使用方法与Save类似,这里就不多说了。Style是确定报告类型,报告类型主要如下:。
对象为类型的报告类型:自己建的报告也可以生成
Access对象的报告类型:自己建的报告也可以生成
除了ReportCreate外,还有Report_RM命令,使用方法如下:
data = root.ExecuteCommand('Report_RM */Facility/myfac Style “Cartesian Position” ');
查看数据的命令:data.Range(1,3)
数据以逗号分隔开。
除了报告外,还有生成图的命令:GraphCreate。以上内容都可以在STK的帮助文档中查到,有不明白的大家可以一起探讨。
这篇关于MATLAB与STK互联38:利用root.ExecuteCommand(),生成报告(Report)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!