建立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会报错。 其他注意的点,也请大家在评论区分享。