书接上文,继续探索加约束条件的可见性分析问题。上代码,还是想让大家能自己写一下:
uiap = actxserver(‘STK11.application’);
root = uiap.Personality2;
root.NewScenario(‘access’);
sc = root.CurrentScenario;
sat = sc.Children.New(18,‘mysat’);
sat.Propagator.Propagate;
fac = sc.Children.New(‘eFacility’,‘myfac’);
ac = sat.GetAccessToObject(fac);
ac.ComputeAccess();
accessConstraints = sat.AccessConstraints;
%查看可支持的约束类别
accessConstraints.AvailableConstraints()
约束类别还是很多的,大家可以查看一下。
(2)光照条件约束:
light = accessConstraints.AddConstraint(‘eCstrLighting’);
light.Condition = ‘eDirectSun’;
执行以上语句,效果如下:将约束改为地影
light.Condition = ‘eUmbra’;
效果如下图:
再改为光照约束,可见弧段恢复。
light.Condition = ‘eDirectSun’;
移除光照约束
accessConstraints.RemoveConstraint(‘eCstrLighting’)
这里尝试一下将约束加在不同对象的效果:
获取地面站约束控制句柄
facConstraints = fac.AccessConstraints;
faclight = facConstraints.AddConstraint(‘eCstrLighting’);
faclight.Condition = ‘eDirectSun’;
执行上述语句,则有以下效果:
facConstraints.RemoveConstraint(‘eCstrLighting’)
执行上述语句,可见弧段恢复。
因此,在分析可见性问题时,要明确控制那个对象。