3. 坐标系与时间系统

做组合导航这些年,我几乎天天跟GNSS误差打交道。很多人觉得卫星定位嘛,打开就能用,但实际上一堆误差藏在信号里。你想想看,卫星在两万公里外发信号,穿过大气层,再反射来反射去,能准才怪。这一章咱们就把五大误差源掰开揉碎讲清楚。

GNSS 定位误差源全景图 GNSS 定位误差 🛰️ 星历误差 ⏱️ 卫星钟差 ⚡ 电离层延迟 🌧️ 对流层延迟 🏢 多路径效应 误差特性对比 星历/钟差:缓慢漂移,可用差分削弱 电离层/对流层:与高度角、天气强相关 多路径:环境决定,最难建模 双频/模型/滤波是常用补偿手段

3.1 星历误差

星历误差说白了就是卫星轨道报得不准。卫星广播的星历是外推的,过几个小时就会慢慢跑偏。我记得有一次做车载测试,刚开机时定位精度还行,跑了半小时误差直接飙到十几米——查了半天,发现是星历更新周期太长。

核心影响: 星历误差会导致用户位置产生约 1~5 米的偏差(SA取消后)。在精密单点定位(PPP)里,这东西必须用精密星历才能压下去。

我个人的习惯是,在融合滤波器里给星历误差单独设一个状态量,尤其是长基线RTK。你想想看,基准站和流动站距离超过50公里,星历误差基本不相关,这时候差分也救不了。

3.2 卫星钟差

卫星上的原子钟也不是绝对准的。虽然地面段一直在做钟差预报,但残差依然有纳秒级。1纳秒对应30厘米,几个纳秒就奔米级去了。

💡 避坑指南: 我曾经在融合代码里忘了处理钟差跳变,结果滤波器直接发散。后来我强制加了一个钟差突变检测——如果相邻历元钟差变化超过阈值,就重置钟差状态协方差。

双频用户可以用电离层组合消掉大部分钟差影响,但单频用户就得靠模型硬扛。嗯,这里要注意:广播星历里的钟差参数更新频率是2小时,但实际钟漂可能更快。

3.3 电离层延迟

电离层是GNSS误差里最“善变”的一个。白天电子密度高,延迟能到十几米;晚上就降下来。赤道附近还有电离层闪烁,信号会突然抖动。

我做过一个低纬度地区的项目,下午两三点的时候,单频定位误差能到20米。后来我们上了双频接收机,用无电离层组合(IF组合),效果立竿见影。

频段典型延迟(天顶)消除手段
L1 (1575.42 MHz)2~15 m双频IF组合 / 格网模型
L2 (1227.60 MHz)3~25 m双频IF组合 / 克拉布模型
L5 (1176.45 MHz)4~30 m三频组合 / 实时电离层产品

如果你只能用单频,我建议用Klobuchar模型,虽然只能修正50%~60%,但总比裸奔强。

3.4 对流层延迟

对流层延迟跟电离层不一样,它是非色散的——对所有频率都一样。所以双频组合消不掉它。主要跟温度、气压、湿度有关。

干延迟(静力项)可以用萨斯塔莫宁模型算得比较准,湿延迟就难了。我一般在融合滤波器里把天顶湿延迟当未知数估计,配合映射函数(比如NMF或VMF3)。

⚠️ 注意: 低高度角卫星(<10°)的对流层延迟误差会急剧放大。我建议在数据预处理阶段直接截掉高度角低于8°的卫星,否则滤波容易不稳定。

3.5 多路径效应

多路径是GNSS里最让人头疼的误差,没有之一。信号从建筑物、地面、水面反射进来,跟直射信号叠加,造成伪距和载波相位失真。

我曾经在隧道口做测试,接收机锁定了一颗卫星,但伪距噪声突然跳到30米。后来回放数据发现,旁边一辆大货车正好停在反射路径上。

工程经验: 多路径很难用模型消除。我常用的招数有三个:
• 扼流圈天线 + 抑径板(硬件手段)
• 载波相位平滑伪距(降低伪距噪声)
• 基于信噪比(SNR)的观测值降权(鲁棒滤波)

在融合定位里,我习惯实时监测每颗卫星的CN0,如果某颗卫星的CN0突然下降但高度角不低,多半是多路径来了,直接降权处理。

误差综合影响与应对思路

这五大误差源不是孤立的。星历和钟差可以通过差分或精密产品削弱;电离层和对流层靠双频/模型/参数估计;多路径则更多依赖硬件和鲁棒算法。

我个人做融合系统时,会把误差源分成两类:可建模的(对流层、电离层残差)放进状态向量;难建模的(多路径、未模型化残差)用抗差M估计或自适应协方差调节。你想想看,如果一股脑全塞进卡尔曼滤波,很容易被异常值带偏。

📌 一句话总结: GNSS误差源是融合定位的“第一道坎”。搞懂每个误差的时空特性,才能在滤波器里合理分配状态量和观测噪声。