Revisiting Spacetrack Report #3
David A. Vallado, Paul Crawford, Richard Hujsak, and T. S. Kelso
Analytical Graphics Inc.
Center for Space Standards and Innovation
AGI
Paper Presented at the AIAA Astrodynamics Specialist Conference, Keystone, Colorado, 21-24 August 2006
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
AGI
Pg 2 of 30
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
–
–
–
–
–
AGI
Cranford
Lane
Hujsak
Hoots
Other
Pg 3 of 30
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
AGI
Pg 4 of 30
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
AGI
Pg 5 of 30
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
–
–
–
–
AGI
C++
MATLAB
FORTRAN
Pascal
Pg 6 of 30
www.centerforspace.com
Primary References
•
Original documentation (1980)
–
•
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)
–
•
Hoots, Felix R., and Roehrich, R. L. 1980. Spacetrack Report #3, Models
for Propagation of the NORAD Element Sets. U.S. Air Force, CO.
http://seawifs.gsfc.nasa.gov/SEAWIFS/SOFTWARE/src/bobdays/sgp4sub.f
Many other references
–
AGI
Listed in this paper, and in Hoots, et al. (2004)
Pg 7 of 30
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
AGI
Pg 8 of 30
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
AGI
Pg 9 of 30
www.centerforspace.com
TEME details
• Frame in between TOD and PEF


rTOD  ROT 3 (  GAST 82 ) r PEF
and


rTEME  ROT 3 (  GMST 82 ) r PEF


r PEF  ROT 3 ( GMST 82 ) rTEME
 GAST
82
  GMST
82
 Eqe 82
• 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
AGI
Pg 10 of 30
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?
AGI
Pg 11 of 30
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?
AGI
Pg 12 of 30
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
AGI
Pg 13 of 30
www.centerforspace.com
Code Development
• Lunar-Solar Modifications (23599)
– Incorrect update of lunar-solar perturbations
– Need to update quadrants in periodic calculations
30000
278.5
STR#3
25000
278.0
y-component
20000
Position Components (km)
Argument of Perigee (deg)
277.5
277.0
276.5
276.0
Corrected
STR#3
15000
10000
Corrected
5000
z-component
0
-5000
275.5
-10000
x-component
275.0
-15000
-20000
274.5
250
300
350
400
450
500
550
600
650
700
750
250
350
400
450
500
550
600
650
700
750
Min from Epoch
Min from Epoch
AGI
300
Pg 14 of 30
www.centerforspace.com
Code Development
• Kepler’s Iteration
(23333)
Corrected
30.30
30.28
Inclination (deg)
– Note the dramatic
jumps in
inclination
– Choppy behavior
before 200 min is
from update
interval of LS
terms
30.32
30.26
STR#3
30.24
30.22
30.20
30.18
0
200
400
600
800
1000
1200
1400
1600
Min from Epoch
AGI
Pg 15 of 30
www.centerforspace.com
Code Development
• Lyddane Choice
(14128)
• Best to determine a
better crossover
point
AGI
1.5
Position Component Difference (km)
– Decision on applying
Lyddane
modifications
– Based on inclination
value (perturbed or
original)
– Small magnitude
difference
2.0
1.0
y-component
0.5
0.0
-0.5
z-component
-1.0
-1.5
-2.0
0.0
500.0
1000.0
1500.0
2000.0
2500.0
3000.0
Min from Epoch
Pg 16 of 30
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
AGI
Pg 17 of 30
www.centerforspace.com
Structural Organization (existing - GSFC)
if
meth
od
SGP4
if
meth
od
if
init
if
init
ds
INITL
DSPACE
if
init
SREZ
DPPER
SREZ
Near
Earth
DSCOM
if
<225
Deep
Space
if
init
DPPER
SREZ
DSCOM
AGI
if
initd
s
DSPACE
SREZ
Pg 18 of 30
One call each time
Initialization integrated
www.centerforspace.com
Structural Organization (Revised)
SGP4init
SGP4
INITL
Near
Earth
if
meth
od
DSPACE
if
meth
od
DPPER
if
<225
DSCOM
Deep
Space
DPPER
One initialization call
Routine calls toSGP4
DSINIT
AGI
Pg 19 of 30
www.centerforspace.com
Program Code Structure
START
Loop to
read
input file
of TLE
data
TwoLine2RVSGP4
Lo
op
Days2DMYHMS
SGP4init
INITL
GETGRAVCONST
GSTIME
i
f
DSCOM
i
f
DPPER
i
f
DSINIT
JDay
Loop to
propagate
each tle
Lo
op
SGP4
GETGRAVCONST
GETGRAVCONST
SGP4
i
f
DSPACE
i
f
DPPER
GETGRAVCONST
DSPACE
DPPER
Function
Locations
SGP4Ext
Output
SGP4IO
SGP4Unit
AGI
Pg 20 of 30
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
AGI
Pg 21 of 30
www.centerforspace.com
Constants
• WGS-72 stated
– We use as default
S y m b ol
C alcu lation

