A method and device for solving user coordinates based on newton iteration of FPGA

By using a multi-stage pipeline structure based on FPGA and dynamic damping factor adjustment, the problems of slow Newton iteration calculation speed and high resource consumption are solved, achieving efficient and real-time target coordinate calculation, and improving the real-time performance and accuracy of navigation positioning and robot motion control.

CN120703788BActive Publication Date: 2026-03-24CHENGDU WULANG TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-06-13
Publication Date
2026-03-24

AI Technical Summary

Technical Problem

Existing methods for calculating target coordinates using Newton iteration suffer from slow calculation speed, poor real-time performance, high hardware resource consumption, and lack of residual dynamic control mechanisms in navigation and positioning, robot motion control, and radar target tracking.

Method used

A multi-stage pipeline structure based on FPGA is adopted. The number of satellite coordinates is controlled by a multi-select data switch to construct the pseudorange matrix and Jacobian matrix. The Cordic algorithm is used to optimize the division and square root operations. Combined with dynamic adjustment of the damping factor, residual feedback and convergence optimization are realized in the iterative process.

Benefits of technology

It significantly improves the computing speed, shortens the iteration time to less than 50µs, optimizes hardware resource consumption, and enables real-time feedback of residuals, thereby improving the reliability and real-time performance of the computing results.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120703788B_ABST
    Figure CN120703788B_ABST
Patent Text Reader

Abstract

The application discloses a kind of method and device based on Newton iteration of user coordinates, related to coordinate solving technique field, define data multiple selection switch, control the number of input satellite coordinates, construct pseudo-range matrix R and Jacobian matrix G according to satellite coordinates and user coordinates, pseudo-range matrix R and pseudo-range difference L are used, the difference between pseudo-range distance and theoretical distance is calculated as Delta;With user coordinates, Jacobian matrix G and Delta, solve current user coordinates, and simultaneously obtain pseudo-range matrix Pr;Based on all pseudo-range difference L and pseudo-range matrix Pr, the difference between current pseudo-range distance and theoretical distance is solved as Delta ‑ im;With Delta and Delta ‑ Im obtain residual factor and compare, adjust corresponding data, repeat the above process to iterate, until convergence output user coordinates.The application is built in the mode of multiple additional multistage pipeline, enhances code parallelism, fully utilizes reusable time between multistage pipeline, shortens time loss in calculation process, greatly optimizes resource.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of coordinate calculation technology, and in particular to a method and apparatus for calculating user coordinates using Newton iteration based on FPGA. Background Technology

[0002] In fields such as navigation and positioning, robot motion control, and radar target tracking, the core problem of real-time target coordinate calculation can be transformed into solving a system of nonlinear equations. Newton's iteration method, due to its quadratic convergence, has become an efficient numerical solution for such problems. Currently, methods for calculating pseudorange using Newton's iteration are broadly divided into software and hardware implementations. Software implementations utilize traditional CPUs / GPUs based on floating-point operations and serial iterations, with single calculations typically taking milliseconds, failing to meet real-time requirements. Furthermore, residual calculations are usually handled by the software backend, unable to guide the iteration process in real time. Hardware implementations utilize chips to implement Newton's iteration, with latency around 200µs. They also lack a dynamic residual control mechanism and consume significant resources. In high-precision dynamic scenarios, the calculation speed needs to be controlled at the microsecond level (typically <100µs) to match millimeter-level positioning accuracy. Therefore, existing technologies for Newton's iteration, whether software or hardware-based, have slow calculation speeds, poor real-time performance, lack dynamic residual control mechanisms, and the hardware implementation suffers from high resource consumption. Summary of the Invention

[0003] In view of this, this application provides a method and apparatus for solving user coordinates using Newton's iterative method based on FPGA, in order to overcome the shortcomings of the prior art.

[0004] The first aspect of this application provides a method for solving user coordinates using Newton's iterative method based on FPGA, including:

[0005] S1. Obtain the user's initial coordinates x0 and multiple satellite coordinates P, and calculate the pseudo-range difference L; define a multi-select data switch to control the number of input satellite coordinates, and input all satellite coordinates P and pseudo-range difference L into the multi-select data switch;

