Terminal positioning method and apparatus, storage medium, and electronic device

CN122592438BActive Publication Date: 2026-09-22CHONGQING SATELLITE NETWORK SYSTEM CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202611054535.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2026-07-14
Publication Date
2026-09-22
Estimated Expiration
2046-07-14

AI Technical Summary

Technical Problem

[0004]本申请实施例提供了一种终端定位方法和装置、存储介质及电子设备,以至少解决定位效率低的技术问题

Benefits of technology

[0015]在本申请实施例中,采用仅基于第一时间历元实际可见卫星构建低维状态向量,而非基于星座总卫星数构建全维状态向量的方式,将终端在第一时间历元和第二时间历元均可见的卫星确定为第一卫星,并将终端在第一时间历元可见,在第二时间历元不可见的卫星确定为第二卫星,进而,利用第一卫星的历史状态参数进行状态转移预测以复用计算资源,并利用第二卫星的当前观测数据独立初始化其状态参数,从而动态适配当前可见卫星的维度,显著降低定位算法的计算复杂度,进而解决了定位效率低的技术问题。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122592438B_ABST
    Figure CN122592438B_ABST
Patent Text Reader

Abstract

The application discloses a terminal positioning method and device, a storage medium and an electronic device. The method comprises the following steps: first, constructing a satellite index array according to a first satellite observed by a terminal at a first time epoch, determining a state parameter dimension according to the number of visible satellites, and dividing the satellites into first satellites and second satellites according to satellite continuous visibility; for the first satellites, determining a predicted state parameter according to a second time epoch positioning result; for the second satellites, reinitializing to obtain the predicted state parameter; and finally, determining a terminal positioning result based on the satellite index array and the predicted state parameter, so that the technical effect of reducing positioning calculation complexity and storage overhead is achieved, and the technical problem of low positioning efficiency is solved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of satellite navigation and low-orbit navigation enhancement, and more specifically, to a terminal positioning method and apparatus, a storage medium and an electronic device. Background Technology

[0002] In existing technologies, terminal positioning relies on processing large amounts of satellite observation data. Specifically, the computational complexity of the positioning algorithm is related to the maximum number of satellites in the constellation. When there are too many satellites in a low-Earth orbit navigation constellation, the terminal positioning calculation time will be too long, making it difficult to meet the calculation requirements for millisecond-level real-time position information in highly dynamic scenarios, resulting in a technical problem of low positioning efficiency.

[0003] There is currently no effective solution to the above problems. Summary of the Invention

[0004] This application provides a terminal positioning method and apparatus, a storage medium and an electronic device to at least solve the technical problem of low positioning efficiency.

[0005] According to one aspect of the embodiments of this application, a terminal positioning method is provided, comprising: identifying a satellite visible to the terminal at both a first time epoch and a second time epoch as a first satellite, and identifying a satellite visible to the terminal at the first time epoch but not visible at the second time epoch as a second satellite; determining historical state parameters of the first satellite from historical state data at the second time epoch based on the satellite identifier of the first satellite, determining predicted state parameters of the first satellite based on the historical state parameters of the first satellite, and determining predicted state parameters of the second satellite based on current observation data of the terminal, wherein the historical state data includes historical state parameters of any satellite visible to the terminal at the second time epoch, and the current observation data is determined by satellite signals received by the terminal at the first time epoch; and determining a terminal positioning result based on the predicted state parameters of the first satellite and the predicted state parameters of the second satellite.

[0006] According to another aspect of the embodiments of this application, a terminal positioning device is also provided, comprising: a determining module, configured to determine a satellite visible to the terminal at both a first time epoch and a second time epoch as a first satellite, and to determine a satellite visible to the terminal at the first time epoch but not visible at the second time epoch as a second satellite; a predicting module, configured to determine historical state parameters of the first satellite from historical state data at the second time epoch based on the satellite identifier of the first satellite, determine predicted state parameters of the first satellite based on the historical state parameters of the first satellite, and determine predicted state parameters of the second satellite based on the current observation data, wherein the historical state data includes historical state parameters of any satellite visible to the terminal at the second time epoch, and the current observation data is determined by satellite signals received by the terminal at the first time epoch; and a generating module, configured to determine a terminal positioning result based on the predicted state parameters of the first satellite and the predicted state parameters of the second satellite.

[0007] In an exemplary embodiment, the apparatus is configured to identify a satellite visible to the terminal at both a first time epoch and a second time epoch as a first satellite, and to identify a satellite visible to the terminal at the first time epoch but not at the second time epoch as a second satellite by: generating a current satellite index array based on the current observation data, wherein the current satellite index array is used to store the current satellite identifiers of satellites visible to the terminal at the first time epoch; obtaining a historical satellite index array, wherein the historical satellite index array is used to store the historical satellite identifiers of satellites visible to the terminal at the second time epoch; and performing an element-by-element traversal comparison of the current satellite index array and the historical satellite index array to determine the first satellite and the second satellite.

[0008] In an exemplary embodiment, the apparatus is configured to determine the first satellite and the second satellite by performing an element-by-element comparison of the current satellite index array and the historical satellite index array: sequentially determining the current satellite identifier in the current satellite index array as the target identifier, and performing the following operations on the target identifier until the current satellite identifier traversal is completed: if the target identifier exists in the historical satellite index array, determining the satellite corresponding to the target identifier as the first satellite; if the target identifier does not exist in the historical satellite index array, determining the satellite corresponding to the target identifier as the second satellite.

[0009] In an exemplary embodiment, the apparatus is configured to, when the target identifier exists in the historical satellite index array, determine the satellite corresponding to the target identifier as the first satellite by: obtaining the element index value corresponding to the target identifier in the historical satellite index array; and determining the historical state parameters of the first satellite from the historical state data based on the element index value, wherein the historical state parameters of the first satellite are stored in the historical state data at a storage location corresponding to the element index value.

[0010] In an exemplary embodiment, the apparatus is configured to determine the predicted state parameters of the first satellite based on the historical state parameters of the first satellite, and to determine the predicted state parameters of the second satellite based on the current observation data of the terminal, by: processing the historical state parameters of the first satellite using a stochastic process model to obtain the predicted state parameters of the first satellite; and calculating the predicted state parameters of the second satellite based on the pseudorange parameters and carrier phase parameters of the second satellite in the current observation data of the terminal.

[0011] In an exemplary embodiment, the device is configured to determine a terminal positioning result based on the predicted state parameters of the first satellite and the predicted state parameters of the second satellite in the following manner: obtaining initial state parameters of the terminal, wherein the initial state parameters include initial position parameters, initial clock error parameters, and zenith tropospheric wet delay residual parameters; generating an initial state vector based on the initial state parameters, the predicted state parameters of the first satellite, and the predicted state parameters of the second satellite; updating the initial state vector using the current observation data through a Kalman filter algorithm to obtain a target state vector; and generating the terminal positioning result based on the target state vector.

[0012] According to another aspect of the embodiments of this application, a computer-readable storage medium is also provided, wherein a computer program is stored in the computer-readable storage medium, and the computer program is configured to execute the above-described terminal positioning method when it is run.

[0013] According to another aspect of the embodiments of this application, a computer program product or computer program is provided, which includes computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the terminal positioning method described above.

[0014] According to another aspect of the embodiments of this application, an electronic device is also provided, including a memory and a processor, wherein the memory stores a computer program, and the processor is configured to execute the above-described terminal positioning method through the computer program.

[0015] In this embodiment, a low-dimensional state vector is constructed based solely on the actual visible satellites at the first time epoch, rather than a full-dimensional state vector based on the total number of satellites in the constellation. Satellites visible to the terminal at both the first and second time epochs are identified as first satellites, and satellites visible to the terminal at the first time epoch but not at the second time epoch are identified as second satellites. Then, the historical state parameters of the first satellites are used to predict state transitions to reuse computing resources, and the current observation data of the second satellites are used to independently initialize their state parameters, thereby dynamically adapting to the dimension of the currently visible satellites, significantly reducing the computational complexity of the positioning algorithm, and thus solving the technical problem of low positioning efficiency. Attached Figure Description

[0016] The accompanying drawings, which are included to provide a further understanding of this application and form part of this application, illustrate exemplary embodiments and are used to explain this application, but do not constitute an undue limitation of this application. In the drawings:

[0017] Figure 1 This is a schematic diagram of an application environment for an optional terminal positioning method according to an embodiment of this application;

[0018] Figure 2 This is a flowchart illustrating an optional terminal positioning method according to an embodiment of this application;

[0019] Figure 3 This is a schematic diagram of a one-step prediction process of an optional terminal positioning method according to an embodiment of this application;

[0020] Figure 4 This is a schematic diagram of the measurement and update process of an optional terminal positioning method according to an embodiment of this application;

[0021] Figure 5 This is an operational schematic diagram of an optional terminal positioning method according to an embodiment of this application;

