Introduction

With the full operation of the BeiDou navigation satellite system (BDS), the number of in-orbit satellites in the global navigation satellite system (GNSS) has reached hundreds. Navigation and positioning chips developed can receive multi-system and multi-frequency GNSS data. If GNSS data from all visible satellites are used in navigation and positioning, theoretically, its accuracy is optimal, but the computational efficiency is reduced, which could seriously affect the real-time performance of navigation and positioning operations. Observation data will be wasted if only a single system is selected through a satellite selection method.

Appropriate satellite selection can ensure the accuracy of calculations and improve the timeliness and reliability of navigation and positioning operations, thus enhancing most GNSS applications. The traditional satellite selection algorithms mainly consider the elevation and azimuth angles (Wang et al. 2008), and the maximum volume of the tetrahedron (Tian et al. 2014; Blanco-Delgado et al. 2017; Kong et al. 2014). The elevation angle and azimuth angle method algorithms mainly focus on selecting 4–6 satellites based on the satellite distribution in space. The maximum volume methods mainly focus on selecting 4 satellites for a single system. However, with the increase in the number of visible satellites, the number of iterations sharply increases, seriously affecting the real-time performance of navigation. Thus, five satellite selection methods (Teng et al. 2015) and a three-dimensional convex hull satellite selection algorithm for multi-GNSS constellations were proposed to improve GNSS chip performance.

Many scholars have recently combined artificial intelligence with satellite selection algorithms and proposed various intelligent satellite selection schemes (Wu et al. 2010; Doong 2009). Wang et al. (2019a, b) proposed an intelligent particle swarm optimization algorithm using intelligent matching for particle and satellite positions. Regarding the efficiency and accuracy of satellite selection, this algorithm is difficult to implement for high-performance equipment requirements, so it is not convenient for most applications. Based on the initial satellite selection scheme, a satellite constellation method based on the NSGA-II genetic model (Xu et al. 2017; Huang et al. 2018) and a genetic algorithm based on a crossover operator (Song et al. 2016) were proposed. However, genetic algorithms have unique requirements for initial sample quality and quantity (Chen et al. 2015; Huo and Zhang 2015). Constellation selection algorithms based on matrix theory provide alternatives to intelligent algorithms. A determinant method was used to improve the traditional satellite selection algorithm by analyzing the corresponding observation matrix (Fu et al. 2019). Cong et al. (2006) proposed a satellite selection algorithm based on SVD matrix decomposition. Methods of this type have low computational complexity, run quickly, and are convenient for selecting satellites through mathematical analysis, equivalent substitution, and weighting methods based on matrix theory. However, most current satellite selection algorithms are verified with only simulation data, not experimental data.

Considering the problems above, we present the smaller-GDOP-value method based on the Sherman–Morrison formula and SVD matrix decomposition. Furthermore, an iterative but fast satellite selection algorithm is proposed based on the Sherman–Morrison formula and the maximum-volume-tetrahedron method. The algorithm is verified using measured data from the UB4B0 GNSS chip produced by Unicore Communications Incorporated. The results for 6–17 selected satellites versus all visible satellite data are compared. Moreover, a reasonable threshold is set to test the autonomous functionality of the satellite selection algorithm.

Fast satellite selection algorithm based on the Sherman–Morrison formula

Geometric dilution of precision (GDOP) is used in GNSS to specify the additional multiplicative effect of satellite geometry on GNSS precision. Theoretically, without considering weighting, it is a fact that using all visible satellites achieves a minimal GDOP value but might entail a significant computational load. To improve the timeliness and ensure the accuracy of GNSS navigation, we propose below a method based on the Sherman–Morrison formula to select the visible satellites with the lowest GDOPs.

GDOP accuracy index for satellite selection

The accuracy of a satellite selection algorithm is mainly evaluated based on the spatial geometry of the receiver-satellite geometry as expressed by the GDOP value, which is related to the user equivalent range error (UERE), and the navigation error m is:

$$m = \delta_{{{\text{UERE}}}} {\text{GDOP}}$$
(1)

where \(\delta_{{{\text{UERE}}}}\) is the precision of the pseudorange measurement. The navigation accuracy can be improved by reducing the GDOP value when \(\mathop \delta \nolimits_{{{\text{UERE}}}}\) is known. The GDOP is defined as follows:

$${\text{GDOP}} = \sqrt {{\text{trace}}\left( {{\mathbf{A}}^{{\text{T}}} {\mathbf{A}}} \right)^{ - 1} }$$
(2)

where trace (∙) represents the trace of the matrix and

$${\mathbf{A}}^{{\text{T}}} {\mathbf{A}} = \left[ {\begin{array}{*{20}c} {\Sigma kk} & {\Sigma kl} & {\Sigma kb} & {\Sigma k} \\ {\Sigma lk} & {\Sigma ll} & {\Sigma lb} & {\Sigma l} \\ {\Sigma bk} & {\Sigma bl} & {\Sigma bb} & {\Sigma b} \\ {\Sigma k} & {\Sigma l} & {\Sigma b} & n \\ \end{array} } \right]$$
(3)

where k, l, and b represent the partial derivatives of the connection between a station and a satellite in the x-axis, y-axis and z-axis directions, respectively; \(n\) represents the number of satellites, and \(\Sigma\) represents the cumulative sum.

Smaller-GDOP-value method based on the Sherman–Morrison formula

We assume that \({\mathbf{A}}_{j}\) is the observation coefficient matrix for \(j\) in-view satellites from multiple constellations, with intersystem biases considered. By removing the \(i\)th (\(i\) = 1,…, \(j\)) satellite from \(j\) satellites, we can obtain the observation coefficient matrix \(\mathop {\mathbf{A}}\nolimits_{j - 1}^{i}\) of \(j - 1\) satellites. The relationship between two observation coefficient matrices can be expressed as follows:

$${\mathbf{A}}_{j}^{{\text{T}}} {\mathbf{A}}_{j} = {\mathbf{A}}_{j - 1}^{{i}{\text{T}}} {\mathbf{A}}_{j - 1}^{i} + {\mathbf{a}}_{i}^{{\text{T}}} {\mathbf{a}}_{i}$$
(4)

where \({\mathbf{a}}_{i} = \left[ {\begin{array}{*{20}c} {k_{i} } & {l_{i} } & {m_{i} } & { - 1} \\ \end{array} } \right]\) is the partial derivative of satellite \(i\) in the direction of the coordinate axes. Based on the Sherman–Morrison formula (Bartlett 1951), we can obtain the following equation:

$${\mathbf{G}}_{j - 1}^{i} = \left( {{\mathbf{A}}_{j - 1}^{{i}{\text{T}}} {\mathbf{A}}_{j - 1}^{i} } \right)^{ - 1} = \left( {{\mathbf{A}}_{j}^{{\text{T}}} {\mathbf{A}}_{j} - {\mathbf{a}}_{i}^{{\text{T}}} {\mathbf{a}}_{i} } \right)^{ - 1} = {\mathbf{G}}_{j} + \frac{{{\mathbf{G}}_{j} {\mathbf{a}}_{i}^{{\text{T}}} {\mathbf{a}}_{i} {\mathbf{G}}_{j} }}{{1 - {\mathbf{a}}_{i} {\mathbf{G}}_{j} {\mathbf{a}}_{i}^{{\text{T}}} }}$$
(5)

where \((1 - {\mathbf{a}}_{i} {\mathbf{G}}_{j} {\mathbf{a}}_{i}^{{\text{T}}} )\) is a scalar, denoted as \(S_{i}\); therefore, the square of the GDOP value of j-1 satellites is

$$\begin{aligned} & {\text{GDOP}}_{j - 1}^{{i^{2} }} = {\text{trace}}{\mathbf{G}}_{j - 1}^{i} \\ & \quad = {\text{trace}}{\mathbf{G}}_{j} + {\text{trace}}\left| {\frac{{{\mathbf{G}}_{j} {\mathbf{a}}_{i}^{{\text{T}}} {\mathbf{a}}_{i} {\mathbf{G}}_{j} }}{{S_{i} }}} \right| \\ & \quad = {\text{GDOP}}_{j}^{2} + {\text{trace}}\left| {\frac{{{\mathbf{G}}_{j} {\mathbf{a}}_{i}^{{\text{T}}} {\mathbf{a}}_{i} {\mathbf{G}}_{j} }}{{S_{i} }}} \right| \\ \end{aligned}$$
(6)

