1 Introduction

Real-time satellite orbit and clock products are prerequisite for the real-time precise applications of Global Navigation Satellite System (GNSS), such as real-time atmospheric water vapor monitoring (Rocken et al. 1997) and the near real-time precise orbit determination (POD) of the low earth orbit satellites (Hauschild and Montenbruck 2009). To support these applications, several international GNSS service (IGS) real-time analysis centers (RTACs) have officially provided the real-time precise orbit and clock products for publics, supporting multi-GNSS satellites including GPS, GLONASS, Galileo as well as BDS (https://www.igs.org/rts/). Most RTACs implement a Kalman filter to estimate clock offset in real time, while the real-time precise orbits are usually obtained from prediction of the ultra-rapid products that are generated by the post-processed orbit solutions. Therefore, the real-time satellite orbit and clock products are actually generated by “two-step” method. The predicted real-time (RT) part of ultra-rapid orbits have a high accuracy in most of the time, with a 3D RMS of about 5 cm for GPS, 10 cm for GLONASS and Galileo, and 20–30 cm for BDS IGSO and MEO satellites, respectively (Hadas and Bosy 2015; Kazmierski et al. 2018). However, it is difficult to maintain this high accuracy for satellites during eclipse season and maneuver periods because of imperfect dynamical model (Laurichesse et al. 2013; Choi et al. 2013), which will further affect the accuracy and stability of real-time clock estimation.

Other than the traditional real-time POD strategy based on batch least squares and orbit prediction, the filter-based method has also been adopted and developed in recent years to meet the demands for high quality real-time orbit products. As early as in 1996, the Kalman filter approach has been adopted to generate the GPS broadcast ephemeris (Parkinson et al. 1996). In the Real-Time GIPSY (RTG) software developed by Jet Propulsion Laboratory (JPL), the square root information filter (SRIF) method is implemented for GPS real-time POD (Bertiger et al. 2012). To improve the real-time orbit accuracy of eclipsing satellites, Laurichesse et al. (2013) adopted the Kalman filter method to adjust both orbits and clocks based on GNSS observation stream. The 3D orbit error is quite stable at 3.7 cm, while the orbit error of eclipsing block IIA satellites can still locally be larger than 20 cm. Duan et al. (2019) reported that the real-time POD results are more accurate than the 6-h predicted orbits when the same tracking stations are involved. Recently, the filter-based method, in which the dynamic noise and orbit states can be tuned at each epoch, is also employed to perform real-time POD for the orbital maneuver satellites for stable and continuous orbit products (Dai et al. 2018, 2019).

As for satellite clock estimation, to meet the demands of high-rate real-time clock products, the epoch-differenced method is widely used because epoch-differenced eliminates phase ambiguity parameters, leading to significant acceleration in clock estimation (Zhang et al. 2007; Ge et al. 2009). However, the satellite clock estimated by epoch-differenced method contains a satellite-specific bias. To overcome this issue, a mix-differenced method based on the undifferenced code and epoch-differenced phase observations is proposed (Ge et al. 2012; Zhang et al. 2016). Recently, with the application of high-performance mathematic library and GNSS algorithm optimization, the computation efficiency is greatly improved for GNSS network processing (Gong et al. 2018). Thus, the undifferenced code and phase observations can be efficiently processed for high-rate real-time clock estimation (Fu et al. 2018; Shi et al. 2019), which is consistent with the observation model of POD process.

Filtering the undifferenced phase and code observations to estimate orbit and clock parameters simultaneously is promising for GNSS real-time service, because the filter-based methods are robust to orbit maneuver and dynamic model anomaly, and the resulting products will be more consistent and stable. However, these methods estimate phase ambiguity as float parameter without recovering its integer nature, which hampers the further improvement of parameter estimates. Actually, it has been proven that fixing ambiguity to correct integer will bring significant improvement to parameter estimation in GNSS data processing (Blewitt 1989; Dong and Bock 1989; Ge et al. 2005; Gong et al. 2018). However, the undifferenced ambiguity cannot be fixed simply as the uncalibrated phase delay (UPD) of satellite and receiver are essentially float value (Blewitt 1998). Therefore, the double-differenced (DD) operation between satellite and receiver was employed to eliminate the satellite and receiver UPDs, resulting in the fixable DD ambiguity estimates. This method has been widely used in the post-processing of large network and real-time kinematic positioning (Teunissen 1995; Ge et al. 2006). However, the classical DD ambiguity-fixing method is hard to be used in the filter-based real-time processing, because searching the most-easy-to-fix DD ambiguities is time-consuming and that the observation size and satellites change dynamically make it even more complicated.

Therefore, fixing the undifferenced ambiguity estimated from a filter is more practical for real-time processing. In fact, it has been demonstrated that the float satellite UPD is stable enough to be estimated and separated based on observations of a network, which has supported the development of precise point positioning (PPP) ambiguity resolution (Gabor and Nerem 1999, 2002; Laurichesse and Mercier 2007; Ge et al. 2008; Collins et al. 2008; Geng et al. 2010). To isolate satellite and receiver UPD from undifferenced ambiguity precisely, two kinds of methods have been proposed, i.e., the UPD/FCB-based common clock model and the IRC/DC-based distinct clock model, which are equivalent and transformable theoretically (Teunissen and Khodabandeh 2014). Though proposed for PPP ambiguity resolution, the undifferenced ambiguity fixing methods can also be used to fix ambiguity in network processing, such as POD or precise clock estimation. Actually, the IRC/DC algorithm supports PPP AR based on the ambiguity-fixed clock. However, the distinct clock model assimilates satellite and receiver UPD into the corresponding clock offset, while the common clock model estimates UPD and clock offset independently, which is compatible with the classical clock estimation. Dai et al. (2019) adopted the UPD model to fix ambiguities in GPS real-time clock estimation, bringing significant improvements to accuracy and efficiency. In some current researches of real-time POD, the DD ambiguity-fixing method was still adopted in the real-time filter estimation to improve the orbit accuracy (Li et al. 2019; Duan et al. 2019).

In this contribution, the UPD model is developed to improve the accuracy of real-time POD. The satellite orbit and clock parameters are estimated simultaneously by the SRIF, in which the undifferenced ambiguities are fixed in real time based on the extraction of satellite and receiver UPDs. With the proposed method, 1-month observations from 150 globally distributed stations are processed to generate the real-time orbits and clocks for GPS and Galileo satellites. The accuracy of real-time POD products is analyzed by comparing to the IGS AC final orbit products and the satellite laser ranging (SLR) residuals. Meanwhile, the accuracy of real-time clock products without and with AR is compared. Furthermore, with the real-time orbit, clock and UPD products, multi-GNSS kinematic PPP and PPP-AR is implemented and analyzed.

In the following, the mathematical model of real-time POD together with the method of undifferenced ambiguity resolution is described in detail in Sect. 2. The network and data-processing strategy is emphasized in Sect. 3. The performance of real-time orbit, clock and UPD products as well as the computational efficiency is analyzed and evaluated in Sect. 4. Finally, the summary and conclusions are drawn in the last section.

2 Mathematical model

This section describes the mathematical observation and models for GNSS satellite real-time orbit and clock estimation. Then, the real-time ambiguity-fixed strategy is introduced in detail.

2.1 Basic mathematical equations

The GNSS linearized observation equations of undifferenced ionospheric-free combination of carrier phase and pseudorange observations for station \(r\) which are expressed in the earth-centered inertial (ECI) system can be presented as follows

$$\begin{aligned}\left\{\begin{array}{llllll}{l}_{r,i}^{s}={{\varvec{u}}}_{r,i}^{s}\cdot \Delta {{\varvec{x}}}_{i}^{s}-{{\varvec{u}}}_{r,i}^{s}\cdot {{\varvec{R}}}_{{\varvec{i}}}\cdot \Delta {{\varvec{x}}}_{r}\\ -{{\varvec{u}}}_{r,i}^{s}\cdot {{{\varvec{X}}}_{r}\cdot {\varvec{d}}{{\varvec{R}}}_{{\varvec{i}}}{\varvec{d}}}_{erp,i}\cdot \Delta {{\varvec{x}}}_{erp,i}-c\cdot {t}_{i}^{s}+c{\cdot t}_{r,i}\\ +\lambda \cdot ({N}_{r,i}^{s}+{b}_{r,i}-{b}_{i}^{s})+{m}_{r,i}^{s}\cdot {T}_{r,i}+{\varepsilon }_{r,l,i}^{s}\\ {p}_{r,i}^{s}={{\varvec{u}}}_{r,i}^{s}\cdot \Delta {{\varvec{x}}}_{i}^{s}-{{\varvec{u}}}_{r,i}^{s}\cdot {{\varvec{R}}}_{{\varvec{i}}}\cdot \Delta {{\varvec{x}}}_{r}\\ -{{\varvec{u}}}_{r,i}^{s}\cdot {{{\varvec{X}}}_{r}\cdot {\varvec{d}}{{\varvec{R}}}_{{\varvec{i}}}{\varvec{d}}}_{erp,i}\cdot \Delta {{\varvec{x}}}_{erp,i}-c\cdot {t}_{i}^{s}+c{\cdot t}_{r,i}\\ +c\cdot ({d}_{r,i}-{d}_{i}^{s})+{m}_{r,i}^{s}\cdot {T}_{r,i}+{\varepsilon }_{r,p,i}^{s}\end{array}\right. \end{aligned}$$
(1)

where \(s\) refers the observed satellite; \({l}_{r,i}^{s}\) and \({p}_{r,i}^{s}\) are the carrier phase and pseudorange observation-minus-computation (OMC); \({{\varvec{u}}}_{r,i}^{s}\) is the unit direction vector from receiver \(r\) to satellite\(s\); \(\Delta {{\varvec{x}}}_{i}^{s}\) and \(\Delta {{\varvec{x}}}_{r}\) denote the estimate states for satellite and station positions, respectively; \({{\varvec{R}}}_{{\varvec{i}}}\) is the coordinate transition matrix from the Earth-centered Earth-fixed (ECEF) system to the ECI system; \({{\varvec{d}}{{\varvec{R}}}_{{\varvec{i}}}{\varvec{d}}}_{\mathrm{erp},i}\) is the derivative of transition matrix \({{\varvec{R}}}_{{\varvec{i}}}\) with respect to Earth rotation parameter (ERP); \({{\varvec{X}}}_{r}\) is the initial coordination of the station \(r\); \(\Delta {{\varvec{x}}}_{\mathrm{erp},i}\) denotes the ERP increment vector; \({t}_{i}^{s}\) and \({t}_{r,i}\) represent the satellite and receiver clock offsets; \(c\) is the speed of light in vacuum; \({T}_{r,i}\) is the zenith troposphere delay (ZTD) of receiver \(r\) after being corrected by mathematical model, and \({m}_{r,i}^{s}\) is the corresponding mapping function (Saastamoinen 1972; Boehm et al. 2006); \(\lambda \) and \({N}_{r,i}^{s}\) denote the wavelength and ambiguity of the ionosphere-free phase combination; \({b}_{r,i}\) and \({b}_{i}^{s}\) denote the receiver- and satellite-dependent UPDs, respectively. \({d}_{r,i}\) and \({d}_{i}^{s}\) are the code biases at the receiver- and satellite-end, respectively; \({\varepsilon }_{r,l,i}^{s}\) and \({\varepsilon }_{r,p,i}^{s}\) denote the measurement noise of phase and code observations.

In the multi-GNSS data procedure, the UPDs \({b}_{r,i}\) and \({b}_{i}^{s}\) will be coupled with the ionosphere-free ambiguity term \({N}_{r,i}^{s}\). The ionospheric-free combination code biases \({d}_{r,i}\) will be absorbed by the receiver clock offset \({t}_{r,i}\) and the satellite end biases \({d}_{i}^{s}\) will be absorbed by the satellite clock offset \({t}_{i}^{s}\), respectively. However, the code biases at a multi-GNSS receiver end are different for satellites from different systems, the differences of which are the inter-system biases (ISB). If we choose GPS as a reference and thus the receiver clock offset is \({\overline{t} }_{r,i}={t}_{r,i}+{d}_{r,i}^{G}\), then the ISB \({d}_{{r}_{E},i}\) between Galileo and GPS systems at the multi-GNSS receiver end need to be estimated, which can be modeled as a constant parameter (Zhang et al. 2016). UT1 cannot be directly determined by the GNSS measurements because of the singularities between UT1 and the orbital elements (Thaller et al. 2007). However, the derivative of UT1 which named excess length of day (LOD) can be estimated from GNSS measurements (Bizouard et al. 2019). Four ERP parameters including the x-pole, y-pole, UT1 and LOD are estimated in the filter (Laurichesse et al. 2013; Dai et al. 2019). The state vector \(\Delta {{\varvec{x}}}_{\mathrm{erp},i}\) is the correction of ERP parameters w.r.t. their a priori values which are taken from the gpsrapid.daily bulletin (ftp://ftp.iers.org//products/eop/rapid/daily/gpsrapid.daily). In the process, UT1 is strongly constrained to the a priori value. In all, the estimated parameters \({{\varvec{x}}}_{{\varvec{i}}}\) for the real-time multi-GNSS orbit and clock estimation can be expressed as:

$$\left\{\begin{array}{lll}{{\varvec{x}}}_{{\varvec{i}}}={\left(\Delta {{\varvec{x}}}_{i}^{s} \Delta {{\varvec{x}}}_{r}\boldsymbol{ }\boldsymbol{ }\Delta {{\varvec{x}}}_{\mathrm{erp},i}\boldsymbol{ }\boldsymbol{ }{\overline{t} }_{i}^{s}\boldsymbol{ }\boldsymbol{ }{\overline{t} }_{r,i}\boldsymbol{ }{\overline{N} }_{r,i}^{s}\boldsymbol{ }\boldsymbol{ }{T}_{r,i}\boldsymbol{ }\boldsymbol{ }\boldsymbol{ }{d}_{{r}_{E},i}\boldsymbol{ }\boldsymbol{ }\right)}^{{\varvec{T}}}\\ {\overline{t} }_{i}^{s}={t}_{i}^{s}+{d}_{i}^{s}; {\overline{t} }_{r,i}={t}_{r,i}+{d}_{{r}_{G},i}; {\overline{N} }_{r,i}^{s}={N}_{r,i}^{s}+{b}_{r,i}-{b}_{i}^{s}\end{array}\right.$$
(2)

The position state vector \(\Delta {{\varvec{x}}}_{r}\) is the correction of station coordination w.r.t. the initial values which are taken from the IGS sinex file or the statistic PPP solutions. In our process, the station position correction is strongly constrained to the millimeter level. The satellite orbit state vector \(\Delta {{\varvec{x}}}_{i}^{s}\) is the correction for the initial orbit states which consists of the satellite positions, velocities and dynamic parameters. The first initial orbit states can be taken from the broadcast ephemeris. After that, the initial orbit states are obtained by integrating the orbit force model using an eighth-order Runge–Kutta with the orbit states estimated from the previous epoch. Together with the observation equation, the satellite state transition equation is introduced which can be expressed as

$${\Delta x}_{i}^{s}={\Phi }_{i,i-1}\cdot {\Delta x}_{i-1}^{s}+{\omega }_{i-1}$$
(3)

where \({\Delta x}_{i-1}^{s}\) and \({\Delta x}_{i}^{s}\) denote the estimated orbit parameters at \({t}_{i}\) and \({t}_{i-1}\), respectively; \({\Phi }_{i,i-1}\) is the matrix transforms the orbit state from \({t}_{i-1}\) to \({t}_{i}\) which can be obtained from the numerical integration of the orbit variational equations; \({\omega }_{i-1}\) is the noise of the dynamic model.

2.2 Real-time undifferenced ambiguity resolution

To fix undifferenced ambiguity, the ionosphere-free ambiguity should be separated into two parts: wide-lane and narrow-lane ambiguities.

$${\overline{N} }_{\mathrm{NL},i}=\frac{{{f}_{1}+f}_{2}}{{f}_{1}}{\overline{N} }_{\mathrm{lc},i}-\frac{{f}_{2}}{{f}_{1}-{f}_{2}}{\overline{N} }_{\mathrm{WL},i}$$
(4)

where \({\overline{N} }_{\mathrm{WL},i}\) and \({\overline{N} }_{\mathrm{NL},i}\) are wide-lane and narrow-lane ambiguities, respectively. The wide-lane ambiguity can be derived from Hatch–Melbourne–Wübbena (HMW) combination (Hatch 1982; Melbourne 1985; Wübbena 1985). Due to the existence of receiver and satellite UPDs, there is still no integer feature for the undifferenced wide-lane and narrow-lane ambiguities.

$$\left\{\begin{array}{c}{\overline{N} }_{\mathrm{WL},i}={N}_{\mathrm{WL},i}+{b}_{\mathrm{WL},r}-{b}_{\mathrm{WL}}^{s}\\ {\overline{N} }_{\mathrm{NL},i}={N}_{\mathrm{NL},i}+{b}_{\mathrm{NL},r}-{b}_{\mathrm{NL}}^{s}\end{array}\right.$$
(5)

Thus, to fix undifferenced ambiguity, the receiver and satellite UPDs of each satellite system should be estimated first based on float ambiguities from a GNSS network (Ge et al. 2008; Geng et al. 2012).

$$ \left( {\begin{array}{*{20}c} {\overline{N}_{*,1} - N_{*,1} } \\ {\overline{N}_{*,2} - N_{*,2} } \\ {\begin{array}{*{20}c} \vdots \\ {\overline{N}_{*,i} - N_{*,i} } \\ \end{array} } \\ \end{array} } \right) = \left( {\begin{array}{*{20}c} {{\mathbf{U}}_{n} \otimes {\mathbf{I}}_{m} } & { - {\mathbf{I}}_{n} \otimes {\mathbf{U}}_{m} } \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {b_{*,r} } \\ {b_{*}^{s} } \\ \end{array} } \right) $$
(6)

where * is wide-lane or narrow-lane; \({\overline{N} }_{*,i}\) and \({N}_{*,i}\) are float and integer ambiguities, respectively; ⨂ is the Kronecker product (Rao 1973); n and m represent the number of stations and satellites of each satellite system, respectively; \({\mathbf{I}}_{n}\) and \({\mathbf{U}}_{n}\) are defined as follows:

$$\left\{\begin{array}{c}{\mathbf{I}}_{n}={(\begin{array}{ccc}1& 1 \cdots & 1\end{array})}^{\mathrm{T}}\\ {\mathbf{U}}_{n}=\left(\begin{array}{ccc}1& \cdots & 0\\ \vdots & \ddots & \vdots \\ 0& \cdots & 1\end{array}\right)\end{array}\right.$$
(7)

Since the receiver and satellite UPDs are linearly dependent, an additional constraint should be added to remove the rank-defect, such as the sum of UPDs for all satellites is zero. The undifferenced wide-lane and narrow-lane ambiguity resolution is performed by removing the estimated receiver and satellite UPDs.

$$\left\{\begin{array}{c}{N}_{\mathrm{WL},i}=\langle {\overline{N} }_{\mathrm{WL},i}-{b}_{\mathrm{WL},r}+{b}_{\mathrm{WL}}^{s}\rangle \\ {N}_{\mathrm{NL},i}=\langle {\overline{N} }_{\mathrm{NL},i}-{b}_{\mathrm{NL},r}+{b}_{\mathrm{NL}}^{s}\rangle \end{array}\right.$$
(8)

where \(\left\langle * \right\rangle\) represents rounding operator. Then, the fixing decision is made according to the fixing probability (Dong and Bock 1989).

$$P(-0.5<x<0.5)={\int }_{-0.5}^{0.5}\frac{1}{\sigma \sqrt{2\pi }}\mathrm{exp}\left(-\frac{{(x-\mu )}^{2}}{2{\sigma }^{2}}\right)\mathrm{d}x$$
(9)

where \(P\) is the success probability, x represents the difference between the float ambiguity and the corresponding integer value and \(\mu \) and \({\sigma }^{2}\) are the bias and variance of float ambiguity in cycles.

2.3 Real-time satellite orbit and clock estimation strategy

The real-time SRIF-based satellite orbit and clock estimation strategy with ambiguity-fixing algorithm adopted in our process is summarized in Fig. 1. Generally, the GNSS data processing scheme is performed mainly by three steps. Before the computation of each epoch, the preprocessing module is carried out to detect the gross errors and cycle slips. To satisfy the demand of real-time process, the orbit integration is carried out as a parallel process for each satellite because of it is time-consuming, especially when an increasing number of satellites are involved. The satellite orbit states are initially obtained from the broadcast ephemeris. The standard SRIF-based real-time orbit and clock estimation is carried out according to Dai et al. (2019), generating the float-ambiguity solutions. Then, the real-time AR is carried out for each satellite system where the WL and NL UPDs are estimated. After that, the AR constraint can be applied to generate the fixed orbit and clock solutions and the satellite orbit states will be updated. Thus, the real-time orbit, clock and UPD products are estimated in an integrated processing. The benefit for combining orbit and clock estimation subject to the two-step clock estimation is at least in two aspects. First, the improvement in orbit accuracy because of real-time orbit update results in the improvement of satellite clock accuracy. Second, the irregular behaviors in satellite dynamics can be quickly reflected in the orbit states, which contributes to the real-time quality control of clock estimation.

Fig. 1
figure 1

Data processing flowchart of the real-time satellite orbit and clock estimation algorithm with ambiguity-fixing

In the AR process, quality of the float ambiguity estimates and UPDs will affect the accuracy of undifferenced ambiguities and thus the probability of correct ambiguity resolution (Dong and Bock 1989). On the basis of the float-ambiguity orbit and clock solutions, a parallel process to estimate WL/NL UPDs is carried out based on the aforementioned methods. In this process, WL UPDs are estimated first based on the average value of HMW combination over epochs. Then, the UPD-corrected WL ambiguities are rounded to the nearest integer when the fixing probability is higher than 99% according to Eq. (9). Based on the fixed WL ambiguities, the NL UPDs are then estimated from float IF ambiguities and fixed WL ambiguities. Similarly, the undifferenced NL ambiguities are rounded to integer based on UPD corrections when the fixing probability is higher than 99%. If both WL and NL ambiguities are fixed, the fixed IF ambiguities could be recovered from the fixed WL/NL integer ambiguities and added to SRIF-based solution as a constraint to obtain the fixed orbit and clock solutions. Since the SRIF-based orbit states need time to converge to a stable state (Dai et al. 2019), the ambiguity-fixing function is turned on after 48-h convergence of satellite orbit states in this process for the reliability of AR. Besides, the ambiguity parameter will be excluded from AR process until for the next 1800s for those satellites are re-observed by a station or a cycle slip occurs.

3 Data collection and processing strategy

In our real-time POD and satellite clock estimation experiment, data of 203 global distributed multi-GNSS stations from IGS Multi-GNSS experiment (MGEX) network are collected. All stations can track GPS and Galileo satellites. Among them, 150 stations are used for products estimation and 53 stations are used for PPP validation. The distribution of selected stations is shown in Fig. 2. One-month data from DOY 259 to 290, 2019, are used to generate the SRIF orbit and clock solutions. During this period, G04 is not available, and nearly all the data of G18 is removed from the data pre-processing of our SRIF process because of bad data quality. Therefore, a total of 30 GPS satellites and 22 Galileo satellites are processed and analyzed in our experiment.

Fig. 2
figure 2

Distribution of MGEX stations used; blue and red points represent stations used for products estimation (150 stations) and PPP validation (53 stations)

We have implemented the real-time ambiguity-fixing and SRIF-based POD and clock estimation method to the FUSING (FUSing IN Gnss) software, which is capable for the multi-GNSS precise POD, satellite clock estimation, atmosphere modeling and multi-sensor navigation (Gong et al. 2018; Shi et al. 2019; Luo et al. 2021; Gu et al. 2021). Basically, the observation and orbit dynamical models are as far as adopting from the existing processing strategy of the IGS AC of Wuhan University (WHU) (ftp://igs.ign.fr/pub/igs/igscb/center/analysis/whu_UltraRapid.acn). The ground-calibrated PCOs and PCVs are used for Galileo satellites, which are provided by the IGS MGEX. The yaw-attitude model of GPS satellites is from the attitude law proposed by Kouba (2009), Kuang et al. (2017) and Dilssner et al. (2011). Yaw-steering model is adopted for Galileo satellites most of the time except eclipsing periods, during which the attitude model is according to metadata published by the European GNSS Agency (https://www.gsc-europa.eu/support-to-developers/galileo-satellite-metadata). Models of transmitter antenna thrust (Steigenberger et al. 2018) and the Earth radiation (albedo) pressure (Rodriguez-Solano et al. 2012a) are applied for both GPS and Galileo satellites. The ECOM 5-parameter SRP model is applied to all satellites (Springer et al. 1999). The specific orbit dynamical and observation models are listed in Table 1.

Table 1 Orbit dynamical and observation models applied in real-time data processing

In the SRIF-based data processing, the station positions are fixed with recent IGS Sinex-files as well as the static PPP solutions. The estimated state comprises the constant parameters and the stochastic parameters. The constant parameters include the ISBs and the float ambiguities. The stochastic parameters include the satellite positions, satellite velocities, SRP parameters, satellite clocks, receiver clocks, ZTDs and ERP parameters. For simplicity, the process noise of all the stochastic parameters is introduced as the integration of the white noise. Thus, the variance matrix of the process noise is a diagonal matrix whose main diagonal element \({d}_{i}\) is expressed as

$${d}_{i}={\sigma }_{i}^{2}\frac{\Delta t}{{\tau }_{i}}$$
(10)

where \({\sigma }_{i}\) is the standard deviation of the state parameter \(i\); \(\Delta t\) is the epoch interval; and \({\tau }_{i}\) is the correlation time. The process noise settings are the same as those in Dai et al. (2019) except those for the satellite position, velocity and SRP parameters. The standard deviation of these parameters is modified as 1 × 10–8 m, 10–8 m/s and 10–4 nm/s2 with the correlation time of 300 s, respectively, because of its better performance for the orbit accuracy. To reduce the effect of orbit modeling errors during eclipse seasons, the standard deviations of SRP parameters are inflated to 10–2 nm/s2 empirically when the elevation of the Sun w.r.t. the orbital plane is close to zero. It is noted that a better method to absorb the effects of the modelling deficiencies may be the use of additional empirical parameters such as the stochastic velocity pulses at the orbit midnight (Dach et al. 2021). This needs further investigation.

4 Results

In this section, the real-time AR performance of GPS and Galileo satellites is first investigated. Then the impact of AR on orbital accuracy is evaluated in terms of the orbit comparisons with IGS and CODE final products, as well as the SLR validation. In addition, the orbital accuracy is compared to the ultra-rapid products provided by IGS (IGU) and GFZ (GBU). Afterward, the accuracy of real-time multi-GNSS clock products with and without AR constraint is analyzed together with the computational efficiency. Finally, the PPP AR experiments are performed to further validate the performance of the real-time orbit, clock and UPD products.

4.1 AR performance

For undifferenced AR, the quality of satellite UPDs is essential. Thus, we analyzed the consistency of the UPDs at different stations by counting the residuals of UPD among stations. Similar to the principles of AR, the ambiguity arcs are excluded for UPD analysis until the convergence time of them meets the requirement of AR. Figure 3 presents the distribution of GPS and Galileo satellite UPD residuals. From the figure, the NL UPD residuals are more concentrated near zero than WL UPD residuals for both GPS and Galileo. For example, about 85% of the NL UPD residuals are located within ± 0.05 cycle for both GPS and Galileo. However, only about 64% and 78% of the WL UPD residuals are within ± 0.05 cycle for GPS and Galileo, respectively. This is probably because the existence of pseudorange biases caused by signal distortion (Gong et al. 2021) and the different limits on the number of minimum observation epochs for WL and NL UPD estimation. Finally, only the samples with WL fixed are involved in the statistics of NL. Generally, the RMS of WL and NL UPD residuals is all quite small and more than 92% of the WL and NL UPD residuals are within ± 0.1 cycle, which means the UPDs can meet the demands of undifferenced ambiguity resolution in real-time orbit determination.

Fig. 3
figure 3

Distribution of GPS and Galileo satellite UPD residuals

In addition, Fig. 4 demonstrates the average success rate of ambiguity resolution over the solutions. According to Eq. (9), the ambiguity is fixed to integer when success probability is over 99.99%. As for WL ambiguity resolution, the average success rates are 91.84% and 95.64% for GPS and Galileo, respectively. Similar to the results in Fig. 3, the success rate of GPS WL ambiguity resolution is worse than that of Galileo since its UPD residual is larger than Galileo. As for NL, the average success rates of ambiguity resolution are 92.45% and 92.94% for GPS and Galileo, respectively. Since only when the WL ambiguity is fixed, the NL ambiguity will then be fixed. Thus, the number of WL and NL ambiguity candidates is different, which results in the success rate of GPS NL ambiguity larger than WL ambiguity. Overall, the average success rates of WL and NL undifferenced ambiguity resolution are all more than 90%.

Fig. 4
figure 4

Average success rate of GPS and Galileo ambiguity resolution

4.2 Orbit quality

4.2.1 Comparison with IGS and CODE products

To evaluate the AR contribution to the GPS and Galileo satellites, the filter orbit solutions with and without AR are compared with the IGS and CODE final orbit products, respectively. Figure 5 shows orbit differences during the whole process period in the radial, cross-track and along-track directions, respectively. Considering the orbit convergence, we start the ambiguity-fixing constraint 48 h after start of the filter to obtain a stable solution. For both GPS and Galileo satellites, the cross-track and radial components show much better accuracy than that of the along-track component. The orbit differences are much smaller in the cross-track and along-track directions after AR. The error in the radial direction is not significant since it can be absorbed in the clocks. After AR, the orbit differences of most GPS satellites are reduced from between ± 30 cm to between ± 20 cm and from between ± 20 cm to between ± 10 cm in the along-track and cross-track directions, respectively. The orbit differences of Galileo satellites show similar performance as that of GPS satellites but with fewer outliers. It is noted that the along-track component shows the most erroneous data for both the float and AR solutions. Generally, the satellites in eclipse show much larger orbit differences than those of non-eclipse satellites, especially in the along-track and radial directions, because of their imperfect dynamic models. The use of the extended ECOM2 model proposed by Sidorov et al. (2020) or adding the stochastic pulses at orbit midnight (Dach et al. 2021) in the filtering POD may benefit the orbit solutions over the eclipse periods. On DOY 283, 2019, the satellite G24 was set as unhealthy in its broadcast ephemeris, therefore, the orbit parameters of this satellite are reset and no result is output until 12 h later when the filter is converged. However, on DOY 271, 2019, though the flag of the broadcast ephemeris was normal, the satellite of G05 may experience some dynamic disturbances which lead to a large orbit deviation of up to 80 cm in the along-track direction and of about 30 cm in the radial direction as shown in Fig. 5. Technically, this kind of satellite improper behavior should be handled in our SRIF process which needs further optimization and improvement.

Fig. 5
figure 5

Time series of orbit differences between filter orbit and IGS (up is for GPS) and CODE (down is for Galileo) final products. The left picture is solution without AR, and the right picture is solution with AR. Red is for eclipse satellites, and blue is for non-eclipse satellites

Figure 6 further shows the average RMS for each GPS and Galileo satellite with and without AR in the along-track, cross-track and radial directions, respectively. We can see a clear improvement after AR, especially for the along-track and cross-track directions. For GPS satellites, the averaged RMS value is reduced from 6.6 cm without AR to 3.2 cm with AR in the along-track direction and from 4.2 cm without AR to 2.4 cm with AR in the cross-track direction. The AR has slight benefit for the radial direction and the averaged RMS value is reduced from 2.6 to 2.4 cm with AR. After AR, the orbit accuracy of GPS satellites is improved remarkably and the 3D RMS is reduced from 8.2 to 4.7 cm. For Galileo satellites, after AR, the averaged RMS values improve from (8.0, 4.7, 3.4) cm to (3.8, 2.7, 3.1) cm in the along-track, cross-track and radial directions, respectively. The improvements are approximately 50%, 40% and 8% in the three directions. Much more improvements in the along-track and cross-track directions are achieved than that in the radial direction. It is because that the PDOPs in these two directions are much smaller than that in the radial direction, which means the orbit quality is more benefit from the observation improvement. After AR, the orbit accuracy of Galileo satellites shows a significant improvement and the 3D RMS is reduced from 9.5 to 5.4 cm.

Fig. 6
figure 6

Averaged RMS of orbit differences between filter solution and IGS (left) and CODE (right) final products. Left is for GPS satellites with and without AR. Right is for Galileo satellites with and without AR

Considering the ultra-rapid products are commonly used for the real-time PPP applications, the accuracy of ultra-rapid products including IGU and GBU during the same period is evaluated for comparison with the filter orbit solution after AR. Figure 7 shows the time series of orbit differences between the real-time part of ultra-rapid products, e.g., the 3–9-h predicted orbit of IGU for GPS satellites and the 3–6-h predicted orbit of GBU products for Galileo satellites, and the final products of IGS and COD, respectively. Similarly, for both GPS and Galileo satellites, the cross-track and radial components show much better accuracy than that of the along-track component. And the orbit differences of eclipse satellites are much larger than those of non-eclipse satellites, especially in the along-track direction. There are remarkable jumps in the orbit differences of ultra-rapid solutions in the along-track direction since the orbits are predicted by different arc solutions, while the orbit differences of the filter solutions as shown in Fig. 7 are rather continuous and smooth. Figure 8 illustrates the RMS values of ultra-rapid solutions for GPS and Galileo satellites compared with the final products in the along-track, cross-track and radial directions, respectively. As shown in the figure, the 3–9-h predicted accuracy of IGU products for GPS satellites is 4.7 cm, 2.4 cm and 1.2 cm in the along-track, cross-track and radial directions, respectively. The 3–6 h predicted accuracy of GBU products of Galileo satellites is 6.6 cm, 3.4 cm and 2.0 cm in the along-track, cross-track and radial directions, respectively. Compared with the accuracy of the filter solution with AR as shown in Fig. 6, the orbit accuracy of ultra-rapid products in the radial direction is much better, while the accuracy in the cross-track and along-track direction is worse.

Fig. 7
figure 7

Time series of orbit differences between ultra-rapid and final products. The left picture is the GPS orbit differences between 3–9 h prediction part of IGU and IGS products. The right picture is the Galileo orbit differences between 3–6 h prediction part of GBU ultra-rapid products and CODE final products. Red is for eclipse satellites and blue is for non-eclipse satellites

Fig. 8
figure 8

6 Averaged RMS of orbit differences between ultra-rapid and final products. Left is for GPS satellites with comparison between IGU and IGS products. Right is for Galileo satellites with comparison between GBU ultra-rapid products and CODE final products

Figure 9 further shows the daily 3D RMS of the GPS and Galileo orbits from filter solution without AR, filter solution with AR and ultra-rapid products compared with the IGS and CODE final products as references, respectively. The corresponding averaged values are listed in Table 2. As shown in Fig. 9, after AR, the variation of daily 3D RMSs of filter solutions are much more stable except the day of DOY 271, 2019 for GPS satellites because of the possible orbit adjustment of G05 satellite. In addition, the time series of 3D RMSs of filter solutions with AR are much more stable and show smaller values compared with the ultra-rapid solutions for both GPS and Galileo satellites. Specifically, after AR, the average 3D RMSs of filter solutions can be improved by about 45% and 44% for GPS and Galileo satellites, respectively. The average 3D RMSs of filter solutions with AR are 4.7 cm and 5.3 cm for GPS and Galileo satellites, respectively, which are smaller than those of ultra-rapid solutions with the values of 5.5 cm and 7.8 cm, respectively.

Fig. 9
figure 9

The daily 3D RMS of the GPS and Galileo orbits from filter solutions without AR, filter solutions with AR and ultra-rapid products (IGU and GBU) compared with the IGS and CODE final products as references, respectively

Table 2 The average 3D RMS of the GPS and Galileo orbits from filter solutions without AR, filter solutions with AR and ultra-rapid products (IGU and GBU) compared with the IGS and CODE final products as references, respectively (unit: cm)

4.2.2 SLR validation

SLR observations are generated from the optical technique which are free from antenna phase center variations, ionospheric delays and phase ambiguities, contributing to independent validations for the GNSS satellite orbits at an accuracy level of a few millimeters. All Galileo satellites can be tracked by the SLR stations of the International Laser Ranging Service (ILRS; Pearlman et al. 2002), while no GPS satellites are observed. The filter orbit solutions without and with AR are used to generate the SLR residuals, which are the differences between the SLR observations and the ranges computed from the GNSS satellite orbits and the SLR stations. The residuals larger than an absolute value of 0.5 m are excluded as outliers in our analysis.

Table 3 lists the available normal points (NPs), the mean and standard deviation (STD) of SLR residuals of the two orbit solutions for each Galileo satellites, respectively. For the solutions without AR, the mean offset and STD for different satellites vary from the lowest − 2.0 cm to the highest − 7.0 cm and from the lowest 3.5 cm to the highest 5.6 cm, respectively. After AR, the mean offset and STD for different satellites range from − 1.8 to 6.1 cm and from 3.3 to 5.0 cm, respectively. Except for E03, E08, E26 and E30, the mean offset and STD of other satellites are all improved after AR. The average mean offset and STD of the solutions with AR are − 3.9 cm and 4.0 cm, respectively, and for the solutions without AR, they are − 4.2 cm and 4.3 cm, which is an improvement of about 7%. This is in line with the improvements observed in the comparison with the IGS and CODE products discussed above, as the SLR residuals are directly related to the radial orbit accuracy.

Table 3 The SLR validation of filter solutions without and with AR for Galileo satellites (units: cm)

4.3 Clock accuracy

From the above sections, ambiguity resolution will improve the accuracy of satellite orbit determination. In this section, the performance of the satellite clock solutions estimated together the satellite orbits is analyzed. Figures 10 and 11 present the averaged RMS and STD of satellite clock filter solution with respect to IGS and CODE final products for GPS and Galileo, respectively. From the figures, the averaged RMS of GPS satellite clock with AR is a little larger than that of without AR solution. Since the RMS is mainly determined by pseudorange observation (Ge et al. 2012), the difference of only 0.04 ns can be considered that these two products are basically at the same accuracy level. However, the STD of satellite clock is mainly affected by phase observation and is more important for PPP solution. In this experiment, the STDs of satellite clock are greatly decreased when ambiguity resolution is adopted for both GPS and Galileo. Compared to the results of ambiguity float solution, the averaged STD of satellite clock with AR is decreased from 0.056 to 0.031 ns for GPS and from 0.042 to 0.025 ns for Galileo, where the improvements are 44.6% and 40.4%, respectively.

Fig. 10
figure 10

Averaged RMS and STD of GPS satellite clock between filter solution and IGS final products

Fig. 11
figure 11

Averaged RMS and STD of Galileo satellite clock between filter solution and CODE final products

4.4 Computational efficiency

In addition to the accuracy of satellite products in this study, i.e., UPD, orbit and clock, computational efficiency is also a key factor in filter solution, especially for RT applications. Figure 12 presents the series of parameter number and time used for SRIF-based satellite orbit and clock solutions. All computations are carried out on a Linux server with 3.40 GHz CPU and 24 processors. The memory size of the server is 128 GB. During the 30-day solutions, the number of parameters fluctuates between 3000 and 3300 and the average number of parameters is 3166. Correspondingly, the time used for satellite orbit and clock estimation per epoch fluctuates between 3 and 5 s. The average time used per epoch is about 4.52 s, which can meet the requirement of updating every 5 s in RT processing. In addition, considering that satellite orbit parameters do not need to be updated in high frequency, the processing efficiency can be further improved by reducing the frequency of orbit parameter estimation.

Fig. 12
figure 12

Parameter number and time used for SRIF-based satellite orbit and clock solutions

4.5 Real-time PPP validation

To further validate the satellite orbit and clock product of filter solution, convergence time and accuracy of kinematic PPP are analyzed in this section. As for comparison, satellite clock and UPD are also estimated from the same MGEX stations as filter solution based on ultra-rapid satellite orbit products (named ultra-rapid). Besides, the standard float PPP and PPP-AR solutions are reset every four hours. The first hour series are used to calculate PPP convergence time and the last three-hour series are used to calculate PPP accuracy.

Figure 13 shows the PPP convergence series of different strategies (68%). Among them, the convergence time is at same level of three PPP float solution by using filter float products, filter fix products and ultra-rapid products. When ambiguity resolution is adopted for PPP-AR solution, the convergence time is greatly speed up. For example, as for PPP float solution, it takes more than 30 min to reach 5 cm for both horizontal and vertical components. However, it only needs about 25 min to reach the same level for PPP-AR solution by using ultra-rapid products. Moreover, the convergence time is reduced to about 18 min to reach the same accuracy for PPP-AR based on filter fix products.

Fig. 13
figure 13

PPP convergence time of different strategies (68%); PPP and PPP-AR represent float PPP and PPP AR solutions, respectively; filter float and filter fix represent SRIF products without AR and with AR; Ultra-rapid represents ultra-rapid products (IGU and GBU); external UPD product is also estimated for PPP-AR by using ultra-rapid products

As for PPP accuracy, the RMS in the last three-hour of different strategies is calculated and given in Table 4. Similarly, the positioning accuracy is at the same level for the three PPP float solutions by using different products. According to Fig. 10, the difference of satellite clock STD between different products is only 0.025 ns, equivalent to 7.4 mm, which has little impact on the positioning accuracy of PPP float solution. As for PPP-AR solution, the largest improvement in positioning accuracy is in the east component compared to PPP float solution, which is consistent with the results of Ge et al. (2008) and Geng et al. (2012). Compared to PPP float solution, the positioning accuracy is improved about 17.1%, 15.3% and 47.6% for PPP-AR solution by using filter fix products in U/N/E components, respectively. Even compared to the results of PPP-AR solution by using ultra-rapid products, the positioning accuracy is still improved by about 9.3%, 8.3% and 21.4% for PPP-AR solution by using filter fix products in U/N/E components, respectively.

Table 4 Averaged RMS of PPP error in up/north/east components (cm)

5 Conclusions and discussion

Typically, the real-time orbit and clock products are processed in a step-wise manner, i.e., estimated the satellite orbit products by batch least squares in advance, and then estimated the clock by filter method based on real-time data with the predicted orbit are fixed in this step. The UPD products are usually generated along with the clock estimation processing to support PPP AR for users. However, the orbit predicted accuracy is degraded with time especially in the eclipse or maneuver periods, which will further affect the performance of real-time satellite clock and UPD estimation. In this contribution, we proposed an integrated filter method in which the satellite orbit, clock states and the UPDs are updated simultaneously as soon as the current observation are obtained. With the estimation of UPDs, the ambiguities are resolved which are then implemented to generate the fixed satellite orbit and clock products. Parallel processing is carried out for the orbit integration to satisfy the demand for real-time processing. The resulting UPD and orbit products are analyzed from multiple levels.

First, the AR performance is evaluated. The residuals of UPDs among different satellites and stations are quite consistency. The RMS of WL and NL UPD residuals is all less than 0.07 cycles, and 92% of WL and NL UPD residuals are within ± 0.1 cycle. Accordingly, the average success rates of WL and NL undifferenced ambiguity resolution are all more than 90%.

Then, the filter orbit accuracy is evaluated by compared with the final precise orbit products of IGS and CODE. The orbit accuracy is improved significantly after AR especially in the along-track and cross-track directions. The average 3D RMS values of the orbit differences are 4.7 cm and 5.5 cm for GPS and Galileo satellites, respectively, with an improvement in about 45% and 44%, compared with the float solutions. The SLR validation results also confirm the orbit improvement by the AR. The orbit accuracy of the real-time part of the IGU and GBU products in the same periods is also evaluated for comparison. The average 3D RMS values of the ultra-rapid products are 5.3 cm and 7.8 cm for GPS and Galileo satellites, respectively, which are much larger than those of filter solutions. However, the orbit accuracy of the filter solutions in the radial direction is worse than that of ultra-rapid products. This may be because the accuracy in the radial direction is more influenced by the dynamic model, while in the filter process, the process noise is introduced which weakens the contribution of dynamic model to orbit states.

Next, the RMS of satellite clock is less affected by ambiguity resolution and the values are generally at the same level for the ambiguity float and fix solutions. However, the STDs of GPS and Galileo satellite clock are greatly decreased and the improvements are both more than 40%. As for computation efficiency, though the average unknown parameter number reaches up to 3166, the average time used per epoch is about 4.52 s and can be further improved by reducing the frequency of orbit parameter estimation.

To further validate the satellite orbit and clock product of filter solution, PPP convergence time and accuracy are analyzed. The results of PPP float solutions show that the convergence time is at the same level by using SRIF products without AR, with AR and ultra-rapid products. However, as for PPP-AR solution, both convergence time and accuracy by using SRIF products are better than that of using ultra-rapid products.