文章快速检索     高级检索
  大地测量与地球动力学  2018, Vol. 38 Issue (4): 366-369  DOI: 10.14075/j.jgg.2018.04.007

引用本文  

邹进贵, 陈春莹. BDS/GPS双差解算库的嵌入式开发及性能分析[J]. 大地测量与地球动力学, 2018, 38(4): 366-369.
ZOU Jingui, CHEN Chunying. Embedded Development and Performance Analysis of BDS/GPS Double Difference Solution Library[J]. Journal of Geodesy and Geodynamics, 2018, 38(4): 366-369.

项目来源

国家自然科学基金(41674005)。

Foundation support

National Natural Science Foundation of China, No.41674005.

第一作者简介

邹进贵,博士,教授,博士生导师,主要研究方向为精密工程测量和变形监测技术,E-mail: jgzou@sgg.whu.edu.cn

About the first author

ZOU Jingui, PhD, professor, PhD supervisor, majors in precise engineering survey and deformation monitoring technology, E-mail:jgzou@sgg.whu.edu.cn.

文章历史

收稿日期:2017-02-14
BDS/GPS双差解算库的嵌入式开发及性能分析
邹进贵1,2     陈春莹1     
1. 武汉大学测绘学院,武汉市珞喻路129号,430079;
2. 精密工程与工业测量国家测绘地理信息局重点实验室,武汉市珞喻路129号,430079
摘要:主要开发同时具有BDS、GPS基线解算功能的ATL COM组件和DLL动态链接库,将其嵌入到网页开发中,并对不同观测时长、不同基线长度的多组实验数据进行处理与分析。结果表明,该基线解算库具有良好的封装性、嵌入性及普适性,且可以大幅度减少开发时间。
关键词组件开发DLL基线解算嵌入性

在目前卫星星座状态下,杨元喜等[1]初步评估了BDS的基本导航定位性能,得出其伪距和载波相位测量精度和GPS处在同一水平。BDS作为一个完全独立的全球卫星导航定位系统,同GPS的设计原理及定位方式很相似:BDS与GPS均采用码分多址技术;虽然BDS有多颗同步轨道卫星,但BDS所有卫星播发的广播星历内容与数据格式和GPS基本相同;BDS与GPS采用的时间系统、坐标系统稍有差别,但很容易通过转换统一到同一系统中。

本文采用传统GPS/BDS静态相对定位的数学模型,编写具有同时解算BDS和GPS基线功能的COM组件和DLL动态链接库。将基线解算库嵌入到不同的平台系统进行测试,对实测数据进行处理,表明该基线解算库具有良好的封装性、嵌入性及普适性,且可以大幅度减少开发时间。

1 基线解算数学模型

基线解算库采用双差观测方程,伪距和载波相位的双差观测方程为[2]

$ \begin{array}{c} \lambda \varphi _{ij}^{pq} = - \left( {l_j^p - l_j^q} \right){\rm{d}}{X_j} - \left( {m_j^p - m_j^q} \right){\rm{d}}{Y_j} - \\ (n_j^p - n_j^q){\rm{d}}{Z_j} - \lambda \Delta N_{ij}^{pq} - ({V_{{\rm{ion}}}})_{ij}^{pq} - ({V_{{\rm{trop}}}})_{ij}^{pq} + L_{ij}^{pq} \end{array} $ (1)
$ \begin{array}{c} P_{ij}^{pq} = - (l_j^p - l_j^q){\rm{d}}{X_j} - (m_j^p - m_j^q){\rm{d}}{Y_j} - \\ (n_j^p - n_j^q){\rm{d}}{Z_j} - ({V_{{\rm{ion}}}})_{ij}^{pq} - ({V_{{\rm{trop}}}})_{ij}^{pq} + L_{ij}^{pq} \end{array} $ (2)
$ L_{ij}^{pq} = L_{ij}^q - L_{ij}^p = {(\rho _j^q)_0} - \rho _i^q - {(\rho _j^p)_0} + \rho _i^p $ (3)

式中,ij为测站,i为基线的已知端,pq为观测卫星。

为了获得从测站近似位置到卫星j的方向余弦ljpmjpnjp以及测站j与卫星q之间的卫地距ρjq,需要确定卫星位置和测站近似位置。本文利用广播星历确定卫星位置,并且对北斗的GEO卫星坐标进行旋转[2]。参考文献[3]的伪距单点定位原理,确定测站的初始位置。

为了获得(Vion)ijpq和(Vtrop)ijpq,本文利用Hopfield模型获得对流层延迟改正,利用双频改正模型获得电离层延迟改正。

