当前位置:文档之家› GPS单点定位算法及实现

GPS单点定位算法及实现

卫星的星历, 是描述有关卫星运动轨道的信息。利用 GPS 进行定位, 就是根 据已知的卫星轨道信息和用户的观测资料, 通过数据处理来确定接收机的位置 及其载体的航行速度。所以, 精确的轨道信息是精密定位的基础。GPS 的卫星星 历按照精度可分为精密星历和广播星历。精密星历是由国际 GPS 服务中心( IGS) 通过 Internet 发布,它的轨道精度可达到 10cm 左右, 足以满足精密定位的需 要。但是精密星历只能在卫星观测的 11d 后获得, 无法为实时定位、导航、气象 等实时性要求很强的应用提供有效的服务。广播星历是通过接收机接收卫星发射 的含有轨道信息的导航电文, 经过解码获得的卫星星历推算得到卫星位置, 可 以实现实时的导航和定位。本程序以 2009 年 11 月 21 日上海跟踪站(SHAO) 的 RINEX 格式广播星历 shao3250.09n 和观测数据 shao3250.09o 为例,取了 200 个连续观测历元,在不同历元求出坐标值,最后求出坐标平差值,对平差值的各 分量作比较。
3
n0 = GM / a 2
(1)
式中,GM=398600.5 (km)3 / s2 是WGS-84坐标系中地球引力常数。
利用导航电文中给出的摄动改正数 Δn ,用下式求卫星运行的平均角速度 n :
n = n0 + Δn
(2)
2)对观测时刻 t' 做卫星钟差改正:
t = t' − Δt
Δt = a0 + a1(t − t0e ) + a2 (t − t0e )2
−1 ⎤ ⎡dXi ⎤
−1
⎥ ⎥
⎢⎢dYi
⎥ ⎥
−1 −1
⎥ ⎥
⎢⎢dZi
⎥ ⎥
⎦ ⎣dt ⎦
采用矩阵表示
li = ⎡⎣dρi1 dρi2 dρi3 dρi4 ⎤⎦T 观测量


Ai
=
⎢ ⎢


li1 li2 li3 li4
mi1 mi1 mi1 mi1
ni1 ni1 ni1 ni1
−1 ⎤
−1
⎥ ⎥
GPS单点定位算法及实现
摘 要:本文主要介绍了 GPS 卫星轨道坐标计算数学模型,单点定位数学模型, 并根据最小二乘原理,用 C++编写了几个小程序对 GPS 观测数据进行处理,包括 时间转换程序、利用广播星历计算卫星坐标程序和地面点近似坐标计算程序。最 后,选取实例进行计算并进行精度分析。 关键词:GPS;单点定位;坐标计算;精度分析
R0
R0
R0
式中, dt = cdτ 为接收机钟差对应的空间距离,
(18)
R0 = ( X s − X p0 )2 + (Ys − Yp0 )2 + (Zs − Z p0 )2 从式(18)中看出,三个坐标分量的系数是接收机到卫星的单位矢径分别向 三个坐标轴投影的方向余弦。采用符号
l = Xs − Xp R
4 程序设计
用 C++编写了几个小程序对 GPS 观测数据进行处理,包括时间转换程序、 利用广播星历计算卫星坐标程序和地面点近似坐标计算程序,程序比较简单,使
用方便,能满足基本的定位需求,程序内容较多,本部分不具体列出。
5 计算实例及误差分析
本程序以 2009 年 11 月 21 日上海跟踪站(SHAO)的 RINEX 格式广播星历 shao3250.09n 和观测数据 shao3250.09o 为例,取了 200 个连续观测历元,在不同 历元求出坐标值,最后求出坐标平差值,对平差值的各分量作比较。下图为接收 机坐标值的 X,Y,Z 三个方向在不同历元和平差值的偏离度。
设 ρ 为伪距观测量, R 为接收机到卫星的真距离,τ 为接收机钟差,则观测
方程为 ρ = R + c×τ
= ( X s − X p )2 + (Ys − Yp )2 + (Zs − Z p )2 + c ×τ
(17)
式中,假定伪距观测量 ρ 已经过星历中的对流层和电离层改正;( X s ,Ys , Zs ) 为卫
−1 ⎥
−1
⎥ ⎦
状态矩阵
X i = [dXi dYi dZi dt]T 未知数
则式(20)变为
Ai X i − li = 0 对式(21)求解,便得到接收机地心坐标的唯一解
X i = Ai−1li 在计算过程中,下列几个问题必须注意[11]:
(20)
(21) (22)
(1)卫星之间的钟差是利用导航电文中给出的钟差改正数统一到 UTC 时 间。这里,考虑的钟差是指卫星与接收机之间的钟差。
5)真近点角的计算:

cos fs = (cos Es − es ) /(1− es cos Es )
sin fs = ( 1− e2 sin Es ) /(1− es cos Es )

