You are on page 1of 16

Autonomous Prediction of GPS and GLONASS

Satellite Orbits
Received June 2011; Revised January 2012
ABSTRACT: A method to predict satellite orbits in a stand-alone consumer-grade GNSS navigation device is
presented. The motivation for this work was to reduce the startup time of a navigation device without the use of
network assistance. The presented orbit prediction method works for both GPS and GLONASS, achieving median
accuracies of 58 and 23m in satellite position, respectively, for prediction up to four days ahead. A simple method
for prediction of the satellites clock offsets is also discussed. A basic analysis indicates that the method gives a line
of sight range error of 15 m, for both GPS and GLONASS, with most of the error due to the clock offset prediction.
Copyright #2012 Institute of Navigation.
INTRODUCTION
When standalone GNSS navigation devices are
turned on, there is a delay of at least 30s before they
begin to provide position information. This delay
occurs because of the time needed for signal
acquisition and tracking and after that one has to
wait until the navigation data is acquired. It takes
18s in GPS to send the three rst subframes
[1 (p. 127128)] and 8s in GLONASS to send the rst
four strings [2 (p. 1819)], which contain the
immediate or minimum data required for position-
ing. Furthermore, in both systems, this essential
information is repeated only once every 30s [1, 2]. If
the receiver does not have a direct view to the sky,
for example because of trees or buildings in the
way, the signal acquisition and tracking slows down
and the time until the rst positioning result can
take longer, even several minutes [3]. This is annoying
for typical users, and could have more serious conse-
quences in emergency or other special situations.
Therefore, there is a demand for methods which
could decrease the time from turning on a device to
the rst position estimate, known as the Time To
First Fix (TTFF).
The minimum information needed for positioning
in GNSS includes the satellite ephemeris param-
eters and the clock correction terms, which model
the difference between onboard time scale and
GNSSs system time. Because one of the reasons
for long TTFF is the time it takes to receive the
satellite ephemeris broadcast, alternative ways of
obtaining satellite position, velocity, and clock
information can be used to reduce it. Then the
satellite would be needed only for receiving the time
of the satellite clock or a pseudorange measurement.
This is faster because the satellite sends the time
stamp once every 6 s in GPS and every 2 s in
GLONASS [1, 2]. In addition, the information about
satellite position and velocity can be used to speed
up the signal acquisition in the GNSS receiver,
which is another cause of the startup delay for two
reasons. First, assuming that a crude estimate about
the receivers location and approximate time are
known, the satellite position coordinates can be used
to identify the visible satellites. Secondly, with the
information about satellite velocity information, the
range of possible Doppler frequency shifts can be
reduced. Altogether, by predicting the satellite
kinematic state, i.e., position and velocity as well as
clock correction terms, it would be possible to get
the rst positioning result in about 5 s [3] after
turning on the device.
Besides reducing TTFF, satellite orbit prediction
can also widen the capability of GNSS devices. In
some navigation cases, the user is indoors or in urban
canyons where the signal is strong enough to be
detected and to get pseudorange measurements, but
too weak or fragmental for reading the whole
ephemeris. Then the predicted orbit can make it
possible to both compute a position and reduce TTFF.
A widely used alternative to the navigation
message broadcast by the satellite is the use of
NAVIGATION: Journal of The Institute of Navigation
Vol. 59, No. 2, Summer 2012
Printed in the U.S.A.
MARI SEPPNEN, JUHA ALA-LUHTALA, ROBERT PICH, SIMO MARTIKAINEN,
and SIMO ALI-LYTTY
Tampere University of Technology, Tampere, Finland FI33101
119
assistance data servers that send data to the naviga-
tion device that enable the computation of satellite
position, velocity and clock offset. However, there
are problems associated with such assistance data:
Connection to the assistance server may fail or the
user may consider the assistance data connection to
be too expensive. Furthermore, many navigation
devices are not even equipped to make a network
connection. There is therefore interest in methods
that can be implemented entirely in the navigation
device, without network connection.
In self-assisted GNSS, the aim is to attain proper-
ties similar to assisted GNSS, without a network
connection. This is accomplished by generating
within the device the information that would have
been received as assistance data. In this paper,
satellite orbits are predicted using only the satellite
broadcast data that was received the previous times
the device was in operation. This technique has been
implemented in commercial products and is outlined
in the literature [3, 4], but these publications do not
give a detailed description of the algorithms. We
have developed a related method and believe its
accuracy is competitive compared to the other
methods. In our previous paper [5] we gave a detailed
presentation of the ephemeris prediction algorithm
for GPS satellites. The aim of this paper is to present
an extended version of the algorithm that also covers
the GLONASS satellites. Moreover, we present a
study of satellite clock offset prediction and of the
positioning error that can be expected with the
position and clock offset predictions.
The paper begins with a description of the
satellites equation of motion. It includes only the
forces that have the greatest effect on satellite orbit.
Then, the reference frames used in the computation
are introduced and the ephemerides structure and
accuracy in GNSS is discussed. After these introduc-
tory sections, the actual algorithm is presented and
its performance in GPS and GLONASS is evaluated.
The next section discusses the prediction of the clock
offsets. Finally the errors due to the predicted
satellite orbit and predicted clock offsets are
combined in order to consider the total error in the
range measurement. The paper concludes with a
short summary.
FORCE MODEL
The orbit prediction algorithm introduced in this
work is based on the satellite equation of motion
r a t; r (1)
where r is the second time derivative of the satellite
position vector and a is a vector valued function
which gives the satellite acceleration vector as a
function of time and position. Given the satellite
position and velocity at instant t
0
, say r(t
0
) =r
0
and
v(t
0
) =v
0
, we can compute the satellite position at
any other instant t by double-integrating Equation (1)
with respect to time. Usually, in order to predict
GNSS satellite orbits with very high accuracy, a
large number of different forces must be included in
the model. However, we have taken into account only
the four forces that have the greatest inuence on a
satellite orbit at GNSS satellite altitude, and write
the acceleration as
a t; r a
g
a
moon
a
sun
a
srp
(2)
where a
g
, a
moon
, a
sun
and a
srp
are the accelerations
due to Earth gravitation (taking into account the
unsymmetrical mass distribution of the Earth),
lunar gravitation, solar gravitation, and solar
radiation pressure, respectively.
If the Earth was a uniform sphere, the gravita-
tional acceleration would depend on the satellite
radial distance r only, and the gravity potential U
would be of the form
U r
GM
E
r
where G is the gravitational constant and M
E
is the
mass of the Earth. When the unsymmetrical mass
distribution of the Earth is taken into account, the
gravity potential U can be written in the form of
the spherical harmonics expansion [6 (p. 57)]
U r; l;
GM
E
r

1
n0

n
m0
_
R
E
r
_ _
n
P
nm
sin
C
nm
cos ml S
nm
sin ml
_
(3)
Here the potential Uis not only a functionof satellites
radius r, but also the longitude l and latitude . The
constant R
E
in this formula is the Earths radius and
the terms P
nm
are the associated Legendre polyno-
mials of degree n and order m. The coefcients
S
nm
and C
nm
in the formula are experimentally
determined constants whose magnitude decreases
very fast with increasing n and m. Therefore, the
potential can be approximated by taking into account
only the rst few terms. At GNSS satellite altitude,
the terms up to the degree and order 4 are signicant
[7 (p. 54)], but we use terms up to the degree and order
8. The values for the geopotential coefcients, C
nm
and
S
nm
, are obtained from the EGM2008 model [8].
The acceleration due to Earth gravitation can be
computed as a gradient of the gravity potential U.
We have used a recursive algorithm introduced by
Cunningham [9] and later extended by Mtris
et al. [10] to compute the derivatives. The algorithm
takes the partial derivatives with respect to the Earth
centered Earth xed (ECEF) position vector r
e
, which
is related to the satellite inertial position by the
transformation r
e
Rr , where R is the transforma-
tion matrix. The gradient of the potential U gives
120 Navigation Summer 2012
the acceleration in ECEF coordinates, which can be
transformed to the inertial reference frame by the
formula [6 (p. 68)]
a
g
r R
1
rU r
e
(4)
After the Earths gravitation the second biggest
acceleration components in the satellite equation of
motion are caused by the gravitational forces of the
Moon and the Sun. To compute the acceleration
acting on the satellite because of the gravitational
force of any celestial body, one can use the form
a
cb
GM
r
cb
r
r
cb
r k k
3

