Analysis of rtk source code in rtklib and optimization suggestions

In order to solve whether a certain type of chip of the company meets the requirements of Qianxun RTK, the fixed rate of ambiguity of single-frequency RTK under different satellite systems is tested. Therefore, it is necessary to be familiar with RTK algorithm principle and debug rtklib post-processing program.
1. Test data acquisition
Use rtknavi to collect data. For specific steps, please refer to manual, which will not be repeated here. There are three considerations for choosing rtknavi:
(1) The fixed ambiguity can be seen in real time;
(2) It can ensure the consistency of the data flow observation period between the base station and the rover. The base station uses TCP to collect data, rtcm3 format ; The rover uses the port to collect data, ubx format.
(3) The data collected in step (2) can be converted by rtkconv and then processed by rtkpost.

2. Analysis of rtk algorithm in manual The rtk algorithm is used to
realize precise relative positioning. The definition of rtk algorithm will not be repeated here, and Xie Gang's "GPS Principles and Receiver Design" is recommended. The rtk algorithm in the manual is also introduced, but the manual does not give specific examples for vector and matrix sizes. For ease of understanding, an example of vector and matrix size setting under single frequency single system is given.
Assuming that there are m common-view satellites, for single-frequency single-system data, y=h(x)+v, the size of the vector and matrix are as follows:
1. State vector x (3+3+m)*1
2. DD The vector size of the measurement vector y and its measurement model is 2(m-1) 1, where, suppose that the reference star of DD is sat 13.
E represents the LOS three-dimensional vector of m satellites m
3
4. D Single difference SD conversion Matrix (m-1)*m, then DE (m-1)*3
5. Measurement error R 2(m-1)*2(m-1)
where m represents the number of single-difference phase deviations.
Question: What is the size of single-frequency dual-system, dual-frequency dual-system, and multi-frequency and multi-system? Very interesting

3. Debug steps of
rtklib post-processing platform The rtklib post-processing platform has been set up in "RTKLIB Ver2.4.3 in the VS version configuration process and the steps to solve the problems" . Specific solutions have been made to the problems that arise. It is recommended to debug At this time, open the trace macro first, and adjust the level to 5 in the configuration. At this time, you can see all the debug processes by running the data, which is of great benefit to understanding the framework of the rtk algorithm.
The precise relative positioning relpos function is mainly composed of the extended Kalman filter algorithm (time update udstate function, measurement update filter function) and ambiguity fixation algorithm (LAMBDA).
According to the trace, the process of obtaining the source code relpos function is roughly as follows:
1) First find the non-difference residual zdres of the base station (y in the print indicates the non-difference residual of each satellite of the base station);
2) Then select the base station and the rover Share the star, and then update the time
3) At this time trace 4 x(0) = 1 2 3 (the dividing line)
4) Find the non-difference residual zdres for the rover (the y in the print represents the non-difference of each satellite of the rover Residual), find the double-difference residual and partial derivative ddres (double-difference residual v, Jacobian matrix H, DD measurement error covariance matrix R), and then update the measurement filter
5) At this time trace 4 x(1 )=1 2 3 (the dividing line),
6) For the post-inspection floating-point solution, perform operations on the rover zdres, ddres, and valpos. Note that H=NULL in ddres at this time, which means that H is not printed and R matrix is ​​not Change, it is printed
7) Then perform LAMBDA ambiguity fixed solution (print single difference SD conversion matrix D), if it passes, perform the same operation as step 5

Fourth, the problem of setting the covariance matrix R of the observation error in rtklib
During the debugging process, it was found that the random model in rtklib uses the height angle fixed weight (there are only), and the model is used before and after the rtk test. The difference covariance matrix R is calculated using single difference, which will result in the same Ri value for double difference residuals when large or small. The Herment variance component estimation method can be used. The Herment variance component estimation can be adjusted according to the post-test estimation. ratio.

The specific code implementation and test results are left for later

references:

[1] Liu Tianjun, Wang Jian, Han Houzeng, Ning Yipeng, Yu Hang. Exponentially weighted Helmert variance component estimation method for GPS/BDS classification combination positioning[J]. Geodesy and Geodynamics, 2018, 38(07): 684 -688+694.
[2] Liu Jinhai, Tu Rui, Zhang Rui, Zhang Pengfei, Lu Xiaochun. Helmert variance component estimation in GPS/GLONASS/BDS combined positioning weight ratio determination application[J]. Geodesy and Geodynamics, 2018,38(06):568-570+576.
[3]Wang Weiwen, Li Jiankang. Helmert variance component estimation algorithm research in measurement adjustment[J].Value Engineering,2014,33(26):217-218 .
[4]http://www.rtklib.com/prog/manual_2.4.2.pdf

Guess you like

Origin blog.csdn.net/weixin_43074576/article/details/105822145