12
Fast Generation of Precision Orbit Ephemeris Riccardo Marson, Stefano Lagrasta, Francesco Malvolti Telespazio S.p.A. – via Tiburtina, 965 00156 – Rome (Italy) BIOGRAPHY Riccardo Marson has a Master Degree in Astronautical Engineering (Spaceflight Dynamics) and has been working at Telespazio S.p.A. in the Navigation Systems and Services engineering unit for the past two years. He also has a previus experience of one year in the Scientific Missions unit of Telespazio, working on interplanetary mission analysis. Stefano Lagrasta has a Master Degree in Electronics Engineering (Automated Control Systems) and leads the Navigation Systems and Services engineering Unit at Telespazio S.p.A. . He has former experience on design and implementation of satellite Attitude and Orbit Control (AOC) and ground Flight Dynamics Systems. Francesco Malvolti has a degree in Aerospace Engineering and currently is Project Manager at Galileo Applications Business Line of Telespazio S.p.A.. He has former experience with satellite Navigation Systems design and algorithms. ABSTRACT Aiming at the simulation of the mission ground segment of the forthcoming Galileo constellation, Telespazio tackled the problem of generating the Navigation Message and particularly the calculation of Precision Ephemeris (PE). The approach was recently extended to real GPS constellation vehicles, using as input the accurate orbit position samples which are delivered by the International GNSS Service (IGS). The proposed article describes the developed technique and presents PE determination results obtained with real GPS orbit profiles. INTRODUCTION A PE set consists of 16 engineering parameters that feed a perturbed Keplerian model; purpose is to grant user receiver the capability of interpolating, with high accuracy, the orbit path of each Navigation satellite. The adopted semi-analytical propagation method is common to both GPS and Galileo constellations. In order to face the problem, we split it into two processing steps. First, one has to build an auxiliary orbit interpolation model, based on high order polynomials, providing full orbit state, i.e.: position and linear velocity in Earth Centered and Fixed axes. Input IGS “Final Orbit” (SP3) files do not include linear velocity. Moreover, within IGS products, satellite position vector appears sampled with low frequency, i.e. every 15 minutes. A non linear sequential processing, based on the Unscented Kalman Filter (UKF), is adopted to estimate full state vector and to over-sample it at 60 seconds. Then, fitting routines are invoked to generate very precise sets of polynomial coefficients, for every individual orbit arc of an assigned time span. The achieved product is addressed in what follows as “Compressed Orbit” model. Second, the 16 PE parameters are to be derived. Input for the overall computation process is the Compressed Orbit model for each satellite. The adopted calculation approach is based on Nonlinear Programming (NLP). However, it does not consist of a global minimization process with a cost function explicitly depending on all required coefficients. On the contrary, the optimization deals with a subsets of the coefficients, with a mixed approach that involves Levenberg-Marquardt for 6 “control” variables and “interspersed” Least Squares to determine the remaining PE parameters.

Fast Generation of Precision Orbit Ephemeris€¦ · Fast Generation of Precision Orbit Ephemeris ... GPS orbit profiles. ... one has to build an auxiliary orbit interpolation

  • Upload
    vukhanh

  • View
    241

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Fast Generation of Precision Orbit Ephemeris€¦ · Fast Generation of Precision Orbit Ephemeris ... GPS orbit profiles. ... one has to build an auxiliary orbit interpolation

Fast Generation of Precision Orbit Ephemeris

Riccardo Marson, Stefano Lagrasta, Francesco Malvolti Telespazio S.p.A. – via Tiburtina, 965

00156 – Rome (Italy)

BIOGRAPHY Riccardo Marson has a Master Degree in Astronautical Engineering (Spaceflight Dynamics) and has been working at Telespazio S.p.A. in the Navigation Systems and Services engineering unit for the past two years. He also has a previus experience of one year in the Scientific Missions unit of Telespazio, working on interplanetary mission analysis. Stefano Lagrasta has a Master Degree in Electronics Engineering (Automated Control Systems) and leads the Navigation Systems and Services engineering Unit at Telespazio S.p.A. . He has former experience on design and implementation of satellite Attitude and Orbit Control (AOC) and ground Flight Dynamics Systems. Francesco Malvolti has a degree in Aerospace Engineering and currently is Project Manager at Galileo Applications Business Line of Telespazio S.p.A.. He has former experience with satellite Navigation Systems design and algorithms. ABSTRACT Aiming at the simulation of the mission ground segment of the forthcoming Galileo constellation, Telespazio tackled the problem of generating the Navigation Message and particularly the calculation of Precision Ephemeris (PE). The approach was recently extended to real GPS constellation vehicles, using as input the accurate orbit position samples which are delivered by the International GNSS Service (IGS). The proposed article describes the developed technique and presents PE determination results obtained with real GPS orbit profiles.