[0006] S2. Set up a first pipeline to calculate the pseudorange matrix R based on the user's initial coordinates x0 and all satellite coordinates P transmitted by the multi-select data switch;

[0007] S3. Set up a second pipeline to calculate the Jacobian matrix G based on the user's initial coordinates x0, all satellite coordinates P and the pseudorange matrix R;

[0008] S4. Set up a fourth pipeline to calculate Delta, based on the pseudorange matrix R and all pseudorange differences L transmitted by the multi-select data switch, to obtain the difference between the pseudorange distance and the theoretical distance between the satellite and the user.

[0009] S5. Set up a third pipeline to solve for the user's current coordinates based on the user's initial coordinates x0, the Jacobian matrix G, and the Delta, and obtain the current coordinate data;

[0010] S6. Set up a fifth pipeline to calculate the current pseudorange distance between the satellite and the user based on the current coordinate data and all satellite coordinates P, and obtain the pseudorange matrix Pr.

[0011] S7. Based on all pseudorange differences L transmitted by the multi-select data switch and the pseudorange matrix Pr, the difference between the current pseudorange distance and the theoretical distance between the satellite and the user is calculated as Delta. - im;

[0012] S8. Based on the Delta, obtain the initial residual e; based on the Delta - im, get the current residual e - im; Determine the current residual e - If im is less than the initial residual e, then execute the first preset operation and repeat steps S1 to S7 until convergence is achieved. If not, execute the second preset operation and repeat steps S1 to S7 until convergence is achieved.

[0013] In one possible implementation of the first aspect, the first pipeline is specifically:

[0014] S21. Calculate the sum of squares of the coordinate differences between the user's initial coordinates x0 and all satellite coordinates P;

[0015] S22. Construct a square root module based on the Cordic algorithm to extract the square root of the sum of squares and obtain the square root result;

[0016] S23. Based on the square root result, construct the pseudo-distance matrix R.

[0017] In one possible implementation of the first aspect, the second pipeline is specifically:

[0018] S31. Subtract the user's initial coordinates x0 from all satellite coordinates P and then add them together to obtain multiple difference coordinates;

[0019] S32. Construct a division module based on the Cordic algorithm, and perform division operations on all difference coordinates with the pseudo-range matrix R to obtain multiple operation results;

[0020] S33. Based on all the operation results, construct the Jacobian matrix G.

[0021] In one possible implementation of the first aspect, the fourth pipeline specifically comprises:

[0022] S41. Setting Formulas Solve the problem. This is a correction term used during the iteration process to adjust R.

[0023] In one possible implementation of the first aspect, the third pipeline specifically comprises:

[0024] S51. Multiply the Jacobian matrix G with the transpose of the Jacobian matrix G to obtain the H matrix;

[0025] S52. Set the damping coefficient, multiply it by the identity matrix, and then sum it with the H matrix to obtain H. - im matrix;

[0026] S53. Regarding the H - Perform the inverse operation on the im matrix to obtain the inverse H. - im matrix;

[0027] S54. For the inverse H - Multiplying the im matrix by the transpose of the Jacobian matrix G yields the D1 matrix;

[0028] S55. Multiply the D1 matrix and the Delta matrix to obtain the D matrix;

[0029] S56. The current coordinate data is obtained by adding the user's initial coordinate x0 to the elements in the D matrix.

[0030] In one possible implementation of the first aspect, the fifth pipeline is specifically:

[0031] S61. Based on the current coordinate data and all satellite coordinates P, calculate the current pseudorange distance between the satellite and the user to obtain the pseudorange matrix Pr.

[0032] In one possible implementation of the first aspect, step S7 specifically includes:

[0033] Set formula Solve the problem. This is a correction term used in the iteration process to adjust Pr.

[0034] In one possible implementation of the first aspect, the first preset operation includes:

[0035] The user's initial coordinate x0 is updated using the current coordinate data; the damping coefficient is divided by 10; and the initial residual e is set to e. - im; Update the Jacobian matrix G.

