第三章:全球卫星导航系统(GNSS)原理
各位同学,今天我们来聊聊GNSS。说实话,这是整个多源融合导航的基石。没有它,后面很多融合算法都玩不转。我最早接触GNSS是在做无人机项目的时候,那时候对定位原理一知半解,结果飞着飞着就偏航了……嗯,从那以后我老老实实把原理啃了一遍。
3.1 四大卫星导航系统概览
目前全球有四大GNSS系统在运行。我习惯把它们比作四个“天基灯塔”:
| 系统 | 所属国家 | 卫星数量(约) | 特点 |
|---|---|---|---|
| GPS | 美国 | 31颗 | 最成熟,民用广泛 |
| 北斗 | 中国 | 30颗 | 有短报文通信功能 |
| GLONASS | 俄罗斯 | 24颗 | 高纬度地区表现好 |
| Galileo | 欧盟 | 26颗 | 民用精度高,免费 |
你想想看,为什么我们要用多系统融合?说白了就是冗余和互补。我在城市峡谷里测试时,单GPS经常丢星,但加上北斗和GLONASS,定位就稳多了。每个系统都有自己的轨道设计和信号频率,多系统接收机可以同时跟踪更多卫星,定位精度和可靠性自然就上去了。
3.2 伪距观测:最基础的测距方式
伪距,顾名思义,就是“伪”的距离。为什么说它伪?因为里面包含了各种误差。原理其实很简单:卫星发射信号,接收机收到信号,记录时间差,乘以光速,就是距离。
公式长这样:
ρ = c × (t_r - t_s)
其中ρ是伪距,c是光速,t_r是接收机收到信号的时间,t_s是卫星发射信号的时间。但问题来了——卫星钟和接收机钟不同步。卫星钟是原子钟,精度极高;接收机钟就是个石英钟,便宜但漂移大。
核心要点:伪距观测方程中,接收机钟差是最大的未知数。所以至少需要4颗卫星才能解出三维位置+钟差四个未知量。
我在项目中遇到过一件事:有一次用单频接收机做静态测量,伪距残差一直很大。排查了半天,发现是电离层延迟没处理好。伪距精度一般在米级,对于普通导航够用,但做高精度定位就不行了。
3.3 载波相位观测:厘米级的秘密
载波相位观测,这才是高精度定位的核心。伪距只能做到米级,但载波相位可以做到厘米甚至毫米级。为什么?因为载波的波长很短——GPS L1载波波长约19厘米,北斗B1I约19.5厘米。
原理是这样的:接收机测量卫星信号载波与本地振荡器产生的载波之间的相位差。这个相位差乘以波长,就是距离。但有个大问题——整周模糊度。
Φ = λ × N + λ × φ
Φ是载波相位观测值,λ是波长,N是整周模糊度(未知整数),φ是小数部分相位。你看,N是个未知整数,解出它才能得到精确距离。这就是RTK和PPP的核心难点。
避坑指南:我曾经在动态测试中因为周跳没处理好,导致整周模糊度解算失败,定位结果直接跳了十几米。后来我养成了习惯——每次初始化后先检查载波相位连续性,发现有周跳就重新初始化。
3.4 单点定位:最简单的定位方式
单点定位(SPP),就是只用一台接收机,接收卫星信号,解算位置。精度一般在3-10米。原理就是解伪距观测方程组:
ρ_i = sqrt((x - x_i)² + (y - y_i)² + (z - z_i)²) + c × dt + ε_i
其中(x,y,z)是接收机位置,(x_i,y_i,z_i)是第i颗卫星位置,dt是接收机钟差,ε_i是各种误差。用最小二乘法或卡尔曼滤波就能解出来。
单点定位的误差来源很多:卫星轨道误差、卫星钟差、电离层延迟、对流层延迟、多路径效应……我刚开始做的时候,以为只要卫星多就能定位准,结果发现误差叠加起来能到十几米。嗯,这里要注意——单点定位只适合对精度要求不高的场景,比如车载导航、手机定位。
3.5 差分定位(RTK):厘米级的实现
RTK(实时动态差分定位),说白了就是“你错我也错,但咱俩的错差不多”。原理很简单:基准站放在已知坐标点上,接收机算出各种误差,然后把这些误差改正数发给流动站。流动站用这些改正数修正自己的观测值,精度就能从米级提升到厘米级。
RTK的核心流程:
- 基准站已知坐标,计算伪距和载波相位误差
- 基准站通过数据链(电台或4G)发送改正数
- 流动站接收改正数,修正自己的观测值
- 流动站解算整周模糊度,得到厘米级位置
个人经验:RTK的关键在于整周模糊度解算。我常用的方法是LAMBDA算法,它通过搜索整数空间来找到最优的N值。但要注意——基线长度越长,空间相关性越弱,RTK效果越差。一般建议基线不超过20公里。
3.6 知识体系总览
下面这张图是我自己整理的GNSS知识框架,你看一眼就能明白整个体系是怎么串起来的:
你看这张图,从四大系统到两种观测值,再到两种定位方式,逻辑很清晰。伪距和载波相位是基础,单点定位和RTK是应用。我个人建议初学者先吃透伪距单点定位,再攻克载波相位RTK。一步一个脚印,别想一口吃成胖子。
总结一下:GNSS定位的本质就是测距+解算。伪距简单但精度低,载波相位精度高但需要解整周模糊度。单点定位适合粗定位,RTK适合高精度。多系统融合能提升可用性和可靠性——这是我在多个项目中验证过的经验。