RTKLIB_trans_all

RTKLIB的相关模型和算法

主要是RTKLIB ver. 2.4.2 Manual 的翻译.

E.3 GNSS信号测量模型

(1)GNSS信号结构

Figure E.3‐1 展现了典型的GNSS信号架构。GNSS信号一般由载波频率(carrier)、测距码(code)和导航数据(data)的乘积组成。测距码也称为伪随机噪声码(PRN)。GPS、GLONASS、Galileo、QZSS、北斗、SBAS提供的这些GNSS信号的详细规格见附录F。

(2)伪距测量模型

伪距定义为ʺ接收机天线到卫星天线的距离,包括接收机和卫星的时钟偏差(以及其他偏差,如大气延迟)ʺ[9]。 L i L_i Li伪距 P r , i s P^s_{r,i} Pr,is可以用接收时钟测量的信号接收时间 t ˉ r ( s ) \bar{t}_r(s) tˉr(s)和卫星时钟测量的信号发送时间 t ˉ s ( s ) \bar{t}^s(s) tˉs(s)表示为:
P r , i s = c ( t ˉ r − t ˉ s ) − − − − − − ( E . 3.1 ) P^s_{r,i}=c(\bar{t}_r-\bar{t}^s)------(E.3.1) Pr,is=c(tˉrtˉs)(E.3.1)
该方程可以用卫星和接收机天线之间的几何范围 ρ r s \rho_r^s ρrs,接收机和卫星时钟偏差 d t r d T s dt_r dT^s dtrdTs,电离层和对流层延迟 I r , i s , T r s I^s_{r,i},T_r^s Ir,is,Trs和测量误差 ε P \varepsilon_P εP写成:
在这里插入图片描述

(3)载波相位和相位范围测量模型

载波相位为ʺ…实际上是对卫星信号的接收载波与接收机生成的参考频率之间的拍频进行测量"。 L i L_i Li的载波相位 ϕ r , i s \phi_{r,i}^s ϕr,is可以表示为:
在这里插入图片描述
其中 t 0 t_0 t0为初始时间(s), ϕ r , i ( t ) \phi_{r,i}(t) ϕr,i(t)为t时刻接收机本振的 L i L_i Li相位(循环), ϕ i s \phi_i^s ϕis为t时刻发射导航信号 L i L_i Li相位(循环)。 ϕ r , 0 , i \phi_{r,0,i} ϕr,0,i为接收机本振在 t 0 t_0 t0时刻 L i L_i Li初始相位(循环), ϕ r , 0 , i s \phi_{r,0,i}^s ϕr,0,is为发射导航信号在 t 0 t_0 t0时刻 L i L_i Li初始相位(循环)。
L i L_i Li相位范围 ϕ r , i s \phi_{r,i}^s ϕr,is定义为载波相位乘以载波频率 λ i \lambda_i λi(m),也可以用载波相位偏置 B r , i s B_{r,i}^s Br,is和载波相位校正项 d Φ ( s r , i ) d\Phi^s_(r,i) dΦ(sr,i).包括天线相位中心偏移和变化、固体潮引起的台站位移、相位闭合效应和卫星时钟上的相对论修正为:
在这里插入图片描述
N r , i s N_{r,i}^s Nr,is通常被称为载波相位整数模糊度、载波周期模糊度或简单模糊度。载波相位校正条款的具体制定请参见附录E.9。

(4)接收机与卫星天线的几何距离

几何距离定义为在惯性坐标下卫星天线相位中心位置与接收机天线相位中心位置的物理距离。首先,信号的传输时间 t s t^s ts可以由:
t s = ( ˉ t ) r − P r , i s / c − d T ( t s ) − − − ( E . 3.7 ) t^s= \bar(t)_r - P^s_{r,i}/c-dT(t^s)---(E.3.7) ts=(ˉt)rPr,is/cdT(ts)(E.3.7)

方程的两边都包含了 t s t^s ts。因此需要多次迭代才能解出方程。几何范围可以通过ECEF(地球中心地球固定)坐标上 t r 时 刻 和 t S 时 刻 t_r时刻和t^S时刻 trtS的接收机和卫星天线相位中心位置 r r = ( x r , y r , z r ) T r_r=(x_r,y_r,z_r)^T rr=(xr,yr,zr)T r s = ( x s , y s , z s ) T r^s=(x^s,y^s,z^s)^T rs=(xs,ys,zs)T表示为:
ρ r s = ∥ U ( t r ) r r ( t r ) − U ( t s ) r s ( t s ) ∥ − − − ( E . 3.8 ) \rho_r^s=\Vert U(t_r)r_r(t_r)-U(t^s)r^s(t^s)\Vert---(E.3.8) ρrs=U(tr)rr(tr)U(ts)rs(ts)(E.3.8)
其中 U ( t ) U(t) U(t)为t时刻的ECEF到ECI(地心惯性)坐标变换矩阵。对于ECEF坐标中的表达式,必须考虑地球自转效应,才能得到几何范围。这个方程可以用下列方程中的一个来近似,在1mm水平下有足够的精度。当前版本RTKLIB总是使用方程(F.3.8b)来表示几何范围。(F.3.8b)中的最后一项有时被称为Sagnac效应。
在这里插入图片描述

(5)卫星方向的方位角和仰角

从接收机到卫星的单位视线矢量(line - of - sight)可以用ECEF坐标表示为:
在这里插入图片描述
方程中忽略了地球自转的影响。从接收站点得到的卫星方向的方位角和仰角 A z r s Az_r^s Azrs E l r s El_r^s Elrs由:
在这里插入图片描述
其中 E r E_r Er为从ECEF到接收机位置局部坐标的坐标旋转矩阵。有关矩阵的详细构成,请参阅E.2。
在这里插入图片描述

E.4 GNSS卫星星历表和时钟

RTKLIB支持GPS、GLONASS、Galileo、QZSS、北斗和SBAS的广播星历和时钟。它还支持精确的星历表和时钟,如SP3‐c[22]和时钟RINEX[15],包括伽利略,QZSS和北斗的后处理模式。对于实时模式,还支持由SBAS长期快速校正和RTCM 3 SSR(状态空间表示)校正校正的广播星历表和时钟。下面的方程显示了RTKLIB中使用的星历和时钟模型。

(1) GPS、Galileo和QZSS的广播星历表和时钟