r
cb
r
cb
k k
3
_ _
(5)
where M is the mass of the celestial body, r
cb
is its
position in the Earth centered inertial reference
frame, and r is the position of the satellite in the
same reference frame. Besides the Moon and the
Sun, this formula can be used also for computing
the planetary accelerations, but we have ignored
these because their inuence on the satellite orbit
is negligible.
The orbits of the Sun and the Moon must be known
in order to compute the gravitational acceleration
with the formula (5). In our model we use simple
models presented in [6 (p. 7073)] to compute the
lunar and the solar coordinates. The coordinates
are accurate to about 0.1-1% [6].
The last acceleration component in Equation (2)
arises when a satellite reects and absorbs photons
emitted by the Sun. Taking into account only the
Sunwards component of radiation we obtain the
formula
a
srp
a l P
0
1 E
AU
2
r
2
sun
A
m
e
sun
(6)
This kind of model for solar radiation pressure
(SRP) is called also the Cannonball model [11]. In
Formula (6) the factor r
sun
is the distance from
satellite to Sun and e
sun
is a unit vector fromsatellite
to Sun. The factor l is a shadow function, whose
value equals one when satellite is in sunlight, zero
when it is in umbra and something between
when it is in penumbra. We have used a conical
shadow model described in the book Satellite Orbits
[6 (p. 8083)]. The remaining factors are constants:
AU is the astronomical unit, P
0
is the solar radiation
pressure at the distance of 1 AU from the Sun, E is
the reectivity coefcient of the satellite, m is the
mass of the satellite and A is the satellites surface
area. For these constants we have used values
shown in Table 1.
It is hard to know the exact mass, surface area, or
reectivity of the satellite. These numbers are also dif-
ferent for different satellite types. For these reasons,
the acceleration formula (6) is multiplied with an
additional parameter a. The value of this parameter
is estimated based on real GPS and GLONASS orbital
data. We estimated a separately for each satellite
using an extended Kalman lter, in which the mea-
surement model is discrete-time and the state model
is continuous-time. This kind of lter is presented in
[12 (p. 278)] and [13 (p. 405)]. Details of the state and
measurement models for this case are presented
in[7]. As measurement data we usedprecise ephemeris
positions published by the National Geospatial-
Intelligence Agency (NGA) [14] and the International
GNSS Service (IGS) [15]. The estimation of the
parameter a was done several times using different
periods during the GPS weeks 15921617. The mean
RMS value for a 7day arc was 8.0mfor GPS satellites
and 1.8m for GLONASS satellites. The RMS values
show that our model works signicantly better for
GLONASS satellites. The possible reasons for this
are discussed in thetest section. The resulting values
varied a little bit as a function of time, especially
during times when the satellite is in umbra.
However, we wanted a constant parameter for each
satellite and therefore took the satellite-specic
median. Results of this estimation process are shown
in Tables 2 and 3.
As mentioned, the a parameters were estimated
for the constellation which was in operation during
GPS weeks 15921617. When the satellite constella-
tion is changed, the parameters should be updated
or else the prediction accuracy will be slightly
decreased. Fortunately new satellites are added very
seldomly. Of course, changes in the constellation can
Table 1Constants in the solar radiation pressure formula
P
0
[Nm
2
] E AU [km] A [m
2
] m [kg]
4.56 10
6
0.21 149 597 870.691 13.4 1075
Table 2Solar radiation pressure parameters for GPS satellites
PRN 1 2 3 4 5 6 7 8
a 1.439 1.484 1.337 1.335 1.434 1.339 1.441 1.325
9 10 11 12 13 14 15 16
1.341 1.323 1.481 1.453 1.479 1.479 1.454 1.490
17 18 19 20 21 22 23 24
1.445 1.488 1.474 1.475 1.465 1.470 1.498 1.356
25 26 27 28 29 30 31 32
1.551 1.330 1.326 1.469 1.445 1.334 1.451 1.350
121 Seppnen et al: Autonomous Prediction of GPS and GLONASS Satellite Orbits Vol. 59, No. 2
be handled by updating the a parameters a few times
per year, for instance, as a part of a software update.
To summarize, in this section we presented a
motion model for GNSS satellites. We can now
introduce a vector valued function, q which, given
satellite position and velocity at instant t
0
, returns
the satellite position and velocity at another instant
t
f
. The denition for this kind of function is
q t
0
; t
f
; r
0
; v
0
_ _

r t
f
_ _
v t
f
_ _
_ _

r t
0

_
t
f
t
0
v t
0

_
t
f
t
0
a t; r dt
_ _
dt
v t
0

_
t
f
t
0
a t; r dt
_
_
_
_
(7)
We have used the RungeKutta-Nystrm -method
[16 (p. 284), 6 (p. 124)] to solve the equation of
motion. The algorithm is an efcient integration
method for second order differential equations in
which the second derivative (the acceleration a) is
independent on the rst derivative (the velocity).
REFERENCE FRAMES
The International Earth Rotation and Reference
Systems Service (IERS) maintains two important
reference systems: a Celestial Reference System
(CRS) and a Terrestrial Reference System (TRS).
CRS is a reference system whose coordinate axes
maintain their orientation with respect to distant
stars. The origin of this reference frame is in the
center of the Earth and Earth is in an accelerated
motion while orbiting around the sun. Therefore
CRS is not precisely inertial, but is an adequate
approximation of an inertial reference frame for our
purposes. TRS is an Earth xed reference frame. Its
origin is the Earths center of mass and its z-axis is
the mean rotational axis of the Earth. This mean pole
of rotation was dened, because the Earths instanta-
neous rotation pole moves with respect to Earths
crust whereas in the Earth xed reference frame the
axes must be pointing at a xed point on the Earths
surface. The coordinate transformation between these
two reference systems can be written as
r
TRS
t W t G t N t P t r
CRS
(8)
where the matrices W, G, N and P describe polar
motion, Earth rotation, nutation, and precession,
respectively. The transformation matrices are time
dependent and thus the vector r
CRS
, being constant
in CRS, is time dependent after transformation to
TRS. We follow [6] and use IAU76 theory when
computing the precession matrix P and nutation
theory IAU80 for matrix N, although more recent
models IAU2000A and IAU2000B are available and
can be found from [17].
The third matrix G describes the rotation of the
Earth. In order to compute it, we need Greenwich
Mean Sidereal Time (GMST), which can be computed
as follows. Starting from GPS time, we rst compute
the corresponding Julian date as JD
GPS
=2444244.5
+t/86400 s, where t is the number of seconds elapsed
since the beginning of GPS time, 6.1.1980. We express
the Julian date (JD) in Universal Time UT1 by
subtracting the leap seconds that have been added
to Coordinated Universal Time (UTC) since the
beginning of GPS time, and adding the difference
dUT1=UT1UTC. That is
JD
UT1
JD
GPS

dUT1
86400 s
The number of leap seconds is typically known by
the GPS device, because the current number of leap
seconds is part of the broadcast message and new
leap seconds are added only seldomly. However the
time difference dUT1, which is one of the Earth
orientation parameters (EOP), is not necessarily
known when starting the prediction. This time
difference is small (|dUT1|<0.9 s) and it does not
cause noticeable error if we neglect it.
Next JD
UT1
is divided into two parts, such that the
rst part, JD
0
h
UT1
, is the JD at the beginning of the
current day and the second part, UT1, is the rest of
JD
UT1
. When computing these, one must note that
the Julian date integer part changes at noon, but
0 h universal time is at midnight. Also the UT1 must
be given in seconds. Taking these facts into account
we can apportion as follows:
JD
0
h
UT1
JD
UT1
0:5 b c 0:5
UT1 JD
UT1
JD
0
h
UT1
_ _
86400 s
Now we can compute the Greenwich Mean
Sidereal Time in seconds with the formula [6, 17]
GMST 24110:54841 1:002737909350795 UT1
8640184:812866 T
0
0:093104 T
2
6:210
6
T
3
(9)
Table 3Solar radiation pressure parameters for GLONASS satellites
PRN 1 2 3 4 5 6 7 8
a 2.155 2.165 2.132 2.170 2.154 2.149 2.144 2.144
9 10 11 12 13 14 15 16
2.137 2.147 2.134 2.142 2.136 2.145 2.142 2.139
17 18 19 20 21 22 23 24
2.146 2.147 2.129 2.147 2.144 2.158 2.107 2.165
122 Navigation Summer 2012
where the time arguments T and T
0
are
T
JD
UT1
2451545
36525
T
0

