主要内容

利用星历表数据建模卫星星座

本示例演示如何将24颗卫星星座(类似于ESA Galileo GNSS星座)的时间戳星历数据添加到卫星场景中,以进行访问分析。该示例使用Aerospace Blockset生成的数据轨道传播算子块。有关更多信息,请参阅Aerospace Blockset示例星座建模与轨道传播块

satelliteScenario对象支持将先前金宝app生成的带有时间戳的卫星星历数据加载到场景中timeseries时间表对象。星历表是一个包含卫星在给定时间内的位置(或速度)状态信息的表。用于向场景对象添加卫星的星历表数据通过makima插值方法与场景时间步长对齐。这允许您将Simulink模型生成的数据合并到新的或现有的卫星场景中。金宝app

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

指定任务的开始日期和持续时间。本例使用MATLAB结构来组织任务数据。这些结构使得稍后在示例中访问数据更加直观。它们还帮助整理全局基本工作区。

的使命。StartDate = datetime(2020, 11,30,22,23,24);的使命。持续时间=小时(24);

本例中的星座是一个沃克-德尔塔星座,模型类似于欧洲GNSS(全球导航卫星系统)星座伽利略。该星座由24颗中地球轨道卫星组成。在任务开始日期时期,卫星的开普勒轨道元素为:

的使命。星座定义= table(...29599.8e3 * ones(24,1),...%半长轴(m)0.0005 * ones(24,1),...%偏心56 * ones(24,1),...倾角%(度)350 * ones(24,1),...升节赤经%(度)排序(repmat([0 120 240], 1,8))',...围凸角百分比(度)[0:45:315, 15:45:330,30:45:345]',...真异常百分比(度)“VariableNames”, (“(m)”“e”“我(度)”“Ω(度)”“ω”(度)“ν(度)”]);的使命。ConstellationDefinition
ans =24×6表(m) e i(度)Ω(度)ων(度(度) ) ________ ______ _______ _______ _______ _______ 2.96 e + 07年0.0005 56 350 0 0 2.96 0.0005 e + 07年56 350 0 45 2.96 e + 07年0.0005 56 350 0 90 2.96 e + 07年0.0005 56 350 0 135 2.96 e + 07年0.0005 56 350 0 180 2.96 e + 07年0.0005 56 350 0 225 2.96 e + 07年0.0005 56 350 0 0 0.0005 270 2.96 e + 07年56 350 0.0005 315 2.96 e + 07年56 350 0.0005 120 15 2.96 e + 07年56 350 0.0005 120 2.96 e + 60 07年56 350 120 105 2.96 0.0005 e + 07年56 350 120 150 2.96 e + 07 56 350 120 195 0.0005 2.96 0.0005 e + 07年56 350 120 2402.96e+07 0.0005 56 350 120 285 2.96e+07 0.0005 56 350 120 330 \

加载蜉蝣时间序列数据

时间序列对象包含星座中所有24颗卫星的位置和速度数据。这些数据是在国际地面参考系(ITRF)中引用的,这是一个以地球为中心的地球固定坐标系(ECEF)。数据是使用Aerospace Blockset生成的轨道传播算子块。有关更多信息,请参阅Aerospace Blockset示例星座建模与轨道传播块

的使命。星历表=负载(“SatelliteScenarioEphemerisData.mat”“TimeseriesPosITRF”“TimeseriesVelITRF”);mission.Ephemeris.TimeseriesPosITRF
timeseries公共属性:名称:" Time: [57x1 double] TimeInfo: [1x1 tsdata. txt]timemetadata] Data: [24x3x57 double] DataInfo: [1x1 tsdata.]datametadata更多的属性,方法
mission.Ephemeris.TimeseriesVelITRF
timeseries公共属性:名称:" Time: [57x1 double] TimeInfo: [1x1 tsdata. txt]timemetadata] Data: [24x3x57 double] DataInfo: [1x1 tsdata.]datametadata更多的属性,方法

加载卫星星历表到satelliteScenario Object

为分析创建一个附属场景对象。

场景=卫星。StartDate可以,任务。StartDate可以+ hours(24), 60);

使用卫星方法将所有24颗卫星添加到ECEF位置和速度时间序列对象的卫星场景中。这个例子使用了位置和速度信息;然而,卫星也可以仅从位置数据中添加,然后估计速度状态。名称值对的可用坐标帧CoordinateFrame“ECEF”“惯性”,“地理”.如果时间序列对象包含ts的值.TimeInfo.StartDate,该方法使用该值作为时间序列对象的epoch。如果没有StartDate可以定义时,该方法默认使用场景开始日期。

