手机是怎么知道你的位置的

引言

本文着眼于现实生活中的定位问题,介绍全球定位系统GPS(The Global Positioning System)的工作原理,分析卫星定位存在的误差来源。

问题

今天不管大家走到哪里,拿出手机可以告诉自己走到哪里、走了多快。给自己定位这样一件事是整个人类历史上持续在问的一个问题。我们中国发明了四大发明之一的指南针,可以更方便的进行定位,而在今天我们有全球定位系统,并通过经纬度来表示自己的坐标。

全球定位系统:2 TO 4

GPS(Global Positioning System)

  • 美国的GPS

    GPS一共6条轨道,每条轨道4颗卫星,一共24颗卫星。

  • 苏联的GLONASS

    GLONASS一共3条轨道,每条轨道8颗卫星,一共24颗卫星。

  • 欧盟的伽利略

  • 中国的北斗

模型的构建与求解

当我们遇到问题的时候,我们不要追求一个模型解决所有的问题。建模的共性在于在最初的阶段能否用非常简单的模型去讨论最简单基本的情形。

基本原理

我们身处地球给自己的空间位置定位,除了地球表面基本的经度和纬度外,还有海拔高度。一个全球定位系统实现了全球覆盖之后,无论在地球的哪个位置,在头顶上能接收到信号的卫星大约在6~10颗左右。这些卫星在固定的频率上发送的信息有:发出信号的时刻、卫星的位置坐标

而我们接收了这些卫星的信号,怎么通过卫星的位置知道自己的位置呢?虽然自己的坐标是未知的,但是我们知道从卫星的位置走到自己的位置的距离如何去表达:

$distance^2=(x-x_0)^2+(y-y_0)^2+(z-z_0)^2$ 其中 $x_0、y_0、z_0$ 为卫星坐标

而距离我们可不可以算出来呢?可以,因为我们还有时间:电磁波是以光速传播到设备的,乘上时间便可以求出距离。以距离为桥梁,我们将两边联系在了一起:

$(x-x_0)^2+(y-y_0)^2+(z-z_0)^2=distance^2=[(t-t_0) \cdot c]^2$

$(x-x_0)^2+(y-y_0)^2+(z-z_0)^2=[(t-t_0) \cdot c]^2$

基本模型

每有一颗卫星,就有一组方程; 使用者能接收几颗卫星,就有几组下面这样的信号量:

$(x-3)^2+(y-2)^2+(z-3)^2-[(10010.00692286-t)\cdot c]^2=0$

$(x-1)^2+(y-3)^2+(z-1)^2-[(10013.34256381-t)\cdot c]^2=0$

$(x-5)^2+(y-7)^2+(z-4)^2-[(10016.67820476-t)\cdot c]^2=0$

$(x-1)^2+(y-6)^2+(z-3)^2-[(10020.01384571-t)\cdot c]^2=0$

$(x-7)^2+(y-6)^2+(z-7)^2-[(10023.34948666-t)\cdot c]^2=0$

$(x-1)^2+(y-4)^2+(z-9)^2-[(10030.02076857-t)\cdot c]^2=0$

这样就列出了一个四元二次方程组,很容易求解。

求解原理

四元二次方程组消掉高次项以后变成一个线性方程组:

$\begin{bmatrix} 4 & -4 & -12 & 3.59751 \\ 0 & -2 & -16 & 2.99792 \\ 8 & 6 & -10 & 2.39834 \\ 0 & 6 & -12 & 1.79875 \\ 12 & 4 & -4 & 1.19917 \end{bmatrix}\begin{bmatrix} x \\ y \\ z \\ t\end{bmatrix}=\begin{bmatrix}35971.1 \\ 29957.2 \\ 24031.4 \\ 17993.5 \\ 12059.7 \end{bmatrix}$

如此简单的问题甚至不需要很大的计算机,一个计算器就可以算出来。全球定位系统看着一个很高大上的东西,其实它最基本的、最反映它本质的一个数学模型是非常简单的,当然这个模型并不能很好的解决现实问题,但确实是能体现出全球定位系统最核心的思想的模型。

这样的模型直接投入使用空间上会有几十米量级的误差,不能满足我们日常的大部分需求,我们需要进一步改进。但正是这样简单的模型,在时间上通过卫星授时误差能达到毫秒量级。

模型的分析

卫星时钟

全球定位系统的使用者可以不知道自己的时间,但卫星上的时间必须要非常准确的,所以地面会有一个原子钟为卫星授时并校准。之前也提到过,$[(t-t_0) \cdot c]^2$ 因为有光速这样大量级的存在,时间上的微小误差会被放大到很大,从而影响到方程本身的求解。也就是说,时间的同步性是非常重要的。

轨道误差

卫星总体来讲会绕着地球不断地自转,但转的每一次都多多少少会有一些误差。而卫星发送的数据包是根据自己的轨道位置所计算得到的,但轨道本身是按预定轨道计算,其中自转过程未必严格按预定轨道执行从而产生空间信息的偏差。

电磁波延迟

发送电磁波穿过电离层和大气层会有延迟,在时间方面产生误差。

接收机噪声

GPS接收机本身有噪声,设备之间也会有显著的区别。

首先考虑一个方程的简单情况,观察空间位置对时间误差的敏感程度:$f_1=(x-3)^2-[(T_1+t_1)\cdot c]^2=0$敏感程度可以由导数来刻画,具体来讲是$x$ 关于 $t$ 的这个函数求导。考虑4个方程的情况:

$f_1=(x-3)^2+(y-2)^2+(z-3)^2-[(T_1+t_1-t)\cdot c]^2=0$

$f_2=(x-1)^2+(y-3)^2+(z-1)^2-[(T_2+t_2-t)\cdot c]^2=0$

$f_3=(x-5)^2+(y-7)^2+(z-4)^2-[(T_3+t_3-t)\cdot c]^2=0$

$f_4=(x-1)^2+(y-7)^2+(z-3)^2-[(T_4+t_4-t)\cdot c]^2=0$

问题的解决

基本模型:可行,但达不到应用的要求(时间的精度、空间位置的精度)

科学问题到工程问题:科学原理可行到工程实现,需要技术方面的支持,而数学建模则更多的关注科学原理上可行性的问题

Acknowledgement
James Round