[0022] Figure 6 This is a schematic diagram of the structure of an optional terminal positioning device according to an embodiment of this application;

[0023] Figure 7 This is a schematic diagram of the structure of an optional electronic device according to an embodiment of this application. Detailed Implementation

[0024] To enable those skilled in the art to better understand the present application, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present application, and not all embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative effort should fall within the scope of protection of the present application.

[0025] It should be noted that the terms "first," "second," etc., in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of this application described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.

[0026] The present application will be described below with reference to embodiments:

[0027] According to one aspect of the embodiments of this application, a terminal positioning method is provided.

[0028] Optionally, in this embodiment, the above-described terminal positioning method can be applied to the field of low-orbit satellite navigation enhancement, and applied to high-dynamic real-time positioning scenarios such as autonomous driving, precision agriculture, and drone path planning, for example... Figure 1 As shown, the terminal receives satellite signals broadcast from GNSS navigation satellites and low-Earth orbit satellites, and then performs positioning based on these satellite signals.

[0029] In existing positioning algorithms for GNSS satellite signals, the total number of satellites in each system is typically predefined, and the dimensions of the relevant vectors and matrices for positioning are determined based on the maximum number of satellites. However, for large-scale low-Earth orbit navigation constellations, the maximum number of satellites will jump from hundreds to thousands or even more. If the traditional algorithm framework is used, the dimension of the state vector will grow exponentially with the number of satellites, causing the dimensions of the covariance matrix and normal equation matrix to expand quadratically, resulting in at least the following technical problems:

[0030] The computational complexity has increased dramatically: the computational complexity of core operations such as matrix inversion and multiplication in the positioning algorithm has increased significantly, and the time for single-epoch positioning solution will be greatly extended, making it difficult to meet the stringent requirements for millisecond-level real-time location information in high-dynamic scenarios such as autonomous driving, airborne positioning and UAV path planning.

[0031] Storage resource consumption increases dramatically: storing and updating high-dimensional matrices will consume the memory resources of traditional receivers;

[0032] Deterioration of numerical stability: High-dimensional matrix operations can significantly amplify numerical rounding errors, easily leading to ill-conditioned matrix problems, resulting in distorted inversion results or even calculation failures, severely reducing the robustness of the algorithm, and ultimately causing a double degradation in positioning accuracy and stability.

[0033] Based on this, the aforementioned terminal positioning method, while being compatible with mainstream estimator architectures such as Kalman filtering and least squares adjustment, addresses the technical problem of the exponential growth in the number of satellites in giant LEO constellations leading to an explosion in the dimensionality of the state and observation equation matrices. It dynamically determines the visible satellites at each time epoch, achieving adaptive reconstruction of the state transition and observation matrices during the epoch-by-epoch positioning process. This ensures both high-precision positioning results and high timeliness, supporting the industrialization of navigation enhancement for giant LEO constellations. Furthermore, by constructing low-dimensional state vectors and efficient matrix compression algorithms, it achieves a dual exponential reduction in computational complexity and storage overhead, providing key technical support for real-time precise positioning in highly dynamic real-time positioning scenarios.

[0034] As an optional implementation method, such as Figure 2 As shown, the above-mentioned terminal positioning method includes:

[0035] S202, the satellite that is visible to the terminal in both the first and second time epochs is identified as the first satellite, and the satellite that is visible to the terminal in the first time epoch but not visible in the second time epoch is identified as the second satellite.

[0036] Optionally, in the embodiments of this application, the first satellite can be understood as a historical common-view satellite, including but not limited to satellites that are continuously within the terminal's visible range in two consecutive time epochs. The state parameters of the first satellite are continuous and can be used to construct a smooth state transition model.

[0037] Optionally, in the embodiments of this application, the aforementioned second satellite can be understood as a new-view satellite, including but not limited to satellites that enter the terminal's field of view for the first time, lacking historical status information, and needing to be initialized based on current observation data, that is, satellites that first appear in the terminal's visible range at the first time epoch.

[0038] Optionally, in the embodiments of this application, the first time epoch can be any time epoch, and the second time epoch can be any time epoch earlier than the first time epoch. For example, the second time epoch is the previous time epoch adjacent to the first time epoch, or the second time epoch is a historical time epoch earlier than the first time epoch.

[0039] It should be noted that the distinction between the first and second satellites is based solely on the temporal continuity of visibility, and this application does not impose any limitations on this distinction.

[0040] For example, when the terminal is in a high-speed motion state, due to Doppler frequency shift and geometric configuration changes, the visibility switching frequency of satellites is extremely high. At this time, the classification boundary between the first satellite and the second satellite may change dynamically at a millisecond frequency. The terminal can dynamically maintain a list containing all visible satellites by monitoring the elevation angle and signal-to-noise ratio of each satellite in real time, and automatically classify the satellites into the first satellite and the second satellite according to the intersection and difference between the list and the previous epoch list, thereby providing a basis for subsequent differentiated processing.

[0041] Furthermore, in step S202, by distinguishing the visibility states of satellites, the terminal can identify the first satellite that needs to inherit the predictions of historical states and the second satellite that needs to be newly initialized. This avoids pre-allocating computing resources for all potentially visible satellites, reduces the invalid state vector dimension, and effectively improves the real-time solution efficiency in the context of a giant constellation.

[0042] S204, determine the historical state parameters of the first satellite from the historical state data of the second time epoch based on the satellite identifier of the first satellite, determine the predicted state parameters of the first satellite based on the historical state parameters of the first satellite, and determine the predicted state parameters of the second satellite based on the current observation data of the terminal. The historical state data includes the historical state parameters of any satellite visible to the terminal in the second time epoch, and the current observation data is determined by the satellite signal received by the terminal in the first time epoch.

[0043] Optionally, in the embodiments of this application, the above-mentioned historical state parameters can be understood as the satellite-related state estimates obtained by the second time epoch calculation. Specifically, in the low-orbit navigation precision positioning scenario, these include, but are not limited to, ionospheric delay parameters, carrier phase ambiguity parameters, and corresponding covariance matrix elements.

[0044] Optionally, in the embodiments of this application, the predicted state parameters of the first satellite are the prior state estimates of the first satellite at the first time epoch, including but not limited to the values ​​obtained by time propagation of historical state parameters based on a random walk model or a piecewise constant model; the predicted state parameters of the second satellite are the values ​​obtained by single-point calculation or approximate initialization of the second satellite based on the current observation data.

[0045] Furthermore, the predicted state parameters of the first satellite can be obtained through a one-step prediction step of Kalman filtering, while the predicted state parameters of the second satellite can also be obtained by initialization based on the current pseudorange and carrier phase observations. This application does not limit this.

[0046] In an exemplary embodiment, when entering the first time epoch, the first satellite set is traversed first, its corresponding state vector elements are read from the database and the state transition equation is executed to calculate the predicted value. At the same time, the second satellite set is traversed, and the observation equation of the first time epoch is used to quickly fit the uninitialized state to generate the corresponding predicted state parameters, thereby unifying the state parameters from different sources into the current filtering framework.

[0047] Furthermore, in step S204, by reusing the historical state information of the first satellite and independently initializing the state of the second satellite, the redundant process of recalculating the state parameters for all satellites is avoided, thereby realizing the on-demand allocation of computing resources.

[0048] S206, Determine the terminal positioning result based on the predicted state parameters of the first satellite and the predicted state parameters of the second satellite.

[0049] Optionally, in the embodiments of this application, the above-mentioned terminal positioning result can be understood as the optimal state estimate of the terminal in the first time epoch, specifically including but not limited to the three-dimensional coordinates of the receiver, the receiver clock error, the residual wet delay of the zenith troposphere, and the ionospheric delay and ambiguity parameters of all visible satellites.

[0050] Furthermore, the above determination process can utilize the measurement update steps of Kalman filtering, including but not limited to calculating the gain matrix, updating the state vector and its covariance matrix, thereby obtaining the posterior estimate.

[0051] It should be noted that the specific algorithm for determining the terminal positioning result can be Kalman filtering, least squares adjustment or other optimal estimation methods, and this application does not limit it.

[0052] For example, the terminal combines the predicted state parameters of the first satellite and the predicted state parameters of the second satellite into a complete initial value of the state vector. Combined with the observation equations of all visible satellites in the first time epoch, it performs a one-step measurement update operation to calculate the corrected state vector and obtain the final solution result containing the terminal position, clock error and satellite error parameters, thereby outputting a high-precision positioning service.

[0053] In one exemplary embodiment, in a terminal positioning scenario, the following are included but not limited to:

[0054] In this embodiment of the application, it is assumed that the number of satellites observed at the current epoch is m, which includes n GNSS satellites and l low-Earth orbit satellites. Taking dual-frequency undifferenced undifferenced precise point positioning (PPP positioning) as an example:

[0055] The terminal receiver first time t k The first epoch observation data broadcast by each visible satellite, assuming that the number of satellites observed in the first epoch is m, including n GNSS satellites and l low-orbit satellites;

[0056] Based on the first epoch observation data, determine the pseudorange and carrier phase observation values ​​for each visible satellite. Construct the current observation data based on the pseudorange and carrier phase observation values, which can be a vector Z(k):

[0057] ;

[0058] Where X(k) is the state vector at the corresponding time, H k To design the matrix, Δ(k) ~ (0, R) k R is the measurement noise vector. k To measure the noise covariance matrix.

[0059] For satellite-broadcast navigation signals, the receiver measures the length of the signal. Received satellite At frequency The pseudorange and carrier phase observation equations can be expressed as:

[0060]

[0061] Among them, the aforementioned current observation data Z(k) includes and , and These represent pseudorange observations and carrier phase observations, respectively. The geometric distance between the receiver and the satellite after various error corrections, including antenna phase center deviation / change, relativistic effects, and tidal corrections; The speed of light in a vacuum. and These are receiver clock bias and satellite clock bias, respectively. Indicates first-order ionospheric delay; For the corresponding frequency, For the corresponding wavelength; The tropospheric delay along the signal propagation path; For carrier phase ambiguity; and These are pseudorange observation noise and carrier phase observation noise, respectively; multipath error, hardware delay, and higher-order ionospheric delay are ignored here.

[0062] Next, the second time epoch t is updated based on the observation data from the first time epoch. k-1 The corresponding low-Earth orbit satellite index array IndexLEO(k-1) is used to obtain the low-Earth orbit satellite index array IndexLEO(k) corresponding to the first time epoch.

[0063] Determining the predicted state vector based on the low-orbit satellite index array IndexLEO(k) and prior covariance matrix The predicted state vector includes multiple state parameters, which can be represented as:

[0064]

[0065] in, The parameters are, in order: receiver three-dimensional position, receiver clock error, and Zenith Wet Delay (ZWD). This represents the number of satellites observed at the current epoch. These are the parameters of the ionosphere along the tilted path. These are the carrier phase ambiguity parameters for the corresponding frequency points. The satellite-related state parameters include ionospheric delay and ambiguity parameters; the number of state parameters is... indivual.

[0066] If the first time epoch is the initial epoch, i.e. the system has just started or the second time epoch has no valid state information and there is no low-orbit satellite index array IndexLEO(k-1), then the predicted state vector is calculated and determined using the pseudorange and carrier phase observation values ​​of each visible satellite in the first time epoch observation data, and a prior covariance matrix is ​​determined based on the reliability of the predicted state vector.

[0067] If the first time epoch is not the first epoch, then iterate through the low-Earth orbit satellite index array Index corresponding to the second time epoch. LEO (k-1) Determine whether the visible satellite corresponding to the observation data of the first time epoch that the receiver can receive at the first time epoch is visible at the second time epoch (i.e., whether the satellite identifier exists at Index). LEO (k-1)), specifically:

[0068] The predicted state parameters of the first satellite visible in the second time epoch are determined using the corresponding stochastic process model, that is, the state parameters of the first satellite that is visible in the second time epoch and is still visible at present.

[0069] For the predicted state parameters of the first satellite (referred to as the first state parameters):

[0070] Different first-state parameters use different stochastic process models. Different stochastic process models require different input parameter values ​​for prediction, but all are based on the second time epoch. State vector estimation Posterior covariance matrix The state transition matrix is ​​either I or 0; or, the second time epoch. State vector estimation Posterior covariance matrix The state transition matrix I or 0 and the process noise covariance matrix Determine the predicted state vector corresponding to the first time epoch. and prior covariance matrix That is, the input shared by all models is The estimated state vector corresponding to the first state parameter obtained from the corresponding measurement update. Posterior covariance matrix The difference lies in whether or not the process noise covariance matrix is ​​added. And whether the state transition matrix is ​​the identity matrix I or the zero matrix 0, specifically:

[0071] For each predicted state parameter, based on its actual physical representation, different stochastic processes, as shown in Table 1, are typically used for construction. Among them, the white noise model has no correlation between epochs, while the state transition matrices of the random walk noise, random constant, and piecewise constant are all identity matrices, meaning there is correlation between epochs. Therefore, a one-step prediction is required for each epoch or at a certain step size. For the ambiguity parameters, there are also cycle slips, which need to be reset after a cycle slip occurs.

[0072] Table 1

[0073]

[0074] For a second satellite that is not visible in the second time epoch, the second state parameter is calculated and determined using the pseudorange and carrier phase observation values ​​corresponding to the observation data in the first time epoch. The value of the matrix element at the corresponding position in the prior covariance matrix is ​​determined according to the reliability of the state parameter. That is, the second state parameter is the state parameter corresponding to the satellite that appears in the first time epoch.

[0075] After the above operations, the predicted state vector is obtained. and prior covariance matrix , specifically:

[0076] First, a Kalman filter-based low-orbit joint BeiDou / GNSS positioning model is constructed based on observation data:

[0077] For a stochastic linear discrete system, its functional model can be expressed as:

[0078]

[0079]

[0080] The above equations are the state equation and the observation equation, respectively; where and Representing time respectively and X(k) and X(k-1) are the state vectors at the corresponding time points; Let ω(k-1) be the state transition matrix from time t to time q; ω(k-1) ~ N(0,Q) k) Q is the corresponding process noise vector. k Z(k) is the process noise covariance matrix; H is the observation vector; k Design matrix; Δ(k) ~ (0, R k) To measure the noise vector, R k To measure the noise covariance matrix.

[0081] Real-time precise positioning algorithms based on Kalman filtering or least squares adjustment can be employed, involving numerous matrix multiplications and inversions. Introducing a giant low-Earth orbit navigation constellation, while adapting to traditional BeiDou / GNSS constellations, inevitably leads to a surge in matrix computation. Therefore, efficient matrix computation strategies for high real-time scenarios are crucial for ensuring accurate positioning for user terminals.

[0082] Taking Kalman filtering as an example, its core idea is to perform a one-step prediction and measurement update loop using the state equation and observation equation to obtain the optimal estimate of the state vector. The one-step prediction calculation process is as follows:

[0083]

[0084]

[0085] An initial state needs to be given for the initial epoch. and The measurement update calculation process is as follows:

[0086]

[0087]

[0088]

[0089] In the above formula, express The predicted state vector value obtained at each step of the time-limit prediction. The corresponding prior covariance matrix; and for Time and The estimated state vector obtained from the measurement update at each time step. and The corresponding posterior covariance matrix; This is related to the physical meaning of the design matrix and each state parameter; The gain matrix determines whether the final estimated state vector is closer to the predicted value or the observed value. Represents a unit array.

[0090] The predicted value of the state vector These are the predicted state parameters mentioned above, including: the receiver's three-dimensional position Δx, Δy, Δz determined by the terminal receiver, and the receiver clock bias t. r In addition to the zenith tropospheric wet delay residual (ZWD), and the tilt path ionospheric parameters for each satellite, along with the corresponding frequency carrier phase ambiguity parameters, such as L1 and L2 ambiguity parameters, the predicted state vector is obtained as shown below:

[0091]

[0092] Among them, s i Used to indicate which satellite, 1≤i≤m, (5+3m)×1 is the dimension (shape) and direction of X(k); (5+3m)×1 represents the "number of rows" and "number of columns"; (5+3m) rows: indicates that this vector contains 5+3m independent values ​​(i.e., the number of state parameters), 5 indicates that there are 5 parameters common to different satellites, namely Δx, Δy, Δz, t_(r,)ZWD, 3 indicates that each satellite has 3 private parameters, namely 1 ionospheric parameter, 1 L1 ambiguity parameter and 1 L2 ambiguity parameter; 1 column: indicates that this vector is a column of data arranged vertically, rather than a row of data arranged horizontally; T: indicates the transpose of the matrix.

[0093] Prior covariance matrix It is a diagonal matrix.

[0094] Next, for each satellite in the low-Earth orbit satellite index array IndexLEO(k):

[0095] Using the design matrix H k Gain matrix K k The current observation vector Z(k) and the predicted state vector The estimated state vector value obtained from the measurement update corresponding to the first time epoch is calculated and determined. ;

[0096] It should be noted that the identity matrix I and the design matrix H, which are pre-determined based on the physical meaning of each state parameter, can be used. k、 Gain matrix K k Measurement noise covariance matrix R k and the prior covariance matrix Calculate and determine the posterior covariance matrix corresponding to the first time epoch. ;

[0097] Estimation from the state vector Extract the receiver's three-dimensional position coordinates and clock error parameters (Δx, Δy, Δz and clock error t). r This serves as the terminal positioning result for the first time epoch.