RK 
J 2

V alu e
3 2
3 9 8 ,600.8 km /s 

6378.135 km 

0.001 082 616 
J 3

– 0.000 00 2 538 8 1 
J 4

– 0.000 00 1 655 9 7 
XKE
60/sqrt(R K /)
0.074 366 916 133 17 /m in
T U M in
3
13.446 839 696 9 5 9 3 1 m in
3
sqrt(R K
/)/60 
• WGS-84 possible
AGI
Sy m bol
C alculation

RK 
J 2
J 3
J 4
XKE


C 2,0 = – 0.000 484 166 850 00 
C 3,0 = 0.000 000 957 063 90 
C 4,0 = 0.000 000 536 995 87 
T U M in
3
Pg 22 of 30
3
60/sqrt(R K /)
sqrt(R K
/)/60 
V alue
3 2
398 ,600.5 km /s 
6378.137 km 
0.001 082 629 989 05
–0.000 002 532 153 06 
–0.000 001 610 987 61 
0.074 366 853 168 71 /m in
13.446 851 082 044 98 m in
www.centerforspace.com
Expected Code Updates
•
Application of Negative Inclination (25954)
– Deep space resonance, low inclination
– Note the z-axis jump
20
0.0190
Corrected
0.0185
15
Corrected
z-Position Components (km)
0.0180
Inclination (deg)
0.0175
GSFC
0.0170
0.0165
0.0160
0.0155
10
5
0
GSFC
-5
-10
0.0150
-15
0.0145
0.0140
-1440
-1200
-960
-720
-480
-240
0
240
480
720
960
1200
1440
-20
-1440
AGI
-1200
-960
-720
-480
-240
0
240
480
720
960
1200
1440
Min from Epoch
Min from Epoch
Pg 23 of 30
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
0.25
38221.7
38221.68
0.20
Position Component Difference (km)
38221.66
Semimajor Axis (km)
38221.64
38221.62
38221.6
corrected
38221.58
38221.56
gsfc
0.15
0.10
x-component
0.05
0.00
z-component
38221.54
-0.05
38221.52
38221.5
-1440
y-component
-1320
-1200
-1080
-960
-840
-720
-600
-0.10
-1440
Min from Epoch
AGI
-1320
-1200
-1080
-960
-840
-720
-600
Min from Epoch
Pg 24 of 30
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
AGI
Pg 25 of 30
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
100000
100000
10000
10000
1000
1000
100
10
10
Delta r (m)
Delta r (m)
100
1
0.1
1
0.1
0.01
0.01
0.001
0.001
0.0001
0.0001
0.00001
0
200
400
600
800
1000
1200
1400
1600
0.00001
Period (min)
AGI
0
200
400
600
800
1000
1200
1400
1600
Period (min)
Pg 26 of 30
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
100000
100000
10000
10000
1000
100
100
10
10
Delta r (m)
Delta r (m)
1000
1
1
0.1
0.1
0.01
0.01
0.001
0.001
0.0001
0.0001
0.00001
0.00001
0
200
400
600
800
1000
1200
1400
1600
AGI
0
200
400
600
800
1000
1200
1400
1600
Period (min)
Period (min)
Pg 27 of 30
www.centerforspace.com
Alternate versions
• Test 1980 versions
– Sample entire catalog ~9000 satellites
CPP vs. AF80 double
100000
100000
10000
10000
1000
1000
100
100
10
10
Delta r (m)
Delta r (m)
CPP vs. AF80 single
1
1
0.1
0.1
0.01
0.01
0.001
0.001
0.0001
0.0001
0.00001
0.00001
0
200
400
600
800
1000
1200
1400
1600
Period (min)
AGI
0
200
400
600
800
1000
1200
1400
1600
Period (min)
Pg 28 of 30
www.centerforspace.com
Alternate versions
•
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
100000
100000
10000
1000
1000
100
100
10
10
Delta r (m)
Delta r (m)
10000
1
1
0.1
0.1
0.01
0.01
0.001
0.001
0.0001
0.0001
0.00001
0.00001
0
200
400
600
800
1000
1200
1400
0
1600
400
600
800
1000
1200
1400
1600
Period (min)
Period (min)
AGI
200
Pg 29 of 30
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/
AGI
Pg 30 of 30
www.centerforspace.com
Descargar

Revisiting Spacetrack Report #3