☰
GNSS 高级篇 07 PVT 解算:7.1 PVT 解算原理阐释
2026/11/3 2:18:52 网站建设 项目流程

GNSS 高级篇

7 PVT 解算

7.1 PVT 解算原理阐释

PVT 是 Position(位置)、Velocity(速度)、Time(时间)的缩写——这是 GNSS 接收机最终要输出的三个结果。前面所有的捕获、跟踪,都是为了得到伪距和载波相位;而 PVT 解算,就是把这些测量值变成用户真正关心的经纬度、速度和时间。

在正式开始前,请大家思考几个问题:

1,为什么定位至少需要 4 颗卫星?3 颗不行吗?多一颗卫星到底多了什么信息?

2,伪距里包含了接收机钟差,这个钟差是怎么"顺便"解出来的?

3,定位误差到底来自哪里?为什么开阔地能到 3 米,城市里却可能偏几十米?

4,什么是 GDOP?为什么卫星的几何分布会影响定位精度?

接下来我们从最基本的原理出发,把 PVT 解算讲透。

7.1.1 定位的基本原理:距离交会

GNSS 定位的基本原理很简单——距离交会(Trilateration)。

a. 二维情况:3 个圆的交点

想象一下,你在一个平面上,知道自己离 A 点 10 公里,离 B 点 8 公里,离 C 点 12 公里。

  • 以 A 为圆心、10 公里为半径画一个圆
  • 以 B 为圆心、8 公里为半径画一个圆
  • 两个圆交于两点——你在其中一个点上
  • 再以 C 为圆心、12 公里画圆,三个圆的共同交点就是你的位置

二维定位需要 3 个距离(3 颗卫星)。

b. 三维情况:4 个球的交点

三维空间中,每个距离对应一个球面。

  • 1 个球:你在球面上(无数可能)
  • 2 个球:交线是一个圆(无数可能)
  • 3 个球:交于两个点(通常一个在地面,一个在太空,可以排除太空的那个)
  • 4 个球:唯一交点

理论上三维定位需要 3 颗卫星(排除不合理的解),但实际上需要 4 颗——因为还有钟差这个未知数。

7.1.2 为什么需要 4 颗卫星:钟差的引入

a. 伪距方程

每颗卫星的伪距可以写成:
ρ_i = r_i + c×(b_u - b_sv,i) + I_i + T_i + ε_i

其中:

  • ρ_i:第 i 颗卫星的伪距(测量值)
  • r_i:第 i 颗卫星到用户的真实距离(未知,跟用户位置有关)
  • c:光速
  • b_u:接收机钟差(未知)
  • b_sv,i:第 i 颗卫星的钟差(已知,从星历获取)
  • I_i:电离层延迟(可以建模或双频修正)
  • T_i:对流层延迟(可以建模修正)
  • ε_i:测量噪声

用户位置是三维的(x, y, z),加上钟差 b_u,一共 4 个未知数。
所以需要 4 个方程(4 颗卫星)才能解出 4 个未知数。

b. 钟差有多大?

接收机用的是普通晶振,频率偏差可能有 1~10ppm——对应时间偏差可能达到几毫秒到几十毫秒。
1 毫秒的钟差 × 光速 = 300 公里的距离误差!
所以钟差绝对不能忽略——必须作为未知数解算出来。

这就是为什么 GNSS 定位叫"伪距定位"——测的不是真实距离,而是包含钟差的"伪"距离。
解算时,钟差和位置一起解出来——这叫"时间传递",GNSS 同时提供定位和授时服务。

7.1.3 最小二乘解算

有了 4 个以上的伪距方程,怎么解出位置和钟差?

a. 线性化

伪距方程是非线性的(距离里有平方根),不能直接解。
标准做法是:先猜一个初始位置(比如地球中心,或上次解算的位置),然后在初始位置附近把方程线性化。

线性化后的方程写成矩阵形式:
Δρ = G × Δx

其中:

  • Δρ:伪距残差向量(测量伪距 - 初始位置计算的伪距)
  • G:观测矩阵(几何矩阵),每一行是一颗卫星的方向余弦
  • Δx:位置和钟差的修正量(Δx, Δy, Δz, Δb)

b. 最小二乘解

如果卫星数 > 4,方程数 > 未知数,是超定方程组,用最小二乘求解:
Δx = (G^T × G)^(-1) × G^T × Δρ

然后用 Δx 修正初始位置,再迭代——因为线性化是近似的,需要迭代几次才能收敛。
通常迭代 3~5 次就收敛了。

c. 加权最小二乘

不同卫星的伪距质量不一样(载噪比不同、仰角不同、多径不同),应该给高质量的卫星更大的权重。
加权最小二乘:
Δx = (G^T × W × G)^(-1) × G^T × W × Δρ

其中 W 是权重矩阵——通常是对角矩阵,每个元素是对应卫星伪距方差的倒数。

7.1.4 GDOP:几何精度因子

定位精度不仅跟伪距测量精度有关,还跟卫星的几何分布有关——这就是 GDOP。