GPS、Galileo和QZSS的广播星历和SV时钟参数在导航电文中给出如下:
p e p h ( t o e , t o c , I D O ) = ( a , e , i 0 , Ω 0 , ω , M 0 , Δ n , I ˙ , Ω ˙ , C u s , C u c , C r s , C r c , C i s , C i c , a f 0 , a f 1 , a f 2 , T G D ) T p_{eph}(t_{oe},t_{oc},IDO)=(a,e,i_0,\Omega_0,\omega,M_0,\Delta n,\dot{I},\dot\Omega,C_{us},C_{uc},C_{rs},C_{rc},C_{is},C_{ic},af_0,af_1,af_2,T_{GD})^T peph(toe,toc,IDO)=(a,e,i0,Ω0,ω,M0,Δn,I˙,Ω˙,Cus,Cuc,Crs,Crc,Cis,Cic,af0,af1,af2,TGD)T
利用这些参数计算出ECEF中的卫星位置(天线相位中心位置) r s ( t ) r^s(t) rs(t),卫星时钟偏差 d T s ( t ) dT^s(t) dTs(t)和时钟漂移 d T ˙ s ( t ) d\dot{T}^s(t) dT˙s(t)为:
在这里插入图片描述
在这里插入图片描述
其中:
μ \mu μ:地球引力常数( 3.9860050 ∗ 1 0 14 m 3 / s 2 3.9860050*10^{14}m^3/s^2 3.98600501014m3/s2for GPS and QZSS, 3.986004418 ∗ 1 0 14 m 3 / s 2 3.986004418*10^{14}m^3/s^2 3.9860044181014m3/s2for Galileo
ω e \omega_e ωe:地球角速度(7.2921151467*10-5rad/s)
b = f 1 2 / f i 2 b=f_1^2/f_i^2 b=f12/fi2for L i L_i Li的伪距
T G D T_{GD} TGD:GPS and QZSS的群延迟参数,对 B G D B_{GD} BGD for galileo
开普勒方程(E.4.4)可以用牛顿ʹ的方法进行以下迭代求解。
在这里插入图片描述
如果处理选项为ʺSatellite Ephemeris/ clockʺ到ʺbroadcastʺ,包括GLONASS、北斗和SBAS,则应用广播星历表和时钟。

(2)GLONASS广播星历表和时钟参数

在导航消息中给出如下:
p e p h ( t b ) = ( x , y , z , v x , v y , v z , a x , a y , a z , τ n , γ n ) p_{eph}(t_b)=(x,y,z,v_x,v_y,v_z,a_x,a_y,a_z,\tau_n,\gamma_n) peph(tb)=(x,y,z,vx,vy,vz,ax,ay,az,τn,γn)
ECEF (PZ90.02)中卫星位置 r s ( t ) = ( x , y , z ) T r^s(t)=(x,y,z)^T rs(t)=(x,y,z)T和速度 v s ( t ) = ( v x , v y , v z ) T v^s(t)=(v_x,v_y,v_z)^T vs(t)=(vx,vy,vz)T的差分方程可以表示为:
在这里插入图片描述
式中:
a e a_e ae:地球半长轴(6378136.0 m)
μ \mu μ:地球引力常数(9 398600.44109m3/s2)
ω e \omega_e ωe:地球角速度(7.292115
10-5rad/s)
J 2 J_2 J2:地球位势的二次纬向谐波(1082625.7*10-9)
r = x 2 + y 2 + z 2 r=\sqrt{x^2+y^2+z^2} r=x2+y2+z2
注意,GLONASS ICD 5.1[4]的A.3.1.2中的两个勘误表已在上述模型中进行了修正。
在时间t时卫星的位置 r s ( t ) r^s(t) rs(t)和速度 v s ( t ) v^s(t) vs(t)可以通过RK4(龙格库塔第四阶和阶段)推导来解决这些微分方程数值积分与最初的卫星位置 r s ( t b ) r^s(t_b) rs(tb)和速度 v s ( t b ) v^s(t_b) vs(tb)的参考时间 t b t_b tb。在历元时刻t的卫星时钟偏差 d T s ( t ) dT^s(t) dTs(t) 和漂移 d T ˙ s ( t ) d\dot{T}^s(t) dT˙s(t)也可推导为:
在这里插入图片描述
GLONASS时钟参数中包含了卫星时钟中的相对论效应。所以在这种情况下,相对论修正是不适用的。

(3)北斗的广播星历表和时钟

北斗卫星导航信息中提供了与GPS、Galileo、QZSS类似的星历表和时钟参数如下:

(4)SBAS卫星的广播星历表和时钟

SBAS地理卫星的导航消息参数在SBAS消息(消息类型9)中给出如下:

(5) SBAS轨道和时钟校正

SBAS轨道和时钟校正定义为以下参数。

(6)精确星历表和时钟

GPS、GLONASS、伽利略、QZSS和北斗的精确星历表通常以SP3‐c文件的形式每15分钟或5分钟提供一次,包含卫星位置和速度(可选)。为了得到t时刻的卫星位置,需要进行适当的插值。RTKLIB使用固定度(10 n)多项式插值,通过Newton‐Nevilleʹ算法为:

(7) RTCM SSR轨道和时钟校正

RTCM SSR轨道和时钟校正定义为以下参数。

E.5 对流层和电离层模型

(1)对流层模型

标准大气可以表示为:
在这里插入图片描述

(2) SBAS对流层模型

如果将处理选项ʺ对流层校正ʺ设置为ʺSBASʺ,则应用SBAS接收机规范中定义的SBAS对流层模型。该模型通常称为ʺMOPS模型ʺ。详情请参考[8]A.4.2.4。

(3)精确对流层模型

如果将处理选项ʺ对流层校正ʺ设置为ʺEstimate ZTDʺ或ʺEstimate ZTD+Gradʺ,则应用更精确的对流层模型,严格映射函数为:
在这里插入图片描述

(4)广播电离层模型

对于单频GNSS用户,GPS和QZSS导航数据包含以下广播电离层参数。
在这里插入图片描述
如果处理选项ʺ电离层校正ʺ设置为ʺ广播ʺ或ʺQZSS广播ʺ,则应用广播电离层模型进行校正。

(5) SBAS电离层模型

对电离层延迟的SBAS修正由18型电离层格点掩码和26型电离层延迟修正提供。如果处理选项ʺ电离层校正ʺ设置为ʺSBASʺ,RTKLIB将使用SBAS电离层校正,并且这些SBAS消息将在输入文件中提供。模型算法及IGPs(电离层网格点)定义参见SBAS接收机规范[8]的A.4.4.9和A.4.4.10。

(6)单层模型

电离层通常被建模为简单的单层模型,如图E.5‐1所示。单层模型也称为薄壳模型。

在这里插入图片描述

(7)无电离层LC(线性组合)

为了消除GNSS信号测量中的电离层效应,GNSS数据处理中经常使用双频测量的线性组合。iL和jl伪橙和相位范围的无电离层LC表示为:
在这里插入图片描述

E.6单点定位

RTKLIB采用迭代加权LSE(最小二乘估计)用于ʺSingleʺ(单点定位)模式,有或没有SBAS校正。

(1)线性LSE

假设有一个测量向量y,它可以被建模为一个未知参数向量x和一个随机测量误差向量v的线性方程。
y = H x + v − − − ( E . 6.1 ) y=Hx+v---(E.6.1) y=Hx+v(E.6.1)
最小二乘损失函数 J J S J_{JS} JJS定义为测量误差平方和:
J L S = v 1 2 + v 2 2 + . . . + v m 2 = v T v − − − ( E . 6.2 ) J_{LS}=v_1^2+v_2^2+...+v_m^2=v^Tv---(E.6.2) JLS=v12+v22+...+vm2=vTv(E.6.2)
利用(E.6.1)和(E.6.2),损失函数可以改写为:
J L S = ( y − H x ) T ( y − H x ) = y T y − y T H x − x T H T y + x T H T H x − − − ( E . 6.3 ) \begin{aligned} J_{LS}&=(y-Hx)^T(y-Hx)\\ &=y^Ty-y^THx-x^TH^Ty+x^TH^THx---(E.6.3) \end{aligned} JLS=(yHx)T(yHx)=yTyyTHxxTHTy+xTHTHx(E.6.3)
为了使代价函数最小化, J L S J_{LS} JLS的梯度应为零。然后
∂ J L S ∂ x = 0 T − y T H − ( H T y ) T + ( H T H x ) T + x T H T H = − 2 y T H + 2 x T H T H = 0 − − − ( E . 6.4 ) \begin{aligned} \frac{\partial J_{LS}}{\partial x}&=0^T-y^TH-(H^Ty)^T+(H^THx)^T+x^TH^TH\\ &=-2y^TH+2x^TH^TH=0---(E.6.4) \end{aligned} xJLS=0TyTH(HTy)T+(HTHx)T+xTHTH=2yTH+2xTHTH=0(E.6.4)
它给出了所谓的ʺ正规方程ʺ为:
H T H x = H T y − − − ( E . 6.5 ) H^THx=H^Ty---(E.6.5) HTHx=HTy(E.6.5)
对于法向方程,通过LSE估计得到的未知参数向量 x ^ \hat x x^为:
x ^ = ( H T H ) − 1 H T y − − − ( E . 6.6 ) \hat x=(H^TH)^{-1}H^Ty---(E.6.6) x^=(HTH)1HTy(E.6.6)
如果给出了每个测量值的权重,则成本函数(E.6.3)可以用一个权重矩阵W。
J W L S = v T W v − − − ( E . 6.7 ) J_{WLS}=v^TWv---(E.6.7) JWLS=vTWv(E.6.7)
为了最小化代价函数 J W L S J_{WLS} JWLS,我们可以通过加权LSE得到估计的未知参数向量,方法与简单LSE类似:
x ^ = ( H T W H ) − 1 H T W y − − − ( E . 6.8 ) \hat x=(H^TWH)^{-1}H^TWy---(E.6.8) x^=(HTWH)1HTWy(E.6.8)
加权LSE的权矩阵W通常为:
W = d i a g ( σ 1 − 2 , σ 2 − 2 , . . . , σ m − 2 ) W=diag(\sigma_1^{-2},\sigma_2^{-2},...,\sigma_m^{-2}) W=diag(σ12,σ22,...,σm2)
其中 σ i \sigma_i σi是第i个测量误差的先验标准差。

(2)非线性LSE的高斯-牛顿迭代

如果测量结果不是线性模型,则测量方程可以用一般的非线性向量函数表示为:
y = h ( x ) + v − − − ( E . 6.9 ) y=h(x)+v---(E.6.9) y=h(x)+v(E.6.9)
式中 h ( x ) h(x) h(x)是参数向量x的测量向量函数,对初始参数向量 x 0 x_0 x0采用泰勒级数可将方程推广为:
h ( x ) = h ( x 0 ) + H ( x − x 0 ) + . . . − − − ( E . 6.10 ) h(x)=h(x_0)+H(x-x_0)+...---(E.6.10) h(x)=h(x0)+H(xx0)+...(E.6.10)
式中,H为 h ( x ) h(x) h(x)对x在x=x_0处的偏导数矩阵:
H = ∂ h ( x ) ∂ x ∣ x = x 0 − − − ( E . 6.11 ) H=\frac{\partial h(x)}{\partial x}\vert_{x=x_0}---(E.6.11) H=xh(x)x=x0(E.6.11)
假设初始参数充分接近真实值,泰勒级数的第二项和进一步项可以忽略。我们可以将(E.6.9)近似为:
y ≈ h ( x 0 ) + H ( x − x 0 ) + v − − − ( E . 6.12 ) y\approx h(x_0)+H(x-x_0)+v---(E.6.12) yh(x0)+H(xx0)+v(E.6.12)
我们可以得到以下线性方程:
y − h ( x 0 ) = H ( x − x 0 ) + v − − − ( E . 6.13 ) y- h(x_0)=H(x-x_0)+v---(E.6.13) yh(x0)=H(xx0)+v(E.6.13)
对(E.6.13)应用线性加权LSE (E.6.8),可以得到非线性加权LSE的法向方程:
H T W H ( x ^ − x 0 ) = H T W ( y − h ( x 0 ) ) − − − ( E . 6.14 ) H^TWH(\hat x-x_0)=H^TW(y-h(x_0))---(E.6.14) HTWH(x^x0)=HTW(yh(x0))(E.6.14)
因此,我们可以得到估计的未知参数向量 x ^ \hat x x^:
x ^ = x 0 + ( H T W H ) − 1 H T W ( y − h ( x 0 ) ) − − − ( E . 6.15 ) \hat x=x_0+(H^TWH)^{-1}H^TW(y-h(x_0))---(E.6.15) x^=x0+(HTWH)1HTW(yh(x0))(E.6.15)
如果初始参数x0在真实值附近不够,我们可以迭代改进估计的参数,如:
x 0 ^ = x 0 − − − ( E . 6.16 ) x ^ i + 1 = x ^ i + ( H T W H ) − 1 H T W ( y − h ( x ^ i ) ) − − − ( E . 6.17 ) \hat{x_0}=x_0---(E.6.16)\\ \hat x_{i+1}=\hat x_i+(H^TWH)^{-1}H^TW(y-h(\hat x_i))---(E.6.17) x0^=x0(E.6.16)x^i+1=x^i+(HTWH)1HTW(yh(x^i))(E.6.17)
如果迭代收敛,我们可以得到最终的估计参数为:
x ^ = lim ⁡ i → ∞ x ^ i − − − ( E . 6.18 ) \hat x=\lim\limits_{i\to \infty}\hat x_i---(E.6.18) x^=ilimx^i(E.6.18)
迭代LSE通常被称为高斯-牛顿法。需要注意的是,这种迭代并不总是通过简单的高斯牛顿法收敛,特别是对于具有大非线性的病态测量方程。在这种情况下,我们应该对这种非线性LSE采用另一种策略。最常用的非线性LSE方法是LM (Levenberg‐Marquardt)方法。

(3)接收机位置和时钟偏差的估计

对于ʺ单点定位ʺ模式为ʺ定位模式ʺ,采用以下单点定位程序逐历获取最终解。对于一个历元时间,定义未知参数向量x为:

x = ( r r T , c d t r ) T − − − ( E . 6.19 ) x=(r_r^T,cdt_r)^T---(E.6.19) x=(rrT,cdtr)T(E.6.19)
伪距测量向量y可表示为:
y = ( P r 1 , P r 2 , P r 3 , . . . , P r m ) T − − − ( E . 6.20 ) y=(P_r^1,P_r^2,P_r^3,...,P_r^m)^T---(E.6.20) y=(Pr1,Pr2,Pr3,...,Prm)T(E.6.20)
其中 P r s P_r^s Prs为伪距测量值。如果处理选项ʺ电离层校正ʺ设置为ʺ无电离层LCʺ,则使用附录E.5(7)中定义的无电离层LC(线性组合)伪距。在其他情况下,只使用L1伪距。
在这里插入图片描述

单点定位测量方程及其偏导数矩阵为:
h ( x ) = ( ρ r 1 + c d t r − c d T 1 + I r 1 + T r 1 ρ r 2 + c d t r − c d T 2 + I r 2 + T r 2 ρ r 3 + c d t r − c d T 3 + I r 3 + T r 3 ⋮ ρ r m + c d t r − c d T m + I r m + T r m ) H = ( − e r 1 T 1 − e r 2 T 1 − e r 3 T 1 ⋮ ⋮ − e r m T 1 ) − − − ( F . 6.21 ) h(x)=\begin{pmatrix} \rho_r^1+cdt_r-cdT^1+I_r^1+T_r^1\\ \rho_r^2+cdt_r-cdT^2+I_r^2+T_r^2\\ \rho_r^3+cdt_r-cdT^3+I_r^3+T_r^3\\ \vdots\\ \rho_r^m+cdt_r-cdT^m+I_r^m+T_r^m\\ \end{pmatrix} H=\begin{pmatrix} -e_r^{1T}&1\\ -e_r^{2T}&1\\ -e_r^{3T}&1\\ \vdots&\vdots\\ -e_r^{mT}&1\\ \end{pmatrix}---(F.6.21) h(x)=ρr1+cdtrcdT1+Ir1+Tr1ρr2+cdtrcdT2+Ir2+Tr2ρr3+cdtrcdT3+Ir3+Tr3ρrm+cdtrcdTm+Irm+TrmH=er1Ter2Ter3TermT1111(F.6.21)
其中几何范围 ρ t s \rho_t^s ρts和LOS矢量 e r s e_r^s ers由E.3(4)和E.3(5)与卫星和接收机位置给出。卫星位置 e s e^s es和时钟偏差 d T s dT^s dTs也来自于E.4中描述的GNSS卫星星历和时钟,根据处理选项ʺ卫星星历/时钟ʺ。
为了求解测量方程,得到最终估计的接收机位置和接收机时钟偏差,RTKLIB采用迭代加权LSE为:
x ^ i + 1 = x ^ i + ( H T W H ) − 1 H T W ( y − h ( x ^ i ) ) − − − ( E . 6.22 ) \hat x_{i+1}=\hat x_i+(H^TWH)^{-1}H^TW(y-h(\hat x_i))---(E.6.22) x^i+1=x^i+(HTWH)1HTW(yh(x^i))(E.6.22)
对于迭代加权LSE的初始参数向量x0,所有0都用于单点定位的第一阶。一旦得到一个解,该位置用于下一个epoch初始接收机位置。对于权值矩阵W, RTKLIB使用以下公式
W = d i a g ( σ 1 − 2 , σ 2 − 2 , . . . , σ m − 2 ) − − − ( E . 6.23 ) σ 2 = F s R r ( a σ 2 + b σ 2 / s i n E l r s ) + σ e p h 2 + σ b i a s 2 + σ i o n 2 + σ t r o p 2 − − − ( E . 6.24 ) W=diag(\sigma_1^{-2},\sigma_2^{-2},...,\sigma_m^{-2})---(E.6.23)\\ \sigma^2=F^sR_r(a_\sigma^2+b_\sigma^2/sinEl_r^s)+\sigma^2_{eph}+\sigma^2_{bias}+\sigma^2_{ion}+\sigma^2_{trop}---(E.6.24) W=diag(σ12,σ22,...,σm2)(E.6.23)σ2=FsRr(aσ2+bσ2/sinElrs)+σeph2+σbias2+σion2+σtrop2(E.6.24)
其中:
F s : 卫 星 系 统 误 差 因 子 ( 1 : G P S 、 G a l i l e o 、 Q Z S S 、 北 斗 , 1.5 : G L O N A S S , 3.0 : S B A S ) R r : 码 / 载 波 相 位 误 差 比 率 a σ , b σ : 载 波 相 位 误 差 因 子 a 和 b ( m ) σ e p h : 星 历 表 标 准 偏 差 和 时 钟 误 差 ( m ) σ i o n : 电 离 层 校 正 模 型 误 差 标 准 偏 差 ( m ) σ t r o p : 对 流 层 修 正 模 型 误 差 标 准 偏 差 ( m ) σ b i a s : 码 偏 误 差 标 准 差 ( m ) \begin{aligned} F^s&:卫星系统误差因子(1:GPS、Galileo、QZSS、北斗,1.5:GLONASS, 3.0: SBAS)\\ R_r&:码/载波相位误差比率\\ a_\sigma,b_\sigma&:载波相位误差因子a和b (m)\\ \sigma_{eph}&:星历表标准偏差和时钟误差(m)\\ \sigma_{ion}&:电离层校正模型误差标准偏差(m)\\ \sigma_{trop}&:对流层修正模型误差标准偏差(m)\\ \sigma_{bias}&:码偏误差标准差(m) \end{aligned} FsRraσ,bσσephσionσtropσbias:(1:GPSGalileoQZSS1.5:GLONASS,3.0:SBAS):/:ab(m):(m):(m):(m):(m)
RTKLIB使用市建局(用户距离精度)或类似的指标来衡量星历表的标准偏差和时钟误差。经过多次迭代,求解在正常情况下收敛,得到估计的接收机位置 r ^ r \hat r_r r^r和接收机时钟偏置 d t ^ r d\hat{t}_r dt^r
x ^ = lim ⁡ i → ∞ x ^ i = ( r ^ r T , c d t ^ r ) T − − − ( E . 6.25 ) \hat x=\lim\limits_{i\to \infty}\hat x_i=(\hat r_r^T,\hat{cdt}_r)^T---(E.6.25) x^=ilimx^i=(r^rT,cdt^r)T(E.6.25)
估计的接收机时钟偏差 d t ^ r d\hat{t}_r dt^r不会显式输出到解决方案文件。相反,它被包含在解决方案的时间标签中。这意味着解决时标不是指接收器时标,而是指在GPST中测量的真实信号接收时间。

(4)估计接收器速度和时钟漂移

如果给出了GNSS信号的多普勒频率测量,则可以按照以下步骤估算接收器的速度和时钟漂移。 在某个时间段内,将用于速度估计的未知参数向量x定义为:
x = ( v r T , c d t ˙ r ) T − − − ( E . 6.26 ) x=(v_r^T,cd\dot t_r)^T---(E.6.26) x=(vrT,cdt˙r)T(E.6.26)
其中 v r T v_r^T vrT c d t ˙ r cd\dot t_r cdt˙r分别为接收机速度,单位为ECEF (m/s)和接收机时钟漂移(s/s)。量程速率测量矢量y可以表示为:
y = ( − λ i D r , i 1 , − λ i D r , i 2 , − λ i D r , i 3 , . . . , − λ i D r , i m ) T − − − ( E . 6.27 ) y=(-\lambda_iD_{r,i}^1,-\lambda_iD_{r,i}^2,-\lambda_iD_{r,i}^3,...,-\lambda_iD_{r,i}^m)^T---(E.6.27) y=(λiDr,i1,λiDr,i2,λiDr,i3,...,λiDr,im)T(E.6.27)
其中, D r , i s D_{r,i}^s Dr,is为卫星s的Li多普勒频率测量值。RTKLIB总是使用L1多普勒频率测量值。这些测量方程及其偏导数矩阵构成如下:
h ( x ) = ( r r 1 + c d t ˙ r − c d T ˙ 1 r r 2 + c d t ˙ r − c d T ˙ 2 r r 3 + c d t ˙ r − c d T ˙ 3 ⋮ r r m + c d t ˙ r − c d T ˙ m ) H = ( − e r 1 T 1 − e r 2 T 1 − e r 3 T 1 ⋮ ⋮ − e r m T 1 ) − − − ( E . 6.28 ) h(x)=\begin{pmatrix} r_r^1+cd\dot t_r-cd\dot T^1\\ r_r^2+cd\dot t_r-cd\dot T^2\\ r_r^3+cd\dot t_r-cd\dot T^3\\ \vdots\\ r_r^m+cd\dot t_r-cd\dot T^m\\ \end{pmatrix} H=\begin{pmatrix} -e_r^{1T}&1\\ -e_r^{2T}&1\\ -e_r^{3T}&1\\ \vdots&\vdots\\ -e_r^{mT}&1\\ \end{pmatrix}---(E.6.28) h(x)=rr1+cdt˙rcdT˙1rr2+cdt˙rcdT˙2rr3+cdt˙rcdT˙3rrm+cdt˙rcdT˙mH=er1Ter2Ter3TermT1111(E.6.28)
在这些方程中,接收器和卫星之间的距离‐范围 r r s r_r^s rrs来自于:
r r s = e r s T ( v s s ( r s ) − v r ) + ω e c ( v y s x r + y s v x , r − v x s y r − x s v y , r ) − − − ( E . 6.29 ) r_r^s =e_r^{sT}(v^ss(r^s)-v_r)+\frac {\omega_e}c(v_y^sx_r+y^sv_{x,r}-v_x^sy_r-x^sv_{y,r})---(E.6.29) rrs=ersT(vss(rs)vr)+cωe(vysxr+ysvx,rvxsyrxsvy,r)(E.6.29)
式中, v s = ( v x s , v y s , v z s , ) T , v r = ( v x , r , v y , r , v z , r ) T v^s=(v_x^s,v_y^s,v_z^s,)^T,v_r=(v_{x,r},v_{y,r},v_{z,r})^T vs=(vxs,vys,vzs,)T,vr=(vx,r,vy,r,vz,r)T。利用类似于接收机位置估计的迭代LSE,我们可以得到接收机速度和时钟漂移如下:
x ^ = lim ⁡ i → ∞ x ^ i = ( v ˙ r T , c d ^ t ˙ r ) T − − − ( E . 6.30 ) \hat x=\lim\limits_{i\to \infty}\hat x_i=(\dot v_r^T,c\hat{d}\dot t_r)^T---(E.6.30) x^=ilimx^i=(v˙rT,cd^t˙r)T(E.6.30)
其中权矩阵W设为I(非加权LSE)。

(5)方案验证和RAIM FDE

(3)中所描述的估计接收机位置可能包含由于未建模测量误差而无效的解。RTKLIB在得到估计的接收机位置后,为了测试是否有效并剔除无效的解,采用了以下验证。如果验证失败,该解决方案会被警告消息拒绝。
v s = ( P r s − ( ρ ^ r s + c d ^ t r − c d T s + I r s + T r s ) ) σ s − − − ( E . 6.31 ) v = ( v 1 , v 2 , v 3 , . . . v m ) T − − − ( E . 6.32 ) v T v m − n − 1 < χ α 2 ( m − n − 1 ) − − − ( E . 6.33 ) G D O P < G D O P t h r e s − − − ( E . 6.34 ) v_s=\frac {(P_r^s-(\hat \rho_r^s+c\hat{d} t_r-cdT^s+I^s_r+T^s_r))}{\sigma_s}---(E.6.31)\\ v=(v_1,v_2,v_3,...v_m)^T---(E.6.32)\\ \frac{v^Tv}{m-n-1}<\chi_\alpha^2(m-n-1)---(E.6.33)\\ GDOP<GDOP_{thres}---(E.6.34) vs=σs(Prs(ρ^rs+cd^trcdTs+Irs+Trs))(E.6.31)v=(v1,v2,v3,...vm)T(E.6.32)mn1vTv<χα2(mn1)(E.6.33)GDOP<GDOPthres(E.6.34)
其中n为估计参数的个数,m为测量值的个数。 χ α 2 ( n ) \chi_\alpha^2(n) χα2(n)是自由度n的卡方分布和 α = 0.001 ( 0.1 \alpha= 0.001(0.1%) α=0.001(0.1。GDOP是几何DOP(精度稀释)。GDOPthres可以设置为处理选项ʺGDOP的拒绝阈值ʺ。
除上述方案验证外,2.4.2版本中还增加了RAIM(接收机自主完整性监测)FDE(故障检测和排除)功能。如果处理选项ʺRAIM FDEʺ被启用,(E.6.33)的卡方测试失败,RTKLIB通过排除一个又一个可见卫星来重新估计。在所有重试后,选择归一化平方残差最小的估计接收机位置tv v作为最终解。在这种方案中,由于卫星故障、接收机故障或大多径导致的无效测量被排除为离群值。请注意,对于两个或多个无效度量,此特性是无效的。它还需要两颗冗余的可见卫星,这意味着至少需要6颗可见卫星才能得到最终的解决方案。

E.7 动态,静态和移动基线

RTKLIB利用EKF(扩展卡尔曼滤波),结合附录E.3中的GNSS信号测量模型和附录E.5中的对流层和电离层模型,获得了DGPS/DGNSS、静态、运动和移动基线模式下的最终解。

(1) EKF公式

利用EKF,可以用测量向量yk在历元tk处估计未知模型参数的状态向量x及其协方差矩阵P:
x ^ k ( + ) = x ^ k ( − ) + K k ( y k − h ( x ^ k ( − ) ) ) − − − ( E . 7.1 ) P k ( + ) = ( I − K k H ( x ^ k ( − ) ) ) P k ( − ) − − − ( E . 7.2 ) K k = P k ( − ) H ( x ^ k ( − ) ) ( H ( x ^ k ( − ) ) P k ( − ) H ( x ^ k ( − ) ) T + R k ) − 1 − − − ( E . 7.3 ) \begin{aligned} \hat x_k(+)&=\hat x_k(-)+K_k(y_k-h(\hat x_k(-)))---(E.7.1)\\ P_k(+)&=(I-K_kH(\hat x_k(-)))P_k(-)---(E.7.2)\\ K_k&=P_k(-)H(\hat x_k(-))(H(\hat x_k(-))P_k(-)H(\hat x_k(-))^T+R_k)^{-1}---(E.7.3) \end{aligned} x^k(+)Pk(+)Kk=x^k()+Kk(ykh(x^k()))(E.7.1)=(IKkH(x^k()))Pk()(E.7.2)=Pk()H(x^k())(H(x^k())Pk()H(x^k())T+Rk)1(E.7.3)
其中 x ^ k \hat x_k x^k和Pk为在历元时间tk时的估计状态向量及其协方差矩阵。(-)和(+)表示EKF测量更新前后。 h ( x ) , H ( x ) a n d R k h(x),H(x)andR_k h(x),H(x)andRk分别为测量模型向量、偏导数矩阵和测量误差协方差矩阵。假设系统模型是线性的,EKF的状态向量及其协方差矩阵的时间更新表示为:
x ^ k + 1 ( − ) = F k k + 1 x ^ k ( + ) − − − ( E . 7.4 ) P k + 1 ( − ) = F k k + 1 P k ( + ) F k k + 1 T + Q k k + 1 − − − ( E . 7.5 ) \begin{aligned} \hat x_{k+1}(-)&=F_k^{k+1}\hat x_k(+)---(E.7.4)\\ P_{k+1}(-)&=F_k^{k+1}P_k(+)F_k^{k+1T}+Q_k^{k+1}---(E.7.5) \end{aligned} x^k+1()Pk+1()=Fkk+1x^k(+)(E.7.4)=Fkk+1Pk(+)Fkk+1T+Qkk+1(E.7.5)
其中, F k k + 1 F_k^{k+1} Fkk+1 Q k k + 1 Q_k^{k+1} Qkk+1是系统噪声从历时tk到tk+1的转移矩阵和协方差矩阵。

(2)DD短基线双差测量模型

对于探测器r和基站b之间的短基线(< 10 km)载波相对定位,通常使用以下DD测量方程来计算iL相位范围和伪距。在这些方程中,利用DD技术几乎消除了卫星和接收机的时钟偏差、电离层和对流层效应和其他小的修正项。
Φ r b , i j k = ρ r b j k + λ i ( B r b , i j − r b , i k ) + d Φ r , i s + ε Φ P r b , i j k = ρ r b j k + ε P − − − ( E . 7.6 ) \begin{aligned} \Phi_{rb,i}^{jk}&=\rho_{rb}^{jk}+\lambda_i(B_{rb,i}^{j}-_{rb,i}^{k})+d\Phi_{r,i}^{s}+\varepsilon_\Phi\\ P_{rb,i}^{jk}&=\rho_{rb}^{jk}+\varepsilon_P---(E.7.6) \end{aligned} Φrb,ijkPrb,ijk=ρrbjk+λi(Brb,ijrb,ik)+dΦr,is+εΦ=ρrbjk+εP(E.7.6)
在这里插入图片描述
其中, d Φ r , i s d\Phi_{r,i}^{s} dΦr,is是载波相位校正项,在短基线情况下可以忽略,除了带有不同天线的接收机PCV项。为了得到方程中的几何范围 ρ r s \rho_r^s ρrs,除移动基线情况外,将基站位置 r b r_b rb固定为预定值。
请注意,接收机之间的SD最好是在同一历元时间的测量之间进行。然而,由于接收机的时钟偏差不同,接收机并不是完全同步的。在某些典型情况下,漫游者的采样间隔与基站不同,如10hz和1hz。为了控制SD, RTKLIB采用一个简单的标准来选择一个测量对。RTKLIB只是选择在探测器测量历元时间之前或等于这个时间的最后一次测量。漫游者和基站之间的历时差有时被称为ʺ差异年龄ʺ。随着时间差的增大,由于卫星时钟漂移和电离层时延的变化,求解精度逐渐降低。为了仅补偿卫星时钟漂移,RTKLIB利用广播SV时钟参数对SD测量进行校正。最大ʺAge of Differentialʺ设置为处理选项ʺMAX Age of Diffʺ。
在卫星侧SD生成方面,RTKLIB逐次选择一颗具有最大俯仰角的参考卫星。请注意,不同导航系统的卫星之间不会产生卫星侧SD,比如GPS和GLONASS之间。这是因为对于不同导航系统的信号,即使它们具有相同的载波频率,接收机通常也有不同的群时延。接收机的组延迟差称为接收机ISB(系统间偏置)。
假设移动站和基站均采用三频GPS/GNSS接收机,则待估计的未知状态向量x可定义为:
x = ( r r T , v r T , B 1 T , B 2 T , B 5 T ) T − − − ( E . 7.7 ) x=(r_r^T,v_r^T,B_1^T,B_2^T,B_5^T)^T---(E.7.7) x=(rrT,vrT,B1T,B2T,B5T)T(E.7.7)
其中 B i = ( B r b , i 1 , B r b , i 2 , . . . , B r b , i m ) B_i=(B_{rb,i}^1,B_{rb,i}^2,...,B_{rb,i}^m) Bi=(Brb,i1,Brb,i2,...,Brb,im)为LiSD(单差)载波相位偏差(循环)。作为RTKLIB实现,它内部使用SD载波相位偏差而不是DD,以避免参考卫星的麻烦移交处理。SD偏差还有助于解决GLONASS FDMA信号中的整数歧义。
测量矢量y也被DD相位范围和伪距测量定义为:
y = ( Φ 1 T , Φ 2 T , Φ 5 T , P 1 T , P 2 T , P 5 T ) T − − − ( E . 7.8 ) y=(\Phi_1^T,\Phi_2^T,\Phi_5^T,P_1^T,P_2^T,P_5^T)^T---(E.7.8) y=(Φ1T,Φ2T,Φ5T,P1T,P2T,P5T)T(E.7.8)
其中:
Φ i = ( Φ r b , i 12 , Φ r b , i 13 , Φ r b , i 14 , . . . , Φ r b , i 1 m ) T P i = ( P r b , i 12 , P r b , i 13 , P r b , i 14 , . . . , P r b , i 1 m ) T \Phi_i=(\Phi_{rb,i}^{12},\Phi_{rb,i}^{13},\Phi_{rb,i}^{14},...,\Phi_{rb,i}^{1m})^T\\ P_i=(P_{rb,i}^{12},P_{rb,i}^{13},P_{rb,i}^{14},...,P_{rb,i}^{1m})^T Φi=(Φrb,i12,Φrb,i13,Φrb,i14,...,Φrb,i1m)TPi=(Prb,i12,Prb,i13,Prb,i14,...,Prb,i1m)T

(3)短基线EKF的测量更新

由式(E.7.6),测量模型向量 h ( x ) h(x) h(x),偏导数矩阵 H ( x ) H(x) H(x),测量误差R的协方差矩阵可记为:
h ( x ) = ( h Φ , 1 T , h Φ , 2 T , h Φ , 5 T , h P , 1 T , h P , 2 T , h P , 5 T ) T − − − ( E . 7.9 ) h(x)=({h_{\Phi,1}}^T,{h_{\Phi,2}}^T,{h_{\Phi,5}}^T,{h_{P,1}}^T,{h_{P,2}}^T,{h_{P,5}}^T)^T---(E.7.9) h(x)=(hΦ,1T,hΦ,2T,hΦ,5T,hP,1T,hP,2T,hP,5T)T(E.7.9)

H ( x ) = ∂ h ( x ) ∂ x ∣ x = x ^ = ( − D E 0 λ 1 D 0 0 − D E 0 0 λ 2 D 0 − D E 0 0 0 λ 5 D − D E 0 0 0 0 − D E 0 0 0 0 − D E 0 0 0 0 ) − − − ( E . 7.10 ) H(x)=\frac{\partial h(x)}{\partial x}\vert_{x=\hat x}= \begin{pmatrix} -DE& 0&\lambda_1D&0&0 \\ -DE& 0&0&\lambda_2D&0 \\ -DE& 0&0&0&\lambda_5D \\ -DE& 0&0&0&0 \\ -DE& 0&0&0&0 \\ -DE& 0&0&0&0 \\ \end{pmatrix}---(E.7.10) H(x)=xh(x)x=x^=DEDEDEDEDEDE000000λ1D000000λ2D000000λ5D000(E.7.10)

R = ( D R Φ , 1 D T D R Φ , 2 D T D R Φ , 5 D T D R P , 1 D T D R P , 2 D T D R P , 5 D T ) − − − ( E . 7.11 ) R=\begin{pmatrix} DR_{\Phi,1}D^T&&&&& \\ &DR_{\Phi,2}D^T&&&& \\ &&DR_{\Phi,5}D^T&&& \\ &&&DR_{P,1}D^T&&\\ &&&&DR_{P,2}D^T&\\ &&&&&DR_{P,5}D^T\\ \end{pmatrix}---(E.7.11) R=DRΦ,1DTDRΦ,2DTDRΦ,5DTDRP,1DTDRP,2DTDRP,5DT(E.7.11)
其中:
h ( x ) = ( ρ r b 12 + λ i ( B r b 1 − B r b 2 ) ρ r b 13 + λ i ( B r b 1 − B r b 3 ) ⋮ ρ r b 1 m + λ i ( B r b 1 − B r b m ) ) H = ( ρ r b 12 ρ r b 13 ⋮ ρ r b 1 m ) h(x)=\begin{pmatrix} \rho_{rb}^{12}+\lambda_i(B_{rb}^1-B_{rb}^2)\\ \rho_{rb}^{13}+\lambda_i(B_{rb}^1-B_{rb}^3)\\ \vdots\\ \rho_{rb}^{1m}+\lambda_i(B_{rb}^1-B_{rb}^m)\\ \end{pmatrix} H=\begin{pmatrix} \rho_{rb}^{12}\\ \rho_{rb}^{13}\\ \vdots\\ \rho_{rb}^{1m}\\ \end{pmatrix} h(x)=ρrb12+λi(Brb1Brb2)ρrb13+λi(Brb1Brb3)ρrb1m+λi(Brb1Brbm)H=ρrb12ρrb13ρrb1m
( 1 − 1 0 ⋯ 0 1 0 − 1 ⋯ 0 ⋮ ⋮ ⋮ ⋱ ⋮ 1 0 0 ⋯ − 1 ) : S D ( 单 差 ) 矩 阵 \begin{pmatrix} 1&-1&0&\cdots&0 \\ 1&0&-1&\cdots&0 \\ \vdots&\vdots&\vdots&\ddots&\vdots \\ 1&0&0&\cdots&-1 \\ \end{pmatrix}:SD(单差)矩阵 111100010001:SD()
E : ( e r 1 , e r 2 , . . . , e r m ) T R Φ , i : d i a g ( 2 σ Φ , i 1 2 , 2 σ Φ , i 2 2 , . . . , 2 σ Φ , i m 2 ) R P , i : d i a g ( 2 σ P , i 1 2 , 2 σ P , i 2 2 , . . . , 2 σ P , i m 2 ) σ Φ , i s : L i 相 位 范 围 测 量 误 差 的 标 准 偏 差 ( m ) σ P , i s : L i 伪 距 测 量 误 差 的 标 准 偏 差 ( m ) \begin{aligned} E&:(e_r^1,e_r^2,...,e_r^m)^T\\ R_{\Phi,i}&:diag({2\sigma_{\Phi,i}^1}^2,{2\sigma_{\Phi,i}^2}^2,...,{2\sigma_{\Phi,i}^m}^2 )\\ R_{P,i}&:diag({2\sigma_{P,i}^1}^2,{2\sigma_{P,i}^2}^2,...,{2\sigma_{P,i}^m}^2 )\\ \sigma_{\Phi,i}^s&:L_i相位范围测量误差的标准偏差(m)\\ \sigma_{P,i}^s&:L_i伪距测量误差的标准偏差(m)\\ \end{aligned} ERΦ,iRP,iσΦ,isσP,is:(er1,er2,...,erm)T:diag(2σΦ,i12,2σΦ,i22,...,2σΦ,im2):diag(2σP,i12,2σP,i22,...,2σP,im2):Li(m):Li(m)
利用这些方程求解EKF公式(E.7.1),得到了漫游者天线的位置、速度和浮动SD载波相位偏差的历元时间tk

(4)EKF时间更新

对于RTKLIB中带有接收机动力学的运动学定位模式(positioning mode = kinematic and REC dynamics = ON), EKF (E.7.2)的时间更新表示为:
F k k + 1 = ( I 3 × 3 I 3 × 3 τ r I 3 × 3 I ( 3 m − 3 ) × ( 3 m − 3 ) ) , Q k k + 1 = ( 0 3 × 3 Q v 0 ( 3 m − 3 ) × ( 3 m − 3 ) ) − − − ( E . 7.12 ) F_k^{k+1}= \begin{pmatrix} I_{3\times3}& I_{3\times3}\tau_r& \\ & I_{3\times3}& \\ & &I_{(3m-3)\times(3m-3)} \\ \end{pmatrix}, Q_k^{k+1}= \begin{pmatrix} 0_{3\times3}&& \\ & Q_v& \\ & &0_{(3m-3)\times(3m-3)} \\ \end{pmatrix}---(E.7.12) Fkk+1=I3×3I3×3τrI3×3I(3m3)×(3m3),Qkk+1=03×3Qv0(3m3)×(3m3)(E.7.12)
其中:
Q v = E r T d i a g ( σ v e 2 τ r , σ v n 2 τ r , σ v u 2 τ r ) E r Q_v={E_r}^Tdiag({\sigma_{ve}}^2\tau_r,{\sigma_{vn}}^2\tau_r,{\sigma_{vu}}^2\tau_r)E_r Qv=ErTdiag(σve2τr,σvn2τr,σvu2τr)Er
而且 τ r = t k − 1 − t k \tau_r=t_{k-1}-t_k τr=tk1tk为GPS/GNSS接收机采样间隔(s), ( σ v e , σ v n , σ v u ) (\sigma_{ve},\sigma_{vn},\sigma_{vu}) (σve,σvn,σvu)为探测器速度系统噪声东、北、上分量的标准差( m / s / s m/s /\sqrt s m/s/s )。
对于没有接收机动力学的纯动态模式(Positioning mode = kinematic and REC dynamics = OFF),公式(E.7.9)代入:
F k k + 1 = ( I 3 × 3 I 3 × 3 I ( 3 m − 3 ) × ( 3 m − 3 ) ) , Q k k + 1 = ( ∞ 3 × 3 0 3 × 3 0 ( 3 m − 3 ) × ( 3 m − 3 ) ) − − − ( E . 7.13 ) F_k^{k+1}= \begin{pmatrix} I_{3\times3}& & \\ & I_{3\times3}& \\ & &I_{(3m-3)\times(3m-3)} \\ \end{pmatrix}, Q_k^{k+1}= \begin{pmatrix} \infty_{3\times3}&& \\ &0_{3\times3}& \\ & &0_{(3m-3)\times(3m-3)} \\ \end{pmatrix}---(E.7.13) Fkk+1=I3×3I3×3I(3m3)×(3m3),Qkk+1=3×303×30(3m3)×(3m3)(E.7.13)
为了避免数字不稳定,请在接收器位置的方差中添加无限的处理噪声,接收器位置状态将重置为每个时期的初始猜测值,并且将足够大的过程噪声( 1 0 4 m 2 10^4m^2 104m2)添加到RTKLIB的方差中。 初始位置来自单点定位过程,该过程用于避免非线性信号测量模型的迭代。
在静态模式下(Positioning mode = static),公式(F.7.10)可简单替换为:
F k k + 1 = ( I 3 × 3 I 3 × 3 I ( 3 m − 3 ) × ( 3 m − 3 ) ) , Q k k + 1 = ( 0 3 × 3 0 3 × 3 0 ( 3 m − 3 ) × ( 3 m − 3 ) ) − − − ( E . 7.14 ) F_k^{k+1}= \begin{pmatrix} I_{3\times3}& & \\ & I_{3\times3}& \\ & &I_{(3m-3)\times(3m-3)} \\ \end{pmatrix}, Q_k^{k+1}= \begin{pmatrix} 0_{3\times3}&& \\ &0_{3\times3}& \\ & &0_{(3m-3)\times(3m-3)} \\ \end{pmatrix}---(E.7.14) Fkk+1=I3×3I3×3I(3m3)×(3m3),Qkk+1=03×303×30(3m3)×(3m3)(E.7.14)
在瞬时模糊度分辨模式(整数模糊度分辨=瞬时)中,SD载波相位偏差Bi的时间更新处理方式与上述略有不同。在这种模式下,载波相位偏置状态的值不会被EKF时间更新后续到下一个epoch。在每个时点,将偏差重置为初始的猜测值,并在方差中加入足够大的过程噪声(104 m2)。如果在测量数据中检测到一个周跳,相应的SD载波相位偏置状态也被重置为初始值。RTKLIB通过输入测量数据中的LLI(丢失锁定指示器)检测周期滑移,如果双频测量可用,则通过几何自由LC(线性组合)检测相位跳变。周期滑移阈值可以通过处理选项ʺslip Thresʺ来更改。

(5)整数模糊度求解

一旦EKF测量中得到的估计状态更新,浮动载波相位模糊可以被分解成整数值,以提高精度和收敛时间(整模糊度Res =连续、瞬时或固定保持)。首先,将估计状态及其协方差矩阵转化为DD形式:
x ^ k ′ = G x ^ k ( + ) = ( r ^ r T , v ^ r T , N ^ T ) T − − − ( E . 7.15 ) P k ′ = G P k ( + ) G T = ( Q R Q N R Q R N Q N ) − − − ( E . 7.16 ) \hat x'_k=G\hat x_k(+)=({\hat r_r}^T,{\hat v_r}^T,{\hat N}^T)^T---(E.7.15)\\ P'_k=GP_k(+)G^T= \begin{pmatrix} Q_R&Q_{NR}\\ Q_{RN}&Q_N\\ \end{pmatrix}---(E.7.16) x^k=Gx^k(+)=(r^rT,v^rT,N^T)T(E.7.15)Pk=GPk(+)GT=(QRQRNQNRQN)(E.7.16)
其中:
G = ( I 6 × 6 D D D ) : S D 到 D D 的 变 换 矩 阵 G= \begin{pmatrix} I_{6\times 6}&&&\\ &D&&\\ &&D&\\ &&&D\\ \end{pmatrix}:SD到DD的变换矩阵 G=I6×6DDD:SDDD
在这种转换中,SD载波相位偏差被转移到DD载波相位形式,以消除接收机初始相位项,获得整数模糊 N ^ \hat N N^及其协方差QN。在这些公式中,通过求解整数最小二乘问题得到最适合整数二义性的整数向量 N ˘ \breve N N˘,表达式为:

N ˘ = a r g m i n ( ( N − N ^ ) T Q N − 1 ( N − N ^ ) ) ( N ∈ Z ) − − − ( E . 7.17 ) \breve N=argmin((N-\hat N)^TQ_N^{-1}(N-\hat N))\quad (N\in Z)---(E.7.17) N˘=argmin((NN^)TQN1(NN^))(NZ)(E.7.17)
为了解决盲降问题,RTKLIB采用了一种众所周知的高效搜索策略LAMBDA[66]及其扩展MLAMBDA[67]。LAMBDA和MLAMBDA提供了一个线性变换的组合,以缩小整数向量搜索空间和一个转换空间中熟练的树搜索程序。通过以下简单的ʺRatio‐Testʺ来验证这些程序的整数向量解。在ʺRatio‐Testʺ中,ratio‐factor R,定义为第二优解 N ˘ 2 \breve N_2 N˘2的残差平方根的加权和与第一优解 N ˘ \breve N N˘的加权和之比,用于检验解的可靠性。验证阈值Rthres可以通过处理选项ʺ最小修正歧义比率ʺ来设置。当前版本RTKLIB只支持固定的阈值。
R = ( N ˘ 2 − N ^ ) T Q N − 1 ( N ˘ 2 − N ^ ) ( N ˘ − N ^ ) T Q N − 1 ( N ˘ − N ^ ) > R t h r e s − − − ( E . 7.18 ) R=\frac{(\breve N_2-\hat N)^T{Q_N}^{-1}(\breve N_2-\hat N)}{(\breve N-\hat N)^T{Q_N}^{-1}(\breve N-\hat N)}>R_{thres}---(E.7.18) R=(N˘N^)TQN1(N˘N^)(N˘2N^)TQN1(N˘2N^)>Rthres(E.7.18)
验证后,通过求解下式得到rover天线位置和速度 r ˘ r \breve r_r r˘r v ˘ r \breve v_r v˘r的ʺFIXEDʺ解。如果验证失败,RTKLIB输出ʺFLOATʺ解决方案 r ^ r \hat r_r r^r v ^ r \hat v_r v^r
( r ˘ r v ˘ r ) = ( r ^ r v ^ r ) − Q R N Q N − 1 ( N ^ − N ˘ ) − − − ( E . 7.19 ) \begin{pmatrix} \breve r_r\\ \breve v_r \end{pmatrix}= \begin{pmatrix} \hat r_r\\ \hat v_r \end{pmatrix}-Q_{RN}{Q_N}^{-1}(\hat N-\breve N)---(E.7.19) (r˘rv˘r)=(r^rv^r)QRNQN1(N^N˘)(E.7.19)
如果处理选项设置为ʺFix and Holdʺ模式(整数模糊度解决方案=固定和保持),并且固定的解决方案经之前的测试正确验证,DD载波相位偏置参数被严格约束为固定的整数值。为此,RTKLIB向EKF输入以下ʺ伪ʺ测量值,并通过(F.7.1)更新EKF。
y = N ˘ h ( x ) = G x H ( x ) = G R = d i a g ( σ c 2 , σ c 2 , σ c 2 , . . . ) y= \breve N\\ h(x)=Gx\\ H(x)=G\\ R=diag({\sigma_c}^2,{\sigma_c}^2,{\sigma_c}^2,...) y=N˘h(x)=GxH(x)=GR=diag(σc2,σc2,σc2,...)
其中:
G = ( 0 D 0 D 0 D ) : S D 到 D D 的 变 换 矩 阵 σ c : 对 固 定 整 数 二 义 性 的 约 束 ( = 0.001 周 期 ) G= \begin{pmatrix} 0&D&&\\ 0&&D&\\ 0&&&D\\ \end{pmatrix}:SD到DD的变换矩阵\\ \sigma_c:对固定整数二义性的约束(= 0.001周期) G=000DDD:SDDDσc:(=0.001)
ʺFix and Holdʺ模式在RTKLIB版本中首次引入。2.4.0,以提高固定率,特别是在运动模式下跟踪移动接收机。

(6) Long baseline DD measurement model

对于移动站r与基站b之间的长基线处理,可以形成类似于短基线DD模型的DD测量方程:
Φ r b , i j k = ρ r b j k − I r b , k j k + T r b j k + λ i ( B r b , i j − r b , i k ) + d Φ r , i s + ε Φ P r b , i j k = ρ r b j k + I r b , i j k + T r b j k + ε P − − − ( E . 7.24 ) \begin{aligned} \Phi_{rb,i}^{jk}&=\rho_{rb}^{jk}-I_{rb,k}^{jk}+T_{rb}^{jk}+\lambda_i(B_{rb,i}^{j}-_{rb,i}^{k})+d\Phi_{r,i}^{s}+\varepsilon_\Phi\\ P_{rb,i}^{jk}&=\rho_{rb}^{jk}+I_{rb,i}^{jk}+T_{rb}^{jk}+\varepsilon_P---(E.7.24) \end{aligned} Φrb,ijkPrb,ijk=ρrbjkIrb,kjk+Trbjk+λi(Brb,ijrb,ik)+dΦr,is+εΦ=ρrbjk+Irb,ijk+Trbjk+εP(E.7.24)

其中, I r i s I_{ri}^{s} Iris T r s T_{r}^{s} Trs分别作为电离层延迟(m)和对流层延迟(m)添加到短基线DD模型中。应使用卫星位置的精确星历表来减轻100公里以上基线的广播星历表误差。在载波相位校正项 d Φ r , i s d\Phi_{r,i}^{s} dΦr,is中,对于基线大于500公里的情况,应考虑固体潮效应。为了消除电离层项,有时会形成无电离层LC(线性组合)。然而,RTKLIB没有使用这种明确的LC,而是使用EKF的双频或三频测量来直接估计电离层项,用于基线处理。

长基线情况下的未知状态向量x也可求解为:
假设移动站和基站均采用三频GPS/GNSS接收机,则待估计的未知状态向量x可定义为:
x = ( r r T , v r T , Z r , G N , r , G E , r , Z b , G N , b , G E , b , I T , B 1 T , B 2 T , B 5 T ) T − − − ( E . 7.25 ) x=(r_r^T,v_r^T,Z_r,G_{N,r},G_{E,r},Z_b,G_{N,b},G_{E,b},I^T,B_1^T,B_2^T,B_5^T)^T---(E.7.25) x=(rrT,vrT,Zr,GN,r,GE,r,Zb,GN,b,GE,b,IT,B1T,B2T,B5T)T(E.7.25)
其中Zrand Zb为移动站和基站站点的ZTD(天顶总延迟), G N , r , G E , r , G N , b , G E , b G_{N,r},G_{E,r},G_{N,b},G_{E,b} GN,r,GE,r,GN,b,GE,b是对流层梯度的北部和东部分量。 I = ( I r b 1 , I r b 2 , . . . , I r b m ) I=(I_{rb}^1,I_{rb}^2,...,I_{rb}^m) I=(Irb1,Irb2,...,Irbm)也是在频率为L1 (m)的SD垂直电离层延迟。
测量模型向量h(x)和偏导数矩阵H(x)可表示为:
由式(E.7.6),测量模型向量 h ( x ) h(x) h(x),偏导数矩阵 H ( x ) H(x) H(x),测量误差R的协方差矩阵可记为:
h ( x ) = ( h Φ , 1 T , h Φ , 2 T , h Φ , 5 T , h P , 1 T , h P , 2 T , h P , 5 T ) T − − − ( E . 7.26 ) h(x)=({h_{\Phi,1}}^T,{h_{\Phi,2}}^T,{h_{\Phi,5}}^T,{h_{P,1}}^T,{h_{P,2}}^T,{h_{P,5}}^T)^T---(E.7.26) h(x)=(hΦ,1T,hΦ,2T,hΦ,5T,hP,1T,hP,2T,hP,5T)T(E.7.26)

h Φ , i = ( ρ r b 12 + T r b 12 − γ k ( m I 1 I r b 1 − m I 2 I r b 2 ) + λ i ( B r b 1 − B r b 2 ) + d Φ r b , i 12 ρ r b 13 + T r b 13 − γ k ( m I 1 I r b 1 − m I 3 I r b 3 ) + λ i ( B r b 1 − B r b 3 ) + d Φ r b , i 13 ⋮ ρ r b 1 m + T r b 1 m − γ k ( m I 1 I r b 1 − m I m I r b m ) + λ i ( B r b 1 − B r b m ) + d Φ r b , i 1 m ) − − − ( E . 7.27 ) h_{\Phi,i}=\begin{pmatrix} \rho_{rb}^{12}+T_{rb}^{12}-\gamma_k(m_I^1I_{rb}^1-m_I^2I_{rb}^2)+\lambda_i(B_{rb}^1-B_{rb}^2)+d\Phi_{rb,i}^{12}\\ \rho_{rb}^{13}+T_{rb}^{13}-\gamma_k(m_I^1I_{rb}^1-m_I^3I_{rb}^3)+\lambda_i(B_{rb}^1-B_{rb}^3)+d\Phi_{rb,i}^{13}\\ \vdots\\ \rho_{rb}^{1m}+T_{rb}^{1m}-\gamma_k(m_I^1I_{rb}^1-m_I^mI_{rb}^m)+\lambda_i(B_{rb}^1-B_{rb}^m)+d\Phi_{rb,i}^{1m}\\ \end{pmatrix}---(E.7.27) hΦ,i=ρrb12+Trb12γk(mI1Irb1mI2Irb2)+λi(Brb1Brb2)+dΦrb,i12ρrb13+Trb13γk(mI1Irb1mI3Irb3)+λi(Brb1Brb3)+dΦrb,i13ρrb1m+Trb1mγk(mI1Irb1mImIrbm)+λi(Brb1Brbm)+dΦrb,i1m(E.7.27)

h P , i = ( ρ r b 12 + T r b 12 + γ k ( m I 1 I r b 1 − m I 2 I r b 2 ) ρ r b 13 + T r b 13 + γ k ( m I 1 I r b 1 − m I 3 I r b 3 ) ⋮ ρ r b 1 m + T r b 1 m + γ k ( m I 1 I r b 1 − m I m I r b m ) ) − − − ( E . 7.27 ) h_{P,i}=\begin{pmatrix} \rho_{rb}^{12}+T_{rb}^{12}+\gamma_k(m_I^1I_{rb}^1-m_I^2I_{rb}^2)\\ \rho_{rb}^{13}+T_{rb}^{13}+\gamma_k(m_I^1I_{rb}^1-m_I^3I_{rb}^3)\\ \vdots\\ \rho_{rb}^{1m}+T_{rb}^{1m}+\gamma_k(m_I^1I_{rb}^1-m_I^mI_{rb}^m)\\ \end{pmatrix}---(E.7.27) hP,i=ρrb12+Trb12+γk(mI1Irb1mI2Irb2)ρrb13+Trb13+γk(mI1Irb1mI3Irb3)ρrb1m+Trb1m+γk(mI1Irb1mImIrbm)(E.7.27)

H ( x ) = ( − D E 0 D M T , r D M T , b − γ 1 D M I λ 1 D − D E 0 D M T , r D M T , b − γ 2 D M I λ 2 D − D E 0 D M T , r D M T , b − γ 5 D M I λ 5 D − D E 0 D M T , r D M T , b − γ 1 D M I − D E 0 D M T , r D M T , b − γ 2 D M I − D E 0 D M T , r D M T , b − γ 5 D M I ) − − − ( E . 7.28 ) H(x)= \begin{pmatrix} -DE& 0&DM_{T,r}&DM_{T,b}&-\gamma_1DM_I&\lambda_1D&& \\ -DE& 0&DM_{T,r}&DM_{T,b}&-\gamma_2DM_I&&\lambda_2D& \\ -DE& 0&DM_{T,r}&DM_{T,b}&-\gamma_5DM_I&&&\lambda_5D \\ -DE& 0&DM_{T,r}&DM_{T,b}&-\gamma_1DM_I&&& \\ -DE& 0&DM_{T,r}&DM_{T,b}&-\gamma_2DM_I&&& \\ -DE& 0&DM_{T,r}&DM_{T,b}&-\gamma_5DM_I&&& \\ \end{pmatrix}---(E.7.28) H(x)=DEDEDEDEDEDE000000DMT,rDMT,rDMT,rDMT,rDMT,rDMT,rDMT,bDMT,bDMT,bDMT,bDMT,bDMT,bγ1DMIγ2DMIγ5DMIγ1DMIγ2DMIγ5DMIλ1Dλ2Dλ5D(E.7.28)
其中:
R = ( D R Φ , 1 D T D R Φ , 2 D T D R Φ , 5 D T D R P , 1 D T D R P , 2 D T D R P , 5 D T ) − − − ( E . 7.11 ) R=\begin{pmatrix} DR_{\Phi,1}D^T&&&&& \\ &DR_{\Phi,2}D^T&&&& \\ &&DR_{\Phi,5}D^T&&& \\ &&&DR_{P,1}D^T&&\\ &&&&DR_{P,2}D^T&\\ &&&&&DR_{P,5}D^T\\ \end{pmatrix}---(E.7.11) R=DRΦ,1DTDRΦ,2DTDRΦ,5DTDRP,1DTDRP,2DTDRP,5DT(E.7.11)
其中:

γ k = λ k 2 / λ 1 2 M T , r = ( m W G , r 1 ( E l r 1 ) m W , r 1 ( E l r 1 ) c o t E l r 1 c o s A z r 1 m W , r 1 ( E l r 1 ) c o t E l r 1 s i n A z r 1 m W G , r 2 ( E l r 2 ) m W , r 2 ( E l r 2 ) c o t E l r 2 c o s A z r 2 m W , r 2 ( E l r 2 ) c o t E l r 2 s i n A z r 2 ⋮ ⋮ ⋮ m W G , r m ( E l r m ) m W , r m ( E l r m ) c o t E l r m c o s A z r m m W , r m ( E l r m ) c o t E l r m s i n A z r m ) M I = ( m I 1 , m I 2 , . . . , m I m ) T \gamma_k=\lambda_k^2/\lambda_1^2\\ M_{T,r}=\begin{pmatrix} m_{WG,r}^1(El_r^1)&m_{W,r}^1(El_r^1)cotEl_r^1cosAz_r^1& m_{W,r}^1(El_r^1)cotEl_r^1sinAz_r^1\\ m_{WG,r}^2(El_r^2)&m_{W,r}^2(El_r^2)cotEl_r^2cosAz_r^2& m_{W,r}^2(El_r^2)cotEl_r^2sinAz_r^2\\ \vdots&\vdots&\vdots \\ m_{WG,r}^m(El_r^m)&m_{W,r}^m(El_r^m)cotEl_r^mcosAz_r^m& m_{W,r}^m(El_r^m)cotEl_r^msinAz_r^m\\ \end{pmatrix}\\ M_I=(m_I^1,m_I^2,...,m_I^m)^T γk=λk2/λ12MT,r=mWG,r1(Elr1)mWG,r2(Elr2)mWG,rm(Elrm)mW,r1(Elr1)cotElr1cosAzr1mW,r2(Elr2)cotElr2cosAzr2mW,rm(Elrm)cotElrmcosAzrmmW,r1(Elr1)cotElr1sinAzr1mW,r2(Elr2)cotElr2sinAzr2mW,rm(Elrm)cotElrmsinAzrmMI=(mI1,mI2,...,mIm)T
长基线情况下EKF的时间更新表示为:
F k k + 1 = ( I 3 × 3 I 3 × 3 τ r I 3 × 3 I 6 × 6 I m × m I ( 3 m − 3 ) × ( 3 m − 3 ) ) − − − ( E . 7.30 ) Q k k + 1 = ( 0 3 × 3 Q v Q T Q I 0 ( 3 m − 3 ) × ( 3 m − 3 ) ) − − − ( E . 7.31 ) F_k^{k+1}= \begin{pmatrix} I_{3\times3}& I_{3\times3}\tau_r&&& \\ & I_{3\times3}&&& \\ && I_{6\times6}&& \\ &&& I_{m\times m}& \\ & &&&I_{(3m-3)\times(3m-3)} \\ \end{pmatrix}---(E.7.30)\\ Q_k^{k+1}= \begin{pmatrix} 0_{3\times3}&&&& \\ & Q_v&&& \\ & &Q_T&& \\ & &&Q_I& \\ & &&&0_{(3m-3)\times(3m-3)} \\ \end{pmatrix}---(E.7.31) Fkk+1=I3×3I3×3τrI3×3I6×6Im×mI(3m3)×(3m3)(E.7.30)Qkk+1=03×3QvQTQI0(3m3)×(3m3)(E.7.31)
式中, Q T Q_T QT Q I Q_I QI为电离层项和对流层项的过程噪声协方差矩阵。在方程中,每个卫星的探测器和基地站的ZTD和梯度参数以及SD垂直电离层延迟被简单地建模为随机游走。除了估算电离层和对流层术语外,在2.4.1版本中增加了ʺ局部固定ʺ特性,用于长基线处理。这意味着只有所有二义性的一部分被解析为整数值。除固定外的其他歧义仍然作为浮点值挂起。为了判断模糊度是否固定的简单判据在RTKLIB中实现了利用卫星仰角。如果卫星在高度的阈值以下,卫星的模糊度就不是固定的。只有超过阈值的卫星模糊度才被解决为整数。模糊度分辨率的高程阈值可以设置为处理选项ʺ固定支架最小高程ʺ和ʺ固定支架最小高程ʺ,以控制ʺFix and Holdʺ特征。

(7) 移动基线模型

如果移动站和基站接收器都在移动,并且需要漫游者相对于基站的唯一相对位置,则通常使用移动基线模式。移动基线模式可以通过在一个移动平台上安装两个天线来确定精确的姿态。在RTKLIB中,如果处理选项ʺ定位模式ʺ设置为ʺmoving‐Baseʺ,则应用移动基线模式。
在移动基线模式下,基站位置不是固定的,而是在逐时的单点定位过程中估计出来的。一旦获得了基站位置,则通过(1)‐(5)所述的短基线运动学模式来估算固定在估计位置和漫球车位置的基站位置。在这种情况下,只有相对位置是有意义的,这意味着漫游者和基站的绝对位置解只有与点指向模式解相同的精度。
除了移动基线模式的简单实现外,RTKLIB还可以校正漫游者和基站之间的时间差。漫游者接收机和基站接收机不同步。接收机的时钟差通常最大达到2毫秒。在移动非常快的平台中,时钟不同步会导致精度下降。为了校正时钟差,在基线处理之前,对基站位置 r b r_b rb进行校正:
r b ( t r ) = r b ( t b ) + v b ( t b ) ( t r − t b ) − − − ( E . 7.32 ) r_b(t_r)=r_b(t_b)+v_b(t_b)(t_r-t_b)---(E.7.32) rb(tr)=rb(tb)+vb(tb)(trtb)(E.7.32)
其中tr和tb分别为通过单点定位过程估计的漫游者和基站的信号接收时间。 v b ( t b ) v_b(t_b) vb(tb)也是用多普勒测量估计的基站速度。对于由移动基线模式确定的姿态,如果处理选项ʺ基线长度约束ʺ启用,则可以应用基线长度约束。该约束在EKF测量更新中应用了以下伪测量。
y = ( r b a s e l i n e ) − − − ( E . 7.33 ) h ( x ) = ( ∣ r r ( t r ) − r b ( t r ) ∣ ) − − − ( E . 7.34 ) H ( x ) = ( ( r r ( t r ) − r b ( t r ) ) T r r ( t r ) − r b ( t r ) ) − − − ( E . 7.35 ) R = ( σ r 2 ) − − − ( E . 7.36 ) \begin{aligned} y&=(r_{baseline})&---(E.7.33)\\ h(x)&=(\vert r_r(t_r)-r_b(t_r)\vert)&---(E.7.34)\\ H(x)&=(\frac{(r_r(t_r)-r_b(t_r))^T}{r_r(t_r)-r_b(t_r)})&---(E.7.35)\\ R&=(\sigma_r^2)&---(E.7.36) \end{aligned} yh(x)H(x)R=(rbaseline)=(rr(tr)rb(tr))=(rr(tr)rb(tr)(rr(tr)rb(tr))T)=(σr2)(E.7.33)(E.7.34)(E.7.35)(E.7.36)
在基线rbaseline是给定的提前确定基线长度(m)和r的约束是基线长度(米)。应对非量线性在短基线长度的情况下,卡尔曼滤波器的迭代测量更新支持通过设置处理选项ʺʺ滤波器迭代的数量多吗

猜你喜欢

转载自blog.csdn.net/qq_32201015/article/details/117265078