Position solving method, electronic device, storage medium and program product
By solving the initial displacement and integer ambiguity using carrier phase observations, and combining the time-series differential algorithm with the target velocity, the problem of unreliable fixed integer ambiguity in RTK positioning is solved, achieving high-precision and real-time positioning results.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- ZHEJIANG GEELY HLDG GRP CO LTD
- Filing Date
- 2026-03-26
- Publication Date
- 2026-06-09
Smart Images

Figure CN122172247A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of satellite positioning technology, and in particular to a location calculation method, electronic device, storage medium, and program product. Background Technology
[0002] Real-Time Kinematic (RTK) technology reduces various errors in satellite signal propagation by differentially processing carrier phase observations, enabling centimeter-level high-precision positioning. It is widely used in surveying, navigation, and autonomous driving. However, RTK solutions suffer from the problem of unreliable integer ambiguities, leading to non-fixed positioning results that severely restrict the realization of high-reliability positioning.
[0003] In related technologies, a filtering method is used to solve non-fixed solutions in RTK. First, the observation data undergoes quality checks to remove outliers. Then, algorithms such as Kalman filtering and particle filtering are used to process the observation data, yielding the corresponding filtered results. The positioning accuracy and stability are evaluated based on the filtering results. However, this method suffers from low accuracy and time lag issues when solving non-fixed solutions.
[0004] Based on this, a timely and accurate location calculation scheme is provided to improve the reliability of positioning. Summary of the Invention
[0005] This application provides location calculation methods, electronic devices, storage media, and program products to achieve timely and accurate positioning results.
[0006] Firstly, this application provides a location calculation method, including:
[0007] Based on the first carrier phase observation value of the receiver at the first time and the second carrier phase observation value at the second time, the carrier equation is solved to obtain the initial displacement of the receiver between the first time and the second time and the integer ambiguity corresponding to the second time.
[0008] If the integer ambiguity corresponding to the second time step is not fixed as an integer, the initial velocity of the receiver is obtained based on the initial displacement of the receiver.
[0009] When the initial velocity is less than or equal to the velocity threshold, the target time and target position calculation results are obtained by using the time-series difference algorithm based on the target time and target position calculation results when the previous integer ambiguity was fixed as an integer.
[0010] When the initial velocity is greater than the velocity threshold, the receiver's position at the second moment is obtained by using the target velocity and the position calculation result at the first moment.
[0011] In one possible implementation, based on the target time and target position calculation results corresponding to the previous integer ambiguity being fixed as an integer, the receiver's position calculation result at the second time is obtained through a time-series difference algorithm, including:
[0012] From the solution database, obtain a preset number of target times when the integer ambiguity before the second time moment is fixed as an integer, and the target position solution result corresponding to the receiver at each target time moment; wherein, the solution database stores the integer ambiguity at each time moment and the position solution result corresponding to the receiver at each time moment;
[0013] Based on multiple target times and the target position calculation results corresponding to each target time, the position calculation result of the receiver at the second time is obtained through the time-series differential algorithm.
[0014] In one possible implementation, the receiver's position at the second time moment is obtained using the target velocity and the position calculation result at the first time moment, including:
[0015] The receiver acquires multiple speeds that meet the effective speed conditions within a preset time, and obtains multiple target speeds. The effective speed conditions include speeds that are less than or equal to a speed threshold.
[0016] The median target velocity is obtained by calculating the median of multiple target velocities.
[0017] Based on the median target velocity and the position calculation results at the first moment, the position calculation results of the receiver at the second moment are obtained.
[0018] In one possible implementation, if the integer ambiguity corresponding to the second time moment is fixed as an integer, the method further includes: obtaining the position calculation result of the receiver at the second time moment through the initial displacement and the position calculation result of the receiver at the first time moment.
[0019] In one possible implementation, based on the receiver's first carrier phase observation at a first time and the second carrier phase observation at a second time, the carrier equation is solved to obtain the initial displacement of the receiver between the first and second times and the integer ambiguity corresponding to the second time, including:
[0020] Based on the first carrier phase observation value at the first time and the second carrier phase observation value at the second time, the difference between the carrier equations at the first time and the second time is obtained through the carrier equation;
[0021] By solving the difference in the carrier equation, we can obtain the initial displacement of the receiver between the first and second time moments and the integer ambiguity corresponding to the second time moment.
[0022] In one possible implementation, the initial displacement of the receiver between the first and second time moments and the integer ambiguity corresponding to the second time moment are obtained by solving the difference in the carrier equations, including:
[0023] Based on the first carrier phase observation value and the second carrier phase observation value, the first coarse positioning of the receiver at the first time and the second coarse positioning at the second time are obtained.
[0024] Based on the first coarse positioning, the second coarse positioning, and the direction cosine between the receiver and the satellite, the carrier equation difference is linearized to obtain the linear carrier equation between the first and second time moments.
[0025] Solving the linear carrier equation yields the initial displacement of the receiver between the first and second time points and the integer ambiguity corresponding to the second time point.
[0026] Secondly, this application provides a location calculation device, comprising:
[0027] The processing module is used to solve the carrier equation based on the first carrier phase observation value of the receiver at the first time and the second carrier phase observation value at the second time, so as to obtain the initial displacement of the receiver between the first time and the second time and the integer ambiguity corresponding to the second time.
[0028] The positioning module is used to: if the integer ambiguity corresponding to the second time step is not fixed as an integer, obtain the initial velocity of the receiver based on the initial displacement of the receiver; if the initial velocity is less than or equal to a velocity threshold, obtain the position calculation result of the receiver at the second time step using a time-series difference algorithm based on the target time and target position calculation result when the previous integer ambiguity was fixed as an integer; if the initial velocity is greater than the velocity threshold, obtain the position calculation result of the receiver at the second time step using the target velocity and the position calculation result at the first time step.
[0029] In one possible implementation, the positioning module is specifically used for:
[0030] From the solution database, obtain a preset number of target times when the integer ambiguity before the second time moment is fixed as an integer, and the target position solution result corresponding to the receiver at each target time moment; wherein, the solution database stores the integer ambiguity at each time moment and the position solution result corresponding to the receiver at each time moment;
[0031] Based on multiple target times and the target position calculation results corresponding to each target time, the position calculation result of the receiver at the second time is obtained through the time-series differential algorithm.
[0032] In one possible implementation, the positioning module is specifically used for:
[0033] The receiver acquires multiple speeds that meet the effective speed conditions within a preset time, and obtains multiple target speeds. The effective speed conditions include speeds that are less than or equal to a speed threshold.
[0034] The median target velocity is obtained by calculating the median of multiple target velocities.
[0035] Based on the median target velocity and the position calculation results at the first moment, the position calculation results of the receiver at the second moment are obtained.
[0036] In one possible implementation, if the integer ambiguity corresponding to the second time moment is fixed as an integer, the positioning module is further configured to: obtain the position calculation result of the receiver at the second time moment by using the initial displacement and the position calculation result of the receiver at the first time moment.
[0037] In one possible implementation, the processing module is specifically used for:
[0038] Based on the first carrier phase observation value at the first time and the second carrier phase observation value at the second time, the difference between the carrier equations at the first time and the second time is obtained through the carrier equation;
[0039] By solving the difference in the carrier equation, we can obtain the initial displacement of the receiver between the first and second time moments and the integer ambiguity corresponding to the second time moment.
[0040] In one possible implementation, the processing module is further configured to:
[0041] Based on the first carrier phase observation value and the second carrier phase observation value, the first coarse positioning of the receiver at the first time and the second coarse positioning at the second time are obtained.
[0042] Based on the first coarse positioning, the second coarse positioning, and the direction cosine between the receiver and the satellite, the carrier equation difference is linearized to obtain the linear carrier equation between the first and second time moments.
[0043] Solving the linear carrier equation yields the initial displacement of the receiver between the first and second time points and the integer ambiguity corresponding to the second time point.
[0044] Thirdly, this application provides an electronic device, including: a memory and a processor;
[0045] The memory stores instructions that the computer executes;
[0046] The processor executes computer execution instructions stored in memory, causing the processor to perform the first aspect and / or various possible implementations of the first aspect as described above.
[0047] Fourthly, this application provides a computer-readable storage medium storing computer-executable instructions, which, when executed by a processor, are used to implement the first aspect and / or various possible embodiments of the first aspect.
[0048] Fifthly, this application provides a computer program product, including a computer program that, when executed by a processor, implements the first aspect and / or various possible implementations of the first aspect.
[0049] The position calculation method, electronic device, storage medium, and program product provided in this application can provide basic data for analyzing the receiver's motion state by accurately obtaining the initial displacement of the receiver between the first and second moments. By accurately obtaining the integer ambiguity, the carrier phase observation value can be accurately converted into distance information, thereby achieving high-precision positioning. If the integer ambiguity corresponding to the second moment is not fixed as an integer, the initial velocity of the receiver can be obtained based on the initial displacement; this helps to determine the receiver's motion state, thereby selecting an appropriate position calculation method according to different motion states, improving the accuracy and reliability of positioning. When the initial velocity is less than or equal to a velocity threshold, based on the target time and target position calculation results corresponding to the previous integer ambiguity being fixed as an integer, a time-series difference algorithm effectively eliminates common errors, improving the accuracy of the position calculation at the second moment, thus obtaining a more accurate position calculation result for the receiver at the second moment. When the initial velocity is greater than the velocity threshold, the position calculation result at the second moment can be quickly obtained through the target velocity and the position calculation result at the first moment, improving the real-time performance and accuracy of the position calculation. In summary, this achieves timely and accurate positioning. Attached Figure Description
[0050] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this application and, together with the description, serve to explain the principles of this application.
[0051] Figure 1 A schematic diagram of a scenario for the position calculation method provided in the embodiments of this application;
[0052] Figure 2 A flowchart illustrating the position calculation method provided in this application embodiment. Figure 1 ;
[0053] Figure 3 A flowchart illustrating the position calculation method provided in this application embodiment. Figure 2 ;
[0054] Figure 4 This is a schematic diagram of the position calculation device provided in the embodiments of this application;
[0055] Figure 5 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application.
[0056] The accompanying drawings illustrate specific embodiments of this application, which will be described in more detail below. These drawings and descriptions are not intended to limit the scope of the concept in any way, but rather to illustrate the concept of this application to those skilled in the art through reference to particular embodiments. Detailed Implementation
[0057] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numbers in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this application. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this application as detailed in the appended claims.
[0058] In related technologies, a filtering method is used to solve non-fixed solutions in RTK. First, the observation data undergoes quality checks to remove outliers. Then, algorithms such as Kalman filtering and particle filtering are used to process the observation data, yielding the corresponding filtered results. The positioning accuracy and stability are evaluated based on the filtering results. However, this method suffers from low accuracy and time lag issues when solving non-fixed solutions.
[0059] The position calculation method provided in this application obtains the initial velocity of the receiver based on its initial displacement. This helps determine the receiver's motion state, allowing for the selection of an appropriate position calculation method based on different motion states, thereby improving the accuracy and reliability of positioning. When the initial velocity is less than or equal to a velocity threshold, based on the target time and target position calculation results corresponding to the previous integer ambiguity, a temporal difference algorithm is used to effectively eliminate common errors, improving the accuracy of the position calculation at the second time moment, thus obtaining a more accurate position calculation result for the receiver at the second time moment. When the initial velocity is greater than the velocity threshold, the position calculation result at the second time moment can be quickly obtained using the target velocity and the position calculation result at the first time moment, improving the real-time performance and accuracy of position calculation. In summary, this achieves timely and accurate positioning.
[0060] Figure 1 This is a schematic diagram illustrating a scenario for the location calculation method provided in an embodiment of this application. For example... Figure 1 As shown, the specific application scenario of this application includes multiple receivers 11 and multiple satellites 12, wherein:
[0061] Receiver 11 is communicatively connected to multiple satellites 12. The multiple satellites 12 establish communication channels with receiver 12 and transmit carrier messages to receiver 12 through these channels. Receiver 11 receives the carrier messages transmitted by the multiple satellites 12 and performs position calculations based on the information in the carrier messages to obtain its accurate position.
[0062] The technical solution of this application and how the technical solution of this application solves the above-mentioned technical problems are described in detail below with specific embodiments. These specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments. The embodiments of this application will now be described with reference to the accompanying drawings.
[0063] Figure 2 A flowchart illustrating the position calculation method provided in this application embodiment. Figure 1 .like Figure 2 As shown, the method includes:
[0064] S201. Based on the first carrier phase observation value of the receiver at the first time and the second carrier phase observation value at the second time, the carrier equation is solved to obtain the initial displacement of the receiver between the first time and the second time and the integer ambiguity corresponding to the second time.
[0065] A receiver is a device used in a satellite navigation and positioning system to receive satellite signals. Receivers perform operations such as positioning and speed measurement by receiving carrier signals transmitted by satellites. Optionally, the receiver can be any device capable of receiving satellite signals, such as a vehicle, drone, or mobile phone.
[0066] Carrier phase observations are phase measurements of the satellite carrier signal received by the receiver. They contain signal information transmitted from the satellite to the receiver. First and second carrier phase observations are used to distinguish carrier phase observations at different times. Specifically, the carrier phase observation at the first moment is called the first carrier phase observation, and the carrier phase observation at the second moment is called the second carrier phase observation.
[0067] Integer ambiguity refers to the number of complete cycles of the carrier phase during propagation. Integer ambiguity is an integer. However, due to the periodicity of the carrier signal, in actual position calculation, the receiver cannot directly determine the number of complete cycles during signal propagation; that is, it may not be possible to determine the integer ambiguity as an integer. When the integer ambiguity cannot be determined as an integer, the position calculation is a non-fixed solution; when the integer ambiguity can be determined as an integer, the position calculation is a fixed solution.
[0068] The initial displacement is the change in the receiver's position between the first and second moments, obtained based on carrier phase observations. It can roughly reflect the receiver's movement between the first and second moments.
[0069] Based on the first carrier phase observation value acquired by the receiver at the first moment and the second carrier phase observation value acquired at the second moment, a carrier equation is constructed. Then, through mathematical operations and processing, the carrier equation is solved to accurately obtain the initial displacement of the receiver between the first and second moments, as well as the integer ambiguity corresponding to the second moment. The initial displacement provides fundamental data for analyzing the receiver's motion state. By accurately determining the integer ambiguity, the carrier phase observation values can be accurately converted into distance information, thereby achieving high-precision positioning.
[0070] For example, the receiver is a drone. The drone receives satellite signals from four satellites at the first and second moments during its flight. Based on the satellite signals received by the drone at the first moment, a first carrier phase observation is obtained. Based on the satellite signals received by the drone at the second moment, a second carrier phase observation is obtained. Then, a carrier equation is constructed based on the first and second carrier phase observations. A Kalman filter algorithm is used to solve the carrier equation. Through the state estimation and update process of the Kalman filter, the true solution is gradually approximated, ultimately obtaining the initial displacement of the drone between the first and second moments and the integer ambiguity corresponding to the second moment, providing data support for the drone's precise navigation.
[0071] S202. If the integer ambiguity corresponding to the second time moment is not fixed as an integer, the initial velocity of the receiver is obtained based on the initial displacement and elevation velocity threshold of the receiver.
[0072] The initial velocity is the average velocity of the receiver between the first and second moments, calculated based on the time difference between the first and second moments and the initial displacement of the receiver. The initial velocity reflects how fast the receiver moves between the first and second moments.
[0073] If the integer ambiguity corresponding to the second moment is not fixed as an integer, it indicates that there is uncertainty in the determination of the integer ambiguity, which means that the positioning result may deviate significantly from the actual result, making it impossible to accurately locate the position of the receiver, and thus making the positioning result lack stability and reliability.
[0074] Based on the receiver's initial displacement, the vertical displacement components of the receiver at the first and second moments are obtained, along with the vertical elevation difference between the two moments. Then, based on the time difference and elevation difference between the first and second moments, a preliminary estimate of the receiver's initial velocity is made, providing reference information for subsequent position calculation. Obtaining the initial velocity helps determine the receiver's motion state, allowing for the selection of an appropriate position calculation method based on different motion states, thus improving the accuracy and reliability of positioning. Optionally, the receiver's motion state can include any of the following: stationary, slow motion, and fast motion.
[0075] S203. When the initial velocity is less than or equal to the velocity threshold, the target time and target position calculation results corresponding to the previous integer ambiguity were obtained by using the time-series differential algorithm to obtain the position calculation result of the receiver at the second time.
[0076] The velocity threshold is a pre-set limit on velocity in the altitude direction. It is used to determine whether the receiver's altitude change within the first and second time points is within a reasonable range. The temporal differential algorithm can eliminate or reduce common errors and improve positioning accuracy by differentially processing the target time and target position calculation results. The target time is the time corresponding to the last time the integer ambiguity was fixed as an integer. The target position calculation result is the receiver's position calculation result at the target time, representing the receiver's accurate position information at that time.
[0077] When the initial velocity is less than or equal to a preset velocity threshold, it indicates that the receiver's movement speed is slow. Using the target time and position calculation results from the previous integer ambiguity calculation, a temporal difference algorithm is employed. The temporal difference algorithm typically uses the target time's position calculation result as a reference, combining the time interval between the second and target times with the receiver's initial displacement to effectively eliminate common errors and improve the accuracy of the second time's position calculation, thus obtaining a more accurate position calculation result for the receiver at the second time. When the initial velocity is less than or equal to the preset velocity threshold, the receiver's position change between the first and second times is relatively small, allowing the temporal difference algorithm to function better and making the obtained position calculation result for the receiver at the second time more reliable.
[0078] S204. When the initial velocity is greater than the velocity threshold, the position calculation result of the receiver at the second moment is obtained by using the target velocity and the position calculation result at the first moment.
[0079] The target velocity is the velocity value used to calculate the position of the receiver. Optionally, the target velocity is a reasonable velocity estimate set based on the receiver's motion characteristics or application scenario. Optionally, the target velocity is the average velocity of the receiver over a previous period of time. For example, the target velocity is the average velocity of the receiver over the 2 seconds between the second and third moments.
[0080] The position calculation result at the first moment is the position information of the receiver at the first moment.
[0081] When the calculated initial velocity exceeds a preset velocity threshold, it indicates that the receiver's movement speed is too fast, and the position change of the receiver between the first and second moments is significant, making it impossible for the timing difference algorithm to effectively eliminate the error. Therefore, assuming the receiver moves at a constant linear velocity between the first and second moments, the position calculation result at the second moment is calculated based on the position calculation result at the first moment, the target velocity, and the time interval. This allows for rapid acquisition of the position calculation result at the second moment, improving the real-time performance and accuracy of the position calculation.
[0082] The position calculation method provided in this application provides basic data for analyzing the receiver's motion state by accurately obtaining the initial displacement of the receiver between the first and second moments. By accurately obtaining the integer ambiguity, the carrier phase observation can be accurately converted into distance information, thereby achieving high-precision positioning. If the integer ambiguity corresponding to the second moment is not fixed as an integer, the initial velocity of the receiver is obtained based on the initial displacement; this helps determine the receiver's motion state, allowing for the selection of an appropriate position calculation method based on different motion states, thus improving the accuracy and reliability of positioning. When the initial velocity is less than or equal to a velocity threshold, based on the target moment and target position calculation results corresponding to the previous integer ambiguity being fixed as an integer, a time-series difference algorithm effectively eliminates common errors, improving the accuracy of the position calculation at the second moment, thereby obtaining a more accurate position calculation result for the receiver at the second moment. When the initial velocity is greater than the velocity threshold, the position calculation result at the second moment can be quickly obtained using the target velocity and the position calculation result at the first moment, improving the real-time performance and accuracy of the position calculation. In summary, this achieves timely and accurate positioning.
[0083] Figure 3 A flowchart illustrating the position calculation method provided in this application embodiment. Figure 2 .like Figure 3 As shown, in this embodiment... Figure 2 Based on the embodiments, the position calculation method is described in detail, which includes:
[0084] In one possible implementation, step S201 may further include:
[0085] S2011. Based on the first carrier phase observation value at the first time and the second carrier phase observation value at the second time, the carrier equation difference between the first time and the second time is obtained through the carrier equation.
[0086] The carrier equation is a mathematical equation used to describe the relationship between carrier phase observations and the distance between the satellite and the receiver. The carrier equation typically includes parameters such as satellite position, receiver position, and signal propagation time, establishing a relationship between carrier phase observations and the geometric distance between the satellite and the receiver.
[0087] The carrier equation difference reflects the change in carrier phase relationship between the first and second time points due to factors such as changes in receiver position.
[0088] First, the first carrier phase observation value at the first time step and the second carrier phase observation value at the second time step are obtained. Then, the first carrier phase observation value at the first time step is substituted into a pre-determined carrier equation to obtain the first carrier equation; the second carrier phase observation value is substituted into the carrier equation to obtain the second carrier equation. Next, the difference between the first and second carrier equations is calculated to obtain the carrier equation difference between the first and second time steps. By calculating the carrier equation difference, some time-independent fixed error factors can be eliminated, highlighting the carrier phase change information caused by receiver position changes, providing crucial data for subsequent accurate calculation of receiver displacement. Optionally, fixed error factors include at least one of the factors that partially affect the carrier phase observation values, such as satellite clock bias and receiver clock bias.
[0089] For example, when the carrier phase observation value is at the first frequency point, the first carrier phase observation value at the first moment is substituted into the pre-determined carrier equation to obtain the first carrier equation. It can be represented as:
[0090]
[0091] in, This indicates the geometric distance between the receiver and the satellite at the first moment; This indicates the satellite clock difference between the satellite clock and the system time at the first moment; This represents the receiver clock difference between the receiver time and the system time at the first moment; This indicates the phase measurement deviation caused by the satellite hardware at the first moment; This indicates the ionospheric error delay caused by changes in electron density when the signal passes through the ionosphere at the first moment. This indicates the oblique tropospheric delay caused by atmospheric conditions when the signal passes through the troposphere at the first moment; Indicates the wavelength of the carrier signal at the first moment; The integer ambiguity at the first moment represents the integer part of the carrier phase measurement. The unit is week. Furthermore, , , , , , and The unit for all of them is meters.
[0092] Similarly, the second carrier equation It can be represented as:
[0093]
[0094] in, This indicates the geometric distance between the receiver and the satellite at the second moment; This indicates the satellite clock difference between the satellite clock and the system time at the second moment; This represents the receiver clock difference between the receiver time and the system time at the second moment; This indicates the phase measurement deviation caused by the satellite hardware at the second moment; This indicates the ionospheric error delay caused by the change in electron density when the signal passes through the ionosphere at the second moment; This indicates the oblique tropospheric delay caused by atmospheric conditions when the signal passes through the troposphere at the second moment; This represents the wavelength of the carrier signal at the second moment; The integer ambiguity at the second time point represents the integer part of the carrier phase measurement, with the unit of integer ambiguity being cycles. Furthermore, , , , , , and The units are all meters.
[0095] Subsequently, since the atmospheric errors between the first and second moments are similar, it can be assumed that the delay in signal transmission through the ionosphere at the second moment is due to ionospheric error caused by changes in electron density. The ionospheric error delay caused by the change in electron density when the signal passes through the ionosphere at the first moment. Same; the second moment signal experiences a tropospheric delay due to atmospheric conditions as it passes through the troposphere. The oblique tropospheric delay caused by atmospheric conditions when the first signal passes through the troposphere. Same. Phase measurement deviation caused by satellite hardware at the first moment. Phase measurement deviation caused by satellite hardware between the second and second time points The same applies. The first carrier equation... Second carrier equation By subtracting the two time points, we obtain the difference in the carrier equations between the first and second time points. It can be represented as:
[0096]
[0097] in, This represents the change in receiver clock error between the first and second time points; This represents the change in satellite clock bias between the first and second time points.
[0098] Optionally, the satellite clock bias at the first moment is obtained by fitting the clock rate and clock drift polynomials in the navigation message received by the receiver at the first moment; the satellite clock bias at the second moment is obtained by fitting the clock rate and clock drift polynomials in the navigation message received by the receiver at the second moment. This allows the determination of the change in satellite clock bias between the first and second moments. .
[0099] S2012. By solving the difference in the carrier equation, the initial displacement of the receiver between the first and second time moments and the integer ambiguity corresponding to the second time moment are obtained.
[0100] The initial displacement refers to the change in the receiver's position between the first and second moments.
[0101] Using the known carrier equation difference, the carrier equation difference is solved mathematically. During the solution process, the initial displacement and integer ambiguity are treated as unknowns. Through continuous iteration and optimization, the error between the calculated carrier equation difference and the actual measured carrier equation difference is minimized. This yields the initial displacement of the receiver between the first and second time moments and the corresponding integer ambiguity at the second time moment. Accurately obtaining the initial displacement allows for more precise tracking of the receiver's motion state, improving the real-time performance and accuracy of navigation and positioning. Accurately determining the integer ambiguity at the second time moment eliminates integer uncertainty in carrier phase measurements, enabling carrier phase observations to more accurately reflect the true distance between the satellite and the receiver, thus significantly improving positioning accuracy and meeting the needs of high-precision navigation and positioning applications.
[0102] Optionally, mathematical methods for solving the carrier equation difference include any one of the following: least squares method, Kalman filtering, etc.
[0103] In one possible implementation, step S203 may further include:
[0104] S2031. Obtain from the solution database a preset number of target times when the integer ambiguity before the second time is fixed to an integer, and the target position solution result corresponding to the receiver at each target time; wherein, the solution database stores the integer ambiguity at each time and the position solution result corresponding to the receiver at each time.
[0105] The solution database stores satellite navigation and positioning data. For example, the solution database stores the integer ambiguity of the receiver at each time point and the corresponding position solution result.
[0106] The target time represents the moment before the second time when the integer ambiguity is successfully fixed to an integer. The position calculation result at the target time is relatively accurate and reliable, and can be used as reference data for position calculation. The preset quantity is the number of target times to be acquired beforehand. Acquiring a preset number of target times allows for the use of sufficient historical data to improve the accuracy and reliability of the current position calculation. The preset quantity can be any integer. For example, the preset quantity is 30.
[0107] The target position calculation result represents the receiver's position information calculated based on satellite signals and relevant positioning algorithms at the target time. Optionally, the position information includes coordinate values such as longitude, latitude, and elevation.
[0108] When the integer value of the integer ambiguity can be accurately determined, the integer ambiguity is said to be fixed as an integer. First, the time period before the second moment is searched in the solution database in chronological order, and moments where the integer ambiguity is fixed as an integer are selected, resulting in a predetermined number of target moments. Then, the receiver position calculation results corresponding to the target moments are extracted from the solution database, yielding the target position calculation result for each receiver at each target moment. In cases where the observation data quality is poor or interference exists at the current moment, the target moment and target position calculation results can provide important reference and correction information, helping to improve the accuracy and stability of the position calculation.
[0109] S2032. Based on multiple target times and the target position calculation results corresponding to each target time, the position calculation result of the receiver at the second time is obtained through the time-series differential algorithm.
[0110] By analyzing the changes in the target position calculation results at multiple target times over time, a mathematical relationship model between the target position calculation results at multiple target times and time is established using a time-series difference algorithm. Then, the position calculation result of the receiver at the second time time is calculated based on the mathematical relationship model.
[0111] First, the position calculation results for multiple target times are organized and analyzed, and the position change between adjacent target times is calculated to obtain the position difference. Then, based on the position difference and the time interval, a mathematical model of the position difference changing with time is established. Optionally, the data model can be at least one of linear models, polynomial models, etc.
[0112] Then, the time interval between the second time and the nearest target time is substituted into the established mathematical model to calculate the position difference of the receiver at the second time relative to the nearest target time. Then, combined with the position solution result of the nearest target time, the position solution result of the receiver at the second time is obtained.
[0113] The temporal difference algorithm can fully utilize the changing trends of historical location data to predict and correct the current position. It fully considers the changing patterns of position over time, effectively reducing the impact of random errors and noise on the position calculation results, thus improving the accuracy and reliability of the position calculation. Furthermore, in the dynamic positioning of receivers, it can track the receiver's motion state in real time, providing more accurate position information.
[0114] For example, the second time point is compared with the nearest target time point. Substituting the time intervals into the established mathematical model, the position difference of the receiver at the second moment relative to the nearest target moment is calculated. Then, combined with the position calculation results of the most recent target time, The position calculation result of the receiver at the second time point is obtained. for:
[0115]
[0116] Furthermore, based on multiple target times and the target position calculation results corresponding to each target time, the position calculation result of the receiver at the next time step is obtained through a time-series difference algorithm. This includes substituting the time interval between the second time step and the next time step into the established mathematical model to calculate the position difference of the receiver at the next time step relative to the second time step. Then, combined with the position calculation results of the most recent second time step, This yields the receiver's position calculation result for the next moment.
[0117]
[0118] In one possible implementation, step S204 may further include:
[0119] S2041. Obtain multiple speeds that meet the effective speed conditions within a preset time period, and obtain multiple target speeds. The effective speed conditions include speeds less than or equal to speed thresholds.
[0120] The preset time is used to limit the time interval for acquiring receiver speed data. The preset time can be any duration, such as 1 second, 5 seconds, 2 minutes, 5 minutes, or 1 hour. For example, the preset time can be 2 seconds.
[0121] The effective speed condition is used to filter receiver speeds. Speeds less than or equal to a specified speed threshold are considered effective speeds, excluding abnormally high speeds or speeds that do not conform to normal motion patterns. The target speed is the receiver speed that meets the effective speed condition within a preset time.
[0122] First, multiple speeds collected within a preset time period are acquired and combined. Then, based on the valid speed conditions, each speed is sequentially judged to see if it meets the valid speed conditions. The speeds that meet the valid speed conditions are taken as target speeds, resulting in multiple target speeds. This process eliminates abnormally high-speed data caused by interference factors such as signal interference or measurement errors during the motion of the receiver, and obtains multiple target speeds that conform to the normal motion state, thereby improving the accuracy and reliability of the data.
[0123] S2042. The median target velocity is obtained by calculating the median of multiple target velocities.
[0124] After arranging multiple target velocities in ascending order, the median value is obtained. If the number of target velocities is odd, the median is the middle number after arranging them in ascending order; if the number of target velocities is even, the median is the average of the two middle numbers after arranging them in ascending order. The median target velocity is not sensitive to extreme values in the data, can better reflect the central tendency of velocity, further reduces the impact of abnormal velocity values on the overall data, and more accurately reflects the typical motion velocity of the receiver within a preset time, which helps to improve the accuracy of position calculation.
[0125] S2043. Based on the median target velocity and the position calculation results at the first moment, the position calculation results of the receiver at the second moment are obtained.
[0126] Assuming the receiver moves at a constant velocity in a straight line between the first and second moments, the receiver's displacement during this time is calculated based on the median target velocity and the time interval between the first and second moments. Then, this displacement is compared with the position calculation result at the first moment to obtain the receiver's position calculation result at the second moment, enabling a fast and relatively accurate determination of the receiver's position at the second moment.
[0127] For example, the displacement of the receiver between the first and second moments is determined based on the median target velocity. Then, the displacement is compared with the position calculation results at the first moment. The summation yields the receiver's position at the second time point. for:
[0128]
[0129] In one possible implementation, if the integer ambiguity corresponding to the second time moment is fixed as an integer, the method further includes: obtaining the position calculation result of the receiver at the second time moment through the initial displacement and the position calculation result of the receiver at the first time moment.
[0130] When the integer ambiguity corresponding to the second time step is successfully fixed as an integer, it indicates that the integer number of carrier phase propagation cycles has been accurately determined during carrier phase positioning, eliminating integer uncertainty in carrier phase measurement and enabling high-precision positioning based on carrier phase. Using the initial displacement and the receiver's position calculation result at the first time step, coordinate calculations can more accurately deduce the position at the second time step, yielding the receiver's position calculation result at the second time step.
[0131] In one possible implementation, step S2012 may further include:
[0132] Step A: Based on the first carrier phase observation value and the second carrier phase observation value, obtain the first coarse positioning of the receiver at the first time and the second coarse positioning at the second time.
[0133] Using the Standard Point Positioning (SPP) algorithm, based on the first and second carrier phase observations, the receiver's first coarse position at the first time moment and its second coarse position at the second time moment are obtained. The first coarse position is the approximate position of the receiver at the first time moment; the second coarse position is the approximate position of the receiver at the second time moment.
[0134] Step B: Based on the first coarse positioning, the second coarse positioning, and the direction cosine between the receiver and the satellite, linearize the carrier equation difference to obtain the linear carrier equation between the first and second time moments.
[0135] The direction cosine between the receiver and the satellite is calculated to determine the components of the satellite signal propagation direction on each coordinate axis. The first coarse positioning, the second coarse positioning, and the direction cosine are substituted into the carrier equation difference. Then, mathematical methods such as Taylor expansion are used to linearize the carrier equation difference near the first coarse positioning, resulting in a linear carrier equation concerning the receiver's position change between the first and second time points, as well as unknowns such as integer ambiguity. This transforms the originally complex nonlinear equation problem into a relatively simple linear equation problem, improving computational efficiency and real-time positioning performance.
[0136] For example, the linear carrier equation between the first and second time points It can be represented as:
[0137]
[0138] in, For the second coarse positioning, Indicates the first coarse positioning. The matrix representing the change between the receiver at the second moment and the second carrier phase observation; The matrix representing the change between the receiver's phase observation at the first moment and the second carrier phase observation; This represents the change in receiver clock error between the first and second time points.
[0139] Step C: Solve the linear carrier equation to obtain the initial displacement of the receiver between the first and second time moments and the integer ambiguity corresponding to the second time moment.
[0140] The linear carrier equation is solved using mathematical methods. By minimizing the sum of squared residuals, the values of the initial displacement and integer ambiguity that best satisfy the linear carrier equation are determined. Thus, the initial displacement of the receiver between the first and second time moments and the integer ambiguity corresponding to the second time moment are obtained.
[0141] Figure 4 This is a schematic diagram of the position calculation device provided in an embodiment of this application. Figure 4 As shown, the position calculation device 40 provided in this embodiment includes:
[0142] Processing module 401 is used to solve the carrier equation based on the first carrier phase observation value of the receiver at the first time and the second carrier phase observation value at the second time, so as to obtain the initial displacement of the receiver between the first time and the second time and the integer ambiguity corresponding to the second time.
[0143] The positioning module 402 is used to: if the integer ambiguity corresponding to the second time step is not fixed as an integer, obtain the initial velocity of the receiver based on the initial displacement of the receiver; if the initial velocity is less than or equal to a velocity threshold, obtain the position calculation result of the receiver corresponding to the second time step by using a time-series difference algorithm based on the target time and target position calculation result corresponding to the previous time step when the integer ambiguity was fixed as an integer; and if the initial velocity is greater than the velocity threshold, obtain the position calculation result of the receiver corresponding to the second time step by using the target velocity and the position calculation result of the first time step.
[0144] In one possible implementation, the positioning module 402 is specifically used for:
[0145] From the solution database, obtain a preset number of target times when the integer ambiguity before the second time moment is fixed as an integer, and the target position solution result corresponding to the receiver at each target time moment; wherein, the solution database stores the integer ambiguity at each time moment and the position solution result corresponding to the receiver at each time moment;
[0146] Based on multiple target times and the target position calculation results corresponding to each target time, the position calculation result of the receiver at the second time is obtained through the time-series differential algorithm.
[0147] In one possible implementation, the positioning module 402 is specifically used for:
[0148] The receiver acquires multiple speeds that meet the effective speed conditions within a preset time, and obtains multiple target speeds. The effective speed conditions include speeds that are less than or equal to a speed threshold.
[0149] The median target velocity is obtained by calculating the median of multiple target velocities.
[0150] Based on the median target velocity and the position calculation results at the first moment, the position calculation results of the receiver at the second moment are obtained.
[0151] In one possible implementation, if the integer ambiguity corresponding to the second time moment is fixed as an integer, the positioning module 402 is further configured to: obtain the position calculation result corresponding to the receiver at the second time moment through the initial displacement and the position calculation result corresponding to the receiver at the first time moment.
[0152] In one possible implementation, the processing module 401 is specifically used for:
[0153] Based on the first carrier phase observation value at the first time and the second carrier phase observation value at the second time, the difference between the carrier equations at the first time and the second time is obtained through the carrier equation;
[0154] By solving the difference in the carrier equation, we can obtain the initial displacement of the receiver between the first and second time moments and the integer ambiguity corresponding to the second time moment.
[0155] In one possible implementation, the processing module 401 is further configured to:
[0156] Based on the first carrier phase observation value and the second carrier phase observation value, the first coarse positioning of the receiver at the first time and the second coarse positioning at the second time are obtained.
[0157] Based on the first coarse positioning, the second coarse positioning, and the direction cosine between the receiver and the satellite, the carrier equation difference is linearized to obtain the linear carrier equation between the first and second time moments.
[0158] Solving the linear carrier equation yields the initial displacement of the receiver between the first and second time points and the integer ambiguity corresponding to the second time point.
[0159] The location calculation device provided in this embodiment can execute the method provided in the above method embodiment. Its implementation principle and technical effect are similar, and will not be described in detail here.
[0160] Figure 5 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Figure 5 As shown, the electronic device 50 provided in this embodiment includes at least one processor 501 and a memory 502. Optionally, the device 50 further includes a communication component 503. The processor 501, memory 502, and communication component 503 are connected via a bus 504.
[0161] In a specific implementation, at least one processor 501 executes computer execution instructions stored in memory 502, causing at least one processor 501 to perform the above-described method.
[0162] The specific implementation process of processor 501 can be found in the above method embodiments, and its implementation principle and technical effect are similar. It will not be repeated here.
[0163] In the above embodiments, it should be understood that the processor can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), etc. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in this invention can be directly implemented by a hardware processor, or implemented by a combination of hardware and software modules within the processor.
[0164] The memory may include random access memory (RAM) and may also include non-volatile memory (NVM), such as at least one disk storage device.
[0165] The bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of illustration, the buses shown in the accompanying drawings of this application's embodiments are not limited to only one bus or one type of bus.
[0166] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the above-described method.
[0167] This application also provides a computer-readable storage medium storing computer-executable instructions, which, when executed, implement any of the methods described above.
[0168] The aforementioned readable storage medium can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as Static Random-Access Memory (SRAM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Erasable Programmable Read-Only Memory (EPROM), Programmable Read-Only Memory (PROM), Read-Only Memory (ROM), magnetic storage, flash memory, magnetic disk, or optical disk. The readable storage medium can be any available medium accessible to a general-purpose or special-purpose computer.
[0169] An exemplary readable storage medium is coupled to a processor, enabling the processor to read information from and write information to the readable storage medium. Of course, the readable storage medium can also be a component of the processor. The processor and the readable storage medium can reside in an application-specific integrated circuit (ASIC). Alternatively, the processor and the readable storage medium can exist as discrete components in the device.
[0170] The division of units is merely a logical functional division; in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be indirect coupling or communication connection through some interfaces, devices, or units, and may be electrical, mechanical, or other forms.
[0171] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0172] In addition, the functional units in the various embodiments of the present invention can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.
[0173] If a function is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this invention, or the part that contributes to the prior art, or a part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of the various embodiments of this invention. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0174] Those skilled in the art will understand that all or part of the steps of the above-described method embodiments can be implemented by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When executed, the program performs the steps of the above-described method embodiments; and the aforementioned storage medium includes various media capable of storing program code, such as ROM, RAM, magnetic disks, or optical disks.
[0175] Finally, it should be noted that other embodiments of the invention will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This invention is intended to cover any variations, uses, or adaptations of the invention that follow the general principles of the invention and include common knowledge or customary techniques in the art not disclosed herein, and is not limited to the precise structures described above and shown in the accompanying drawings, and various modifications and changes can be made without departing from its scope. The scope of the invention is limited only by the appended claims.
Claims
1. A method for calculating position, characterized in that, include: Based on the first carrier phase observation value of the receiver at the first time and the second carrier phase observation value at the second time, the carrier equation is solved to obtain the initial displacement of the receiver between the first time and the second time and the integer ambiguity corresponding to the second time. If the integer ambiguity corresponding to the second moment is not fixed as an integer, then the initial velocity of the receiver is obtained based on the initial displacement of the receiver. When the initial velocity is less than or equal to the velocity threshold, the target time and target position calculation results corresponding to the previous integer ambiguity being fixed as an integer are used to obtain the position calculation result of the receiver at the second time through a time-series difference algorithm. When the initial velocity is greater than the velocity threshold, the position calculation result of the receiver at the second moment is obtained by using the target velocity and the position calculation result at the first moment.
2. The method according to claim 1, characterized in that, The step of obtaining the receiver's position at the second time based on the target time and target position calculation results corresponding to the previous integer ambiguity calculation, using a time-difference algorithm, includes: From the solution database, obtain a preset number of target times when the integer ambiguity is fixed to an integer before the second time moment, and the target position solution result corresponding to the receiver at each target time moment; wherein, the solution database stores the integer ambiguity at each time moment and the position solution result corresponding to the receiver at each time moment; Based on multiple target times and the target position calculation results corresponding to each target time, the position calculation result corresponding to the receiver at the second time is obtained through a time-series differential algorithm.
3. The method according to claim 1, characterized in that, The step of obtaining the receiver's position at the second moment by using the target velocity and the position calculation result at the first moment includes: The receiver acquires multiple speeds that meet the effective speed conditions within a preset time period to obtain multiple target speeds, wherein the effective speed conditions include speeds less than or equal to a speed threshold. The median target velocity is obtained by calculating the median of multiple target velocities; Based on the median target velocity and the position calculation result at the first moment, the position calculation result of the receiver at the second moment is obtained.
4. The method according to claim 1, characterized in that, If the integer ambiguity corresponding to the second time moment is fixed as an integer, the method further includes: obtaining the position calculation result corresponding to the receiver at the second time moment by using the initial displacement and the position calculation result corresponding to the receiver at the first time moment.
5. The method according to claim 1, characterized in that, The process involves solving the carrier equation based on the receiver's first carrier phase observation at a first time and the second carrier phase observation at a second time, to obtain the receiver's initial displacement between the first and second times and the integer ambiguity corresponding to the second time, including: Based on the first carrier phase observation value at the first time and the second carrier phase observation value at the second time, the carrier equation difference between the first time and the second time is obtained through the carrier equation; By solving the difference in the carrier equation, the initial displacement of the receiver between the first time moment and the second time moment and the integer ambiguity corresponding to the second time moment are obtained.
6. The method according to claim 5, characterized in that, The step of obtaining the initial displacement of the receiver between the first time moment and the second time moment and the integer ambiguity corresponding to the second time moment by solving the carrier equation difference includes: Based on the first carrier phase observation value and the second carrier phase observation value, the first coarse positioning of the receiver at the first time and the second coarse positioning at the second time are obtained. Based on the first coarse positioning, the second coarse positioning, and the direction cosine between the receiver and the satellite, the carrier equation difference is linearized to obtain the linear carrier equation between the first time and the second time. Solving the linear carrier equation yields the initial displacement of the receiver between the first and second time points and the integer ambiguity corresponding to the second time point.
7. A position calculation device, characterized in that, include: The processing module is used to solve the carrier equation based on the first carrier phase observation value of the receiver at the first time and the second carrier phase observation value at the second time, so as to obtain the initial displacement of the receiver between the first time and the second time and the integer ambiguity corresponding to the second time. The positioning module is used to obtain the initial velocity of the receiver based on the initial displacement of the receiver if the integer ambiguity corresponding to the second time moment is not fixed as an integer. When the initial velocity is less than or equal to the velocity threshold, the position of the receiver at the second time is obtained by using a time-series difference algorithm based on the target time and target position calculation results corresponding to the previous integer ambiguity being fixed as an integer; when the initial velocity is greater than the velocity threshold, the position of the receiver at the second time is obtained by using the target velocity and the position calculation results at the first time.
8. An electronic device, characterized in that, include: Memory, processor; The memory stores computer-executed instructions; The processor executes computer execution instructions stored in the memory, causing the processor to perform the method as described in any one of claims 1-6.
9. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer-executable instructions, which, when executed, are used to implement the method as described in any one of claims 1-6.
10. A computer program product, characterized in that, Includes a computer program, which, when executed, implements the method according to any one of claims 1-6.