一、背景介绍
在本文介绍一个场景,五颗蓝方卫星和一颗红方卫星,在两个小时之内,使用神经网络等人工智能算法,实现一个轨道追踪的问题,其中接口输入是六颗卫星在J2000坐标系下的坐标,接口输出是该六颗卫星沿着自己速度方向施加的脉冲大小。下面开始创建仿真场景。
二、场景搭建
第一步:搭建STK场景,获取施加脉冲机动的时间片段,本文认为该卫星每5分钟进行一次计算,通过预测5分钟后的位置,来计算需要施加的脉冲。所以,根据(12)的方法,可以通过每5分钟更新一次卫星的MCS序列,来实现实时的控制。所以,首先获取时间片段,也就是每次更新的时间节点。代码如下:
%% 创建六颗卫星,五颗蓝方卫星,一颗红方卫星
clear;clc
uiApplication = actxGetRunningServer('STK12.application');
% Get our IAgStkObjectRoot interface
global root
root = uiApplication.Personality2;
checkempty = root.Children.Count;
if checkempty ~= 0
root.CurrentScenario.Unload
root.CloseScenario;
end
%% 根据你的需要设定场景的名称
root.NewScenario('lanjie');
StartTime = '01 Jan 2024 08:00:00.000'; % 场景开始时间
StopTime = '01 Jan 2024 10:00:00.000'; % 场景结束时间
root.ExecuteCommand(['SetAnalysisTimePeriod * "',StartTime,'" "',StopTime,'"']);
root.ExecuteCommand(' Animate * Reset');
Sat_Name='red';
satellite=root.CurrentScenario.Children.New('eSatellite', Sat_Name);
satellite.Propagator;
sma=7078.637;
Ecc=0;
Inc=20;
w=0;
RAAN=0;
TA=0;
satellite.SetPropagatorType('ePropagatorAstrogator');
satellite.Propagator;
root.ExecuteCommand(['Astrogator */Satellite/',Sat_Name,' SetValue MainSequence.SegmentList Initial_State Propagate']);
%% 初始化卫星参数
root.ExecuteCommand(['Astrogator */Satellite/',Sat_Name,' SetValue MainSequence.SegmentList.Initial_State.CoordinateType Modified Keplerian']);
root.ExecuteCommand(['Astrogator */Satellite/',Sat_Name,' SetValue MainSequence.SegmentList.Initial_State.InitialState.Epoch ',StartTime,' UTCG']);
root.ExecuteCommand(['Astrogator */Satellite/',Sat_Name,' SetValue MainSequence.SegmentList.Initial_State.InitialState.Keplerian.ElementType "Osculating"']);
root.ExecuteCommand(['Astrogator */Satellite/',Sat_Name,' SetValue MainSequence.SegmentList.Initial_State.InitialState.Keplerian.sma ',num2str(sma),' km']);
root.ExecuteCommand(['Astrogator */Satellite/',Sat_Name,' SetValue MainSequence.SegmentList.Initial_State.InitialState.Keplerian.ecc ',num2str(Ecc)]);
root.ExecuteCommand(['Astrogator */Satellite/',Sat_Name,' SetValue MainSequence.SegmentList.Initial_State.InitialState.Keplerian.inc ',num2str(Inc),' deg']);
root.ExecuteCommand([

文章描述了一个使用神经网络的场景,五颗蓝方卫星和一颗红方卫星在两小时内通过实时计算,根据J2000坐标系的输入调整轨道。文章详细介绍了如何在STK中搭建仿真场景,包括设置卫星初始参数、获取时间片段、随机轨道参数以及使用预设脉冲策略进行模拟操控。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