After removing satellite i, Eq. (6) indicates that \(GDOP_{j - 1}^{{i^{2} }}\) includes one more term than does \(GDOP_{j}^{2}\).

Now, we need to establish the rules for computing \({\text{trace}}\left| {\frac{{{\mathbf{G}}_{j} {\mathbf{a}}_{i}^{{\text{T}}} {\mathbf{a}}_{i} {\mathbf{G}}_{j} }}{{S_{i} }}} \right|\). The SVD of \({\mathbf{A}}_{j - 1}^{{i}{\text{T}}} {\mathbf{A}}_{j - 1}^{i}\) can be given as follows:

$${\mathbf{A}}_{j - 1}^{{i}{\text{T}}} {\mathbf{A}}_{j - 1}^{i} = {\mathbf{UZU}}^{{\text{T}}}$$
(7)

According to (3), \({\mathbf{U}}\) is a \((4 \times 4)\) orthogonal matrix, and \({\mathbf{Z}}\) is a \((4 \times 4)\) diagonal matrix, where \({\mathbf{Z}} = {\text{diag}}(\begin{array}{*{20}c} {z_{1} } & {z_{2} } & {z_{3} } & {z_{4} } \\ \end{array} )\).

By substituting (7) in (4), the orthogonal transformation of both sides of the equation can be obtained; furthermore, based on the Sherman–Morrison formula, we can obtain the following:

$$\begin{aligned} & \left\{ {{\mathbf{U}}^{{\text{T}}} \left( {{\mathbf{A}}_{j}^{{\text{T}}} {\mathbf{A}}_{j} } \right){\mathbf{U}}} \right\}^{ - 1} = \left\{ {{\mathbf{U}}^{{\text{T}}} \left( {{\mathbf{UZU}}^{{\text{T}}} } \right){\mathbf{U}} + {\mathbf{U}}^{{\text{T}}} {\mathbf{a}}_{i}^{{\text{T}}} {\mathbf{a}}_{i} {\mathbf{U}}} \right\}^{ - 1} \\ & \quad = \left( {{\mathbf{Z}} + {\mathbf{U}}^{{\text{T}}} {\mathbf{a}}_{i}^{{\text{T}}} {\mathbf{a}}_{i} {\mathbf{U}}} \right)^{ - 1} \\ & \quad = \left( {{\mathbf{Z}} + {\mathbf{uu}}^{{\text{T}}} } \right)^{ - 1} \\ & \quad = {\mathbf{Z}}^{ - 1} - \frac{1}{{1 + {\mathbf{u}}^{{\text{T}}} {\mathbf{Z}}^{ - 1} {\mathbf{u}}}}{\mathbf{Z}}^{ - 1} {\mathbf{uu}}^{{\text{T}}} {\mathbf{Z}}^{ - 1} \\ \end{aligned}$$
(8)

where \({\mathbf{u}} = {\mathbf{U}}^{{\text{T}}} {\mathbf{a}}_{i}^{{\text{T}}} = \left[ {\begin{array}{*{20}c} {u_{1} } & {u_{2} } & {u_{3} } & {u_{4} } \\ \end{array} } \right]^{{\text{T}}}\).

The orthogonal transformation does not change the trace of the matrix, so the following relations are valid:

$$\begin{aligned} & {\text{trace}}(({\mathbf{A}}_{j - 1}^{{i}{\text{T}}} {\mathbf{A}}_{j - 1}^{i} )^{ - 1} ) = {\text{trace}}({\mathbf{Z}}^{ - 1} ) \\ & \quad = trace(({\mathbf{U}}^{{\text{T}}} ({\mathbf{A}}_{j}^{{\text{T}}} {\mathbf{A}}_{j} ){\mathbf{U}})^{ - 1} ) + trace(k{\mathbf{u}}_{z} {\mathbf{u}}_{z}^{{\text{T}}} ) \\ & \quad = trace(({\mathbf{A}}_{j}^{{\text{T}}} {\mathbf{A}}_{j} )^{ - 1} ) + ktrace({\mathbf{u}}_{z} {\mathbf{u}}_{z}^{{\text{T}}} ) \\ \end{aligned}$$
(9)

