主要内容

任务分析轨道传播算子块

这个例子展示了如何计算和可视化视距访问卫星和地面站之间的时间间隔。它使用:

  • 航空航天Blockset轨道传播算子

  • 航空航天工具箱satelliteScenario对象

  • 映射的工具箱worldmapgeoshow功能

航空航天工具箱satelliteScenario对象允许用户添加卫星和星座场景在两个方面。首先,卫星初始条件可以从两行元素定义文件(.tle)或从开普勒轨道参数和使用开普勒卫星可以传播问题,简化一般扰动alogirithm SGP-4,或简化的深太空SDP-4摄动算法。另外,以前生成的时间戳星历数据可以被添加到一个场景从timeseries或时间表对象。数据内插在场景对象结合场景的时间步骤。第二个选项可用于仿真软件模型生成的数据合并到一个新的或现有的satelliteScenario。金宝app这个例子展示了如何使用数字卫星传播轨迹与航空航天Blockset集成轨道传播算子块,和星历表记录数据加载到一个satelliteScenario分析对象的访问。

定义任务参数和卫星初始条件

指定任务的开始日期和时间。这个示例使用MATLAB结构组织任务数据。这些结构在稍后的示例中访问数据更直观。他们还帮助整理全球基地工作区。

mission.StartDate= datetime(2019, 1, 4, 12, 0, 0); mission.Duration = hours(6);

指定卫星开普勒轨道参数(年代)mission.StartDate

mission.Satellite。SemiMajorAxis = 6786233.13;%米mission.Satellite。离心率= 0.0010537;mission.Satellite。倾向= 51.7519;%度mission.Satellite。RAAN = 95.2562;%度mission.Satellite。ArgOfPeriapsis = 93.4872;%度mission.Satellite。TrueAnomaly = 202.9234;%度

指定一个地面站的纬度和经度在访问下面的分析。

mission.GroundStation。纬度=42;%度mission.GroundStation。经度=-71年;%度

开放和配置轨道传播模型

打开包含仿真软件模型。金宝app这个模型包含一个轨道传播算子块连接到输出端口。的轨道传播算子块支持向量化金宝app。这允许您模型多个卫星在一块通过指定数组的初始条件块的参数窗口或使用set_param。该模型还包括一个“任务分析和可视化”部分,其中包含一个仪表板回调按钮。当点击这个按钮运行模型,创建一个新的satelliteScenario对象在全球基础包含卫星或星座中定义的工作区轨道传播算子块,并打开一个卫星场景查看器窗口的新场景。查看此操作的源代码,双击按钮回调。“任务分析和可视化”部分是一个独立的工作流来创建一个新的satelliteScenario对象并没有使用这个示例的一部分。

的使命。mdl =“OrbitPropagatorBlockExampleModel”;open_system (mission.mdl);snapshotModel (mission.mdl);

定义的路径轨道传播算子块模型。

mission.Satellite。黑色=任务。mdl +“/轨道传播算子”;

设置卫星初始条件。分配的开普勒轨道前一节中定义的元素集,使用set_param

set_param (mission.Satellite.blk“startDate可以”num2str (juliandate (mission.StartDate)),“stateFormatNum”,“轨道要素”,“orbitType”,“开普勒”,“semiMajorAxis”,“mission.Satellite.SemiMajorAxis”,“偏心”,“mission.Satellite.Eccentricity”,“倾向”,“mission.Satellite.Inclination”,“raan”,“mission.Satellite.RAAN”,“argPeriapsis”,“mission.Satellite.ArgOfPeriapsis”,“trueAnomaly”,“mission.Satellite.TrueAnomaly”);

组块的位置和速度输出端口使用地球地球定点,这国际地球参考架(ITRF)。

set_param (mission.Satellite.blk“centralBody”,“地球”,“outportFrame”,“固定框架”);

配置宣传者。这个示例使用数值宣传者更高的位置精度。用数值分布函数模型地球引力势使用万有引力方程(“Pt-mass”),一个二阶带谐函数模型(“扁椭球(J2)”),或一个球面谐波模型(“球函数”)。球面谐波是最准确的,但贸易速度的准确性。为了提高精度,还可以指定是否使用地球定向参数(bgi)内部惯性(ICRF)之间的转换和固定(ITRF)坐标系统。

