1. INTRODUCTION
Global Navigation Satellite Systems (GNSS) comprise a space segment, a control segment and a user segment that together provide the positioning service. The space segment consists of various constellations of satellites orbiting the Earth in Medium Earth Orbit (MEO), Geosynchronous Earth Orbit (GEO) and Inclined Geosynchorous Orbits (IGSO). The Global Positioning System (GPS) (United States), Galileo (European Union (EU)), BeiDou (China) and Globalnaya Navigazionnaya Sputnikovaya Sistema (GLONASS (Russia)) are examples of currently operational satellite constellations, with other countries in the process of developing regional navigation systems. The user segment is responsible for developing GPS user equipment for civil and military purposes. The control segment of the GNSS is employed to monitor satellite health, maintain system time and communication with the satellites and to monitor satellite orbits and predict satellite state and clock parameters. (Mishra and Enge, Reference Mishra and Enge2004)
For accurate positioning and navigation service at the user end, it is necessary to determine and predict the orbits of the GNSS satellites to a high precision and accuracy. Precise Orbit Determination (POD) methods have therefore been developed progressively over the decades. The most common approaches to POD are dynamics, geometric, kinematic and reduced dynamic orbit determination. The dynamics approach uses satellite motion models to determine orbits, but since every force model runs on several assumed parameters, it is unlikely that the dynamics method alone will yield an accurate POD. The geometric approach uses the method of trilateration to connect dispersed points and determine the satellite's orbit. This method relies on observational accuracy and precision. The kinematic approach attempts to reduce these shortcomings by combining both methods but still relies on observational accuracy. The reduced dynamic orbit determination method is the best approach as it utilises either batch or sequential filtering to provide greater weighting to either the dynamic model or the measurements depending on statistical confidence. One of the most widely used sequential filtering algorithms is the Kalman Filter (KF) (Pei et al., Reference Pei, Biswas, Fussell and Pingali2017; He et al., Reference He, Zhou and Zhang2017).
Although real world processes are modelled as non-linear systems, the original Kalman Filter was suitable only for linear systems. To offset this drawback, the Extended Kalman Filter (EKF) was formulated which linearizes the dynamical system in question before using the Kalman filter. In the case of POD, the EKF serves as the standard for sequential filtering algorithms (Sunahara, Reference Sunahara1970).
Returning to calculating POD with the geometric approach, a method called Double Differencing (DD) eliminates the need to estimate satellite and receiver clock biases. The advantage of this method is that it allows the orbit determination process to be independent of satellite-only and receiver-only anomalies. The drawback is that it results in increased noise and correlation of estimates. An alternate to the DD technique is the projection-based estimation. Results obtained from this method are higher in precision than those from the DD method, although the noise and correlation remain (Anand, Reference Anand2018).
In this paper, a modification to the EKF is proposed by utilising projection-based processing of the measurement step which reduces the divergence shown by the conventional Kalman Filter due to elimination of the satellite and receiver anomalies.
2. METHODOLOGY
In this section, a basic measurement model for satellite position estimation with pseudoranges is described using bias elimination by the projection method (Anand, Reference Anand2018). A Modified KF is then formulated by utilising the projection method and is presented alongside the conventional Kalman filter.
2.1. Pseudorange measurement model
If we consider Xsat and Xrecv to be the position vectors of the satellite and the receiver respectively such that in terms of the axial components x, y and z:
then the geometric distance between the satellite and the receiver,
${}_{recv}^{sat} \rho $, is given by the l 2-norm (Horn and Johnson, Reference Horn and Johnson2013) of the vector obtained by subtracting Xrecv from Xsat:
Using the geometric distance
${}_{recv}^{sat} \rho $ obtained from Equation (3) and taking into account the receiver clock bias c recvδt and satellite clock bias c satδt where c is the speed of light and δ t is one half of the time difference between sending and receiving the signal between the satellite and the receiver, along with the biases and delays associated with code range observables namely the receiver hardware bias
${}_{recv} \Delta_{P_{f}}$, satellite hardware bias
${}^{sat} \Delta_{P_{f}}$, ionospheric delay
${}_{recv}^{sat} I_{f}$, tropospheric delay
${}_{recv}^{sat} T_{f}$, multipath delay
${}_{recv}^{sat} m_{P_{f}}$ and other unmodelled errors
$\varepsilon _{P_{f}}$, the Pseudorange measurement using code range observables,
${}_{recv}^{sat} P_{f}$, at a given frequency f can be modelled as:
The Pseudorange measurement at a given carrier frequency f using carrier phase observables
${}_{recv}^{sat} \Phi_{f}$ can also be modelled similarly to Equation (4) using equivalent bias and delay terms for carrier phase. However, in the case of the carrier phase, the ambiguous range also has to be accounted for, which is the
${}_{recv}^{sat} {\rm N}\lambda_{f}$ term in Equation (5), where N is the integer ambiguity and λ is the carrier wavelength.
$$\eqalign{{}_{recv}^{sat} \Phi_{f}&={}_{recv}^{sat} \rho +c ( {}_{recv} {\delta t}-{}^{sat} {\delta t} ) +{}_{recv} \Delta _{\Phi_{f}}-{}^{sat} \Delta_{\Phi_{f}}+{}_{recv}^{sat} {{\rm N}\lambda}_{f} -{}_{recv}^{sat} I_{f} \cr & \quad +{}_{recv}^{sat} T+{}_{recv}^{sat} m_{\Phi_{f}}+\varepsilon_{\Phi_{f}}} $$ In the case of modelling the carrier phase measurement
${}_{recv}^{sat} \Phi_{f}$ as shown in Equation (5), the integer ambiguity N is a constant number as long as the carrier tracking loop maintains lock. Any break in tracking could change the value of N, which means that there is an increased complexity in assigning a reliable value for N in order to calculate the ambiguous range associated with carrier phase measurements (Mishra and Enge, Reference Mishra and Enge2004). Therefore, in order to keep the modelling process simple for the work presented in this paper, the Pseudorange measurement has been modelled using code range measurement, that is, Equation (4).
Equation (4) is further simplified by grouping together satellite-only, receiver-only and combined satellite-receiver errors so that the pseudorange measurement equation now becomes:
These satellite-only, receiver-only and combined satellite-receiver errors are classified in Table 1. The measurement is then linearized about an approximate guess position for each satellite such that Equation (6) becomes:
Error classification (Anand, Reference Anand2018)

