更全的杂志信息网

基于混合编程的实时精密单点定位方法

更新时间:2009-03-28

精密单点定位技术(Precise Point Positioning,PPP)是基于精密GNSS卫星轨道和钟差产品实现的,其利用单台接收机即可在全球范围内进行作业,并直接获得厘米级精度的ITRF框架坐标[1-3]。因而在海岛礁测绘[4]、海平面监测[5]、高精度潮汐测量[3,6-7]、航空测量[8]等海工程方面具有广阔应用前景。但精密单点定位技术大多使用事后精密卫星轨道和卫星钟差产品,不能进行实时定位解算,因而无法满足海洋工程的实时性需求[9-11]。为推进PPP技术实时应用,从2007年起,IGS(International GNSS Service)开始运行IGSRTPP项目(IGS Real-Time Pilot Project),由各分析中心实时估计出广播星历的卫星轨道和钟差精密改正信息,并采用SSR(State Space Representation)信息格式实时播发[12]。目前,BKG,DLR,ESOC,NRCan,GFZ等IGS分析中心均可实时播发SSR改正信息。基于NTRIP(Networked Transport of RTCM via Internet Protocol)协议,用户能够实时获取卫星轨道及钟差改正数据产品。已有研究对比了由广播星历和SSR改正信息估算的实时产品和IGS最终产品,结果表明:卫星位置互差的均方根值(RMS)优于厘米级,钟差互差的RMS优于亚纳秒级,实时估算的卫星轨道和钟差产品可满足静态实时PPP厘米级的定位需求[12-17]

目前,PPP软件的编写主要采用Fortran语言和C/C++语言。Fortran语言非常适合科学计算领域底层程序开发,广泛应用于GNSS定位程序开发[18];C/C++语言具有强大的系统编程和图形界面开发功能,已成为Linux平台最基本的编程工具[19]。实时PPP软件的开发涉及硬件控制,多在Linux环境下运行。若结合不同编程语言的风格特点、充分发挥各自的优势,即进行混合编程,将对开发过程十分有利。另外,许多已有的PPP后处理软件采用了Fortran语言编程,采用混合编程可以最大限度地利用已有的程序,节省人力和时间,快速地将已有的后处理PPP软件转换为实时PPP应用程序,推进实时PPP应用。因此,本文聚焦Linux环境下C/C++与Fortran的混合编程技术,基于混合编程,利用广播星历和改正信息数据流实时估算GPS卫星轨道及钟差,开发了实时精密单点定位软件,并分析了实时定位结果。

1 C/C++和Fortran混合编程的二个问题

所谓混合编程,即使用2种或2种以上的语言组合编程,彼此间互相调用,进行参数传递,共享数据结构或数据信息,从而形成一个统一的程序实体的过程[20]

根据调用方式,C/C++和Fortran混合编程可分为C/C++调用Fortran方式和Fortran调用C/C++方式。这两种混合编程的方式不尽相同,第一种方式采用C/C++编写主函数,调用Fortran子函数;第二种方式则相反,主函数为Fortran语言编写,调用C/C++编写的子函数。函数调用过程可以使用直接调用和链接库调用两种方法。前者是函数调用最常用的方法,即主函数直接调用子函数,在各种语言编程中均有体现;而后者在实现时,需要把Fortran子函数编译成链接库,在Linux操作环境中,常将其编译成动态链接库(**.so)文件或静态链接库(**.a)文件,然后由主函数调用。

P9= cψψ9/mb,P"= (cψψ- sψψ9 2)/mb,P= (cψψ- 3sψψ9ψ- cψψ93)/mb,

不同编程语言存在不同的约定,必须对基本约定进行统一。本文在Linux平台中,采用C/C++直接调用Fortran的方式编写了实时精密单点定位软件,故这里仅对C/C++调用Fortran函数需要注意的2个问题进行详细说明:

1)名称重整。在C/C++中,函数重载使得编译后函数名与参数个数及参数类型相关,即名称重整(Name Mangling)。Fortran不具备名称重整的功能,因此在C/C++调用Fortran时,应在C/C++的头文件中使用extern"C"声明关闭名称重整[21]。在Fortran中,函数经过编译后会自动添加下划线,如函数test会转变成函数test_,故在C/C++声明和调用Fortran子函数时,应主动为函数添加下划线,以免出现主函数找不到子函数的情况。C/C++调用Fortran可用下述声明方法

 

