3. 坐标系与时间系统
做组合导航这些年,我几乎天天跟GNSS误差打交道。很多人觉得卫星定位嘛,打开就能用,但实际上一堆误差藏在信号里。你想想看,卫星在两万公里外发信号,穿过大气层,再反射来反射去,能准才怪。这一章咱们就把五大误差源掰开揉碎讲清楚。
3.1 星历误差
星历误差说白了就是卫星轨道报得不准。卫星广播的星历是外推的,过几个小时就会慢慢跑偏。我记得有一次做车载测试,刚开机时定位精度还行,跑了半小时误差直接飙到十几米——查了半天,发现是星历更新周期太长。
我个人的习惯是,在融合滤波器里给星历误差单独设一个状态量,尤其是长基线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)。
3.5 多路径效应
多路径是GNSS里最让人头疼的误差,没有之一。信号从建筑物、地面、水面反射进来,跟直射信号叠加,造成伪距和载波相位失真。
我曾经在隧道口做测试,接收机锁定了一颗卫星,但伪距噪声突然跳到30米。后来回放数据发现,旁边一辆大货车正好停在反射路径上。
• 扼流圈天线 + 抑径板(硬件手段)
• 载波相位平滑伪距(降低伪距噪声)
• 基于信噪比(SNR)的观测值降权(鲁棒滤波)
在融合定位里,我习惯实时监测每颗卫星的CN0,如果某颗卫星的CN0突然下降但高度角不低,多半是多路径来了,直接降权处理。
误差综合影响与应对思路
这五大误差源不是孤立的。星历和钟差可以通过差分或精密产品削弱;电离层和对流层靠双频/模型/参数估计;多路径则更多依赖硬件和鲁棒算法。
我个人做融合系统时,会把误差源分成两类:可建模的(对流层、电离层残差)放进状态向量;难建模的(多路径、未模型化残差)用抗差M估计或自适应协方差调节。你想想看,如果一股脑全塞进卡尔曼滤波,很容易被异常值带偏。