[0036] In one possible implementation of the first aspect, the second preset operation includes:

[0037] Do not update the user's initial coordinate x0; multiply the damping coefficient by 10; keep the initial residual e unchanged; do not update the Jacobian matrix G.

[0038] A second aspect of this application provides an FPGA-based Newton-based iterative calculation device for user coordinates, comprising: a processor and a memory, the processor and the memory being connected via a communication bus; wherein, the processor is used to call and execute a program stored in the memory; the memory is used to store the program, the program being used to implement the FPGA-based Newton-based iterative calculation method for user coordinates as provided in the first aspect of this application.

[0039] Its beneficial effects are as follows: This invention discloses a method and apparatus for calculating user coordinates using Newton's iterative method based on FPGA. First, a data multi-select switch is defined to control the number of input satellite / base station coordinates. Then, a pseudorange matrix R and a Jacobian matrix G are constructed based on the satellite coordinates and user coordinates. Next, using the pseudorange matrix R and pseudorange difference L, the difference between the pseudorange distance and the theoretical distance between the satellite and the user is calculated as Delta. Using the user coordinates, the Jacobian matrix G, and Delta, the current user coordinates are solved, and the pseudorange matrix Pr is obtained simultaneously. Based on all pseudorange differences L and the pseudorange matrix Pr, the difference between the current pseudorange distance and the theoretical distance between the satellite and the user is calculated as Delta. - im; using Delta and Delta - The initial residual factor and the current residual factor are obtained and compared separately. Then, the corresponding data is adjusted, and the above process is repeated iteratively until convergence is achieved and the user coordinates are output. This invention enhances code parallelism by building multiple pipelines with multiple stages, making full use of the reusable time between multiple pipelines, shortening the time loss in the calculation process, and greatly optimizing resources. While significantly improving the calculation speed, it also provides real-time feedback of residuals, reducing the consumption of hardware resources on the basis of performance optimization. Attached Figure Description

[0040] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only embodiments of this application. For those skilled in the art, other drawings can be obtained based on the provided drawings without creative effort.

[0041] Figure 1 This is a schematic flowchart of a method for solving user coordinates using Newton's iterative method based on FPGA, provided in an embodiment of this application.

[0042] Figure 2 This is an iterative diagram illustrating the Newton-style iterative solution for user coordinates based on FPGA, provided in an embodiment of this application.

[0043] Figure 3 This is a schematic diagram of the first production line provided in an embodiment of this application;

[0044] Figure 4 This is a schematic diagram of the second production line provided in an embodiment of this application;

[0045] Figure 5 This is a schematic diagram of the third production line provided in the embodiments of this application. Detailed Implementation

[0046] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0047] In this application, relational terms such as "first" and "second" are used merely to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes the element.

[0048] Example 1

[0049] In existing technologies, methods for calculating pseudoranges using Newton's iteration are broadly divided into software and hardware implementations. Software implementations utilize traditional CPUs / GPUs based on floating-point operations and serial iterations, with single calculations typically taking milliseconds, which cannot meet real-time requirements. Furthermore, residual calculations are usually handled by the software backend, which cannot guide the iteration process in real time. Hardware implementations utilize chips to implement Newton's iterations, with a latency of approximately 200µs. They also lack dynamic residual control mechanisms and consume significant resources.

[0050] Therefore, this application provides a method for solving user coordinates using Newton's iterative method based on FPGA, such as... Figure 1 As shown, it includes:

[0051] S1. Obtain the user's initial coordinates x0 and multiple satellite coordinates P, and calculate the pseudo-range difference L; define a multi-select data switch to control the number of input satellite coordinates, and input all satellite coordinates P and pseudo-range difference L into the multi-select data switch;

[0052] S2. Set up a first pipeline to calculate the pseudorange matrix R based on the user's initial coordinates x0 and all satellite coordinates P transmitted by the multi-select data switch;

[0053] S3. Set up a second pipeline to calculate the Jacobian matrix G based on the user's initial coordinates x0, all satellite coordinates P and the pseudorange matrix R;

