View
231
Download
1
Category
Preview:
Citation preview
AGI www.centerforspace.com
Revisiting Spacetrack Report #3David A. Vallado, Paul Crawford, Richard Hujsak, and T. S. Kelso
Analytical Graphics Inc.
Center for Space Standards and Innovation
Paper Presented at the AIAA Astrodynamics Specialist Conference, Keystone, Colorado, 21-24 August 2006
Pg 2 of 30AGI www.centerforspace.com
Outline
• Introduction– Program History– Program Description
• Computer Code Development– STR#3 to GSFC– GSFC to revised
• Test Cases– Verification– Expected Code Updates– Suggested Technical Changes
• Comparison Analyses– Complete Catalog tests
• Availability
• Conclusions
Pg 3 of 30AGI www.centerforspace.com
History
• Theoretical basis– Brouwer / Kozai theory (1959)
• Development of SGP4 specific theory– 1960s
• Mathematical technique origination– Kozai– Brouwer– Lyddane– Other
– 1970s• Development / Modification for NORAD
– Cranford– Lane– Hujsak– Hoots– Other
Pg 4 of 30AGI www.centerforspace.com
History
• Distribution of the Theory– Hoots and Roehrich Spacetrack Report #3 (1980)
• Baseline the theory– Many versions existed– Equations, Source Code, and Test Cases
– Hoots Spacetrack Report #6 (1986)• HANDE• Often assumed to be correction of Deep Space
– 1997 GSFC release of updated code (1990 version)• Implementation updates
– Merge of SGP4 / SDP4– Re-look at resonances– Re-look at deep space– Many Others
– Hoots (1998, 2004)• Equations
Pg 5 of 30AGI www.centerforspace.com
History
• Since 1980– No official comprehensive update of STR#3 – STR#3 caveat:
• The most important point to be noted is that not just any prediction model will suffice… The NORAD element sets must be used with one of the models described in this report in order to retain maximum prediction accuracy
– AFSPC Instructions indicate multiple official versions within DoD
• Independent efforts using released code– Variety of applications– Many changes– Lack of documentation and configuration control
No common baseline exists today
Pg 6 of 30AGI www.centerforspace.com
Objectives
• Provide consolidated update– Make widely available – “Close” to official standalone version
• Closer than 1980 and other derivative versions
– Fully documented test cases– Modern computer code
• Structured programming• Multiple languages
– C++ – MATLAB– FORTRAN – Pascal
Pg 7 of 30AGI www.centerforspace.com
Primary References
• Original documentation (1980)– Hoots, Felix R., and Roehrich, R. L. 1980. Spacetrack Report #3, Models
for Propagation of the NORAD Element Sets. U.S. Air Force, CO.
• Updated Equations and History– Hoots, Felix R. “Spacetrack Report #6: Models for Propagation of Space
Command Element Sets.” Space Command, U. S. Air Force, CO. – Hoots, Felix R., P. W. Schumacher, and R. A. Glover. 2004. History of
Analytical Orbit Modeling in the U. S. Space Surveillance System. Journal of Guidance, Control, and Dynamics. 27(2):174-185.
• Updated source code (~1990)– http://seawifs.gsfc.nasa.gov/SEAWIFS/SOFTWARE/src/bobdays/sgp4sub.f
• Many other references– Listed in this paper, and in Hoots, et al. (2004)
Pg 8 of 30AGI www.centerforspace.com
Program Description
• SGP4 is an analytical theory – Must use proper mathematical technique– Using different mathematical technique adds significant error
• Part of original need for 1980 publication– Structure in STR#3
• (SGP4) Near Earth (Periods less than 225 min)• (SDP4) Deep Space (Periods greater than 225 min)
• Two-line element sets (TLE)– Data for use with SGP4– TLEs produced through Orbit Determination (OD) of satellite observations– TLE data released publicly for over 20 years– TLE accuracy is coarse
• Depends on orbit and OD, but in general– ~1 km accuracy at epoch– ~1-3 km per day error growth
Pg 9 of 30AGI www.centerforspace.com
Program Challenges
• Disconnect between available theories in 1980 and today– Coordinate System
• TEME and current IAU 2000 Resolutions• TEME “of date” vs. “of epoch”
– Time System• UTC, Sidereal Time
• Configuration Control– Implementation and documentation of changes
Pg 10 of 30AGI www.centerforspace.com
TEME details
• Frame in between TOD and PEF
• TEME of Date– Calculate nutation parameters at each propagation time– We assume as the default
• TEME of Epoch– Calculate nutation parameters at epoch– Use this value for all propagation times
TEMEGMSTPEF
PEFGMSTTEME
GMSTGASTPEFGASTTOD
rROTr
rROTr
EqeandrROTr
)(3
)(3
)(3
82
82
82828282
Pg 11 of 30AGI www.centerforspace.com
Configuration Control Challenges
• Items requiring configuration control– Data Formats have changed over time
• Checksum• Field widths• Other?
– Operational SGP4 code has changed over time• 1980 – Spacetrack Report Number 3• 1990s – Spacetrack Report Number 6 and GSFC Code• Other?
Pg 12 of 30AGI www.centerforspace.com
Open Issues
• Time, coordinate systems, etc.– How to interface modern programs to older concepts?
• Existing historical database of TLE data– When did data formats change?– How to synchronize each TLE to the operational version
used to create it? – What was the precise mathematical description of each
former version?• Includes current operational version
– What accuracy can be expected with each version?
Pg 13 of 30AGI www.centerforspace.com
Code Development
• STR#3 to GSFC Changes– Merge SGP4 and SDP4 routines– Double Precision (FORTRAN)– Update of Deep space variables– Frequency of Lunar-Solar term computation – Lunar-Solar perturbation applications
• “Lyddane bug” (see following chart)
– Kepler’s equation (see following chart)– When to apply Lunar-Solar modifications
• Lyddane choice (see following chart)
– Many Others
Pg 14 of 30AGI www.centerforspace.com
Code Development
• Lunar-Solar Modifications (23599)– Incorrect update of lunar-solar perturbations
– Need to update quadrants in periodic calculations
274.5
275.0
275.5
276.0
276.5
277.0
277.5
278.0
278.5
250 300 350 400 450 500 550 600 650 700 750
Min from Epoch
Arg
umen
t of P
erig
ee (d
eg)
Corrected
STR#3
-20000
-15000
-10000
-5000
0
5000
10000
15000
20000
25000
30000
250 300 350 400 450 500 550 600 650 700 750
Min from Epoch
Pos
itio
n C
ompo
nent
s (k
m)
Corrected
STR#3
x-component
z-component
y-component
Pg 15 of 30AGI www.centerforspace.com
Code Development
• Kepler’s Iteration (23333)– Note the dramatic
jumps in inclination
– Choppy behavior before 200 min is from update interval of LS terms
30.18
30.20
30.22
30.24
30.26
30.28
30.30
30.32
0 200 400 600 800 1000 1200 1400 1600
Min from Epoch
Incl
inat
ion
(deg
)
Corrected
STR#3
Pg 16 of 30AGI www.centerforspace.com
Code Development
• Lyddane Choice (14128)– Decision on applying
Lyddane modifications
– Based on inclination value (perturbed or original)
– Small magnitude difference
• Best to determine a better crossover point
-2.0
-1.5
-1.0
-0.5
0.0
0.5
1.0
1.5
2.0
0.0 500.0 1000.0 1500.0 2000.0 2500.0 3000.0
Min from Epoch
Pos
itio
n C
ompo
nent
Dif
fere
nce
(km
)
z-component
y-component
Pg 17 of 30AGI www.centerforspace.com
Code Modernization
• Highlights– GOTOs eliminated– Structures
• Permit multiple satellite use at one time• Better organization of the code
– Initialization• Consolidate functions in one routine• Call once
– Variable names• Consistent names
– No limit of 8 characters• No implicit typing
– Use of intrinsic functions
Pg 18 of 30AGI www.centerforspace.com
Structural Organization (existing - GSFC)
SGP4
DPPER
SREZ
DSCOM
INITL
if meth
od
if meth
od
if init
if <225
if init
DPPER
SREZ
DSCOM
if init
if initd
s
DSPACE
SREZ
if initds
DSPACE
SREZ
Deep Space
Near Earth
One call each time
Initialization integrated
Pg 19 of 30AGI www.centerforspace.com
Structural Organization (Revised)
SGP4init
INITL if meth
od
if <225
Deep Space
Near Earth
One initialization call
Routine calls toSGP4
SGP4
if meth
od
DSPACE
DPPERDSCOM
DPPER
DSINIT
Pg 20 of 30AGI www.centerforspace.com
Program Code Structure START
TwoLine2RVSGP4
Days2DMYHMS
SGP4Loop
Loop to read
input file of TLE data
SGP4init
Loop to propagate each tle
Loop
JDay
Function Locations
if
if
DSPACE
DPPER
GETGRAVCONST
INITL GETGRAVCONST
GSTIME
if
if
DPPER
DSINIT
if
DSCOM
GETGRAVCONST
SGP4GETGRAVCONST
DSPACEDPPER
SGP4Ext
SGP4IO
SGP4Unit
Output
Pg 21 of 30AGI www.centerforspace.com
Test Case Overview
• Verification test cases– Use actual satellites where possible– Test each “path” through the code
• High eccentricity• Data formats• Other
• Expected Code Updates– Error checking– Constants
• WGS-72, WGS-84, other?– Negative Inclination– Integrator problems
• Backwards propagation– Kepler’s equation
• Limit amount of corrections per step
Pg 22 of 30AGI www.centerforspace.com
Constants
• WGS-72 stated– We use as default
• WGS-84 possible
Symbol Calculation Value 398,600.8 km3/s2RK 6378.135 kmJ2 0.001 082 616J3 –0.000 002 538 81J4 –0.000 001 655 97
XKE 60/sqrt(RK3/) 0.074 366 916 133 17 /min
TUMin sqrt(RK3 /)/60 13.446 839 696 959 31 min
Symbol Calculation Value 398,600.5 km3/s2RK 6378.137 kmJ2 C2,0 = –0.000 484 166 850 00 0.001 082 629 989 05J3 C3,0 = 0.000 000 957 063 90 –0.000 002 532 153 06J4 C4,0 = 0.000 000 536 995 87 –0.000 001 610 987 61
XKE 60/sqrt(RK3/) 0.074 366 853 168 71 /min
TUMin sqrt(RK3 /)/60 13.446 851 082 044 98 min
Pg 23 of 30AGI www.centerforspace.com
Expected Code Updates
• Application of Negative Inclination (25954)– Deep space resonance, low inclination
– Note the z-axis jump
0.0140
0.0145
0.0150
0.0155
0.0160
0.0165
0.0170
0.0175
0.0180
0.0185
0.0190
-1440 -1200 -960 -720 -480 -240 0 240 480 720 960 1200 1440
Min from Epoch
Incl
ina
tio
n (
de
g)
Corrected
GSFC
-20
-15
-10
-5
0
5
10
15
20
-1440 -1200 -960 -720 -480 -240 0 240 480 720 960 1200 1440
Min from Epoch
z-P
os
itio
n C
om
po
ne
nts
(k
m)
Corrected
GSFC
Pg 24 of 30AGI www.centerforspace.com
Expected Code Updates
• Integrator problems– Backwards or negative propagation– Appears to have been in the computer code– Note the small magnitudes of the differences
38221.5
38221.52
38221.54
38221.56
38221.58
38221.6
38221.62
38221.64
38221.66
38221.68
38221.7
-1440 -1320 -1200 -1080 -960 -840 -720 -600
Min from Epoch
Se
mim
ajo
r A
xis
(k
m)
corrected
gsfc
-0.10
-0.05
0.00
0.05
0.10
0.15
0.20
0.25
-1440 -1320 -1200 -1080 -960 -840 -720 -600
Min from Epoch
Pos
itio
n C
ompo
nent
Dif
fere
nce
(km
)
y-component
z-component
x-component
Pg 25 of 30AGI www.centerforspace.com
Version Comparisons
• Several code versions exist– Original 1980
• http://celestrak.com/NORAD/documentation/spacetrk.zip
– GSFC ~ 1997 (code dated 1990)• http://seawifs.gsfc.nasa.gov/SEAWIFS/SOFTWARE/src/bobdays/sgp4sub.f • No longer available, current file is Brouwer theory, but with same name
– JPL – • ftp://naif.jpl.nasa.gov/pub/naif/toolkit/FORTRAN/PC_Linux/packages/toolkit.tar.Z • Modified starting from 1980 version
• Test versions to establish performance envelope– Scales are all the same
Pg 26 of 30AGI www.centerforspace.com
Computer Language Comparisons
• Test FORTRAN/CPP/PASCAL– Sample entire catalog ~9000 satellites– Pascal uses Extended type (10-bytes) CPP and FOR used double (8-byte)
CPP vs. FOR CPP vs. PAS
0.00001
0.0001
0.001
0.01
0.1
1
10
100
1000
10000
100000
0 200 400 600 800 1000 1200 1400 1600
Period (min)
Del
ta r
(m
)
0.00001
0.0001
0.001
0.01
0.1
1
10
100
1000
10000
100000
0 200 400 600 800 1000 1200 1400 1600
Period (min)
Del
ta r
(m
)
Pg 27 of 30AGI www.centerforspace.com
Alternate versions
• Test of GSFC version– Sample entire catalog ~9000 satellites– GSFC code differences very small if no negative propagations (right)– Much larger variations if negative times (left)
CPP vs. GSFC CPP vs. GSFC positive only
0.00001
0.0001
0.001
0.01
0.1
1
10
100
1000
10000
100000
0 200 400 600 800 1000 1200 1400 1600
Period (min)
Delt
a r
(m
)
0.00001
0.0001
0.001
0.01
0.1
1
10
100
1000
10000
100000
0 200 400 600 800 1000 1200 1400 1600
Period (min)
Del
ta r
(m
)
Pg 28 of 30AGI www.centerforspace.com
Alternate versions
• Test 1980 versions– Sample entire catalog ~9000 satellites
CPP vs. AF80 single CPP vs. AF80 double
0.00001
0.0001
0.001
0.01
0.1
1
10
100
1000
10000
100000
0 200 400 600 800 1000 1200 1400 1600
Period (min)
Del
ta r
(m
)
0.00001
0.0001
0.001
0.01
0.1
1
10
100
1000
10000
100000
0 200 400 600 800 1000 1200 1400 1600
Period (min)
Del
ta r
(m
)
Pg 29 of 30AGI www.centerforspace.com
Alternate versions
0.00001
0.0001
0.001
0.01
0.1
1
10
100
1000
10000
100000
0 200 400 600 800 1000 1200 1400 1600
Period (min)
Del
ta r
(m
)
• Test of JPL version– Sample entire catalog ~9000 satellites– JPL code improved dramatically for > 225-minute orbits with change of DOPERT variable (control of
Lunar-Solar zeroing at epoch)
CPP vs. JPL original CPP vs. JPL modified
0.00001
0.0001
0.001
0.01
0.1
1
10
100
1000
10000
100000
0 200 400 600 800 1000 1200 1400 1600
Period (min)
De
lta
r (
m)
Pg 30 of 30AGI www.centerforspace.com
Conclusions
• Updated version of SGP4– Incorporates all known changes and updates– Documented
• Technical equations in the literature• Code in several languages• Test cases and results
– Widely available• Hardcopy in this paper• Softcopy: http://www.centerforspace.com/downloads/
Recommended