JD
0
h
UT1
2451545
36525
i.e., the number of Julian centuries of Universal
Time elapsed since 2000 January, 1.5 UT1 at the
current time and at the beginning of the day, respec-
tively. Furthermore, the equation of equinoxes [6, 17]
GAST GMST c cose 0:002649 sin
0:000013 cos
(10)
is used to compute Greenwich Apparent Sidereal
Time (GAST). In this equation the parameters c, e
and come from the nutation theory and . denotes
that the number is presented in arcseconds. Finally,
we can compute the transformation matrix
G t R
z
GAST
In this equationR
z
is a rotation around the z-axis, i.e.,
R
z
g
cosg sing 0
sing cosg 0
0 0 1
_
_
_
_
(11)
After multiplying the vector r
CRS
with precession,
nutation, and Earth rotation matrices, it is in a
Terrestial Intermediate Reference System (TIRS),
whose z-axis points to the Celestial Ephemeris Pole
(CEP). We assume that the orientation of Earths
rotation axis is the same as the orientation of this
CEP pole. CEP is not xed with respect to the
surface of the Earth, but performs a periodic motion
around its mean position, called polar motion. The
motion is small, having a radius of under 10 m, but
it is important to take it into account. The rotation
matrix describing the polar motion is
W t R
y
x
p
_ _
R
x
y
p
_ _
where x
p
and y
p
are the polar motion parameters and
R
x
and R
y
are simple rotation matrices around the
x- and y-axes. Together with dUT1 they are called
also Earth Orientation Parameters (EOP). The daily
values for these parameters can be found from the
homepage of IERS [18].
IERSreports the observed values for EOPand quite
accurate short term predictions. However, the Earth
orientation parameters are not long-termpredictable,
which causes some problems while trying to do the
prediction in a device without any network connec-
tion. We cannot form a prediction model that would
be valid for the life of the device, i.e., years. Neither
are the EOP parameters part of the broadcast
message yet, though this fact will be changed in the
future as the new L1C signal comes into use [19].
However, later in the section Initial Value Improve-
ment we will show how to infer these parameters
based on the collected broadcast ephemeris data.
When transforming the position vector r
CRS
to the
TRS one matrix at a time according to Equation (8),
every intermediate step is also a reference frame.
For example, when multiplying with matrix P we
get a mean of date (mod) system and after multiplied
also with nutation matrix N we get a true of date
(tod) system. Figure 1 illustrates the connection
between CRS and TRS, as well as the intermediate
reference frames between them. Next we will
present the reference frames we have used, and
illustrate how the transformation matrices between
them are compounded of those four matrices
connecting CRS and TRS.
The broadcast position and velocity we get from
broadcast ephemeris are in Earth xed reference in
the beginning. In GPS the reference frame is
WGS84, which is so close to TRS that we assume
these two to be equivalent. In GLONASS the
received ephemeris is in the Earth xed PZ90.02
reference frame [20] but it can be transformed to
WGS84 or TRS by a translation of origin [21]
r
WGS84
r
PZ90:02

0:36 m
0:08 m
0:18 m
_
_
_
_
(12)
Fig. 1Connection between the IERS reference systems CRS and
TRS. Transformation matrices and intermediate reference frames.
The inverse of a transformation matrix is its transpose.
123 Seppnen et al: Autonomous Prediction of GPS and GLONASS Satellite Orbits Vol. 59, No. 2
Now for numerical integration we need an inertial
reference frame and we choose to use the TIRS
system at epoch t
0
, the initial epoch for the equation
of motion. Before starting to predict satellite position
according to the model (7), we need to transform the
position and velocity vectors to this inertial reference
frame, denoted by subscript IN. For the position
vector, the transformation from TRS at an arbitrary
time t to the TIRS system at epoch t
0
is
r
IN
r
TIRS t
0

G t
0
N t
0
P t
0
P
T
t N
T
t G
T
t W
T
t r
TRS
(13)
However, when we start the prediction we have
t =t
0
and the transformation reduces to
r
IN
W
T
t
0
r
TRS t
0

(14)
For velocity, the transformation from TRS to IN
can be computed by differentiating Equation (13)
with respect to time. When differentiating, the other
matrices are treated as constants and the time
dependence of the Earth rotation matrix mtxG
T(t)
is taken into account [5]. Denoting the transformation
matrix from reference frame A to B as R
B
A
, we have
R
TIRS
CRS
GNP and R
CRS
TIRS
R
TIRS
CRS
_ _
T
P
T
N
T
G
T
. With
these notations the velocity transformation is [5]
v
IN
R
TIRS
CRS
t
0
R
CRS
TIRS
t
W
T
t v
TRS
v W
T
t r
TRS
_ _ _ _ (15)
where v=[0 0 o]
T
is the angular velocity vector of
the Earths rotation.
After predicting the satellite position and velocity
at time t in the future, we have to do the transforma-
tions the other way around. Solving r
TRS
and v
TRS
from Equations (13) and (15) we get
r
TRS
W t R
TIRS
CRS
t R
CRS
TIRS
t
0
r
IN
(16)
v
TRS
W t R
TIRS
CRS
t R
CRS
TIRS
t
0
v
IN

v R
TIRS
CRS
t R
CRS
TIRS
t
0
r
IN
_ _

(17)
When the satellite orbit is predicted, we actually
do not know the exact matrix W t . However, we
might know the polar motion parameters x
p
and y
p
at the beginning of the prediction and because
they do not change much in a few days long
prediction, we can approximate the matrix by
W t
0
W x
p
t
0
; y
p
t
0

_ _
. Similarly, the third Earth
orientation parameter dUT1 is needed to compute
the rotation matrices R
TIRS
CRS
t
0
and R
TIRS
CRS
t . If we
set dUT1 =0 when computing these matrices, we
do two approximations: setting dUT1(t
0
) =0 causes
a constant offset and setting dUT1(t) =dUT1(t
0
)
neglects the variation of dUT1 during the prediction.
The former approximation does not lead to signi-
cant errors, but neglecting the change in dUT1
results in median error of 4.2m in the satellite
position after a 4day long prediction. However, this
approximation is necessary because the value of
dUT1 may, in general, be unknown to the device
and its evolution is very difcult to predict. By
making these approximations, we can introduce a
transformation function x, which depends both on
time and the polar motion parameter values but is
independent of dUT1 which is set to zero. The
transformation function transforms the state of the
satellite from TRS to the inertial reference frame
IN, that is
Here p x
p
y
p
_
T
is the vector of polar motion
parameters. The inverse transformation, from IN to
TRS, is denoted j
1
. With these notations, we can
write down the prediction function (7) in the TRS
system. We end up with the formula
q
TRS
t
0
; t
f
; r
TRS
t
0
; v
TRS
t
0
; p
_ _

r t
f
_ _
v t
f
_ _
_ _
TRS
j
1
q t
0
; t
f
; j
r t
0

v t
0

_ _
TRS
; t
0
; p
_ _ _ _
; t
f
; p
_ _
(18)
In addition to the transformations j and j
1
,
which are done at the beginning and at the end of
the prediction, we need to do some transformations
during the prediction. In the previous section it was
mentioned that the satellite position vector has to
be represented in an Earth xed reference frame to
calculate the acceleration due to the Earths gravita-
tion. TRS is an Earth xed reference frame, so we
can do the transformation to it using Equation (16).
Thereforethe transformation matrix R presented in
Equation (4) is W t R
TIRS
CRS
t R
CRS
TIRS
t
0
. To speed up
the numerical integration, we approximate the
matrix R. If the length of prediction is only some days,
r
v
_ _
IN
j
r
v
_ _
TRS
; t; p
_ _

R
TIRS
CRS
t
0
R
CRS
TIRS
t W
T
p r
TRS
R
TIRS
CRS
t
0
R
CRS
TIRS
t W
T
p v
TRS
o W
T
p r
TRS
_ _ _ _
:
_ _
124 Navigation Summer 2012
the precession and nutation matrices remain almost
unchanged. We can write PP
T
% I and NN
T
% I and
thereby get the following approximation:
W t G t N t P t P
T
t
0
N
T
t
0
G
T
t
0
%W t G t G
T
t
0

