A Carrier Phase Differential Method Using a Parallel-Processable Kalman Filter
By storing satellite-related parameters in an independent Kalman filter according to satellite division, parallel processing is realized, solving the problem that carrier phase difference technology takes too long in a large number of orbit satellites and frequency points, and improving computing efficiency.
Patent Information
- Application Number
- CN202310203367.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-03-03
- Publication Date
- 2025-07-29
- Estimated Expiration
- 2043-03-03
AI Technical Summary
When the existing carrier phase difference technology faces a large number of orbit satellites and frequency points, the increase in ambiguity parameters leads to excessive time processing, and the existing regularization auxiliary methods still take a long time while ensuring accuracy.
The parallel processing Kalman filter is used to store satellite-related parameters in their respective independent Kalman filters, which removes the coupling relationship between position-related parameters and satellite-related parameters, and reduces the complexity of solution time through parallel processing.
By processing the Kalman filter in parallel, the time-consuming calculation of ambiguity floating point filter is reduced, the calculation efficiency of carrier phase difference is improved, and the acquisition process of positioning results is accelerated.
Smart Images

Figure CN116577812B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of satellite positioning, and more specifically, to a carrier phase differential method using a parallel - processable Kalman filter. Background Art
[0002] Carrier phase differential technology, also known as RTK (Real Time Kinematic), is a high - precision relative positioning technology. The common processing flow is divided into three steps: data pre - processing; float ambiguity filtering; integer ambiguity fixing. The float ambiguity filtering calculation of the RTK algorithm takes 50% - 70% of the total operation time. Currently, the commonly used float filtering method is mainly to use a Kalman filter.
[0003] The common Kalman filter is an integrated type, that is, the position - related parameters and satellite - related parameters are placed in the same state vector. Although the number of position - related parameters is usually relatively fixed, that is, [X, Y, Z, V x , V y , V z , a x , a y , a z T , which are three position parameters, three velocity parameters, and three acceleration parameters respectively. However, with the development of the global satellite navigation system, the number of on - orbit satellites and frequency points is increasing day by day, and the number of ambiguity parameters to be estimated also increases. For example, for 30 dual - frequency satellites that need to estimate ionospheric delay, the filter parameters are 9 + 30×(1 + 2)=99; for 30 triple - frequency satellites that need to estimate ionospheric delay, the filter parameters are 9 + 30×(3 + 1)=129, and the dimension increases as the number of satellites per frequency point increases. It is known that the matrix multiplication and inversion in the filtering process are both of O(n 3 ) time complexity, which means that the data processing time of 129 - dimensional data will be 2.2 times that of 99 - dimensional data.
[0004] These are still the number of visible satellites of the four major systems (GPS, Beidou, GLONASS, Galileo) in the Asia - Pacific region at present. With the development of the satellite navigation system, if a large number of low - earth - orbit satellites participate in the calculation, a Kalman filter that supports parallel - processable calculation is required.
[0005] The prior art discloses a method for accelerating the convergence of a Kalman filter RTK floating-point solution. This method proposes a regularization-assisted approach to accelerate the convergence of a fast Kalman filter RTK floating-point solution. The method includes a satellite observation module, a calculation module, and a filter positioning module. The satellite observation module is used to differentiate the carrier phase of the positioning satellite and establish an observation equation. The calculation module is used to establish a criterion equation, calculate a regularization matrix, and obtain an estimated value of the state quantity. The calculation module is also used to assist the filter positioning module. The filter positioning module is used to perform filtering processing based on the carrier phase differential observation and the estimated value obtained by the calculation module. A drawback of this method is that the number of satellites and frequency points in orbit is increasing, and the number of ambiguity parameters that need to be estimated is also increasing. While ensuring accuracy, data processing is time-consuming.
[0006] To this end, in combination with the above requirements and the defects of the prior art, the present application proposes a carrier phase difference method using a parallel processing Kalman filter. Summary of the invention
[0007] The present invention provides a carrier phase difference method using a parallel processing Kalman filter, which can divide satellite-related parameters by satellite and store them in independent Kalman filters. It can decouple the position-related parameters from the satellite-related parameters, reduce the time complexity of the solution, and speed up the process of obtaining the positioning result.
[0008] The primary purpose of the present invention is to solve the above technical problems, and the technical solutions of the present invention are as follows:
[0009] A first aspect of the present invention provides a carrier phase difference method using a parallel processable Kalman filter, the method comprising the following steps:
[0010] S1. Preprocess the input mobile station data and base station data to obtain differential data.
[0011] S2. Using the satellite elevation angle as a selection condition, determine whether the satellite list is empty. If it is not empty, select a reference satellite from the reference satellite list and other satellite lists. If the satellite list is empty, do nothing.
[0012] S3. Determine whether the reference satellite needs to be changed. If the reference satellite needs to be changed, execute step S4; if not, execute step S5.
[0013] S4. Calculate the frequency point set of the satellites to be transformed, where the satellites to be transformed include new reference satellites, old reference satellites, and double-difference satellites, and use a reference satellite transformation method to complete reference satellite transformation of all double-difference satellites.
[0014] S5. Set the filtered data of different satellites in the Kalman filters of different threads respectively, and use the differential data to perform parallel processing on the Kalman filters to complete the update of the Kalman filters, and obtain the updated Kalman filters of each double-differenced satellite.
[0015] S6. Fix the ambiguity, perform position adjustment on the results of the Kalman filters of each double-differenced satellite, and obtain the positioning result.
[0016] Among them, both steps S5 and S6 can be processed in parallel, and each satellite is placed in a separate thread.
[0017] Further, the data preprocessing process is specifically as follows: Subtract the pseudorange and carrier data of the reference station from the pseudorange and carrier data of the rover respectively to obtain differential data; perform cycle slip detection on the differenced carrier data to construct a geometry-free and ionosphere-free combination.
[0018] Among them, constructing a geometry-free and ionosphere-free combination is used to detect the situation where the integer ambiguity in the carrier data may not remain constant.
[0019] Further, for a satellite navigation system, there is the following satellite set:
[0020]
[0021] Among them, the superscript (i) represents the reference satellite set, and its set size is 1; the superscript (j) represents the other satellite set, and its set size is greater than 3; the superscript (ij) represents the double-differenced satellite set. The double-differenced satellite set is specifically as follows: After taking the difference between the rover data and the reference station data, the satellites in the reference satellite set (i) and the satellites in the other satellite set (j) are subtracted one by one for the observations of the same type and the same frequency point; where r1 represents the first reference satellite in the reference satellite set (i) , s1, s2,... represent the satellites in the other satellite set (j) , and d1, d2,... represent the satellites in the double-differenced satellite set (ij) .
[0022] In a specific embodiment, the frequency point set n (i) of the reference satellites and the frequency point set n (j) of the other satellites may not be exactly equal. Therefore, when taking the double difference, their intersection n (ij) is taken as follows:
[0023]
[0024] Furthermore, the Kalman filter can achieve parallel processing, specifically: storing the filtering data of each satellite of the reference satellite and the double-differenced satellite in their respective Kalman filters; for allocating the part with O(n 3 ) time complexity to each thread to achieve parallel processing.
[0025] Furthermore, the Kalman filter of the reference satellite is specifically:
[0026]
[0027] The Kalman filter of the double-differenced satellite is specifically:
[0028]
[0029] where the subscript k represents the timestamp, and the superscript is the set symbol of the reference satellite (i) and the double-differenced satellite (ij) ; X represents the state vector of the Kalman filter, H represents the design matrix of the Kalman filter, and y represents the observable of the Kalman filter; N1, N2,... represent the carrier ambiguities of each frequency point of this satellite, f1, f2,... represent the frequencies of each frequency point of this satellite, and I1 represents the ionospheric delay of the first frequency point of this satellite; ρ and Δρ represent the satellite-earth distance and its change of this satellite respectively; L1, L2,... represent the carrier observables of each frequency point of this satellite, and P1, P2,... represent the pseudorange observables of each frequency point of this satellite; is the ambiguity of the first frequency point of the double-differenced satellite (ij) at the k-th moment, is the square of the frequency of the first frequency point of the double-differenced satellite (ij) ; is the carrier observation value of the first frequency point of the double-differenced satellite (ij) at the k-th moment, is the pseudorange observation value of the first frequency point of the double-differenced satellite (ij) at the k-th moment, is the change in the satellite-earth distance of the double-differenced satellite (ij) at the k-th moment, is the ionospheric delay of the first frequency point of the double-differenced satellite (ij) at the k-th moment.
[0030] Furthermore, for the k-th moment, when a newly added satellite needs to be initialized, or an existing satellite needs to be initialized due to cycle slips or loss of lock, the filter initialization process needs to be executed. The process of initializing the Kalman filter of the reference satellite is specifically:
[0031]
[0032] The process of initializing the Kalman filter for double-differenced satellites is specifically as follows:
[0033]
[0034] Where the subscript 0 represents the initialization moment, represents the variance of the ambiguity of the first frequency point of the double-differenced satellite at the initialization moment, represents the variance of the change in the satellite-ground distance of the double-differenced satellite at the initialization moment, represents the variance of the ionospheric delay of the first frequency point of the double-differenced satellite at the initialization moment.
[0035] Further, in step S4, the method of transforming the reference satellite is specifically as follows: The old reference satellite i is not in the double-differenced satellite list j, that is, The new reference satellite i′ is obtained by selecting from the double-differenced satellite list j, that is, i′ ∈ j; The conversion between the old and new reference satellites is carried out through the following process:
[0036]
[0037] For the satellites in the double-differenced list j, all except the new reference satellite i′ participate in the following process:
[0038]
[0039] Among them, after removing the new reference satellite i′ from the double-differenced satellite list j, the old reference satellite i is inserted into the double-differenced satellite list j to obtain a new double-differenced satellite list j′.
[0040] Further, in step S5, the process of updating the Kalman filter, ignoring the reference satellite superscript (i) and the double-differenced satellite superscript (ij) , is specifically as follows at the k-th moment:
[0041]
[0042] Among them, the data of each satellite are respectively stored in their own Kalman filters, and the update tasks of each Kalman filter are input into the thread pool according to the queue and executed.
[0043] Further, in step S3, before judging that the reference satellite needs to be transformed, the states and covariances of the Kalman filters of the old and new reference satellites need to be cached.
[0044] The second aspect of the present invention provides a carrier phase differential system using a Kalman filter that can be processed in parallel, including a memory and a processor. The memory includes a carrier phase differential program using a Kalman filter that can be processed in parallel. When the carrier phase differential program using a Kalman filter that can be processed in parallel is executed by the processor, the following steps are implemented:
[0045] S1. Preprocess the input mobile station data and base station data to obtain differential data.
[0046] S2. Using the satellite elevation angle as a selection condition, determine whether the satellite list is empty. If it is not empty, select a reference satellite from the reference satellite list and other satellite lists. If the satellite list is empty, do nothing.
[0047] S3. Determine whether the reference satellite needs to be changed. If the reference satellite needs to be changed, execute step S4; if not, execute step S5.
[0048] S4. Calculate the frequency point set of the satellites to be transformed, where the satellites to be transformed include new reference satellites, old reference satellites, and double-difference satellites, and use a reference satellite transformation method to complete reference satellite transformation of all double-difference satellites.
[0049] S5. Setting the filtered data of different satellites in the Kalman filters of different threads respectively, using the differential data to perform parallel processing on the Kalman filters to complete the update of the Kalman filters, and obtaining the updated Kalman filters of each double-difference satellite.
[0050] S6. Fix the ambiguity and perform position adjustment on the results of the double-difference Kalman filter of each satellite to obtain the positioning result.
[0051] Compared with the prior art, the technical solution of the present invention has the following beneficial effects:
[0052] The present invention provides a carrier phase difference method using a parallel processing Kalman filter. By calculating the frequency point set of the satellite to be transformed, the satellite-related parameters are divided by satellite and stored in each independent Kalman filter. This eliminates the coupling relationship between position-related parameters and satellite-related parameters, reduces the time consumption of ambiguity floating-point filter calculation, improves the efficiency of calculating carrier phase differences, and accelerates the process of obtaining positioning results. BRIEF DESCRIPTION OF THE DRAWINGS
[0053] Figure 1 The present invention is a flow chart of a carrier phase difference method using a parallel processing Kalman filter.
[0054] Figure 2 The figure is a flow chart of an embodiment of the present invention.
[0055] Figure 3 The figure is a schematic diagram of a carrier phase difference system using a parallel processing Kalman filter according to the present invention.
[0056] Figure 4 Schematic diagram comparing the effects of an embodiment of the present invention with standard Kalman filtering. Detailed Implementation Modes
[0057] In order to more clearly understand the above-mentioned objects, features and advantages of the present invention, the present invention will be further described in detail below in conjunction with the accompanying drawings and specific implementation modes. It should be noted that, without conflict, the embodiments of the present application and the features in the embodiments can be combined with each other.
[0058] In the following description, many specific details are set forth in order to fully understand the present invention. However, the present invention can also be implemented in other ways different from those described herein. Therefore, the protection scope of the present invention is not limited by the specific embodiments disclosed below.
[0059] Embodiment 1
[0060] As Figure 1 and Figure 2 shown, the present invention provides a carrier phase differential method using a parallel-processable Kalman filter. This method includes the following steps:
[0061] S1. Perform data preprocessing on the input rover data and base station data to obtain differential data.
[0062] S2. Use the satellite elevation angle as a selection condition to determine whether the satellite list is empty. If it is not empty, select reference satellites from the reference satellite list and other satellite lists. If the satellite list is empty, do nothing.
[0063] S3. Determine whether the reference satellite needs to be transformed. If the reference satellite needs to be transformed, execute step S4. If no transformation is required, execute step S5.
[0064] S4. Calculate the frequency point sets of the satellites to be transformed, where the satellites to be transformed include new reference satellites, old reference satellites, and double-difference satellites, and use the reference satellite transformation method to complete the reference satellite transformation of all double-difference satellites.
[0065] S5. Set the filtering data of different satellites in the Kalman filters of different threads respectively, and use the differential data to perform parallel processing on the Kalman filters to complete the update of the Kalman filters, and obtain the updated Kalman filters of each double-difference satellite.
[0066] S6. Fix the ambiguity, and perform position adjustment on the results of the Kalman filters of each double-difference satellite to obtain the positioning result.
[0067] Among them, both steps S5 and S6 can be processed in parallel, and each satellite is placed in a separate thread.
[0068] In a specific embodiment, if the reference satellite is lost, or a cycle slip occurs, or it is no longer the satellite with the highest elevation angle in the list, the reference satellite should be transformed.
[0069] Further, the data preprocessing process is specifically as follows: subtracting the pseudorange and carrier data of the reference station from the pseudorange and carrier data of the rover to obtain differential data; performing cycle slip detection on the differential carrier data to construct a geometry-free and ionosphere-free combination.
[0070] Among them, the construction of the geometry-free and ionosphere-free combination is used to detect the situation where the integer ambiguity in the carrier data may not remain constant.
[0071] Further, for a satellite navigation system, there is the following satellite set:
[0072]
[0073] Among them, the superscript (i) represents the reference satellite set, and its set size is 1; the superscript (j) represents the other satellite set, and its set size is greater than 3; the superscript (ij) represents the double-difference satellite set. The double-difference satellite set is specifically as follows: after taking the difference between the rover data and the reference station data, the satellites in the reference satellite set (i) and the satellites in the other satellite set (j) are used to perform pairwise differences on the observations of the same type and the same frequency point one by one; where r1 represents the first reference satellite in the reference satellite set (i) , s1, s2,... represent the satellites in the other satellite set (j) , and d1, d2,... represent the satellites in the double-difference satellite set (ij) .
[0074] In a specific embodiment, the frequency point sets n (i) of the reference satellites and n (j) of the other satellites may not be exactly equal. Therefore, when performing double-differencing, their intersection n (ij) is taken as follows:
[0075]
[0076] Further, the Kalman filter can achieve parallel processing, specifically as follows: storing the filtered data of each satellite of the reference satellite and the double-difference satellite in their respective Kalman filters; used to allocate the part with a time complexity of O(n 3 ) to each thread to achieve parallel processing.
[0077] Further, the Kalman filter of the reference satellite is specifically as follows:
[0078]
[0079] The Kalman filter of the double-difference satellite is specifically as follows:
[0080]
[0081] wherein, the subscript k represents the timestamp, and the superscript is the set symbol of the reference satellite (i) and the double-difference satellite (ij) ; X represents the state vector of the Kalman filter, H represents the design matrix of the Kalman filter, and y represents the observable of the Kalman filter; N1, N2,... represent the carrier ambiguities of each frequency point of this satellite, f1, f2,... represent the frequencies of each frequency point of this satellite, and I1 represents the ionospheric delay of the first frequency point of this satellite; ρ and Δρ respectively represent the satellite-to-ground distance of this satellite and its change amount; L1, L2,... represent the carrier observables of each frequency point of this satellite, and P1, P2,... represent the pseudorange observables of each frequency point of this satellite; is the ambiguity of the k-th moment and the first frequency point of the double-difference satellite (ij) , is the square of the frequency of the first frequency point of the double-difference satellite (ij) , is the carrier observation value of the k-th moment and the first frequency point of the double-difference satellite (ij) , is the pseudorange observation value of the k-th moment and the first frequency point of the double-difference satellite (ij) , is the change amount of the satellite-to-ground distance of the k-th moment of the double-difference satellite (ij) , is the ionospheric delay of the k-th moment and the first frequency point of the double-difference satellite (ij) .
[0082] Furthermore, for the k-th moment, when there are newly added satellites that need to be initialized, or when there are existing satellites that need to be initialized due to cycle slips or loss of lock, the filter initialization process needs to be executed. The specific process of initializing the Kalman filter for the reference satellite is as follows:
[0083]
[0084] The specific process of initializing the Kalman filter for the double-difference satellite is as follows:
[0085]
[0086] where the subscript 0 represents the initialization moment, represents the variance of the ambiguity of the first frequency point of the double-difference satellite at the initialization moment, represents the variance of the change amount of the satellite-to-ground distance of the double-difference satellite at the initialization moment, represents the variance of the ionospheric delay of the first frequency point of the double-difference satellite at the initialization moment.
[0087] Further, in step S4, the method for reference satellite transformation is specifically as follows: the old reference satellite i is not in the double-difference satellite list j, that is the new reference satellite i′ is obtained by selecting from the double-difference satellite list j, that is i′ ∈ j; the transformation between the old and new reference satellites is performed through the following process:
[0088]
[0089] For the satellites in the double-difference list j, all except the new reference satellite i′ participate in the following process:
[0090]
[0091] Among them, after removing the new reference satellite i′ from the double-difference satellite list j, the old reference satellite i is inserted into the double-difference satellite list j to obtain a new double-difference satellite list j′.
[0092] Further, in step S5, the process of updating the Kalman filter ignores the reference satellite superscript (i) and the double-difference satellite superscript (ij) , and specifically at the k-th moment is:
[0093]
[0094] Among them, the data of each satellite are respectively stored in their own Kalman filters, and the update tasks of each Kalman filter are input into the thread pool according to the queue and executed.
[0095] Further, in step S3, before judging that the reference satellite needs to be transformed, the states and covariances of the Kalman filters of the old and new reference satellites need to be cached.
[0096] In a specific embodiment, as Figure 2 shown, the specific process of the present invention is: 100. Data preprocessing; 200. Reference satellite selection; 300. Judge whether to transform the reference satellite; 310. When it is judged that the reference satellite needs to be transformed, first cache the states and covariances of the old and new reference satellites, and perform parallel processing in n threads, and each satellite is assigned a separate thread; 311. Transform the reference satellite; 320. When it is judged that the reference satellite does not need to be transformed, the parallel threads update the Kalman filter; 400. Perform position adjustment on the results of each double-difference satellite filter; 500. Fix the ambiguity and output the results.
[0097] Embodiment 2
[0098] Based on the above Embodiment 1, combined with Figure 4 , this embodiment elaborates in detail the ability of the present invention to process ionospheric delay errors compared with the standard Kalman filter through simulation experiments.
[0099] In a specific embodiment, the data of the Hong Kong CORS system from 5:00 to 6:00 (corresponding to 13:00 to 14:00 Beijing time) on January 13, 2020 in GPST is selected, with a sampling rate of 1 Hz and a baseline length of 36 km. Since this period is after noon, the ionosphere is relatively active, which can reflect the ability of the algorithm to process ionospheric delay errors. The CPU of the computer used is an Intel(R) Core(TM) Duo T7700 2.4GHz quad-core processor.
[0100] As Figure 4 shown, in terms of efficiency, comparing with the standard Kalman filter, the first 1000 epochs are intercepted. The systems participating in the calculation are GPS, Beidou 2, Beidou 3, and Galileo. The time-consuming statistics only consider the Kalman filtering process of the floating-point solution and do not consider the time-consuming of data preprocessing and ambiguity part.
[0101] The conclusion obtained is that for the standard Kalman filter, the states, positions, velocities, and accelerations of the floating-point solution Kalman filter are a total of 9 dimensions, and the rest are the floating-point ambiguities of the satellites and the ionospheric delay parameters of their frequency point 1. These states are all stored in a vector. The state dimension is about 104 dimensions on average in each epoch. There are about 27 satellites on average in each epoch, and there are about 148 pieces of data for the observed data pseudorange and carrier wave on average in each epoch. Only 1 core participates in the solution.
[0102] For the parallel Kalman filter, the state of each satellite is the change in the satellite-earth distance, the ionospheric delay parameter of frequency point 1, and the floating-point ambiguity. The dimension on average in each epoch is about 4.3 dimensions, there are about 27 satellites on average in each epoch, and there are about 148 pieces of data for the observed data pseudorange and carrier wave on average in each epoch. 4 cores participate in the solution. In order to reduce the time-consuming of thread initialization and switching, the open-source library ctpl_stl thread pool technology is used.
[0103] As Figure 4 shown, the time-consuming of the standard Kalman filter processing is 22138 ms, and the time-consuming of the double-difference parallel Kalman filter processing is 8338 ms. In comparison, the total time-consuming is reduced by 62.3%.
[0104] Embodiment 3
[0105] As Figure 3 shown, the present invention also provides a carrier phase differential system using a parallel-processable Kalman filter, including a memory and a processor. The memory includes a carrier phase differential program using a parallel-processable Kalman filter. When the carrier phase differential program using a parallel-processable Kalman filter is executed by the processor, the following steps are implemented:
[0106] S1. Perform data preprocessing on the input rover data and reference station data to obtain differential data.
[0107] S2. Using the satellite elevation angle as a selection criterion, determine whether the satellite list is empty. If it is not empty, select a reference satellite from the reference satellite list and other satellite lists. If the satellite list is empty, do nothing.
[0108] S3. Determine whether the reference satellite needs to be transformed. If the reference satellite needs to be transformed, execute step S4. If no transformation is required, execute step S5.
[0109] S4. Calculate the frequency point sets of the satellites to be transformed, where the satellites to be transformed include new reference satellites, old reference satellites, and double-differenced satellites, and use the reference satellite transformation method to complete the reference satellite transformation of all double-differenced satellites.
[0110] S5. Set the filtering data of different satellites in the Kalman filters of different threads respectively, and use the differential data to perform parallel processing on the Kalman filters to complete the update of the Kalman filters, and obtain the updated Kalman filters of each double-differenced satellite.
[0111] S6. Fix the ambiguity, perform position adjustment on the results of the Kalman filters of each double-differenced satellite, and obtain the positioning result.
[0112] Among them, both steps S5 and S6 can be processed in parallel, and each satellite is placed in a separate thread.
[0113] Further, the data preprocessing process is specifically as follows: Subtract the pseudorange and carrier data of the reference station from the pseudorange and carrier data of the rover respectively to obtain differential data; perform cycle slip detection on the differentially processed carrier data to construct a geometry-free and ionosphere-free combination.
[0114] Among them, constructing a geometry-free and ionosphere-free combination is used to detect the situation where the integer ambiguity in the carrier data may not remain constant.
[0115] Further, for a satellite navigation system, there is the following satellite set:
[0116]
[0117] Among them, the superscript (i) represents the reference satellite set, and its set size is 1; the superscript (j) represents the other satellite set, and its set size is greater than 3; the superscript (jj) represents the double-differenced satellite set. The double-differenced satellite set is specifically as follows: After subtracting the data of the reference station from the data of the rover, the satellites in the reference satellite set (i) and the satellites in the other satellite set (j) are used to perform pairwise differences on the observations of the same type and the same frequency point; where r1 represents the reference satellite set (i)The first reference satellite, s1, s2, … represent the set of other satellites (j) The satellites in, d1, d2, … represent the set of double-differenced satellites (ij) The satellites in.
[0118] Furthermore, the Kalman filter can achieve parallel processing, specifically: storing the filtering data of each satellite of the reference satellite and the double-differenced satellite in their respective Kalman filters; used to allocate the part with O(n 3 ) time complexity to each thread to achieve parallel processing.
[0119] Furthermore, the Kalman filter of the reference satellite is specifically:[[]]
[0120]
[0121] The Kalman filter of the double-differenced satellite is specifically:[[]]
[0122]
[0123] Wherein, the subscript k represents the timestamp, and the superscript is the set symbol of the reference satellite (i) and the double-differenced satellite<( (ij) ; X represents the state vector of the Kalman filter, H represents the design matrix of the Kalman filter, and y represents the observable of the Kalman filter; N1, N2, … represent the carrier ambiguities of each frequency point of this satellite, f1, f2, … represent the frequencies of each frequency point of this satellite, and I1 represents the ionospheric delay of the first frequency point of this satellite; ρ and Δρ respectively represent the satellite-earth distance and its change of this satellite; L1, L2, … represent the carrier observables of each frequency point of this satellite, and P1, P2, … represent the pseudorange observables of each frequency point of this satellite; is the ambiguity of the first frequency point of the double-differenced satellite (ij) at the k-th moment, is the square of the frequency of the first frequency point of the double-differenced satellite (ij) , is the carrier observation value of the first frequency point of the double-differenced satellite (ij) at the k-th moment, is the pseudorange observation value of the first frequency point of the double-differenced satellite (ij) at the k-th moment, is the change in the satellite-earth distance of the double-differenced satellite (ij) at the k-th moment, is the ionospheric delay of the first frequency point of the double-differenced satellite (ij) at the k-th moment.
[0124] Further, at the k-th moment, when new satellites are added and need to be initialized, or existing satellites need to be initialized due to cycle slips or loss of lock, the filter initialization process needs to be executed. The process of initializing the Kalman filter for the reference satellites is specifically as follows:
[0125]
[0126] The process of initializing the Kalman filter for the double-differenced satellites is specifically as follows:
[0127]
[0128] where the subscript 0 represents the initialization moment, represents the variance of the ambiguity of the first frequency point of the double-differenced satellite at the initialization moment, represents the variance of the change in the satellite-to-ground distance of the double-differenced satellite at the initialization moment, represents the variance of the ionospheric delay of the first frequency point of the double-differenced satellite at the initialization moment.
[0129] Further, in step S4, the method of transforming the reference satellite is specifically as follows: the old reference satellite i is not in the double-differenced satellite list j, that is, the new reference satellite i' is obtained by selecting from the double-differenced satellite list j, that is, i' ∈ j; the conversion between the old and new reference satellites is carried out through the following process:
[0130]
[0131] For the satellites in the double-differenced list j, all except the new reference satellite i' participate in the following process:
[0132]
[0133] Among them, after removing the new reference satellite i' from the double-differenced satellite list j, the old reference satellite i is inserted into the double-differenced satellite list j to obtain a new double-differenced satellite list j'.
[0134] Further, in step S5, the process of updating the Kalman filter ignores the superscripts of the reference satellite (i) and the superscripts of the double-differenced satellite (ij) , and is specifically as follows at the k-th moment:
[0135]
[0136] Among them, the data of each satellite are stored in their respective Kalman filters respectively, and the update tasks of each Kalman filter are input into the thread pool according to the queue and executed.
[0137] Further, in step S3, before determining that the reference satellite needs to be changed, the states and covariances of the Kalman filters of the old and new reference satellites need to be cached.
[0138] The icons describing the structural position relationships in the drawings are only for illustrative purposes and should not be construed as a limitation of this patent.
[0139] Obviously, the above embodiments of the present invention are merely examples for clearly illustrating the present invention and are not intended to limit the implementation manners of the present invention. For those of ordinary skill in the art, other different forms of changes or modifications can be made based on the above description. It is not necessary and impossible to enumerate all implementation manners here. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principle of the present invention shall be included within the protection scope of the claims of the present invention.
Claims
1. A carrier phase differential method using a parallel - processable Kalman filter, characterized in that, It includes the following steps: S1. Perform data preprocessing on the input rover data and base station data to obtain differential data; S2. Use the satellite elevation angle as a selection condition to determine whether the satellite list is empty. If it is not empty, select reference satellites from the reference satellite list and other satellite lists. If the satellite list is empty, do nothing; S3. Determine whether the reference satellite needs to be transformed. If the reference satellite needs to be transformed, execute step S4. If no transformation is required, execute step S5; S4. Calculate the frequency point set of the satellites to be transformed, where the satellites to be transformed include new reference satellites, old reference satellites, and double-differenced satellites, and use the reference satellite transformation method to complete the reference satellite transformation of all double-differenced satellites; S5 sets the filtered data of different satellites in the Kalman filters of different threads respectively, specifically: stores the filtered data of each satellite of the reference satellite and the double-differenced satellites in their respective Kalman filters, for allocating the part with O(n 3 ) time complexity to each thread to achieve parallel processing; uses the differential data to perform parallel processing on the Kalman filter to complete the update of the Kalman filter, and obtains the updated Kalman filters of each double-differenced satellite; S6. Fix the ambiguity, perform position adjustment on the results of the Kalman filters of each double-differenced satellite to obtain the positioning result.
2. A carrier phase differential method using a parallel - processable Kalman filter according to claim 1, characterized in that, The specific data preprocessing process is as follows: Subtract the pseudorange and carrier data of the base station from the pseudorange and carrier data of the rover respectively to obtain differential data; perform cycle slip detection on the differentially processed carrier data to construct a geometry-free and ionosphere-free combination.
3. A carrier phase differential method using a parallel - processable Kalman filter according to claim 1, characterized in that, For a satellite navigation system, there is the following satellite set: Among them, the superscript (i) represents the reference satellite set, and its set size is 1; the superscript (j) represents the other satellite set, and its set size is greater than 3; the superscript (ij) represents the double-differenced satellite set. The specific double-differenced satellite set is as follows: After subtracting the rover data from the base station data, the satellites in the reference satellite set (i) and the satellites in the other satellite set (j) are used to perform pairwise differences on the observations of the same type and the same frequency point one by one; where r1 represents the first reference satellite in the reference satellite set (i), s1, s2,... represent the satellites in the other satellite set (j), and d1, d2,... represent the satellites in the double-differenced satellite set (ij).
4. A carrier phase differential method using a parallel-processable Kalman filter according to claim 3, characterized in that The Kalman filter of the reference satellite is specifically: The Kalman filter of the double-differenced satellite is specifically: Among them, the subscript k represents the timestamp, and the superscript is the set symbol of the reference satellite (i) and the double-differenced satellite (ij); X represents the state vector of the Kalman filter, H represents the design matrix of the Kalman filter, and y represents the observable of the Kalman filter; N1, N2, … represent the carrier ambiguities of each frequency point of this satellite, f1, f2, … represent the frequencies of each frequency point of this satellite, and I1 represents the ionospheric delay of the first frequency point of this satellite; ρ and Δρ represent the satellite-earth distance and its change of this satellite respectively; L1, L2, … represent the carrier observables of each frequency point of this satellite, and P1, P2, … represent the pseudorange observables of each frequency point of this satellite; is the ambiguity of the first frequency point of the double-differenced satellite (ij) at the k-th moment, is the square of the frequency of the first frequency point of the double-differenced satellite (ij), is the carrier observation value of the first frequency point of the double-differenced satellite (ij) at the k-th moment, is the pseudorange observation value of the first frequency point of the double-differenced satellite (ij) at the k-th moment, is the change in the satellite-earth distance of the double-differenced satellite (ij) at the k-th moment, is the ionospheric delay of the first frequency point of the double-differenced satellite (ij) at the k-th moment.
5. A carrier phase differential method using a parallel - processable Kalman filter according to claim 4, characterized in that, For the k-th moment, when there are newly added satellites that need to be initialized, or there are existing satellites that need to be initialized due to cycle slips or loss of lock, the filter initialization process needs to be executed. The specific process of initializing the Kalman filter of the reference satellite is as follows: The specific process of initializing the Kalman filter of the double-differenced satellite is as follows: where the subscript 0 represents the initialization moment, represents the variance of the ambiguity of the first frequency point of the double-difference satellite at the initialization moment, represents the variance of the change in the satellite-earth distance of the double-difference satellite at the initialization moment, represents the variance of the ionospheric delay of the first frequency point of the double-difference satellite at the initialization moment.
6. A carrier phase differential method using a parallel - processable Kalman filter according to claim 5, characterized in that In step S4, the method for referring to satellite transformation is specifically as follows: the old reference satellite i is not in the double-difference satellite list j, that is the new reference satellite i' is obtained by selecting from the double-difference satellite list j, that is, i' ∈ j; the transformation between the old and new reference satellites is carried out through the following process: For the satellites in the double-differenced list j, all except the new reference satellite i' participate in the following process: Among them, after removing the new reference satellite i' from the double-differenced satellite list j, insert the old reference satellite i into the double-differenced satellite list j to obtain a new double-differenced satellite list j'.
7. A carrier phase differential method using a parallel - processable Kalman filter according to claim 6, characterized in that In step S5, the process of updating the Kalman filter, ignoring the superscript (i) of the reference satellite and the superscript (ij) of the double-differenced satellite, is specifically at the k-th moment: Among them, the data of each satellite is stored in its respective Kalman filter, and the update tasks of each Kalman filter are input into the thread pool according to the queue and executed.
8. A carrier phase differential method using a parallel - processable Kalman filter according to claim 1, characterized in that, In step S3, before determining that the reference satellite needs to be transformed, it is necessary to cache the states and covariances of the Kalman filters of the old and new reference satellites.
9. A carrier-phase differential system using a parallel-processable Kalman filter, comprising a memory and a processor, characterized in that, The memory includes a carrier phase differential program that utilizes a parallel - processable Kalman filter. When the carrier phase differential program that utilizes the parallel - processable Kalman filter is executed by the processor, the following steps are implemented: S1. Perform data pre - processing on the input rover data and base - station data to obtain differential data; S2. Use the satellite elevation angle as a selection condition to determine whether the satellite list is empty. If it is not empty, select reference satellites from the reference satellite list and other satellite lists. If the satellite list is empty, do nothing; S3. Determine whether the reference satellite needs to be changed. If the reference satellite needs to be changed, execute step S4. If no change is required, execute step S5; S4. Calculate the frequency - point set of the satellites to be changed, where the satellites to be changed include new reference satellites, old reference satellites, and double - difference satellites, and use the reference - satellite transformation method to complete the reference - satellite transformation of all double - difference satellites; S5 sets the filtered data of different satellites in the Kalman filters of different threads, specifically: stores the filtered data of each satellite of the reference satellite and the double-differenced satellites in their respective Kalman filters, for allocating the part with O(n 3 ) time complexity to each thread to achieve parallel processing; uses the differential data to perform parallel processing on the Kalman filters to complete the update of the Kalman filters, and obtains the updated Kalman filters of each double-differenced satellite; S6. Fix the ambiguity, perform position adjustment on the results of the Kalman filters of each double - difference satellite to obtain the positioning result.
Citation Information
Patent Citations
GNSS dynamic Kalman filtering method in cluster autonomous cooperation
CN111239787A
Method for increasing convergence rate of Kalman filtering RTK floating point solution
CN111965676A