INTRODUCTION A PE set consists of 16 engineering parameters that feed a perturbed Keplerian model; purpose is to grant user receiver the capability of interpolating, with high accuracy, the orbit path of each Navigation satellite. The adopted semi-analytical propagation method is common to both GPS and Galileo constellations. In order to face the problem, we split it into two processing steps. First, one has to build an auxiliary orbit interpolation model, based on high order polynomials, providing full orbit state, i.e.: position and linear velocity in Earth Centered and Fixed axes. Input IGS “Final Orbit” (SP3) files do not include linear velocity. Moreover, within IGS products, satellite position vector appears sampled with low frequency, i.e. every 15 minutes. A non linear sequential processing, based on the Unscented Kalman Filter (UKF), is adopted to estimate full state vector and to over-sample it at 60 seconds. Then, fitting routines are invoked to generate very precise sets of polynomial coefficients, for every individual orbit arc of an assigned time span. The achieved product is addressed in what follows as “Compressed Orbit” model. Second, the 16 PE parameters are to be derived. Input for the overall computation process is the Compressed Orbit model for each satellite. The adopted calculation approach is based on Nonlinear Programming (NLP). However, it does not consist of a global minimization process with a cost function explicitly depending on all required coefficients. On the contrary, the optimization deals with a subsets of the coefficients, with a mixed approach that involves Levenberg-Marquardt for 6 “control” variables and “interspersed” Least Squares to determine the remaining PE parameters.

Page 2: Fast Generation of Precision Orbit Ephemeris€¦ · Fast Generation of Precision Orbit Ephemeris ... GPS orbit profiles. ... one has to build an auxiliary orbit interpolation

PRECISION EPHEMERIS (PE) SET The perturbed Keplerian analytical model which is adopted by GPS and Galileo MEO constellations is shortly recalled hereafter, for commodity of the reader. Each space vehicle transmits (only) its own PE set ( EP ), including the following 16 parameters: ( 1 ) EP = { t0 , a , e, M0, Δn , ω, ...

Cus , Cuc , Crs , Crc , Cis , Cic , i0, idot , Ω0, Ω }

The use of PE, according to constellation ICD convention, allows the user receiver to obtain an estimate for the position vector ( r ) of satellite emitter antenna phase centre, given in ECF coordinates. Further computations also permit to reconstruct the relative velocity ( v ) in ECF frame. PE consent an accurate (yet not “exact”) approximation of desired vectors ( r , v ) at constellation system time “ t ”, specified in units of “second of week” (TOW). Such a time instant can be any, within the validity period of PE set, that is typically of 2 or 4 hours. Given the time instant “ t ”, in order to obtain ECF position vector r( t ) and its time derivative v( t ), the following processing is suggested, in line with original ICD rules [1], [2] and additional insights [3]. 〈1〉 From root of orbit semiaxis ( a ), compute the nominal value of orbit Mean Motion:

( 2 ) aa

1n0µ⋅=

where µ is the Earth gravity constant value given by ICD. 〈2〉 Compute and normalize the elapsed time T: ( 3 ) T = t – t0

if ( | T | > 302400 ) then T = ( modulo( T, 302400 ) − sign( T ) × 302400 )

end