where δ represents the change in the value of each parameter with respect to that of the previous epoch. Further, the term
${}_{recv}^{sat} \delta \rho$ in Equation (7) can be modified using the Newton Raphson Method (Mishra and Enge, Reference Mishra and Enge2004) as:
$${}_{recv}^{sat} {\delta \rho }=\left[\displaystyle{{x_{sat}-x_{recv}}\over{{}_{{\bi recv}}^{{\bi sat}} {\bi \rho}}}\comma \; \displaystyle{{y_{sat}-y_{recv}}\over{{}_{{\bi recv}}^{{\bi sat}} {\bi \rho}}}\comma \; \displaystyle{{z_{sat}-z_{recv}}\over{{}_{{\bi recv}}^{{\bi sat}} {\bi \rho}}} \right]^{{\bf T}}{\delta {\bi X}}_{sat} $$In Equation (8),
For the sake of simplicity let:
$$\left[\displaystyle{{x_{sat}-x_{recv}}\over{{}_{{\bi recv}}^{{\bi sat}} {\bi \rho}}}\comma \; \displaystyle{{y_{sat}-y_{recv}}\over{{}_{{\bi recv}}^{{\bi sat}} {\bi \rho}}}\comma \; \displaystyle{{z_{sat}-z_{recv}}\over{{}_{{\bi recv}}^{{\bi sat}} {\bi \rho}}} \right]^{{\bf T}}=( -{{\bf 1}}_{{\bi recv}}^{{\bi sat}} ) $$So that Equation (7) can be re-written as:
For n satellites and m receivers, we obtain mn number of pseudorange measurements. These measurements are then linearized as shown in Equation (11) to build a system of equations as shown in Equation (12):
In this system of linearized equations, y is a matrix of size mn × 1 and it contains all the values of
${}_{recv}^{sat} {\delta P}^{\ast }$ for n satellites and m receivers. I is an identity matrix of size mn × mn, u is the vector containing the position, biases and the delays split into: u* which contains change in position vectors over an iteration for each satellite:
ulos contains the ionospheric, tropospheric and multipath delays which can be modelled from measurements and removed:
and uelim contains the satellite-only and receiver-only biases:
A is the Jacobian of the pseudorange measurements with respect to the position vector as shown in Equation (16):
$${\bf A}=\left[\matrix{( {\bf -1}_{{\bf 1}}^{{\bf 1}})^{{\bf T}} & {\open O}_{{\bf 3}}^{{\bf T}} & \cdots & {\open O}_{{\bf 3}}^{{\bf T}} \cr \vdots & \vdots & \, \, & \vdots \cr ( {\bf -1}_{{\bi m}}^{{\bf 1}})^{{\bf T}} & {\open O}_{{\bf 3}}^{{\bf T}} & \cdots & {\open O}_{{\bf 3}}^{{\bf T}} \cr {\open O}_{{\bf 3}}^{{\bf T}} & ( {{\bf -1}}_{{\bf 1}}^{{\bf 2}})^{{\bf T}} & \cdots & {\open O}_{{\bf 3}}^{{\bf T}} \cr \vdots & \vdots & \, \, & \vdots \cr {\open O}_{{\bf 3}}^{{\bf T}} & ( {\bf -1}_{{\bi m}}^{{\bf 2}})^{{\bf T}} & \, \, & {\open O}_{{\bf 3}}^{{\bf T}} \cr \vdots & \vdots & \, \, & \vdots \cr {\open O}_{{\bf 3}}^{{\bf T}} & {\open O}_{{\bf 3}}^{{\bf T}} & \cdots & ( {{\bf -1}}_{{\bf 1}}^{{bi n}})^{{\bf T}} \cr \vdots & \vdots & \, \, & \vdots \cr {\open O}_{{\bf 3}}^{{\bf T}} & {{\open O}}_{{\bf 3}}^{{\bf T}} & \cdots & ( {{\bf -1}}_{{\bi m}}^{{bi n}})^{{\bf T}}}\right]_{mn\times 3n} $$ In Equation (16), the terms
$( {{\bf -1}}_{{\bi m}}^{{bi n}}) $ are as defined in Equation (10) while 𝟘3 is a 3 × 1 matrix of zeros.
B is the Jacobian of the pseudorange measurements with respect to the satellite-only and receiver-only biases:
$${\bf B}=\left[\matrix{{\bf I}_{m} & -{\open I}_{m} & {\open O}_{m} & \ldots & {\open O}_{m} \cr {\bf I}_{m} & {\open O}_{m} & -{\open I}_{m} & \ldots & {\open O}_{m} \cr \vdots & \vdots & \vdots & \, \, & \vdots \cr {\bf I}_{m} & {\open O}_{m} & {\open O}_{m} & \ldots & -{\open I}_{m}}\right]_{mn\times ( m+n) } $$In Equation (17), I is an identity matrix of size m × m, 𝟙m is a m × 1 matrix of ones and 𝟘m is a m × 1 matrix of zeros.
2.2. Projection method
The Single Difference method eliminates the satellite-only bias terms from the measurement function, while the Double Difference (DD) method goes one step further and eliminates the receiver-only bias terms as well, thus mathematically shifting focus towards the position estimation problem without having to account for satellite and receiver-only biases (Mishra and Enge, Reference Mishra and Enge2004). The downside to this is that double differencing reduces the number of available observations while causing higher error correlation and noise.
De Jonge (Reference De Jonge1998) shows a method of undifference that helps to partly counter the above problem using a projection matrix. The projection method allows for the number of available observations to remain unaffected while reducing the degree of error correlation with increasing satellite and receiver combinations although this results in a marginal increase in noise (Anand, Reference Anand2018).
For the current system of n satellites and m receivers, there exists a K1 and K2 such that,
$$K1=\left[\matrix{( m-1) ( n-1) & 1-n & \ldots & 1-n \cr 1-n & ( m-1) ( n-1) & \ldots & 1-n \cr \vdots & \vdots & \, \, & \vdots \cr 1-n & 1-n & \ldots & ( m-1) ( n-1) \cr }\right]_{m\times m} $$
$$K2=\left[\matrix{1-m & 1 & \cdots & 1 \cr 1 & 1-m & \cdots & 1 \cr \vdots & \vdots & \, \, & \vdots \cr 1 & 1 & \cdots & 1-m}\right]_{m\times m} $$
$${\bf K}=\displaystyle{{1}\over{mn}}\left[\matrix{K1 & K2 & \cdots & K2 \cr K2 & K1 & \cdots & K2 \cr \vdots & \vdots & \, \, & \vdots \cr K2 & K2 & \cdots & K1}\right]_{mn\times mn} $$where K is the projection matrix for the Jacobian B. Therefore, we arrive at a helpful result: KB = 0mn×(m+n).
The projection method thus allows for the nullification of the satellite-only and receiver-only bias vectors. The updated linearized measurement equation now becomes:
The measurement covariance is updated as:
since the property of the projection matrix is such that KT = K and K2 = K (Strang, Reference Strang2010).
u* is then estimated by calculating the Moore-Penrose inverse (Penrose, Reference Penrose1955) of A′:
2.3. Kalman filter formulation
In this section, a Modified Kalman Filter (MKF) is formulated in a similar fashion to the familiar Conventional Extended Kalman Filter (CKF) algorithm and following the projection-based measurement function formulated in the previous section.
Table 2 summarises the algorithms for both the CKF and the MKF and provides a comparison of the formulation of both filters.
Summary of CKF and MKF algorithms