Multiplication with the matrix G rotates the refer-
ence frame according to the Earths rotation. Mainly
it is a simple rotation around the z-axis, with the
angular speed of the Earth. If the x-axis points to a
certain meridian at the initial time t
0
, then at the
time t it points to the direction we get by rotating
the x-axis around the z-axis with an angle of (t t
0
)o.
Thus,
W t G t G
T
t
0
W t R
z
t t
0
o
is the matrix R used to transform the inertial vector
to an Earth xed reference frame when computing
the Earth gravitational acceleration. Its transpose
is then used to transform the acceleration vector to
the IN reference frame. Again, the matrix W t is
replaced with W t
0
while predicting.
EPHEMERIS REPRESENTATION IN GPS
AND GLONASS
In GPS the satellite position is calculated using
the 16 ephemeris parameters that are broadcast by
the satellite. One of these parameters is called the
time of ephemeris (TOE). With one received naviga-
tion message, i.e., one set of ephemeris parameters,
the satellite position can be calculated at any instant
within 2 h from the TOE. Going outside of this
range, the accuracy of the ephemeris deteriorates
rapidly, as illustrated in Figure 2. Fortunately, the
satellite starts to send a new ephemeris every second
hour. The GPS satellite velocity can be computed by
differentiating the ephemeris parameters with
respect to time. The equations for computing the
GPS satellite broadcast velocity are presented for
instance in [22]. The obtained position and velocity
coordinates are in WGS84 reference frame which is
very close to IERSs TRS, and in this paper we
neglect the difference.
In GLONASS the broadcast ephemeris is given in
the form of satellite position and velocity at the
TOE instant, which is denoted t
b
in the GLONASS
ICD [2]. In addition, the current value for the
acceleration originating from the gravitational inter-
actions with the Sun and the Moon is given. This
acceleration is part of a simple motion model that
can be used to solve the satellite ephemeris at any
other time instant within about 15 minutes from t
b
.
A new navigation message is broadcast every half
hour. In addition, the state coordinates in the
GLONASS broadcast are represented in a different
reference frame, PZ90.02, so we have to do the
transformation (12).
The GLONASS broadcast ephemeris is less
accurate than that of GPS, as illustrated in Figure 2.
In this gure, the error is computed using the IGS
precise orbits [15] as a reference trajectory.
INITIAL VALUE IMPROVEMENT
We have observed that the dynamic model gave
good predictions when using precise ephemeris
position and velocity as an initial condition but the
predictions were about ten times worse when using
the less accurate broadcast position and velocity.
Therefore it is necessary to nd means to improve
the satellites initial state.
In the previous sections we presented how to
predict the satellite orbit by solving its equation of
motion using the satellite positions and velocity at
t
0
as initial conditions. In addition, we need to know
the two Earth orientation parameters (x
p
and y
p
) in
order to be able to calculate the needed transforma-
tion matrix W t
0
. The third Earth orientation
parameter, dUT1, is also needed when computing
the matrices R
TIRS
CRS
t , but we set it to zero when doing
the prediction. We do not have an analytical nor an
Time with respect to TOE [h]
[m]
GLONASS
GPS
3 2 1 0 1 2 3
0
1
2
3
4
5
Fig. 2The median error in the position coordinates (r
x
, r
y
, and r
z
) of
satellite broadcast ephemerides
Fig. 3The nonlinear function f
k
predicts or connects satellites
states from t
0
to t
k
. This connection depends on the vector x, which
includes satellites velocities and the polar motion parameters. As
measurements we have the satellites state vectors y
k
, which are
obtained from the broadcast ephemeris. At ^ x the predicted states
f
k
^ x fit the measurements best in the least squares sense
125 Seppnen et al: Autonomous Prediction of GPS and GLONASS Satellite Orbits Vol. 59, No. 2
empirical model for computing parameters x
p
and y
p
accurately enough for the lifetime of the device and
according to our assumptions we do not have a net-
work connection to get updated information related
to these parameters. Therefore, the observation that
the polar motion parameters can be solved from the
broadcast ephemeris is an important detail. Other-
wise this algorithm would not be suitable for a
totally self-assisted GNSS device. We now call the
satellite initial state and polar motion parameters
the initial conditions, and present how the values of
these initial conditions are computed.
The rst thing we do to improve the initial state
accuracy is to add an antenna correction to the
broadcast ephemeris position. The antenna correc-
tion is the difference between the satellite center of
mass and its antenna phase center. When position-
ing with GNSS, the receiver measures the pseudor-
anges to the satellites using the signal transmitted
from the satellites antennas, so the broadcast
ephemeris position describes the position of the
satellite antenna. However, the dynamic model used
inorbit prediction describes the motion of the
satellite center of mass. For GPS satellites we have
provided antenna offsets used by NGA [23], and for
GLONASS we use the values from [24]. For instance,
the offset for GPS Block IIA satellites is
d 0:2794 m 0:0000 m 0:9519 m
T
The offset vectors d are given in a satellite body
xed reference frame. We now let r be the satellite
position in an Earth centered reference frame, for
example TRS, and let e
sun
be a unit vector from
satellite to Sun in the same reference frame. Then
the unit vectors pointing to the x, y, and z directions
of satellite body xed frame can be written as
u
z

r
r k k
; u
y

e
sun
u
z
e
sun
u
z
k k
and u
x

u
y
u
z
u
y
u
z
_
_
_
_
in TRS. The unit vector u
z
is pointing toward the
Earth, u
y
is chosen such that it is perpendicular to
the plane containing both the Earth and the Sun,
and u
x
is dened such that it completes the
right-handed system. Using these, the antenna
offset in TRS can be written as
d d
x
u
x
d
y
u
y
d
z
u
z
:
The antenna offset vector d gives the antenna posi-
tion coordinates with respect to the center of mass of
the satellite. The center of mass r
com
is then given by
r
com
r d:
The opposite correction, from center of mass to
antenna phase center, could be done after the predic-
tion. However, in our tests we do not do it, because
we compare the predicted satellite positions to the
precise ephemeris, which is given in terms of the
center of mass.
Like the solar radiation pressure parameters a,
the antenna offset values should also be updated
when a new satellite is added to the constellation
or when an old satellite is removed. This update
can be done as a part of a software update.
After applying the antenna correction, the
satellite position coordinates can be used together
with the motion model to nd estimates for the
satellite velocity and polar motion parameters by
tting them to the broadcast data. Let t
0
denote
the time instant related to the latest received
broadcast ephemeris. For GLONASS this is the
instant of the position and velocity coordinates in
the ephemeris. For GPS the time instant can be
chosen to be anything within 2 h from the time
of ephemeris (TOE) of the latest broadcast ephem-
eris, because the accuracy inside this range is uni-
form. For prediction, it is convenient to choose t
0
to
be later than TOE, for instance TOE+1.5 h. After t
0
is chosen, the antenna corrected broadcast ephem-
eris position, r
0
r t
0
, can be computed as explained
above. From Equation (18) we see that in order
to predict states of satellites, we still need the
satellite initial velocity and the polar motion param-
eters at instant t
0
. Therefore, if there is available
ephemeris data from n satellites, the vector of
unknowns is
x
v
1
0

v
n
0
p
0
_

_
_

_

v
all
0
p
0
_ _
; (19)
where v
i
0
is the velocity of the i
th
satellite and
p
0
x
p
t
0
y
p
t
0

_
T
are the polar motion parameters.
We introduce a function f which, starting from the
desired initial instant t
0
, computes the satellite state
at t
k
, i.e.,
r
i
t
k

v
i
t
k

