主要内容

轨道传播器的比较

这个例子比较了由双体开普勒系统、简化一般摄动-4 (SGP4)和简化深空摄动-4 (SDP4)轨道传播器预测的轨道。轨道传播器是计算一个物体的位置和速度的求解器,该物体的运动主要受来自天体的引力的影响。二体开普勒轨道传播器基于相对二体模型,该模型假设地球为球形重力场,忽略了第三体效应和其他环境扰动,因此是最不准确的。SGP4轨道传播器考虑了地球几何形状和大气阻力引起的长期和周期性轨道扰动,适用于轨道周期小于225分钟的近地卫星。SDP4轨道传播器在SGP4的基础上,通过考虑太阳和月球引力,适用于轨道周期大于或等于225分钟的卫星。的默认轨道传播器satelliteScenario为SGP4,表示轨道周期小于225分钟的卫星,否则为SDP4。

创建卫星场景

创建一个卫星场景使用satelliteScenario函数。将开始时间设置为11-May-2020 12:35:38 PM UTC,停止时间设置为13-May-2020 12:35:38 PM UTC,使用datetime函数。设置采样时间为60秒。

开始时间= datetime(35 2020、5、11、12日,38);stopTime = startTime + days(2);sampleTime = 60;sc = satelliteScenario(开始时间、stopTime sampleTime)
sc = satitescenario带有属性:StartTime: 11-May-2020 12:35:38 StopTime: 13-May-2020 12:35:38 SampleTime: 60 AutoSimulate: 1 satellite: [1×0 matlabshared. satitescenario .]卫星]地面站:[1×0 matlabshared. satitescenario .]地面站]观众:[0×0 matlabshared.satellite itescenario.]查看器]汽车展:1

在卫星场景中添加卫星

在两行元素(TLE)文件的卫星场景中添加三颗卫星eccentricOrbitSatellite.tle通过使用卫星函数。TLE是一种数据格式,用于编码在特定时间定义的绕地球运行的物体的轨道元素。将双体开普勒轨道传播器分配给第一颗卫星,SGP4分配给第二颗卫星,SDP4分配给第三颗卫星。

tleFile =“eccentricOrbitSatellite.tle”;tleFile satTwoBodyKeplerian =卫星(sc,“名称”,“satTwoBodyKeplerian”,“OrbitPropagator”,“two-body-keplerian”)
satTwoBodyKeplerian = Satellite,其属性为:名称:satTwoBodyKeplerian ID: 1 ConicalSensors: [1x0 matlabshare . Satellite itescenario.]ConicalSensor] Gimbals: [1x0 matlabshared. satitescenario . matlabshared. satitescenario . matlabshared. matlabshared. satitescenario .]万向台]发射机:[1x0 satcom.satellite itescenario.]发射机]接收机:[1x0 satcom.satellite itescenario.]接收端]访问:[1x0 matlabshared.satellite itescenario.]访问]GroundTrack: [1x1 matlabshare .satellite escenario.]GroundTrack]轨道:[1x1 matlabshare .satellite itescenario.]轨道]orbitpropagation: two-body-keplerian MarkerColor: [0.059 1 1] MarkerSize: 6 ShowLabel: true LabelFontColor: [1 1 1] LabelFontSize: 15
tleFile satSGP4 =卫星(sc,“名称”,“satSGP4”,“OrbitPropagator”,“sgp4”)
satSGP4 =具有属性的卫星:名称:satSGP4 ID: 2 ConicalSensors: [1x0 matlabshared. satitescenario .]ConicalSensor] Gimbals: [1x0 matlabshared. satitescenario . matlabshared. satitescenario . matlabshared. matlabshared. satitescenario .]万向台]发射机:[1x0 satcom.satellite itescenario.]发射机]接收机:[1x0 satcom.satellite itescenario.]接收端]访问:[1x0 matlabshared.satellite itescenario.]访问]GroundTrack: [1x1 matlabshare .satellite escenario.]GroundTrack]轨道:[1x1 matlabshare .satellite itescenario.]轨道]轨道传播者:sgp4 MarkerColor: [0.059 1 1] MarkerSize: 6 ShowLabel: true LabelFontColor: [1 1 1] LabelFontSize: 15
tleFile satSDP4 =卫星(sc,“名称”,“satSDP4”,“OrbitPropagator”,“sdp4”)
satSDP4 =带有属性的卫星:Name: satSDP4 ID: 3 ConicalSensors: [1x0 matlabshare . Satellite escenario.]ConicalSensor] Gimbals: [1x0 matlabshared. satitescenario . matlabshared. satitescenario . matlabshared. matlabshared. satitescenario .]万向台]发射机:[1x0 satcom.satellite itescenario.]发射机]接收机:[1x0 satcom.satellite itescenario.]接收端]访问:[1x0 matlabshared.satellite itescenario.]访问]GroundTrack: [1x1 matlabshare .satellite escenario.]GroundTrack]轨道:[1x1 matlabshare .satellite itescenario.]Orbit] Orbit: sdp4 MarkerColor: [0.059 1 1] MarkerSize: 6 ShowLabel: true LabelFontColor: [1 1 1] LabelFontSize: 15