[0098] By employing the embodiments of this application, a low-dimensional state vector is constructed based solely on the actual visible satellites at the first time epoch, rather than constructing a full-dimensional state vector based on the total number of satellites in the constellation. Satellites visible to the terminal at both the first and second time epochs are identified as first satellites, and satellites visible to the terminal at the first time epoch but not at the second time epoch are identified as second satellites. Furthermore, the historical state parameters of the first satellites are used to predict state transitions to reuse computing resources, and the current observation data of the second satellites are used to independently initialize their state parameters. This dynamically adapts to the dimension of currently visible satellites, significantly reducing the computational complexity of the positioning algorithm and thus solving the technical problem of low positioning efficiency.

[0099] As an optional approach, the above-mentioned method of identifying satellites visible to the terminal in both the first and second time epochs as first satellites, and satellites visible to the terminal in the first time epoch but not in the second time epoch as second satellites, includes: generating a current satellite index array based on the current observation data, wherein the current satellite index array is used to store the current satellite identifiers of satellites visible to the terminal in the first time epoch; obtaining a historical satellite index array, wherein the historical satellite index array is used to store the historical satellite identifiers of satellites visible to the terminal in the second time epoch; and performing an element-by-element traversal comparison of the current satellite index array and the historical satellite index array to determine the first satellite and the second satellite.

[0100] Specifically, the above-mentioned element-by-element traversal and comparison of the current satellite index array and the historical satellite index array to determine the first satellite and the second satellite includes: sequentially determining the current satellite identifier in the current satellite index array as the target identifier, and performing the following operations on the target identifier until the traversal of the current satellite identifier is completed: if the target identifier exists in the historical satellite index array, the satellite corresponding to the target identifier is determined as the first satellite; if the target identifier does not exist in the historical satellite index array, the satellite corresponding to the target identifier is determined as the second satellite.

[0101] Optionally, in the embodiments of this application, the aforementioned current satellite index array can be understood as an ordered list of visible satellite identifiers in the first time epoch, specifically including but not limited to an integer array arranged in ascending order of satellite number, used for quickly retrieving and matching satellites actually observed in the first time epoch, such as identifiers like LEO_01 and LEO_02.

[0102] Optionally, in the embodiments of this application, the aforementioned historical satellite index array may be a cached copy of the visible satellite identifiers of the second time epoch, specifically including but not limited to an integer array arranged in ascending order of satellite number, used to quickly retrieve and match the satellites actually observed in the second time epoch, such as identifiers like LEO_01 and LEO_03.

[0103] It should be noted that the above element-by-element traversal comparison can be performed using algorithms such as hash lookup, binary search, or bitmap matching, and this application does not limit the specific algorithms used.

[0104] For example, taking Table 1 above as an example, the one-step prediction in Table 1 only involves matrix addition, and there is no correlation between the state parameters in satellite positioning. , and Since they are all diagonal arrays, only the diagonal elements need to be assigned or added. The increase in the number of satellites has little impact on the computation time and resource load of the one-step prediction stage.

[0105] However, the measurement update phase requires performing numerous matrix addition, multiplication, transpose, and policy inversion operations. The dimensions of the design matrix, state parameter covariance matrix, and measurement noise covariance matrix are respectively... , and .

[0106] In traditional GNSS positioning algorithms, the number of all satellites in the entire constellation (denoted as ) is usually used. Determine the dimension of the state vector. If the number of low-Earth orbit constellation satellites is in the tens of thousands, the matrix dimension will increase quadratically. This leads to a significant increase in computational complexity for core operations such as matrix inversion from ( ) jumped to ( ).

[0107] This dimensional expansion not only significantly prolongs the single-epoch positioning solution time, but also causes numerical stability problems due to the ill-conditioned properties of high-dimensional matrices, ultimately leading to a degradation in the accuracy of the positioning results and a prolonged convergence time.

[0108] Therefore, considering the computational difficulties caused by the proliferation of satellites, and taking into account the relatively small number of satellites visible simultaneously at a single station per epoch, a low-Earth orbit (LEO) satellite number index array can be added to each time epoch to record the LEO satellite numbers for the current epoch.

[0109] Index LEO (k)=[LEO1, LEO2, LEO I ]

[0110] in, For the calendar The corresponding low-orbit satellite index array; LEO i Assign a number to the corresponding low-Earth orbit satellite, which is a unique identifier for each satellite.

[0111] Based on the aforementioned low-Earth orbit (LEO) satellite index array, the predicted state parameters related to LEO satellites in the state vector are also included in group I. Each group of predicted state parameters includes multiple state parameters to reduce the dimensionality of the state vector and matrix during the solution process. Therefore, synchronous updates are required in the one-step prediction and measurement update steps. The one-step prediction process, taking the first time epoch as an example, includes, but is not limited to:

[0112] The state vectors are arranged in the following order:

[0113]

[0114] Then, a low-orbit satellite index array is constructed based on the current epoch observation data;

[0115] The predicted values ​​(i.e., predicted state parameters) are calculated for each state parameter. For predicted state parameters related to low-Earth orbit satellites, if a non-white noise stochastic process is used for estimation, the low-Earth orbit satellite index array of the first time epoch needs to be matched between the first time epoch and the previous time epoch.

[0116] If a match is found with the parameter index of the previous epoch, the predicted value and covariance matrix of each state parameter are updated according to the stochastic process corresponding to each state parameter, as shown in Table 1. If no match is found, the corresponding predicted state parameters are reset, and the ambiguity parameters also need to be reset after a cycle slip.

[0117] In one exemplary embodiment, the specific operation process is as follows: Figure 3 As shown:

[0118] S302, Sort the predicted state parameters;

[0119] S304, Construct the low-Earth orbit satellite index array for the current epoch;

[0120] S306, determine whether it is an interepoch-related state parameter. If yes, execute S308; otherwise, execute S318.

[0121] Specifically, the state parameter can be determined to be an interepoch-related state parameter based on its physical properties in the state vector and its corresponding stochastic process model.

[0122] S308, if it is a status parameter related to LEO low-Earth orbit satellites, execute S310 if yes, execute S314 if no;

[0123] For example, satellite type determination based on satellite signal indication.

[0124] S310, Match the LEO satellite index array of the current epoch with the LEO satellite index array of the previous epoch;

[0125] S312, Does it match the previous epoch index?

[0126] S314, perform a one-step prediction based on the solution results of the previous epoch;

[0127] S316, is this the last status parameter? If yes, execute S320; otherwise, execute S306.

[0128] S318, one-step prediction based on white noise process;

[0129] S320, End.

[0130] That is, the terminal first filters out the predicted state parameters that are time-related by traversing each predicted state parameter. Then, for the ionospheric delay and ambiguity parameters related to low-Earth orbit satellites, it uses the matching results of the index array to decide whether to reuse the predicted value of the previous epoch or to reset and initialize. For non-low-Earth orbit satellites or white noise parameters, a fixed prediction rule is adopted, thereby completing the epoch-by-epoch update of all state parameters.

[0131] The embodiments of this application realize dynamic adaptive adjustment of the state vector dimension, avoid matrix dimension expansion caused by the surge in the number of low-Earth orbit satellites, significantly reduce computational complexity and memory usage, and thus improve the efficiency and stability of real-time precise positioning under a giant low-Earth orbit navigation constellation.

[0132] As an optional approach, after determining the satellite corresponding to the target identifier as the first satellite in the aforementioned historical satellite index array where the target identifier exists, the method further includes: obtaining the element index value corresponding to the target identifier in the aforementioned historical satellite index array; determining the historical state parameters of the first satellite from the aforementioned historical state data based on the element index value, wherein the historical state parameters of the first satellite are stored in the aforementioned historical state data at the storage location corresponding to the element index value.

[0133] Optionally, in the embodiments of this application, the above element index value can be understood as the physical address offset or subscript in the historical state data array, including but not limited to the array sequence number of integer type, such as 0, 1, 2, etc., used to directly locate the memory unit storing ionospheric delay or ambiguity parameters.

[0134] Optionally, in the embodiments of this application, the aforementioned historical state data may be a state parameter vector arranged in a specific order, including but not limited to a one-dimensional array or a two-dimensional matrix sorted according to satellite identifiers, wherein each element corresponds to a specific state parameter of a specific satellite.

[0135] Optionally, in the embodiments of this application, the above-mentioned element index value may also be a composite index calculated by combining the satellite system type and satellite number, including but not limited to a unique identifier generated by a hash function, to ensure fast access in a hybrid constellation environment.

[0136] It should be noted that the above element index values ​​can be obtained through lookup tables, hash mappings, or linear search, and this application does not limit them.

[0137] For example, if the target is identified as LEO_05 and its index in the historical satellite index array is 3, the system directly reads the ionospheric delay value and ambiguity value corresponding to LEO_05 from the 4th position of the historical state data as historical state parameters, without recalculating or searching.