In both the CKF and the MKF, X represents the satellite's State Vector (SV):
Δ X is the update in state vector added to the SV from the previous epoch, Xi−1:
In Table 2, Φ is the dependence of the SV on the initial state, that is, X at t = 0. However, unlike a least squares estimation algorithm that uses all the known measurements to estimate position at every epoch, the Kalman Filter holds an advantage in being an online estimation algorithm that follows an incremental fusing of estimates (Pei et al., Reference Pei, Biswas, Fussell and Pingali2017). Therefore, the state transition matrix in this case is the dependence of the SV on the state at the previous epoch that is:
P is the covariance of the position estimate as formulated in the previous section and K is the Kalman gain matrix. In both algorithms shown in Table 2, a minus sign in the superscript indicates an update in the model function while a plus sign indicates an update in the measurement function. As is the case in any Kalman Filter algorithm, the measurement update from the previous epoch serves as the a priori estimate for the model update in the succeeding epoch.
The difference between the algorithms is that the MKF utilises the projection-based position estimates from the measurement function while the CKF includes the satellite and receiver biases so that the innovation in the CKF is characterised by:
where P is the pseudorange measurement between the satellite and the receiver. The Modified Kalman Filter on the other hand utilises Equation (29) which is the output from the projection method:
3. RESULTS
3.1. Data description
Figure 1 shows the data used for processing both KF strategies. This data was obtained from orbit simulation of three sample satellites SATA, SATB and SATC using National Aeronautical and Space Administration's (NASA's) General Mission Analysis Tool (GMAT) which is an open source software system freely available for public use (NASA, 2016). It can be seen from Figure 1 that SATA is a geostationary satellite while SATB and SATC are geosynchronous. The said satellite positions were then estimated for five days starting from 10 April 2011 at an interval of 300 seconds using the CKF and the MKF. The resulting positions were then compared with simulated data to compare convergence achieved with both KFs.
Simulated orbit representations of Satellite A (GEO), Satellite B (IGSO) and Satellite C (IGSO).

