MATLAB与STK互联18:卫星对象操作(9)—地面站可见性计算并获取数据2(补充上篇博文,有些问题需要澄清)

需要澄清的问题:上篇博文中,有些问题,如果按照代码来计算,给出的数据并不是可见弧段内的数据,而是整个仿真场景过程中的数据。这个结果,显然不是我们想要的。我们是为了获取可见弧段内的信息。这个问题想解决,就要用到IntervalList,字面意思就是“时段间隔列表”,如可见弧段数据就是一个时间列表。
先上代码:
uiap = actxserver(‘STK11.application’);
root = uiap.Personality2;
root.NewScenario(‘access’);
sc = root.CurrentScenario;

sat = sc.Chilren.New(18,‘mysat’);
sat.Propagator.Propagate;
fac = sc.Children.New(‘eFacility’,‘myfac’);
fac.Position.AssignGeodetic(20,120,0);

sat2fac_accessh = sat.GetAccessToObject(fac);
sat2fac_accessh.ComputeAccess();

%STK开发如果没有头绪,一个是查帮助,另一个就是用get、invoke查看相
%关信息。所以,上get
sat2fac_accessh.get
在这里插入图片描述
可以看到,有ComputedAccessIntervalTimes、AccessTimePeroidData两个属性。这个列表获取,在帮助文档里有,大家可以查一下。

acc_interval = sat2fac_accessh.ComputedAccessIntervalTimes;
%可见次数如下
acc_interval.Count
%可见的弧段起始时间列表
acc_interval.ToArray(0,-1)
%str、sto分别是第一个弧段的起始时间,是字符串类型。
[str,sto] = acc_interval.GetInterval(0)
%结合上篇博文,获取第一个可见弧段内的方位角
aerDP = sat2fac_accessh.DataProviders.Item(‘AER Data’).Group.Item(‘VVLH CBF’).Exec(str,sto,1);
azimuth = cell2mat(aerDP.DataSets.GetDataSetByName(‘Azimuth’).GetValues);

这篇博文就到这里,有些内容留在下一篇中进行介绍。

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值