[0138] In other words, the terminal maintains a tightly coupled state parameter storage structure. Each element in the historical satellite index array directly points to a contiguous memory block in the historical state data. Once the first satellite is determined, the terminal directly uses its index value to perform memory copying or pointer access to obtain the historical state parameters, thereby ensuring low latency and high efficiency in data reading.

[0139] For example, the measurement update process in this application embodiment is as follows:

[0140] S1, construct error equations for each satellite, and obtain initial values ​​of parameters for measurement updates based on one-step prediction parameter estimates. The initial values ​​of parameters related to low-Earth orbit satellites need to be determined through an index array.

[0141] S2, match the index in the index array corresponding to the current low-orbit satellite, and fill in the state parameters related to the low-orbit satellite one by one based on this index;

[0142] S3 performs filtering calculations and saves the low-orbit satellite index array and solution results for the current epoch.

[0143] In an exemplary embodiment, for measurement updates, adaptation based on the index array is required when calculating the error equation, mainly including matching the initial values ​​of satellite-related state parameters and matching the column indices of its design matrix. For example... Figure 4 As shown:

[0144] S402, is it a status parameter related to low-Earth orbit satellites? If yes, execute S404; otherwise, execute S406.

[0145] S404, Match the current epoch low-Earth orbit satellite index array with the currently observed satellites;

[0146] S406, Obtain initial parameter values ​​and calculate the design matrix;

[0147] S408, is this the last status parameter? If yes, execute S410; otherwise, execute S402.

[0148] S410: Is this the last satellite? If yes, execute S412; otherwise, execute S402.

[0149] S412, filtering solution.

[0150] It should be noted that, taking Table 1 as an example, the current positioning algorithm for GNSS satellites constructs the positioning solution model based on the total number of satellites. Therefore, it is necessary to construct the state vector, state parameter covariance matrix, and design matrix with dimensions of [missing information]. , and .

[0151] Assume the number of GNSS satellites is Based on this, a low-Earth orbit (LEO) constellation was added for joint positioning calculation. The performance of the corresponding algorithm was evaluated by measuring the incremental computational complexity during the update process and the memory usage (based on 8 bytes of double-precision floating-point calculation) required to store the state vector and state parameter covariance matrix of the previous epoch for each prediction step. The state vector / matrix dimensions and computational burden under different numbers of LEO satellites are shown in Table 2.

[0152] Table 2

[0153]

[0154] As shown in Table 2, when the total number of satellites in a low-Earth orbit constellation is small, the increase in matrix dimension and computational burden of traditional algorithms is still within a controllable range; however, as the constellation scale expands, the matrix dimension, computational complexity, and storage resources will increase exponentially, which will become an unbearable resource bottleneck for lightweight end users.

[0155] Therefore, in this embodiment of the application, the positioning solution algorithm is optimized based on the number of visible satellites at each epoch of low-Earth orbit satellites. Since the number of visible satellites at a single station will not increase synchronously due to the surge in the number of constellation satellites, for example, when the number of low-Earth orbit constellation satellites is 1000 (Scenario 4) and the number of visible satellites at a single station is only 40 (Scenario 2), the computational efficiency and storage resource requirements of this embodiment of the application will not increase exponentially synchronously.

[0156] Through the embodiments of this application, an efficient dynamic mapping between state parameters in the observation equation and design matrix columns is achieved, ensuring that the observation data can be accurately aligned with the corresponding state vector elements during the measurement update phase. This avoids computational redundancy caused by a large number of zero elements or invalid indexes in traditional fixed-dimensional matrices, thereby further reducing the computational complexity of single-epoch solution.

[0157] As an optional approach, the above-mentioned determination of the predicted state parameters of the first satellite based on the historical state parameters of the first satellite, and determination of the predicted state parameters of the second satellite based on the current observation data of the terminal, includes: processing the historical state parameters of the first satellite using a stochastic process model to obtain the predicted state parameters of the first satellite, and calculating the predicted state parameters of the second satellite based on the pseudorange parameters and carrier phase parameters of the second satellite in the current observation data of the terminal.

[0158] Optionally, in the embodiments of this application, the above-mentioned stochastic process model refers to a mathematical function used to describe the evolution of state parameters over time, including but not limited to random walk models, stochastic constant models, or piecewise constant models, used to reflect the continuity or stability of parameters between epochs.

[0159] Optionally, in the embodiments of this application, the pseudorange parameter refers to the distance value obtained by multiplying the satellite signal propagation time measured by the receiver by the speed of light, including but not limited to the geometric distance observation value after correction for errors in the troposphere, ionosphere, etc., and is used to provide absolute distance constraints.

[0160] Optionally, in the embodiments of this application, the aforementioned carrier phase parameter refers to the phase observation value obtained by the receiver, which is an integer multiple of the satellite signal carrier wavelength period plus a fractional part, including but not limited to the current observation data used for high-precision positioning, which is used to provide high-precision constraints on relative distance.

[0161] It should be noted that the specific form of the above stochastic process model can be dynamically selected according to the satellite orbit characteristics and signal quality, and the above solution method can adopt the nonlinear least squares method or the linearized iterative method. This application does not limit this.

[0162] For example, for the first satellite, a preset random walk model can be invoked to use the ionospheric delay estimate stored in the second time epoch as the initial prediction value for the first time epoch, and process noise covariance can be added to reflect the increase in uncertainty; for the second satellite, the initial ionospheric delay value can be estimated by subtracting the geometric distance calculated based on ephemeris from the pseudorange observation value received in the first time epoch, and used as its predicted ionospheric delay parameter; the initial ambiguity value can be estimated by subtracting the geometric distance calculated based on pseudorange from the carrier phase observation value received in the first time epoch, and used as its predicted carrier phase ambiguity parameter.

[0163] Through the embodiments of this application, efficient allocation of computing resources and dynamic adaptation of state vector dimensions are achieved, effectively improving the efficiency and stability of real-time precise positioning solutions.

[0164] As an optional approach, determining the terminal positioning result based on the predicted state parameters of the first satellite and the second satellite includes: obtaining the initial state parameters of the terminal, wherein the initial state parameters include initial position parameters, initial clock error parameters, and zenith tropospheric wet delay residual parameters; generating an initial state vector based on the initial state parameters, the predicted state parameters of the first satellite, and the predicted state parameters of the second satellite; updating the initial state vector using the current observation data through a Kalman filter algorithm to obtain a target state vector; and generating the terminal positioning result based on the target state vector.

[0165] Optionally, in the embodiments of this application, the aforementioned initial state parameters refer to the prior estimates of the state vector assigned at the time of filter initialization, including but not limited to the three-dimensional coordinate components of the receiver in the Earth reference frame, the deviation of the receiver's internal clock relative to the system time, and the residual tropospheric wet delay when the signal passes through the zenith direction of the atmosphere, which are used to provide the starting point for filter calculation.

[0166] Optionally, in the embodiments of this application, the aforementioned initial state vector refers to a column vector composed of all the state parameters to be estimated arranged in a specific order, including but not limited to a multidimensional array composed of position, clock error, tropospheric delay, and ionospheric delay and ambiguity parameters of all visible satellites (including the first and second satellites), used to construct the state space model of Kalman filtering.

[0167] Optionally, in the embodiments of this application, the aforementioned target state vector refers to the posterior state estimate after correction by the current epoch observation data, including but not limited to the updated receiver position, clock error, tropospheric delay, and the optimal estimate of each satellite error parameter, which is used to directly output high-precision positioning results.

[0168] It should be noted that the above Kalman filtering algorithm can adopt the standard form, extended Kalman filtering, or unscented Kalman filtering. The initial state parameters can be obtained through cold start initialization, warm start inheritance, or external assistance. This application does not limit this.

[0169] For example, the terminal reads the position, clock error, and tropospheric delay values ​​obtained from the previous epoch as the initial state parameters for the current epoch, and combines these parameters with the historical prediction parameters of the first satellite and the initialization parameters of the second satellite to construct a full-dimensional initial state vector; it constructs an error equation and design matrix containing observations from all visible satellites, and uses the initial state vector to calculate the observation residuals as input data for Kalman filter measurement updates.

[0170] The terminal then performs a Kalman filter measurement update step, calculates the gain matrix and updates the state vector to obtain a target state vector containing the latest position information and error parameters. Position parameters and clock error parameters are extracted from the target state vector to generate terminal positioning results for navigation services.

[0171] Through the embodiments of this application, a state vector construction and Kalman filter update mechanism based on a dynamic index array is adopted, which achieves the goal of improving real-time solution efficiency while ensuring positioning accuracy.