2 数据预处理 2.1 数据格式

本文使用标准Rinex 3.02格式的观测O文件和广播星历N文件。Rinex 3.02的混合观测文件同时包含GPS和BDS卫星观测数据。编程中,用字母C代表BDS,G代表GPS。

2.2 数据检测

周跳探测采用目前普遍使用的WM-GF组合检测[4]

1) WM探测周跳

宽巷模糊度bδ为:

$ {b_\delta } = \frac{{{L_\delta } - {P_\delta }}}{{{\lambda _\delta }}} $ (4)
$ {\lambda _\delta } = \frac{c}{{{f_1} - {f_2}}} $ (5)

式中,Lδ为载波相位的宽巷组合,Pδ为伪距的宽巷组合,λδ为宽巷波长。利用宽巷模糊度探测周跳的条件是:

$ \left| {{b_{\delta i}} - <{b_\delta }{ > _{i - 1}}} \right| \le 4{\sigma _i} $ (6)

式中,〈bδi〉为前i个历元bδ的平均值,σi为前i个历元bδ的均方根误差。如果满足式(6),则第i个历元没有发生周跳。

2) GF探测周跳

载波相位电离层残差组合LI为:

$ {L_I} = {L_1} - {L_2} $ (7)

相邻历元间作差得两历元间的电离层残差变化值ΔLIi为:

$ \Delta {L_{Ii}} = {L_{I(i)}} - {L_{I(i - 1)}} $ (8)

电离层残差组合探测条件为:

$ \left| {\Delta {L_{Ii}}} \right| \le 3\sigma $ (9)

如果满足式(8),则第i个历元没有发生周跳。

本文对周跳采取探测不修复原则,对探测出发生周跳的卫星,增加其单差模糊度。

3 算法实现与实例分析 3.1 BDS/GPS基线解算流程

基线解算的主要流程如图 1所示。

图 1 系统流程 Fig. 1 System flow chart
3.2 DLL动态链接库实现

在VS2010中,使用C++编写动态链接库,设置好可以生成动态链接库框架后,调用基线解算函数,该函数可以事先在控制台程序中编写。程序编译通过后,在工程目录下的Debug文件夹中生成“.dll”和“.lib”文件,将这些文件和“.h”头文件一起打包,其他程序即可调用,进行基线解算。

3.3 COM组件功能实现

基于ATL(active template library)开发COM组件[5],可极大提高COM组件的开发效率。ATL活动模板库是一种微软程序库,支持利用C++语言编写ASP代码以及其他ActiveX程序[6]

利用ATL编写COM组件十分方便,只需添加接口类和接口函数,在接口函数里面调用基线解算函数即可。编译成功后,在工程项目文件夹Debug文件夹下会生成相应的“.dll”文件,该文件即为具有基线解算功能的COM组件,本机注册之后,就可以在MFC或ASP.NET等不同平台系统中进行调用。

3.4 程序测试和实例分析

1) 程序测试

DLL测试:使用java对DLL进行测试,只验证java语言可以使用该组件。通过Jni的方式嵌入编程,java的运行界面如图 2所示。图 2中,“*****i”,表示第i条基线解算完成,“***postpos over***”表示所有基线解算完成。

图 2 java运行界面 Fig. 2 Java run-time interface

COM组件:使用本机单线程调用的方法,在计算机上通过“regsvr32+组件地址”进行注册,即可调用该组件,生成的网页界面如图 3所示。参数配置完成后,即可通过网页进行基线解算。

图 3 网页界面 Fig. 3 Web interface

2) 实例分析

实验1:随机选取某楼顶4个观测点,观测网型如图 4所示。使用天宝R9接收机接收卫星数据,观测时长为3h,采样间隔为10s,接收北斗三频和GPS双频信号。原始数据转换后生成Rinex 3.02格式的观测文件和广播星历文件。

图 4 楼顶观测点网型 Fig. 4 Observation points network of the roof

打开网址,输入4个观测O文件和4个广播星历N文件,经服务器处理得到基线解算结果,如表 1所示。

表 1 基线解算结果对比 Tab. 1 Comparison among results of baseline solution

将本文解算结果(向量解和基线长度)和华测HGO桌面软件解算结果进行对比,如图 5所示。可以看出,两种方法解算的基线长度之差在5 mm之内;对于3个方向的向量解,如果以HGO解算结果作为真值,最大误差为0.17 m,且XYZ 3个方向的误差走向一致。可以推断,本文算法存在一定的系统误差,在解算精度上仍需完善,但基于组件的应用程序只要接口不改变就不需要重新编译,便于网页后续更新。