〈3〉 Compute orbit Mean Anomaly, M, as well as its time derivative ( MD ), using a corrected Mean Motion, by way of broadcast term Δn: ( 4 ) T)nn(MM 00 ⋅Δ++=

nnMD 0 Δ+=

〈4〉 Compute Eccentric Anomaly, E, and its derivative ED. The former ( E ) is easily obtained by solving Kepler implicit equation: ( 5 ) ( )EsineEME ⋅−=⇔

Note: due to the low eccentricity of Navigation satellite orbits, a simple “substitution iteration” process can solve the Kepler equation above, converging to the desired result with super-linear speediness: ( 6 ) ( ))k()1k( EsineME ⋅+←+

starting from: ME )0( =

Once that E is achieved, one has, for its derivative ( ED ):

( 7 ) ( )Ecose1MDED⋅−

=

〈5〉 Obtain True Anomaly, ν :

( 8 ) ν⇒

⎪⎪⎭

⎪⎪⎬

⋅−⋅−=ν

⋅−−=ν

)Ecos(e1)Esin(e1)sin(

)Ecos(e1e)Ecos()cos(

2

Note: in order to reduce computation errors, it is strongly suggested to adopt a function like “atan2( ⋅, ⋅ )” to obtain ν, avoiding to invoke “asin( ⋅ )” or “acos( ⋅ )”. 〈6〉 Obtain the derivative of True Anomaly ( νD ):

( 9 ) )Ecos(e1

e1EDD2

⋅−−⋅=ν

〈7〉 Compute nominal angular Anomaly on Orbit Plane ( φ ) and its time derivative ( φD ): ( 10 ) ν+ω=φ

DD ν=φ

〈8〉 Compute correction term for Radius Vector module ( δr ) and its time derivative ( δrD ): ( 11 ) )2cos(C)2sin(Cr rcrs φ⋅⋅+φ⋅⋅=δ

[ ])2sin(C)2cos(CD2rD rcrs φ⋅⋅−φ⋅⋅⋅φ⋅=δ

〈9〉 Compute corrected Radius Vector module ( r ) and its time derivative ( rD ) : ( 12 ) ( )( )Ecose1arKEP ⋅−⋅=

rrr KEP δ+=

rD)Esin(EDearD δ+⋅⋅⋅=

〈10〉 Compute correction term ( δu ) for angular Anomaly and its time derivative ( δuD ): ( 13 ) )2cos(C)2sin(Cu ucus φ⋅⋅+φ⋅⋅=δ

[ ])2sin(C)2cos(CD2uD ucus φ⋅⋅−φ⋅⋅⋅φ⋅=δ

〈11〉 Compute satellite coordinates on Orbit Plane { xp, yp } and their time derivatives { xDp, yDp }:

( 14 ) ( )( )usinry

ucosrx

p

p

δ+φ⋅=

δ+φ⋅=

( ) ( ) ( )( ) ( ) ( )ucosuDDrusinrDyD

usinuDDrucosrDxD

p

p

δ+φ⋅δ+φ⋅+δ+φ⋅=

δ+φ⋅δ+φ⋅−δ+φ⋅=

Page 3: Fast Generation of Precision Orbit Ephemeris€¦ · Fast Generation of Precision Orbit Ephemeris ... GPS orbit profiles. ... one has to build an auxiliary orbit interpolation

〈12〉 Compute angular offset Ω( t ) of the Line of Nodes and its rate of chance ΩD: ( 15 ) ( ) 0ee0 tT ⋅Ω−⋅Ω−Ω+Ω=Ω

( )eD Ω−Ω=Ω

〈13〉 Compute correction term ( δi ) for Orbit Inclination and its rate of change ( δiD ): ( 16 ) )2cos(C)2sin(Ci icis φ⋅⋅+φ⋅⋅=δ

[ ])2sin(C)2cos(CD2iD icis φ⋅⋅−φ⋅⋅⋅φ⋅=δ

〈14〉 Compute nominal Orbit Plane Inclination ( i ) and its time derivative ( iD ): ( 17 ) iTiii dot0 δ+⋅+=

iDiiD dot δ+=

〈15〉 Compute transform matriced from Orbit Plane reference system to ECF frame in space, along with their derivatives:

( 18 )

⎥⎥⎥

⎢⎢⎢

⎡−=

)icos()isin(0)isin()icos(0

001

xM

⎥⎥⎥

⎢⎢⎢

⎡ΩΩΩ−Ω

=1000)cos()sin(0)sin()cos(

zM

⎥⎥⎥

⎢⎢⎢

−−−⋅=

)isin()icos(0)icos()isin(0

000iDxMD

⎥⎥⎥

⎢⎢⎢

⎡Ω−ΩΩ−Ω−

⋅Ω=0000)sin()cos(0)cos()sin(

DzMD

〈16〉 Apply transforms to get final position vector and relative velocity vector in ECF coordinates:

( 19 )

⎥⎥⎥

⎢⎢⎢

⎡⋅⋅=

⎥⎥⎥

⎢⎢⎢

⎡=

0yx

zyx

r p

p

xzPE MM

( 20 ) …+⎥⎥⎥

⎢⎢⎢

⎡⋅⋅=

⎥⎥⎥

⎢⎢⎢

⎡=

0yDxD

vvv

v p

p

xz

z

y

x

PE MM

( )⎥⎥⎥

⎢⎢⎢

⎡⋅⋅+⋅+0yx

p

p

xzxz MDMMMD

Parameters µ, eΩ are defined according to the adopted satellite ICD convention and related physical constants. FULL ORBIT STATE RECONSTRUCTION As noted previously, the “SP3” files issued by IGS [4] contain high-precision satellite orbit positions in the Earth-Fixed frame, for the entire GPS constellation. However, velocity information is not usually provided. The typical body of a SP3 file is formatted as follows: a time tag relative to every “snapshot” of the GPS constellation, sampled every 15 minutes, and a line for every satellite observed at that time instant. Each line contains the satellite ID, the three ECF position components, the on-board clock bias and other information, much like the one shown below.

* 2010 4 24 0 0 0.00000000 PG02 -15140.388042 14004.044302 16446.372432

249.315650 13 8 7 175

Figure 1: IGS SP3 file format sample For particular applications, such as high-fidelity simulation/emulation of the real GPS constellation or high-precision post-processing of receiver raw data, knowledge of the entire orbital state (position as well as linear speed) is definitely needed. This is also our case; IGS position data feed an Orbit-Determination (OD) sequential estimation process, based on the Unscented Kalman Filter (UKF). The UKF non-linear estimator algorithm, in the adopted formulation, is recalled further on, for commodity of the reader. Ideally, one should be able to estimate linear velocities within the [mm/s] range without loosing accuracy on positions. Given that the IGS points are provided with the least-significant digit at the [mm] level, an estimation error at the [cm] level for spatial coordinates is considered acceptable. The choice of the UKF algorithm for OD is motivated by its full non-linear nature, which is very attractive. Since it does not involve linearizations, nor the computation of challenging partial derivatives, very faithful (and complex) physical models can be implemented in the estimator, with a reduced effort. Furthermore, the physical model can be updated in between subsequent filter runs without re-working the overall algorithm structure, thus allowing for far easier comparison, testing and validation procedures. Finally, it is very robust in terms of convergence properties, even if starting from very poor estimates of initial state. For system state and covariance propagation, a numerical integrator based on special-perturbation techniques has

Page 4: Fast Generation of Precision Orbit Ephemeris€¦ · Fast Generation of Precision Orbit Ephemeris ... GPS orbit profiles. ... one has to build an auxiliary orbit interpolation

been chosen: an adaptive-step Runge-Kutta-Fehlberg of order 7, with 8th order error control, which is very common in astrodynamics. The physical model which demonstrated the best trade-off between computation speed and accuracy had the following components: • Earth point-mass (based on WGS-84) • Earth gravity field components up to a degree and

order of 6x6 (based on the EGM-96 model) • Third-body perturbations due to the Sun and the

Moon (planetary ephemerides based on JPL/DE405) • Solar Radiation Pressure (SRP). In order to better model SRP effects, the ballistic coefficient:

( 21 ) MassACB eP

SRP⋅=

has been included as additional component of the vector to be estimated, thus leading to the “extended” orbit state: ( 22 ) T

SRPkjikji ]B,x,x,x,x,x,x[x =

BSRP is modeled as a random walk process (its time derivative is regarded as white Gaussian noise); thus BSRP is held constant during state propagation and it is modified only when the filter performs its state update estimation, based on current input measurements. IGS points are in the Earth-fixed frame, but we integrate the equations of motion in an Earth-Centered Inertial (ECI) frame, to avoid dealing with apparent forces. The initial position estimate is generated by simply rotating the first IGS point from ECF to ECI. The forward and backward transformation between ECF and ECI frames is performed by the full IERS Earth rotation model. The very first velocity estimate is computed by solving the Lambert problem between the first two IGS points, considering their fixed time-of-flight of 15 minutes. Early tests, based on a simulation environment, have shown that the filter performance is optimal if it can access input information related to the velocities. To this aim, a set of “artificially guessed” velocity observables was implemented by solving the Lambert problem between adjacent IGS position points. These supplementary observables exhibit accuracy of the order of few [cm/s], which would not be adequate for PE calculation process, whilst it is sufficient to drive UKF in achieving the required state estimation precision, under the hypothesis that the measurement covariance matrix R is properly tuned. The results presented in the following are relative to a time period of about 42 hours, from December 31 2007 at 4:00 am GMT to January 1 2008 at 10:00 pm GMT. The orbit is relative to the GPS satellite with PRN 1 at that

time. The input IGS files to the UKF process are the associated “Final” orbit products covering the same time window. Figure 2 and Figure 3 show the results obtained from a first filter run. As can be seen from Figure 2, the maximum error introduced in the position estimate is about 3.7 [cm]. On the other hand, Figure 3 confirms that the algorithm is effectively correcting the initial “guessed” velocity observables by about 3.5 [cm/s], producing a better estimate. However, as far as the UKF is a sequential estimation process, the first (few) velocity sample estimates would remain only partially corrected. It will be shown that a non-causal filtering approach allows the maximum error in the estimated velocity to be reduced within a range of [mm/s].

Figure 2: Distance of the estimated state w.r.t the IGS

position, after the “forward” filter run

Figure 3: Corrections applied to the “guessed” velocity

observables over the “forward” filter run As a matter of fact, the initial accuracy problem can be repaired by running the UKF once more, this time backwards in time and starting from the final state and achieved covariance values. The results at the end of the

Page 5: Fast Generation of Precision Orbit Ephemeris€¦ · Fast Generation of Precision Orbit Ephemeris ... GPS orbit profiles. ... one has to build an auxiliary orbit interpolation

second run are shown in Figure 4 and Figure 5. The magnitude of position reconstruction error is essentially unchanged but Figure 5 demonstrates how all the velocity estimates appear properly corrected. Figure 6 plots the estimate for BSRP , after the backward filter run.

Figure 4: Distance of the estimated state w.r.t. the IGS

state, after the “backward” filter run

Figure 5: Corrections applied to the “guessed” velocity

observables, over the “backward” filter run

Figure 6: SRP Ballistic coefficient estimate

After an accurate time series of complete orbital states has been produced, with a sampling period of 15 [min], there is still an issue: the need imposed by subsequent processing phases is for a shorter time spacing between estimates. Requirement is for points separated by about 60 seconds, in order to be able to compute first the coefficients of a truthful polynomial representation of the orbit state. Each set of coefficients will be applicable to a defined orbit arc and the approach will make available an overall “functional” model of the orbit state, allowing to reconstruct position and velocity at any arbitrary time instant. The accuracy of the new states, spaced every 60 [s], must at least come to the same exactness of 15 [min] samples, which was already depicted in Figure 4. A final, “forward” UKF run can achieve the desired result. The initial state and covariance are taken from the output of the last, “backward” run. This time, however, the filter is slightly modified, so that it outputs a state estimate by a forward state vector prediction every minute, while the state corrections are applied only every 15 minutes, as before, when a set of input observables is available. Figure 7 shows the achieved results of UKF last (third) run. The new sub-sampled state has an accuracy that is even slightly improved w.r.t. the one achieved in the previous (backward) filter run: the maximum position estimation error is now about 3.2 [cm].

Page 6: Fast Generation of Precision Orbit Ephemeris€¦ · Fast Generation of Precision Orbit Ephemeris ... GPS orbit profiles. ... one has to build an auxiliary orbit interpolation

Figure 7: Distance from the estimated state to the IGS

state after re-sampling to a frequency of 1 minute. ORBIT STATE POLYNOMIAL FITTING The output of the UKF, consisting of orbit state estimates sampled every 60 [s], is converted back to the ECF frame and used to compute the coefficients of a 15th order Chebychev polynomial. Multiple sets of coefficients are needed in order to cover an entire, mid term flight period, whilst achieving high interpolation accuracy. Each set of coefficients fits a particular arc of the satellite orbit. In our case, each arc spans about 3 hours and 20 minutes (about one fourth of the mean orbit period): the individual interpolation set is computed through a Least-Squares fit, by using 200 succeeding orbital states. Archiving the subsequent polynomial coefficient sets, to allow interpolating over a long orbit path, originates a so called “Compressed Orbit File” (COF) orbit model, in the slang of flight dynamics systems. Accessing COF data consents to accurately reconstruct the orbital state at any assigned time, thus not just at discrete instants. COF generation motivates the necessity to achieve first a full orbit state time series, sampled at higher frequency w.r.t. the IGS products. As it will be realized in later sections, the algorithm used to compute the PE sets takes advantage of COF model at various stages. Figure 8 shows the accuracy achieved by the Chebychev polynomial fitting, comparing the interpolated state with the original IGS data. The maximum error is about 6 [cm]. To make a comparison, Chebychev polynomial coefficients were also obtained by fitting (full) orbit state data available at 60 [s], provided by MICROCOSM COTS software, which was fed by the same IGS input (SP3) files.

Figure 9 shows the achieved accuracy, for the same satellite and over the same time-span. One sees that the maximum error, in this case, is a little over 20 [cm].

Figure 8: Distance of the “compressed orbit” state

resulting from UKF processing and Chebychev polynomial fitting, w.r.t. the IGS position

Similarly, Figure 10 shows the difference in the velocities reconstructed from the polynomial computed with the UKF output and the one calculated with MICROCOSM product. As anticipated in the previous section, the maximum discrepancy is about 2 [mm/s].

Figure 9: Distance of the “Compressed Orbit” state

resulting from MICROCOSM processing and Chebychev polynomial fitting, w.r.t. the IGS position

Page 7: Fast Generation of Precision Orbit Ephemeris€¦ · Fast Generation of Precision Orbit Ephemeris ... GPS orbit profiles. ... one has to build an auxiliary orbit interpolation

Figure 10: Difference in the velocities resulting by COF

models computed through the UKF “in-house” and MICROCOSM orbit state data

PE COMPUTATION: INIT VALUES The approach adopted to compute the optimal PE sets is based on Nonlinear Programming (NLP). Specifically, it uses a Levenberg-Marquardt (LM) algorithm to optimize 6 “control” parameters out of the 16 that define the full PE set. The PE validity time window [ tstart , tend ] and interpolation reference time ( t0 ) are assigned “a-priori”. The 6 explicit control parameters chosen to minimize LM cost function are: the square-root of the semi-major axis ( a ), eccentricity ( e ), mean-motion ( n ), the mean anomaly at t0 ( M0 ), the right-ascension of ascending node at t0 ( Ω0 ) and rate correction term (Ω ). The other parameters ( Δn, ω, Cus , Cuc , Crs , Crc , Cis , Cic , i0 , idot , Ω0 ) are implicitly estimated within the cost function evaluation process, through “local” Least-Squares (LS) fits. A critical point is the provision of an initial approximation for the 6 explicit optimization variables. From Compressed Orbit model, search algorithms are used to determine precisely the time instants corresponding to the following orbit passage events: perigee ( tper ), apogee ( tapo ), ascending node ( tasc ), descending node ( tdes ). Selected events are those which are included or closest to the [ tstart , tend ] interval. Approximated estimates for optimization (or related, auxiliary) variables are then computed as follows. Eccentricity:

( 23 ) )t(r)t(r)t(r)t(r

eperapo

perapo

+−

where r = r( t ) is the orbit radius. Semi-major axis:

( 24 ) )e1(

h~a

2−⋅µ≅

where h~ denotes the mean value of (absolute) orbit angular momentum vector. Mean motion:

( 25 ) perapo tt

n−π≅

Mean anomaly at t0 : ( 26 ) )tt(nM per00 −⋅≅

Right-ascension rate correction term:

( 27 ) ( )t

21

ΔΔ−Δ∠=Ω

where Δt = time distance and Δ2 = angular distance ( ∠ ) between ascending and descending orbit nodes, whilst

te1 Δ⋅Ω=Δ . Right-ascension of ascending node at t0 : ( 28 ) )tt()(t 0asce0easc0 −⋅Ω−Ω+⋅Ω+Ω=Ω

PE COMPUTATION: COST FUNCTION The LM algorithm is used to minimize the square norm of a matrix function: ( 29 ) W = f ( a , e , n, M0 , Ω0 , Ω )

W has “m” rows and 3 columns. The kth row of W lists 3 coordinate differences { Δx, Δy, Δz }, evaluated at the discrete time instant Tk , belonging to the PE validity window [ tstart , tend ] . The three deltas Δx, Δy, Δz are the difference between position value )P;T(rr EkPEPE = , computed through actual PE coefficients, and the “reference” satellite position )T(r kCOF , obtained from Compressed Orbit model: ( 30 ) [ ] )P;T(r)T(rz,y,x EkPEkCOFk −=ΔΔΔ

Page 8: Fast Generation of Precision Orbit Ephemeris€¦ · Fast Generation of Precision Orbit Ephemeris ... GPS orbit profiles. ... one has to build an auxiliary orbit interpolation

One sees that the explicit, “control” variables that are argument of the cost function are only a portion of the complete PE set. Along with the evaluation of cost function output W, an “inner” processing occurs, determining implicit PE parameters, i.e.: those not appearing as the LM optimization variables a , e , n, M0 , Ω0 , Ω . The overall processing within the cost function f( . ) is arranged as follows. Based on explicit optimization parameters passed to f( . ) , the Keplerian orbit radius module r

KE can be obtained at

time instants Tk ( k = 1, 2, …, m ). To this aim, see sequence of PE calculations up to eqn. ( 12 ). Consequently, by comparison with r

COF , the following

expression can be considered: ( 31 ) )2cos(C)2sin(Crr rcrsKECOF φ⋅⋅+φ⋅⋅=−

whereCrs ,Crc appear the coefficients for a “base” of interpolating functions formed by: sin(2⋅φ), cos(2⋅φ) , φ being computed by temporary assuming ω = 0 . Now, a LS process allows to determine the perturbation corrective termsCrs ,Crc . Similarly, the reference argument of latitude evolution λ

COF can be computed from compressed orbit model,

along with its equivalent profile λPE

, calculated using available PE parameters. One has: ( 32 ) )2cos(C)2sin(C ucusPECOF φ⋅⋅+φ⋅⋅=λ−λ

and a LS fitting on evolution of difference )( PECOF λ−λ allows to determine the corrective perturbation termsCus ,Cuc . Note that we are still temporary assuming ω = 0 to gain φ . From reference inclination evolution i

COF , compared with

the base functions constituting its equivalent PE interpolation model, the corrective perturbation termsCis ,Cic and i0 , idot can be obtained:

( 33 ) )2cos(C)2sin(C

Tiii

icis

dot0COF

φ⋅⋅+φ⋅⋅+

⋅+≅

Note that the base of interpolating functions is formed by: 1 (constant), T = t − t0 , sin(2⋅φ), cos(2⋅φ) ; again, one gets the profile for φ by temporary assuming ω = 0. The four coefficientsCis ,Cic , i0 , idot are then determined via LS . Finally, all the sinusoidal correction terms foreseen by PE formulation are achieved by a rotation transform, based on actual value of ω :

( 34 ) ⎥⎦

⎤⎢⎣

⎡ωωω−ω

=)2cos()2sin()2sin()2cos(

A

⎥⎦

⎤⎢⎣

⎡⋅=⎥

⎤⎢⎣

rs

rc

rs

rc

CC

CC

A

⎥⎦

⎤⎢⎣

⎡⋅=⎥

⎤⎢⎣

is

ic

is

ic

CC

CC

A , ⎥⎦

⎤⎢⎣

⎡⋅=⎥

⎤⎢⎣

us

uc

us

uc

CC

CC

A

PE COMPUTATION: OPTIMIZATION AND RESULTS An important tuning parameter is the validity time of each PE set, which represents the length of the orbital arc modeled through a single PE set. Of course, the longer the validity time, the less accurate the model is; shorter validity times yield higher accuracies. On the other hand, one may choose the accuracy that best fits a particular application and set the validity time accordingly. Table 1 shows a summary of the results obtained in two meaningful cases, considering a satellite orbit path extended over a couple of days. It is also implemented the requirement of partially “overlapping” the validity period of contiguous PE sets, as it happens for broadcast GPS/Galileo ephemeris. The first line refers the validity time set to 1 hour, while the second to 4 hours. The accuracies are computed by reconstructing the Cartesian state vector using the PE sets and comparing it with the state reconstructed from the COF polynomials. If one intends to appraise the total distance from the original IGS points, the error of the COF fit must be also taken into account: to assess the worst case, simply add 6 [cm] . For a validity time of 1 hour, the orbit reconstruction errors are in the order of a few [cm], with several PE sets showing an accuracy at the [mm] level. The mean accuracy across all sets is 4.5 [cm]. When the validity time is set to 4 hours, the errors raise to a mean accuracy of approximately 1 [m].

Table 1: Accuracies achieved by the PE sets with different validity times

Validity Time

[hours]

Number of PE Sets

Worst Set

Accuracy [m]

Best Set Accuracy

[m]

Mean Accuracy

[m]

1 49 0.096 0.004 0.029 4 10 2.313 0.395 1.081

Page 9: Fast Generation of Precision Orbit Ephemeris€¦ · Fast Generation of Precision Orbit Ephemeris ... GPS orbit profiles. ... one has to build an auxiliary orbit interpolation

The statistics in Table 1 are compiled by considering the highest error related to each set. The following graphs show the overall trend as a function of elapsing time, in the most interesting cases; they render time plots for the offsets { Δx, Δy, Δz } of each Cartesian component, w.r.t. the reference orbit state. Figure 11 and Figure 12 show the accuracy of the reconstructed position for two different PE sets, both with a validity time of 1 hour, referred to different orbit arcs. The former shows the worst set in terms of accuracy, with a peak error magnitude of 9.6 [cm], while the latter shows the best one, with maximum error of 4 [mm]. With similar practice, Figure 13 and Figure 14 show, respectively, the worst and best PE sets with a validity time set at 4 hours; highest errors are, respectively, of 2.3 [m] and 39 [cm].

Figure 11: Accuracy, by Cartesian component offsets, of

the worst PE set, with validity time set to 1 hour

Figure 12: Accuracy, by Cartesian component offsets, of

the best PE set, with validity time set to 1 hour

Figure 13: Accuracy, by Cartesian component offsets, of

the worst PE set, with validity time set to 4 hours

Page 10: Fast Generation of Precision Orbit Ephemeris€¦ · Fast Generation of Precision Orbit Ephemeris ... GPS orbit profiles. ... one has to build an auxiliary orbit interpolation

Figure 14: Accuracy, by Cartesian component offsets, of

the best PE set, with validity time set to 4 hours ABOUT THE UNSCENTED KALMAN FILTER (UKF) The Unscented Kalman Filter (UKF) is a powerful sequential algorithm, developed by Juliers, Uhlmann [6], [7], [8], [9], [10], [11], targeted to estimate the state vector of a dynamical system. It is especially suited for the case of non-linear systems, with output measurements z and evolution of state vector x perturbed by exogenous disturbances. In our application, noisy inputs w and v appear added on right hand side of state dynamics and observation equations:

( 35 ) )t(w)t),t(u),t(x(f)t(xdtd +=

( 36 ) kkkkk v)t,u,x(hz +=

)t(xx kk = , )t(uu kk = , )t(zz kk = , …

Tktt 0k Δ×+= , k = 0, 1, 2, …

In particular, vector w accounts for unknown perturbation forces and un-modeled dynamics; both w and v are treated as zero mean, white and uncorrelated Gaussian processes, characterized respectively by the power spectral density Q and the covariance matrix R . The fundamental diversity between Extended Kalman Filter (EKF) and UKF is that the latter is fully non-linear, i.e.: it does not require the calculation of any Jacobian or design matrix from the derivatives of plant model equations ( 35 ), ( 36 ) .

The UKF algorithm is based on the so called “sigma points”: nominally, a set of 2n+1 vectors properly selected in the state space, being “n” the state dimension. At step “k” of the sequential processing, the sigma points set is denoted as { )i(

kχ , i = 0,1, …, 2n } ; it is obtained

starting from knowledge of current (best) values for: - state vector estimate, kx - state vector covariance matrix, Pk through the following calculation scheme: ( 37 ) [ ]kk )k~n( QPA +⋅+=

( 38 ) AM = or such that: AMM =⋅ T

( 39 ) 0 MMS +−=

( 40 ) )i(x)i( kkkσ+=χ i = 0, 1, …, 2n

where )i(kσ is the i-th column of auxiliary matrix S . In previous equations, a number of elements are to be explained. Qk in ( 37 ) is a covariance matrix, corresponding to power spectral density Q and originated from integration of continuous time system dynamics over sample period ΔT. For instance, in the case of a linear state dynamics of the form:

( 41 ) )t(w)t(x)t(xdtd +⋅= F

one has:

( 42 ) ∫+

τ⋅τ⋅τ⋅τ= ++1k

k

t

t 1kT

1kk d),t()(),t( ΦQΦQ

( 43 ) )t(1k

1ke),t( τ−⋅+

+=τ FΦ

Still considering equation ( 37 ), k

~ is a derived

parameter, depending on a couple of tuning scalar figures α , k , whose selection is critical for a correct behavior of the algorithm; the original work of Juliers, Uhlmann should be addressed for a better understanding of their meaning. One has: ( 44 ) ( ) nknk~ 2 −+⋅α= ,

little values of α ( << 1 ) avoid that sigma points appear far away from kx , that is a sort of barycentre for the set { )i(kχ }.

Applicable values for α , k in the case of the application described in this paper are: ( 45 ) k = 0 , α << 1

At initialization, step k = 0, the sigma points { )i(0χ } are computed from the assumption of an initial

Page 11: Fast Generation of Precision Orbit Ephemeris€¦ · Fast Generation of Precision Orbit Ephemeris ... GPS orbit profiles. ... one has to build an auxiliary orbit interpolation

configuration P0 for the state error covariance matrix and an initial guess 0x for the state vector. The UKF re-interprets the well known Kalman Filter prediction and correction steps. It provides equivalent equations, where matrices have the meaning of covariances and are computed from sigma points set, that confirms to be a key factor to operate the UKF. Let us now recall the overall UKF processing phases foreseen at step “k”, arranged for the application cases described in this paper. It is assumed that sigma point set { )i(

kχ } is available.

First, one obtains a predicted estimate −

kx of state vector

and of its covariance matrix, −kP , by the following

computations:

( 46 ) )i( wxk

n2

0iik χ⋅=∑

=

( 47 ) -kkkx)i()i(e −χ=χ , i = 0, 1, …, 2n

( 48 ) ∑=

− ⋅χ⋅χ=n2

0ii

Tkkk w~)i(e )i(e P

with “weight” sets { wi }, { iw~ } defined as follows:

( 49 )

⎪⎪⎩

⎪⎪⎨

=+

=

=+

==

ni

i

2...,1, if k~n

0.5

0 if k~n

k~

wi

( 50 )

⎪⎪⎩

⎪⎪⎨

==

=α−++

==

ni

i

2...,1, if w

0 if )1(k~n

k~

w~

i

2

i

Then, the aim is to perform a correction of predicted values −

kx , −kP , based on availability of current system

read-out measurement, zk . In order to do that, a predicted measurement vector −

kz and auxiliary covariance matrices PHk and PXHk are to be computed, according to the following calculation scheme: ( 51 ) )t,u),i((h)i( kkkk

χ=ζ , i = 0, 1, …, 2n

( 52 ) )i( wzk

n2

0iik ζ⋅=∑

=

( 53 ) −−ζ=ζ kkkz)i()i(e , i = 0, 1, …, 2n

( 54 ) ∑=

⋅ζ⋅ζ=n2

0ii

Tkkk w~)i(e )i(eHP

( 55 ) ∑=

⋅ζ⋅χ=n2

0ii

Tkkk w~)i(e )i(eXHP

Finally the correction can be applied, achieving best current estimates for state vector and its associated covariance, kx and Pk : ( 56 ) PZk = PHk + Rk

( 57 ) Gk = PXHk ⋅ ( PZk ) –1

( 58 ) kx = −kx + Gk ⋅ ( zk - −

kz )

( 59 ) kP = −kP − Gk ⋅ PZk ⋅ T

kG

After that, one has to generate predictions for next step k+1 . First, re-compute the set of sigma points { )i(

kχ , i = 0,…, 2n }, by applying rules from ( 37 ) to

( 40 ) . Then, use each new sigma point point )i(k

χ as initial (Cauchy) condition to integrate the (non-linear) state vector dynamics, as represented by equation ( 35 ), from time instant tk to tk+1 . One gets for each sigma point )i(

kχ the “predicted

projection” )i(1k+

χ , applicable at next step k+1 :

( 60 ) )t),t(u),t(x~(f)t(x~dtd = , i = 0,…,2n

)i()t(x~kk χ= (initial condition)

)t(x~)i( 1k1k ++=χ

CONCLUSIONS AND FUTURE WORK All the mentioned algorithms, with the exception of the Levenberg-Marquardt routine, have been implemented with source code fully developed “in house”. They have been prototyped and tested in Scilab 5.2 and later converted in C++, with the only exception of the polynomial-fitting routines which are legacy FORTRAN software. The code was designed to be portable across platforms and was compiled using the GNU-g++ compiler. It has been tested so far on Mac-OSX 10.6.5 and Linux OpenSUSE 11.3. For a single satellite, referring to a couple of orbit days and a validity period of 1 hour (which corresponds to

Page 12: Fast Generation of Precision Orbit Ephemeris€¦ · Fast Generation of Precision Orbit Ephemeris ... GPS orbit profiles. ... one has to build an auxiliary orbit interpolation

about 49 PE sets), the entire computation process (in the binary compiled version) takes about 3 minutes of execution time - on an Intel Core 2 Duo 2.66 GHz processor with 4 Gb of RAM, although only one core is actually used. It must be noted, however, that the PE sets computation takes about 1 minute; 60% of the processing time is spent by pre-processing IGS input files and it is necessary to perform this stage only once. For example, if one intends to compute more PE sets with different validity times, the pre-processing implemented by UKF filtering and COF generation is to be executed only during the very first run. The polynomial COF orbit model, which constitutes the real input for PE computation phase, is saved in binary format and can be used multiple times, thus sparing a considerable amount of resources. It has been shown that the methods outlined in this work are not only reasonably fast on a common laptop computer, but they also achieve a very high accuracy both in the reconstruction and re-sampling of IGS data and performing computation of the PE sets. There are several degrees of freedom to optimize source code to achieve faster processing times, for example introducing a multi-threading capability. Furthermore, both the filter and the optimization algorithm are still undergoing a fine-tuning process. Remarkably, the PE computation strategy is considered original, as far as it was autonomously conceived, being not based upon other input references. The actual implementation fits well with batch processing applications, that need ephemeris data in archived format (e.g.: RINEX). Future work implies first verification of performance after discretization of PE parameters, like it is required for GNSS broadcast products. Then it will be considered an extension to real-time GNSS applications, by properly propagating reference orbit path in the nearby future. Additionally, it will be investigated a potential extension of the PE model, by introducing supplementary parameters: this is mainly to allow extension of their validity period, beyond the limit 4 hours. ACKNOWLEDGMENTS The activity was performed in the frame of a contract with Italian Space Agency (ASI) and National Air Navigation Services company (ENAV); as a matter of fact, computation of PE sets is a product required for a GNSS Simulator architecture that aims to emulate GPS/Galileo satellite Navigation systems in terms of Space, Ground and User segments.

We thank ASI, ENAV and Telespazio for the resources that were made available: not only to implement a contract, but also to perform research activities. REFERENCES [1] “Navstar GPS Space Segment/Navigation User

Interfaces”, IS-GPS-200E, June 2010 [2] European GNSS (Galileo) “Open Service Signal In

Space Interface Control Document”, European Union OD SIS ICD, Issue 1.1, September 2010

[3] Zhang, J. et al, “GPS Satellite Velocity and Acceleration Determination using the Broadcast Ephemeris”, Journal of Navigation (2006)

[4] IGS Web site: http://igscb.jpl.nasa.gov/ [5] A. Gelb, editor." Applied Optimal Estimation" . The

MIT Press, 1974 http://www.cs.unc.edu/~welch [6] S.J. Julier and J.K. Uhlmann. "A General Method

for Approximating Nonlinear Transformations of Probability Distributions", 1994.

[7] S.J. Julier and J.K. Uhlmann. A Consistent, Debiased Method for Converting Between Polar and Cartesian Coordinate Systems". The Proceedings of Aereosense: The 11th International Symposium on Aereospace/Defense Sensing, Simulation and Controls, Orlando, Florida. SPIE, 1997. Acquisition, Tracking and Pointing XI.

[8] S.J. Julier. Process Models for the Navigation of High-Speed Land Vehicles. PhD thesis, Robotics Research Group, Department of Engineering Science, University of Oxford, 1997.

[9] S.J. Julier, J.K. Uhlmann and H.F. Durrant-Whyte. "A New Approach for the Nonlinear Transformations of Means and Covariances in Linear Filters". IEEE Transactions on Automatic Control, 1996

[10] S.J. Julier, J.K. Uhlmann and H.F. Durrant-Whyte. "A New Approach for Filtering Nonlinear Systems". The proceedings of the American Control Conference, Seattle, Washington, 1995, pages 1628-1632

[11] J.K. Uhlmann. "Simultaneous map building and localisation for real time applications". Technical report, University of Oxford, 1994. Transfer thesis

[12] A. Kleusberg. "Analytical GPS Navigation Solution". Technical report, Department of Geodesy and Geoinformatics - University of Stuttgart

[13] D. Vallado. "Fundamentals of Astrodynamics and Applications, Third Edition". Microcosm Press and Springer NY, 2007.

[14] W.H. Press et al. "Numerical Recipies: The Art of Scientific Computing, Third Edition in C++". Cambridge University Press, 2007.