where \({\mathbf{u}}_{z} = {\mathbf{Z}}^{ - 1} {\mathbf{u}}\), \({\text{trace}}({\mathbf{u}}_{z} {\mathbf{u}}_{z}^{{\text{T}}} ) = \sum\nolimits_{i = 1}^{4} {\left( {\frac{{u_{i} }}{{z_{i} }}} \right)^{2} } = q > 0\), and \({\text{k}} = {1 \mathord{\left/ {\vphantom {1 {\left( {1 + \sum\nolimits_{i = 1}^{4} {\frac{{u_{i}^{2} }}{{z_{i} }}} } \right)}}} \right. \kern-0pt} {\left( {1 + \sum\nolimits_{i = 1}^{4} {\frac{{u_{i}^{2} }}{{z_{i} }}} } \right)}} > 0\). Therefore, the following formula can be obtained:

$${\text{GDOP}}_{j - 1}^{{i^{2} }} = {\text{GDOP}}_{j}^{2} + kq > {\text{GDOP}}_{j}^{2}$$
(10)

Equation (10) indicates that: (1) optimal GDOP value is achieved when all visible satellites are used for computing the three-dimensional position; (2) with an increasing number of satellites, the GDOP value will become smaller. Equation (10) defines the smaller-GDOP-value satellite selection method based on the Sherman–Morrison formula.

In order to maximize the efficiency of using satellite data and reduce the number of calculations, we discuss next how to select four or more satellites from all visible satellites and then add satellites to improve GDOP value according to (10).

Combining the smaller-GDOP-value and the maximum-volume-tetrahedron methods

In 3-D positioning, there is nearly an inverse relation between GDOP and the volume spanned by the user-to-satellite unit vectors (Kaplan and Hegarty 2006; Kihara and Okada 1984). This relationship is also verified by Blanco-Delgado et al. (2017). Their research results show that the relationship is valid when only four visible satellites are used for computing the positions. In that case, the volume of the tetrahedron is \(\frac{1}{6}\left| {\det ({\mathbf{A}})} \right|\)(Newson 1899–1990). Thus,

$${\text{GDOP}} = \sqrt {{\text{trace}}({\mathbf{A}}^{{\text{T}}} {\mathbf{A}})^{ - 1} } = \frac{{\sqrt {{\text{trace}}\left( {adj({\mathbf{A}}^{{\text{T}}} {\mathbf{A}})} \right)} }}{{\left| {\det \left( {\mathbf{A}} \right)} \right|}} = \frac{{\sqrt {{\text{trace}}\left( {adj({\mathbf{A}}^{{\text{T}}} {\mathbf{A}})} \right)} }}{6V}$$
(11)

where V stands for the volume of the tetrahedron. When V reaches a maximum, the GDOP is considered an optimal value.

After selecting four satellites based on the maximum-volume-tetrahedron method and knowing that small GDOP values imply good accuracy, we add another visible satellite based on the smaller-GDOP-value method to minimize the GDOP.

Let \({\text{GDOP}}_{i}\) denote the GDOP value after adding \(i\) satellites and \({\text{GDOP}}_{i + 1}\) denote the GDOP value after adding \(i + 1\) satellites. When \(i = 0\), \({\text{GDOP}}_{i}\) is the minimizing GDOP related to the maximum-volume-tetrahedron method in (11). According to (10), the relation between \({\text{GDOP}}_{i}\) and \({\text{GDOP}}_{i + 1}\) can be expressed as:

$${\text{GDOP}}_{i + 1}^{2} = {\text{GDOP}}_{i}^{2} - k_{i + 1} q_{i + 1} \quad (i = 0,1,2 \ldots i \le n - 4)$$
(12)

where \(n\) is the number of all visible satellites; the product of \(k_{i + 1} q_{i + 1}\) can be defined as the reduction indicator.

In selecting the satellites, adding one satellite with the maximization of \(k_{i + 1} q_{i + 1}\) every time, the minimum \({\text{GDOP}}_{i + 1}\) value will be achieved according to (12). Thus, the GDOP value becomes smaller as the number of selected satellites increases. However, when the number of the selected satellites reaches a certain value, the rate of GDOP decrease tends to approach zero. Therefore, to make a satellite selection method with high computational efficiency, a reasonable thresholds can be set to stop the addition of more satellites.