2)数据类型对应。不同的编程语言具有不同的数据类型,故需要使C/C++与Fortran的数据类型一一对应,否则无法完成参数在不同语言间的传递和过渡。表1是C/C++与Fortran主要数据类型的对应表。除此之外,字符串数据的传递方法较为复杂。C/C++中,字符串的存储以空字符NULL为结尾;Fortran中,字符串没有结束符,但有长度的概念。因此,需在C/C++函数中添加一个额外的长度参数,以控制字符串的长度[19]。本文混合编程过程中未涉及字符串的传递,故没有给出具体实例。针对数组数据,C/C++中数组元素以行为主序(row major order),且数组下标从0开始;而Fortran语言则是以列为主序(column major order),下标从1开始。

关于融资平台债务管理等,作为监管机构,政府应设立一套融资平台法律法规框架。进一步有效划分政府部门对融资平台的监管职责。近两年来政府部门正在一步步规范政府债务。融资平台需增强财务风险的防范意识,建立一套完整的财务风险预警体系,及时预测和识别潜在的财务风险。

 

表1 C/C++与Fortran主要数据类型对应表Table 1 A correspondence table of data types

  

C/C++类型 Fortran类型描 述signed char integer*1 8位有符号整数short integer*2 16位有符号整数int integer*4 32位有符号整数float real*8 32位浮点数double Double precision 64位浮点数

2 实时精密单点定位方法

2.1 实时数据流的获取

式中,PIF为消电离层伪距组合观测值;LIF为消电离层载波相位组合观测值;ρ为接收机和卫星之间的距离;c为光速;d T,d t分别为接收机与卫星的钟差;Trop为对流层延迟误差;N1,N2为双频载波模糊度;εP,εL为观测噪声。由图1可见实现实时精密单点定位的流程,表2到出了实时精密单点定位具体采用的数据处理策略。

本文的研究也发现,GPS单系统的卫星数量不够多时,出现收敛时间长和精度不稳定的情况,针对这一现象,实时精密单点定位软件需下一步工作中加入其他卫星系统,以减少单系统频繁换星对定位结果的影响。

本文使用C/C++语言实现不同类型数据的获取、解码以及卫星轨道和钟差的计算等功能,并以结构体(struct)形式将实时数据流传递给Fortran子函数进行实时定位解算。其中,Fortran子函数需要定义与C/C++同类型的结构体,两种结构体的定义方式分别为

 

2.2 实时精密单点定位观测模型

[15] PAN Z P,CHAI H Z,DONG B Q,et al.Real-time GPS precise satellite clock error estimation and precise point position[J].Hydrographic Surveying and Charting,2015,35(5):12-15,19.潘宗鹏,柴洪洲,董冰泉,等.实时GPS精密卫星钟差估计及实时精密单点定位[J].海洋测绘,2015,35(5):12-15,19.

 

从实时性的角度考虑,实现实时精密单点定位的前提是能够提供稳定的实时数据流。本文利用GNSS接收机实时接收测站的观测数据及卫星广播星历,通过网络从IGS分析中心依据NTRIP协议实时下载GPS卫星的SSR改正信息,以改正广播星历获取高精度的实时卫星轨道和钟差参数。由于GNSS接收机采集的数据和网络下载的改正信息均为RTCM(Radio Technical Commission for Maritime Services)格式的二进制数据,故需进行数据解码,以获得可用于PPP解算的实时数据流。

在进行人工河道森林生态建设时,必须充分考虑河道防洪的基本要求,结合工程运行特性,做好前期规划,使规划发展目标符合水利发展目标和林业发展的总体要求,与国家生态文明建设的发展目标相一致,追求生态效益、社会效益、经济效益和景观效果的整体优化,保证河道生态建设的有效实施。

当前我国的能源储备和环境现状并不十分乐观,汽车运行的过程中会产生较为明显的环境污染,同时也会消耗大量的资源,对此,有必要采取有效的策略积极发展新能源技术,正确认识其经济性和可行性,在推动我国汽车行业向前进步的同时,也能有效减少汽车运行过程中对石油能源的消耗和对环境产生的负面影响,让我国尽快成为环保清洁型国家。

  

图1 实时精密单点定位流程图Fig.1 Flow chart of real-time precise point positioning

 

表2 数据处理策略Table 2 Data processing strategy

  

参 数 处理策略测站坐标 伪距估算+参数估计相位模糊度 参数估计对流层延迟 Saastamoinen模型+GMF映射函数+随机游走过程+参数估计接收机钟差  参数估计卫星轨道及钟差  广播星历+实时轨道钟差改正数据电离层延迟  双频消电离层组合相位中心偏差  绝对天线相位中心(IGS08)模型改正相对论效应 (IS-GPS-200D2004)模型改正固体潮、极潮 (IERS Conventions 2010)模型改正截止高度角 10°

