这个分析案例也是参考AGI网站上的一个例子,因为需要相关文件配合使用,但是手上没有这样的文件,这里就做了简化。这个仿真案例,主要是为了学习一下Sensor中指向的设置、几个通过ExecuteCommand执行的实用命令。
STK的所有命令、方法不可能一次学的特别完备,只能这样边学习、边记录了。
这个案例,需要excel文件,这个在文章末尾,给出内容,自己建个文件、保存一下就可以了。
好了,下面上代码:
uiap = actxserver(‘STK11.application’);
root = uiap.Personality2;
root.NewScenario(‘GEO_beam’);
sc = root.CurrentScenario;
sat = sc.Children.New(18,‘NBN_1A’);
sat.SetPropagatorType(‘ePropagatorSGP4’);
propagator = sat.Propagator;
%通过卫星编号,连接网络获取卫星轨道参数。这里我是连网操作的,如果
%没连接互联网,可能会有问题。可以用轨道六元素的方式设置卫星轨道参
%数
propagator.CommonTasks.AddSegsFromOnlineSource(‘40940’);
% NBN1A 40940 Sky Muster
propagator.AutoUpdateEnabled = true;
propagator.Propagate;
%GridPoints2.xlsx文件中保存了经纬度
Grid = xlsread(‘GridPoints2.xlsx’);
size1 = size(Grid);
GridSize = size1(1);
for i = 1:GridSize
sen = sat.Children.New(‘eSensor’,[‘Beam’ num2str(i)]);
tag = root.CurrentScenario.Children.New(‘eTarget’,[‘Beam’ num2str(i)]);
tag.Position.AssignGeodetic((Grid(i,1)),(Grid(i,2)),0);
%设置Sensor形状及角度参数
sen.CommonTasks.SetPatternSimpleConic(0.5,0.5);
%设置Sensor指向地面目标
sen.CommonTasks.SetPointingTargetedTracking(1,1,[’*/Target/Beam’ num2str(i)]);
root.ExecuteCommand([‘Swath */Satellite/NBN_1A/Sensor/Beam’ num2str(i) ’ “22 Sep 2020 04:00:00.000” “22 Sep 2020 04:00:10.000”’ ]);
end
%Sensor不显示、地面目标不显示,可用以下命令
root.ExecuteCommand(‘Graphics /Satellite/NBN_1A/Sensor/ Show Off’);
root.ExecuteCommand(‘Graphics /Target/ Show Off’);
以上语句注意 */Satellite/NBN_1A/Sensor/。博客用星号表示斜体,大家拷贝代码的时候注意!!!!!
GridPoints2.xlsx文件的数据;
纬度,经度