set_param (mission.Satellite.blk“传播算子”,“数值(高精度)”,“gravityModel”,“球函数”,“earthSH”,“EGM2008”,%地球球面谐波潜在的模型“shDegree”,“120”,%球面谐波模型程度和秩序“useEOPs”,“上”,%使用bgi的ECI ECEF转换“eopFile”,“aeroiersdata.mat”);% bgi的数据文件

应用模型级解算器设置使用set_param。最佳的性能和精度在使用数字传播算子,用变步解算器。

set_param (mission.mdl“SolverType”,“变步”,“SolverName”,“VariableStepAuto”,“RelTol”,“1 e-6”,“AbsTol”,“1 e -”,“StopTime”字符串(秒(mission.Duration)));

保存模型输出端口数据的时间序列数据集对象。

set_param (mission.mdl“SaveOutput”,“上”,“OutputSaveName”,“你”,“SaveFormat”,“数据集”);

运行模型和收集卫星星历表

模拟模型。在这个例子中,轨道传播算子块设置为输出位置和速度州ECEF (ITRF)坐标系。

的使命。SimOutput = sim (mission.mdl);

从模型中提取位置和速度数据输出的数据结构。

mission.Satellite。TimeseriesPosECEF = mission.SimOutput.yout {1} . values;mission.Satellite。TimeseriesVelECEF = mission.SimOutput.yout {2} . values;

设置开始任务timeseries数据对象。

mission.Satellite.TimeseriesPosECEF.TimeInfo。StartDate可以= mission.StartDate;mission.Satellite.TimeseriesVelECEF.TimeInfo。StartDate可以= mission.StartDate;

卫星星历表加载到一个satelliteScenario对象

创建一个卫星场景对象使用在这个例子的分析部分。

场景= satelliteScenario;

添加卫星卫星场景ECEF位置和速度timeseries使用卫星方法。

坐=卫星(场景,mission.Satellite。TimeseriesPosECEF mission.Satellite.TimeseriesVelECEF,“CoordinateFrame”,“ecef”)
坐=卫星和属性:名称:“卫星”ID: 1 ConicalSensors:[]平衡环:[]发射器:[]接收器:[]访问:[]GroundTrack:(1×1 matlabshared.satellitescenario。GroundTrack]轨道:[1×1 matlabshared.satellitescenario。轨道]OrbitPropagator:“历”MarkerColor: [1 0 0] MarkerSize: 10 ShowLabel: 1 LabelFontSize: 15 LabelFontColor: (1 0 0)
disp(场景)
satelliteScenario属性:开始时间:04 -简- 2019 12:00:00 StopTime: 04 -简- 2019 18:00:00 SampleTime: 60观众:[0×0 matlabshared.satellitescenario。查看器)卫星:[1×1 matlabshared.satellitescenario。卫星]GroundStations:[]汽车展:1

预览纬度(度),经度(度),并为每个卫星高度(m)。使用在每个场景中时间步方法查询卫星国。

idx =元素个数(坐):1:1%检索国家地理坐标[llaData, ~, llaTimeStamps] =州(坐(idx),“CoordinateFrame”,“地理”);%组织状态数据为每个卫星分离的时间表mission.Satellite.LLATable {idx}= timetable(llaTimeStamps', llaData(1,:)', llaData(2,:)', llaData(3,:)',“VariableNames”,{“Lat_deg”,“Lon_deg”,“Alt_m”});mission.Satellite.LLATable {idx}结束
ans =361×3的时间表时间Lat_deg Lon_deg Alt_m ____________________ _________ _____ 04 -简- 2019 12:00:00 -44.804 120.35 4.2526 e + 05年04 -简- 2019 12:01:00 -42.797 124.73 4.2229 e + 05年04 -简- 2019 12:02:00 -40.626 128.77 4.2393 e + 05年04 -简- 2019 12:03:00 -38.322 132.53 4.2005 e + 05年04 -简- 2019 12:04:00 -35.848 136.07 4.2004 e + 05年04 -简- 2019 12:05:00 -33.289 139.35 4.203 e + 05年04 -简- 2019 12:06:00 -30.655 142.41 4.187 e + 05年04 -简- 2019 12:07:00 -27.884 145.34 4.1982 e + 05年04 -简- 2019 12:08:00 -25.069 148.09 4.1831 e + 05年04 -简- 2019 12:09:00 -22.234 150.68 4.1404 e + 05年04 -简- 2019 12:10:00 -19.297 153.19 4.1829 e + 05年04 -简- 2019 12:11:00 -16.343 155.58 4.1713 e + 05年04 -简- 2019 12:12:00 -13.388 157.89 4.07 e + 05年04 -简- 2019 12:13:00 -10.354 160.15 4.104 e + 05年04 -简- 2019 12:14:00 -7.3077 162.37 4.1291 e + 05年04 -简- 2019 12:15:00 -4.2622 164.55 4.0487 e + 05⋮
清晰的llaDatallaTimeStamps;