3 试验分析

本文基于实时精密单点定位软件,选取CLKL2(格式1060)挂载点,实时获取基于相位中心的SSR改正信息,其同时提供GPS的卫星轨道和钟差改正数据,使用GPS单系统模式,进行了静态实时精密单点定位试验。试验的时间跨度3 d,每次试验连续观测时长6 h,采样间隔均为1 s。为分析实时精密单点定位结果,将实时定位结果与测站精确坐标进行比较,并把坐标差异的时间序列输出成图。

由图2可见,试验期间可用卫星个数(satnum)及其对应的PDOP值,GPS单系统模式下共有5~9颗可用卫星,试验期间可用卫星数量十分充足;绝大多数历元的PODP值约1~3,部分历元的PODP值略大于3,故可认为试验期间GPS卫星几何图形强度良好。

  

图2 可用卫星数目和PDOP值Fig.2 The number of available satellites and the PDOP value

  

图3 实时精密单点定位结果Fig.3 Results of real-time precise point positioning

图3分别给出了年积日273、年积日274及年积日275实时精密单点定位结果差值的时间序列子图。从定位结果可看出,单GPS模式下实时精密单点定位在30~100 min左右可以完成收敛。本文使用的收敛标准为定位结果偏差达到±0.1 m,且之后20个历元的偏差均维持在±0.1 m以内。收敛后,水平方向定位结果精度较高,定位精度逐步稳定在5 cm以内;垂直方向随着收敛时间的增加,定位精度也可以稳定至10 cm以内。在收敛过程中,部分历元定位结果存在较小幅度的波动,如年积日273的1~2 h区间,在U方向,实时定位结果上下波动约5 cm,对比年积日273可用卫星统计图发现,在1~2 h区间,可用卫星数目变化频繁,PDOP值大于4,卫星几何图形强度较差,小幅度的波动与卫星几何图形强度和卫星变化有关。

表3统计了实时精密单点定位收敛后定位结果偏差的平均值、标准差。从表3可看出,GPS单系统实时单点定位精度在N、E方向均可以达到5 cm以内,U方向在10 cm以内。统计结果也说明本文的实时精密单点定位软件能够达到厘米级的定位精度。

 

表3 实时精密定位结果偏差统计Table 3 Biased statistics of the real-time precise point positioning result

  

?

4 结论与展望

本文研究了在Linux环境下C/C++与Fortran的混合编程技术,基于混合编程,采用广播星历和SSR改正信息产品,完成高精度的卫星轨道和钟差参数的实时估算,实现了实时精密单点定位。试验结果表明:GPS单系统实时精密单点定位可在30 min左右完成收敛。收敛后,在水平方向上,定位精度相对较高,且N和E方向具有相似的精度,可以稳定在5 cm以内;在垂直方向上,定位精度逐渐提高且稳定至10 cm以内。这也表明本文通过混合编程技术编制的实时定位软件已具备了实时精密单点定位的能力。

本文的研究是在已有FORTRAN语言编制的后处理PPP软件基础上完成的。目前,国际上主要的GNSS综合数据处理软件是用FORTRAN语言编制的;受此影响,国内外的很多PPP软件也是采用FORTRAN语言开发的。本文的工作也表明,可充分利用已有的FORTRAN软件包和子程序,通过混合编程可实现后处理PPP软件的实时应用,这对于相关的研究工作和PPP的实时性应用具有参考价值。

从定位精度的角度考虑,实现精密单点定位的关键之处在于获得高精度卫星轨道和钟差数据。本文使用1060格式的SSR改正信息,它可以同时提供导航卫星的位置、速度及钟差的改正信息。利用SSR改正信息改正广播星历计算的卫星轨道和钟差,生成GPS卫星系统实时精密星历轨道和钟差产品的具体方法可参见文献[8-11]。一般,SSR改正信息提供的卫星位置改正数据分为两类:一种是改正到卫星天线相位中心;另一种是改正到卫星质心。而GPS广播星历可以计算基于相位中心的卫星位置坐标,若要获取卫星质心的位置坐标,还需要进行卫星天线相位偏差改正。

参考文献(References):