卫星(场景,任务。星历表。时间seriesPosITRF, mission.Ephemeris.TimeseriesVelITRF,...“CoordinateFrame”“ecef”“名称”“伽利略”+(桥)
带有属性的卫星阵列:名称ID ConicalSensors Gimbals transmitter接收机accessgroundtrack Orbit轨道轨道propagator MarkerColor MarkerSize ShowLabel LabelFontColor LabelFontSize
disp(场景)
带有属性的卫星场景:StartTime: 30-Nov-2020 22:23:24 StopTime: 01-Dec-2020 22:23:24 SampleTime: 60 viewer: [0×0 matlabshare .satellite escenario.]查看器]卫星:[1×24 matlabshared.satellite escenario.]卫星]地面站:[1×0 matlabshared.satellitescenario.]地面站]自动展示:1

另外,还可以将卫星作为星历表作为MATLAB添加到卫星场景中时间表表格,或tscollection.例如,时间表包含位置的前3颗卫星timeseries对象的格式,以供使用satelliteScenario对象如下所示。

  • 卫星由变量(列标头)表示。

  • 每行包含一个与该行相关的位置向量时间财产。

时间表(...datetime (getabstime (mission.Ephemeris.TimeseriesPosITRF),“场所”“en_US”),...挤压(mission.Ephemeris.TimeseriesPosITRF.Data(1::))”,...挤压(mission.Ephemeris.TimeseriesPosITRF.Data(2::))”,...挤压(mission.Ephemeris.TimeseriesPosITRF.Data(3::))”,...“VariableNames”, (“Satellite_1”“Satellite_2”“Satellite_3”])
ans =57×3的时间表时间Satellite_1 Satellite_2 Satellite_3  ____________________ ________________________________________ ________________________________________ ________________________________________ 30 - 11月- 07年2020 22:23:24 1.8249 e + e + -2.2904 07年-4.2009 2.3678 e + e + 06 07年-1.075 1.4119 e + e + 07年07年1.5239 7.7076 e + e + 07年06 2.4177 e + 30 - 11月- 2020年07 22:23:38 1.8252 -2.2909 e + e + 07年07年-4.1563 2.3662 e + e + 06 07年-1.0735 1.4156 e + e + 07年07年1.5214 7.7334 e + e + 07年06 2.4184 e + 30 - 11月- 2020年07 22:24:53 1.8268 -2.2937 e + e + 07年07年-3.933 e + e + 07年06 2.3584-1.0663e+07 1.434e+07 -2.3055e+07 -2.8121e+06 2.3222e +07 - 2.3285e +07 - 1.433e +07 1.4466e+07 8.5229e+06 2.4378e+07 30- 11 -2020 22:48:39 1.8326e+07 -2.3223e+07 3.9182e+05 2.2005e+07 -8.9966e+ 07 - 1.7621e+07 1.2798e+07 3.9992e+ 07 2.4539e+07 30- 11 -2020 23:08:30 1.8076e+07 -2.3078e+07 3.9992e+06 2.0643e+07 -7.2057e+06 1.9943e+07 1.1124e+07 1.5358e +07 1.9324e +07 1.9324e +07 1.28317e +07 30- 11 -2020 23:28:27 1.7624e+07 -2.2538e+07 7.5358e+ 07 1.9321e+07 1.9321e+07 1.9323e +07 -5.0678e+062.1838e+07 9.7076e+06 1.5379e+07 2.396e +07 1.797e +07 1.797e +07 2.787e +07 1.6838e+07 8.777e +07 2.4329e+07 7.579e +06 2.0966e+07 1.9489e+07 01- 12 -2020 00:38:42 1.5585e+07 -1.7375e+07 1.8189e+07 1.6017e+07 4.355e+06 2.4512e+07 7.0779e+ 07 1.3551e +07 1.6498e+07 01- 12 -2020 01:04:35 1.5124e+07 -1.4345e+07 1.5585e+07 1.5585e+07 1.5585e+07 1.5585e+07 1.5585e+07 1.5585e+07 1.5585e+07 1.5585e+07 1.5585e+07 1.5585e+07 1.5585e+07 1.5585e+07 1.5585e+07 1.5585e+07 1.5585e+07 1.5585e+07 1.5585e+07 1.5585e+07 1.5585e+07 1.5585e+07 1.5585e+07 8.1065e+06 2.1065e +06 2.383e+07 2.1006e+07 1.5585e+07 8.1065e+06 2.383e+ 06 2.355e +07 2.1006e+07 1.5585e+07 8.1065e+06 2.383e+ 06 2.385e +07 2.1006e+07 1.5585e6.9314e+06 2.5831e+07 2.3096e+07 1.5035e+07 1.22035 e+07 2.7527e+07 2.7527e+07 8.3282e+06 01- 12 -2020 01:58:58 1.5443e+07 -6.8501e+06 2.4303e+07 1.6102e+07 1.9601e+07 7.348e+06 01- 12 -2020 02:27:08 1.6406e+07 2.8484e+07 3.4363e+06 01- 12 -2020 02:55:18 1.7869e+07 1.8197e+07 2.6103e +07 7.6897 e+06 01- 12 -2020 02:55:18 1.7869e+07 1.001e+06 2.3582e+07 1.7894e+07 1.1901e+07 7.4614e+061.9711e+07 4.381e+06 2.1653e+07 1.8787e+07 2.1739e+07 7.1754e+06 6.8858e+06 2.6405e+07 -1.1504e+07 \

