Due to the regional distribution of the BDS monitoring network, it has been difficult to precisely determine the orbit of the GEO satellites, especially in the along and cross components. Using the final products of GFZ as a reference, the broadcast GEO orbit error in the first half of 2018 was calculated and large fluctuations were found. Large fluctuations in the cross and along components are shown in Fig. 3.

In Fig. 3, 006 C02 stands for C02 in DOY (day of year) 6. Fluctuations greater than 20 m are shown in the right panel of Fig. 3. In the positioning procedure, the worst measurement will be the bottleneck in the high precision differential positioning. Therefore, as shown in Fig. 3, the fluctuations in the broadcast GEO orbit will limit the promotion of the differential positioning precision.

Fluctuations in the GEO broadcast orbit would decrease the accuracy and stability of the BDS positioning and make the effective range of the zone correction more ambiguous. To ensure a high performance of the zone correction, fluctuations in the GEO broadcast orbit error should be reasonably corrected.

An algorithm for the GEO orbit fluctuation correction was proposed. In this algorithm, the orbit error variations in the cross and along directions between two epochs were estimated based on zone corrections. The results were then used to compensate the GEO orbit error.

The orbit error, clock bias, troposphere modeling residual and ambiguity offset are the main components of the zone correction (Zhang 2017). The difference method is used to eliminate the clock bias and ambiguity offset and to weaken the influences of the troposphere modeling residual, then orbit component in zone corrections can be extracted. Furthermore, the variations in the orbit error can be estimated using differenced zone corrections and the least square method.

To conduct the difference operation, one GEO satellite is selected as the reference satellite and the double-differenced zone corrections are formed among multiple zones and satellites. After the double-differenced operation, the clock bias is eliminated, and the errors that remain in the double-differenced zone corrections are the double-differenced orbit error, troposphere residual and ambiguity offset, as follows:

$$\nabla \Delta \delta L_{r,u}^{i,j} = \delta L_{u}^{j} - \delta L_{r}^{j} - \delta L_{u}^{i} + \delta L_{r}^{i} = \nabla\Delta orb_{r,u}^{i,j} + \nabla\Delta \delta T_{r,u}^{i,j} + \lambda \cdot \nabla\Delta N_{r,u,0}^{i,j} .$$

(5)

The double-differenced orbit error can be expanded as follows:

$$\begin{aligned} \nabla\Delta orb_{r,u}^{i,j} & = orb_{u}^{j} - orb_{u}^{i} - orb_{r}^{j} + orb_{r}^{i} \\ & = a^{j} \cdot \left( {\cos \left( {\alpha_{u}^{j} } \right) - \cos \left( {\alpha_{r}^{j} } \right)} \right) + c^{j} \cdot \left( {\cos \left( {\beta_{u}^{j} } \right) - \cos \left( {\beta_{r}^{j} } \right)} \right) \\ & \quad - \,a^{i} \cdot \left( {\cos \left( {\alpha_{u}^{i} } \right) - \cos \left( {\alpha_{r}^{i} } \right)} \right) - c^{i} \cdot \left( {\cos \left( {\beta_{u}^{i} } \right) - \cos \left( {\beta_{r}^{i} } \right)} \right). \\ \end{aligned}$$

(6)

Furthermore, differences between the adjacent epochs (interval: 600 s) are calculated to eliminate the ambiguity offset and troposphere residual. Using the analysis shown in Fig. 1, the differences in the values of \(\cos \left( {\alpha_{r}^{s} } \right) - \cos \left( {\alpha_{u}^{s} } \right)\) and \(\left( {\cos \left( {\beta_{r}^{s} } \right) - \cos \left( {\beta_{u}^{s} } \right)} \right)\) between the epochs could be ignored. The triple-differenced zone correction can be expressed as follows:

$$\begin{aligned}\Delta \nabla\Delta \delta L_{r,u}^{i,j} \left( {t,t - 1} \right) & = \nabla\Delta \delta L_{r,u}^{i,j} \left( t \right) - \nabla\Delta \delta L_{r,u}^{i,j} \left( {t - 1} \right) \\ & = a_{t,t - 1}^{i} \cdot \left( {\cos \left( {\alpha_{u}^{i} \left( t \right)} \right) - \cos \left( {\alpha_{r}^{i} \left( t \right)} \right)} \right) + c_{t,t - 1}^{i} \cdot \left( {\cos \left( {\beta_{u}^{i} \left( t \right)} \right) - \cos \left( {\beta_{r}^{i} \left( t \right)} \right)} \right) \\ & \quad - \,a_{t,t - 1}^{j} \cdot \left( {\cos \left( {\alpha_{u}^{j} \left( t \right)} \right) - \cos \left( {\alpha_{r}^{j} \left( t \right)} \right)} \right) - c_{t,t - 1}^{j} \cdot \left( {\cos \left( {\beta_{u}^{j} \left( t \right)} \right) - \cos \left( {\beta_{r}^{j} \left( t \right)} \right)} \right) \\ \end{aligned}$$

(7)

where \(a_{t,t - 1}^{i}\) and \(a_{t,t - 1}^{j}\), \(c_{t,t - 1}^{i}\) and \(c_{t,t - 1}^{j}\) stand for orbit error variations of satellite \(i\) and \(j\) in the along and cross directions between epochs \(t\) and \(t - 1\). With multiple triple-differenced zone corrections, orbit error variations can be estimated as follows:

$$\left[ {\begin{array}{*{20}c} {resi_{1} } \\ \vdots \\ {resi_{n} } \\ \end{array} } \right]_{n \times 1} = \left[ {\begin{array}{*{20}c} {h_{1,1} } & \ldots & {h_{1,10} } \\ \vdots & \ddots & \vdots \\ {h_{n,1} } & \ldots & {h_{n,10} } \\ \end{array} } \right]_{n \times 10} \cdot \left[ {\begin{array}{*{20}c} {x_{1} } \\ \vdots \\ {x_{10} } \\ \end{array} } \right]_{10 \times 1}$$

(8)

where \(resi_{k}\) represents the \(k{\rm th}\) triple-differenced zone correction residual whose reference and slave zones are \(r\) and \(u\), and the reference and slave satellites are \(i\) and \(j\). On the right side of Eq. (8), \(x_{2l - 1}\) and \(x_{2l}\) are the variations in the along and cross components of satellite \(l\), respectively, where \(l = 1\ldots 5\). In each row of the design matrix, coefficients in \(h_{k,1} \ldots h_{k,10}\) remain zero, except the 4 coefficients listed below:

$$\begin{array}{*{20}c} \begin{aligned} h_{k,2 \times i - 1} & = \cos \left( {\alpha_{u}^{i} } \right) - \cos \left( {\alpha_{r}^{i} } \right) \\ h_{k,2 \times i} & = \cos \left( {\beta_{u}^{i} } \right) - \cos \left( {\beta_{r}^{i} } \right) \\ h_{k,2 \times j - 1} & = - \cos \left( {\alpha_{u}^{j} } \right) + \cos \left( {\alpha_{r}^{j} } \right) {,j \ne i}.\\ h_{k,2 \times j} & = - \cos \left( {\beta_{u}^{j} } \right) + \cos \left( {\beta_{r}^{j} } \right) \\ \end{aligned} & \\ \end{array}$$

(9)

The solutions of Eq. (8) could then be used to correct the GEO broadcast orbit error.