[0054] S4. Set up a fourth pipeline to calculate Delta, based on the pseudorange matrix R and all pseudorange differences L transmitted by the multi-select data switch, to obtain the difference between the pseudorange distance and the theoretical distance between the satellite and the user.

[0055] S5. Set up a third pipeline to solve for the user's current coordinates based on the user's initial coordinates x0, the Jacobian matrix G, and the Delta, and obtain the current coordinate data;

[0056] S6. Set up a fifth pipeline to calculate the current pseudorange distance between the satellite and the user based on the current coordinate data and all satellite coordinates P, and obtain the pseudorange matrix Pr.

[0057] S7. Based on all pseudorange differences L transmitted by the multi-select data switch and the pseudorange matrix Pr, the difference between the current pseudorange distance and the theoretical distance between the satellite and the user is calculated as Delta. - im;

[0058] S8. Based on the Delta, obtain the initial residual e; based on the Delta - im, get the current residual e - im; Determine the current residual e- If im is less than the initial residual e, then execute the first preset operation and repeat steps S1 to S7 until convergence is achieved. If not, execute the second preset operation and repeat steps S1 to S7 until convergence is achieved.

[0059] Please refer to Figure 2 , Figure 2 This is an iterative diagram illustrating the Newton-Raphson iterative calculation of user coordinates based on an FPGA, as provided in this application embodiment. First, a multi-select data switch of 4 to 10 is defined to control the number of input satellite / base station coordinates. Based on the user's initial coordinate x0 and all satellite coordinates, the pseudorange difference L is calculated. The pseudorange difference is the difference between the pseudorange observation value and the theoretical distance. The pseudorange observation value is obtained by measuring the time delay between the satellite's transmitted signal and the received signal using a receiver (user). Multiplying this time delay by the speed of light yields the pseudorange observation value. The theoretical distance is then calculated using the distance formula between two points based on the coordinates of the satellite and the user.

[0060] First production line: Please refer to Figure 3 , Figure 3 This is a schematic diagram of the first pipeline provided in the embodiments of this application; for example, the user's initial coordinates are obtained as follows: , No. The coordinates of the satellite are Then the first The distance between the satellite and the user is The pseudorange matrix R is formed by organizing the geometric distances of all satellites into column vectors, and the square root operation is performed by the square root module constructed by the Cordic algorithm.

[0061] Second production line: Please refer to Figure 4 , Figure 4 This is a schematic diagram of the second pipeline provided in the embodiments of this application; for example, the user's initial coordinates are obtained as follows: , No. The coordinates of the satellite are Then for the first The first satellite, the Jacobian matrix G of the first satellite. Behavior: The above steps are performed on all satellites to obtain the Jacobian matrix G. The division module, constructed using the Cordic algorithm, performs the division operation.

[0062] Third production line: Please refer to Figure 5 , Figure 5 This is a schematic diagram of the third pipeline provided in the embodiments of this application; the Jacobian matrix G is multiplied by the transpose of the Jacobian matrix G to obtain the H matrix; the damping coefficient is multiplied by the identity matrix and then summed with the H matrix to obtain H. - im matrix;

[0063] For the H - Perform the inverse operation on the im matrix to obtain the inverse H. - im matrix; for the inverse H - Multiply the im matrix by the transpose of the Jacobian matrix G to obtain the D1 matrix; multiply the D1 matrix by the Delta matrix to obtain the D matrix; add the user's initial coordinate x0 to the elements of the D matrix to obtain the current coordinate data.

[0064] Fourth production line: Setting formulas Solve the problem. This is a correction term used during the iteration process to adjust R.

[0065] Fifth pipeline: Based on the current coordinate data and all satellite coordinates P, calculate the current pseudorange distance between the satellite and the user to obtain the pseudorange matrix Pr.

[0066] Among them, setting formulas Solve the problem. This is a correction term used in the iteration process to adjust Pr.

