作者:齐花Guyc(CAUC)
对于伪距单点定位来说,信号在传输过程中会受到多种误差的影响,包括:星钟误差、星历误差(轨道误差)、电离层延迟、对流层延迟、多径效应、接收机噪声等。这些误差导致伪距单点定位精度5-15米,距离高精度导航还有非常远的距离。
为了提升GPS定位的精度和定位有效率,差分定位利用一个位置已知的基准站来计算并广播误差校正量。假设用户和基准站接收到相同卫星的信号,由于基站的精确位置已知,它可以计算出实际测量值和理论值的误差,将这个误差播发给用户,用户便可根据校准量对本身的测量值进行修正,从而消除大部分的公共误差。这是差分定位的核心思想。
并且,误差具有空间相关性:在短基线的情况下,用户和基站受到的误差影响几乎相同;反之,基线越长,基站提供的差分校正量对于用户可信度越低。
根据予以差分校正的目标参量的不同,DGPS可以分为位置差分、伪距差分、载波相位平滑后的伪距差分和载波相位差分。
位置差分利用基站的已知精确坐标与GNSS计算得到的观测坐标直接的差值来校正用户的定位结果。
通过长期静态观测获得基站的精确位置
P r,true = ( X r,true , Y r,true , Z r,true ) P_{\text{r,true}} = (X_{\text{r,true}}, Y_{\text{r,true}}, Z_{\text{r,true}}) Pr,true=(Xr,true,Yr,true,Zr,true)
基站接收GNSS信号,计算出实时的观测位置
P r,obs = ( X r,obs , Y r,obs , Z r,obs ) P_{\text{r,obs}} = (X_{\text{r,obs}}, Y_{\text{r,obs}}, Z_{\text{r,obs}}) Pr,obs=(Xr,obs,Yr,obs,Zr,obs)
进行位置偏差计算
Δ P r = P r,true − P r,obs = ( Δ X , Δ Y , Δ Z ) \Delta P_{\text{r}}=P_{\text{r,true}} - P_{\text{r,obs}} = (\Delta X, \Delta Y, \Delta Z) ΔPr=Pr,true−Pr,obs=(ΔX,ΔY,ΔZ)
这个偏差反应的是GNSS定位中的误差,是在此历元、此环境下的各种误差累计的结果。
用户接收机接收GNSS信号,计算出实时的观测位置
P u,obs = ( X u,obs , Y u,obs , Z u,obs ) P_{\text{u,obs}} = (X_{\text{u,obs}}, Y_{\text{u,obs}}, Z_{\text{u,obs}}) Pu,obs=(Xu,obs,Yu,obs,Zu,obs)
用基站计算得到的位置偏差对用户接收机进行位置差分的修正
P u,corrected = P u,obs + Δ P r P_{\text{u,corrected}} = P_{\text{u,obs}} + \Delta P_{\text{r}} Pu,corrected=Pu,obs+ΔPr
位置差分的思路简单,但在差分系统中很少被使用,主要在于它有巨大的限制。
为了让不同位置的基站与用户接收机更大程度地拥有一个相同的定位结果误差,基站接收机与用户接收机需要采用同一种定位算法和同一套卫星测量值组合,需要采用同一种最小二乘法或卡尔曼滤波等同一种定位算法,并且各个参数需要相同。
同时,基站接收机和用户接收机采用的定位算法选用数目和PRN编号完全相同的一套卫星测量值。
相对定位系统通过对来自用户接收机和基站接收机的伪距或在载波相位测量值进行线性组合来消除测量值中的公共误差,线性组合的方式可以分为单差、双差和三差。
单差:两个接收机在单个历元对同一颗卫星进行测量,是站间对同一颗卫星测量值的一次差分。
双差:两个接收机在单个历元对两颗卫星进行测量,对两颗不同卫星的单差之间进行的又一次差分。
三差:两个接收机在两个历元对两颗卫星进行测量,对两颗不同卫星不同历元的双差的再一次差分。
差分的效果:
单差:在短基线的条件下,消除卫星钟差,可以基本消除大气时延的影响。
双差:消除接收机钟差。
三差:消除载波相位的整周模糊度。
通过对两个接收机的伪距观测值相减,消除卫星相关的公共误差,保留接收机相关的误差(如接收机钟差)。单差伪距是进一步构建双差或三差伪距的基础。
用户接收机和基站接收机的伪距观测方程分别为
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ \rho_u^{(m)} …
参数说明: r r r为几何距离; δ t u / r \delta t_{u/r} δtu/r为接收机钟差; δ t \delta t δt 为星钟误差; I I I为电离层延迟误差; T T T为对流层延迟误差; ϵ \epsilon ϵ为测量噪声。
单差伪距测量值为
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ \rho_{ur}^{(m…
将(1)(2)代入(3)得到:
KaTeX parse error: No such environment: align at position 7: \begin{̲a̲l̲i̲g̲n̲}̲ \rho_{ur}^{(…
此时,卫星钟差在差分中完全被消除;接收机钟差仍然存在;在短基线的条件下,电离层延迟误差和对流层误差差分后很小,可忽略不计;测量噪声仍然存在.
再一步简化为
KaTeX parse error: No such environment: align at position 7: \begin{̲a̲l̲i̲g̲n̲}̲ \rho_{ur}^{(m…
双差伪距是对两颗卫星的单差伪距进行差分,消除接收机钟差。假设基站 r r r和用户接收机 u u u同时观测两颗卫星 i i i, j j j,双差伪距为
KaTeX parse error: No such environment: align at position 7: \begin{̲a̲l̲i̲g̲n̲}̲ \rho_{ur}^{ij…
将(5)代入(6)得到双差伪距观测方程:
KaTeX parse error: No such environment: align at position 7: \begin{̲a̲l̲i̲g̲n̲}̲ \rho_{ur}^{i…
至此,单差接收机钟差被消除。
假如基站接收机与用户接收机共同跟踪 M M M颗卫星,并在同一时刻产生 M M M个单差伪距测量值,这 M M M单差伪距测量值两两组合共组合 M ( M − 1 ) M(M-1) M(M−1)个双差伪距观测值,但有且仅有 ( M − 1 ) (M-1) (M−1)个双差测量值独立。所以双差组合的一个代价是牺牲一个观测方程。
伪距测距
优势:直接测量信号传播时间,计算简单,可直接用于定位。
劣势:精度较低。
载波相位测距
优势:精度高,在无周跳的情况下,载波相位测量可以提供稳定的距离变化信息。
劣势:整周模糊度,周跳,动态适应性差。
所以,经过载波相位平滑后的伪距精度有一定的提升。
载波相位平滑伪距
在第k历元的伪距观测方程为
ρ k = r k + δ t u , k − δ t k ( s ) + I k + T k + ϵ ρ , k \rho_k = r_k+\delta t_{u,k}-\delta t _{k}^{(s)}+I_k+T_k+\epsilon_{\rho,k} ρk=rk+δtu,k−δtk(s)+Ik+Tk+ϵρ,k
载波相位观测方程为
ϕ k = λ − 1 [ r k + δ t u , k − δ t k ( s ) − I k + T k ] + N + ϵ ϕ , k \phi_k=\lambda ^{-1}[r_k+\delta t_{u,k}-\delta t _{k}^{(s)}-I_k+T_k]+N+\epsilon_{\phi,k} ϕk=λ−1[rk+δtu,k−δtk(s)−Ik+Tk]+N+ϵϕ,k
在此假设接收机一直锁定载波,不发生载波失锁和失周,即N在各个时刻保持不变。
下面对相邻两个历元的伪距和载波相位分别进行相减,得到
Δ ρ k = Δ r k + Δ δ t u , k − Δ δ t k ( s ) + Δ I k + Δ T k + Δ ϵ ρ , k \Delta\rho_k = \Delta r_k+\Delta\delta t_{u,k}-\Delta\delta t _{k}^{(s)}+\Delta I_k+\Delta T_k+\Delta\epsilon_{\rho,k} Δρk=Δrk+Δδtu,k−Δδtk(s)+ΔIk+ΔTk+Δϵρ,k
λ ⋅ Δ ϕ k = Δ r k + Δ δ t u , k − Δ δ t k ( s ) − Δ I k + Δ T k + λ ⋅ Δ ϵ ϕ , k \lambda ·\Delta\phi_k=\Delta r_k+\Delta\delta t_{u,k}-\Delta\delta t _{k}^{(s)}-\Delta I_k+\Delta T_k+\lambda ·\Delta\epsilon_{\phi,k} λ⋅Δϕk=Δrk+Δδtu,k−Δδtk(s)−ΔIk+ΔTk+λ⋅Δϵϕ,k
对比上述两式,理论上伪距变化量与以距离为单位的载波相位变化量 λ ⋅ Δ ϕ k \lambda ·\Delta\phi_k λ⋅Δϕk应该相等
Δ ρ k = λ ⋅ Δ ϕ k \Delta\rho_k=\lambda ·\Delta\phi_k Δρk=λ⋅Δϕk
Hatch滤波器
利用上面的等式进行移项,得到
ρ s , k = α ⋅ ρ k + ( α − 1 ) ⋅ [ ρ s , k − 1 + λ ( ϕ k − ϕ k − 1 ] ) ] \rho_{s,k}=\alpha·\rho_k+(\alpha-1)·[\rho_{s,k-1}+\lambda(\phi_k-\phi_{k-1}])] ρs,k=α⋅ρk+(α−1)⋅[ρs,k−1+λ(ϕk−ϕk−1])]
其中 α \alpha α为平滑因子。
Hatch滤波器通常以固定窗口长度M的形式实现, α = 1 M \alpha=\frac{1}{M} α=M1
ρ s , k = 1 M ρ k + M − 1 M [ ρ s , k − 1 + λ ( ϕ k − ϕ k − 1 ] ) ] \rho_{s,k}=\frac{1}{M}\rho_k+\frac{M-1}{M}[\rho_{s,k-1}+\lambda(\phi_k-\phi_{k-1}])] ρs,k=M1ρk+MM−1[ρs,k−1+λ(ϕk−ϕk−1])]
Hatch滤波器需要设置一个初始值,通常设置为第一个历元的伪距。若载波相位观测中发生周跳,整周模糊度会改变,导致平滑伪距失效,需重新初始化。
载波相位测量精度极高,但包含整周模糊度,单差载波相位是进一步构建双差或三差载波相位的基础,广泛应用于高精度定位(如RTK)。
用户接收机和基站接收机的载波相位观测方程分别为
ϕ u ( m ) = λ − 1 ( r u ( m ) − I u ( m ) + T u ( m ) ) + f ( δ t u − δ t ( m ) ) + N u ( m ) + ϵ ϕ , u ( m ) \phi_u^{(m)} = \lambda^{-1} \left( r_u^{(m)} - I_u^{(m)} + T_u^{(m)} \right) + f \left( \delta t_u - \delta t^{(m)} \right)+ N_u^{(m)} + \epsilon_{\phi,u}^{(m)} ϕu(m)=λ−1(ru(m)−Iu(m)+Tu(m))+f(δtu−δt(m))+Nu(m)+ϵϕ,u(m)
ϕ r ( m ) = λ − 1 ( r r ( m ) − I r ( m ) + T r ( m ) ) + f ( δ t r − δ t ( m ) ) + N r ( m ) + ϵ ϕ , r ( m ) \phi_r^{(m)} = \lambda^{-1} \left(r_r^{(m)} - I_r^{(m)} + T_r^{(m)} \right) + f \left( \delta t_r - \delta t^{(m)} \right) + N_r^{(m)} + \epsilon_{\phi,r}^{(m)} ϕr(m)=λ−1(rr(m)−Ir(m)+Tr(m))+f(δtr−δt(m))+Nr(m)+ϵϕ,r(m)
两接收机的单差载波相位为
ϕ u r ( m ) = ϕ u ( m ) − ϕ r ( m ) \phi_{ur}^{(m)} = \phi_u^{(m)} - \phi_r^{(m)} ϕur(m)=ϕu(m)−ϕr(m)
ϕ u r ( m ) = λ − 1 ( r u r ( m ) − I u r ( m ) + T u r ( m ) ) + f δ t u r + N u r ( m ) + ϵ ϕ , u r ( m ) \phi_{ur}^{(m)} = \lambda^{-1} \left( r_{ur}^{(m)} - I_{ur}^{(m)} + T_{ur}^{(m)} \right) + f \delta t_{ur} + N_{ur}^{(m)} + \epsilon_{\phi,ur}^{(m)} ϕur(m)=λ−1(rur(m)−Iur(m)+Tur(m))+fδtur+Nur(m)+ϵϕ,ur(m)
经单差,卫星钟差被消除;卫星星历误差被消除;在短基线条件下,单差电离层延迟误差和单差对流层误差也被消除。
可简化为
ϕ u r ( m ) = λ − 1 r u r ( m ) + f δ t u r + N u r ( m ) + ϵ ϕ , u r ( m ) \phi_{ur}^{(m)} = \lambda^{-1} r_{ur}^{(m)} + f \delta t_{ur} + N_{ur}^{(m)} + \epsilon_{\phi,ur}^{(m)} ϕur(m)=λ−1rur(m)+fδtur+Nur(m)+ϵϕ,ur(m)
单差所付出的代价是单差载波相位误差测量误差的均方差为原先均方差的 2 \sqrt2 2倍。
通过对单差载波相位进一步差分,消除接收机钟差,从而提高定位精度。双差载波相位在单差的基础上,引入两颗卫星的观测值差分,进一步减少误差。
假设基站 r r r和用户接收机 u u u同时观测两颗卫星 i i i, j j j,双差载波相位为
ϕ u r i j = ϕ u r ( i ) − ϕ u r ( j ) \phi_{ur}^{ij} = \phi_{ur}^{(i)} - \phi_{ur}^{(j)} ϕurij=ϕur(i)−ϕur(j)
将单差载波相位观测方程代入可得
ϕ u r i j = λ − 1 r u r i j + N u r i j + ϵ ϕ , u r i j \phi_{ur}^{ij} = \lambda^{-1} r_{ur}^{ij} + N_{ur}^{ij} + \epsilon_{\phi,ur}^{ij} ϕurij=λ−1rurij+Nurij+ϵϕ,urij
此时,接收机钟差被完全消除。付出的代价是双差载波相位误差测量误差的均方差为单差均方差的 2 \sqrt2 2倍,即双差载波相位误差测量误差的均方差为单差均方差的 2 2 2倍。