_ _
f
i
k
x #
TRS
t
0
; t
k
; r
i
0
; v
i
0
; p
0
_ _
; i 1; . . . n (20)
Here #
TRS
, dened in Equation (18), is the function
that predicts satellite states by integrating a
nonlinear differential equation and carrying out the
required transformations between the TRS and
the inertial reference frame. Therefore, it represents
the connection between a satellites two TRS states,
for instance broadcast states. Moreover, the function
#
TRS
models the effect of the polar motion parameters
p
0
, which are buried in the TRS state representation.
Because the initial moment t
0
and antenna
corrected position r
0
are assumed to be xed, they
are left out of the arguments of the function f.
Furthermore, in the simulations of this paper we
use ve satellite broadcasts, which all have the same
initial instant t
0
. Identical instants were assumed
for simplicity and the algorithm can equally well
126 Navigation Summer 2012
handle broadcasts having slightly different instant
t
0
. Indeed, this is an important notion as in
real applications the t
0
differs from broadcast to
broadcast, depending on what data the receiver has
collected. However, one should not use too old, say
over a week old, broadcasts. This is because the polar
motion parameters p are changing with respect
to time and this is not taken into account in our
algorithm.
The least square tting needs some observation
data. Assume that there is some broadcast data
available, i.e., positions and velocities of n satel-
lites at the instants t
k
. We might have one or more
observations for each satellite and the time
indexes of the observations might differ from one
satellite to another. Therefore, the set of time
indexes k would actually be dependent on the
satellite in question. However, we again simplify
a little bit and present the algorithm in the form,
where the number of observations m and time
instants k =1, . . ., m related to these observations
are the same for every satellite. To conclude, we
have a set of satellites states y
i
k
as measurements
and these can be described as
y
i
k
f
i
k
x
i
k
; i 1; . . . ; n k 1; . . . ; m (21)
Here the vectors
i
k
are the differences between the
measured state at instant t
k
and the one which was
predicted using the nonlinear function f
i
k
dened in
Equation (20) The Figure 3 illustrates these notations.
All the observation vectors from different satellites
at different time instants can be combined into one
measurement vector y. The corresponding combined
nonlinear function is denotedf and the residual vector
. With these notations, the nonlinear weighted least
squares problem is dened as nding the state ^ x that
minimizes the quadratic loss function

T
D y f x
T
D y f x
Here the diagonal matrix Dis a weight matrix that
has a value of (1000)
2
in those elements correspond-
ing to velocity components and ones elsewhere.
These weights are empirical and we have found that
they work well in this case. Furthermore, to use only
satellites positions as measurements instead of
position and velocity, the weights corresponding to
the velocity components can be set to zero.
A nonlinear least squares problem (LSQ)
^ x arg min
x
y f x
T
D y f x
can be solved with the Levenberg-Marquardt
method. The algorithm requires an initial iterate
for x. An initial iterate near the true value speeds
up the convergence of the least squares tting
algorithm. For the initial velocities v
all
0
we use
the broadcast velocity v
BE
t
0
. For polar motion
parameters we use x
p
=0.05 arcsec and y
p
=0.35
arcsec, which is the approximate center of the polar
motion spiral during the years 20042008. In
practice the initial iterate for polar motion could be
taken from the results of a previous LSQ solution.
From the LSQ solution we obtain estimates for the
polar motion parameters ^p
0
and for the velocities ^v
all
0
at the time instant t
0
. The orbit prediction for future
times then can be computed using the methods
described in previous sections.
TESTS
For GPS satellites the least squares tting can be
done with only received navigation message. As
illustrated in Figure 2, GPSs broadcast ephemeris
accuracy is uniform within 2 h from the time of
ephemeris. The same holds true also for the velocity,
except the accuracy of velocity deteriorates a bit
earlier. Therefore, we can compute satellite position
and velocity at any instant inside this range, and
use them as initial conditions or observations. How-
ever, we have found that the algorithm works better
if the initial instant t
0
of the prediction and the
moment or moments of observations t
k
are chosen
apart from each other. In paper [5] we chose the initial
moment of prediction as TOE+1.5 h and the
measurements as the satellite state at t
1
=TOE1.5 h.
Now in this paper, we do not use the whole state,
but only the position components as observations.
Doing this improves the accuracy of the solved polar
motion parameters, and does not signicantly affect
the prediction accuracy.
Using only the position components as measure-
ments, we need more than one measurement instant
in order to keep the least squares problem overdeter-
mined. As one can see from Equation (19), the
number of variables is 3n+2, where n is the number
of received satellites. Therefore, one position
measurement from each satellite, or 3n measure-
ments, is not enough. However, two position
measurements for each satellite is already enough
to make the system overdetermined. Therefore, in
the tests of this paper we made the following choices:
the initial instant is t
0
=TOE+1.5 h and the mea-
surement instants are t
1
=TOE and t
2
=TOE1.5 h.
For GLONASS the structure of the broadcast
ephemeris is different. The position and velocity
are obtained only at one time instant, which can be
used to integrate the orbit with the simple motion
model from GLONASS ICD [2] about 15 minutes to
each direction. Compared to GPS the GLONASS
broadcast ephemeris is accurate for only a very short
time (Figure 2). Therefore, in order to achieve good
127 Seppnen et al: Autonomous Prediction of GPS and GLONASS Satellite Orbits Vol. 59, No. 2
prediction results also with GLONASS we have to use
more than one received ephemeris parameter set. For
this work it was decided to use the position and velo-
city obtained without integration from two broadcast
ephemerides. When two ephemeris parameter sets
are used, the best separation between the initial and
measurement instant would be about 6 hours (see
Figure 4). However, this kind of situation is never
achieved in practice because the satellite is on the
other side of the Earth after 6 hours. A more feasible
time difference is about 12 hours and the algorithm
works pretty well for this situation also. The disad-
vantage of using a long separation like 12 hours is
that the required computational time increases in
comparison to GPS.
The tests were done using broadcast ephemerides
from GPS weeks 16181634. The predicted positions
were compared to the NGA precise ephemeris
positions for GPS satellites and to the IGS precise
ephemeris positions for GLONASS satellites. The
norms of theprediction errors for a 4day long
interval are shown in Figure 5. Here the time differ-
ence between broadcast ephemerides for GLONASS
satellites is 12 hours. The median error is shown by
the line inside the box. The upper and lower edges
of the box show the 75% and 25% quantiles of the
errors, respectively. The upper and lower whiskers
extending from the box show the 95% and 5%
quantiles of the errors, respectively. For one day long
prediction the results are almost the same for GPS
and GLONASS satellites. For longer prediction
intervals we see that the errors get larger for GPS
satellites. This difference in the prediction results
is not because of poorer accuracy of initial values
for GPS, in fact, for GPS the initial values, after
doing the least squares tting, are more accurate
than the least squares tted initial values for
GLONASS. This indicates that our force model
works better for GLONASS satellites.
More information can be obtained by looking at
the errors in the RTN (Radial, Transverse, Normal)
coordinate system. Let r
ECI
and v
ECI
be the position
and velocity of the satellite in ECI coordinate sys-
tem. Transformation from ECI to RTN is achieved
using the transformation equation [25]
r
RTN
e
R
e
T
e
N
r
ECI
; (22)
where the unit vectors e
R
, e
T
, and e
N
are calculated
using equations
e
R

r
ECI
r
ECI
k k
(23)
e
T
e
N
e
R
(24)
e
N

r
ECI
v
ECI
r
ECI
v
ECI
k k
(25)
Here the directions e
T
and e
N
may also be referred to
as along-track direction and cross-track direction,
respectively.
Prediction errors in the RTN coordinate system
are shown in Figure 6. We see that for both GPS
and GLONASS, the errors are mostly in the
tangential or along-track direction. Prediction errors
in the radial and normal directions are small. For
positioning applications, most important is the
radial error, since this has the largest effect on the
pseudorange error (see next section). For a four day
long prediction 95% of the radial errors are under
6 m for GPS and under 4 m for GLONASS.
From the prediction results it is seen that our
model works better for GLONASS satellites than
for GPS satellites. A possible explanation for the
results may be in the solar radiation pressure model.
The solar radiation pressure model used in this work
is a simple model including acceleration only from
the direct solar radiation pressure. However studies
have shown that for GPS satellites there is also an
acceleration, often called y-bias, in the direction of
the solar panel axis of the satellite [11, 26]. The
magnitude of the y-bias acceleration is quite small,
on the order of 10
9
m/s
2
, but for predictions over
GLONASS prediction errors
Length of prediction [days]
error
[m]

t
=
3
h
6
h
1
2
h
2
4
h
1 2 3 4
0
50
100
150
200
Fig. 4The effect of time difference t between broadcast ephemerides
to the prediction errors for GLONASS satellites
Prediction errors
Length of prediction [days]
error
[m]
G
P
S
G
L
O
N
A
S
S
1 2 3 4
50
100
150
200
Fig. 5Prediction errors for GPS and GLONASS satellites
128 Navigation Summer 2012
several days the effects can be signicant. The exact
reason for the force is unknown, but one possible
explanation is the misalignment of the solar panel
axis [11]. The effect of solar radiation pressure on
GPS and GLONASS satellites has been studied by
Ineichen et al. [27], who found out that the mean
values for y-bias acceleration were very close to zero
for GLONASS satellites, whereas for GPS satellites
the mean values of y-bias were signicantly different
from zero. This suggests that adding the y-bias
acceleration to the solar radiation pressure model
might increase the accuracy of the prediction results
for GPS satellites.
In order to estimate the computational complexity
we tested the runtime of our algorithm with Nokia
N900 mobile phone which has a 600MHz ARM
Cortex-A8 CPUprocessor. The C-code used for testing
was automatically generated from our MATLAB
implementation, using the Matlab Coder