[0172] In one exemplary embodiment, this application can achieve real-time precise positioning based on a mega-constellation of low-Earth orbit (LEO) navigation systems. It is compatible with mainstream estimator architectures such as Kalman filtering and least-squares adjustment. Addressing the processing bottleneck caused by the exponential growth in the number of satellites in a mega-LEO constellation system, which leads to an explosion in the dimensionality of the state and observation equation matrices, this application innovatively introduces a satellite index array mechanism. By dynamically constructing a subset of satellite visibility, it achieves adaptive reconstruction of the state transition matrix and observation matrix during epoch-by-epoch positioning. This ensures both high-precision positioning results and high timeliness, supporting the industrialization of navigation enhancement for mega-LEO constellations.

[0173] Specifically, the Kalman filter low-orbit joint BeiDou / GNSS positioning model constructed based on observation data includes, but is not limited to:

[0174] For a stochastic linear discrete system, its functional model is:

[0175] Equations of state:

[0176]

[0177] Observation equation:

[0178]

[0179] in and Representing time respectively and X(k) and X(k-1) are the state vectors at the corresponding time points; Let ω(k-1) be the state transition matrix from time t to time q; ω(k-1) ~ N(0,Q) k) Q is the corresponding process noise vector. k Z(k) is the process noise covariance matrix; H is the observation vector; k Design matrix; Δ(k) ~ (0, R k) To measure the noise vector, R k To measure the noise covariance matrix.

[0180] Real-time precise positioning algorithms based on Kalman filtering or least squares adjustment involve numerous matrix multiplications and inversions. Introducing a massive low-Earth orbit navigation constellation, adapted to traditional BeiDou / GNSS constellations, inevitably leads to a surge in matrix computation. Therefore, efficient matrix computation strategies for high real-time scenarios are crucial for ensuring the positioning performance of user terminals. Taking Kalman filtering as an example, its core idea is to obtain the optimal estimate of the state vector through a one-step prediction and measurement update loop using the state equation and observation equation. The one-step prediction calculation process is as follows:

[0181]

[0182]

[0183] An initial state needs to be given for the initial epoch. and The measurement update calculation process is as follows:

[0184]

[0185]

[0186]

[0187] In the above formula, express The predicted state vector value obtained at each step of the time-limit prediction. The corresponding prior covariance matrix; and for Time and The estimated state vector obtained from the measurement update at each time step. and The corresponding posterior covariance matrix; This is related to the physical meaning of the design matrix and each state parameter; The gain matrix determines whether the final estimated state vector is closer to the predicted value or the observed value. Represents a unit array.

[0188] For satellite-broadcast navigation signals, the receiver measures the length of the signal. Received satellite At frequency The pseudorange and carrier phase observation equations can be expressed as:

[0189]

[0190] in, and These represent pseudorange observations and carrier phase observations, respectively. The geometric distance between the receiver and the satellite after various error corrections, including antenna phase center deviation / change, relativistic effects, and tidal corrections; The speed of light in a vacuum. and These are receiver clock bias and satellite clock bias, respectively. Indicates first-order ionospheric delay; For the corresponding frequency, For the corresponding wavelength; The tropospheric delay along the signal propagation path; For carrier phase ambiguity; and These are pseudorange observation noise and carrier phase observation noise, respectively; multipath error, hardware delay, and higher-order ionospheric delay are ignored here.

[0191] Assume the number of satellites observed at the current epoch is , which includes GNSS satellites and For a low-Earth orbit satellite, taking dual-frequency non-differential non-combined PPP positioning as an example, the corresponding state vector is:

[0192]

[0193] in, In order, the receiver's three-dimensional position, receiver clock error, and Zenith Wet Delay (ZWD) are: receiver's three-dimensional position, receiver clock error, and Zenith Wet Delay (ZWD). This represents the number of satellites observed at the current epoch. These are the parameters of the ionosphere along the tilted path. These are the carrier phase ambiguity parameters for the corresponding frequency points. The satellite-related state parameters include ionospheric delay and ambiguity parameters; the number of state parameters is... indivual.

[0194] For each state parameter, different stochastic processes are typically used to construct the state equations based on their actual physical characteristics (as shown in Table 1). In the white noise model, there is no correlation between epochs, while the state transition matrices for random walk noise, random constants, and piecewise constants are all identity matrices, indicating correlation between epochs. Therefore, a one-step prediction is required for each epoch or at a certain step size. Furthermore, cycle slips exist for the ambiguity parameters, requiring resetting after each cycle slip. In addition, the pseudorange and carrier phase observation equations are nonlinear equations, requiring a certain initial state parameters to be considered. Linearization is performed at the point, and the solution result for the current epoch is obtained through iterative calculation.

[0195] The one-step prediction in Table 1 only involves matrix addition, and there is no correlation between the state parameters in satellite positioning. , and Since they are all diagonal arrays, only the diagonal elements need to be assigned or added. The increase in the number of satellites has little impact on the computation time and resource load of the one-step prediction stage.

[0196] However, the measurement update phase requires performing numerous matrix addition, multiplication, transpose, and policy inversion operations. The dimensions of the design matrix, state parameter covariance matrix, and measurement noise covariance matrix are respectively... , and .