[1] LIU J N,YE S R.GPS precise point positioning using undifferenced phase observation[J].Geomatics and Information Science of Wuhan University(Geomatics and Information Science),2002(3):234-240.刘经南,叶世榕.GPS非差相位精密单点定位技术探讨[J].武汉大学学报(信息科学版),2002(3):234-240.

2015年,该系统在东海某海域进行实弹检靶试验。此次试验装载于靶船上,用于测量某型反舰导弹的标量脱靶量。为了适应海上使用环境,在脱靶量测量系统下面增加了伺服稳定平台,以保证雷达波束始终照射海平面。同时将测量系统与稳定平台密封在天线罩内,防止海上盐雾的侵蚀。然后用支架装于靶船甲板上,安装图如图8所示。

[3] YAN X C.Research on the application of precise point positioning technology in marine survey[D].Zhengzhou:PLA Information Engi-neering University,2013.宴新村.精密单点定位技术在海洋测量中的应用研究[D].郑州:解放军信息工程大学,2013.

[2] KOUBA J,HEROUX P.Precise point positioning using IGS orbit and clock products[J].GPS Solutions,2001,5(2):12-28.

[4] ZHANG H,TANG J,SONG G D,et al.Research on calculating scheme optimization of precise point positioning in seacoast control surveys[J].Hydrographic Surveying and Charting,2014,34(4):13-16.张华,唐俊,宋国大,等.海岛礁测量中精密单点定位优化解算方案研究[J].海洋测绘,2014,34(4):13-16.

[5] CHEN W,HU C,LI Z,et al.Kinematic GPS precise point positioning for sea level monitoring with GPS buoy[J].Journal of Global Positioning Systems,2004,3(1-2):302-307.

[6] ZHAO J H,DONG J,KE J,et al.High precision GPS tide measurement method in far-distance and transformation model vertical datum[J].Geomatics and Information Science of Wuhan University(Geomatics and Information Science),2015,40(6):761-766.赵建虎,董江,柯灏,等.远距离高精度GPS潮汐观测及垂直基准转换研究[J].武汉大学学报(信息科学版),2015,40(6):761-766.

[7] FAN S J,QIN X B,WU S Y,et al.Tidal level measurement test and result analysis based on PPP with different ephemeris and clock offsets[J].Hydrographic Surveying and Charting,2014,34(4):43-46.范士杰,秦学彬,吴绍玉,等.不同星历和钟差产品的PPP验潮试验及结果分析[J].海洋测绘,2014,34(4):43-46.

[8] ZHANG X H,LIU J N,RENE F.Application of precise point positioning in airborne survey[J].Geomatics and Information Science of Wuhan University(Geomatics and Information Science),2006(1):19-22,46.张小红,刘经南,RENE F.基于精密单点定位技术的航空测量应用实践[J].武汉大学学报(信息科学版),2006(1):19-22,46.

每年的四五月份,成群结队的飞鱼便会迫不及待地来到靠近陆地、岛礁的地方,寻找适合产卵的场所。而漂浮在岸边的棕榈叶,对于它们来说是再合适不过的产卵地(海藻丛生的海域,也是飞鱼喜欢的产卵地点)。

[9] XU Y.The research of GPS real-time PPP technology[D].Zhengzhou:PLA Information Engineering University,2012.徐园.GPS实时精密单点定位相关技术研究[D].郑州:解放军信息工程大学,2012.

[10] YI Z H.Research on theory and application of real time precise point positioning[D].Changsha:Central South University,2011.易重海.实时精密单点定位理论与应用研究[D].长沙:中南大学,2011.

[11] GENG T,ZHAO Q L,LIU J N,et al.Real-time precise point positioning based on PANDA software[J].Geomatics and Information Science of Wuhan University(Geomatics and Information Science),2007,32(4):312-315.耿涛,赵齐乐,刘经南,等.基于PANDA软件的实时精密单点定位研究[J].武汉大学学报(信息科学版),2007,32(4):312-315.

首先,我对他进行全面了解,搞清楚他的家庭情况。原来他在家里几代单传的独生子,他爸爸特别溺爱他,管不住他,妈妈上班没时间理他,更不会指导他学习,导致他学习基础很差,对学习没多大兴趣,每天打闹总找点儿事,以引起大家的注意。

[13] WANG S L,WANG Q,GAO W,et al.Quality analysis of IGS real-time products and its application in real-time precise point positioning[J].Journal of Southeast University(Natural Science Edition),2013,43(S2):365-369.王胜利,王庆,高旺,等.IGS实时产品质量分析及其在实时精密单点定位中的应用[J].东南大学学报(自然科学版),2013,43(S2):365-369.