-tool. We
believe that the code could be further optimized for
real device implementation. The time needed to
perform a 4day long orbit prediction for one satellite
was 1.95s, including the time needed to transform
the predicted positions into extended Keplerian form,
i.e., to the GPS ephemeris format. The time needed to
t the initial velocity of one GPS satellite was 0.36s
for known polar motion parameters. However, when
solving the polar motion parameters together with
the initial velocities of ve satellites, the computa-
tional time is 25.0s. This is the bottleneck of the whole
algorithm and, as a consequence, the parameters
should be solved as seldom as possible. Instead,
extrapolation based on earlier solved parameter
values should be preferred when possible.
We wish to point out that the tting and subse-
quent prediction can begin immediately after the
previous navigation session is completed. Predic-
tions can be done before the device is turned off, so
that they are instantaneously available when the
deviceis opened again. If the device is a mobile
phone, that is, the user tends to close the navigation
application but keep the phone on, the algorithm can
be carried out progressively such that the positions
are predicted only slightly ahead of real time.
The time needed to integrate the GLONASS orbit
is the same as for GPS, but the time needed for the
tting of initial velocity differs, because it depends
on the time difference between the two ephemerides
used for tting. For GPS satellites, the time
difference of the furthermost states used for tting
is 3 h and therefore each iteration of the algorithm
includes the integration of the satellite equation of
motion over a 3 h long interval. As a consequence, if
the time difference of the two received GLONASS
ephemerides is 12 h, the initial velocity tting will
take four times longer than for GPS satellites,
i.e., 40.36 =1.44 s.
SATELLITE CLOCK OFFSETS
In addition to the satellite ephemeris, the GNSS
satellite sends information about the satellite clock
offsets. These offsets, which describe the difference
between the satellites own clock and the GNSS
system time, are modeled with low order polyno-
mials whose coefcients are sent in the navigation
message. In GPS the offset, denoted dt
gps
, is
approximated with a second order polynomial and
in GLONASS the offset, dt
glo
, is approximated with
a rst orderpolynomial, that is
dt
gps
t a
f 0
a
f 1
t t
oc
a
f 2
t t
oc

2
(26)
dt
glo
t
n
g
n
t t
b
(27)
The polynomial coefcients are often denoted with
the symbols written in the equations above. In addi-
tion to the polynomial coefcients, the equations
include two other terms, t
oc
and t
b
, which are the
clock data reference times. For further information
about the clock offset polynomials, see the references
[2] and [28].
GPS prediction errors in RTN
(95% quantile)
Length of prediction [days]
error
[m]
1 2 3 4
0
50
100
150
200
R
T
N
GLONASS prediction errors in RTN
(95% quantile)
Length of prediction [days]
error
[m]
1 2 3 4
0
50
100
150
200
R
T
N
Fig. 695% quantile of prediction errors in RTN coordinate system for (left) GPS satellites and (right)
GLONASS satellites
129 Seppnen et al: Autonomous Prediction of GPS and GLONASS Satellite Orbits Vol. 59, No. 2
When computing the users position in a standa-
lone GNSS, the pseudorange measurements are of
the form
r u r k k c t
u
dt e (28)
where u is the user position, r is the satellite position,
t
u
is the receiver clock bias and dt is the satellite
clock offset, and c is the speed of light in a vacuum.
Furthermore, there is an additional error e, which
among others includes the atmospheric delays,
receiver noise, and multipath errors. These are
sometimes referred to as User Equipment Errors
(UEE). When considering the positioning calculation
without reading the whole navigation message, i.e.,
with only the time difference from satellite to the
receiver, we need to predict the satellites positions
r as well as the satellite clock offsets dt in order to
calculate the user position.
As a part of the navigation message the navigation
device receives the coefcient for the clock offset
models stated in Equations (26) and (27). The
simplest way to predict the offsets further is to use
the same polynomial models with the latest received
coefcients. This approach worked quite well with
the GPS satellites. The tests with the GPS broadcast
ephemeris data showed that the second order coef-
cient a
f2
was zero, but the rst order polynomials
were enough to model the offsets in the longer term.
In contrast, for GLONASS, even the rst order
coefcient, the drift term g
n
, was zero for several
satellites. Nevertheless, the ephemeris prediction
algorithm presented for GLONASS required two
earlier receiver broadcasts, so we can use two
broadcasts when calculating the clock offsets as well.
Computing the future offset at t with the model
dt
glo
t
n
t
b


n
t
b

n
t

b
_ _ _ _
t
b
t

b
t t
b
(29)
where t
b
is the reference time of the latest received
broadcast and t

b
of another broadcast, one can obtain
more precise offsets, dt
glo
(t), for the GLONASS satel-
lites. This model, where the coefcient g
n
is replaced
with the slope computed from two sequential
n
parameters, seems to work better than the para-
meter g
n
that is sometimes given by the satellite.
In analogy to the tests of the previous section, the
time difference t
b
t

b
between the two broadcasts
was chosen to be 12h when testing the prediction
model of Equation (29). Furthermore, the time
instants t
b
of thechosen test sample were equal to
those used in the GLONASS ephemeris prediction
tests in the previous section. The results are shown
in Figure 7 together with the GPS offset predictions
which were based on only one received broadcast.
The error in the clock offset cdt is denoted by ct
and it is expressed in meters. Again, the boxes show
the 75%, 50%, and 25% error quantiles, respectively,
while the upper and lower whiskers show the 95%
and 5% quantiles. The individual error, |ct|, was
calculated as an absolute value between the
predicted clock offset and the precise clock offsets
obtained from the IGS products [15]. However,
because the GLONASS system time is steered to
UTC(SU), whereas the IGS products are in IGS time,
one perceives a bias in GLONASS clock offsets.
Furthermore, there is also a bias in GPS clock off-
sets, because IGST is only loosely steered to GPS
time. Fortunately, this kind of bias is identical for
all satellites at a given time instant and thereby it
can be removed by calculating the offset error with
respect to the median of the offsets of all satellites
at that time instant.
The clock prediction errors, |ct|, illustrated in
Figure 7 are smaller than the error in the predicted
satellite positions, which were shown in Figure 5.
However, in the predicted positions, the radial error,
which has the greatest impact on the pseudorange,
was very small compared to the other error compo-
nents, so both clock prediction error and predicted
position error need to be considered. This issue is
further discussed in the following section.
RANGE ERROR
When considering the pseudorange error of a
GNSS satellite, the error budget is often divided into
Signal-In-Space and User-Equipment errors [1, 28].
The Signal-In-Space range error (SISRE) includes
the errors due to the satellite clocks and ephemeris
parameters, whereas the User-Equipment error
(UEE) includes the errors due to atmospheric
propagation modeling, receiver noise, and multipath
[1]. These two error components are often assumed
to be uncorrelated. Therefore, if we have a standard
deviation for both SISRE and UEE, the accuracy of
the pseudorange value can be computed as the root
Length of prediction [days]
|ct|
[m]
Prediction error in clock offsets
G
L
O
N
A
S
S
G
P
S
1 2 3 4
0
10
20
30
40
Fig. 7Errors in the predicted clock offsets. For GPS the offsets were
calculated using the latest received broadcast. For GLONASS the
offsets were calculated using two received broadcast messages with
a separation of 12h.
130 Navigation Summer 2012
sum square of the two components. This effective
accuracy of the satellites pseudoranges is termed
the User Equivalent Range Error (UERE). In addi-
tion, the obtained UERE value might be multiplied
with an appropriate DOP value, which takes into
account the satellite geometry. See [28] on how to
choose the right denition of DOP for different situa-
tions. To conclude, the total user navigation error
(UNE) in a GNSS solution can be estimated by the
formula
s
UNE
DOP