在卫星上设置图形属性

带有许多卫星的查看窗口会变得拥挤且难以阅读。要保持窗口可读,请手动控制场景元素的图形属性。

把卫星标签和地面轨道藏起来。

集(坐,“ShowLabel”、假);隐藏([坐(:).GroundTrack]);

设置同一轨道平面上的卫星,使其轨道颜色相同。

集(坐(1:8)“MarkerColor”“红色”);集(坐九16再者(),“MarkerColor”“蓝色”);集(坐(十七24),“MarkerColor”“绿色”);轨道=[卫星(:).轨道];集(轨道(1:8)“LineColor”“红色”);九16再者集(轨道(),“LineColor”“蓝色”);集(轨道(十七24),“LineColor”“绿色”);

在场景中添加地面站

为了提供准确的定位数据,地球上的某个位置必须在任何给定时间与星座中至少4颗卫星相连。在本例中,使用三个位置来比较1天分析窗口内地球不同区域的总星座访问:

  • 美国马萨诸塞州纳蒂克(42.30048°, -71.34908°

  • München,德国(48.23206°, 11.68445°

  • 班加罗尔,印度(12.94448°, 77.69256°

gsUS =地面站(场景,42.30048,-71.34908,...“MinElevationAngle”10“名称”“纳蒂克”);gsDE =地面站(场景,48.23206,11.68445,...“MinElevationAngle”10“名称”“慕尼黑”);gsIN =地面站(场景,12.94448,77.69256,...“MinElevationAngle”10“名称”“班加罗尔”);图geoscatter ([gsUS。纬度gsDE。纬度gsIN。纬度),...[gsUS。经度gsDE。经度gsIN。经度)“红色”“填充”) gelimits ([-75 75], [-180 180])“地面站”

计算地面站到卫星接入(视距能见度)

计算地面站和每个卫星之间的视距访问访问方法。

idx = 1:数字(卫星)访问(gsUS,卫星(idx));访问(gsDE坐(idx));访问(gsIN坐(idx));结束accessUS = [gsUS(:). access];accessDE = [gsDE(:). access];accessIN = [gsIN(:). access];

将访问颜色设置为与前面示例中分配的轨道平面颜色相匹配。

集(accessUS (1:8)“LineColor”“红色”);集(accessUS九16再者(),“LineColor”“蓝色”);集(accessUS(十七24),“LineColor”“绿色”);集(accessDE (1:8)“LineColor”“红色”);集(accessDE九16再者(),“LineColor”“蓝色”);集(accessDE(十七24),“LineColor”“绿色”);集(accessIN (1:8)“LineColor”“红色”);集(accessIN九16再者(),“LineColor”“蓝色”);集(accessIN(十七24),“LineColor”“绿色”);

将每个地面站与星座中所有卫星之间的完整访问表作为表查看。按照间隔开始时间对访问间隔进行排序。从星历表数据添加的卫星不显示值StartOrbit和结束轨道

intervalsUS = accessinterval (accesssus);intervalsUS = sortrows(intervalsUS,“开始时间”“提升”
intervalsUS =40×8表源目标IntervalNumber StartTime EndTime Duration StartOrbit EndOrbit ____________________ ______________ ____________________ ____________________ __________________ ________ "Natick" "GALILEO 1" 1 30- 11 -2020 22:23:24 01- 12 -2020 04:04:24 20460 NaN NaN "Natick" "GALILEO 2" 1 30- 11 -2020 22:23:24 01- 12 -2020 01:24:24 10860 NaN NaN "Natick" "GALILEO 3" 1 30- 11 -2020 22:23:24 30- 11 -2020 22:57:24 2040 NaN NaN "Natick" "GALILEO 12" 1 30- 11 -2020 22:23:24 01-Dec-2020 00:00:24 5820 NaN NaN“纳蒂克”“伽利略13”1 30- 11月-2020 22:23:24 01- 11月-2020 04:00:24 20220南南“纳蒂克”“伽利略19”1 30- 11月-2020 22:23:24 01- 12月-2020 22:42:24 11940南南“纳蒂克”“伽利略20”1 30- 11月-2020 22:23:24 30- 11月-2020 22:46:24 1380南南“纳蒂克”“伽利略11”1 30- 11月-2020 22:25:24 01- 12月-2020 00:18:24 6780南南“纳蒂克”“伽利略17”1 30- 11月-2020 22:50:24 01- 12月-2020 05:50:24 25200南南“纳蒂克”“伽利略8”128140南南“纳蒂克”“伽利略7号”1 01- 12 -2020 01:26:24 01- 12 -2020 10:00:24 30840南南“纳蒂克”“伽利略24号”1 01- 12 -2020 01:40:24 01- 12 -2020 07:15:24 11940南南“纳蒂克”“伽利略6号”1 01- 12 -2020 04:05:24 01- 12 -2020 12:14:24 29340南南“纳蒂克”“伽利略23号”1 01- 12 -2020 04:10:24 01- 12 -2020 08:03:24 13980南南“伽利略24号”
intervalsDE = accessinterval (accessDE);intervalsDE = sortrows(intervalsDE,“开始时间”“提升”
intervalsDE =40×8表源目标IntervalNumber StartTime EndTime Duration StartOrbit EndOrbit _________ ____________ ______________ ____________________ ____________________ __________________ ________ "Munchen" "GALILEO 2" 1 30- 11 -2020 22:23:24 01- 12 -2020 04:34:24 22260 NaN NaN "Munchen" "GALILEO 3" 1 30- 11 -2020 22:23:24 01- 12 -2020 01:58:24 12900 NaN NaN "Munchen" "GALILEO 4" 1 30- 11 -2020 22:23:24 30- 11 -2020 23:05:24 2520 NaN NaN "Munchen" "GALILEO 10" 1 30- 11 -2020 22:23:24 30- 11 -2020 23:58:24 5700 NaN南“慕尼黑”“伽利略19”1 30- 11月-2020 22:23:24 01- 12月-2020 01:36:24 11580南南“慕尼黑”“伽利略20”1 30- 11月-2020 22:23:24 01- 11月-2020 22:28:24 300南南“慕尼黑”“伽利略9”1 30- 11月-2020 22:34:24 01- 12月-2020 02:22:24 13680南南“慕尼黑”“伽利略18”1 30- 11月-2020 22:41:24 01- 12月-2020 02:31:24 13800南南“慕尼黑”“伽利略1”1 30- 11月-2020 23:05:24 01- 12月-2020 06:42:24 27420南南“慕尼黑”“伽利略16号”1 30- 11 -2020 02:36:24 01- 12 -2020 04:47:24 19080南南“慕尼黑”“伽利略15号”1 01- 12 -2020 00:50:24 01- 12 -2020 07:27:24 23820南南“慕尼黑”“伽利略17号”1 01- 12 -2020 01:05:24 01- 12 -2020 08:25:24 6900南南“慕尼黑”“伽利略14号”1 01- 12 -2020 02:36:24 01- 12 -2020 10:19:24 27780南南“慕尼黑”“伽利略7号”1 01- 12 -2020 04:35:24 01- 12 -2020 09:43:24 18480南南“慕尼黑””
intervalsIN = accessinterval (accessIN);intervalsIN = sortrows(intervalsIN,“开始时间”“提升”
intervalsIN =31日×8表源目标IntervalNumber开始时间EndTime时间StartOrbit EndOrbit  ___________ ____________ ______________ ____________________ ____________________ ________ __________ ________ " 班加罗尔”“伽利略3“1 - 2020 22:23:24 01 - 11月30 - 24540年12月- 2020年05:12:24南南”班加罗尔”“伽利略4“1 - 2020 22:23:24 01 - 11月30 - 16560年12月- 2020年02:59:24南南”班加罗尔”“伽利略5“1 - 2020 22:23:24 01 - 11月30 - 7140年12月- 2020年00:22:24南南”班加罗尔”“伽利略9“1 30 - 01 - 12月- 2020年11月- 2020年22:23:24 03:37:2418840 NaN NaN“班加罗尔”“伽利略2号”1 01- 12 -2020 22:23:24 01- 12 -2020 08:44:24 37260 NaN NaN“班加罗尔”“伽利略21号”1 30- 11 -2020 22:23:24 30- 11 -2020 23:25:24 3720 NaN NaN“班加罗尔”“伽利略22号”1 30- 11 -2020 22:23:24 30- 11 -2020 22:58:24 2100 NaN NaN“班加罗尔”“伽利略15号”1 01- 12 -2020 00:17:24 01- 12 -2020 11:16:24 39540 NaN NaN“班加罗尔”“伽利略2号”1 01- 12 -2020 00:25:24 01- 12 -2020 07:10:24 243002 01- 12 -2020 00:48:24 01- 12 -2020 05:50:24 18120南南“班加罗尔”“伽利略21”2 01- 12 -2020 01:32:24 01- 12 -2020 08:29:24 25020南南“班加罗尔”“伽利略1”01- 12 -2020 03:06:24 01- 12 -2020 07:17:24 15060南南“班加罗尔”“伽利略20”1 01- 12 -2020 03:36:24 01- 12 -2020 12:38:24 32520南南“班加罗尔”“伽利略14”1 01- 12 -2020 05:48:24 01- 12 -2020 13:29:24 27660南南“班加罗尔”“伽利略19”1 01- 12 -2020 05:53:24 01- 12 -2020 17:06:24 40380南NaN ⋮

查看卫星场景

打开场景的3-D查看器窗口。查看器窗口包含所有24颗卫星和本例前面定义的三个地面站。在每个地面站和卫星的相应访问间隔之间画一条线。

viewer3D = satellite escenarioviewer(场景);

比较地面站之间的访问

使用accessStatus方法计算每个卫星和地面站之间的访问状态。绘制一天分析窗口内每个地面站的累计访问。

初始化数组,其大小等于场景中的时间步数timeSteps =任务。startdate:seconds(60):任务。startdate +days(1);statusUS = 0(1,数字(timeSteps));statusDE = statusUS;statusIN = statusUS;每个时间步的累计访问总数idx = 1:24 statusUS = statusUS + accessStatus(accessUS(idx));statusDE = statusDE + accessStatus(accessDE(idx));statusIN = statusIN + accessStatus(accessIN(idx));结束清晰的idx;次要情节(1,1);情节(步伐,statusUS);标题(“纳蒂克致伽利略”) ylabel (“卫星数量”)次要情节(3、1、2);情节(步伐,statusDE);标题(“München致伽利略”) ylabel (“卫星数量”)次要情节(3、1,3);情节(步伐,statusIN);标题(“从班加罗尔到伽利略”) ylabel (“卫星数量”

收集每个地面站的访问间隔指标,以便进行比较。

statusTable = [table(height(intervalsUS), height(intervalsDE), height(intervalsIN));...table(sum(intervalsDE.Duration)/3600, sum(intervalsDE.Duration)/3600, sum(intervalsIN.Duration)/3600);...table(mean(intervalsDE.Duration/60), mean(intervalsDE.Duration/60), mean(intervalsIN.Duration/60));...table(mean(statusUS, 2), mean(statusDE, 2), mean(statusIN, 2));...table(min(statusUS), min(statusDE), min(statusIN));...table(max(statusUS), max(statusDE), max(statusIN))];statusTable.Properties.VariableNames = [“纳蒂克”“慕尼黑”“班加罗尔”];statusTable.Properties.RowNames = [“总间隔数”总间隔时间(小时)...平均间隔长度(min)“观测卫星的平均数量”...“最小卫星数目”“最大卫星数目”];statusTable
statusTable =6×3表Natick München Bangalore ______ _______ _________总间隔次数40 40 31总间隔时间(hrs) 167.88 169.95 180.42平均间隔长度(min) 251.82 254.93 349.19视图中卫星的平均值7.018 7.1041 7.5337视图中卫星的min次数5 5 5视图中卫星的Max次数9 10 9

像伽利略这样的沃克-德尔塔星座均匀分布在经度上。Natick和München位于相似的纬度,因此在星座方面具有非常相似的访问特征。班加罗尔的纬度更接近赤道。尽管有较低数量的单个访问间隔,它有最高的平均卫星数量,最高的总体间隔时间和最长的平均间隔持续时间(约95分钟)。所有位置始终至少有4颗卫星,这是GNSS三边测量的要求。

参考文献

[1]韦茨、詹姆斯·R、大卫·f·埃弗雷特和杰弗里·j·普切尔。太空任务工程:新Smad.加州霍桑:微观世界出版社,2011年。打印。

[2]欧洲航天局:伽利略事实和数据。https://www.esa.int/Applications/Navigation/Galileo/Facts_and_figures