fs = arctan( 1− e2 sin Es ) / (ωs Es − e)
6)计算升交角距 u0 及轨道摄动改正项:
2 GPS卫星轨道坐标计算数学模型
广播星历就是卫星 GPS 将含有轨道信息的导航电文发送给用户接收机,然 后经过解码获得的卫星星历。GPS 用户通过卫星广播星历,可以获得 16 个卫星 星历参数,其中,1 个参考时刻,6 个相应参考时刻的开普勒轨道参数和 9 个摄 动力影响的参数。这些参数的定义如下表所示:
星的瞬时地心坐标,可由卫星星历电文中求出;( X p ,Yp , Z p ) 为接收机的地心坐标, 是待求量。
为了求解方便和数据处理的需要,将式(17)进行微分,作线性化处理,
并将接收机的概略坐标 ( X p0 ,Yp0 , Z p0 ) 作为初始值代入,得到
dρ = Xs − X p0 dX + Ys − Yp0 dY + Zs − Z p0 dZ + dt
(3)
在计算卫星钟差 Δt 改正时, t 可近似取 t' 。
3)观测时刻的平近点角 M s 的计算:
M s = M 0 + n(t − t0e )
(4)
4)计算偏近点角 Es :
Es = M s + es sin Es
(5)
(5)式可用迭代法进行计算,即先令 Es = M s 代入上式,求出 Es 再代入上 式计算,由于偏心率e很小(只有0.01),因此收敛很快,只需迭代两次便可求出 偏近点角。
(13)
因为 Ω0 = Ω0e − GAST(t0 )
λ = Ω0 + Ω(t − t0e ) −We (t − t0 )
考虑到 t 和 t0e 都是从 t0 开始起算,即 t0 =0,则(13)式为
( ) λ = Ω0 + Ω −We (t − t0e ) −Wet0e
(14)
10)计算卫星在地心坐标系中空间直角坐标:
⎡X⎤ ⎡ 1 0
⎢⎢Y
⎥ ⎥
⎢ =⎢ 0
1
⎢⎣Z ⎥⎦CTS
⎢ ⎣

x
p
yp
xp −y
p
⎤ ⎥ ⎥
⎡X ⎢⎢Y
⎤ ⎥ ⎥
1
⎥ ⎦
⎢⎣Z
⎥⎦
(16)
3 GPS单点定位数学模型
由于接收机测量的是伪距,在观测值中存在着接收机钟差,加之测量点的三 维坐标为待求值,一共有 4 个未知数。要求解出这 4 个未知数,必须有 4 个方程 式。为此,要实现单点绝对定位必须同时观测 4 颗卫星,才能组成定位的基本方 程[4]。
升交角距:
摄动改正项:
u0 = ω0 + fs
(6)
δu = cus sin 2u0 + cuc cos 2u0 δr = crs sin 2u0 + crc cos 2u0 δi = cis sin 2u0 + cic cos 2u0
7)计算经过摄动改正的升交角距 u 、卫星到地心距离 r 、轨道倾角 i
⎡ X ⎤ ⎡cos λ
⎢⎢Y
⎥ ⎥
=
⎢⎢sin λ
⎢⎣Z ⎥⎦ ⎢⎣ 0
− sin λ cos i cos λ cos i
sin i
sin λ sin i ⎤ ⎡ X0 ⎤
− cos λ sin i
⎥ ⎥
⎢⎢Y0
⎥ ⎥
cos i
⎥⎦ ⎢⎣Z0 ⎥⎦
(15)
11)如果考虑极移影响,可求在协议地球坐标中的空间直角坐标:参数
名称
表 1 导航电文中的参考参数
参数
名称
t oe
星历参数的参考历元
Δn
平均运行速度差
as
轨道长半轴的方根
Ω
升交点赤经变化率
es
轨道偏心率
i
轨道倾角变化率
i0
参考时刻的轨道倾角
Cus , Cuc
升交距角的调和改正项振幅
Ω0
参考时刻的升交点赤经
Cis , Cic
轨道倾角的调和改正项振幅
ωs
近地点角距
(2)在计算中采用了接收机的概略坐标,第一次计算出的结果是不精确的。 因此,必须反复迭代计算,直到满足规定的限差为止。
(3)在一般导航型接收机中,都是采用这一数学模型计算位置的。现有的 接收机都能同时跟踪四个以上卫星,但在计算中仍然利用四个卫星,不过是结果 挑选的四个卫星。为此,按卫星的星座分布分成若干组,计算其 PDOP,最后选 择和利用一组其 PDOP 为最小的卫星作为计算数据,以得到最高的定位精度。
转速率We 有关We =7.29211567× 10−5 rad / s 。所以,观测时刻 GAST 用下式计算:
GAST=GAST (t0 ) +We (t − t0 ) 考虑到(11)式和(12)式,则
相关主题