### PPP with multi-frequency raw observations

The observation equations for PPP based on raw multi-frequency measurements are formulated as follows:

$$\left\{ \begin{aligned} P_{1}^{sys,i} & = \rho^{i} + \delta s^{sys} + I_{1}^{i} + b_{1}^{sys} + b_{1}^{i} + \varepsilon \left( {P_{1}^{sys,i} } \right) \\ P_{k}^{sys,i} & = \rho^{i} + \delta s^{sys} + \frac{{f_{1}^{2} }}{{f_{k}^{2} }}I_{1}^{i} + b_{k}^{sys} + b_{k}^{i} + \varepsilon \left( {P_{k}^{sys,i} } \right) \\ L_{1}^{sys,i} & = \rho^{i} + \delta s^{sys} - I_{1}^{i} + N_{1}^{i} + h_{1}^{sys} + h_{1}^{i} + \varepsilon \left( {L_{1}^{sys,i} } \right) \\ L_{k}^{sys,i} & = \rho^{i} + \delta s^{sys} - \frac{{f_{1}^{2} }}{{f_{k}^{2} }}I_{1}^{i} + N_{k}^{i} + h_{k}^{sys} + h_{k}^{i} + \varepsilon \left( {L_{k}^{sys,i} } \right) \\ \end{aligned} \right.$$

(1)

where *P* and *L* denote code and carrier-phase measurements, respectively, the superscript *sys* indicates the GPS (G), GLONASS (R), BDS (C), or Galileo (E) system, and *i* is an index for the satellites belonging to the corresponding system; the subscript 1 is the reference frequency index for each system, e.g., L1 for GPS. *k* is the frequency index except for the reference frequency, such as L2, L5 for GPS; *f*_{1} and *f*_{k} are the frequencies. \(\rho^{i}\) is the non-dispersive distance that includes the geometric distance, the satellite and receiver clock corrections, and the tropospheric delays; antenna phase center corrections have been applied to all code and carrier phase measurements to make \(\rho^{i}\) independent of frequency. \(\delta s\) represents the inter-system bias for GLONASS, BDS, and Galileo with respect to GPS, which is zero for GPS observation equations. \(I_{1}^{i}\) is the ionospheric delay on the reference frequency, and *N* represents the ambiguity parameter. In addition, \(b_{1}^{sys}\), \(b_{k}^{sys}\) and \(b_{1}^{i}\), \(b_{k}^{i}\) are the respective receiver and satellite code hardware delays on frequency 1 and *k*, and the corresponding phase hardware delays for the receiver and satellite are \(h_{1}^{sys}\), \(h_{k}^{sys}\) and \(h_{1}^{i}\), \(h_{k}^{i}\). \(\varepsilon\) denotes the observation noise.

In general, the precise satellite orbit, clock, and DCB products issued by IGS ACs are applied in PPP. Therefore, the satellite code hardware delay parameters are eliminated in Eq. (1). Considering the singularity between the phase hardware delays and ambiguity parameters, we merge them together. After linearization, the observation equations can be rewritten as

$$\left\{ \begin{aligned} P_{1}^{sys,i} & = {\mathbf{A}}^{i} {\mathbf{X}} + dt + B^{i} T + \delta s^{sys} + I_{1}^{i} + b_{1}^{sys} \\ P_{k}^{sys,i} & = {\mathbf{A}}^{i} {\mathbf{X}} + dt + B^{i} T + \delta s^{sys} + \frac{{f_{1}^{2} }}{{f_{k}^{2} }}I_{1}^{i} + b_{k}^{sys} \\ L_{1}^{sys,i} & = {\mathbf{A}}^{i} {\mathbf{X}} + dt + B^{i} T + \delta s^{sys} - I_{1}^{i} + \tilde{N}_{1}^{i} \\ L_{k}^{sys,i} & = {\mathbf{A}}^{i} {\mathbf{X}} + dt + B^{i} T + \delta s^{sys} - \frac{{f_{1}^{2} }}{{f_{k}^{2} }}I_{1}^{i} + \tilde{N}_{k}^{i} \\ \end{aligned} \right.,\quad {\mathbf{W}} = \left[ {\begin{array}{*{20}c} {{1 \mathord{\left/ {\vphantom {1 {\varepsilon \left( {P_{1}^{sys,i} } \right)^{2} }}} \right. \kern-0pt} {\varepsilon \left( {P_{1}^{sys,i} } \right)^{2} }}} \\ {{1 \mathord{\left/ {\vphantom {1 {\varepsilon \left( {P_{k}^{sys,i} } \right)^{2} }}} \right. \kern-0pt} {\varepsilon \left( {P_{k}^{sys,i} } \right)^{2} }}} \\ {{1 \mathord{\left/ {\vphantom {1 {\varepsilon \left( {L_{1}^{sys,i} } \right)^{2} }}} \right. \kern-0pt} {\varepsilon \left( {L_{1}^{sys,i} } \right)^{2} }}} \\ {{1 \mathord{\left/ {\vphantom {1 {\varepsilon \left( {L_{k}^{sys,i} } \right)^{2} }}} \right. \kern-0pt} {\varepsilon \left( {L_{k}^{sys,i} } \right)^{2} }}} \\ \end{array} } \right]$$

(2)

with

$$\left\{ \begin{aligned} \tilde{N}_{1}^{i} & = N_{1}^{i} { + }h_{1}^{sys} - h_{1}^{i} \\ \tilde{N}_{k}^{i} & = N_{k}^{i} { + }h_{k}^{sys} - h_{k}^{i} \\ \end{aligned} \right.$$

(3)

where **A**^{i} represents the coefficient matrix of the vector **X**, which includes the station coordinate parameters, **W** is the weighting matrix for the observations, *dt* is the receiver clock correction, and *B*^{i} is the coefficient for tropospheric zenith delay parameter *T*. To remove the singularity between the receiver clock and code hardware delay parameters, we employ the following constraints on Eq. (2):

$$\left\{ \begin{aligned} & b_{1}^{G} + b_{2}^{G} + b_{5}^{G} = 0 \\ & b_{1}^{R} + b_{2}^{R} = 0 \\ & b_{2}^{C} + b_{6}^{C} + b_{7}^{C} = 0 \\ & b_{1}^{E} + b_{5}^{E} { + }b_{6}^{E} + b_{7}^{E} { + }b_{8}^{E} = 0 \\ \end{aligned} \right.$$

(4)

where the subscript numbers are the frequency indexes for each system. Equation (2) is the basic observation equation for multi-constellation GNSS PPP with multi-frequency raw measurements.

To efficiently reduce the convergence time of PPP, we introduce initial ionospheric delay and employ temporal ionospheric constraints. A priori knowledge on ionospheric delay plays an important role in reducing the convergence time of PPP solutions. As an empirical standard model of the ionosphere, the International Reference Ionosphere (IRI)-2016 model can provide the vertical total electron content (VTEC) from the ground to a certain altitude for a given location and time [19]. The model is based on experimental evidence using all available ground and space data sources. The precision of VTEC derived from the IRI model is approximately 2 to 10 TEC Units (TECU), which has been deeply analyzed and well validated by various authors [20,21,22]. The initial ionospheric delay derived by IRI-2016 is

$$I_{1}^{i} { = }\frac{40.3}{{f_{1}^{2} }}F(z) \times VTEC_{IRI} ,\quad w{ = 1/}\sigma_{I}^{2}$$

(5)

where *z* is the zenith distance of the satellite at the receiver, *F* is the mapping function (as given in http://aiuws.unibe.ch/ionosphere/mslm.pdf) to convert \(VTEC_{IRI}\) derived from IRI to slant TEC (STEC), *w* is the weight, and \(\sigma_{I}\) denotes the a priori noise of the initial ionospheric delay, which is set as 1.28 m (approximately 8 TECU).

The temporal variation of ionospheric delay for a satellite–station pair can be modelled by a random walk process. Considering their temporal correlation, the line-of-sight ionospheric delays are imposed as the temporal constraint:

$$I_{1,t}^{i} = I_{1,t - 1}^{i} + \varepsilon_{t} , \, \varepsilon_{t} \sim N\left( {0,\sigma_{\varepsilon }^{2} } \right)$$

(6)

where *t* and *t* − 1 represent the current and previous epochs, respectively, and \(\varepsilon_{t}\) is the assumed variation of ionospheric delay from *t* − 1 to *t*, which is set to 0.25 TECU with a 30 s sampling interval.

The ionosphere is modulated by the solar and magnetic activity, which shows significant gradients in the North to South and West to East directions. Therefore, ionosphere spatial constraints can help to further reduce the convergence time. The ionospheric gradient parameters for a satellite are expressed as

$$I_{1}^{i} = F(z) \times \left( {a_{0} + a_{1} dL + a_{2} dL^{2} + a_{3} dB + a_{4} dB^{2} } \right),\quad w = 1/\sigma_{spatial}^{2}$$

(7)

where \(I_{1}^{i}\) is the slant ionospheric delay, *dL* and *dB* respectively represent the longitude and latitude difference between the ionospheric pierce point and station location; *a*_{0}, *a*_{1}, *a*_{2}, *a*_{3}, and *a*_{4} are the coefficients of the two second-order polynomials, which fit the horizontal gradients of east–westward and south–northward, respectively. The coefficients are simultaneously estimated with the slant ionospheric parameters. \(\sigma_{spatial}^{2}\) is the a priori noise of the ionospheric spatial constraints. The TEC gradients are correlated with the ionospheric activity; a high gradient value of up to 10 TECU/deg was found in the post-noon ionosphere [23], while a 2 TECU/deg gradient was suggested by Hernández-Pajares [24] under low solar activity.

The a priori ionospheric information and temporal and spatial constraints are seen as pseudo observations. These pseudo observations together with the basic observation of Eq. (2) are lumped into the normal equation and compose the complete mathematical model for multi-constellation GNSS PPP with multi-frequency raw measurements. The frequencies used by the raw observations are L1/L2/L5 for GPS, G1/G2 for GLONASS, B1/B2/B3 for BDS-2, and E1/E5a/E5b/E5/E6 for Galileo.

### PPP with dual-frequency observations of the IF combination

The observation of dual-frequency IF linear combination can efficiently mitigate the first-order ionospheric delay. The observation equation is written as

$$\left\{ \begin{aligned} & P_{if}^{sys,i} = {\mathbf{A}}^{i} {\mathbf{X}} + dt + B^{i} T + \delta s^{sys} \\ & L_{if}^{sys,i} = {\mathbf{A}}^{i} {\mathbf{X}} + dt + B^{i} T + \delta s^{sys} + \tilde{N}_{if}^{i} \\ \end{aligned} \right. ,\quad {\mathbf{W}} = \left[ {\begin{array}{*{20}c} {{1 \mathord{\left/ {\vphantom {1 {\varepsilon \left( {P_{if}^{sys,i} } \right)^{2} }}} \right. \kern-0pt} {\varepsilon \left( {P_{if}^{sys,i} } \right)^{2} }}} \\ {{1 \mathord{\left/ {\vphantom {1 {\varepsilon \left( {L_{if}^{sys,i} } \right)^{2} }}} \right. \kern-0pt} {\varepsilon \left( {L_{if}^{sys,i} } \right)^{2} }}} \\ \end{array} } \right]$$

(8)

where the subscript *if* denotes the IF combination. Compared with the raw observation model, the observation equation based on IF linear combination is more simplified because it does not require the receiver DCB and ionospheric delay parameters. The two frequencies selected to form the IF combination are L1/L2 for GPS, G1/G2 for GLONASS, B1/B2 for BDS-2, and E1/E5a for Galileo.