Discussion of reasonable end-indicator selection and their thresholds setting

According to (12), the value of \(k_{i + 1} q_{i + 1}\) becomes smaller as the number of selected satellites increases. For convenience, we replace \(k_{i + 1} q_{i + 1}\) by Sq_deltaGDOP; thus, the relation between GDOP and Sq_deltaGDOP can be expressed as:

$${\text{Sq}}\_\text{deltaGDOP} = {\text{GDOP}}_{{i,{\text{Max}}(k_{i}\ q_{i} )}}^{2} - {\text{GDOP}}_{{i + 1,{\text{Max}}(k_{i + 1}\ \ q_{i + 1} )}}^{2} \le TH_{\text{SQ}}\_\text{deltaGDOP} \quad (i = 0,1,2 \ldots i \le n - 4)$$
(13)

where \({\text{GDOP}}_{{i,{\text{Max}}(k_{i}\ q_{i} )}}^{{}}\) stands for the GDOP value after having added \(i\) satellites, moreover, with the \(k_{i} q_{i}\) maximization; \({\text{GDOP}}_{{i + 1,{\text{Max}}(k_{i + 1}\ \ q_{i + 1}\ \ )}}^{{}}\) stands for the GDOP value after having added \(i + 1\) satellites, moreover, with the \(k_{i + 1} q_{i + 1}\) maximization. The constant \(TH_{{{\text{SQ}}}}\_\text{deltaGDOP}\) stands for the threshold with respect to Sq_deltaGDOP and can be determined by experiment results.

How many visible satellites need to be selected to meet the high precision navigation requirements? Which parameters can be considered as reasonable end indicators, and how are the thresholds set? Could Sq_deltaGDOP be an end indicator? In order to answer these questions, we first design an experiment to test the validity of the smaller-GDOP-value method based on the Sherman–Morrison formula.

The GNSS data collected with a UB4B0 chip produced by Unicore Communications Incorporated are analyzed with a routine written in the MATLAB 2017b programming platform. We collected 2400 ephemeris files with the UB4B0 chip, and the epoch interval was 10 s. The observations and ephemeris files from BDS/GPS/GLONASS were used to assess the experimental results. According to the maximum-volume-tetrahedron satellite selection method and the design principle of the satellite selection algorithm based on the Sherman–Morrison formula, we selected 4–19 visible satellites without setting a threshold, the experimental results about GDOP are shown in Fig. 1, and the experimental results about Sq_deltaGDOP are shown in Fig. 2. Additionally, the optimal estimation results of the GDOP for all visible satellites are also given in Fig. 1.

Fig. 1
figure 1

Comparing GDOPs for all visible satellites and those of the satellite selection algorithm based on the Sherman–Morrison formula. ALL represents the optimal GDOP estimation results for all visible satellites, and xxSAT represents the results of the corresponding xx selected satellites (xx = 4, 5, 6,…,19)

Fig. 2
figure 2

Sq_deltaGDOP of the satellite selection algorithm based on the Sherman–Morrison formula. Here xxSAT represents the results of the corresponding xx selected satellites (xx = 4, 5, 6, …,19 as the same as Fig. 1)

Figure 1 shows that the GDOP value decreases as the number of selected satellites increases. The fast satellite selection algorithm results based on the Sherman–Morrison formula indicate that the algorithm results reflect the variational GDOP trend. Additionally, the results in the figure can be summarized as follows: When the number of selected satellites ranges from 4 to 7, the GDOP value decreases rapidly; however, compared with the results for all visible satellites, these results display relatively large differences in GDOP values. When the number of selected satellites ranges from 8 to 10, the GDOP value decreases significantly; compared with the results for all visible satellites, these results display more minor differences in GDOP values. When the number of selected satellites ranges from 11 to 15, the decrease in the GDOP is not obvious; compared with the results for all visible satellites; these results display very small GDOP differences. Moreover, the GDOP is less than 2 in all cases, indicating high positioning accuracy; when the number of selected satellites ranges from 16 to 19, the GDOP results are close to the value of all visible satellites. In summary, compared with the optimal GDOP estimation results based on all visible satellites, when the number of selected satellites reaches 11, one obtains a GDOP value of less than 2, which indicates that the algorithm has high accuracy and stability.