s
2
SISRE
s
2
UEE
_
(30)
which was given in [29].
SISRE is the error attributed to the ephemeris
parameters and clock model generated by the control
segment. Because the purpose of our prediction
method is to replace exactly this information, the
SISRE is a suitable quantity for estimating
the performance of our prediction method. Knowing
the distribution for SISRE a person having expertise
with GNSS positioning can infer the actual position-
ing error in desired circumstances and application
area. Therefore, the rest of this section focuses on
determining the standard deviation s
SISRE
from a
sample of errors in predicted satellite positions and
in predicted satellite clock offsets. The individual
error components are computed with respect to IGS
precise orbit and clock offset data [15].
According to [29], the standard deviation for Signal-
In-Space range error can be estimated by the
formula
s
SISRE

s
2
Rct

1
7
2
s
2
T
s
2
N
_ _
_
(31)
where R, T, and N are the radial, tangential, and
normal error components in satellite predicted
position, ct is the range error due to the inaccurate
clock offset model, and s
2
X
is the variance of the
subscript quantity X. This formula can be derived
by writing the range measurement Equation (28) in
terms of the RTN components and deducing in which
proportion they affect the pseudorange error if the
users location is restricted to the Earths surface.
Denoting the exact distance components from
satellite to the user as d
R
, d
T
, and d
N
, the range
equation can be written as
r

d
2
R
d
2
T
d
2
N
_
cdt

d
2
R
d
2

_
cdt
Here d

denotes the non-radial distance, i.e.,


combined tangential and normal distances. The
combined distance d

is introduced because the


magnitude of the distances d
T
and d
N
in the pseudor-
ange are equal due to symmetry (Figure 8). If we
now have errors R and in the two distance
components and t is the error in the predicted clock
offset, then by rst order Taylor approximation the
total error in the range r is
r % cos b R sin b ct (32)
Here the trigonometric coefcients cos(b) =d
R
/d
LOS
and sin(b) =d

/d
LOS
are the partial derivatives of the
function r with respect to the error terms R and
ot, respectively. The variable d
LOS
is the Line Of
Sight distance, i.e., the distance between the user
and the satellite.
If the error terms R, T, N, and t are
uncorrelated, the standard deviation for the error
r (32) is

cos
2
b s
2
R
sin
2
b s
2
T
s
2
N
_ _
s
2
ct
_
In [30] it was mentioned that the average angle
between the line of sight direction and the direction
of the satellites radial position is b %8

. Then it is
possible to approximate cos(b) %1 and sin(b) %1/7.
If we combine errors R and ct into one error
component Rct, which allows for errors depen-
dence, then the equation above equals the s
SISRE
dened in Equation (31).
Figure 9 shows the SISRE standard deviation as a
function of prediction length for both GPS and
GLONASS. In addition, the standard deviations for
the orbit-only error and clock error
Fig. 8In GNSS, the error in a pseudorange measurement
consists mainly of the error in the satellites radial distance
d
R
from the Earth, whereas the non-radial d

distance has only


a minor contribution. This is a consequence of the fact that the
average value for the angle b is small, when the satellites
distance h is much bigger than the Earths radius R
E
.
131 Seppnen et al: Autonomous Prediction of GPS and GLONASS Satellite Orbits Vol. 59, No. 2
s
ORBIT

s
2
R

1
7
2
s
2
T
s
2
N
_ _
_
s
CLOCK
s
ct
are included for comparison. As one can see, the
clock offset error seems to dominate the range error,
especially for GLONASS. Therefore, for future
development of the algorithm, one should focus on
improving the clock prediction method for GLONASS.
In GPS, both the clock model and the orbit prediction
model should be considered.
The standard deviations of Figure 9 are convenient
for characterizing the positioning error. However, the
standard deviation is only one characterizing statistic
of the error distribution and for example some quan-
tiles would also be interesting. In addition, the SISRE
formula includes many approximations: We used an
average value for the b and made some assumptions
about the correlation between the error components.
Therefore, we will now calculate the absolute range
error forevery prediction in our test sample by using
formula (32). From this sample of absolute values
one can compute the 95% error quantile and median,
which approximate the upper error bound and the
typical error, respectively. Earlier the angle b was
chosen to be 8.21

, but now we will calculate the error


quantiles as a function of the satellites angle of
elevation f
el
, i.e., the angular height measured from
the horizontal, which depends on b through the
relation
tanb
R sin 90

f
el

h R cos 90

f
el

where R is the radius of the Earth and h is the satel-
lites distance from the Earths center. The 95%
quantile and median of the absolute range error
|r| are plotted as a function of satellite elevation
in Figure 10. The two uppermost lines correspond
to the 4 day long predictions: The solid line shows
the error for GPS and the line with the triangles
for GLONASS. Below these lines are also from three
down to one day long predictions for both systems.
In GPS, the longer predictions include a large
error in the non-radial component d

and this makes


the error dependent on the elevation angle f
el
. In
GLONASS there is no dependence of the elevation
angle because the clock error dominates the range
error so strongly. These facts can be used when
trying to improve the algorithm and could be taken
into account when calculating the user position: For
Length of prediction [days]

[m]
Estimated range error for GPS
0 1 2 3 4
0
5
10
15
SISRE
CLOCK
ORBIT
Length of prediction [days]

