上节介绍了精密单点定位的基本原理,本文继续在精密单点定位的基础上进行更深层次的介绍。

一、精密单点定位的函数模型

上节说过,在精密单点定位之前,也有一种绝对定位技术,那就是伪距单点定位。伪距单点定位靠的伪距进行单点定位,但是伪距的精度较差,主要原因是其噪声较大,且多径效应明显。而精密单点定位的精密就精密在其一,轨道的精密、钟差的精密。即使用的是IGS精密星历和精密钟差。二、就是观测值的精密。这里的观测值就是比伪距精度更高的载波相位观测值。三、函数模型的精密。伪距单点定位中的误差模型都已经在书本上介绍了,如大气误差模型。但是那种模型的精度不能满足精密单点定位的需求,因此在精密单点定位中,需要对大气误差延迟进行估计和处理。如对流层延迟一般都是赋予参数进行估计,而电离层延迟则需进行组合消除,如上节介绍的无电离层组合。对于非组合模型,也需要对电离层进行估计。因此精密单点定位的函数模型可以表述如下:
[ P 1 − ρ 1 − D P 1 L 1 − ρ 1 − D L 1 . . . P n − ρ n − D p n L n − ρ n − D L n ] = [ x 0 − x 1 ρ 0 y 0 − y 1 ρ 0 z 0 − z 1 ρ 0 1 M w e t 1 0 . . . 0 x 0 − x 1 ρ 0 y 0 − y 1 ρ 0 z 0 − z 1 ρ 0 1 M w e t 1 1 . . . 0 . . . x 0 − x n ρ 0 y 0 − y n ρ 0 z 0 − z n ρ 0 1 M w e t n 0 . . . 0 x 0 − x n ρ 0 y 0 − y n ρ 0 z 0 − z n ρ 0 1 M w e t n 0 . . . 1 ] [ d x d y d z c ⋅ δ t d Z T D w B 1 . . . B n ] \begin{bmatrix} P_1-\rho_1-D_{P1} \\ L_1-\rho_1-D_{L1} \\ ...\\ P_n-\rho_n-D_{pn} \\ L_n -\rho_n-D_{Ln}\end{bmatrix}=\begin{bmatrix} \frac{x_0-x^1}{\rho_0} & \frac{y_0-y^1}{\rho_0} & \frac{z_0-z^1}{\rho_0} & 1 & M^1_{wet} & 0 & ... & 0 \\ \frac{x_0-x^1}{\rho_0} & \frac{y_0-y^1}{\rho_0} & \frac{z_0-z^1}{\rho_0} & 1 & M^1_{wet} & 1 & ... & 0 \\ ...\\ \frac{x_0-x^n}{\rho_0} & \frac{y_0-y^n}{\rho_0} & \frac{z_0-z^n}{\rho_0} & 1 & M^n_{wet} & 0 & ... & 0 \\ \frac{x_0-x^n}{\rho_0} & \frac{y_0-y^n}{\rho_0} & \frac{z_0-z^n}{\rho_0} & 1 & M^n_{wet} & 0 & ... & 1 \end{bmatrix} \begin{bmatrix} dx \\ dy \\ dz \\ c·\delta t \\ dZTD_w \\ B_1 \\ ... \\ B_n\end{bmatrix} ⎣⎢⎢⎢⎢⎡​P1​−ρ1​−DP1​L1​−ρ1​−DL1​...Pn​−ρn​−Dpn​Ln​−ρn​−DLn​​⎦⎥⎥⎥⎥⎤​=⎣⎢⎢⎢⎢⎢⎢⎡​ρ0​x0​−x1​ρ0​x0​−x1​...ρ0​x0​−xn​ρ0​x0​−xn​​ρ0​y0​−y1​ρ0​y0​−y1​ρ0​y0​−yn​ρ0​y0​−yn​​ρ0​z0​−z1​ρ0​z0​−z1​ρ0​z0​−zn​ρ0​z0​−zn​​1111​Mwet1​Mwet1​Mwetn​Mwetn​​0100​............​0001​⎦⎥⎥⎥⎥⎥⎥⎤​⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡​dxdydzc⋅δtdZTDw​B1​...Bn​​⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤​
上式就是精密单点定位的基本函数模型。即为n个卫星的伪距和载波相位观测方程组成的 y − b = A X y-b=AX y−b=AX的形式。这种形式也是测绘领域最小二乘的基本观测方程式。