Figure 2 can be summarized as follows: When the number of selected satellites ranges from 4 to 7, the Sq_deltaGDOP value ranges from 0.05 to 0.25; for 8 to 11 satellites, the range is 0.03 to 0.15; for 12 to 15, it is 0.02 to 0.08; and when the number of selected satellites ranges from 16 to 19, the Sq_deltaGDOP value ranges from 0.01 to 0.05. In summary, the range of Sq_deltaGDOP value becomes smaller as the number of selected satellites increases. But there are some smaller Sq_deltaGDOP values in some epochs when the numbers of the selected satellites are small. Considering Sq_deltaGDOP as the unique end indicator for the satellite selection calculation entails some disadvantages: (1) if the \(TH_{{{\text{SQ}}}}\_\text{deltaGDOP}\) value is set too low, such as 0.02 in Fig. 2, the number of the selected satellites will be large, and the corresponding calculation time will increase. Even though Sq_deltaGDOP cannot meet the threshold \(TH_{{{\text{SQ}}}}\_\text{deltaGDOP}\) when all visible satellites are used in the calculation, it will lead to an endless loop. (2) If the \(TH_{{{\text{SQ}}}}\_\text{deltaGDOP}\) value is set too big, such as bigger than 0.1 in Fig. 2, the number of the selected satellites will be smaller, and the GDOP value cannot meet the accuracy requirement, but the satellite selection calculation has ended. (3) If the \(TH_{{{\text{SQ}}}}\_\text{deltaGDOP}\) value is set small, such as smaller than 0.1 in Fig. 2, when the number of the selected satellites ranges from 5 and 19, we can see that there are some epochs (for 5 to 9), even all epochs (for 10 to 19), where Sq_deltaGDOP can meet the threshold \(TH_{{{\text{SQ}}}}\_\text{deltaGDOP}\). This leads to the satellite selection calculation that will end at these epochs. Moreover, as shown in Fig. 1, when the number of the selected satellites is smaller than 11, the GDOP value cannot meet the high-precision navigation requirements. Thus, Sq_deltaGDOP cannot be considered as the end indicator for the satellite selection calculation.

As we know, the GDOP value is less than 2 means that the accuracy can meet the high-precision navigation requirements. As analyzed above, when the number of selected satellites reaches 11, one obtains a GDOP value of less than 2. Thus, the number 11 can be considered as the threshold to end the satellite selection calculation. But as shown in Fig. 1, when the number of selected satellites is less than 11, the GDOP value has met the accuracy requirement in some epochs. Let \(TH_{S}\) be the end indicator threshold for the satellite selection calculation. Reasonable end calculation conditions can be expressed as follows:

