4、GPS基础:GPS定位原理、伪距与载波相位观测、GPS误差源分析
各位同学,今天我们聊聊GPS。这玩意儿在组合导航里,说白了就是我们的“眼睛”。但你要知道,这双眼睛有时候会近视,有时候会散光。我做了这么多年无人机,见过太多因为不懂GPS原理而炸机的案例。嗯,咱们今天就把这层窗户纸捅破。
4.1 GPS定位原理:三边测量法
GPS定位的原理,其实没那么玄乎。你想想看,如果你知道一颗卫星的位置,又知道它离你有多远,那你就在以卫星为球心的球面上。如果有三颗卫星,三个球面相交,理论上就能确定一个点。这就是三边测量法。
但实际中,我们至少需要四颗卫星。为什么?因为接收机时钟和卫星时钟不同步。我打个比方:你听到钟声,知道声音传了多远,但如果你手表不准,算出来的距离就有偏差。这个偏差,就是接收机钟差,是个未知数。所以,四个方程解四个未知数(x, y, z, 钟差)。
核心公式:
伪距观测方程:ρ = r + c·Δt + ε
其中ρ是伪距,r是真实几何距离,c是光速,Δt是钟差,ε是其他误差。
我在项目中遇到过一件事。有一次飞一个测绘任务,飞机在天上飘了半小时,定位突然跳了十几米。排查了半天,发现是当时可见卫星只有三颗,几何构型极差。从那以后,我给自己定了个规矩:起飞前必须检查PDOP值,低于1.5才敢飞。
4.2 伪距与载波相位观测
GPS能给我们两种观测值:伪距和载波相位。这两兄弟,各有各的脾气。
4.2.1 伪距观测
伪距,说白了就是“伪”的距离。它通过测量信号从卫星到接收机的传播时间,再乘以光速得到。精度嘛,大概在米级。我习惯叫它“粗码”,因为C/A码的码元宽度就有293米,测距精度自然上不去。
伪距的优点是没有整周模糊度问题,拿来就能用。缺点也很明显——噪声大,精度低。在组合导航里,我通常用它来做初始定位,或者当载波相位失锁时的备份。
4.2.2 载波相位观测
载波相位就厉害了。它测量的是载波信号的相位变化,精度能达到毫米级。你想想看,L1载波波长才19厘米,测相精度能做到波长的1%甚至更高。
但这里有个坑——整周模糊度。相位测量只能测到不足一周的小数部分,整周数是多少?不知道。这就好比你知道自己走了0.3米,但不知道走了多少整圈。我曾经在飞一个高精度降落任务时,就因为模糊度没固定好,导致定位跳了半米,差点撞到机库。
避坑指南:
我曾经吃过一次大亏。在强电离层活动期间,载波相位发生了周跳,我用的算法没检测出来,结果定位直接漂了2米。后来我强制加入了周跳检测模块,用GF组合和MW组合联合检测,才算稳住了。
伪距和载波相位怎么配合?我个人的做法是:用伪距解算模糊度的浮点解,再用载波相位做精密定位。说白了,就是粗调加微调。
4.3 GPS误差源分析
GPS的误差,来源很多。我把它分成三类:跟卫星有关的、跟传播路径有关的、跟接收机有关的。今天重点讲传播路径上的两个大头——电离层和对流层,再加一个让人头疼的多路径。
4.3.1 电离层误差
电离层在距地面60-1000公里处,里面有大量自由电子。GPS信号穿过时,传播速度会变慢,路径也会弯曲。这个误差有多大?白天能到5-15米,晚上好一些,也有1-3米。
为什么会这样?因为太阳辐射电离了大气分子,电子密度高了,信号就慢了。我做过一个实验:正午时分和凌晨时分分别测同一位置,定位结果能差10米以上。
怎么消除?双频接收机是个好办法。利用L1和L2两个频率上电离层延迟不同的特性,可以构建无电离层组合。我习惯用IF组合(Ionosphere-Free),虽然噪声会放大,但至少把电离层这个大头去掉了。
小技巧:
如果你只有单频接收机,可以用Klobuchar模型来修正。这个模型参数由导航电文播发,能修正掉50%左右的电离层误差。虽然不够完美,但总比没有强。
4.3.2 对流层误差
对流层是离我们最近的大气层,从地面到约50公里高度。这里的误差主要来自大气折射。与电离层不同,对流层对无线电信号是非色散的,也就是说,不同频率的信号延迟量一样。
对流层延迟分两部分:干分量和湿分量。干分量占90%,可以用模型算得很准;湿分量只占10%,但变化快,很难精确建模。我遇到过最头疼的情况是在海边飞无人机,湿度变化剧烈,对流层湿分量一会儿一个样,定位精度直接掉了一个量级。
常用的修正模型有Saastamoinen模型和Hopfield模型。我个人偏爱Saastamoinen,因为它对湿分量的处理更细致。但说实话,真要高精度,还是得靠实时估计。
4.3.3 多路径误差
多路径,是GPS里最让人头疼的误差之一。信号从卫星发出,除了直射路径,还可能经过地面、建筑物、水面反射后进入接收机。反射信号比直射信号多走了一段路,叠加在一起,就会造成测距误差。
多路径误差有多大?在开阔地带,可能只有几米;但在城市峡谷或者水面附近,能到几十米。我记得有一次在湖边测试无人机,定位突然跳了20米,查了半天才发现是水面反射搞的鬼。
怎么抑制?硬件上,可以用扼流圈天线或者抗多路径天线。软件上,我常用的方法有:
- 信噪比检测:反射信号通常信噪比低,可以设置阈值滤除
- 载波相位平滑伪距:利用载波相位的低噪声特性,平滑伪距中的多路径噪声
- 基于残差的检测:如果某个卫星的观测残差突然变大,多半是被多路径污染了
经验之谈:
我建议你在做组合导航时,一定要给伪距设置一个合理的权重。多路径严重的卫星,权重应该降低。我一般用信噪比和卫星高度角联合定权,效果还不错。
4.4 小结
好了,这一章的内容就这些。总结一下:
- GPS定位靠三边测量,至少需要四颗卫星
- 伪距精度米级,载波相位精度毫米级,但载波相位有整周模糊度
- 电离层误差白天大晚上小,双频可以消除
- 对流层干分量好建模,湿分量难搞
- 多路径是“隐形杀手”,要靠硬件和软件联合抑制
下一章,我们会讲惯性导航系统的基本原理。嗯,那又是另一番天地了。