zoukankan      html  css  js  c++  java
  • GNSS学习笔记-观测量模型和定位定速方程

    观测模型

    伪距观测方程

    伪距观测值代表卫星Satellite和接收机Receiver之间粗略的距离信息由(P^s_{r,k}),其中S代表卫星,r代表接收机,k代码第k颗卫星。它由用户接收到信号的时间(t_r(t))和卫星发射信号的时间(t^s(t- au^s_r))相减再乘以光速得到的,( au^s_r)为信号传播时间,公式为

    [P^s_r=c*[t_r(t)-t^s(t- au^s_r)]+e^s_r(t) ]

    (e^s_r(t)):伪距观测噪声

    考虑到接收机时间误差 (t_r(t)=t+Delta t_r)

    考虑到卫星钟误差 (t^s(t- au^s_r)=t- au^s_r+Delta t^s)

    信号传播时间 ( au^s_r= au^s_{r,real}+dcb_r+dcb^s=frac{1}{c}*( ho^s_r+I^s_r+T^s_r+dm^s_r)+dcb_r+dcb^s)

    综合上述得到伪距观测方程

    (P^s_r= ho^s_r+cDelta t_r-cDelta t^s+c[dcb_r+dcb^s]+I^s_r+T^s_r+dm^s_r+e^s_r(t))
    ########################################################################################
    (P^s_r):伪距观测值,已知变量,可通过接收机测量获得
    ( ho^s_r):卫地距,实际卫星和接收机的距离
    (Delta t_r):接收机钟差,(cDelta t_r=Delta T_r)
    (Delta t^s):卫星钟差, (cDelta t^s=Delta T^s)
    (dcb_r):接收机硬件延迟, (c*dcb_r=Dcb_r)
    (dcb^s):卫星硬件延迟,(c*dcb^s=Dcb^s)
    (I^s_r):电离层误差
    (T^s_r):对流层误差
    (dm^s_r):多路径误差
    (e^s_r(t)):伪距观测噪声

    多普勒观测方程

    对伪距观测方程进行时间求导有

    [{P^s_r}'={ ho^s_r}'+{cDelta t_r}'-{cDelta t^s}'+(c[dcb_r+dcb^s]+I^s_r+T^s_r+dm^s_r+e^s_r(t))' ]

    由于电离层误差,对流层误差和硬件延迟的时间导数很小可忽略不计,统一在测量误差项中,化简有多普勒观测方程

    (D^s_r={ ho^s_r}'+{cDelta t_r}'-{cDelta t^s}'+{e^s_r(t)}')
    ########################################################################################
    (D^s_r={P^s_r}'): 多普勒测量值,已知变量,可通过基带多普勒频移测量值获得
    ({Delta t_r}'):接收机钟漂,({cDelta t_r}'={Delta T_r}')
    ({Delta t^s}'):卫星钟漂,({cDelta t^s}'={Delta T^s}')
    ({e^s_r(t)}'):多普勒观测误差

    载波相位观测方程

    载波相位观测值为卫星和接收机之间特定频率的载波相位之差,实际中,信号接收机只能测量接收机和卫星的载波相位差的小数部分,整数部分无法确定。

    [{varphi}^{s}_r(t)={varphi}_r(t)-{varphi}^s(t- au^s_r)+N^s_r+e^s_r(t) ]

    考虑到接收机初始相位({varphi}_r(0)),卫星初始相位({varphi}^s(0))和传播时间

    接收机信号相位({varphi}_r(t)=freq*(t+Delta t_r)+{varphi}_r(0))

    卫星信号相位({varphi}^s(t- au^s_r)=freq*(t- au^s_r+Delta t^s)+{varphi}^s(0))

    整理有

    [{varphi}^{s}_r(t)=freq*( au^s_r+Delta t_r-Delta t^s)+[{varphi}_r(0)-{varphi}^s(0)]+N^s_r+e^s_r(t) ]

    又有波长(lambda=c/freq),方程两边同时乘以(lambda)

    [lambda{varphi}^{s}_r(t)=c( au^s_r+Delta t_r-Delta t^s)+lambda[{varphi}_r(0)-{varphi}^s(0)]+lambda N^s_r+lambda e^s_r(t) ]

    (lambda{varphi}^{s}_r(t)=L^{s}_r(t))为卫星和接收的距离,则得到载波相位观测方程

    (L^{s}_r(t)= ho^s_r+cDelta t_r-cDelta t^s+c[dcb_r+dcb^s]+I^s_r+T^s_r+dm^s_r+lambda[{varphi}_r(0)-{varphi}^s(0)]+lambda N^s_r+e^s_r(t))
    ########################################################################################
    (L^{s}_r(t)):载波相位观测值
    ( ho^s_r):卫地距,实际卫星和接收机的距离
    (Delta t_r):接收机钟差,(cDelta t_r=Delta T_r)
    (Delta t^s):卫星钟差, (cDelta t^s=Delta T^s)
    (dcb_r):接收机硬件延迟, (c*dcb_r=Dcb_r)
    (dcb^s):卫星硬件延迟,(c*dcb^s=Dcb^s)
    (I^s_r):电离层误差
    (T^s_r):对流层误差
    (dm^s_r):多路径误差
    ({varphi}_r(0)):接收机初始相位
    ({varphi}^s(0)):卫星初始相位
    (N^s_r):整周模糊度
    (e^s_r(t)):载波相位观测误差

    伪距定位原理

    根据伪距观测方程 (P^s_r= ho^s_r+cDelta t_r-cDelta t^s+c[Dcb_r+Dcb^s]+I^s_r+T^s_r+dm^s_r+e^s_r(t))

    忽略大气层,多路径,硬件延迟和测量误差等因素,方程简化为(P^s_r= ho^s_r+Delta T_r)

    假设卫星k位置为((x_k,y_k,z_k)),接收机位置为((x_r,y_r,z_r)),则有

    [{P_k}^s_r=sqrt{(x_k-x_r)^2+(y_k-y_r)^2+(z_k-z_r)^2}+Delta T_r=f_k(x_r,y_r,z_r,Delta T_r) ]

    当有N颗卫星时,则有伪距观测量方程组

    [left{egin{matrix} {P_1}^s_r \ {P_2}^s_r \ {P_3}^s_r \ vdots \ {P_N}^s_r end{matrix} ight} = left{egin{matrix} sqrt{(x_1-x_r)^2+(y_1-y_r)^2+(z_1-z_r)^2}+Delta T_r \ sqrt{(x_2-x_r)^2+(y_2-y_r)^2+(z_2-z_r)^2}+Delta T_r \ sqrt{(x_3-x_r)^2+(y_3-y_r)^2+(z_3-z_r)^2}+Delta T_r \ vdots \ sqrt{(x_N-x_r)^2+(y_N-y_r)^2+(z_N-z_r)^2}+Delta T_r end{matrix} ight} = left{egin{matrix} f_1(x_r,y_r,z_r,Delta T_r)\ f_2(x_r,y_r,z_r,Delta T_r)\ f_3(x_r,y_r,z_r,Delta T_r)\ vdots \ f_N(x_r,y_r,z_r,Delta T_r) end{matrix} ight} ]

    该非线性方程可用最小二乘进行求解

    最小二乘求解伪距定位方程

    伪距观测量方程组方程组 (b=A(X_r)) 向量(X_r=(x_r,y_r,z_r,Delta T_r)) 接收机坐标和接收机钟差

    (b=({P_1}^s_r, {P_2}^s_r, {P_3}^s_r, cdots {P_N}^s_r)^T)

    (A(X_r) = left{egin{matrix} sqrt{(x_1-x_r)^2+(y_1-y_r)^2+(z_1-z_r)^2}+Delta T_r \ sqrt{(x_2-x_r)^2+(y_2-y_r)^2+(z_2-z_r)^2}+Delta T_r \ sqrt{(x_3-x_r)^2+(y_3-y_r)^2+(z_3-z_r)^2}+Delta T_r \ vdots \ sqrt{(x_N-x_r)^2+(y_N-y_r)^2+(z_N-z_r)^2}+Delta T_r end{matrix} ight})

    根据如下非线性最小二乘方法求解方法,(f(X_r)=A(X_r)-b) 进行求解 (min||f(X_r)||)

    [egin{cases} X_{k+1}=X_k+Delta X \ Delta X=[J(X)^TJ(X)^{-1}]*J(X)^T*f(X) end{cases}]

    其中 (J(X))为Jacobian矩阵,当有n颗卫星时表示为

    [J(X_r)=left{egin{matrix} frac{partial f_1(x_1)}{partial x} & frac{partial f_1(x_2)}{partial x} & cdots & frac{partial f_1(x_m)}{partial x} \ frac{partial f_2(x_1)}{partial x} & frac{partial f_2(x_2)}{partial x} & cdots & frac{partial f_2(x_m)}{partial x} \ vdots\ frac{partial f_n(x_1)}{partial x} & frac{partial f_n(x_2)}{partial x} & cdots & frac{partial f_n(x_m)}{partial x} \ end{matrix} ight} = left{egin{matrix} frac{partial f_1(x_r,y_r,z_r,Delta T_r)}{partial x_r} & frac{partial f_1(x_r,y_r,z_r,Delta T_r)}{partial y_r} & frac{partial f_1(x_r,y_r,z_r,Delta T_r)}{partial z_r} & frac{partial f_1(x_r,y_r,z_r,Delta T_r)}{Delta T_r} \ frac{partial f_2(x_r,y_r,z_r,Delta T_r)}{partial x_r} & frac{partial f_2(x_r,y_r,z_r,Delta T_r)}{partial y_r} & frac{partial f_2(x_r,y_r,z_r,Delta T_r)}{partial z_r} & frac{partial f_2(x_r,y_r,z_r,Delta T_r)}{Delta T_r} \ vdots\ frac{partial f_n(x_r,y_r,z_r,Delta T_r)}{partial x_r} & frac{partial f_n(x_r,y_r,z_r,Delta T_r)}{partial y_r} & frac{partial f_n(x_r,y_r,z_r,Delta T_r)}{partial z_r} & frac{partial f_n(x_r,y_r,z_r,Delta T_r)}{Delta T_r} \ end{matrix} ight} ]

    [J(x_r,y_r,z_r,Delta T_r)=left{egin{matrix} frac{-(x_1-x_r)}{sqrt{(x_1-x_r)^2+(y_1-y_r)^2+(z_1-z_r)^2}} & frac{-(y_1-y_r)}{sqrt{(x_1-x_r)^2+(y_1-y_r)^2+(z_1-z_r)^2}} & frac{-(z_1-z_r)}{sqrt{(x_1-x_r)^2+(y_1-y_r)^2+(z_1-z_r)^2}} & 1 \ frac{-(x_2-x_r)}{sqrt{(x_2-x_r)^2+(y_2-y_r)^2+(z_2-z_r)^2}} & frac{-(y_2-y_r)}{sqrt{(x_2-x_r)^2+(y_2-y_r)^2+(z_2-z_r)^2}} & frac{-(z_2-z_r)}{sqrt{(x_2-x_r)^2+(y_2-y_r)^2+(z_2-z_r)^2}} & 1 \ vdots\ frac{-(x_n-x_r)}{sqrt{(x_n-x_r)^2+(y_1-y_r)^2+(z_n-z_r)^2}} & frac{-(y_n-y_r)}{sqrt{(x_n-x_r)^2+(y_n-y_r)^2+(z_n-z_r)^2}} & frac{-(z_n-z_r)}{sqrt{(x_n-x_r)^2+(y_n-y_r)^2+(z_n-z_r)^2}} & 1 end{matrix} ight} ]

    (R_n=sqrt{(x_n-x_r)^2+(y_n-y_r)^2+(z_n-z_r)^2})

    [J(x_r,y_r,z_r,Delta T_r)= left{egin{matrix} frac{(x_r-x_1)}{R_1} & frac{(y_r-y_1)}{R_1} & frac{(z_r-z_1)}{R_1} & 1 \ frac{(x_r-x_2)}{R_2} & frac{(y_r-y_2)}{R_2} & frac{(z_r-z_2)}{R_2} & 1 \ vdots\ frac{(x_r-x_n)}{R_n} & frac{(y_r-y_n)}{R_n} & frac{(z_r-z_n)}{R_n} & 1 end{matrix} ight} ]

    得到(J(X_r))后 在计算增量(Delta x)

    (Delta X=[J(X_r)^TJ(X_r))^{-1}]*J(X_r))^T*f(X_r))

    (Delta X=[J(X_r)^TJ(X_r))^{-1}]*J(X_r))^T*[A(X_r)-b])

    值得指出的是 这里(J(X_r))只和卫星和接收机位置相关,称为几何矩阵(A(X_r)-b)为测量伪距和计算的卫地距之差,称为伪距残差

    迭代方程,直到收敛为止

    (Delta X=[J(X_r)^TJ(X_r)^{-1}]*J(X_r)^T left{egin{matrix} sqrt{(x_1-x_r)^2+(y_1-y_r)^2+(z_1-z_r)^2}+Delta T_r-{P_1}^s_r\ sqrt{(x_2-x_r)^2+(y_2-y_r)^2+(z_2-z_r)^2}+Delta T_r-{P_2}^s_r\ vdots \ sqrt{(x_n-x_r)^2+(y_n-y_r)^2+(z_n-z_r)^2}+Delta T_r-{P_n}^s_r end{matrix} ight})

    (X_{k+1}=X_r+Delta X)

    多普勒定速原理

    有多普勒观测方程 (D^s_r={ ho^s_r}'+{cDelta t_r}'-{cDelta t^s}'+{e^s_r(t)}')

    假设卫星k位置为((x_k,y_k,z_k)),接收机位置为((x_r,y_r,z_r))

    假设卫星k速度为((frac{partial x_k}{partial t},frac{partial y_k}{partial t},frac{partial z_k}{partial t})=(vx_k,vy_k,vz_k)),接收机速度为((frac{partial x_r}{partial t},frac{partial y_r}{partial t},frac{partial z_r}{partial t})=(vx_r,vy_r,vz_r))

    其中

    [{ ho^s_r}'=frac{partial sqrt{(x_k-x_r)^2+(y_k-y_r)^2+(z_k-z_r)^2}}{partial t}\ =frac{x_k-x_r}{sqrt{(x_k-x_r)^2+(y_k-y_r)^2+(z_k-z_r)^2}}*(frac{partial x_k}{partial t} - frac{partial x_r}{partial t}) + \ frac{y_k-y_r}{sqrt{(x_k-x_r)^2+(y_k-y_r)^2+(z_k-z_r)^2}}*(frac{partial y_k}{partial t} - frac{partial y_r}{partial t}) + \ frac{z_k-z_r}{sqrt{(x_k-x_r)^2+(y_k-y_r)^2+(z_k-z_r)^2}}*(frac{partial z_k}{partial t} - frac{partial z_r}{partial t}) ]

    (R_n=sqrt{(x_n-x_r)^2+(y_n-y_r)^2+(z_n-z_r)^2})

    [{ ho^s_r}'=frac{x_k-x_r}{R_k}*vx_k+frac{y_k-y_r}{R_k}*vy_k+frac{z_k-z_r}{R_k}*vz_k-frac{x_k-x_r}{R_k}*vx_r-frac{y_k-y_r}{R_k}*vy_r-frac{z_k-z_r}{R_k}*vz_r ]

    并代入多普勒观测方程为

    [D^s_r=frac{x_k-x_r}{R_k}*vx_k+frac{y_k-y_r}{R_k}*vy_k+frac{z_k-z_r}{R_k}*vz_k-frac{x_k-x_r}{R_k}*vx_r-frac{y_k-y_r}{R_k}*vy_r-frac{z_k-z_r}{R_k}*vz_r+{cDelta t_r}'-{cDelta t^s}'+{e^s_r(t)}' ]

    将接收机速度项放到左边,多普勒测量值放到右边,

    [(frac{x_r-x_k}{R_k},frac{y_r-y_k}{R_k},frac{z_r-z_k}{R_k},1)*left{egin{matrix} vx_r\ vy_r\ vz_r\ Delta T_r' end{matrix} ight} = D^s_r+(frac{x_r-x_k}{R_k},frac{y_r-y_k}{R_k},frac{z_r-z_k}{R_k}) *left{egin{matrix} vx_k\ vy_k\ vz_k end{matrix} ight}+{Delta T^s}'-{e^s_r(t)}']

    上述右边公式中,卫星速度和卫星钟差可通过星历计算获得。


    ((frac{x_r-x_k}{R_k},frac{y_r-y_k}{R_k},frac{z_r-z_k}{R_k},1)=I_k)

    当有n颗卫星进行定位时,误差项({e^s_r(t)}')不略不计,有方程组

    [left{egin{matrix} frac{(x_r-x_1)}{R_1} & frac{(y_r-y_1)}{R_1} & frac{(z_r-z_1)}{R_1} & 1 \ frac{(x_r-x_2)}{R_2} & frac{(y_r-y_2)}{R_2} & frac{(z_r-z_2)}{R_2} & 1 \ vdots\ frac{(x_r-x_n)}{R_n} & frac{(y_r-y_n)}{R_n} & frac{(z_r-z_n)}{R_n} & 1 end{matrix} ight} left{egin{matrix} vx_r\ vy_r\ vz_r\ Delta T_r' end{matrix} ight} = left{egin{matrix} {D_1}^s_r+(frac{x_r-x_1}{R_1},frac{y_r-y_1}{R_1},frac{z_r-z_1}{R_1},1)*(vx_1,vy_1,vz_1,{Delta T^s}')^T\ {D_2}^s_r+(frac{x_r-x_2}{R_2},frac{y_r-y_2}{R_2},frac{z_r-z_2}{R_2},1)*(vx_2,vy_2,vz_2,{Delta T^s}')^T\ vdots\ {D_n}^s_r+(frac{x_r-x_n}{R_n},frac{y_r-y_n}{R_n},frac{z_r-z_n}{R_n},1)*(vx_n,vy_n,vz_n,{Delta T^s}')^T\ end{matrix} ight} ]

    [left{egin{matrix} I_1 \ I_2 \ vdots\ I_n end{matrix} ight} left{egin{matrix} vx_r\ vy_r\ vz_r\ Delta T_r' end{matrix} ight} = left{egin{matrix} {D_1}^s_r+I_1*(vx_1,vy_1,vz_1,{Delta T^s}')^T\ {D_2}^s_r+I_2*(vx_2,vy_2,vz_2,{Delta T^s}')^T\ vdots\ {D_n}^s_r+I_n*(vx_n,vy_n,vz_n,{Delta T^s}')^T\ end{matrix} ight} ]

    这里方程左边的常量项和伪距定位方程中的几何矩阵(J(X_r))完全相同,可用最小二乘求解上述方程

    最小二乘求解多普勒定速方程

    将上述的多普勒定速方程组简写为

    [AX_r=B ]

    采用最小二乘求解(X_r=(vx_r,vy_r,vz_r,{Delta T_r}'))(min{||f(X_r)||}^2=min{||A*X_r-B||}^2)

    [f(X_r)=A*X_r-B= left{egin{matrix} I_1 \ I_2 \ vdots\ I_n end{matrix} ight} left{egin{matrix} vx_r\ vy_r\ vz_r\ Delta T_r' end{matrix} ight} - left{egin{matrix} {D_1}^s_r+I_1*(vx_1,vy_1,vz_1,{Delta T^s}')^T\ {D_2}^s_r+I_2*(vx_2,vy_2,vz_2,{Delta T^s}')^T\ vdots\ {D_n}^s_r+I_n*(vx_n,vy_n,vz_n,{Delta T^s}')^T\ end{matrix} ight} ]

    [ f(X_r) = left{egin{matrix} I_1*(vx_r-vx_1,vy_r-vy_1,vz_r-vz_1,Delta T_r'-{Delta T^s}')^T - {D_1}^s_r\ I_2*(vx_r-vx_2,vy_r-vy_2,vz_r-vz_2,Delta T_r'-{Delta T^s}')^T - {D_2}^s_r\ vdots\ I_n*(vx_r-vx_n,vy_r-vy_n,vz_r-vz_n,Delta T_r'-{Delta T^s}')^T - {D_n}^s_r\ end{matrix} ight} ]

    (f(X_r))为多普勒残差, 求导得雅克比矩阵,(J(X_r)=frac{partial(A*X_r-B)}{partial X_r}=A)
    迭代如下公式直到收敛,即可求出((vx_r,vy_r,vz_r,{Delta T_r}'))

    [egin{cases} {X_r}_{k+1}={X_r}_{k}+Delta X_r \ Delta X_r=[A^TA^{-1}]*A^T*f(X_r) end{cases}]

  • 相关阅读:
    HDOJ 1846 Brave Game
    并查集模板
    HDU 2102 A计划
    POJ 1426 Find The Multiple
    POJ 3278 Catch That Cow
    POJ 1321 棋盘问题
    CF 999 C.Alphabetic Removals
    CF 999 B. Reversing Encryption
    string的基础用法
    51nod 1267 4个数和为0
  • 原文地址:https://www.cnblogs.com/langzou/p/12283813.html
Copyright © 2011-2022 走看看