之所以拖着这么久没更新,有两个原因,一个是最近工作比较忙,另外一个是想写的内容遇到了瓶颈——利用MATLAB脚本对报告数据进行后处理。现在已经有Python、VB、Perl的例子,但是没有MATLAB例子,搜了好久也没找到,现在要是有谁解决了,也请私信指导一下。
好了,言归正传,在查资料的过程中又发现了几个比较好用的代码,整理出来跟大家一起分享。
(1)动画控制
在之前的帖子里,动画控制是利用root.ExecuteCommand来实现的。后来才发现root就有操作方法。
root.PlayForward:向前播放
root.PlayBackward:向后播放
root.Pause:暂停
root.StepForward:快进一步
root.StepBackward:快退一步
root.Faster:快放
root.Slower:慢放
root.Rewind:重新设置回到动画初始时刻
(2)地面两个点的大圆距离计算
STK有测量两点的大圆距工具,但是得用2D图用尺子量,也就是下面的截图。
在STK2D图中,第1步,左键单击图中的标号1的rular图标;第2步,左键单击Target1点,然后不松手拉到Target2;第2步,在图中的标号3区域读取测量结果。
之前也一直遗憾STK没有计算两点大圆距离的模块,自己还用MATLAB写了一个计算地面两点大圆距的程序。最近查资料恰好看到了STK与MATLAB互联后,有个命令可以直接获得中心天体表面两个点的大圆距。
即以下代码:
uiap = actxserver(‘STK11.application’);
root = uiap.Personality2;
root.NewScenario(‘test’);
sc = root.CurrentScenario;
sat = sc.Children.New(18,‘mysat’);
sat.Propagator.Propagate
%第一个点的纬度、第二个点的经度、第二个点的纬度、第二个点的经度
Dis_Cmd = root.ExecuteCommand(‘MeasureSurfaceDistance * 41 112 45 115 Earth’);
Dis_Cmd.Item(0)
则会返回:
507160.520(单位:m)
结果跟我们用Rular测量的数据差不多。
如果有人想要了解MATLAB怎么计算两点大圆距,也可以交流,我也可以提供代码。
PS:如果有高手用MATLAB脚本处理报告数据,麻烦私信指导一下。
MATLAB与STK互联39:动画控制、地面两个点的大圆距离计算
最新推荐文章于 2023-04-21 15:13:46 发布