[0067] The initial residual e is obtained by taking the sum of squares over Delta. - The sum of the squares of im is used to obtain the current residual e. - im, determine the current residual e - If im is less than the initial residual e, then perform the first preset operation, including: updating the user's initial coordinate x0 using the current coordinate data; dividing the damping coefficient by 10; and setting the initial residual e = e. - im; Update the Jacobian matrix G; Then repeat steps S1~S7 until convergence is achieved, output user coordinates and residuals, and complete the solution of user coordinates;

[0068] If not, perform the second preset operation, including: not updating the user's initial coordinate x0; multiplying the damping coefficient by 10; keeping the initial residual e unchanged; not updating the Jacobian matrix G; and then repeating steps S1 to S7 until convergence is achieved, outputting the user coordinates and residuals, thus completing the calculation of the user coordinates.

[0069] The process includes data initialization, inputting initial coordinates, determining the number of satellites / base stations P, and selecting the corresponding number of input data P and L. Through... Figure 2The first pipeline calculates the pseudorange matrix R. Pipeline 1 includes the sum of squares and square root operations of P and R. The square root module is constructed using the Cordic algorithm, saving significant resources. The R matrix data is then fed to the second pipeline to construct the Jacobian matrix G. The second pipeline includes matrix subtraction and division operations; the division is also constructed using the Cordic algorithm. In the third pipeline, matrix G is multiplied by its transpose to obtain matrix H. The damping coefficient is then factored in; it is multiplied by an identity matrix and added to matrix H to obtain a new matrix H_im. The inverse of H_im is multiplied by the transpose of G to obtain D1. Simultaneously, the fourth pipeline calculates the Delta matrix. The sum of squares of the elements in the Delta matrix yields the initial residual e. Multiplying matrix D1 by the Delta matrix results in a 1x3 matrix D. Adding the elements of D to x0 yields the current solution. In the fifth pipeline, the current solution is used as the new coordinates, and the pseudo-distance is recalculated to obtain the matrix Pr. The matrix L is subtracted from the matrix Pr, and Pr(1) is added to obtain the matrix Delta_im. The sum of squares of the elements in Delta_im yields the new residual e_im. Finally, the initial residual is compared with the current residual. If the current residual e_im is less than the initial residual e, the value of x0 is updated, the value of the Jacobian matrix G is updated, the value of e_im is assigned to e, the damping coefficient is divided by 10, and then the loop is entered for the next iteration until the entire calculation process is completed. Otherwise, the values ​​of x0, the Jacobian matrix G, and e remain unchanged, the damping coefficient is multiplied by 10, and then the loop is entered for the next iteration until the entire calculation process is completed. Finally, the solution coordinates and residuals are output in real time.

[0070] Currently, methods for calculating pseudorange based on Newton's iteration are slow, resulting in poor real-time performance of GNSS receivers and high resource consumption. Furthermore, they cannot provide real-time feedback of residuals to ensure data reliability. This embodiment employs a multi-stage pipeline structure with multiple pipelines running in parallel. The computational processes between pipelines overlap to maximize time overlap, minimizing iteration time. The multi-stage pipeline structure allows for the reuse of hardware resources. For resource-intensive operations such as division and square root, separate modules using the Cordic algorithm significantly reduce hardware resource consumption. Simultaneously, the code accelerates convergence, reduces the number of iterations, and provides real-time feedback of residuals, making the calculation results more reliable. This reduces the convergence time to less than 50µs, and optimizes resources to use 48 DSPs and 7105 LUTs.

[0071] In some embodiments, the first production line is specifically:

[0072] S21. Calculate the sum of squares of the coordinate differences between the user's initial coordinates x0 and all satellite coordinates P;

[0073] S22. Construct a square root module based on the Cordic algorithm to extract the square root of the sum of squares and obtain the square root result;

[0074] S23. Based on the square root result, construct the pseudo-distance matrix R.

[0075] In some embodiments, the second production line is specifically:

[0076] S31. Subtract the user's initial coordinates x0 from all satellite coordinates P and then add them together to obtain multiple difference coordinates;

[0077] S32. Construct a division module based on the Cordic algorithm, and perform division operations on all difference coordinates with the pseudo-range matrix R to obtain multiple operation results;

