第三章:全球卫星导航系统(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的核心流程:

  1. 基准站已知坐标,计算伪距和载波相位误差
  2. 基准站通过数据链(电台或4G)发送改正数
  3. 流动站接收改正数,修正自己的观测值
  4. 流动站解算整周模糊度,得到厘米级位置

个人经验:RTK的关键在于整周模糊度解算。我常用的方法是LAMBDA算法,它通过搜索整数空间来找到最优的N值。但要注意——基线长度越长,空间相关性越弱,RTK效果越差。一般建议基线不超过20公里。

3.6 知识体系总览

下面这张图是我自己整理的GNSS知识框架,你看一眼就能明白整个体系是怎么串起来的:

GNSS定位原理知识体系 四大卫星系统 GPS/北斗/GLONASS/Galileo 两种观测值 伪距 / 载波相位 两种定位方式 单点定位 / RTK 伪距观测 • 基于信号传播时间 • 精度:米级 • 误差:钟差+大气延迟 • 至少4颗卫星解算 载波相位观测 • 基于相位差测量 • 精度:厘米级 • 关键:整周模糊度N • 难点:周跳检测与修复 单点定位(SPP) • 单接收机独立解算 • 精度:3-10米 • 误差未消除 • 适合普通导航 差分定位(RTK) • 基准站+流动站 • 精度:厘米级 • 消除公共误差 • 基线<20km效果最佳 多系统融合 → 更高精度、更强鲁棒性

你看这张图,从四大系统到两种观测值,再到两种定位方式,逻辑很清晰。伪距和载波相位是基础,单点定位和RTK是应用。我个人建议初学者先吃透伪距单点定位,再攻克载波相位RTK。一步一个脚印,别想一口吃成胖子。

总结一下:GNSS定位的本质就是测距+解算。伪距简单但精度低,载波相位精度高但需要解整周模糊度。单点定位适合粗定位,RTK适合高精度。多系统融合能提升可用性和可靠性——这是我在多个项目中验证过的经验。

专注资料整理