# simplified orbit determination algorithm for low earth

```ARTIFICIAL SATELLITES, Vol. 49, No. 2 – 2014
DOI: 10.2478/arsa-2014-0007
SIMPLIFIED ORBIT DETERMINATION ALGORITHM FOR LOW EARTH
ORBIT SATELLITES USING SPACEBORNE GPS NAVIGATION SENSOR
Sandip Tukaram Aghav, Shashikala Achyut Gangal
Department of Electronic Science, University of Pune, Pune, India,
[email protected]
ABSTRACT
In this paper, the main work is focused on designing and simplifying the orbit determination algorithm
which will be used for Low Earth Orbit (LEO) navigation. The various data processing algorithms, state
estimation algorithms and modeling forces were studied in detail, and simplified algorithm is selected to
reduce hardware burden and computational cost. This is done by using raw navigation solution provided by
GPS Navigation sensor. A fixed step-size Runge-Kutta 4th order numerical integration method is selected
for orbit propagation. Both, the least square and Extended Kalman Filter (EKF) orbit estimation algorithms
are developed and the results of the same are compared with each other. EKF algorithm converges faster
than least square algorithm. EKF algorithm satisfies the criterions of low computation burden which is
required for autonomous orbit determination. Simple static force models also feasible to reduce the
hardware burden and computational cost.
Keywords: GPS Navigation Sensor, atmospheric drag, extended Kalman filter.
1. INTRODUCTION
Orbit determination is the process of determining the best estimate of the state of a spacecraft, whose
initial state is unknown, from observations influenced by random and systematic errors, using a
mathematical model that is not exact. In this work above-mentioned procedure will be referred to as the
orbit determination (Taply et al., 2004). There are various techniques available for satellite position
measurement at given epoch time. These include one way technique which is based on the transmittal of a
signal by a satellite or ground-based transmitter that is received by a separate instrumentation. The
transmitted signal propagates along a path and arrives at a point instrumented to receive the transmitted
signal. This way one can calculate range and range rate between two points. In two way method it uses both
uplink and downlink path to calculate the range and range rate. Satellites Laser Ranging (SLR) technique
comes under two way method. However ground based tracking carries extensive cost burden in spacecraft
mission. In order to make the satellite orbit control system autonomous and reduce the need for ground
intervention there is a need for on-board availability of continuous and accurate knowledge of the satellite
Unauthenticated
82
orbit. From this information, position and velocity vector of an orbiting LEO spacecraft is determined as a
function of time (Parkinson and Spilker, 1996). The measurement principle in its simplest form is illustrated
by Fig. 1 where are the pseudoranges of the respective GPS satellites and is the geocentric
distance of LEO. Each GPS satellite sends its own positional information in the form of navigation data.
The code measurements of at least four GPS satellite observed at observation time t by the on-board GPS
navigation sensor, are used to determine geocentric position vector of the LEO’s centre of mass.
An efficient Low Earth Orbit (LEO) precise orbit determination algorithm has presented by (Bock et al.,
2002). They used IGS orbits and precise clocks for the GPS satellites and the positions are generated by the
combination of code derived positions and phase derived position differences. Fitting an orbit based on a
physical model to the positions promises to complement a procedure that meets the requirements regarding
precision and processing speed. The positions estimated from code observations and position differences
estimated from phase observations may eventually be used as “pseudo-observations” to fit an orbit based on
the physical model using a least squares adjustment. A new onboard orbit determination algorithm based on
the unscented Kalman filter (UKF) has been successfully developed by (Choi et al., 2010) for application to
spaceborne GPS receivers. The perturbations due to 40x40 geopotential, the gravity of the Sun and Moon,
atmospheric drag, and solar radiation pressure were employed to develop the precision orbit propagation for
onboard processing. The 7(8)th-order Runge–Kutta numerical integration was applied for orbit propagation.
The Cowell method was applied for modeling orbit motion. Researcher (Pardal et al., 2009) determined the
orbit of an artificial satellite and analyzed its implications, using least squares algorithms through sequential
given rotations as the method of estimation, and data of the GPS receivers. In this paper, an algorithm to
determine onboard the satellite orbit in real-time using the GPS system and Kalman filtering is developed. It
used a simplified and compact model with low computational cost. The extended Kalman filter (EKF)
estimates the state vector, composed of the position and velocity components, bias, drift, and drift rate of the
GPS receiver clock. An algorithm for real-time and onboard orbit determination applying the Extended
Kalman Filter (EKF) method is developed by (Chiaradia et al., 2013). The minimum set of to-be-estimated
states to reach the level of accuracy of tens of meters is found to have at least the position, velocity, and user
clock offset components. The dynamical model is assessed through several tests, covering force model,
numerical integration scheme and step size, and simplified variational equations. The measurement model
includes only relevant effects to the order of meters. Based on the same principle a simple but fairly
accurate algorithm is developed to determine the LEO satellite’s orbit using raw navigation solution
Figure 1. Concept of Autonomous Orbit determination
Unauthenticated
83
2. METHODOLOGY
For determining initial orbit, one should know the position of satellite in an orbit w. r. t. the elapsed
time, , or conversely, how long it takes to go from one point in an orbit to another. To solve this,
Kepler introduced the quantity , called the mean anomaly, which is the fraction of an orbit period that has
elapsed since perigee as given in Eq. (1). The mean anomaly equals the true anomaly for a circular orbit.
(1)
where, is the mean anomaly at time and is the mean motion, or the average angular velocity
determined from the semi-major axis of the orbit as given in Eq. (2);
Product of gravitational constant and mass of the body
(2)
Mean anomaly is a function of eccentric anomaly () given in the Eq. (3);
where, is orbital eccentricity
(3)
At any time in its orbit, the magnitude of a spacecraft's position vector, i.e. its distance from the primary
body (), latitude of the satellite (ș) and longitude of the satellite () can be calculated from the following
Eq. (4);
! " #\$%&
' () * +, & () .
(4)
/ '
0
/ +
where, + ' & are inclination angle, latitude and true anomaly of the satellite, length refers to a prime
meridian specified in the inertial reference frame of the standard epoch J2000.0.
From ' of the satellite, position vector components 1 2 3 in Cartesian coordinate system as a
function of time (
) is obtained from Eq. (5) as follows;
1 45 ', 45 2 45 ', (5)
3 Then 1 6 " 2
7 " 3
89 is the position vector of the satellite and the magnitude of is
:1 ! " 2 ! " 2 ! ,,,,.
The perturbations due to the factor ;! (flattening coefficient of the Earth) is only considered for
determining the reference orbit from initial measurements. Longitude of ascending node, argument of
Unauthenticated
84
perigee and mean motion are mostly affected. The factor ;! is the flattening coefficient of the Earth and is
equal to 0.0010827 (Parkinson and Spilker, 1996).
The accuracy of the orbital elements is directly dependent upon the accuracy of velocity vector
components. To determine position components as a function of time, the velocity vector components are
numerically integrated. In the present paper, the acceleration vectors are numerically integrated with the
help of fixed step size 4th order Runge-Kutta method for finding out the velocity vector components
(Parkinson and Spilker, 1996).
2.1. Numerical integration of the equation of motion
The satellite dynamic model used for the satellite orbit propagation is given in Eq. (6);
<
=
" , >
99
(6)
where,,<
is the acceleration vector, is the orbital position vector and >
99
is vector of the process
noise, which is assumed to be zero for calculation simplicity. The discrete-time measurements which are
considered for the present study include position and velocity vector obtained from Oceansat2 GPS
The zonal perturbations ;! , ; and ;? are considered for simulations. The main deviation from central
gravitational field is caused by dynamic flattening of the Earth. In the Geodetic Reference System 1980
(GRS80), normal field of the flattening coefficient is represented by term ;! = 0.001082. Similarly higher
order flattening coefficients ; and ;? are given as ; = -0.0000025323 and ;? = -0.0000016204 (Parkinson
and Spilker, 1996).
The acceleration components 1,< 2< and 3< of satellite dynamic model with term ;! are given in Eq. (7) as
discussed in (Zarchan, 2005, Vallado and McClain, 2007);
1< =1
BC ! E
3!
BC H
3! 3
BC ? H
3!
3?
@
"
;
A
D
G
H
I
"
;
A
D
GE
J
I
;
A
D
GE
LF
"
ME
IN
!
?
F
!
F
! K
!
?
2< =2
BC ! E
3!
BC H
3! 3
BC ? H
3!
3?
@
"
;
A
D
G
H
I
"
;
A
D
GE
J
I
;
A
D
GE
LF
"
ME
IN
!
?
F
!
F
! K
!
?
3< =3
BC ! E
3!
BC H
3! 3
=
BC E
@
"
;
A
D
GE
H
I
"
;
A
D
GM
J
I
N
"
,;
A
D ,
!
!
F
!
F
! F
"
(7)
BC ? H
3!
3?
=3
,;
A
D
G
H
JO
"
ME
I
? K
!
?
where, = is the earth gravitational constant, BC is the Earth’s radius, and is the magnitude of position
vector. To update the state vector, Eq. (7) is numerically integrated using Runge-Kutta 4th order fixed step
size method. Least square differential correction and EKF are used to generate the optimal state estimates of
the satellite orbit.
Atmospheric drag is the third most dominant force acting on a low Earth orbiting satellite (depending
on the altitude in low Earth orbit), after the forces due to central body and oblateness of the Earth. For
satellites orbiting at higher altitudes, radiation pressure due to the Sun as well as third body effects becomes
Unauthenticated
85
significant and dominant as well. Apart from the undesirable effects of satellite drag, other applications such
as aerobraking and space tethers require an accurate model of the atmosphere for high accuracy solutions.
The three main areas under which drag is studied are for orbit determination under the influence of drag,
satellite lifetime estimation, and to determine the physical properties of the upper atmosphere.
When a satellite encounters atmospheric molecules, it experiences a retarding force, the drag force, due
to momentum transfer from the latter. This results in a loss of energy of the satellite and thus drag is a nonconservative force. Other non-conservative forces acting on the satellite include the radiation forces due to
the Sun, Earth albedo, and Earth infrared. The effect of the drag is to reduce the semimajor axis (due to loss
of energy) and the eccentricity (making it less elliptical). Other orbital elements are also affected by drag but
the effects are periodic in nature. Drag also results in some coupling effects with the aspherical potential.
The need for a rigorous model of the effects of atmospheric perturbations requires knowledge in the
fields of molecular chemistry, thermodynamics, aerodynamics, hypersonics, meteorology, electromagnetics, planetary science, and orbital mechanics. Thus, study of astrodynamics in the presence of the
atmosphere is very difficult. Nevertheless, accurate determination of atmospheric properties is essential for
satellite drag studies (Degnan and Pavlis, 1994).
The acceleration experienced by a satellite is given by the following Eq. (8) which relates the
acceleration with atmospheric properties, geometrical properties of the satellite, and the relative velocity
vector of the satellite.
PQRS TU V ! XQC
XQC
YXQC Y
F W
(8)
The first quantity in the above drag equation TU is the coefficient of drag, a dimensionless quantity
which quantifies the resistance of a body. TU , depends on the temperature and composition of the
surrounding atmosphere, surface properties of the satellite including its temperature, surface geometry, and
orientation. The drag coefficient for a flat plate is about 2.2 and about 2.0 to 2.1 for spheres, in the upper
atmosphere (Amaral et al, 2007). TU ,is usually estimated up to three significant digits. is the atmospheric
density, which is the hardest to estimate. Several atmospheric models exist which are used to estimate
neutral density, whose details will be discussed in future sections. V is the cross sectional area that is normal
to the velocity vector. For a satellite whose attitude and geometry are known, determining V may be
relatively easy. However, if the attitude of an aspherical satellite is not known, then determining the cross
sectional area becomes difficult, especially if the satellite’s attitude is rapidly changing, say a tumbling
satellite. W is the mass of the satellite. The mass may be constant or changing during the mission depending
on whether the onboard propellants (if any) are being consumed. XQC ,is the velocity vector of the satellite
relative to the atmosphere and XQC ,is its magnitude.
The quantity TU VZW is called the ballistic coefficient (BC) is another measure of a satellite
susceptibility to drag. Higher BC means lower drag is experienced by the satellite. The atmosphere is not
stationary in the inertial frame but rotates with the Earth. However, the rotational rate is not the same as that
of the Earth at higher altitudes but rather rotates with a profile; so the layer next to the surface has the same
rotational speed as that of the Earth, and the ones above gradually decrease in speed. Often, this lag is
ignored and the atmosphere layer at the satellite altitude is assumed to rotate at the same rate as the surface
of the Earth. Using this approximation, the expression for the relative velocity of the satellite in the inertial
frame is given in Eq. (9).
XQC [
[1
[2
[3 _
\
9] ^ . " \] 2,,,
\] 1,,, 0
[
[
[
[
(9)
Unauthenticated
86
In the above equation, ,is satellite position vector with 1 2 and 3 components, Ȧ
9] ,is the angular velocity
vector of the Earth and Ȧ] ,is its magnitude.
2.2. Simplified atmospheric density model
Purpose of present research was focused on to select the simplified atmospheric density model which
will be suitable for hardware implementation. There are various upper atmospheric models are in use like,
CIRA-72, CIRA-86, Jacchia-71, Jacchia-77, MISS-86, MISS-90, and DTM-90. However all are very
complicated numerical methods and depends upon daily or monthly Sun flux and geomagnetic data which is
not suitable for onboard processing. Due to these reasons the simplified analytical atmospheric density
model is selected for present research. The details of the simplified analytical atmospheric density model are
given in following paragraphs.
If the balanced atmosphere is considered, according to hydrostatics the density distribution is
approximately a form of exponential given in Eq. (10)):
ȡ ȡ `(abccd (ae Zfg
(10)
Where ȡ is the atmospheric density of the reference spherical surface at hijjk h , hijjk is the altitude
measured from Earth’s surface, h ,is the base altitude, and l is the scale height at base altitude. Table 1
explains the calculated values of ȡ with respect to the altitude measured from earth surface (Yunck et al.,
1994).
Table 1: (Part one): Nominal density (ȡ ) with respect to the altitude measures from earth surface
Altitude measured from
Earth Surface (hijjk ) [km]
0-25
25-30
30-40
40-50
50-60
60-70
70-80
80-90
90-100
100-110
110-120
120-130
130-140
140-150
150-180
180-200
200-250
250-300
300-350
350-400
Base
Altitude(h ) [km]
0.00
25.00
30.00
40.00
50.00
60.00
70.00
80.00
90.00
100.00
110.00
120.00
130.00
140.00
150.00
180.00
200.00
250.00
300.00
350.00
Nominal density
(ȡ ) [kg/m^3]
1.23
3.899*10^-2
1.774*10^-2
3.972*10^-3
1.057*10^-3
3.206*10^-4
8.770*10^-5
1.905*10^-5
3.396*10^-6
5.297*10^-7
9.661*10^-8
2.438*10^-8
8.484*10^-9
3.845*10^-9
2.070*10^-9
5.464*10^-10
2.789*10^-10
7.248*10^-11
2.418*10^-11
9.518*10^-12
Scale Height (H) at
base altitude [km]
7.25
6.35
6.68
7.55
8.38
7.71
6.55
5.80
5.38
5.88
7.26
9.47
12.64
16.15
22.52
29.74
37.11
45.55
53.63
53.30
Unauthenticated
87
Table 1: (Part two): Nominal density (ȡ ) with respect to the altitude measures from earth surface
Altitude measured from
Earth Surface (hijjk ) [km]
400-450
450-500
500-600
600-700
700-800
800-900
900-1000
1000-
Base
Altitude(h ) [km]
400.00
450.00
500.00
600.00
700.00
800.00
900.00
1000.00
Nominal density
(ȡ ) [kg/m^3]
3.725*10^-12
1.585*10^-12
6.967*10^-13
1.454*10^-13
3.614*10^-14
1.170*10^-14
5.245*10^-15
3.019*10^-15
Scale Height (H) at
base altitude [km]
58.52
60.83
63.82
71.84
88.67
124.64
181.05
268.00
2.3.Effect of Atmospheric drag
With the values mentioned in the Table 1 the atmospheric density (ȡ) is calculated with the help of Eq.
(10). These atmospheric density values are then future used to calculate the acceleration vector due to
atmospheric drag coefficient using Eq. (8). To see combined effect of the J2 and atmospheric drag, the Eq.
(7) is modified to Eq. (11);
1< E BC !
=1
3!
@
"
;
A
D
G
H
IN " [mn1
!
F !
2< E BC !
=2
3!
@
"
;
A
D
G
H
IN " , [mn2
!
F !
3< E BC !
=3
3!
@
"
;
A
D
GE
H
IN " , [mn3
!
F !
(11)
PQRSno , PQRSnp , and PQRSnq are the 1 2 and 3 components of the acceleration vector generated by
atmospheric drag.
Equations (11) which represents the equations of motion of satellite with ;! and atmospheric drag are then
numerically integrated using Runge-Kutta 4th Order numerical integration method. Code for the same is
written in MATLAB.
2.4. Calculation of Orbital Elements from position and velocity vector
Numerical integration of equation of motion gives the instantaneous position vector and velocity vector
(i.e. state vector) with respect to time. With the help of state vector data, the instantaneous orbital elements
are calculated (Grewal et al.,2007). The details of orbital elements calculations are given below;
i. Semi-major axis(a)
Semi-major axis of an orbit is calculated using Eq. (12)
Unauthenticated
88
=
F=
X!
, where and X is a magnitude of
position and velocity vector respectively
(12)
ii. Eccentricity vector ()
Eccentricity vector, which norm is equal to orbit eccentricity,, is calculated using Eq. (13)
=
rsX ! t , u X Xv
=
, where and X is a position and
velocity vector respectively, ‘u’ is
a symbol of dot product
(13)
iii. Orbit Inclination (i)
Orbit Inclination is calculated using Eq. (14)
+ 45 ()
iv.
9 is unit vector and
, where 8
x ^ X, is angular
momentum.
w89 u xy
zxz
(14)
Argument of Perigee (\)
Argument of Perigee is calculated using Eq. (15)
\
v.
9 u Y9Y
, where,,,9 9 ,^,y
w
zz
is node vector and is
eccentricity vector, 89 is unit vector
(15)
Longitude of ascending node (ȍ)
Longitude of ascending node is calculated using Eq. (16)
ȍ 45() .
vi.
o
0
Y9Y
, where o ,is a x component of node vector.
(16)
True anomaly (&)
True anomaly is calculated using Eq. (17)
! & 45 () [email protected] G
INI
(17)
Unauthenticated
89
With the help of above formulae (Eq. 12 to Eq. 17) the six orbital elements (, , +, ȍ, \ and &) are
calculated. A software routine for the same is developed in MATLAB.
2.5. Least square implementation
The basic principle of the method of least-squares is that the best estimate of the state is the estimate
which minimizes the sum of the squares of the residuals. The satellite dynamic model used is given in Eq.
(7). The measurement model used in this process is given in Eq. (18);
9 w|
9
y " &
3 {
k=1, 2, 3….
(18)
9 , differentiable
Where, 3 , is the vector of measurements, 9|
is the state vector of the system,,{
function and & is the measurement noise vector.
The residual is defined as given in Eq. (19)
9 |
9
& 3 {
(19)
The measurement matrix for the same is calculated from Eq. (20),
9999 |
9
{

l} ~
9
|
(20)
9Z
9| |
l},is the measurement information matrix also known as Jacobian matrix, 9|Z() is the state from k-1 to
kth time instant.
The state transition matrix (()) is used to propagate covariance matrix is given by Eq. (21), (Grewal
et al., 2007, Gomes et al., 2007);
()   " 
() 
Where 
() .
O^
;^
(21)
^
0 and ‘T’ denotes the matrix transpose.
O^
Where, ;^ is Jacobian coefficient matrix given in Eq. (22).
;^
E=1 ! ( = (

E=21 (
E=31 (
E=12 (
E=2 ! ( = (
E=32 (
E=13 (

E=23 (
E=3 ! ( = (
(22)
In least square differential correction approach, the epoch (reference point from which time is measured)
state estimate is computed after processing full set of measurements (Xu, 2007). Due to non-linear relation
between the epoch state vector and the modeled measurement, multiple iterations are required to compute
Unauthenticated
90
epoch state estimate. This increases hardware storage capacity requirements. Due to this fact, the system
hardware carries unnecessary computational as well as power budget burden.
2.6. EKF implementation
To avoid computational as well as power budget burden, EKF method is selected for orbit estimation due
to its recursive in nature (Grewal et al., 2007). It uses sequential process to update the estimates with new
measurement. Flow chart for EKF based orbit estimation is shown in Fig.2. To implement EKF some initial
assumptions are needed to fulfill the filter’s requirement. To start the EKF process, it requires initial state
estimate and initial state error covariance matrix. The initial state vector 9|
of the satellite dynamic
model is given by Eq. (23);
9|
*1,,2,,3,Xo, ,Xp ,Xq -,^) ;
(23)
9
includes satellite position and velocity vectors.
The state vector |
START
Acquire a priori state and covariance estimates at set,8 O, i.e initialization
8"
, acquire a member of observation vector 3
Propagate state vector to , calculate state transition matrix ()
Calculate expected measurement { and partial derivatives of { with respect to
9
|
Propagate process noise covariance matrix  }()
Propagate error covariance matrix Pk-1(tk)
Calculate gain matrix  }
Update 9|
to become kth state estimate
Update error covariance matrix Pk
N
Last observation?
Y
State vector propagation to any time of interest
END
Figure 2. Flow chart for EKF based orbit estimation
Unauthenticated
91
A diagonal apriori covariance matrix }() with standard deviations (  ) of 10 m (position), 0.1 m/s
(velocity), is assumed. With these assumptions the apriori covariance matrix }() is given by Eq. (24);
}() [+m*o! ,,p! ,,q! ,,! ,,! ,,! ,-^
(24)
To cope with deficiencies of the employed propagation model, a fixed diagonal process noise matrix }() is
considered in the time update of the covariance matrix as given in Eq. (25);
}Z}() () }() _ () " }()
(25)
Representative process noise values used in the present application are (10−3m)2 (position), (10−6 m/s)2
(velocity).
The state transition matrix ( () ) shown in Eq. (25) is computed. The actual measurements are
collected from GPS Navigation sensor and modeled using Eq. (18). With the help of }Z}() l} and
 } ,parameters Kalman gain  } is calculated using the Eq. (26),
 } , }Z}() l} `l} }Z}() l} "  } g
()
(26)
The Kalman Gain is used as feedback for correcting state estimates, Rk is measurement noise covariance
9 ,,is obtained from Eq.
matrix which is,,in general a Gaussian zero-mean noise and the correction vector |
(27);
9  } 3 {
9Z() t
9 s|
|
(27)
And new predicted error covariance } is obtained from Eq. (28);
}   } l} }Z}()   } l}  "  }  } }
(28)
In this approach, EKF processes a single scalar or vector measurement at a time and yields sequential state
estimate at the measurement times.
2.7. GPS data processing
There are two types of GPS codes which are transmitted by the GPS satellite vehicle. One of them (Pcode) provides precise positioning with an accuracy of approximately few tens of meters. This code can
only be used by a receiver with access to the encryption key. This code is only for military users. The
second code is available to any commercial user. This code is known as Coarse/Acquisition (C/A) code.
This code is discussed here.
Each satellite transmits two carrier signals. One is centered at 1575. 42 MHz (known as L1 carrier) uses
Phase Shift keying (PSK) to modulate both C/A and P-code onto the carrier. The other signal (known as the
L2 carrier) is centered at 1227.60 MHz and uses PSK to modulate P-code onto the carrier. L1 carrier is the
signal used by the commercial receivers. It is modulated with 1.023 MHz Pseudo-Random noise (PRN)
code which is unique to each satellite. Each GPS satellite transmits the Navigation Message through C/A
code. The C/A codes from at least four GPS satellites are required to calculate the user receiver position in
Earth Centered Earth Fixed (ECEF) coordinate system (Gomes et al., 2007).
Unauthenticated
92
It is stated earlier that minimum four GPS satellites are must be in view for the receiver to determine to
3-dimentional position (Fig.1). This is because there are four unknowns in the set of four navigation
equations. Therefore, to solve for user position and time, we need to solve the following simultaneous
equations Eq. (29) (Amaral et al, 2007, Gomes et al., 2007).
) :) 1! " ) 2! " ) 3! " # u ! :! 1! " ! 2! " ! 3! " # u (29)
: 1! "  2! "  3! " # u ? :? 1! " ? 2! " ? 3! " # u ) ! ,¡,,? , are the pseudo-ranges to each of the satellites. A pseudo-range is a measurement of the
distance between the satellite and the receiver.
¢ ¢ £ ¢ ,for i=1,2,3,4 are the coordinates of the satellites in the Earth Centered Earth Fixed, WGS-84
coordinate reference frame,
,1, 2, 3 are the receiver WGS-84 coordinates,
#, ,F¤¥¥J¥F, ^ O¦ (speed of light) m/s,
is the receiver clock offset from GPS time (satellite time).
By linearizing Eq. (29) , one can get the observation vector (i.e. receiver position 1 2 3) and clock bias .
GPS satellite sends data through navigation message in frames to GPS receiver. These data are in spherical
coordinates and required to transform into Cartesian coordinates.
The navigation message includes Almanac data, ephemeris data, timing data, ionospheric delay data and
health data of the satellite. The information in the navigation message has basic five frames. Each frame is
subdivided into five 300-bit sub-frames and has 10 words of 30 bit. Out of above mentioned frames, the
Satellite Ephemeris data, ionospheric data frame and satellite timing data frame are of interest for the
present work. A detailed description of all information contained in the navigation message is beyond the
scope of this text.
The sub-frame of navigation message contains the ephemeris data, which is used to determine the
precise satellite position and velocity required by the navigation solution. This ephemeris data is valid over
a relatively short period of time (several hours), and applies only to the satellite transmitting it. The
components of the ephemeris data are given in (Xu, 2007, Grewal et al., 2007).
2.7.3. Calculation of ECEF coordinates of the GPS satellite from Ephemeris data
The ephemeris data including the following elements will be extracted from navigation message and
then further used to compute the GPS satellite position in the form of Earth Centered Earth Fixed (ECEF)
coordinate frame using following formulas given in Eq. (30) as discussed in (Xu, 2007).
Unauthenticated
93
!
Semimajor axis
w§y
¨
=
Kepler’s equation of eccentric anomaly
45 D
45 True anomaly from cosine
45 () A
D
Eccentric anomaly from cosine
(30)
With the help of above mentioned algorithm the kth GPS satellite position in ECEF coordinate frame is
determined using Eq. (31).
 1 45 ȍ 2 45 + ȍ
ECEF X coordinate
 1 45 ȍ "2 45 + 45 ȍ
ECEF Y coordinate
 2 +
ECEF Z coordinate
(31)
Where 1 2 are the GPS satellite positions in the orbital frame. Eq. (31) converts satellite position from
orbital frame to ECEF frame. A software routine for the same is developed in MATLAB.
3. RESULTS AND DISCUSSION
In this section the results obtained related to reference trajectory generation, least square orbit
determination and EKF orbit determination method are discussed.
A. Reference trajectory generation
Software to generate reference trajectory is developed in MATLAB. The effect of various zonal
perturbations like ;! , ; and ;? were tested. The Keplerian model shown in Eq. (6) is numerically integrated
with fixed step size Runge-Kutta 4th order method for the period of T=86,400 sec. Step size t =10 sec is used
for orbit integration. As can be seen from Fig. 3, the satellite orbit is confined with its orbital plane i.e.
under the influence of central gravitational field. The Eq. (7) is integrated first to get ;! perturbation by
neglecting ; and ;? terms. As can be seen from Fig.4 when secular perturbation term ;! is introduced, the
satellite orbit gets deviated from the orbit in the central gravitation field.
Unauthenticated
94
4000
2000
2000
z[km]
4000
z[km]
0
-2000
0
-2000
-4000
1
0.5
4
x 10
-4000
1
1
0
-0.5
y[Km]
0.5
0.5
0
-1
-1
4
1
0.5
0
4
x 10
-0.5
x 10
0
-0.5
x[Km]
y[Km]
-0.5
-1
-1
4
x 10
x[Km]
Figure: 4. Orbit Integration with ;!
Figure: 3. Keplerian Orbit Integration
To get the idea of the orbital parameter variation in detail each individual orbital parameter (semimajor axis in km), ,(eccentricity), +,(inclination angle in degree), ȍ(ascending node in degree), \
(argument of perigee in degree) respectively is plotted with respect to time separately. The Fig.5 shows
orbital parameters variation with respect to time in Keplerian orbit. As can be seen from Fig. 5, there is no
significant change in the orbital parameters except true anomaly (&) (which define the angular position of
orbiting body, it is subject to change with time due to the position changes) because there is no other force
which causes the change in orbital parameters. The maximum and minimum values of orbital elements
obtained in an orbit in different cases are given in Table 2. The variations in the orbital elements due to
secular perturbations ;! , ; and ;? are shown in Fig. 6. Satellite dynamic model Eq. (7) are then integrated
considering the effects of ;! , ; and ;? for the period T=86,400 sec with fixed step size=10 sec. As shown in
Fig. 6d, the regression of the ascending node under the ;! , ; and ;? perturbations is observed. In case of ;! ,
; and ;? perturbed orbit, the ascending node and argument of perigee exhibits significant almost linear
variation. The motion of the ascending node occurs because of the added attraction of the Earth’s equatorial
bulge, which introduces force components towards the equator. The ascending node regresses for direct
orbits (00< i < 900) and advances for retrograde orbits (900< i < 1800). From this study it is observed that ;!
is the main zonal parameter which affects the state vector more. Other parameters like ; and ;? have a
greater impact for long term integration. In the present application the long term integration is not required.
Table 2: Variations in orbital elements
Orbital
Parameters
[km]
+,[deg.]
ª [deg.]
\ [deg.]
Max.
6828.956
0.009016
28.47401
35.91182
-44.5593
Min.
6828.952
0.009015
28.47401
35.91182
-44.5708
;! , ; and ;?
;!
Keplerian orbit
Max.
6828.975
0.009311
28.47404
35.91182
-32.5345
Min.
6824.416
0.00711
28.43975
28.96786
-58.0807
Max.
6871.082
0.064504
28.5831
35.92338
-0.00189
Min.
6818.754
0.007943
28.39334
29.04105
-46.7252
Unauthenticated
95
Figure 5. Orbital parameters variation in Keplerian orbit
Figure 6. Orbital parameter variation due to main harmonic ;! , ; and ;? .
Unauthenticated
96
a. Atmospheric drag effect
The orbit of a satellite is integrated for a 1, 2 and 5 days period to test the effect of drag on the satellite
orbital elements. It is observed from Fig. 7, that semimajor axis shows major declination with atmospheric
drag effect. For longer time period i.e. for a period of 5 days semimajor axis decline by 500 meter (Fig 7e).
This considerable declination in the semimajor axis affects the accuracy of the orbit determination.
Semi-major axis Vs Time
6829
6828.5
6828.5
6828
6828
6827.5
6827.5
Semi-major axis(a) in Km
Semi-major axis(a) in Km
Semi-major axis Vs Time
6829
6827
6826.5
6826
6825.5
6827
6826.5
6826
6825.5
6825
6825
6824.5
6824.5
6824
0
1
2
3
4
5
6
7
8
tsec
6824
9
0
1
2
4
5
6
7
8
tsec
x 10
Fig: 7a. ;! + Drag (Period: one day)
9
4
x 10
Fig: 7b. ;! only (Period: one day)
Semi-major axis Vs Time
Semi-major axis Vs Time
6829
6829
6828.5
6828.5
6828
6828
6827.5
6827.5
Semi-major axis(a) in Km
Semi-major axis(a) in Km
3
4
6827
6826.5
6826
6825.5
6825
6827
6826.5
6826
6825.5
6825
6824.5
6824.5
6824
0
2
4
6
8
10
12
14
t sec
Fig: 7c. ;! + Drag (Period: two day)
16
18
4
x 10
6824
0
2
4
6
8
10
12
14
tsec
16
18
4
x 10
Fig: 7d. ;! only (Period: two day)
Unauthenticated
97
Semi-major axis Vs Time
Semi-major axis Vs Time
6829
6829
6828.5
6828
Semi-major axis(a) in Km
Semi-major axis(a) in Km
6828
6827
6826
6825
6827.5
6827
6826.5
6826
6825.5
6825
6824
6824.5
6823
0
0.5
1
1.5
2
2.5
3
3.5
tsec
4
4.5
6824
0
0.5
1
1.5
2
2.5
3
3.5
tsec
5
x 10
Fig: 7e. ;! + Drag (Period: five day)
4
4.5
x 10
5
Fig: 7f. ;! only (Period: five day)
B. Orbit estimation results: least squares
Least squares differential correction algorithm is used to determine the orbit of a spacecraft from
simulation of position and velocity measurements generated along the reference trajectory. The subroutine
for the same is developed in MATLAB environment. The true spacecraft position and velocity at initial
epoch for present simulations with respect to the inertial reference frame of the standard epoch J2000.0 are
given by;
*E¥ F¤E JLE£, KM¤
F¥J£ ,H¥ E¤¥ EFO- km; X *,H¤¥FHLJJ£,F¤HFHM E£,E¤¥KK¥L¥- km/s.
The model equations used in this method are given in Eq. (7) and Eq. (18) to Eq. (22). Measurements are
taken at 10-second intervals over a 100-second simulation. The measurement errors are zero-mean Gaussian
with a standard deviation of the position measurement error given by ıposition = 10 m, and a standard
deviation of the velocity measurements given by ıvelocity = 0.1 m/sec.
Table 3. Least square iterations for orbit estimation
Nr
Initial position components [km]
Initial velocity components [km/s]
1
5482
1
1
1
1
1
2
2675.412
-4000.12
-1259.63
3.792749
4.888852
3.014527
3
4508.612
-7915.99
6013.159
4.330451
9.472996
-8.56845
4
2846.889
658.872
10627.15
9.703767
-6.5569
-13.5849
5
3523.785
-905.629
5868.684
7.235599
-0.69701
-4.03073
6
3919.372
-183.179
5974.346
5.880111
-2.54941
-4.24749
7
3913.082
-184.847
5914.523
5.906372
-2.54047
-3.98977
Unauthenticated
98
The estimated values of state vector components shown in Table 3, are in the agreement with the given true
position and velocity components at initial epoch, at the level of a few hundred meters to one kilometer
(position) and at the level of several tens of meters per second (velocity). In order to assess the performance
of the least squares differential correction algorithm, the initial guesses for the position and velocity are
given by = [5482 1 1] km, and X = [1 1 1] km/sec. As can be seen from Table 3, the algorithm converges
after seven iterations in the present case.
C. Orbit estimation: extended Kalman filter
The satellite dynamic model is of non-linear form. Due to the non-linear relation of the state vector and
the measurements, multiple iterations are required to compute the state estimate. The subroutine for the
same in developed in MATLAB environment. The true spacecraft position and velocity at the initial epoch
for present simulations are given by;
*E¥ F¤E JLE£, KM¤
F¥J£ ,H¥ E¤¥ EFO- km; X *,H¤¥FHLJJ£,F¤HFHM E£,E¤¥KK¥L¥- km/s.
Using EKF the reference trajectory is updated with each measurement. In the EKF method, the only
analytical computations for the orbital EKF are the evaluations for the partial derivatives of dynamic model
and observation model with respect to the state vector 9|. These Jacobian, , and sensitivity matrix H are
evaluated at the current estimated state. Due to its sequential in nature it takes less iterations to compute
state estimate.
Table 4. EKF iterations for orbit estimation
Nr
1
2
3
Position (km)
4156.668
3911.886
3911.886
265.6841
-185.258
-185.257
Velocity (km/sec)
6260.527
5913.071
5913.072
-3.227
5.94139
5.941394
-19.4337
-2.54235
-2.54239
-14.3844
-3.97501
-3.97503
Therefore implementation of EKF algorithm is much more straightforward than Least Squares
Differential Correction method. It is clearly seen from Table. 4, EKF converges much faster than least
square method due to its sequential in nature.
4. CONCLUSIONS
In this work, the state vector is propagated using fixed step size orbit integration. Satellite orbit dynamic
models with ;! , ; and ;? are integrated. With this experiment, it is observed that orbit integration with
;! ,only is sufficient to use for present application. Effect of atmospheric drag is also studied. Using the
proposed simplified model it is concluded that it is feasible for on-board orbit determination application. To
start the EKF orbit determination algorithm it is required to set the accurate initial guess. The same guess is
determined first by least square algorithm and then it is further used in EKF orbit determination algorithm.
Both, the least square and EKF orbit determination algorithms are developed and the results of the same are
compared with each other. With our study it is observed that EKF algorithm is much faster than least square
algorithm because of its recursive in nature and also shows comparable accuracy with least square method.
This property of EKF algorithms makes it suitable for hardware implementation for autonomous orbit
determination.
Unauthenticated
99
5. Acknowledgement
The authors thank the Indian Space Research Organization- University of Pune Space Technology Cell
Pune, for the financial support ISAC Bangalore for technical support. The authors also thank Padmashree
Pramod Kale for his valuable guidance and support.
REFERENCES
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
Amaral J., Kuga H., Souza M., “Real time multisatellite orbit determination for constellation
maintenance”, Proceedings of COBEM. NAVSTAR GPS user equipment introduction, US
Government, chapter 7, 2007.
Bock H., Hugentobler U., Springer T, and Beutlerl G., "Efficient precise orbit determination of LEO
satellites using GPS", Advances in Space Research,30(2), pp.295-300, 2002.
Chiaradia A., Kuga H, and Prado A., "Onboard and Real-Time Artificial Satellite Orbit
Determination Using GPS", Mathematical Problems in Engineering, Hindawi Publishing
Corporation, 2013.
Choi E., Yoon J., Lee B., Park S., Choi K.,"Onboard orbit determination using GPS observations
based on the unscented Kalman filter",Advances in Space Research, 46,pp. 1440–1450, 2010,
Degnan, J., and Pavlis, “Laser Ranging to GPS Satellites with Centimeter Accuracy”, E.C.(1994):,
GPS World, pp. 62-70, September, 1994.
Gomes V., Kuga H., Chiaradia A., “Real-Time orbit determination solution using GPS Navigation
Solution”, J. Braz. Soc. Mech. Sci. & Eng., 29(3), pp. 274-278, 2007.
Grewal M., Weill L., Andrews A., “Global Positioning System, Inertial Navigation and Integration”,
A John Wiley and Sons Inc, Publication, page.no 37, 2007.
Pardal P., Kuga H, and deMoraes R., “Implications of the application of recursive least squares
algorithms to satellite orbit determination using GPSmeasurements,”WSEAS Transactions on
Systems, vol. 8, no. 3, pp. 334–343, 2009.
Parkinson B., Spilker J., “Global Positioning System: theory and Applications”, AIAA, Vol.1,
Progress in Astronautics and Aeronautica 163, 1996.
Taply B., Schutz B. and Born G, “Statistical orbit determination”, Elsevier Academic Press, USA,
2004.
Vallado D., McClain W., “Fundamentals of astrodynamics and applications”, 3rd ed., Microcosm
press, Ca,2007.
Xu G., “GPS Theory, Algorithm and Applications”, 2nd Edition, Springer, 2007.
Yunck T., Bertiger W., Wu S., Bar-Sever Y., Christiansen E., Haines B., Lichten S., Muellerschoen
R., and Willis P., “First Assessment of GPS-Based Reduced Dynamic Orbit Determination on
TOPEX/Poseidon”, Geophys. Res. Let., V.21, pp. 541-544, 1994.
Zarchan P., “ Fundamentals of Kalman Filtering: A Practical Approach”, 2nd Edition, by , AIAA,
2005.