a. GDOP 的含义

GDOP(Geometric Dilution of Precision,几何精度因子)衡量的是"卫星几何分布对定位精度的放大程度"。

GDOP = σ_PVT / σ_ρ

其中 σ_PVT 是 PVT 解的总误差,σ_ρ 是伪距测量误差。
GDOP 越大,同样的伪距误差导致的定位误差越大。

b. DOP 的分解

GDOP 可以分解为:

  • PDOP(位置 DOP):三维位置误差的放大
  • HDOP(水平 DOP):水平位置误差的放大
  • VDOP(垂直 DOP):垂直位置误差的放大
  • TDOP(时间 DOP):时间误差的放大

关系:GDOP² = PDOP² + TDOP² = HDOP² + VDOP² + TDOP²

c. 什么样的几何分布好?

  • 卫星分布在天空的各个方向(仰角有高有低,方位角均匀)→ DOP 小,精度高
  • 卫星都挤在一个方向 → DOP 大,精度差
  • 卫星都在天顶 → 水平精度差(HDOP 大)
  • 卫星都在地平线附近 → 垂直精度差(VDOP 大)

典型 DOP 值:

  • GDOP < 2:优秀
  • GDOP 2~4:良好
  • GDOP 4~6:一般
  • GDOP > 6:较差

多系统融合最大的好处之一就是 DOP 大幅降低——单 GPS 在城市里可能 HDOP > 4,四系统联合可以降到 1.5 以下。

7.1.5 定位误差来源分析

GNSS 定位误差来自多个方面,我们可以用"误差预算"来分析。

误差源典型大小(单频)修正方法修正后残差
卫星钟差1-10ns(0.3~3m)星历参数修正< 0.5m
卫星轨道误差1~5m星历修正0.5~2m
电离层延迟5~15m(白天)模型/双频模型 2~5m,双频 < 0.5m
对流层延迟2~10m(天顶)模型修正0.5~2m
多径1~10m(城市)窄相关器/MED0.5~3m
接收机噪声0.3~3m-0.3~3m
接收机钟差解算掉作为未知数0

a. 单频 vs 双频

单频接收机用电离层模型(Klobuchar 模型)修正电离层,残差约 2~5m。
双频接收机用两个频点的观测值直接计算电离层延迟,残差 < 0.5m。
这就是双频定位比单频准的主要原因——电离层延迟是 GNSS 最大的误差源之一。

b. 为什么垂直精度比水平差?

通常 VDOP 是 HDOP 的 1.5~2 倍——因为卫星都在"上面"(用户上方的半球),垂直方向的几何约束弱。
水平方向有来自各个方位的卫星,约束强;垂直方向只有仰角信息,约束弱。
所以 GNSS 的水平精度通常是垂直精度的 1.5~2 倍。

7.1.6 速度解算

位置解出来了,速度怎么来?

a. 多普勒法

最常用的方法是用多普勒频移解算速度:

  • 卫星和用户的相对运动导致载波频率偏移(多普勒)
  • 多普勒跟相对速度成正比
  • 跟伪距定位类似,用 4 颗以上卫星的多普勒观测值,可以解出用户的三维速度和钟漂

多普勒法的优点:

  • 速度精度高(0.01~0.1m/s)
  • 不受多径影响(多径主要影响码相位,对载波频率影响小)
  • 实时性好

b. 位置差分法

另一种方法是位置差分:v = (位置_t - 位置_{t-1}) / Δt
简单但精度差——位置误差会被差分放大,尤其是短时间间隔。
通常只在没有多普勒观测值时用。

7.1.7 时间解算(授时)

GNSS 不仅能定位,还能授时——这是 GNSS 的另一大应用。

a. 授时原理

如果用户位置已知(或固定),那么未知数就只剩钟差了——1 颗卫星就能解出钟差。
用多颗卫星可以提高授时精度。

授时精度:

  • 普通消费级接收机:10~100ns
  • 专业授时接收机:1~10ns
  • 高端授时接收机(OCXO+多频):< 1ns

b. 授时的应用

  • 电力系统:电网同步、故障录波
  • 通信系统:基站同步(4G/5G 要求 ±1.5μs 以内)
  • 金融系统:交易时间戳
  • 交通系统:列车调度、航空管制

小结一下:

PVT 解算的本质是"距离交会 + 钟差解算"——4 颗卫星解出三维位置和接收机钟差。
最小二乘(或加权最小二乘)是标准解法,通过迭代线性化来处理非线性方程。
定位精度由两方面决定:伪距测量精度(误差源)和卫星几何分布(GDOP)。
双频的核心优势是消除电离层延迟——这是最大的误差源之一。
速度用多普勒解算,授时用位置已知条件下的钟差解算——GNSS 同时提供位置、速度、时间三位一体的服务。

下一节,我们讲 PVT 解算的算法实现——从最小二乘到卡尔曼滤波,从选星策略到完好性监测,看看工程上是怎么把 PVT 做到又快又准又稳的。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询