我第一次接触PPP-AR技术是在2013年做北斗地基增强系统项目时。当时为了提升定位精度,团队尝试了各种模糊度固定方法,从最初的UPD到后来的整数钟,踩过不少坑,也积累了些实战经验。简单来说,PPP-AR就是让模糊度参数从"大概是个整数"变成"确定是个整数"的过程。
传统PPP定位有个致命伤——收敛速度慢得像蜗牛。我做过实测,在开阔环境下,浮点解可能要30分钟才能达到10厘米精度。而用了模糊度固定后,这个时间能缩短到5分钟内。这背后的技术演进,主要围绕三个核心方法展开:
这三种方法看似不同,实则"三胞胎"——Geng和张宝成等学者早就证明它们在理论上是等价的。就像用筷子、叉子、勺子吃饭,工具不同但都能把饭送进嘴里。
UPD方法的精髓在于"借力打力"。2008年Ge等学者提出,用IGS跟踪站网估计卫星端的相位小数偏差(Uncalibrated Phase Delay),就像给每颗卫星测量"指纹"。用户拿到这些UPD产品后,通过简单的减法操作就能恢复模糊度的整数特性。
我举个生活化的例子:假设教室里有5个挂钟,每个都走得不准。传统方法是把所有钟都调准(相当于估计所有误差项),而UPD思路是——先记录下每个钟的快慢程度(测UPD),使用时直接用当前时间减去这个偏差值。
2012年Li和Zhang的改进堪称神来之笔。他们在单差UPD基础上引入参考站,实现了非差模糊度固定。这就好比原来需要两个钟才能比较时间差,现在只要一个钟加上事先测好的偏差表。
实测数据表明,这种方法能让静态定位在东方向的精度提升30%。不过要注意,UPD产品需要定期更新(通常每天一次),就像手机APP需要升级一样。我在处理BDS-3新信号时发现,其UPD稳定性比GPS更好,这可能与新信号体制有关。
法国CNES的Laurichesse在2009年提出的整数钟(Integer Recovery Clock)方法,玩的是参数重构的把戏。简单说就是把窄巷UPD"塞"进卫星钟差里,让模糊度参数保持干净。
这就像超市标价:商品实际成本是9.8元,但标价10元(整数钟),给顾客的找零就永远是整数。实际操作分两步:
python复制# 伪代码示例:整数钟使用流程
def PPP_IRC_processing():
download_IRC_products() # 下载CNES发布的整数钟产品
estimate_wide_lane_UPD() # 估计宽巷UPD
fix_wide_lane_ambiguity() # 固定宽巷模糊度
apply_integer_clock() # 应用整数钟修正
fix_narrow_lane_ambiguity() # 固定窄巷模糊度
2016年我们在处理南极科考站数据时发现,整数钟方法对电离层扰动特别敏感。有次磁暴期间,固定成功率从平时的90%暴跌到40%。后来通过引入双频观测值得出的电离层约束,才稳住局面。
另一个坑是BDS-3的整数钟产品至今未公开。我们当时不得不自己用MGEX站网估计,发现BDS-3卫星的钟差稳定性比BDS-2提升了一个数量级,这可能得益于新型原子钟的应用。
Collins在2010年提出的钟差解耦(Decoupled Clock)模型,本质上是给伪距和相位观测各配一块"专属手表"。传统PPP就像用同一个闹钟叫醒全家人,而解耦模型给每人发个智能手环。
具体参数设置对比:
| 参数类型 | 传统模型 | 解耦模型 |
|---|---|---|
| 伪距钟差 | 共用 | 独立估计 |
| 相位钟差 | 共用 | 独立估计 |
| 硬件延迟影响 | 存在 | 被相位钟差吸收 |
| 模糊度整数特性 | 破坏 | 保持 |
去年做GPS/Galileo/BDS-3三系统融合时,我们发现解耦模型在处理混合信号时优势明显。特别是BDS-3的B2a信号与GPS L5、Galileo E5a频率相近,但伪距硬件延迟差异很大。传统方法会导致模糊度固定率下降20%,而解耦模型基本不受影响。
不过要注意,这种方法计算量会增大30%左右。我们的解决方案是采用分层估计策略:先解算伪距钟差作为初始值,再迭代求解相位钟差。
根据我这些年踩坑经验,三种方法的适用场景可以这么划分:
比如做车载动态定位,我会首选整数钟法;而处理低轨卫星数据时,解耦模型表现更稳健。
BDS-3的新信号带来些有趣变化。实测发现:
最近我们在处理B1C/B2a组合时,采用UPD与解耦模型的混合策略,将固定成功率稳定在95%以上。关键是把宽巷UPD用于第一步固定,再用解耦模型处理窄巷部分。