建立STK场景后,比较常用的分析有卫星与地面站可见性分析。本文就是通过MATLAB实现分析,并获取相关的AER数据。
uiap = actxserver(‘STK11.application’);
root = uiap.Personality2;
root.NewScenario(‘exam’);
sc = root.CurrentScenario;
%这里选用默认的卫星轨道参数
sat = sc.Children.New(‘eSatellite’,‘mysat’);
sat.Propagator.Propagate;
%建立地面站,并设置地面站位置纬度、经度、高度
fac = sc.Children.New(‘eFacility’,‘myfac’);
fac.Position.AssignGeodetic(30,120,0);
sat2fac = sat.GetAccessToObject(fac);
sat2fac.ComputeAccess;
%还有下面的方式
sat2fac1 = sat.GetAccess(‘Facility/myfac’);
sat2fac1.ComputeAccess();
sat2fac1.ClearAccess();%清除可见性,但还可以计算
sat2fac1.ComputeAccess();
sat2fac1.RemoveAccess();%删除可见性,相关的命令执行错误
sat2fac1.ComputeAccess();%MATLAB会报错
关于ClearAccess、RemoveAccess的使用,大家可以多尝试。
可以通过上篇博文的方式获取数据。
aerDP = sat2fac.DataProviders.Item(‘AER Data’).Group.Item(‘VVLH CBF’).Exec(sc.StartTime,sc.StopTime,60);
azimuth = cell2mat(aerDP.DataSets.GetDataSetByName(‘Azimuth’).GetValues);
可见性还可以加很多约束,笔者也在探索中,探索明白了再写新的博文。这里有2个注意的点:
tip1:获取数据时,一定要有Exec(sc.StartTime,sc.StopTime,60),不然提取不到数据,这个类似于计算过程,没有计算过程,当然没有结果可以获取。
tip2:在提取数据时,输入变量名不要有多余的空格,如将’Azimuth’改为’Azimuth ',MATLAB会报错。
其他注意的点,也请大家在评论区分享。