3.2. Satellite position error
Figures 2, 4 and 6 show the root mean square errors of SATA, SATB and SATC's estimated positions using the CKF, while Figures 3, 5 and 7 show the equivalent plots using the MKF presented in this paper. While both Kalman Filters exhibit convergence, the MKF shows a better trend. This is clearly observable in the case of SATB and SATC. In the case of SATA, it is observed that while the point of convergence appears to be the same in both filtering strategies, the MKF again shows a much better error convergence overall.
Satellite A (x,y,z) position error convergence using a conventional Kalman Filter.

Satellite A (x,y,z) position error convergence using the modified Kalman Filter.

Satellite B (x,y,z) position error convergence using the conventional Kalman Filter.

Satellite B (x,y,z) position error convergence using the modified Kalman Filter.

Satellite C (x,y,z) position error convergence using the conventional Kalman Filter.

Satellite C (x,y,z) position error convergence using the modified Kalman Filter.

4. CONCLUSION
The Modified Kalman Filter presented in this paper is an improvement in the propagation step of Precise Orbit Determination (POD) over the Extended Kalman Filter and thus provides better satellite position estimation without the necessity of improving the Keplerian models used in current POD techniques. The large value of error in position estimation (in the order of kilometres) using both Kalman filters is due to the use of code range variables in the measurement model. Therefore, future work on POD using this technique will concern modelling the carrier phase instead of code range, and to test the Modified Kalman Filter's performance using real satellite orbit data depending on data availability.