[0197] In traditional GNSS positioning algorithms, the number of all satellites in the entire constellation (denoted as ) is usually used. Determine the dimension of the state vector. If the number of low-Earth orbit constellation satellites is in the tens of thousands, the matrix dimension will increase quadratically. This leads to a significant increase in computational complexity for core operations such as matrix inversion from ( ) jumped to ( This dimensional expansion not only significantly prolongs the single-epoch positioning solution time, but also causes numerical stability problems due to the ill-conditioned properties of high-dimensional matrices, ultimately leading to a degradation in the accuracy of the positioning results and a prolonged convergence time.

[0198] Therefore, in this embodiment, a low-orbit satellite index array is introduced to reduce the dimension of the filtering matrix:

[0199] To address the computational difficulties caused by the proliferation of satellites, and considering the relatively small number of satellites visible simultaneously at a single station per epoch, the proposed implementation adds a low-Earth orbit (LEO) satellite number index array to each epoch to record the LEO satellite numbers for the current epoch.

[0200] Index LEO (k)=[LEO1, LEO2, LEO I ]

[0201] in, For the calendar The corresponding low-orbit satellite index array; LEO i Assign a number to the corresponding low-Earth orbit satellite, and a unique identifier for each satellite.

[0202] Based on the aforementioned low-Earth orbit satellite index array, the number of state parameters related to low-Earth orbit satellites in the state vector is also set to [number]. To reduce the dimensionality of the state vector and matrix during the solution process, a synchronous update is required in the one-step prediction and measurement update steps. The one-step prediction process for each epoch is as follows:

[0203] Sort the state parameters:

[0204] Construct a low-orbit satellite index array based on current epoch observation data;

[0205] The predicted values ​​are calculated for each state parameter. For state parameters related to low-Earth orbit satellites, if a non-white noise stochastic process is used for estimation, the low-Earth orbit satellite index array of the current epoch and the previous epoch needs to be matched between epochs.

[0206] If a match is found with the parameter index of the previous epoch, the predicted value and covariance matrix of each state parameter are updated according to the stochastic process corresponding to each state parameter, as shown in Table 1. If no match is found, the corresponding state parameter is reset, and the ambiguity parameter also needs to be reset after a cycle slip.

[0207] For measurement updates, adaptation based on the index array is required when calculating the error equation. This mainly involves matching the initial values ​​of satellite-related state parameters with their design matrix column indices. The measurement update process includes, but is not limited to:

[0208] Error equations are constructed for each satellite, and initial values ​​of parameters for measurement updates are obtained based on one-step prediction parameter estimates. The initial values ​​of parameters related to low-Earth orbit satellites need to be determined through an index array.

[0209] Match the index of the current low-Earth orbit satellite in the index array, and fill in the state parameters related to the low-Earth orbit satellite one by one based on this index;

[0210] Perform filtering calculations and save the low-orbit satellite index array and the solution results for the current epoch.

[0211] Furthermore, current GNSS satellite positioning algorithms construct positioning solution models based on the total number of satellites. Therefore, the dimensions of the state vector, state parameter covariance matrix, and design matrix need to be 5+3n+3L, (5+3n+3L)×(5+3n+3L), and 4m×(5+3n+3L). Assuming the number of GNSS satellites is n=100, a low-Earth orbit constellation is added for joint positioning solution. The performance of the corresponding algorithm is evaluated by measuring the incremental computational complexity during the update process and the memory usage (based on 8 bytes of double-precision floating-point calculation) required to store the state vector and state parameter covariance matrix from the previous epoch during each prediction step.

[0212] Table 2 shows the state vector / matrix dimensions and computational burden under different numbers of LEO satellites. When the total number of LEO satellites is small, the increase in matrix dimension and computational burden of traditional algorithms is still within a controllable range; however, as the constellation size expands, the matrix dimension, computational complexity, and storage resources will increase exponentially, which will become an unbearable resource bottleneck for lightweight end users. For the traditional algorithm framework based on the total number of satellites, the embodiments of this application optimize the positioning solution algorithm based on the number of visible satellites in each epoch of LEO satellites. Since the number of visible satellites per station will not increase synchronously with the surge in the number of constellation satellites, for example, when the number of LEO constellation satellites is 1000 and the number of visible satellites per station is only 40, the computational efficiency and storage resource requirements of the embodiments of this application will not increase exponentially synchronously.

[0213] The specific process of the embodiments of this application can be as follows: Figure 5 As shown, including but not limited to:

[0214] S502, construct a low-orbit satellite index array based on the current epoch observations (the aforementioned current observation data);

[0215] S504, pseudorange single-point positioning (SPP positioning) solves to obtain the receiver position and initial clock error value;

[0216] Specifically, SPP positioning solution refers to single-point positioning solution, which means using pseudorange observations of low-Earth orbit satellites and navigation satellites visible at the current epoch, and solving the linearized pseudorange observation equations through the least squares method or the least norm method, thereby obtaining the estimated three-dimensional coordinates of the receiver in the Earth reference frame and the estimated deviation of the receiver clock relative to the system time.

[0217] S506, perform a one-step prediction;

[0218] Specifically, it can be adopted Figure 3 The illustrated operation procedure performs one step of prediction;

[0219] S508, perform measurement updates;

[0220] Specifically, it can be adopted Figure 4 The operation procedure shown performs measurement updates;

[0221] S510, saves the low-Earth orbit satellite index array and solution results for the current epoch;

[0222] S512, Is this the last epoch? If yes, execute S514; otherwise, execute S502.

[0223] S514, End.

[0224] In this application's embodiments, considering that in traditional GNSS positioning algorithms, the matrix dimension grows linearly or quadratically with the total number of satellites, a low-Earth orbit (LEO) satellite index array can be constructed and applied. This includes dynamically constructing a subset of satellite visibility based on observation data in each epoch, and using this array to adaptively compress the state vector and observation matrix. Furthermore, the positioning algorithm utilizes a synchronous update mechanism based on the index array, including updating the predicted values ​​and covariance matrix of the state parameters estimated by the non-white noise stochastic process in one-step prediction, and adapting the error equation through the index array in measurement updates, thereby achieving efficient estimation of state parameters. This effectively solves the key technical bottlenecks in real-time precise positioning of end users caused by the exponential growth in the number of satellites in giant LEO navigation constellations, such as a surge in computational complexity, a dramatic increase in storage resource consumption, and deterioration in numerical stability.

[0225] Therefore, this embodiment significantly reduces the matrix dimension by dynamically constructing a subset of visible satellites, thereby reducing the computational complexity of matrix operations. Furthermore, traditional methods use the entire constellation of satellites as the dimension to construct adjustment correlation vectors and matrices, while this embodiment uses an index array mechanism to construct the positioning algorithm framework only based on visible low-Earth orbit satellites in the current epoch, effectively reducing memory usage. This embodiment, by reducing the matrix dimension strategy, minimizes the propagation of errors from high-dimensional matrix operations, improves computational stability, and ensures the availability and reliability of the positioning service.

[0226] It is understood that in the specific embodiments of this application, data such as user information are involved. When the above embodiments of this application are applied to specific products or technologies, user permission or consent is required, and the collection, use and processing of related data must comply with the relevant laws, regulations and standards of the relevant countries and regions.

[0227] It should be noted that, for the sake of simplicity, the foregoing method embodiments are all described as a series of actions. However, those skilled in the art should understand that this application is not limited to the described order of actions, as some steps may be performed in other orders or simultaneously according to this application. Furthermore, those skilled in the art should also understand that the embodiments described in the specification are preferred embodiments, and the actions and modules involved are not necessarily essential to this application.

[0228] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method.

[0229] Based on this understanding, the technical solution of this application, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as read-only memory (ROM) / random access memory (RAM), magnetic disk, optical disk), and includes several instructions to cause a terminal device (which may be a mobile phone, computer, server, or network device, etc.) to execute the methods described in the various embodiments of this application.

[0230] According to another aspect of the embodiments of this application, a terminal positioning device for implementing the above-described terminal positioning method is also provided. This terminal positioning device can be used to implement the terminal positioning method provided in the above embodiments, and details already described will not be repeated. As used below, the term "module" can refer to a combination of software and / or hardware that implements a predetermined function. Although the device described in the following embodiments is preferably implemented in software, hardware implementation, or a combination of software and hardware, is also possible and contemplated.

[0231] Figure 6 This is a structural block diagram of an optional terminal positioning device according to an embodiment of this application, such as... Figure 6 As shown, the terminal positioning device includes:

[0232] The determination module 602 is used to determine the satellite that is visible to the terminal in both the first time epoch and the second time epoch as the first satellite, and to determine the satellite that is visible to the terminal in the first time epoch but not visible in the second time epoch as the second satellite.

[0233] The prediction module 604 is used to determine the historical state parameters of the first satellite from the historical state data of the second time epoch based on the satellite identifier of the first satellite, determine the predicted state parameters of the first satellite based on the historical state parameters of the first satellite, and determine the predicted state parameters of the second satellite based on the current observation data. The historical state data includes the historical state parameters of any satellite visible to the terminal in the second time epoch, and the current observation data is determined by the satellite signal received by the terminal in the first time epoch.

[0234] The generation module 606 is used to determine the terminal positioning result based on the predicted state parameters of the first satellite and the predicted state parameters of the second satellite.

[0235] In an exemplary embodiment, the apparatus is configured to identify a satellite visible to the terminal at both a first time epoch and a second time epoch as a first satellite, and to identify a satellite visible to the terminal at the first time epoch but not at the second time epoch as a second satellite by: generating a current satellite index array based on current observation data, wherein the current satellite index array is used to store the current satellite identifiers of satellites visible to the terminal at the first time epoch; obtaining a historical satellite index array, wherein the historical satellite index array is used to store the historical satellite identifiers of satellites visible to the terminal at the second time epoch; and performing an element-by-element traversal comparison of the current satellite index array and the historical satellite index array to determine the first satellite and the second satellite.

[0236] In an exemplary embodiment, the apparatus is configured to determine a first satellite and a second satellite by performing an element-by-element comparison of the current satellite index array and the historical satellite index array as follows: sequentially determining the current satellite identifier in the current satellite index array as the target identifier, and performing the following operations on the target identifier until the current satellite identifier traversal is completed: if the target identifier exists in the historical satellite index array, determining the satellite corresponding to the target identifier as the first satellite; if the target identifier does not exist in the historical satellite index array, determining the satellite corresponding to the target identifier as the second satellite.

[0237] In an exemplary embodiment, the apparatus is configured to determine the satellite corresponding to the target identifier as the first satellite when the target identifier exists in the historical satellite index array by: obtaining the element index value corresponding to the target identifier in the historical satellite index array; and determining the historical state parameters of the first satellite from the historical state data based on the element index value, wherein the historical state parameters of the first satellite are stored in the historical state data at the storage location corresponding to the element index value.

[0238] In an exemplary embodiment, the apparatus is configured to determine the predicted state parameters of a first satellite based on historical state parameters of a first satellite, and to determine the predicted state parameters of a second satellite based on current observation data of a terminal, by: processing the historical state parameters of the first satellite using a stochastic process model to obtain the predicted state parameters of the first satellite; and calculating the predicted state parameters of the second satellite based on the pseudorange parameters and carrier phase parameters of the second satellite in the current observation data of the terminal.

[0239] In an exemplary embodiment, the apparatus is configured to determine a terminal positioning result based on predicted state parameters of a first satellite and predicted state parameters of a second satellite by: acquiring initial state parameters of the terminal, wherein the initial state parameters include initial position parameters, initial clock error parameters, and zenith tropospheric wet delay residual parameters; generating an initial state vector based on the initial state parameters, the predicted state parameters of the first satellite, and the predicted state parameters of the second satellite; updating the initial state vector using current observation data through a Kalman filter algorithm to obtain a target state vector; and generating a terminal positioning result based on the target state vector.

[0240] Regarding the apparatus in the above embodiments, the terms "module" or "unit" refer to a computer program or part of a computer program with a predetermined function, which works together with other related parts to achieve a predetermined goal, and can be implemented wholly or partially using software, hardware (such as processing circuitry or memory), or a combination thereof. Similarly, a processor (or multiple processors or memory) can be used to implement one or more modules or units. Furthermore, each module or unit can be part of an overall module or unit that includes the functionality of that module or unit. The specific manner in which each module performs its operations has been described in detail in the embodiments relating to the method, and will not be elaborated upon here.

[0241] According to another aspect of the embodiments of this application, an electronic device is provided.

