SGP4 does not match the sample test case in the Spacetrack Report #3

3 views (last 30 days)
I'm testing if I'm using the orbit propagator correctly by trying to recreate the sample data given from the spacetrack report #3. The sample data provides a TLE and the results for orbit position and velocity for certain times since the TLE epoch. The results look similar, but there is still a significant error. E.g. X at time 0 deviates by roughly 23km, which is extreme. I have plotted the orbital position for a comparison and it seems that there's a consistent offset. Here is the TLE-file I use for MATLAB:
Satellite 1
1 88888U 80275.98708465 .00073094 13844-3 66816-4 0 8
2 88888 72.8435 115.9689 0086731 052.6988 110.5714 16.05824518 105
And here is my code, along with the reference data that I'm trying to match.
startUnix = 339291684; %1980-10-1 23:41:24
startTime = datetime(startUnix,'ConvertFrom','epochtime','Epoch','1970-01-01','TicksPerSecond',1,'Format','dd-MMM-yyyy HH:mm:ss');
stopTime = startTime + minutes(1440);
sampleTime = 360*60;
sc = satelliteScenario(startTime,stopTime,sampleTime);
tleFile = "test.tle";
satSGP4 = satellite(sc,tleFile, ...
"Name","satSGP4", ...
"OrbitPropagator","sgp4");
[positionSGP4,velocitySGP4] = states(satSGP4);
validPos = [2328.97048951 -5995.22076416 1719.97067261;
2456.10705566 -6071.93853760 1222.89727783;
2567.56195068 -6112.50384522 713.96397400;
2663.09078980 -6115.48229980 196.39640427;
2742.55133057 -6079.67144775 -326.38095856];
figure()
plot3(validPos(:,1),validPos(:,2),validPos(:,3),'o-');
hold on
axis equal
plot3(positionSGP4(1,:)/1e3,positionSGP4(2,:)/1e3,positionSGP4(3,:)/1e3,'o-');
xlabel('x [km]');
ylabel('y [km]');
zlabel('z [km]');
legend('Report', 'Matlab');
% From Spacetrack Report
% 1 88888U 80275.98708465 .00073094 13844-3 66816-4 0 8
% 2 88888 72.8435 115.9689 0086731 52.6988 110.5714 16.05824518 105
%
% SGP4 TSINCE X Y Z
% 0. 2328.97048951 -5995.22076416 1719.97067261
% 360.00000000 2456.10705566 -6071.93853760 1222.89727783
% 720.00000000 2567.56195068 -6112.50384522 713.96397400
% 1080.00000000 2663.09078980 -6115.48229980 196.39640427
% 1440.00000000 2742.55133057 -6079.67144775 -326.38095856
% XDOT YDOT ZDOT
% 2.91207230 -0.98341546 -7.09081703
% 2.67938992 -0.44829041 -7.22879231
% 2.44024599 0.09810869 -7.31995916
% 2.19611958 0.65241995 -7.36282432
% 1.94850229 1.21106251 -7.35619372
I have double-checked the TLE and the start unix time and I believe they are correct. I wonder if this could be an error in the implemented model, or if there's an error in my code that I don't see. Thank you in advance for taking a look!

Answers (0)

Categories

Find more on Reference Applications in Help Center and File Exchange

Tags

Products


Release

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!