轨道分布的比较
这个例子中预测的轨道Two-Body-Keplerian相比,简化了一般Perturbations-4 (SGP4)和简化的深空Perturbations-4 (SDP4)轨道繁殖专家。轨道传播算子是一种解算器,计算出物体的位置和速度的运动主要是受从天体引力的影响。Two-Body-Keplerian轨道传播算子是基于相对双体模型假定一个球形地球重力场和忽视第三身体和其他环境扰动影响,因此是最准确的。SGP4轨道传播算子占世俗和周期轨道的扰动引起的地球的几何和大气阻力,和适用于近地卫星的轨道周期小于225分钟。SDP4轨道传播算子构建在SGP4占太阳和月球的引力,和适用于卫星的轨道周期大于或等于225分钟。的默认轨道传播算子satelliteScenario
是SGP4卫星的轨道周期小于225分钟,和SDP4否则。
创建一个卫星场景
创建一个通过使用卫星场景satelliteScenario
函数。设置开始时间为2020年5月- 11 - 12:35:38 UTC,下午和停止时间下午13 - 2020年5月——12:35:38 UTC,通过使用datetime
函数。样品时间为60秒。
开始时间= datetime(35 2020、5、11、12日,38);stopTime =开始时间+天(2);sampleTime = 60;sc = satelliteScenario(开始时间、stopTime sampleTime)
sc = satelliteScenario属性:开始时间:11 - 2020年5月——12:35:38 StopTime: 13 - 2020年5月——12:35:38 SampleTime: 60 AutoSimulate: matlabshared.satellitescenario[1×1卫星:0。卫星]GroundStations:(1×0 matlabshared.satellitescenario。matlabshared.satellitescenario GroundStation]观众:[0×0。查看器]汽车展:1
添加卫星卫星场景
添加三个卫星的卫星场景两行元素(框架)文件eccentricOrbitSatellite.tle
通过使用卫星
函数。框架是一种数据格式用于编码地球轨道的轨道要素对象定义在一个特定时间。分配一个Two-Body-Keplerian第一颗人造卫星轨道传播算子,SGP4第二个卫星,SDP4第三卫星。
tleFile =“eccentricOrbitSatellite.tle”;tleFile satTwoBodyKeplerian =卫星(sc,…“名称”,“satTwoBodyKeplerian”,…“OrbitPropagator”,“two-body-keplerian”)
satTwoBodyKeplerian =卫星与属性:名称:satTwoBodyKeplerian ID: 1 ConicalSensors: [1 x0 matlabshared.satellitescenario。ConicalSensor]平衡环:[1 x0 matlabshared.satellitescenario。常平架发射机:[1 x0 satcom.satellitescenario。发射机接收机:[1 x0 satcom.satellitescenario。接收机]访问:[1 x0 matlabshared.satellitescenario。访问]GroundTrack: [1 x1 matlabshared.satellitescenario。GroundTrack]轨道:[1 x1 matlabshared.satellitescenario。轨道]OrbitPropagator: two-body-keplerian MarkerColor:(0.059 - 1 1] MarkerSize: 6 ShowLabel:真正的LabelFontColor: [1 1 1] LabelFontSize: 15
tleFile satSGP4 =卫星(sc,…“名称”,“satSGP4”,…“OrbitPropagator”,“sgp4”)
satSGP4 =卫星与属性:名称:satSGP4 ID: 2 ConicalSensors: [1 x0 matlabshared.satellitescenario。ConicalSensor]平衡环:[1 x0 matlabshared.satellitescenario。常平架发射机:[1 x0 satcom.satellitescenario。发射机接收机:[1 x0 satcom.satellitescenario。接收机]访问:[1 x0 matlabshared.satellitescenario。访问]GroundTrack: [1 x1 matlabshared.satellitescenario。GroundTrack]轨道:[1 x1 matlabshared.satellitescenario。轨道]OrbitPropagator: sgp4 MarkerColor:(0.059 - 1 1] MarkerSize: 6 ShowLabel:真正的LabelFontColor: [1 1 1] LabelFontSize: 15
tleFile satSDP4 =卫星(sc,…“名称”,“satSDP4”,…“OrbitPropagator”,“sdp4”)
satSDP4 =卫星与属性:名称:satSDP4 ID: 3 ConicalSensors: [1 x0 matlabshared.satellitescenario。ConicalSensor]平衡环:[1 x0 matlabshared.satellitescenario。常平架发射机:[1 x0 satcom.satellitescenario。发射机接收机:[1 x0 satcom.satellitescenario。接收机]访问:[1 x0 matlabshared.satellitescenario。访问]GroundTrack: [1 x1 matlabshared.satellitescenario。GroundTrack]轨道:[1 x1 matlabshared.satellitescenario。轨道]OrbitPropagator: sdp4 MarkerColor:(0.059 - 1 1] MarkerSize: 6 ShowLabel:真正的LabelFontColor: [1 1 1] LabelFontSize: 15
可视化卫星和轨道
卫星发射卫星场景查看器和可视化场景中使用satelliteScenarioViewer
函数。设置的可视化satTwoBodyKeplerian
红色,satSGP4
绿色,satSDP4
洋红色。
v = satelliteScenarioViewer (sc);satSGP4。MarkerColor = (0 0 1);satSGP4.Orbit。LineColor = (0 0 1);satSGP4。LabelFontColor = (0 0 1);satSDP4。MarkerColor = (1 0 1);satSDP4.Orbit。LineColor = [1 0 1]; satSDP4.LabelFontColor = [1 0 1];
相机关注satTwoBodyKeplerian
通过使用camtarget
函数。
camtarget (v, satTwoBodyKeplerian);
左击卫星场景内的任何地方查看器窗口,移动鼠标点击平移相机。调整缩放级别使用滚轮的所有三个卫星进入视图。
可视化动态卫星运动的动画
通过使用可视化的运动的卫星玩
函数在卫星场景。的玩
从指定的函数模拟卫星场景开始时间
来StopTime
使用指定的步长SampleTime
卫星场景,扮演结果查看器。
玩(sc)
使用播放控制位于底部的卫星场景查看器窗口控制播放速度和方向。镜头再次关注satTwoBodyKeplerian
通过使用camtarget
功能,将所有三个卫星视图通过调整缩放级别。
camtarget (v, satTwoBodyKeplerian);
三个卫星的位置偏离。
获得的卫星位置和速度的历史
返回的卫星位置和速度的历史地心天球参考系(GCRF)使用州
函数。
(positionTwoBodyKeplerian、velocityTwoBodyKeplerian、时间)=州(satTwoBodyKeplerian);[positionSGP4, velocitySGP4] =州(satSGP4);[positionSDP4, velocitySDP4] =州(satSDP4);
情节的大小相对位置对Two-Body-Keplerian预测
计算的相对位置的大小satSGP4
和satSDP4
关于satTwoBodyKeplerian
通过使用vecnorm
函数。
sgp4RelativePosition = vecnorm (positionSGP4——positionTwoBodyKeplerian 2 1);sdp4RelativePosition = vecnorm (positionSDP4——positionTwoBodyKeplerian 2 1);
情节的大小在公里的相对位置satSGP4
和satSDP4
与尊重的satTwoBodyKeplerian
通过使用情节
函数。
sgp4RelativePositionKm = sgp4RelativePosition / 1000;sdp4RelativePositionKm = sdp4RelativePosition / 1000;情节(时间、sgp4RelativePositionKm时间,sdp4RelativePositionKm)包含(“时间”)ylabel (“相对位置(公里)”)传说(“SGP4”,“SDP4”)
的初始相对位置satSGP4
非零的吗satSDP4
是零,因为初始的位置satTwoBodyKeplerian
和satSDP4
计算从框架文件使用SDP4轨道传播算子,虽然最初的位置吗satSGP4
使用SGP4轨道传播算子计算。随着时间的推移,的位置satSDP4
偏离的satTwoBodyKeplerian
因为随后的位置前使用SDP4轨道传播算子计算,而后者使用Two-Body-Keplerian轨道传播算子计算。SDP4轨道宣传者提供更高的精确度,因为不同于Two-Body-Keplerian轨道传播算子,它占据了地球扁率、大气阻力、重力从太阳和月亮。
情节相对速度的大小对Two-Body-Keplerian预测
计算的相对速度的大小satSGP4
和satSDP4
关于satTwoBodyKeplerian
通过使用vecnorm
函数。
sgp4RelativeVelocity = vecnorm (velocitySGP4——velocityTwoBodyKeplerian 2 1);sdp4RelativeVelocity = vecnorm (velocitySDP4——velocityTwoBodyKeplerian 2 1);
情节的大小相对米每秒的速度satSGP4
和satSDP4
关于satTwoBodyKeplerian
通过使用情节
函数。
情节(时间、sgp4RelativeVelocity时间,sdp4RelativeVelocity)包含(“时间”)ylabel (“速度偏差(m / s)”)传说(“SGP4”,“SDP4”)
的初始相对速度satSDP4
是零,因为就像初始位置、初始速度的satTwoBodyKeplerian
和satSDP4
也使用SDP4轨道传播算子计算框架的文件。随着时间的推移,的速度satSDP4
偏离的satTwoBodyKeplerian
因为在其他时间的速度satTwoBodyKeplerian
计算使用Two-Body-Keplerian轨道传播算子,相比低精度的SDP4轨道传播算子,用于计算的速度satSDP4
。峰值对应于近拱点(最接近的点从地球质心轨道),速度的大小明显错误的地方。
结论
情节的偏差的结果不同程度的准确性的三个轨道繁殖专家。Two-Body-Keplerian轨道传播算子是最准确的,因为它假定地球重力场是球形,也忽视了其他所有的轨道的扰动源。SGP4轨道传播算子是更精确,因为它占了地球扁率和大气阻力。SDP4轨道传播算子是三者中最准确的,因为它也占太阳和月球的引力,这是更加明显在这个例子中,因为轨道周期大于225分钟,因此卫星离地球更远。