GPS/GNSS原理与应用(第3版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.5 利用测距码确定位置

如2.4节所述,GNSS卫星发射信号采用了DSSS调制。DSSS提供了传输测距码和基本导航数据(如卫星星历和卫星健康状况)的信号结构。测距码调制到卫星的载波频率上,这些码看起来像随机二进制序列,并且具有类似的频谱特性,但实际上是确定的。图2.24中显示了一个短测距码序列的简单例子。这些码带有可预测的图案,是周期性的,并且可由合适的接收机复现。

图2.24 测距码

2.5.1 确定卫星到用户的距离

前面研究了用卫星测距码和多个球体来求解用户三维位置的理论问题,那时预先假设接收机时钟与系统时是完全同步的。实际上,情况并非如此。在求解用户的三维位置前,我们先来研究用非同步时钟和测距码确定从卫星到用户距离的基本概念。影响距离测量精度的误差源(如测量噪声、传播延迟等)很多,但与时钟不同步造成的误差相比,这些误差源通常可以忽略不计。因此,在下面对基本概念的讲解中将省略除时钟偏移外的误差。这些误差源将在10.2节中介绍。

在图2.25中,我们希望确定矢量u,它代表用户接收机相对于ECEF坐标系原点的位置。用户的位置坐标xu, yu, zu被认为是未知的。矢量r表示从用户到卫星的偏移矢量。卫星在ECEF笛卡儿坐标系中的坐标是(xs, ys, zs)处。矢量s表示卫星相对于坐标原点的位置,由卫星广播的星历数据计算得到。卫星到用户的矢量r

图2.25 用户位置矢量表示

矢量r的幅度为

r表示r的幅度,有

距离r通过测量卫星生成的测距码从卫星传送到用户接收机天线所需的传播时间来计算。传播时间的测量过程如图2.26所示。例如,在t1时刻由卫星生成的特定码相位在t2时刻到达接收机。传播时间由时t表示。在接收机内,相对接收机时钟在t时刻生成相同编码的测距码,记为复现码。这一复现码在时间上移动,直到它与卫星生成的测距码实现相关。如果卫星时钟和接收机时钟完全同步,那么相关过程将得到真实的传播时间。将传播时间相t乘以光速,便能算出卫星到用户的真实距离(即几何距离)。于是,我们便有了2.1.2.1节描述的理想情况。然而,卫星时钟和接收机时钟一般是不同步的。

图2.26 利用复现码确定卫星码的发送时刻

接收机时钟与系统时之间通常存在偏差。此外,卫星计时系统(通常称为卫星时钟)基于2.7.1.5节所述的高精度原子频标(AFS),因此通常与系统时存在偏差。这样,由相关过程确定的距离就被记为伪距ρ,因为它是通过将信号传播速度c乘以两个非同步时钟(卫星时钟和接收机时钟)之间的时间差得到的距离。这个观测量包含卫星到用户的几何距离、由系统时和用户时钟之差造成的偏移及系统时与卫星时钟之差造成的偏移。上述时序关系如图2.27所示。Ts表示信号离开卫星的系统时;Tu表示信号到达用户接收机的系统时;δt表示卫星时钟与系统时之间的偏移,超前为正,滞后(延迟)为负;tu表示接收机时钟与系统时之间的偏移;Ts+δt表示信号离开卫星时卫星时钟的读数;Tu+tu表示信号到达用户接收机时用户接收机时钟的读数;c表示光速。

图2.27 距离测量时序关系

几何距离为r=c(Tu-Tu)=c∆t,伪距为

ρ=c[(Tu+tu)−(Ts+δt)]=c(Tu-Ts)+c(t-δt)=r+c(tu-δt)

因此,式(2.39)可以改写为

ρ-c(tu-δt)=‖s-u

式中,tu是接收机时钟相对于系统时的超前量;δt是卫星时钟相对于系统时的超前量;c是光速。

卫星时钟与系统时的偏移δt由偏差和漂移组成。卫星导航系统地面监测网络确定这些偏移分量的校正值,并将校正值发至卫星,再由卫星在导航电文中广播给用户。在用户接收机中利用这些校正值将每个测距码的发送时刻同步到系统时。因此,我们假设这种偏移已被补偿,不再认为δt是未知的(仍然存在一些残余偏移,详见10.2.1节,但这里假设它们可以忽略不计)。因此,前面的方程可以表示为

2.5.2 用户位置的计算

为了确定用户的三维位置(xu, yu, zu)和偏移量tu,,对4颗卫星进行伪距测量,得到方程组

式中,j的范围是1~4,指不同的卫星。式(2.43)可展开成未知数xu, yu, zutu的联立方程:

式中,xj, yjzj是第j颗卫星的三维位置。

这些非线性方程可用如下3种方法来求解未知数:(1)闭合形式解[31-34];(2)基于线性化的迭代技术;(3)卡尔曼滤波(卡尔曼滤波基于对观测量时间序列的最优处理,提供一种改善PVT估计的方法,详见后面的介绍)。以下关于线性化的推导摘自文献[35]。若知道接收机的近似位置,则可将真实位置(xu, yu, zu)与近似位置之间的偏移表示为(∆xu,∆yu, ,∆zu)。将式(2.24)至式(2.47)在近似位置进行泰勒级数展开,便可将偏移(∆xu,∆yu,∆zu)表示为已知坐标和伪距测量值的线性函数。这个过程描述如下。

将单个伪距表示为

利用近似位置和时间偏差估计值,可以算出一个近似伪距:

如前所述,我们认为未知的用户位置和接收机时钟偏差由近似分量和增量分量组成,即

因此,可以写出

后一个函数可围绕近似点和关联的接收机时钟偏移预测值进行泰勒级数展开:

为了消除非线性项,展开式中去掉了一阶偏导数后面的各项。各个偏导数计算如下:

式中,

将式(2.49)和式(2.52)代入式(2.51)得

这样,就完成了式(2.48)相对于未知数相∆xu, ,∆yu, ,∆zu和∆tu的线性化(记住,这里忽略了地球自转补偿、测量噪声、传播延迟和相对论效应等次要误差源,这些误差源的讨论见10.2节)。

整理上式,将已知量移到左边,将未知数移到右边,得

为方便起见,我们引入下面的新变量来简化上式:

式中,axj, ayjazj表示从近似用户位置指向第j颗卫星的单位矢量的方向余弦。对于第j颗卫星,单位矢量的定义为

a=(axj, ayj, azj)

于是,式(2.54)可简单地重写为

ρj=axjxu+ayjyu+azjzu-ctu

现在有4个未知数个∆xu, ∆yu, ∆zu和和tu,它们可以通过对4颗卫星进行距离测量来求解。这些未知数可以通过解如下联立线性方程求出:

这些方程可以通过如下定义写成矩阵形式:

最后得到

其解为

一旦算出未知数,便可用式(2.50)来计算用户坐标xu, yu, zu和接收机时钟偏移tu。只要位移(∆xu, ∆yu, ∆zu)在线性点的附近,线性化方法便是可行的。可接受的位移取决于用户的精度要求。如果位移超过可接受的值,那么重新迭代上述过程,即基于算出的坐标xu, yu, zu得到新的伪距估计值来代替。实际上,用户到卫星的真实测量值会受到测量噪声、卫星轨道与星历间的偏差、多径等独立误差的影响。这些误差可以转换为矢量∆x的各个分量中的误差,即

式中,∈meas是由伪距测量误差组成的矢量,∈x是表示用户位置和接收机时钟偏差的矢量。

通过对4颗以上的卫星进行测量,可使误差∈x的贡献最小,得到类似于式(2.57)所示方程组的超定解。每个冗余测量值通常都含有不相关误差的贡献。冗余测量值可以通过最小二乘估计技术进行处理,以获得对未知数的改进估计。这种技术有多种形式,并在今天的接收机中得到广泛应用,一般利用4颗卫星以上的测量值来计算用户位置、速度和时间(PVT)。附录A中介绍了最小二乘技术。