想象卫星和它们的轨道

启动卫星场景查看器,并通过使用satelliteScenarioViewer函数。的可视化设置satTwoBodyKeplerian红色,satSGP4绿色,satSDP4洋红色。

v = satelliteScenarioViewer (sc);satSGP4。MarkerColor = [0 1 0];satSGP4.Orbit。LineColor = [0 1 0];satSGP4。LabelFontColor = [0 1 0];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);

相对于二体开普勒预测的相对位置的图量级

的相对位置计算大小satSGP4satSDP4关于satTwoBodyKeplerian通过使用vecnorm函数。

sgp4RelativePosition = vecnorm(positionSGP4 - positionTwoBodyKeplerian,2,1);sdp4RelativePosition = vecnorm(positionSDP4 - positionTwoBodyKeplerian,2,1);

以公里为单位绘制相对位置的大小satSGP4satSDP4关于的satTwoBodyKeplerian通过使用情节函数。

sgp4RelativePositionKm = sgp4RelativePosition / 1000;sdp4RelativePositionKm = sdp4RelativePosition / 1000;情节(时间、sgp4RelativePositionKm时间,sdp4RelativePositionKm)包含(“时间”) ylabel (“相对位置(公里)”)传说(“SGP4”,“SDP4”)

Figure包含一个axes对象。坐标轴对象包含两个类型为line的对象。这些对象表示SGP4、SDP4。

最初的相对位置satSGP4是非零和的satSDP4零是因为初始位置的吗satTwoBodyKepleriansatSDP4使用SDP4轨道传播器从TLE文件中计算,而初始位置satSGP4使用SGP4轨道传播器计算。随着时间的推移,的位置satSDP4的偏离satTwoBodyKeplerian因为前者的后续位置是用SDP4轨道传播器计算的,而后者的后续位置是用双体开普勒轨道传播器计算的。SDP4轨道传播器提供了更高的精度,因为与双体开普勒轨道传播器不同,它考虑了地球的扁率、大气阻力以及来自太阳和月球的引力。

相对速度相对于二体开普勒预测的Plot幅值

的相对速度的大小计算satSGP4satSDP4关于satTwoBodyKeplerian通过使用vecnorm函数。

sgp4RelativeVelocity = vecnorm(velocitySGP4 - velocityTwoBodyKeplerian,2,1);sdp4RelativeVelocity = vecnorm(velocitySDP4 - velocityTwoBodyKeplerian,2,1);

的相对速度的大小,单位为米/秒satSGP4satSDP4关于satTwoBodyKeplerian通过使用情节函数。

情节(时间、sgp4RelativeVelocity时间,sdp4RelativeVelocity)包含(“时间”) ylabel (“速度偏差(m / s)”)传说(“SGP4”,“SDP4”)

Figure包含一个axes对象。坐标轴对象包含两个类型为line的对象。这些对象表示SGP4、SDP4。

的初始相对速度satSDP40是因为就像初始位置一样,初始速度satTwoBodyKepleriansatSDP4也是使用SDP4轨道传播器从TLE文件中计算出来的。随着时间的推移,的速度satSDP4的偏离satTwoBodyKeplerian因为在其他任何时候,速度satTwoBodyKeplerian是使用双体开普勒轨道传播器计算的,与用于计算速度的SDP4轨道传播器相比,它的精度较低satSDP4。尖峰对应的是周尖点(轨道上距离地球质心最近的点),在这里速度误差的大小是明显的。

结论

图中的偏差是由于三个轨道传播器的精度水平不同造成的。双体开普勒轨道传播器是最不准确的,因为它假设地球的重力场是球形的,也忽略了所有其他轨道扰动源。SGP4轨道传播器更为精确,因为它考虑了地球的扁率和大气阻力。SDP4轨道传播器是三种中最精确的,因为它还考虑了太阳和月球引力,在这个例子中更加明显,因为轨道周期大于225分钟,从而使卫星离地球更远。

另请参阅

对象

功能

相关的例子

更多关于

Baidu
map