$$\left\{ {\begin{array}{*{20}l} {{\text{if}}\,{\text{GDOP}} \le 2\,{\text{and}}\,i{ + 4} < TH_{S} ,{\text{end}}} \hfill \\ {{\text{else}}\,{\text{if}}\,\,i{ + 4} \ge TH_{S} \,\,\,\,\,(i = 0,1,2 \ldots i \le n - 4),{\text{end}}} \hfill \\ \end{array} } \right.$$
(14)

where \(n\) is the number of all visible satellites.

Automatic algorithm with the reasonable end calculation conditions

As mentioned above, we obtained the reasonable thresholds and end calculation parameters and then proposed an automatic algorithm with the reasonable end calculation conditions. Moreover, the characteristics of the maximum-volume-tetrahedron satellite selection method are combined with the advantages of using the Sherman–Morrison formula in the proposed approach, as shown in Fig. 3.

Fig. 3
figure 3

Flowchart of the satellite selection algorithm based on the Sherman–Morrison formula

As shown in Fig. 3, after obtaining the satellite coordinates and observation data, the maximum-volume-tetrahedron satellite selection method is used to select the four initial visible satellites. The satellite selection algorithm based on the Sherman–Morrison formula is then used to add and select the other visible satellites. The specific steps of the smaller-GDOP-value method in the co-selection process of visible satellites can be described as follows: (1) determine and select the \(k_{i + 1} q_{i + 1}\) maximization; (2) calculate the \({\text{GDOP}}_{{i + 1,{\text{Max}}(k_{i + 1}\ \ q_{i + 1} \ \ )}}^{2}\); (3) continue or end the calculation according to the end conditions of (14); (4) if the end conditions are met, stop adding more satellites, and end the calculation cycle; (5) to output the satellite selection result.

Experimental results of automatic satellite selection when setting the threshold value

As mentioned above, we obtained the reasonable threshold and the end calculation conditions of (14) according to the experiment results of Fig. 1. Using the same experimental GNSS data as in Fig. 1, the automatic selection results are shown in Fig. 4. The GDOP values are less than 2. This finding suggests that the selection algorithm based on the Sherman–Morrison formula has high accuracy and is autonomous. The statistics for the algorithm over 2400 epochs are shown in Table 1.

Fig. 4
figure 4

Results of the automatic algorithm based on the Sherman–Morrison formula

Table 1 Statistics for the algorithm results over 2400 epochs (unit: %)

According to Table 1, 100% of the GDOP values obtained with the algorithm based on the Sherman–Morrison formula are less than 2 for all epochs, indicating that the approach can meet the requirements of high-precision navigation. Therefore, under the reasonable threshold and the end calculation conditions of (14), the proposed algorithm is characterized by high accuracy, automation, and broad applicability.

The number of selected satellites for the algorithm based on the Sherman–Morrison formula is shown in Fig. 5.

Fig. 5
figure 5

Comparison of the number of satellites selected in the all-visible-satellite method and the satellite selection method based on the Sherman–Morrison formula

Figure 5 shows that the number of selected satellites for the automatic algorithm based on the Sherman–Morrison formula is less than or equal to 11.

To verify the computational efficiency of the satellite selection algorithm based on the Sherman–Morrison formula, we use the big O notation to asymptotically bind the running time of this algorithm each epoch. The search and sort computation time based on (11) and (12) is related to \({\text{O}}(n\log_{2} n)\), where n is the number of all visible satellites. The computation time of the matrix \({\mathbf{A}}^{{\text{T}}} {\mathbf{A}}\) is related to \({\text{O}}(NN)\), where N is the number of the selected satellites. According to Pawar and Ramchandran (2018), the computation time of the algorithm we proposed can be expressed as follows:

$$EF = {\text{O}}(n\log_{2} n) + {\text{O}}(NN)$$
(15)

where EF stands for the computation efficiency of the algorithm. The results of the computation efficiency with respect to Fig. 4, according to (15), are given in Fig. 6.

Fig. 6
figure 6

Computation efficiency with respect to Fig. 4 solution

Figure 6 shows that the computation efficiency of the satellite selection method based on the Sherman–Morrison formula is about half, compared with that of the all-visible-satellite method, indicating that this automatic algorithm has the character of high-performance computing. Combined with the results in Fig. 4, it can be seen that after setting reasonable thresholds for the end indicator of the satellite selection calculation, the algorithm based on the Sherman–Morrison formula exhibits high precision and supports autonomous functionality.

Conclusions

Based on theoretical and experimental verifications, the main conclusions of this study can be summarized as follows:

  1. 1.

    The satellite selection algorithm based on Sherman–Morrison formula reflects the variations in the GDOP. That is, the GDOP value decreases gradually with the increasing number of selected satellites. When the number of selected satellites is greater than or equal to 11, the GDOP decreasing rate is less than 0.1, i.e., basically stable. Considering the algorithm precision and the computation efficiency, the reasonable threshold and the end calculation conditions of (14) are proposed.

  2. 2.

    Under the thresholds and the end computation conditions of (14), the satellite selection algorithm based on Sherman–Morrison formula functions autonomously. The GDOP values are less than 2, indicating that the approach can meet one of the requirements of high-precision navigation. This finding further verifies that the algorithm can maintain high positioning and navigation accuracy under autonomous conditions.

  3. 3.

    Using the big O notation, the computation complexity value of the automatic satellite selection method based on the Sherman–Morrison formula is about half, compared with that of the all-visible-satellite method, indicating that this automatic algorithm has the character of high-performance computing.