OE之earth文件序列化(下)

本文深入探讨了OE框架中ConfigOptions类的作用及其在不同图层中的应用,包括MapOptions、ImageLayerOptions、ElevationLayerOptions、ModelLayerOptions、MaskLayerOptions和特殊功能层ext(Config)的详细配置信息。

紧接上文....

为了统筹OE各个层的属性配置,OE提供了ConfigOptions类,ConfigOptions类就是对某个Config类的封装,提供了到Config层次上的调用,例如Config赋值,拼接等

为不同层的属性配置提供了存储载体,结合上文map包含的图层有以下关系


各图层载体


通过这些类,可以很方便的将特定的XML节点下属性配置生成Config归类到某一个图层中,以下列出部分图层的属性(仅供参考)

MapOptions:XML<<options>>节点下配置的信息,主要是配置地形渲染时的属性;包括如下

<elevation_interploation> 插值,
   nearset 最近点插值  average 最近点平均值 bilinear 线性插值,  triangulate 三角面片插值
<elevation_tile_size> 瓦片大小
<elevation_texture_size> 纹理大小
<overlay_wapring> 纹理装载
<overlay_blending>混合
<overlay_minmapping>  纹理映射
<overlay_texture_size>
<overlay_attach_stencil>模板

ImageLayerOptions: XML<<image>>节点下配置的信息,很明显,影像属性配置,部分属性值

<nodata_image> 无数据显示的url
<opacity>    透明度
<min_range> 最小可视范围
<max_range> 最大可视范围
<min_level>  最小显示细节层级
<max_level>  最大显示细节层级
<min_resolution> 数据的最小分辨率,单位的像素
<max_resolution>数据的最大分辨率,单位的像素
<enable> 是否包含进map层
<visible> 可视

ElevationLayerOptions: XML<<elevation>>or<<heightfield>>节点下配置的信息,高程层

<min_level>  最小显示细节层级
<max_level>  最大显示细节层级
<min_resolution> 数据的最小分辨率,单位的像素
<max_resolution>数据的最大分辨率,单位的像素
<enable> 是否包含进map层

ModelLayerOptions: XML<<Model>>节点下配置的信息 模型层装载 矢量数据,模型,几何体等

<name>
<driver>
<enable>是否包含进map层
<visible>是否可见
<overLay>

MaskLayerOptions: XML<<mask>>节点配置下的信息,镂空层


一个比较特殊的节点 ext(Config); 暂且叫他功能层,XML <<external>>,它由mapNode直接读取配置信息,实现一些经常用到的功能点,例如 视点定位 <<<viewpoint>> 星空时刻设置<<sky>>等