全球3 d显示卫星轨迹

显示卫星轨道在地球(WGS84椭球),使用helper函数plot3DTrajectory

的使命。ColorMap =线(256);%定义colormap卫星轨迹:mission.ColorMap (1:3) = [];plot3DTrajectories(任务。卫星的使命。ColorMap);

显示全球和区域二维地面的痕迹

查看全球地面跟踪2 d投影使用helper函数plot2DTrajectories:

plot2DTrajectories(任务。卫星的使命。GroundStation mission.ColorMap);

视图区域地面跟踪。从下拉菜单中选择感兴趣的区域:

plot2DTrajectories(任务。卫星的使命。GroundStation mission.ColorMap,“美国”);

计算卫星地面站访问(视线可见性)

地面站添加到satelliteScenario对象使用groundStation方法。

gs = groundStation(场景,mission.GroundStation。mission.GroundStation.Longitude纬度,“MinElevationAngle”10“名称”,“地面站”)
gs = GroundStation属性:名称:“地面站”ID: 2纬度:42经度:-71高度:0 MinElevationAngle: 10 ConicalSensors:[]平衡环:[]发射器:[]接收器:访问:[][]MarkerColor: [0 1 1] MarkerSize: 10 ShowLabel: 1 LabelFontSize: 15 LabelFontColor: [0 1 1]

把视线访问分析所有单个卫星与地面站之间使用访问方法。

idx = 1:元素个数(坐)访问(坐(idx), gs);结束ac =[坐(:).Accesses];(ac (:)。LineColor] =交易(“绿色”);

显示访问时间间隔

显示每个卫星作为访问时间间隔时间表。使用accessStatusaccessIntervals卫星的方法与分析结果的访问。

idx =元素个数(ac): 1:1 mission.Satellite。AccessStatus {idx} = AccessStatus (ac (idx));mission.Satellite。AccessTable {idx} = accessIntervals (ac (idx));% addLLAToTimetable添加地理位置和使用本地函数%访问间隔距离最接近的时间表mission.Satellite。AccessTable {idx} = addLLAToTimetable (mission.Satellite。mission.Satellite AccessTable {idx}。LLATable {idx}, mission.GroundStation);结束清晰的idx;

显示访问间隔覆盖2 d地面卫星轨迹的痕迹使用helper函数plotAccessIntervals

plotAccessIntervals(任务。卫星的使命。GroundStation mission.ColorMap);

mission.Satellite.AccessTable {:}
ans =2×8表源目标IntervalNumber开始时间EndTime LLA持续时间(度、度米)ClosestApproach ____________________ (m) ___________ ___________ * * * ____________________ ________ _________________ ___________________“卫星”“地面站”1 04 - 1月- 2019年12:44:00 04 - 360年1月- 2019年12:50:00{6×3双}5.0087 e + 05“卫星”“地面站”2 04 - 1月- 2019年14:21:00 04 - 240年1月- 2019年14:25:00{4×3双}1.102 e + 06

进一步分析

satelliteScenario反对开放和动画中的场景satelliteScenarioViewer窗口。

玩(场景)disp (scenario.Viewers (1))
观众与属性:名称:卫星场景查看器的位置:[560 240 800 600]基础图:“卫星”PlaybackSpeedMultiplier: 50 CameraReferenceFrame:“ECEF”CurrentTime: 04 -简- 2019 12:00:25维度:“3 d”

引用

[1]Wertz James R,大卫·f·埃弗雷特和杰弗瑞j . Puschell。太空任务工程:新Smad。霍桑,CA:缩影出版社,2011年。打印。

另请参阅

|