二、精密单点定位的随机模型

仅仅依赖上式是无法将待求参数估计出来的,因为在上式中不同观测方程的精度并不一致,因此需要对观测方程定权。因为在最小二乘系统中是需要有权矩阵的。观测方程噪声中主要由各个模型的误差组成:
σ 2 = σ U E R E 2 = σ e p h 2 + σ c l k 2 + σ i o n 2 + σ t r o p 2 + σ m p 2 + σ n o i s e 2 \sigma^2=\sigma^2_{UERE}=\sigma^2_{eph}+\sigma^2_{clk}+\sigma^2_{ion}+\sigma^2_{trop}+\sigma^2_{mp}+\sigma^2_{noise} σ2=σUERE2​=σeph2​+σclk2​+σion2​+σtrop2​+σmp2​+σnoise2​
其中 σ 2 \sigma^2 σ2即为观测方程误差, σ U E R E 2 \sigma^2_{UERE} σUERE2​即为用户等效距离误差,后边各项的含义在下标中已经给出。其中 σ i o n 2 \sigma^2_{ion} σion2​在使用无电离层组合时可不用考虑; σ t r o p 2 \sigma^2_{trop} σtrop2​在估计对流层湿延迟参数时不用考虑。
一般而言,会将随机模型分为与高度角有关和与高度角无关的部分:
σ 2 = σ S I S U R E 2 + σ e l e 2 = σ e p h 2 + σ c l k 2 + σ 2 ( e l e ) \sigma^2=\sigma^2_{SISURE}+\sigma^2_{ele}=\sigma^2_{eph}+\sigma^2_{clk}+\sigma^2(ele) σ2=σSISURE2​+σele2​=σeph2​+σclk2​+σ2(ele)
其中 σ S I S U R E 2 \sigma^2_{SISURE} σSISURE2​为GNSS空间信号精度,主要由后面的星历误差和种误差组成,其余的即为与高度角相关的部分,一般就是按照高度角定权。即
{ σ ( e l e ) = σ 0 , e l e > 30 σ ( e l e ) = σ 0 2 s i n ( e l e ) , e l s e \begin{cases} \sigma(ele)=\sigma_0, ele > 30 \\ \sigma(ele)=\frac{\sigma_0}{2sin(ele)}, else \end{cases} {σ(ele)=σ0​,ele>30σ(ele)=2sin(ele)σ0​​,else​
而权矩阵即为
W = R − 1 = [ 1 σ 1 2 ⋱ 1 σ n 2 ] W=R^{-1}=\begin{bmatrix} \frac{1}{\sigma^2_1} \\ & \ddots & \\ & & \frac{1}{\sigma^2_n} \end{bmatrix} W=R−1=⎣⎢⎡​σ12​1​​⋱​σn2​1​​⎦⎥⎤​

三、精密单点定位的参数估计方法

对于单站来说,精密单点定位的参数估计方法一般有两种,即最小二乘和卡尔曼滤波方法。最小二乘就是将所有的观测方程形成法方程求解,而卡尔曼滤波估计当前时刻的参数时仅需知道上一时刻的状态参数即可,因此卡尔曼滤波相比最小二乘来说,有较小的耗存。尤其是在动态PPP求解的时候,最小二乘就需要采用序贯平差,但是序贯平差的法方程矩阵会越来越大,因此实际求解的时候一般会采用参数消去的序贯平差求解。而卡尔曼滤波在动态系统有天然的优势性,不管是在定轨、动态定位还是组合导航中都应用广泛。且针对不同的系统,又包括扩展卡尔曼滤波、自适应卡尔曼滤波、UD分解滤波等等。本节不对其展开,仅对这两种方法的最简单形式叙述。

(1)最小二乘
根据上节介绍的PPP的函数模型和随机模型,建立的GNSS定位的数学模型如下:
y = G x + ϵ , R y=Gx+\epsilon,R y=Gx+ϵ,R
ϵ \epsilon ϵ满足随机模型。即 E [ ϵ ] = 0 E[\epsilon]=0 E[ϵ]=0及 R = E [ ϵ ϵ T ] R=E[\epsilon \epsilon^T] R=E[ϵϵT].
接下来就是我们熟知的组成法方程、法方程求逆、求解待估参数。这里直接给出最后的结果。
x ^ = ( G T R − 1 G ) − 1 G T R − 1 y P = ( G T R − 1 G ) − 1 \hat x=(G^TR^{-1}G)^{-1}G^TR^{-1}y \\ P=(G^TR^{-1}G)^{-1} x^=(GTR−1G)−1GTR−1yP=(GTR−1G)−1
在动态系统中,序贯平差会增加观测方程的个数,也就导致了法方程矩阵的维数越来越多,求逆就变成了一个难题。

对于维数较大的法方程矩阵,一般可以采用Cholesky分解法又称为平方根法求逆。这种方法可由读者自行学习。

那么序贯平差是在做一件什么事呢?

假如有两组观测方程,他们有全部相同的未知参数,也可以有部分相同的未知参数。
y 1 = G 1 x + ϵ 1 , R 1 y 2 = G 2 x + ϵ 2 , R 2 y_1=G_1 x+\epsilon_1,R_1 \\ y_2 = G_2 x + \epsilon_2,R_2 y1​=G1​x+ϵ1​,R1​y2​=G2​x+ϵ2​,R2​
对这两组观测方程也可以组成法方程矩阵求解,结果为
x ^ = [ G 1 T R 1 − 1 G 1 + G 2 T R 2 − 1 G 2 ] − 1 [ G 1 T R 1 − 1 y 1 + G 2 T R 2 − 1 y 2 ] P = [ G 1 T R 1 − 1 G 1 + G 2 T R 2 − 1 G 2 ] − 1 \hat x= [G^T_1R_1^{-1}G_1+G_2^TR^{-1}_2G_2]^{-1}[G^T_1R^{-1}_1y_1+G^T_2R^{-1}_2y_2] \\ P = [G^T_1R^{-1}_1G_1+G^T_2R^{-1}_2G_2]^{-1} x^=[G1T​R1−1​G1​+G2T​R2−1​G2​]−1[G1T​R1−1​y1​+G2T​R2−1​y2​]P=[G1T​R1−1​G1​+G2T​R2−1​G2​]−1
上式为两组观测方程的解。可以对比一下与经典最小二乘的解。
序贯最小二乘的精髓在于迭代求解,因为是针对与历元解,所以需要对其进行迭代,那么观测方程会越来越多,即会有第三组、第四组…迭代就是每增加一组观测方程,就在前面几组计算的基础上求解。
x ^ 1 = P 1 ⋅ [ G 1 T R 1 − 1 y 1 ] P 1 = [ G 1 T R 1 − 1 G 1 ] − 1 x ^ 2 = P 2 ⋅ [ G 1 T R 1 − 1 y 1 + G T ] P 2 = [ P 1 − 1 + G 2 T R 2 − 1 G 2 ] − 1 \hat x_1=P_1·[G^T_1R^{-1}_1y_1] \\ P_1=[G^T_1R^{-1}_1G_1]^{-1} \\ \hat x_2=P_2 ·[G^T_1R^{-1}_1y_1+G^T] \\ P_2 = [P^{-1}_1+G^T_2R^{-1}_2G_2]^{-1} x^1​=P1​⋅[G1T​R1−1​y1​]P1​=[G1T​R1−1​G1​]−1x^2​=P2​⋅[G1T​R1−1​y1​+GT]P2​=[P1−1​+G2T​R2−1​G2​]−1
当增加第三组的时候,那么第i组的解的法方程矩阵就在第i-1组的基础上在增加一个 G i T R i − 1 G i G^T_iR^{-1}_iG_i GiT​Ri−1​Gi​。
对于静态系统,也可以采用序贯平差计算,但是此时序贯平差在每个历元的解都不同,只有最后一个历元的解才是真解。
序贯平差的优势是在迭代的过程中可以消除不再感兴趣的参数。如接收机钟差等。在动态定位中,上个历元的位置参数就不再感兴趣,可以消去。当发生周跳时,上个历元的模糊度参数就要消去。
(2)卡尔曼滤波
卡尔曼滤波在GNSS定位定轨中非常常见,因此想要学习GNSS定位定轨,卡尔曼滤波的知识也不可或缺。其实卡尔曼滤波和序贯平差很相似。
对于n-1个历元和n历元,参数和协方差的预测模型如下:
x ^ − ( n ) = Φ ( n − 1 ) x ^ − ( n − 1 ) P − x ( n ) ^ = Φ ( n − 1 ) P − x ( n − 1 ) ^ Φ T ( n − 1 ) + Q ( n − 1 ) \hat x^-(n)=\Phi (n-1)\hat x^-(n-1) \\ {P^-}_{\hat{x(n)}}=\Phi (n-1){P^-}_{\hat{x(n-1)}}\Phi^T(n-1)+Q(n-1) x^−(n)=Φ(n−1)x^−(n−1)P−x(n)^​​=Φ(n−1)P−x(n−1)^​​ΦT(n−1)+Q(n−1)
更新方程如下:
P x ( n ) ^ = [ I − K ( n ) G ( n ) ] P − x ( n ) ^ x ^ ( n ) = x ^ − ( n ) + K ( n ) [ y ( n ) − G ( n ) x ^ − ( n ) ] {P}_{\hat{x(n)}}=[I-K(n)G(n)]{P^-}_{\hat{x(n)}} \\ \hat x(n)=\hat x ^-(n)+K(n)[y(n)-G(n)\hat x^-(n)] Px(n)^​​=[I−K(n)G(n)]P−x(n)^​​x^(n)=x^−(n)+K(n)[y(n)−G(n)x^−(n)]
K(n)称为卡尔曼增益:
K ( n ) = P − x ( n ) ^ G T ( n ) [ G ( n ) P − x ( n ) ^ G ( n ) T + R ( n ) ] − 1 K(n)={P^-}_{\hat{x(n)}}G^T(n)[G(n){P^-}_{\hat{x(n)}}G(n)^T+R(n)]^{-1} K(n)=P−x(n)^​​GT(n)[G(n)P−x(n)^​​G(n)T+R(n)]−1
上面5个公式就是卡尔曼的经典5公式。
对于静态定位,坐标参数不变,钟差参数为随机噪声模型,对流层参数一般为随机游走模型,未发生周跳时,其模糊度参数不变,故其状态转移矩阵 Φ \Phi Φ包含坐标、接收机、对流层延迟和模糊度参数的状态转移。
Φ = [ 1 1 1 0 1 1 ] Q = [ 0 0 0 σ δ t 2 σ t r o p 2 0 ] \Phi=\begin{bmatrix} 1 & \\ & 1 & \\ & & 1 & \\ & & & 0 & \\ & & & & 1 &\\ & & & & & 1 \end{bmatrix} \\ Q=\begin{bmatrix} 0 & \\ & 0 & \\ & & 0 & \\ & & & \sigma^2_{\delta t} & \\ & & & & \sigma^2_{trop} \\ & & & & & 0 \end{bmatrix} Φ=⎣⎢⎢⎢⎢⎢⎢⎡​1​1​1​0​1​1​⎦⎥⎥⎥⎥⎥⎥⎤​Q=⎣⎢⎢⎢⎢⎢⎢⎡​0​0​0​σδt2​​σtrop2​​0​⎦⎥⎥⎥⎥⎥⎥⎤​
当发生周跳时, Φ \Phi Φ中右下角为0.

对于动态定位,又分为运动速度已知和未知的情况。若速度未知,则
Φ = [ 0 0 0 0 1 1 ] Q = [ σ d x 2 σ d y 2 σ d z 2 σ δ t 2 σ t r o p 2 0 ] \Phi=\begin{bmatrix} 0 & \\ & 0 & \\ & & 0 & \\ & & & 0 & \\ & & & & 1 &\\ & & & & & 1 \end{bmatrix} \\ Q=\begin{bmatrix} \sigma^2_{dx} & \\ & \sigma^2_{dy} & \\ & & \sigma^2_{dz} & \\ & & & \sigma^2_{\delta t} & \\ & & & & \sigma^2_{trop} \\ & & & & & 0 \end{bmatrix} Φ=⎣⎢⎢⎢⎢⎢⎢⎡​0​0​0​0​1​1​⎦⎥⎥⎥⎥⎥⎥⎤​Q=⎣⎢⎢⎢⎢⎢⎢⎡​σdx2​​σdy2​​σdz2​​σδt2​​σtrop2​​0​⎦⎥⎥⎥⎥⎥⎥⎤​
其中 [ σ d x 2 σ d y 2 σ d z 2 ] \begin{bmatrix} \sigma^2_{dx} & \sigma^2_{dy} & \sigma^2_{dz} \end{bmatrix} [σdx2​​σdy2​​σdz2​​]为坐标噪声,当高速运动时,可设置为10Km。

若速度已知,坐标参数可变为随机游走。
Φ = [ 1 1 1 0 1 1 ] Q = [ Q d x ′ Δ t Q d y ′ Δ t Q d z ′ Δ t σ δ t 2 σ t r o p 2 0 ] \Phi=\begin{bmatrix} 1 & \\ & 1 & \\ & & 1 & \\ & & & 0 & \\ & & & & 1 &\\ & & & & & 1 \end{bmatrix} \\ Q=\begin{bmatrix} Q^{'}_{dx}\Delta t & \\ &Q^{'}_{dy}\Delta t& \\ & &Q^{'}_{dz}\Delta t & \\ & & & \sigma^2_{\delta t} & \\ & & & & \sigma^2_{trop} \\ & & & & & 0 \end{bmatrix} Φ=⎣⎢⎢⎢⎢⎢⎢⎡​1​1​1​0​1​1​⎦⎥⎥⎥⎥⎥⎥⎤​Q=⎣⎢⎢⎢⎢⎢⎢⎡​Qdx′​Δt​Qdy′​Δt​Qdz′​Δt​σδt2​​σtrop2​​0​⎦⎥⎥⎥⎥⎥⎥⎤​
其中 [ Q d x ′ Q d y ′ Q d z ′ ] \begin{bmatrix} Q^{'}_{dx} & Q^{'}_{dy} & Q^{'}_{dz} \end{bmatrix} [Qdx′​​Qdy′​​Qdz′​​]为速度噪声。

不管静态还是动态定位,其先验信息都可以设置为
Q 0 = [ 1 2 k m 2 1 2 k m 2 1 2 k m 2 30 0 2 k m 2 0. 1 2 m 2 2 0 2 m 2 ] Q_0=\begin{bmatrix} 1^2km^2& \\ &1^2km^2& \\ & &1^2km^2 & \\ & & & 300^2km^2& \\ & & & & 0.1^2m^2 \\ & & & & & 20^2m^2 \end{bmatrix} Q0​=⎣⎢⎢⎢⎢⎢⎢⎡​12km2​12km2​12km2​3002km2​0.12m2​202m2​⎦⎥⎥⎥⎥⎥⎥⎤​

本节介绍了PPP的函数模型、随机模型以及其两种参数估计方法。希望通过本篇,能对初入GNSS的小白提供一点研究思路。计划下节介绍一些多系统PPP的基本原理。

参考文献:GNSS高精度定位原理(董大南) 强推此书,希望研究GNSS的小白们人手一本。

GNSS精密单点定位(PPP)基本原理(进阶篇)相关推荐

  1. GNSS精密单点定位(PPP)基本原理

    本文旨在对GNSS的PPP技术进行原理性总结.并对PPP涉及的一些细节进行了详细的叙述,相当于一个综述性文章.希望对初入GNSS的小白有所帮助. 1 背景 精密单点定位技术(Precise Point ...

  2. GNSS精密单点定位学习:天线相位中心改正文件.atx文件格式说明

    天线相位中心改正文件 IGS官方说明文件 center positiin(PCO):天线平均相位中心(瞬时相位中心平均值)与天线参考点(ARP)之间的偏差,称为天线相位中心偏差.(2006年11月以前 ...

  3. 精密单点定位技术(PPP)和RTK技术有什么区别

    首先用通俗的话来说,RTK是先架设一个基站,基站把自己的误差是多少告诉我,我再用这个误差项去消除自己移动站的误差.而PPP不用我们自己架设基站,已经有一些基础的基站,通过卫星发送的数据,把误差分离处理 ...

  4. PPP精密单点定位GAMP(一)

    周峰老师的GAMP是一款非常优秀的PPP定位开源程序,将rtklib中某些多余的函数.代码简洁化. 学习配置文件 配置文件可以设置我们解算的模式.参数处理,相当于我们窗口信息用文本存储下来obs # ...

  5. PPP精密单点定位 GAMP(三)——提高北斗系统定位精度

    GAMP是我精密单点定位学习之旅上最好的老师 这篇博客将介绍我在GAMP上学到的知识和踩过的坑. 1.数据下载 GAMP对于文件的命名格式是有要求的,我们常用的文件下载方式主要是GAMPII和FAST ...

  6. 卫星导航精密单点定位(PPP)技术

    单点定位是卫星导航定位系统中最简单.最直接的定位方式.传统的单点定位(SPP)采用测量伪距观测值(C/A码或P码)进行定位,一般只能达到十几米或几十米甚至更差的精度,因此并不被认为是一种高精度的定位方 ...

  7. RTKLIB专题学习(七)---精密单点定位实现初识(三)

    RTKLIB专题学习(七)-精密单点定位实现初识(三) 上两篇我们介绍了RTKLIB中精密单点定位的大致流程,今天我们对照RTKLIB学习手册,来学习相应改正公式和误差源 1.在PPP模式中 RTKL ...

  8. 北斗三号精密单点定位(PPP-B2b)

    2019年12月27日上午,北斗三号系统提供全球服务一周年新闻发布会在国务院新闻办公室召开.北斗公开服务信号B2b和精密单点定位服务信号PPP-B2b接口控制文件(测试版)同步发布. 本次发布的B2b ...

  9. 精密单点定位之PPPH解算及其gamit/globk精度评定

    精密单点定位之PPPH解算及其gamit/globk精度评定 PPPH A MATLAB-based Software for Multi-GNSS Precise Point Positioning ...

最新文章

  1. 谷歌发布深度学习新算法,适用于真实机器人的技能学习
  2. Python 工程管理及 virtualenv 的迁移
  3. MinGW:sjlj vs dwarf vs seh有什么区别?
  4. select poll epoll IO操作多路复用及猴子补丁
  5. Knative 实践:从源代码到服务的自动化部署
  6. mysql二级封锁协议_MySQL 行锁、两阶段锁协议、死锁以及死锁检测
  7. delphi 停电文本数据丢失_概述DCS系统正确停电和上电的步骤
  8. C/C++的memset函数的说明和使用
  9. python中导入模块的方式_在python中导入模块中的对象有哪几种方式
  10. 02. Win32 API简介
  11. macOS Windows版本 Photoshop 下载 AI下载
  12. layui省市区联动选择的实现
  13. 怎么复制图片的html代码,修改设置让你轻松复制网页文字或图片
  14. 51单片机(一)最小系统介绍
  15. RTB广告技术修炼之-流量漫游
  16. jsp无图片时显示默认图片解决方案
  17. uniapp-获取省市区地址及内部高德sdk的使用
  18. RTrPPG: An Ultra Light 3DCNN for Real-Time Remote Photoplethysmography
  19. Springboot——mybatis配置
  20. 首师大附中互测题:50229234海岛帝国:独立之战【C002】

热门文章

  1. 高级搜索算法之迭代加深
  2. php解析word文档
  3. 计算机视觉——特征检测
  4. 静态网页入门讲解,制作属于你自己的网页(一)
  5. 经济学知识——LPR、MLF、SLF、SLO、PSL、OMO
  6. Java GUI基础
  7. 谷歌安卓以AAB替换APK安装包
  8. 轻型载货汽车(离合器及传动轴设计)外文翻译
  9. (转)理论经典:TCP协议的3次握手与4次挥手过程详解
  10. docker swam 安装kafka集群以及kfakamanger