[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Orekit Users] Mimic TLEPropagator with Numerical?



Justin,

Your question about replicating a TLE trajectory with Special Perturbations (numerical integration) was addressed by Darrell Herriges in 1988.

Darrell was doing a MIT Master of Science thesis for me and he was implementing the NORAD satellite theories in the GTDS orbit determination system.

Darrell used the numerical integration (configured to match GP4) to generate truth data for a unit test of the differential correction (weighted least squares) orbit determination process based on GP4.

The numerical integration used the J2, J3, and J4 harmonic coefficients with the potential selected to match what was assumed in the GP4 theory. The numerical integration also used a stable atmosphere density (not time varying). The residuals between the fit GP4 and the truth were small because the short-periodic motion due to J3 and J4 is small. The long period and secular motion due to J3 and J4 is included in GP4. The impact of the J2-squared terms is small at the inclination used in this test case.

You should look at Chapter 5 of the Herriges thesis report - particularly
Section 5.1 Test Methodology
Table 5-1 Initial Parameters
Section 5.2.1.2 GP4 Low Altitude DC Comparison
Table 5-4 GP4 Low Altitude PCE Results

Of course, if the numerical integration included a more complete geopotential, then the residuals between GP4 and numerical integration would be much larger -- on the order of several hundred meters.  See Table 1-1 Maximum m-daily errors on p. 24 in the Herriges thesis on this point.

I had a 1996 paper with Dan Fonte  "Extension of the Naval Space Command Satellite Theory PPT2 to Include a General Tesseral M-Daily Model, presented at the AIAA/AAS Astrodynamics Conference, San Diego, CA, July 1996, that further explored the tesseral error signature.  The NAVSPASUR PPT2 theory is similar to GP4.
 
Any questions, ask away.

Darrell's thesis was approved for public release in 2014; distribution is unlimited.  
 
A later MIT student (George Granholm, 2000) also considered the conversion of TLE to Special Perturbation initial conditions.
 
 
regards,
 
Paul Cefola
 
-- 
Dr. Paul J. Cefola
Consultant in Aerospace Systems, Spaceflight Mechanics, & Astrodynamics
Adjunct Faculty, Dept. of Mechanical and Aerospace Engineering, University at Buffalo (SUNY)
 
4 Moonstone Way
Vineyard Haven, MA 02568
USA

508-696-1884 (phone on Martha's Vineyard)
978-201-1393 (cell)

paulcefo@buffalo.edu
paul.cefola@gmail.com




On 03/28/2017 3:56 pm, justin4leb@gmail.com wrote:
Thank you Paul. I’m looking forward to it.

Regards,
Justin

FROM: paulcefo
SENT: Tuesday, March 28, 2017 15:19
TO: justin4leb@gmail.com
CC: orekit-users-request@orekit.org
SUBJECT: Re: [Orekit Users] Mimic TLEPropagator with Numerical?

Justin,

I will try to write something on this question later today.

Paul Cefola

-- 

Dr. Paul J. Cefola

Consultant in Aerospace Systems, Spaceflight Mechanics, &
Astrodynamics

Adjunct Faculty, Dept. of Mechanical and Aerospace Engineering,

University at Buffalo (SUNY)

4 Moonstone Way

Vineyard Haven, MA 02568

USA

508-696-1884 (phone on Martha's Vineyard)

978-201-1393 (cell)

paulcefo@buffalo.edu

paul.cefola@gmail.com

On 03/28/2017 3:01 pm, justin4leb@gmail.com wrote:

Hello All,


I am new in using OREKIT. I was wondering if its possible to mimic

TLEPropagator by incorporating similar force models into a Numerical

propagator. Basically, I am trying to replicate the results of the

"Satellite

Orbital Conjunction Reports Assessing Threatening Encounters in

Space" (SOCRATES) that are given in the celestrak

website

:http://celestrak.com/cgi-bin/searchSOCRATES.pl?IDENT=NAME&NAME_TEXT1=&NAME_TEXT2=&ORDER=MINRANGE&MAX=10


I am able to get exact (very closer : +/-0.1 seconds) closest
approach

results, but not with a Numerical Propagator (with J2
perturbations). I

am

aware TLEprop is based on SGP4/SDP4 model but I wonder if it is

possible to

bring that model into Numerical. Because I would like to experiment
by

applying small delta-Vs to the state to increase the closest
approach

distance

which cannot be done within a TLEPropagator.


I used something like this(in Python):


objA_tle = TLE("1 40037U 14033AD  17085.78642693  .00000199  00000-0
 

28987-4

0  9998",

"2 40037  97.9175 354.9522 0013624 210.8425 149.1991

14.86189764149576")

objB_tle = TLE("1 16263U 85108B   17085.79797911  .00000114  00000-0
 

11121-4

0  9997",

"2 16263  82.5064 191.6062 0018606 258.6047 216.3527

14.82975072692179")


propagator_tleA = TLEPropagator.selectExtrapolator(objA_tle)

propagator_tleB = TLEPropagator.selectExtrapolator(objB_tle)


epo_objA = objA_tle.getDate()

epo_objB = objB_tle.getDate()

pvA_init = propagator_tleA.propagate(epo_objA).getPVCoordinates()

pvB_init = propagator_tleB.propagate(epo_objB).getPVCoordinates()


initialOrbitA = CartesianOrbit(pvA_init_, inertialFrame, epo_objA,
mu)

initialOrbitB = CartesianOrbit(pvB_init_, inertialFrame, epo_objB,
mu)




def NumProp(initialOrbit, orbitType):


    #Setup Propagator

    minStep = 0.001;

    maxstep = 1000.0;

    initStep = 10.0

    positionTolerance = 1e-2

    initialState = SpacecraftState(initialOrbit)

    tol = NumericalPropagator.tolerances(positionTolerance,

initialOrbit,

orbitType)

    integrator = DormandPrince853Integrator(minStep, maxstep,

                                        JArray_double.cast_(tol[0]),
 #

Double

array of doubles needs to be casted in Python

                                        JArray_double.cast_(tol[1]))

    integrator.setInitialStepSize(initStep)


    propagator_num = NumericalPropagator(integrator)

    propagator_num.setOrbitType(orbitType)

    propagator_num.setInitialState(initialState)

    propagator_num.setEphemerisMode()

    return propagator_num



propagator_numA = NumProp(initialOrbitA, orbitType)

propagator_numB = NumProp(initialOrbitB, orbitType)


itrf    = FramesFactory.getITRF(IERSConventions.IERS_2010, True)

gravityProvider = GravityFieldFactory.getNormalizedProvider(10,10)

gravity = HolmesFeatherstoneAttractionModel(itrf, gravityProvider)


propagator_numA.addForceModel(gravity)

propagator_numB.addForceModel(gravity)



Best,

Justin

Attachment: MIT_Herriges_SM_Thesis_1988.pdf
Description: Adobe PDF document