[0078] S33. Based on all the operation results, construct the Jacobian matrix G.

[0079] In some embodiments, the fourth production line specifically refers to:

[0080] S41. Setting Formulas Solve the problem. This is a correction term used during the iteration process to adjust R.

[0081] In some embodiments, the third production line specifically refers to:

[0082] S51. Multiply the Jacobian matrix G with the transpose of the Jacobian matrix G to obtain the H matrix;

[0083] S52. Set the damping coefficient, multiply it by the identity matrix, and then sum it with the H matrix to obtain H. - im matrix;

[0084] S53. Regarding the H - Perform the inverse operation on the im matrix to obtain the inverse H. - im matrix;

[0085] S54. For the inverse H - Multiplying the im matrix by the transpose of the Jacobian matrix G yields the D1 matrix;

[0086] S55. Multiply the D1 matrix and the Delta matrix to obtain the D matrix;

[0087] S56. The current coordinate data is obtained by adding the user's initial coordinate x0 to the elements in the D matrix.

[0088] In some embodiments, the fifth production line specifically refers to:

[0089] S61. Based on the current coordinate data and all satellite coordinates P, calculate the current pseudorange distance between the satellite and the user to obtain the pseudorange matrix Pr.

[0090] In some embodiments, step S7 specifically includes:

[0091] Set formula Solve the problem. This is a correction term used in the iteration process to adjust Pr.

[0092] In some embodiments, the first preset operation includes:

[0093] The user's initial coordinate x0 is updated using the current coordinate data; the damping coefficient is divided by 10; and the initial residual e is set to e. - im; Update the Jacobian matrix G.

[0094] In some embodiments, the second preset operation includes:

[0095] Do not update the user's initial coordinate x0; multiply the damping coefficient by 10; keep the initial residual e unchanged; do not update the Jacobian matrix G.

[0096] Example 2

[0097] Embodiment 2 of this application provides an FPGA-based Newton iterative calculation device for user coordinates, comprising: a processor and a memory, wherein the processor and the memory are connected via a communication bus; wherein the processor is used to call and execute a program stored in the memory; the memory is used to store the program, which is used to implement the FPGA-based Newton iterative calculation method for user coordinates as provided in Embodiment 1 of this application.

[0098] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computing software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0099] Although preferred embodiments of the invention have been described, those skilled in the art, upon learning the basic inventive concept, can make other changes and modifications to these embodiments. Therefore, the appended claims are intended to be interpreted as including both the preferred embodiments and all changes and modifications falling within the scope of the invention.

[0100] Obviously, those skilled in the art can make various modifications and variations to this invention without departing from its spirit and scope. Therefore, if these modifications and variations fall within the scope of the claims of this invention and their equivalents, this invention also intends to include these modifications and variations.

Claims

1. A method for solving user coordinates using Newton's iterative method based on FPGA, characterized in that, include: S1. Obtain the user's initial coordinates x0 and multiple satellite coordinates P, and calculate the pseudorange difference L; Define a multi-select data switch to control the number of input satellite coordinates, and input all satellite coordinates P and pseudo-range difference L to the multi-select data switch; S2. Set up a first pipeline to calculate the pseudorange matrix R based on the user's initial coordinates x0 and all satellite coordinates P transmitted by the multi-select data switch; S3. Set up a second pipeline to calculate the Jacobian matrix G based on the user's initial coordinates x0, all satellite coordinates P and the pseudorange matrix R; S4. Set up a fourth pipeline to calculate Delta, based on the pseudorange matrix R and all pseudorange differences L transmitted by the multi-select data switch, to obtain the difference between the pseudorange distance and the theoretical distance between the satellite and the user. S5. Set up a third pipeline to solve for the user's current coordinates based on the user's initial coordinates x0, the Jacobian matrix G, and the Delta, and obtain the current coordinate data; S6. Set up a fifth pipeline to calculate the current pseudorange distance between the satellite and the user based on the current coordinate data and all satellite coordinates P, and obtain the pseudorange matrix Pr. S7. Based on all pseudorange differences L transmitted by the multi-select data switch and the pseudorange matrix Pr, the difference between the current pseudorange distance and the theoretical distance between the satellite and the user is calculated as Delta. - im; S8. Based on the Delta, obtain the initial residual e; based on the Delta - im, get the current residual e - im; Determine the current residual e - If im is less than the initial residual e, then execute the first preset operation and repeat steps S1 to S7 until convergence is achieved. If not, execute the second preset operation and repeat steps S1 to S7 until convergence is achieved.

