主要内容

轨道传播器的比较

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

创建卫星场景

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

开始时间= datetime(35 2020、5、11、12日,38);stopTime = startTime + days(2);sampleTime = 60;sc = satelliteScenario(开始时间、stopTime sampleTime)
sc =卫星场景与属性:StartTime: 11-May-2020 12:35:38 StopTime: 13-May-2020 12:35:38 SampleTime: 60观众:[0×0 matlabshared.卫星场景。卫星:[]地面站:[

将卫星添加到卫星场景

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

tleFile =“eccentricOrbitSatellite.tle”;tleFile satTwoBodyKeplerian =卫星(sc,...“名称”“satTwoBodyKeplerian”...“OrbitPropagator”“two-body-keplerian”
satTwoBodyKeplerian =卫星属性:名称:"satTwoBodyKeplerian" ID: 1圆锥传感器:[]Gimbals:[]发射器:[]接收器:[]访问:[]GroundTrack: [1×1 matlabshared.卫星场景。轨道:[1×1 matlabshared.satellitescenario.]轨道传播器:"two-body-kepler " markcolor: [1 0 0] marksize: 10 ShowLabel: 1 LabelFontColor: [1 0 0] LabelFontSize: 15
tleFile satSGP4 =卫星(sc,...“名称”“satSGP4”...“OrbitPropagator”“sgp4”
satSGP4 =卫星属性:名称:"satSGP4" ID: 2 ConicalSensors: [] Gimbals: [] transmitter: [] Receivers: [] access: [] GroundTrack: [1×1 matlabshared.卫星场景。轨道:[1×1 matlabshared.satellitescenario.]轨道传播器:"sgp4" markcolor: [1 0 0] marksize: 10 ShowLabel: 1 LabelFontColor: [1 0 0] LabelFontSize: 15
tleFile satSDP4 =卫星(sc,...“名称”“satSDP4”...“OrbitPropagator”“sdp4”
satSDP4 =卫星属性:名称:"satSDP4" ID: 3 ConicalSensors: [] Gimbals: [] transmitter: [] Receivers: [] access: [] GroundTrack: [1×1 matlabshared.卫星场景。轨道:[1×1 matlabshared.satellitescenario.]轨道传播器:"sdp4" markcolor: [1 0 0] marksize: 10 ShowLabel: 1 LabelFontColor: [1 0 0] LabelFontSize: 15

可视化卫星和它们的轨道

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

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

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

相对速度在双体开普勒预测中的标量

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

sgp4RelativeVelocity = vecnorm(velocityysgp4 - velocitytwobodykepler,2,1);sdp4RelativeVelocity = vecnorm(velocitySDP4 - velocitytwobodykepler,2,1);

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

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

的初始相对速度satSDP4是零,因为就像初始位置,初始速度satTwoBodyKepleriansatSDP4利用SDP4轨道传播器计算TLE文件。随着时间的推移,速度satSDP4偏离的satTwoBodyKeplerian因为在其他时间,速度satTwoBodyKeplerian采用双体开普勒轨道传播器进行计算,与用于计算速度的SDP4轨道传播器相比精度较低satSDP4.这些尖峰对应于近尖点(轨道上离地球质心最近的点),在那里速度误差的幅度是明显的。

结论

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

另请参阅

对象

功能

相关的例子

更多关于