[0242] The electronic device includes a memory, a processor, and a computer program stored in the memory and executable on the processor. The processor is configured to perform the steps in any of the above method embodiments via the computer program. In an exemplary embodiment, the electronic device may further include a transmission device and an input / output device, wherein the transmission device is connected to the processor, and the input / output device is connected to the processor. Specific examples in this embodiment can be found in the examples described in the above embodiments and exemplary implementations, and will not be repeated here.

[0243] According to one aspect of this application, a computer program product is also provided, which includes a computer program.

[0244] The computer program product includes a computer program / instructions containing program code for performing the methods shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from a network via communication section 709, and / or installed from removable media 711. When the computer program is executed by central processing unit 701, it performs various functions provided in the embodiments of this application. The sequence numbers of the embodiments of this application above are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.

[0245] Figure 7 A schematic block diagram of a computer system architecture for implementing embodiments of the present application is shown. Figure 7 As shown, the computer system includes a Central Processing Unit (CPU) 701, which performs various appropriate actions and processes based on programs stored in ROM 702 or loaded into RAM 703 from storage section 708. Random access memory 703 also stores various programs and data required for system operation. The CPU 701, ROM 702, and RAM 703 are interconnected via bus 704. Input / output (I / O) interface 705 is also connected to bus 704.

[0246] The following components are connected to the I / O interface 705: an input section 706 including a keyboard, mouse, etc.; an output section 707 including a cathode ray tube (CRT), liquid crystal display (LCD), and speakers, etc.; a storage section 708 including a hard disk, etc.; and a communication section 709 including a network interface card, such as a local area network card or modem, etc. The communication section 709 performs communication processing via a network such as the Internet. A drive 710 is also connected to the input / output interface 705 as needed. A removable medium 711, such as a disk, optical disk, magneto-optical disk, semiconductor memory, etc., is installed on the drive 710 as needed so that computer programs read from it can be installed into the storage section 708 as needed.

[0247] The sequence numbers of the embodiments in this application are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.

[0248] Specifically, according to embodiments of this application, the processes described in the various method flowcharts can be implemented as computer programs / instructions. For example, embodiments of this application include a computer program / instruction comprising a computer program carried on a computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via a communication portion, and / or installed from a removable medium. When the computer program is executed by a central processing unit, it performs various functions defined in the system of this application. In such embodiments, the computer program / instruction can be downloaded and installed from a network via a communication portion, and / or installed from a removable medium. When the computer program / instruction is executed by a central processing unit, the aforementioned terminal positioning method is performed.

[0249] According to one aspect of this application, a computer-readable storage medium is also provided.

[0250] The processor of the aforementioned electronic device can read the computer instructions from a computer-readable storage medium, and execute the computer instructions to cause the electronic device to perform the terminal positioning method provided in the various optional implementations of the aforementioned terminal positioning aspect.

[0251] Optionally, in this embodiment, the computer-readable storage medium described above may be configured to store methods for performing the embodiments of this application.

[0252] Optionally, in this embodiment, those skilled in the art will understand that all or part of the steps in the various methods of the above embodiments can be implemented by a program instructing the hardware related to the terminal device. The program can be stored in a computer-readable storage medium, which may include: flash drive, read-only memory (ROM), random access memory (RAM), disk or optical disk, etc.

[0253] The sequence numbers of the embodiments in this application are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.

[0254] If the integrated units in the above embodiments are implemented as software functional units and sold or used as independent products, they can be stored in the aforementioned computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or 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 one or more electronic devices to execute all or part of the steps of the methods described in the various embodiments of this application.

[0255] In the several embodiments provided in this application, it should be understood that the disclosed application can be implemented in other ways. The device embodiments described above are merely illustrative; for example, the division of units is only a logical functional division, and 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 displayed or discussed mutual couplings, direct couplings, or communication connections may be through some interfaces; indirect couplings or communication connections between units or modules may be electrical or other forms.

[0256] 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.

[0257] Furthermore, the functional units in the various embodiments of this application 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. The integrated unit can be implemented in hardware or as a software functional unit.

[0258] The above description is only a preferred embodiment of this application. It should be noted that for those skilled in the art, several improvements and modifications can be made without departing from the principle of this application, and these improvements and modifications should also be considered within the scope of protection of this application.

Claims

1. A terminal positioning method, characterized in that, include: Satellites that are visible to the terminal at both the first and second time epochs are identified as the first satellites, and satellites that are visible to the terminal at the first time epoch but not at the second time epoch are identified as the second satellites. Based on the satellite identifier of the first satellite, the historical state parameters of the first satellite are determined from the historical state data of the second time epoch. Based on the historical state parameters of the first satellite, the predicted state parameters of the first satellite are determined. Based on the current observation data of the terminal, the predicted state parameters of the second satellite are determined. The historical state data includes the historical state parameters of any satellite visible to the terminal at the second time epoch. The current observation data is determined by the satellite signals received by the terminal at the first time epoch. The terminal positioning result is determined based on the predicted state parameters of the first satellite and the predicted state parameters of the second satellite.

2. The method according to claim 1, characterized in that, The step of identifying a satellite visible to the terminal at both a first time epoch and a second time epoch as a first satellite, and identifying a satellite visible to the terminal at the first time epoch but not visible at the second time epoch as a second satellite, includes: A current satellite index array is generated based on the current observation data, wherein the current satellite index array is used to store the current satellite identifiers of the satellites visible to the terminal in the first time epoch; Obtain a historical satellite index array, wherein the historical satellite index array is used to store the historical satellite identifiers of the satellites visible to the terminal in the second time epoch; The first satellite and the second satellite are determined by traversing and comparing each element of the current satellite index array and the historical satellite index array.

3. The method according to claim 2, characterized in that, The step of performing an element-by-element comparison of the current satellite index array and the historical satellite index array to determine the first satellite and the second satellite includes: The current satellite identifiers in the current satellite index array are sequentially identified as target identifiers, and the following operations are performed on the target identifiers until the current satellite identifiers have been traversed: If the target identifier exists in the historical satellite index array, the satellite corresponding to the target identifier is identified as the first satellite; If the target identifier does not exist in the historical satellite index array, the satellite corresponding to the target identifier will be identified as the second satellite.

4. The method according to claim 3, characterized in that, If the target identifier exists in the historical satellite index array, after determining the satellite corresponding to the target identifier as the first satellite, the method further includes: Obtain the element index value corresponding to the target identifier in the historical satellite index array; The historical state parameters of the first satellite are determined from the historical state data based on the element index value, wherein the historical state parameters of the first satellite are stored in the historical state data at the storage location corresponding to the element index value.

5. The method according to claim 1, characterized in that, The step of determining the predicted state parameters of the first satellite based on its historical state parameters and determining the predicted state parameters of the second satellite based on the current observation data of the terminal includes: The historical state parameters of the first satellite are processed using a stochastic process model to obtain the predicted state parameters of the first satellite. The predicted state parameters of the second satellite are calculated based on the pseudorange parameters and carrier phase parameters of the second satellite in the current observation data of the terminal.

6. The method according to claim 1, characterized in that, Determining the terminal positioning result based on the predicted state parameters of the first satellite and the predicted state parameters of the second satellite includes: The initial state parameters of the terminal are obtained, wherein the initial state parameters include initial position parameters, initial clock error parameters, and zenith tropospheric wet delay residual parameters; An initial state vector is generated based on the initial state parameters, the predicted state parameters of the first satellite, and the predicted state parameters of the second satellite. The initial state vector is updated using the current observation data through the Kalman filter algorithm to obtain the target state vector; The terminal positioning result is generated based on the target state vector.

7. A terminal positioning device, characterized in that, include: The determination module is used to determine the satellite that is visible to the terminal in both the first time epoch and the second time epoch as the first satellite, and to determine the satellite that is visible to the terminal in the first time epoch but not visible in the second time epoch as the second satellite. The prediction module is configured to determine the historical state parameters of the first satellite from the historical state data of the second time epoch based on the satellite identifier of the first satellite, determine the predicted state parameters of the first satellite based on the historical state parameters of the first satellite, and determine the predicted state parameters of the second satellite based on the current observation data of the terminal. The historical state data includes the historical state parameters of any satellite visible to the terminal at the second time epoch, and the current observation data is determined by the satellite signals received by the terminal at the first time epoch. The generation module is used to determine the terminal positioning result based on the predicted state parameters of the first satellite and the predicted state parameters of the second satellite.

8. A computer program product comprising a computer program / instructions, characterized in that, When the computer program / instructions are executed by the processor, they implement the steps of the method according to any one of claims 1 to 6.

9. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, wherein the computer program, when executed by a processor, implements the steps of the method according to any one of claims 1 to 6.

10. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • Positioning method and system based on navigation satellite and low-orbit enhanced satellite

    CN109001786A

  • Medium-orbit communication satellite positioning time service method and device

    CN111398994A