2. The method for solving user coordinates using Newton's iterative method based on FPGA according to claim 1, characterized in that, The first production line is specifically as follows: S21. Calculate the sum of squares of the coordinate differences between the user's initial coordinates x0 and all satellite coordinates P; S22. Construct a square root module based on the Cordic algorithm to extract the square root of the sum of squares and obtain the square root result; S23. Based on the square root result, construct the pseudo-distance matrix R.

3. The method for calculating user coordinates using Newton's iterative method based on FPGA according to claim 1, characterized in that, The second production line is specifically as follows: S31. Subtract the user's initial coordinates x0 from all satellite coordinates P and then add them together to obtain multiple difference coordinates; S32. Construct a division module based on the Cordic algorithm, and perform division operations on all difference coordinates with the pseudo-range matrix R to obtain multiple operation results; S33. Based on all the operation results, construct the Jacobian matrix G.

4. The method for calculating user coordinates using Newton's iterative method based on FPGA according to claim 1, characterized in that, The fourth production line is specifically as follows: S41. Setting Formulas Solve the problem. This is a correction term used during the iteration process to adjust R.

5. The method for calculating user coordinates using Newton's iterative method based on FPGA according to claim 1, characterized in that, The third production line is specifically as follows: S51. Multiply the Jacobian matrix G with the transpose of the Jacobian matrix G to obtain the H matrix; S52. Set the damping coefficient, multiply it by the identity matrix, and then sum it with the H matrix to obtain H. - im matrix; S53. Regarding the H - Perform the inverse operation on the im matrix to obtain the inverse H. - im matrix; S54. For the inverse H - Multiplying the im matrix by the transpose of the Jacobian matrix G yields the D1 matrix; S55. Multiply the D1 matrix and the Delta matrix to obtain the D matrix; S56. The current coordinate data is obtained by adding the user's initial coordinate x0 to the elements in the D matrix.

6. The method for calculating user coordinates using Newton's iterative method based on FPGA according to claim 1, characterized in that, The fifth production line is specifically as follows: S61. Based on the current coordinate data and all satellite coordinates P, calculate the current pseudorange distance between the satellite and the user to obtain the pseudorange matrix Pr.

7. The method for calculating user coordinates using Newton's iterative method based on FPGA according to claim 1, characterized in that, Step S7 is as follows: Set formula Solve the problem. This is a correction term used in the iteration process to adjust Pr.

8. The method for calculating user coordinates using Newton's iterative method based on FPGA according to claim 5, characterized in that, The first preset operation includes: The user's initial coordinate x0 is updated using the current coordinate data; the damping coefficient is divided by 10; and the initial residual e is set to e. - im; Update the Jacobian matrix G.

9. The method for calculating user coordinates using Newton's iterative method based on FPGA according to claim 5, characterized in that, The second preset operation includes: Do not update the user's initial coordinate x0; multiply the damping coefficient by 10; keep the initial residual e unchanged; do not update the Jacobian matrix G.

10. A device for solving user coordinates using Newton's iterative method based on FPGA, characterized in that, include: A processor and a memory are connected via a communication bus; wherein the processor is used to call and execute a program stored in the memory; The memory is used to store a program for implementing a method for calculating user coordinates using Newton's iterative method based on FPGA as described in any one of claims 1-9.

Citation Information

Patent Citations

  • Positioning calculating method of global navigation satellite system (GNSS) receiver

    CN103033825A

  • Method and device for assisting SINS (Strapdown inertial navigation system) in initial direction alignment during satellite navigation

    CN107525523A