%% 与ATk进行连接 %与ATK进行连接,IP地址请输入本机地址,示例中为127.0.0.1。端口号默认为6655 conID = atkOpen('127.0.0.1',6655); %% 场景属性 %新建一个名为 InclinationChange 的场景 atkConnect(conID, 'New', '/ Scenario InclinationChange'); %使用UTCG格式设置场景分析时间段,开始时间为2022-11-05零点,结束时间为2022-11-08零点 atkConnect(conID, 'SetAnalysisTimePeriod', '* "5 Nov 2022 00:00:00.000" "8 Nov 2022 00:00:00.000" '); %新建一个名为 SatInclinationChange 的卫星 atkConnect(conID, 'New', '/ Satellite SatInclinationChange'); %仿真重置 atkConnect(conID, 'Animate', '* Reset'); %% 卫星轨道属性 %设置卫星轨迹线宽为2 atkConnect(conID, 'Graphics', '*/Satellite/SatInclinationChange Basic LineWidth 2'); %设置卫星轨道预报器类型为机动规划;第一级目录默认存在一个初始段,一个预报段 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetProp'); %在第一级目录下添加一个预报段,默认段名为Propagate atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange InsertSegment MainSequence.SegmentList.- Propagate'); %在第一级目录下添加一个瞄准序列段,默认段名为Target_Sequence atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange InsertSegment MainSequence.SegmentList.- Target_Sequence'); %在瞄准序列段内添加一个机动段,默认段名为Maneuver atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange InsertSegment MainSequence.SegmentList.Target_Sequence.SegmentList.- Maneuver'); %在第一级目录下添加一个预报段;由于已经存在一个预报段,所以默认此段段名为Propagate1 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange InsertSegment MainSequence.SegmentList.- Propagate'); %在第一级目录下添加一个瞄准序列段;由于已经存在一个瞄准序列段,所以默认此段段名为Target_Sequence1 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange InsertSegment MainSequence.SegmentList.- Target_Sequence'); %在Target_Sequence1下添加一个机动段,默认段名为Maneuver atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange InsertSegment MainSequence.SegmentList.Target_Sequence1.SegmentList.- Maneuver'); %在第一级目录下添加一个预报段;由于已经存在两个预报段,所以默认此段段名为Propagate2 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange InsertSegment MainSequence.SegmentList.- Propagate'); %在第一级目录下添加一个瞄准序列段;由于已经存在两个瞄准序列段,所以默认此段段名为Target_Sequence2 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange InsertSegment MainSequence.SegmentList.- Target_Sequence'); %在Target_Sequence2下添加一个机动段,默认段名为Maneuver atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange InsertSegment MainSequence.SegmentList.Target_Sequence2.SegmentList.- Maneuver'); %在第一级目录下添加一个预报段;由于已经存在三个预报段,所以此段段名为Propagate3 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange InsertSegment MainSequence.SegmentList.- Propagate'); %设置初始段轨道历元 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Initial_State.InitialState.Epoch 5 Nov 2022 00:00:00.000 UTCG'); %设置初始段坐标类型为轨道根数 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Initial_State.CoordinateType "Modified Keplerian" '); %设置初始段半长轴为6570000米 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Initial_State.InitialState.Keplerian.sma 6570000 m'); %设置初始段偏心率为0 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Initial_State.InitialState.Keplerian.ecc 0'); %设置初始段轨道倾角为28度 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Initial_State.InitialState.Keplerian.inc 28 deg'); %设置初始段升交点赤经为0度 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Initial_State.InitialState.Keplerian.RAAN 0'); %设置初始段近拱点角距为0度 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Initial_State.InitialState.Keplerian.w 0'); %设置初始段真近点角为0度 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Initial_State.InitialState.Keplerian.ta 0'); %设置第一个预报段颜色为红色 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Propagate.SegmentColor 4278190335'); %设置第一个预报段停止条件为Duration atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Propagate.StoppingConditions Duration'); %设置第一个预报段停止条件Duration的触发值为7200秒 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Propagate.StoppingConditions.Duration.TripValue 7200 sec'); %设置第一个预报段停止条件Duration的误差值为0.0001秒 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Propagate.StoppingConditions.Duration.Tolerance 0.0001 sec'); %设置第一个瞄准序列段内的机动段颜色 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Target_Sequence.SegmentList.Maneuver.SegmentColor 4278212095'); %设置第一个瞄准序列段内的机动段在脉冲类型下推力坐标轴为VNC atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Target_Sequence.SegmentList.Maneuver.ImpulsiveMnvr.ThrustAxes "Satellite VNC(Earth)" '); %设置第一个瞄准序列段控制变量为机动段的直角坐标X atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange AddMCSSegmentControl MainSequence.SegmentList.Target_Sequence.SegmentList.Maneuver ImpulsiveMnvr.Cartesian.X'); %第一个瞄准序列段添加属性页 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Target_Sequence.Profiles Differential_Corrector'); %设置第一个瞄准序列段的控制变量-机动段直角坐标X为使用状态 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSControlValue MainSequence.SegmentList.Target_Sequence.Profiles.Differential_Corrector Maneuver ImpulsiveMnvr.Cartesian.X Active true'); %设置第一个瞄准序列段的控制变量-机动段直角坐标X的最大步长为100米每秒 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSControlValue MainSequence.SegmentList.Target_Sequence.Profiles.Differential_Corrector Maneuver ImpulsiveMnvr.Cartesian.X MaxStep 100 m/sec'); %设置第一个瞄准序列段的控制变量-机动段直角坐标X的累计校正量为2456.42862556706米每秒 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSControlValue MainSequence.SegmentList.Target_Sequence.Profiles.Differential_Corrector Maneuver ImpulsiveMnvr.Cartesian.X Correction 2456.42862556706 m/sec'); %设置第一个瞄准序列段的控制变量-机动段直角坐标X的摄动量为0.1米每秒 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSControlValue MainSequence.SegmentList.Target_Sequence.Profiles.Differential_Corrector Maneuver ImpulsiveMnvr.Cartesian.X Perturbation 0.1 m/sec'); %设置第一个瞄准序列段的控制变量-机动段直角坐标X的归一化参数为0.1米每秒 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSControlValue MainSequence.SegmentList.Target_Sequence.Profiles.Differential_Corrector Maneuver ImpulsiveMnvr.Cartesian.X Scale 1 m/sec'); %设置第一个瞄准序列段内的机动段的约束为Radius Of Apoapsis atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Target_Sequence.SegmentList.Maneuver.Results " Radius Of Apoapsis " '); %设置第一个瞄准序列段的机动段约束Radius Of Apoapsis为使用状态 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSConstraintValue MainSequence.SegmentList.Target_Sequence.Profiles.Differential_Corrector Maneuver "Radius Of Apoapsis" Active true'); %设置第一个瞄准序列段的机动段约束Radius Of Apoapsis的收敛误差为0.1米 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSConstraintValue MainSequence.SegmentList.Target_Sequence.Profiles.Differential_Corrector Maneuver "Radius Of Apoapsis" Tolerance 0.1 m'); %设置第一个瞄准序列段的机动段约束Radius Of Apoapsis的归一化参数为1米 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSConstraintValue MainSequence.SegmentList.Target_Sequence.Profiles.Differential_Corrector Maneuver "Radius Of Apoapsis" Scale 1 m'); %设置第一个瞄准序列段的机动段约束Radius Of Apoapsis的权重系数为1 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSConstraintValue MainSequence.SegmentList.Target_Sequence.Profiles.Differential_Corrector Maneuver "Radius Of Apoapsis" Weight 1'); %设置第一个瞄准序列段的机动段约束Radius Of Apoapsis的期望值为42160000米 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSConstraintValue MainSequence.SegmentList.Target_Sequence.Profiles.Differential_Corrector Maneuver "Radius Of Apoapsis" Desired 42160000 m'); %设置第二个预报段的颜色为亮紫色 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Propagate1.SegmentColor 4294902015'); %设置第二个预报段的停止条件为Apoapsis atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Propagate1.StoppingConditions Apoapsis'); %设置第二个预报段停止条件Apoapsis的重复次数为1 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Propagate1.StoppingConditions.Apoapsis.RepeatCount 1'); %设置第二个预报段停止条件Apoapsis的误差值为0.0001 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Propagate1.StoppingConditions.Apoapsis.Tolerance 0.0001'); %设置第二个瞄准序列段的机动段颜色 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Target_Sequence1.SegmentList.Maneuver.SegmentColor -256'); %设置第二个瞄准序列段内的机动段没冲类型下推力坐标轴为VNC atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Target_Sequence1.SegmentList.Maneuver.ImpulsiveMnvr.ThrustAxes "Satellite VNC(Earth)" '); %设置第二个瞄准序列段的控制变量为机动段直角坐标X atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange AddMCSSegmentControl MainSequence.SegmentList.Target_Sequence1.SegmentList.Maneuver ImpulsiveMnvr.Cartesian.X'); %第二个瞄准序列段添加属性页 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Target_Sequence1.Profiles Differential_Corrector'); %设置第二个瞄准序列段的控制变量-机动段直角坐标X为使用状态 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSControlValue MainSequence.SegmentList.Target_Sequence1.Profiles.Differential_Corrector Maneuver ImpulsiveMnvr.Cartesian.X Active true'); %设置第二个瞄准序列段的控制变量-机动段直角坐标X的最大步长为100米每秒 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSControlValue MainSequence.SegmentList.Target_Sequence1.Profiles.Differential_Corrector Maneuver ImpulsiveMnvr.Cartesian.X MaxStep 100 m/sec'); %设置第二个瞄准序列段的控制变量-机动段直角坐标X的累计校正量为1480.06329844802 米每秒 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSControlValue MainSequence.SegmentList.Target_Sequence1.Profiles.Differential_Corrector Maneuver ImpulsiveMnvr.Cartesian.X Correction 1480.06329844802 m/sec'); %设置第二个瞄准序列段的控制变量-机动段直角坐标X的摄动量为0.1米每秒 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSControlValue MainSequence.SegmentList.Target_Sequence1.Profiles.Differential_Corrector Maneuver ImpulsiveMnvr.Cartesian.X Perturbation 0.1 m/sec'); %设置第二个瞄准序列段的控制变量-机动段直角坐标X的归一化参数为1米每秒 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSControlValue MainSequence.SegmentList.Target_Sequence1.Profiles.Differential_Corrector Maneuver ImpulsiveMnvr.Cartesian.X Scale 1 m/sec'); %设置第二个瞄准序列段内的机动段约束为Eccentricity atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Target_Sequence1.SegmentList.Maneuver.Results "Eccentricity" '); %设置第二个瞄准序列段内的机动段约束Eccentricity为使用状态 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSConstraintValue MainSequence.SegmentList.Target_Sequence1.Profiles.Differential_Corrector Maneuver "Eccentricity" Active true'); %设置第二个瞄准序列段内的机动段约束收敛误差为0.001 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSConstraintValue MainSequence.SegmentList.Target_Sequence1.Profiles.Differential_Corrector Maneuver "Eccentricity" Tolerance 0.001'); %设置第二个瞄准序列段内的机动段约束归一化参数为1 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSConstraintValue MainSequence.SegmentList.Target_Sequence1.Profiles.Differential_Corrector Maneuver "Eccentricity" Scale 1'); %设置第二个瞄准序列段内的机动段约束权重系数为1 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSConstraintValue MainSequence.SegmentList.Target_Sequence1.Profiles.Differential_Corrector Maneuver "Eccentricity" Weight 1'); %设置第二个瞄准序列段内的机动段约束期望值为0 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSConstraintValue MainSequence.SegmentList.Target_Sequence1.Profiles.Differential_Corrector Maneuver "Eccentricity" Desired 0'); %设置第三个预报段的颜色为绿色 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Propagate2.SegmentColor 4278255360'); %设置第三个预报段的停止条件为AscendingNode atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Propagate2.StoppingConditions AscendingNode'); %设置第三个预报段的停止条件AscendingNode的重复次数为2 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Propagate2.StoppingConditions.AscendingNode.RepeatCount 2'); %设置第三个预报段的停止条件AscendingNode的误差值为0.000001 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Propagate2.StoppingConditions.AscendingNode.Tolerance 0.000001'); %设置第三个瞄准序列段的机动段颜色 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Target_Sequence2.SegmentList.Maneuver.SegmentColor -65536'); %设置第三个瞄准序列段内的机动段脉冲属性下推力坐标轴为VNC atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Target_Sequence2.SegmentList.Maneuver.ImpulsiveMnvr.ThrustAxes "Satellite VNC(Earth)" '); %设置第三个瞄准序列段的控制变量为机动段的直角坐标X atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange AddMCSSegmentControl MainSequence.SegmentList.Target_Sequence2.SegmentList.Maneuver Impul-siveMnvr.Cartesian.X'); %第三个瞄准序列段添加属性页 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Target_Sequence2.Profiles Differential_Corrector'); %设置第三个瞄准序列段控制变量-机动段直角坐标X为使用状态 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSControlValue MainSequence.SegmentList.Target_Sequence2.Profiles.Differential_Corrector Maneuver ImpulsiveMnvr.Cartesian.X Active true'); %设置第三个瞄准序列段控制变量-机动段直角坐标X的最大步长为100米每秒 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSControlValue MainSequence.SegmentList.Target_Sequence2.Profiles.Differential_Corrector Maneuver ImpulsiveMnvr.Cartesian.X MaxStep 100 m/sec'); %设置第三个瞄准序列段控制变量-机动段直角坐标X的累计校正量为-359.983751789857米每秒 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSControlValue MainSequence.SegmentList.Target_Sequence2.Profiles.Differential_Corrector Maneuver ImpulsiveMnvr.Cartesian.X Correction -359.983751789857 m/sec'); %设置第三个瞄准序列段控制变量-机动段直角坐标X摄动量为0.1米每秒 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSControlValue MainSequence.SegmentList.Target_Sequence2.Profiles.Differential_Corrector Maneuver ImpulsiveMnvr.Cartesian.X Perturbation 0.1 m/sec'); %设置第三个瞄准序列段控制变量-机动段直角坐标X归一化参数为1米每秒 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSControlValue MainSequence.SegmentList.Target_Sequence2.Profiles.Differential_Corrector Maneuver ImpulsiveMnvr.Cartesian.X Scale 1 m/sec'); %设置第三个瞄准序列段的控制变量为机动段直角坐标Y atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange AddMCSSegmentControl MainSequence.SegmentList.Target_Sequence2.SegmentList.Maneuver Impul-siveMnvr.Cartesian.Y'); %设置第三个瞄准序列段控制变量-机动段直角坐标Y为使用状态 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSControlValue MainSequence.SegmentList.Target_Sequence2.Profiles.Differential_Corrector Maneuver ImpulsiveMnvr.Cartesian.Y Active true'); %设置第三个瞄准序列段控制变量-机动段直角坐标Y的最大步长为100米每秒 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSControlValue MainSequence.SegmentList.Target_Sequence2.Profiles.Differential_Corrector Maneuver ImpulsiveMnvr.Cartesian.Y MaxStep 100 m/sec'); %设置第三个瞄准序列段控制变量-机动段直角坐标Y的累计校正量为-1444.72488992759米每秒 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSControlValue MainSequence.SegmentList.Target_Sequence2.Profiles.Differential_Corrector Maneuver ImpulsiveMnvr.Cartesian.Y Correction -1444.72488992759 m/sec'); %设置第三个瞄准序列段控制变量-机动段直角坐标Y的摄动量为0.1米每秒 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSControlValue MainSequence.SegmentList.Target_Sequence2.Profiles.Differential_Corrector Maneuver ImpulsiveMnvr.Cartesian.Y Perturbation 0.1 m/sec'); %设置第三个瞄准序列段控制变量-机动段直角坐标Y的归一化参数为1米每秒 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSControlValue MainSequence.SegmentList.Target_Sequence2.Profiles.Differential_Corrector Maneuver ImpulsiveMnvr.Cartesian.Y Scale 1 m/sec'); %设置第三个瞄准序列段内的机动段约束为Inclination和Eccentricity atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Target_Sequence2.SegmentList.Maneuver.Results "Inclination" "Eccentricity" '); %设置第三个瞄准序列段内机动段约束Inclination为使用状态 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSConstraintValue MainSequence.SegmentList.Target_Sequence2.Profiles.Differential_Corrector Maneuver "In-clination" Active true'); %设置第三个瞄准序列段内机动段约束Inclination的收敛误差为0度 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSConstraintValue MainSequence.SegmentList.Target_Sequence2.Profiles.Differential_Corrector Maneuver "In-clination" Tolerance 0 deg'); %设置第三个瞄准序列段内机动段约束Inclination的归一化参数为1弧度 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSConstraintValue MainSequence.SegmentList.Target_Sequence2.Profiles.Differential_Corrector Maneuver "In-clination" Scale 1 rad'); %设置第三个瞄准序列段内机动段约束Inclination的权重系数为1 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSConstraintValue MainSequence.SegmentList.Target_Sequence2.Profiles.Differential_Corrector Maneuver "In-clination" Weight 1'); %设置第三个瞄准序列段内机动段约束Inclination的期望值为0度 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSConstraintValue MainSequence.SegmentList.Target_Sequence2.Profiles.Differential_Corrector Maneuver "In-clination" Desired 0 deg'); %设置第三个瞄准序列段内机动段约束Eccentricity为使用状态 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSConstraintValue MainSequence.SegmentList.Target_Sequence2.Profiles.Differential_Corrector Maneuver "Eccentricity" Active true'); %设置第三个瞄准序列段内机动段约束Eccentricity的收敛误差为0.001 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSConstraintValue MainSequence.SegmentList.Target_Sequence2.Profiles.Differential_Corrector Maneuver "Eccentricity" Tolerance 0.001'); %设置第三个瞄准序列段内机动段约束Eccentricity的收敛误差为0.001 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSConstraintValue MainSequence.SegmentList.Target_Sequence2.Profiles.Differential_Corrector Maneuver "Eccentricity" Scale 1'); %设置第三个瞄准序列段内机动段约束Eccentricity的权重系数为1 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSConstraintValue MainSequence.SegmentList.Target_Sequence2.Profiles.Differential_Corrector Maneuver "Eccentricity" Weight 1'); %设置第三个瞄准序列段内机动段约束Eccentricity期望值为0 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetMCSConstraintValue MainSequence.SegmentList.Target_Sequence2.Profiles.Differential_Corrector Maneuver "Eccentricity" Desired 0'); %设置第四个预报段的颜色为黄色 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Propagate3.SegmentColor 4278255615'); %设置第四个预报段的停止条件为Duration atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Propagate3.StoppingConditions Duration'); %设置第四个预报段停止条件Duration的触发值为129600秒 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Propagate3.StoppingConditions.Duration.TripValue 129600 sec'); %设置第四个预报段停止条件Duration的误差值为0.00001秒 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange SetValue MainSequence.SegmentList.Propagate3.StoppingConditions.Duration.Tolerance 0.00001 sec'); %运行此算例 atkConnect(conID, 'Astrogator', '*/Satellite/SatInclinationChange RunMCS'); 根据此语句,帮我写多个卫星通过优化蚁群算法和DE算法变轨去捕捉多个空间碎片目标的Matlab程序,尽量详细具体,不要省略步骤
最新发布
07-05
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值