潘国富,鲍志雄
(广州中海达卫星导航技术股份有限公司,广州 511400)
目前全国各省市已经建立了很多连续运行参考站系统(continuous operational reference system,CORS)用于高精度卫星定位测量工作,测绘人员可以全天候接入CORS系统获取差分数据进行高精度定位,一般使用双频接收机进行实时载波相位差分(real time kinematic,RTK)定位[1],精度能达到厘米级。但是在民用导航领域,针对消费级的导航运用的定位需求,采用低成本的天线及卫星接收芯片在CORS覆盖区域内利用实时码差分(real time code differential,RTD)定位,使得精度提高到亚米级,则可以大大提高CORS系统的运用价值。
随着中国北斗卫星导航系统(BeiDou navigation satellite system,BDS)的建成和完善,利用多系统带来的卫星数量优势可以解决城市导航的问题,从而给CORS带来更广泛的的运用价值。基于高精度的BDSCORS系统来开发面向民用导航的差分服务系统到需要考虑解决多星座融合、差分定位技术方案选型、硬件成本条件限制、终端设备集成、系统多用户并发等关键问题[2]。本文将介绍民用导航差分定位系统的基本定位原理及软件体系的分布式架构设计,结合实际系统的建设及测试数据,验证相关算法的精度和系统可靠性。
民用导航差分定位系统采用RTD方法作为原型,这种方法采用卫星的伪距观测值进行定位,因此采用导航芯片级的接收机及天线即可,对接收机的硬件要求较低,由于不存在周跳探测和模糊度固定的问题[3],解算模型原理较为简单[4]。
RTD定位通常使用国际通用的RTCM2.x标准格式中的1号电文进行差分数据传播[5],该电文主要提供了各个卫星的伪距改正数(pseudo range correction,PRC)及伪距改正数的变化率(range rate correction,RRC)。移动端对每一颗公共卫星进伪距观测值的改正
式(1)中,PRC(t0)为参考站系统提供的t0时刻的伪距改正数,RRC是t0时刻的伪距改正数速率。根据式(1)可以对任意卫星的观测值PRM(t)进行改正,改正公式为
式(2)中,PR(t)代表改正后的卫星观测值,移动端解算程序按照式(1)和式(2)对卫星观测值进行改正后再进行单点定位过程,即可获得RTD定位结果,单点定位的具体公式这里不再赘述,需要注意的是:由于PRC改正值已经包含了对流层和电离层的改正信息,移动站在单点定位时不需要再进行相关信息的模型改正,以免重复计算造成系统误差。
最新的RTCM3.02标准里面,已经添加了对BDS差分电文的支持[6],但是目前国内外仅有少数厂家完成了升级,预计真正推广使用还需要一定的时间。考虑到民用导航领域对数据链路的通讯成本要求,本文采用RTCM2.x电文进行差分数据传播,由于RTCM2.x标准里面缺少对北斗系统的支持,因此移动设备端和差分服务软件需要自定义BDS的数据交换格式,本文按RTCM2.x标准自定义了61号电文,其格式除了电文编号不同,其它内容与1号电文的格式保持一致。对于自制的新设备可以同时采用美国全球定位系统(global positioning system,GPS)加BDS进行RTD组合定位,而对于旧设备也可以同样接入系统获得基于单GPS的RTD定位服务,这样就实现了设备的兼容,对新型北斗接收机和传统的单GPS接收机都可以提供服务。
从RTD的定位原理可知,码差分的理论前提假设伪距改正数包含了大气误差影响等综合影响,在计算伪距改正数时需注意计算卫星位置使用的星历要一致(根据IODE判断)及计算卫星位置的算法一致(迭代次数一致),同时要对终端单点定位过程的钟差消除、卫星钟差消除、相对论效应消除、硬件延迟消除、电离层对流层模型改正等进行统一。避免重复计算导致系统性的偏差,本文实际计算伪距改正数(PRC)的公式如下
式(3)中,P(t)为卫星到基站或VRS站点的理论几何距离(由卫星位置和基站坐标可以准确求出),CA(t)为实际观测值,dT(s)为卫星钟差(根据广播星历计算得到),Re为相对论效应,c为光速。
面向民用导航差分定位系统的用户群数量巨大,同时在线的用户量对于系统服务的压力较大,如果每个RTD用户都采用类似RTK定位那样的通过互联网进行RTCM网络传输的协议标准(networked transport of RTCM via Internet protocol,NTRIP)协议登陆、则虚拟参考站(virtual reference station,VRS)观测值生成计算与播发过程会造成系统阻塞崩溃。因此设计时必须对用户连接请求进行分流,算法层面则需考虑减少单个用户的计算量。从以上两个思路出发,本文设计了一套分布式架构的CORS系统,可以实现大型CORS系统的组网,同时保证海量用户的登陆服务。
RTD定位的精度主要受伪距码精度及大气误差的影响,通常作业范围可以达到数百千米,而现有的CORS系统因为兼顾到RTK用户的高精度定位需求所以基站之间的距离通常小于100km(即基线短于100km)。所以对于RTD用户而言,在精度无差异的前提下,没有必要进行虚拟参考站的伪距改正数的综合生成,系统只需要找到距离用户最近的实际基站进行RTD差分数据转发即可,这样就避免了每一个RTD用户都进行复杂的内插计算和虚拟观测值的生成计算[7-8],从而减少了计算复杂度。
通过以上分析,实际上可以实时生成每一个站点每一个历元对应RTD差分数据进行广播,这样当导航用户登陆服务器,只需要根据用户传回的标准定位结果电文NMEA位置查找最近单站的RTD差分数据源即可。当用户量增加到一定程度时,还可以通过架设多个服务单元并部署到不同的电脑上完成用户分流。
对于大规模的CORS系统,往往基站数量超过100个,构造的三角网基线数量达到数百条,这样对于服务器的基线解算压力较大,会造成解算延迟和服务阻塞。因此要考虑对CORS系统的解算单元进行分布式的设计。
本文将站点根据地域相邻关系,划分为多个子网,每一个子网作为一个独立的解算单元运行在不同的电脑上,再统一的由服务单元进行集成。当用户登录时,服务器根据用户位置查找最近的解算单元(子网),再判断服务类型,如果是RTD用户则直接转发缓存的RTD数据包,如果是RTK用户,则将链接转交给相应的子网服务器,系统总体运行原理图如图1所示。
图1 分布式CORS系统架构图
从图1可以看到,由于有多个解算单元的存在,基线的解算压力被分摊到不同的计算机上,误差信息则统一汇总到了服务单元这里。实际系统还提供了网页形式的信息管理平台便于管理人员进行日常维护和运营管理,这里不再赘述。
本文以中国东部某BDS CORS系统作为测试平台,该CORS系统由11个基站组成,其中最长基线约60km,基站采用国产北斗三星七频主机,移动站采用某国产导航芯片集成,全网站点分布示意图如下:
图2 测试CORS系统的站点分布图
RTD服务软件基于中海达ZNetVRS虚拟参考站软件平台实现,系统实时生成和对外播发一秒一次的RTD数据,终端设备通过GPRS网络获取RTD差分数据。
为了能检测本文算法的精度及伪距差分的定位服务的稳定性,测试采取实测方式进行如下实验:1)静止开机后设置为RTD定位,按1s的采样频率连续记录定位结果;2)事后统计精度计算方法:将坐标投影成高斯平面坐标,后按不同的方向统计内符合中误差,计算公式如下
式(4)中,N为测试点个数,Δi为各观测值与平均值之差,本文进行了3次测试,每次8h。精度统计结果如下:
表1 RTD定位中误差统计(GPS+BDS)
从测试结果可以看出:
1)采用GPS加BDS的RTD定位平面精度可以达到亚米级精度(1倍标准差),相比传统的单点定位结果有明显提高(厂家标称精度达5m)。
2)本文系统能够连续的进行RTD差分定位服务。
笔者将本文算法运用在实际BDS CORS系统中投入市场使用多年,测试表明相关技术方案正确可行,使用国产的导航芯片可以实现亚米级差分定位精度,随着国产芯片技术的发展,将来导航芯片也能输出载波观测值时还可以进一步优化终端定位算法从而提高终端定位精度[9]。
[1] 李征航,黄劲松.GPS测量与数据处理[M].武汉:武汉大学出版社.2005:71-74.
[2] 邓健,王庆,潘树国,等.基于多参考站的分米级GPS伪距差分定位方法[J].东南大学学报:自然科学版,2010,40(2):316-319.
[3] 黄爱萱,吴云,童小华.利用 GPS组合观测值探测修复周跳的方法比较[J].测绘工程,2007,16(4):25-29.
[4] 高星伟,葛茂荣.GPS/GLONASS伪距差分的数据处理[J].测绘通报,2000(6):1-3.
[5] RTCM 10402.3,RTCM Recommended Standards for Differential GNSS(Global Navigation Satellite Systems)Service,Version 2.3[S].
[6] RTCM Standard 10403.2,Differential GNSS(Global Navigation Satellite System)Service,Version 3[S].
[7] 彭慧,高成发,喻国荣.基于 VRS的 GPS伪距码的虚拟与精度分析[J].测绘通报,2007(6):1-4.
[8] 罗天宇,臧德彦.虚拟参考站对流层延迟算法[J].测绘科学,2012,37(5):107-109.
[9] 戚浩平,高成发.中等距离GPS相位平滑伪距差分动态定位精度的测定[J].测绘通报,2006(8):4-5.