# 引言

说到卫星定位系统,大家都会想到 GPS(Global Positioning System,全球定位系统)。GPS 是美国从上世纪 70 年代开始研制,历时 20 年,耗资 200 亿美元,于 1994 年全面建成,具有在海、陆、空进行全方位实时三维导航与定位能力的新一代卫星导航与定位系统。早期仅限于军方使用,时至今日,GPS 早已开放给民间做为定位使用,广泛应用于资源勘查、航空、交通、灾害现场等领域。

除了美国的 GPS 系统,世界上知名的卫星导航与定位系统还有:俄罗斯的 GLONASS、欧盟的 GALILEO 以及中国的北斗卫星导航系统(BDS)。

在这里插入图片描述

自 1994 年北斗一号系统工程立项至今,我国用 26 年的时间实现了 59 颗北斗卫星(包括 55 颗北斗导航卫星和 4 颗北斗导航试验卫星)的发射。2020 年 6 月 23 日,北斗三号最后一颗全球组网卫星在西昌卫星发射中心点火升空,随着该星进入预定工作轨道,标志着北斗三号全球卫星导航系统星座部署全面完成,北斗系统完整服务全球的目标指日可待。

在这里插入图片描述

北斗卫星导航系统包括三个阶段:

  • 第一阶段,2000 年年底,发射 2 颗北斗一号卫星,建成北斗一号系统,向中国提供服务;
  • 第二阶段,2007 年 - 2012 年,发射 14 颗北斗二号卫星,建成北斗二号系统,向亚太地区提供服务;
  • 第三阶段,计划在 2020 年前后,发射 30 余颗北斗三号卫星,建成北斗三号系统,即北斗全球系统,向全球提供服务。

在这里插入图片描述

# 计算

那么,问题来了!我们是怎么通过卫星进行定位的呢?至少需要多少颗卫星才能准确定位呢?

下图是卫星定位系统的结构示意图,包括上空的若干颗卫星、地面的监控站以及需要定位的接收器(比如手机)。

  • 导航卫星:发射出包含时刻信息(t)和轨道信息(x, y, z)的无线电波;
  • 监控站:负责监测卫星状态,确认卫星轨道并修正卫星时刻偏差;
  • 接收器:接收卫星发射出来的无线电波。

在这里插入图片描述

要实现全球定位,需要至少 24 颗人造卫星,这些卫星无时无刻都围绕着地球旋转。实际上,为了提高精确度和可靠性,无论是北斗还是 GPS、格洛纳斯、伽利略导航系统都有超过 24 颗卫星。

在这里插入图片描述

那么接收器需要同时接收多少颗卫星的信息才能计算出自身的定位信息呢?

假设接收器在 T 时刻接收到导航卫星 A 的位置信息 (XaX_a, YaY_a, ZaZ_a) 和时刻信息 TaT_a,根据勾股定理,接收器到卫星 A 的距离 AOAO 与卫星 A 的位置之间的关系表示如下。

AO2=((TaT)×c)2=(XaXo)2+(YaYo)2+(ZaZo)2AO^2 = {((T_a - T) \times c)}^2 = (X_a - X_o)^2 + (Y_a - Y_o)^2 + (Z_a - Z_o)^2

其中,cc 为无线电波的传播速度(光速:2.99792458 x 108 m/s),TT 为接收器接收信号的时刻,(XoX_o, YoY_o, ZoZ_o) 为接收器的坐标位置,也就是我们需要求的值。

在这里插入图片描述

显然,一个方程无法解出三个变量值,那怎么办?很简单,再接收两颗卫星 B 和 C 的信息,组成三个方程呗!

AO2=((TaT)×c)2=(XaXo)2+(YaYo)2+(ZaZo)2AO^2 = {((T_a - T) \times c)}^2 = (X_a - X_o)^2 + (Y_a - Y_o)^2 + (Z_a - Z_o)^2

BO2=((TbT)×c)2=(XbXo)2+(YbYo)2+(ZbZo)2BO^2 = {((T_b - T) \times c)}^2 = (X_b - X_o)^2 + (Y_b - Y_o)^2 + (Z_b - Z_o)^2

CO2=((TcT)×c)2=(XcXo)2+(YcYo)2+(ZcZo)2CO^2 = {((T_c - T) \times c)}^2 = (X_c - X_o)^2 + (Y_c - Y_o)^2 + (Z_c - Z_o)^2

实在太聪明啦,耶!

在这里插入图片描述

然而,这里有个陷阱 —— 时刻的一致性问题!为了让上面三组方程成立,卫星的 TaT_aTbT_bTcT_c 以及接收器的 TT 时刻需要以同一时钟进行测算。由于导航卫星使用十分精密的原子钟,并且由监控站进行修正,因此可认为 TaT_aTbT_bTcT_c 时刻是一致的。但是接收器的时间就不一样啦,只能标识接收器的时钟上的某个时刻,这个时刻可能滞后,也可能超前,无法控制。

那怎么办呐?很简单,把接收器的时钟产生的误差 δ\delta 提前加入公式里就好啦。也就是说,用 (TT - δ\delta) 表示接收器接收到无线电波的准确时刻,多了一个变量,就再增加一组方程呗!

在这里插入图片描述

列出四个方程:

((Ta(Tδ)×c)2=(XaXo)2+(YaYo)2+(ZaZo)2{((T_a - (T - \delta) \times c)}^2 = (X_a - X_o)^2 + (Y_a - Y_o)^2 + (Z_a - Z_o)^2

((Tb(Tδ)×c)2=(XbXo)2+(YbYo)2+(ZbZo)2{((T_b - (T - \delta) \times c)}^2 = (X_b - X_o)^2 + (Y_b - Y_o)^2 + (Z_b - Z_o)^2

((Tc(Tδ)×c)2=(XcXo)2+(YcYo)2+(ZcZo)2{((T_c - (T - \delta) \times c)}^2 = (X_c - X_o)^2 + (Y_c - Y_o)^2 + (Z_c - Z_o)^2

((Td(Tδ)×c)2=(XdXo)2+(YdYo)2+(ZdZo)2{((T_d - (T - \delta) \times c)}^2 = (X_d - X_o)^2 + (Y_d - Y_o)^2 + (Z_d - Z_o)^2

除了 XoX_oYoY_oZoZ_o 三个未知数,还有时间误差 δ\delta 变量。因此,现实世界中至少需要 4 颗卫星才能计算出接收器的坐标位置。你猜对了吗?

在这里插入图片描述