图 5 本文结果与HGO残差图 Fig. 5 The residual plot between the results of this paper and HGO

对于解算效率,将3 h的观测文件进行分割,得到观测时长为1 h、2 h、3 h的观测文件,采用控制变量的方法在网页上进行基线解算,统计所需解算时间,结果如表 2所示。可以看出,使用的解算模式以及观测时长均对解算时间造成影响,且解算时间与观测时长成正比关系。使用HGO解算进行对比,由于其不易计算程序运行时间,因此只对表 2中最后一组(4个观测点、6条基线、观测时间为2 h)数据进行解算计时,从打开软件到解算完毕用时约90 s。所以就单线程的解算效率而言,本文使用的组件可以满足要求。

表 2 处理数据耗时 Tab. 2 Consuming time of data processing

实验2:由于实验1中的基线长度均不超过100 m,另外选取野外观测的3条基线数据,观测点网型如图 6所示。使用网页进行基线解算,结果如表 3所示。

图 6 野外观测点网型 Fig. 6 Observation points network of field

表 3 基线解算结果 Tab. 3 Results of baseline solution

综合实验1和实验2,利用公式各方向相对误差=(本文结果-HGO结果)/基线长度给出XYZ 3个方向的相对误差(图 7)。可以看出,3个方向的相对误差走向一致,均不超过10×10-3,说明本文算法具有普适性。

图 7 XYZ3个方向的相对误差 Fig. 7 The relative error of X, Y and Z direction
4 结语

本文使用传统基线解算方法和理论,编写基线解算程序,分别封装为COM组件和DLL动态链接库, 并利用java和网页开发进行测试,证明了基于组件的程序具有开发耗时短、复杂性低、便于程序更新等特点。实验1和实验2的结果表明,本文算法可以完成短基线解算的任务,解算结果达到使用要求,具有普适性。

参考文献
[1]
杨元喜, 李金龙, 王爱兵, 等. 北斗区域卫星导航系统基本导航定位性能初步评估[J]. 中国科学:地球科学, 2014, 44(1): 72-81 (Yang Yuanxi, Li Jinlong, Wang Aibing, et al. The Preliminary Assessment of Basic Navigation and Positioning Performance of BD Regional Satellite Navigation System[J]. Science China: Earth Science, 2014, 44(1): 72-81) (0)
[2]
李征航. GPS测量与数据处理[M]. 武汉: 武汉大学出版社, 2010 (Li Zhenghang. GPS Measurement and Data Processing[M]. Wuhan University Press, 2010) (0)
[3]
郝建录. 基于北斗卫星导航系统伪距单点定位方法研究及程序实现[D]. 青岛: 山东科技大学, 2014. (Hao Jianlu. Method and Program Implementation Based on Beidou Satellite Navigation System Pseudorange Single Point Positioning[D]. Qingdao: Shandong University of Science and Technology, 2014) (0)
[4]
李慧茹, 黄观文, 赵敏宁, 等. TurboEdit方法中周跳检测算法的改进[J]. 时间频率学报, 2012, 35(1): 43-49 (Li Huiru, Hang Guanwen, Zhao Minning, et al. The Improvement of TurboEdit Method of Cycle Slip Detection Algorithm[J]. Journal of Time and Frequency, 2012, 35(1): 43-49) (0)
[5]
罗杰森. COM技术内幕:微软组件对象模型[M]. 北京: 清华大学出版社, 1998 (Rogerson D. Inside COM:Microsoft Component Object Model[M]. Beijing: Tsinghua University Press, 1998) (0)
[6]
塔瓦雷斯. 深入解析ATL[M]. 北京: 电子工业出版社, 2007 (Tavares. In-Depth Analytical ATL[M]. Beijing: Electronic Industry Press, 2007) (0)
Embedded Development and Performance Analysis of BDS/GPS Double Difference Solution Library
ZOU Jingui1,2     CHEN Chunying1     
1. School of Geodesy and Geomatics, Wuhan University, 129 Luoyu Road, Wuhan 430079, China;
2. Key Laboratory of Precise Engineering and Industry Surveying, NASMG, 129 Luoyu Road, Wuhan 430079, China
Abstract: The main work of this paper, is to develop ATL COM components and a DLL dynamic link library that can resolve baseline of BDS and GPS, and embed COM components and DLL in web. Through several groups of experiments of different observation times and baseline lengths for processing, the analysis results show that the baseline calculating library has good encapsulation, embeddedness and universality, and can greatly reduce development time of developers.
Key words: component development; DLL; baseline solution; embedded components