继续探索加约束条件的可见性分析问题。上代码:
uiap = actxserver(‘STK11.application’);
root = uiap.Personality2;
root.NewScenario(‘access’);
sat = sc.Children.New(18,‘mysat’);
sat.Propagator.Propagate;
fac = sc.Children.New(‘eFacility’,‘myfac’);
fac.Position.AssignGeodetic(10,120,0);
facConstraints = fac.AccessConstraints;
(3)仰角约束: eCstrElevationAngle
在分析可见性时,一般会考虑地面站的最小仰角。可以通过以下方式进行设置:
elevation = facConstraints.AddConstraint(‘eCstrElevationAngle’);
查看属性:
elevation.get
属性中有:使能最小值、最小值、使能最大值、最小值。通过以下进行设置最小仰角:
elevation.EnableMin = 1;
elevation.Min = 8;
通过STK软件,可以查看下面的界面,也就是设置成功了。
增加可见性。
facaccesssat = fac.GetAccessToObject(sat);
facaccesssat.ComputeAccess();
仰角约束设置就说这么多,大家可以尝试方位角约束。
(4)作用距离约束:eCstrRange
地面站的作用距离一般是有限制的,也可以添加这个设置。
facrange = facConstraints.AddConstraint(‘eCstrRange’);
facrange.get
facrange.EnableMax = 1;
facrange.Max = 1000;%STK二维图中的弧段会明显变化。
(5)视线角约束:eCstrLOSSunExclusion
视线角约束常用场景:避免太阳光进入视场,所以对卫星→目标矢量与卫星→太阳矢量的夹角必须大于某个值。
facsunexclusion = facConstraints.AddConstraint(‘eCstrLOSSunExclusion’);
facsunexclusion.Angle = 20;
通过以上命令就可以完成相应的约束设置了。
去掉约束:
facConstraints.RemoveConstraint(‘eCstrRange’);
facConstraints.RemoveConstraint(‘eCstrElevationAngle’);
facConstraints.RemoveConstraint(‘eCstrLOSSunExclusion’);
%以下命令是获取当前对象的约束条件数量
facConstraints.Count
默认会有LineOfSight约束。
常用的可见性约束也就这几个了,以后有用到的再单独讨论。