[m]
Estimated range error for GLONASS
0 1 2 3 4
0
5
10
15
SISRE
CLOCK
ORBIT
Fig. 9Error in predicted clock offsets seems to dominate the range error
0 30 60 90
0
10
20
30
40
50
60
Elevation angle []
[m]
Upper bound for || (95% quantile)
4 days
3 days
2 days
1 day
0 30 60 90
0
5
10
15
[m]
Median of the range error ||
Elevation angle []
Fig. 10Upper bounds (95% quantile) and typical values (median) for the absolute range error |r|
132 Navigation Summer 2012
GPS it might be worthwhile to weight the different
pseudorange measurements according to the satel-
lite angle of elevation.
CONCLUSION
Assisted GNSS is a common way to improve the
startup performance of personal navigations devices.
The aimof this paper was to study a method withwhich
one could attain similar properties to assisted GNSS in
a standalone GNSS device as well. These standalone
devices do not have any network connection and the
broadcast ephemeris is the only data they can receive.
In order to improve the TTFF when turning on
a GNSS device, we need to know the satellite
locations beforehand, without reading the navigation
message. Our method for predicting satellite position
is based on solving the satellite equation of motion
numerically. We have included only the most signi-
cant forces: Earth gravitation, solar and lunar gravi-
tation, and solar radiation pressure in the equation
of motion, which we call the force model. However,
before we can use the force model we have to solve
the satellites initial state and the polar motion
parameters, which are needed in order to know the
exact rotation axis of the Earth. This is done by a
nonlinear least squares tting algorithm, which uses
earlier received broadcast ephemerides as its tting
data. For GPS satellites, only one broadcast ephe-
meris is needed when solving the initial values. For
GLONASS satellites, we have used two broadcast
ephemerides to solve the initial values.
The prediction method was tested with real broad-
cast ephemeris data and the prediction error was
calculated using the precise ephemeris delivered by
NGA for GPS and IGS for GLONASS as a reference.
For one day long prediction, 95% of the prediction
errors were below 18 m for both systems. With longer
prediction intervals, our model works better for
GLONASS satellites than for GPS satellites. For
instance, in a three day long prediction, 95% of the
errors are below 100 m for GPS and below 51 m for
GLONASS. The prediction errors were also studied
in the RTN coordinate system, which gives the
radial, tangential or along-track, and normal or
cross-track components of the errors. The errors are
largest in the tangential direction andrelatively
small in the radial and normal directions. This is
very desirable because the error in the radial
component tends to have the greatest impact on the
range error from the satellite to the receiver.
For radiation pressure we used a simple Cannonball
model and a scale term which is pre-estimated
separately for each satellite using precise ephemeris
data. Studies conducted for GPS satellites suggest that
there is also acceleration in the direction of the
satellites solar panel axis, which is not observed for
GLONASS satellites. This acceleration, often called
y-bias, might be the reason for the difference in the
prediction errors for GPS and GLONASS.
In addition to the orbit prediction method, we
have briey investigated the validity of the GNSS
satellite clock offset polynomials for prediction. In
our case, the length of prediction has been from one
to four days, which is notably outside the typical
GNSS broadcast life span, which is around 4 h for
GPS and about half an hour for GLONASS. As a
conclusion, the offset polynomial received from the
GPS broadcast can be used as such for up to a four
day long prediction, if one can accept an error of 18
m (95% quantile). In contrast, for GLONASS, one
received offset polynomial is not enough to reach an
accuracy which would be competitive with the GPS
offsets. However, if two broadcasts are received, with
a separation of 12 h for example, we can use them to
form a simple linear prediction model. This model
was able to predict the offsets with 35 m accuracy
(95% quantile) for four days.
Finally, the navigation error related to the pre-
sented prediction method is discussed. We used the
Signal-In-Space range error formula for approximat-
ing the part of the range error that would accumulate
from the error in the predicted satellite positions and
the predicted clock offsets. This formula gave stan-
dard deviations of about 15m for the range error for
both GPS and GLONASS, when the prediction length
was four days and no impulsive change, like NANU
events, occurred. Moreover, a comparison between
the ephemeris and clock prediction errors indicated
that the inaccuracy in the clock offset predictions
constrains the positioning accuracy.
ACKNOWLEDGMENTS
This research was partly funded by Nokia Inc..
Mari Seppnen also acknowledges the nancial
support of Tampere Graduate School in Information
Science and Engineering.
REFERENCES
1. Misra, P. and Enge, P., Global Positioning System:
Signals, Measurements and Performance, 2nd ed.,
Lincoln (MA): Ganga-Jamuna Press, 2006, 569 p.
2. Global Navigation Satellite System GLONASS: Inter-
face Control Document (GLONASS ICD), Version 5.0,
2002, Russian Institute of Space Device Engineering/
Research.
3. Mattos, P. G., Hotstart Every Time - Compute the
Ephemeris on the Mobile, Proceedings of the 21st
International Technical Meeting of the Satellite
Division of The Institute of Navigation (ION GNSS
2008), Savannah, GA, September 2008, pp. 204211.
4. Zhang, W., Venkatasubramanian, V., Liu, H., Phatak, M.,
and Han, S., SiRF InstantFix II Technology,
133 Seppnen et al: Autonomous Prediction of GPS and GLONASS Satellite Orbits Vol. 59, No. 2
Proceedings of the 21st International Technical
Meeting of the Satellite Division of The Institute of
Navigation (ION GNSS 2008), Savannah, GA,
September 2008, pp. 18401847.
5. Seppnen, M., Perl, T., and Pich, R., Autonomous
satellite orbit prediction, Proceeedings of the 2011 Inter-
national Technical Meeting of the Intitute of Navigation,
San Diego, CA, January 2011, pp. 554564. Available:
http://www.ion.org/meetings/abstract.cfm?meetingID=
32&pid=72&t=C&s=2.
6. Montenbruck, O. and Gill, E., Satellite Orbits,
3rd ed., Berlin Heidelberg New York: Springer, 2005,
369 p.
7. Seppnen, M., GPS-Satelliitin Radan Ennustaminen,
M.Sc. Thesis, Tampere University of Technology,
March 2010, Available: http://math.tut./posgroup/
seppanen_mscth.pdf.
8. An Earth Gravitational Model to Degree 2160,
EGM2008, 2008 General Assembly of the European
Geosciences Union, Vienna, Austria, April 1318, 2008,
http://earth-info.nima.mil/GandG/wgs84/gravitymod/
egm2008/rst_release.html.
9. Cunningham, L., On the Computation of the Sphe-
rical Harmonic Terms Needed During the Numeri-
cal Integration of the Orbital Motion of an Articial
Satellite, Celestial Mechanics, Vol. 2, 1970, pp.
207216.
10. Mtris, G., Xu, J., and Wytrzyszczak, I., Derivatives
of the Gravity Potential with Respect to Rectangular
Coordinates, Celestial Mechanics and Dynamical
Astronomy, Vol. 71, no. 2, 1999, pp. 137151.
11. Froidevall, L. O., A Study of Solar Radiation Pres-
sure Acting on GPS Satellites, Ph.D. Dissertation,
The University of Texas at Austin, Austin TX USA,
August 2009, Available: http://repositories.lib.utexas.
edubitstream/handle/2152/6623/froidevall45515.pdf.
12. Simon, D., Optimal State Estimation, Hoboken, New
Jersey and Canada: John Wiley & Sons, 2006, 526 p.
13. Jazwinski, A. H., Stochastic Processes and Filtering
Theory, New York: Academic Press, 1970, Vol. 64,
378 p.
14. NGA GPS Satellite Precise Ephemeris (PE) Center of
Mass, Available: http://earth-info.nga.mil/GandG/sathtml/
PEexe.html.
15. Dow, J., Neilan, R., and Rizos, C., The International
GNSS Service in a Changing Landscape of Global
Navigation Satellite Systems, Journal of Geodesy,
Vol. 83, 2009, pp. 689689, Available: http://dx.doi.org/
10.1007/s00190-009-0315-4.
16. Hairer, E., Nrsett, S. P., and Wanner, G., Solving
Ordinary Differential Equations I: Nonstiff Problems,
2nd ed., Berlin: Springer-Verlag, 1993, 528 p.
17. McCarthy, D. D. and Petit, G., IERS Conventions
(2003). (IERS Technical Note; 32) Frankfurt am Main:
Verlag des Bundesamts fr Kartographie und Geodsie,
2004, 127 pp.
18. IERS C04 Series of the Earth Orientation Parameters,
Available: http://data.iers.org/products/214/14443/orig/
eopc04_08_IAU2000.62-now.
19. Navstar Global Position System Interface Specica-
tion, Navstar GPS Space Segment/User Segment
L1C Interfaces Draft IS-GPS-800, CA: Arinc Engineer-
ing Service LLC, 19 Apr 2006, Available: http://www.
navcen.uscg.gov/gps/modernization/L1/IS-GPS-800_
19_DRAFT_A pr06.pdf.
20. Global Navigation Satellite System GLONASS: Inter-
face Control Document (GLONASS ICD), Version 5.1,
Russian Institute of Space Device Engineering/
Research, 2008, Available: http://facility.unavco.org/
data/docs/ICD_GLONASS_5.1_(2008)_en.pdf.
21. Global Navigation Satellite System and Global Posi-
tioning System. Coordinate Systems, Methods of
Transformations for Determinated Points Coordinate,
2008, Available: http://protect.gost.ru/document.aspx?
control=7&baseC=6&page=0&month=9&year=2009
&search=&id=174517.
22. Korvenoja, P. and Pich, R., Efcient Satellite Orbit
Approximation, Proceedings of ION GPS 2000,
September 1922, 2000, Salt Lake City, USA, 2000,
pp. 19301937, Available: http://math.tut./posgroup/
korvenoja_piche_ion2000a.pdf.
23. NGA GPS Ephemeris/Station/Antenna Offset Docu-
mentation, Available: http://earth-info.nga.mil/GandG/
sathtml/gpsdoc2010_09a.html.
24. Cai, C., Precise Point Positioning Using Dual-Frequency
GPS and GLONASS Measurements, Masters Thesis,
University of Calgary, Calgary, Alberta, August 2009,
Available: http://www.ucalgary.ca/engo_webdocs/YG/
09.20291_ ChangshengCai.pdf.
25. Tapley, B. D., Schutz, B. E., and Born, G. H., Statistical
Orbit Determination, Elsevier Academic Press, 2004.
26. Springer, T., Beutler, G., and Rothacher, M., A New
Solar Radiation Pressure Model for GPS Satellites,
GPS Solutions, Vol. 2, 1999, pp. 5062.
27. Ineichen, D., Springer, T., and Beutler, G., Combined
Processing of the IGS and the IGEX Network, Jour-
nal of Geodesy, Vol. 75, 2001, pp. 575586, Available:
http://dx.doi.org/10.1007/s001900000152.
28. Kaplan, E. D., Understanding GPS: Principles andAppli-
cations, Boston/London: Artech House, 1996, 576 p.
29. Malys, S., Larezos, M., Gottschalk, S., Mobbs, S.,
Winn, B., Feess, W., Menn, M., Swift, E., Merrigan,
M., and Mathon, W., The GPS Accuracy Improvement
Initiative, Proceedings of the 10th International Tech-
nical Meeting of the Satellite Division of The Institute
of Navigation (ION GPS 1997), Kansas City, MO,
September 1997, pp. 375384.
30. Montenbruck, O., Gill, E., and Kroes, R., Rapid Orbit
Determination of LEO Satellites Using IGS Clock and
Ephemeris Products, GPS Solutions, Vol. 9, 2005,
pp. 226235, Available: http://dx.doi.org/10.1007/s10291-
005-0131-0.
134 Navigation Summer 2012

You might also like