[12] LIU Z Q,WANG J X.Realization and analysis of real-time precise point positioning based on SSR broadcast ephemeris corrections[J].Science of Surveying and Mapping,2014,39(1):15-19,109.刘志强,王解先.广播星历SSR改正的实时精密单点定位及精度分析[J].测绘科学,2014,39(1):15-19,109.

[14] ABDI N,ARDALAN A A,KARIMI R,et al.Performance assessment of multi-GNSS real-time PPP over Iran[J].Advances in Space Research,2017,59(12):2870-2879.

Fortran子函数获取实时数据流后,通过数据预处理可剔除异常观测值,获得“干净”的观测数据。采用双频非差消电离层组合观测值,将测站坐标、接收机钟差、对流层延迟以及模糊度作为未知参数,并使用误差改正模型尽量消除各项误差的影响。逐历元组成观测方程,解算并输出实时精密单点定位的结果[22],其中观测方程为

[16] YIN Q Q,LOU Y D,YI W T.Comparison and analysis of IGS real-time products[J].Journal of Geodesy and Geodynamics,2012,32(6):123-128.尹倩倩,楼益栋,易文婷.IGS实时产品比较与分析[J].大地测量与地球动力学,2012,32(6):123-128.

[17] LAI Y B,ZHAO C M,LI Z S.Accuracy analysis of real time precise point positioning based on different ephemeris[J].Bulletin of Surveying and Mapping,2015(8):9-12.赖允斌,赵春梅,李子申.不同星历下实时精密单点定位精度分析[J].测绘通报,2015(8):9-12.

(2)治疗肉鸡IBD的最佳中草药组方为黄芪18.86%、黄连28.30%、甘草18.86%、白术15.09%、板蓝根18.86%,对IBD病毒和病原微生物都有较强的抑制和杀灭作用,能控制或防治传染性法氏囊病的传播及细菌性继发症的发生,大大降低该病造成的经济损失[7]。

[18] PENG X Y,WANG Z Q,ZHANG Z L.Software development of precise point positioning based on mixed-language programming of C#and FORTRAN[J].Engineering of Surveying and Mapping,2013,22(5):9-12.彭秀英,王宗强,张尊良.基于C#与FORTRAN混合编程的精密单点定位软件研制[J].测绘工程,2013,22(5):9-12.

我早已设计好,这次一定要双手捧花,单膝跪地,绅士般求婚,“嫁给我吧。”然后拥抱,热烈的吻,吻个死去活来。

[19] QI X D,TONG Z Q,HE C G.Study on mixed Fortran and C programming in Linux[J].Computer Engineering and Design,2008(9):2378-2380.亓雪冬,仝兆岐,何潮观.Linux环境中Fortran与C混合编程方法研究[J].计算机工程与设计,2008(9):2378-2380.

1994年,中共中央、国务院颁布《国家八七扶贫攻坚计划》,对“扶贫开发工作的目标、扶持对象、方法措施和时间期限”进一步加以明确,初步形成了一套完整的扶贫开发体系。

[20] YAN Z Q,LIU Y,HAN S H.Coordinate transformation realization of ECEF and ECI based on hybrid programming[J].Science of Surveying and Mapping,2015,40(11):119-122.闫志闯,刘永,韩少红.一种混合编程的地固系与空固系坐标变换方法[J].测绘科学,2015,40(11):119-122.

[21] LI X,QI X D.Mixed programming of Fortran and C/C++in Linux[J].Modern Computer,2012(5):57-60.李霞,亓雪冬.基于Linux的Fortran与C/C++混合编程[J].现代计算机,2012(5):57-60.

Pscr为静力触探比贯入阻力,MPa;ps0为dw=2,du=2时,比贯入阻力标准值,MPa;αw为地下水位埋深影响系数,地面常年有水且与地下水有水力联系时,取1.13;αu为上覆非液化土层厚度影响系数,对于深基础取1;dw为地下水位深度,m;du为上覆非液化土层厚度,m,计算时将淤泥和淤泥土厚度扣除;αp为与静力触探摩阻比有关的土性修正系数。

[22] CHEN G X.Research on Multi-GNSS precise point positioning technology[D].Qingdao:China University of Petroleum(East China),2015.陈冠旭.多模GNSS精密单点定位技术研究[D].青岛:中国石油大学(华东),2015.

 
李梦昊,王胜利,高兴国,陈冠旭,刘焱雄
《海岸工程》 2018年第01期
《海岸工程》2018年第01期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息 粤ICP备2023046998号