gps单点定位算法及实现

gps单点定位算法及实现

ID:8186552

大小:320.27 KB

页数:10页

时间:2018-03-09

上传者:U-5649
gps单点定位算法及实现_第1页
gps单点定位算法及实现_第2页
gps单点定位算法及实现_第3页
gps单点定位算法及实现_第4页
gps单点定位算法及实现_第5页
资源描述:

《gps单点定位算法及实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

GPS单点定位算法及实现摘要:本文主要介绍了GPS卫星轨道坐标计算数学模型,单点定位数学模型,并根据最小二乘原理,用C++编写了几个小程序对GPS观测数据进行处理,包括时间转换程序、利用广播星历计算卫星坐标程序和地面点近似坐标计算程序。最后,选取实例进行计算并进行精度分析。关键词:GPS;单点定位;坐标计算;精度分析1引言GPS是美国从20世纪70年代开始研制的,于1994年全面建成,具有在海、陆、空进行全方位实时三维导航与定位能力的新一代卫星导航与定位系统。尤其是经过近几年的研究,GPS更在测绘、航空遥感和气象等方面有了新的应用,并以全天候、高精度、自动化、高效益等显著特点,赢得广大用户的信赖。随着对定位精度要求的不断提高,人们对GPS卫星星历的精度和实时性提出了越来越高的要求。卫星的星历,是描述有关卫星运动轨道的信息。利用GPS进行定位,就是根据已知的卫星轨道信息和用户的观测资料,通过数据处理来确定接收机的位置及其载体的航行速度。所以,精确的轨道信息是精密定位的基础。GPS的卫星星历按照精度可分为精密星历和广播星历。精密星历是由国际GPS服务中心(IGS)通过Internet发布,它的轨道精度可达到10cm左右,足以满足精密定位的需要。但是精密星历只能在卫星观测的11d后获得,无法为实时定位、导航、气象等实时性要求很强的应用提供有效的服务。广播星历是通过接收机接收卫星发射的含有轨道信息的导航电文,经过解码获得的卫星星历推算得到卫星位置,可以实现实时的导航和定位。本程序以2009年11月21日上海跟踪站(SHAO)的RINEX格式广播星历shao3250.09n和观测数据shao3250.09o为例,取了200个连续观测历元,在不同历元求出坐标值,最后求出坐标平差值,对平差值的各分量作比较。 2GPS卫星轨道坐标计算数学模型广播星历就是卫星GPS将含有轨道信息的导航电文发送给用户接收机,然后经过解码获得的卫星星历。GPS用户通过卫星广播星历,可以获得16个卫星星历参数,其中,1个参考时刻,6个相应参考时刻的开普勒轨道参数和9个摄动力影响的参数。这些参数的定义如下表所示:表1导航电文中的参考参数参数名称参数名称t星历参数的参考历元Δn平均运行速度差oea轨道长半轴的方根Ω升交点赤经变化率se轨道偏心率i轨道倾角变化率si参考时刻的轨道倾角CC,升交距角的调和改正项振幅0usucΩ参考时刻的升交点赤经CC,轨道倾角的调和改正项振幅0isicω近地点角距CC,卫星地心距的调和改正项振幅srsrcM参考时刻的平近点角AODE星历数据的龄期s其中,AODE表示从最后一次注入电文起外推星历时0的外推时间间隔,它反映了外推星历的可靠程度。根据上述数据,便可外推出观测时刻t的轨道参数,从而计算卫星在不同参考系中的相应坐标。2.1用广播星历参数计算卫星位置在利用GPS信号进行导航定位时,为了解算用户在地心坐标系中的位置,GPS接收机需要测定测站到卫星的距离并且要知道同一卫星在同一时刻的地心[2]坐标。卫星的地心坐标是从卫星的导航电文中提供的开普勒轨道参数和轨道摄动修正量按一定公式计算的。1)计算卫星运行的平均角速度n:卫星的平均角速度n用下式计算:0 3nG=M/a2(1)032式中,GM=398600.5()/kms是WGS-84坐标系中地球引力常数。利用导航电文中给出的摄动改正数Δn,用下式求卫星运行的平均角速度n:nnn=+Δ(2)0'2)对观测时刻做卫星钟差改正:t'ttt=−Δ2Δ=+taattatt()(−+−)(3)010e20e'在计算卫星钟差Δt改正时,t可近似取。t3)观测时刻的平近点角M的计算:sM=Mn+−(tt)(4)s00e4)计算偏近点角E:sEMeE=+sin(5)ssss(5)式可用迭代法进行计算,即先令EM=代入上式,求出E再代入上sss式计算,由于偏心率e很小(只有0.01),因此收敛很快,只需迭代两次便可求出偏近点角。5)真近点角的计算:∵cosf=(cosEe−−)/(1eEcos)sssss2sinf=−(1eEeEsin)/(1−cos)ssss2∴fss=arctan(1−eEEesin)/(ωss−)(6)6)计算升交角距u及轨道摄动改正项:0升交角距:uf00=ω+s摄动改正项: δ=cusin2+ccos2uuus00ucδ=+cusin2ccos2urrs0rc0(7)δ=+cusin2cucos2iis00ic7)计算经过摄动改正的升交角距u、卫星到地心距离r、轨道倾角iuu=+δ0uraeE=(1−cos)+δsssr(8)ii=++−δitt()00ie8)计算卫星轨道平面坐标系中的坐标:卫星在轨道平面坐标系中的坐标为x=rucos(9)yru=sin9)计算观测时刻升交点经度:升交点经度λ为该时刻升交点赤经Ω与格林尼治恒星时GAST之差,即λ=Ω−GAST(10)观测时刻的升交点赤经Ω为参考历元t的升交点赤经Ω加上观测时刻与参考0e0e历元之间的升交点的赤经变化,即Ω=Ω+Ω−(tt)(11)0e0e另外,卫星电文中提供了一周开始时刻(星期六子夜)以秒计算的格林尼治恒星时GATS()t。由于地球的自转作用,GAST也不断增加。增加量与地球自0−5转速率W有关W=7.29211567×10rads/。所以,观测时刻GAST用下式计算:eeGAST=GAST()t+Wtt(−)(12)0e0考虑到(11)式和(12)式,则λ=Ω+Ω−()tt−GAST(tWtt)(−−)(13)00ee0e0因为Ω=Ω−GAST()t00e0λ=Ω+Ω−()(ttWtt−−)00ee0考虑到和tt都是从开始起算,即=tt0,则(13)式为0e00 λ=Ω+Ω−(WttWt)()−−(14)00eee0e10)计算卫星在地心坐标系中空间直角坐标:⎡⎤⎡Xicosλλ−sincossinsinλi⎤⎡X0⎤⎢⎥⎢⎥⎢⎥Yi=sinλλcoscos−cossinλiY(15)⎢⎥⎢⎥⎢0⎥⎢⎥⎢⎣⎦⎣Zi0sincosi⎥⎦⎢⎣Z0⎥⎦11)如果考虑极移影响,可求在协议地球坐标系中的空间直角坐标:⎡⎤X⎡⎤10x⎡X⎤p⎢⎥⎢⎥⎢⎥Y=−⎢01y⎥Y(16)⎢⎥p⎢⎥⎢⎥⎣⎦Z⎢⎥−xy1⎢⎣Z⎥⎦CTS⎣⎦pp3GPS单点定位数学模型由于接收机测量的是伪距,在观测值中存在着接收机钟差,加之测量点的三维坐标为待求值,一共有4个未知数。要求解出这4个未知数,必须有4个方程式。为此,要实现单点绝对定位必须同时观测4颗卫星,才能组成定位的基本方[4]程。设ρ为伪距观测量,R为接收机到卫星的真距离,τ为接收机钟差,则观测方程为ρ=+×Rcτ222=−+()XXY()−+−+YZ()Zc×τ(17)spspsp式中,假定伪距观测量ρ已经过星历中的对流层和电离层改正;(,XYZ,)为卫sss星的瞬时地心坐标,可由卫星星历电文中求出;(,XYZ,)为接收机的地心坐标,ppp是待求量。为了求解方便和数据处理的需要,将式(17)进行微分,作线性化处理,并将接收机的概略坐标(,,XYZ)作为初始值代入,得到ppp000XZ−−−XYYZs0ppps0s0d=ρdX+dY+dZd+t(18)RRR000式中,dtc=dτ为接收机钟差对应的空间距离, 222RX=−+()XY()−+−YZ(Z)00spsp0sp0从式(18)中看出,三个坐标分量的系数是接收机到卫星的单位矢径分别向三个坐标轴投影的方向余弦。采用符号X−Xspl=RYY−spm=RZ−Zspn=(19)R规定上标为卫星号,下标i为测站号,则组成伪距定位的基本方程⎡⎤dρ1⎡⎤111−1⎡dX⎤ilmniiii⎢⎥⎢⎥⎢⎥2211⎢⎥dρi=⎢lmniii−1⎥⎢dYi⎥(20)⎢⎥3⎢⎥311−⎢⎥⎢⎥dρi⎢⎥lmniii1⎢dZi⎥⎢⎥d4⎣⎦lmn411−1d⎣t⎦ρiii⎣⎦i采用矩阵表示T1234l=⎡⎤ddddρρρρ观测量iiiii⎣⎦111⎡⎤lmn−1iii⎢⎥211lmn−1A=⎢⎥iii状态矩阵i311⎢⎥lmn−1iii⎢⎥411⎣⎦lmn−1iiiTXiiii=[dXdYdZdt]未知数则式(20)变为AX−=l0(21)iii对式(21)求解,便得到接收机地心坐标的唯一解−1X=Al(22)iii[11]在计算过程中,下列几个问题必须注意: (1)卫星之间的钟差是利用导航电文中给出的钟差改正数统一到UTC时间。这里,考虑的钟差是指卫星与接收机之间的钟差。(2)在计算中采用了接收机的概略坐标,第一次计算出的结果是不精确的。因此,必须反复迭代计算,直到满足规定的限差为止。(3)在一般导航型接收机中,都是采用这一数学模型计算位置的。现有的接收机都能同时跟踪四个以上卫星,但在计算中仍然利用四个卫星,不过是结果挑选的四个卫星。为此,按卫星的星座分布分成若干组,计算其PDOP,最后选择和利用一组其PDOP为最小的卫星作为计算数据,以得到最高的定位精度。在测地型接收机和高质量的导航接收机中,都具有8个以上的通道,能同时跟踪7颗以上的卫星。为了提高定位精度,在计算位置过程中,利用了所有的卫星观测值。在这样情况下,出现了多余观测,观测值的个数超过了未知数的个数,使得式(21)的右端不等于零AX−l=υ(23)iiiiTT式中,υυ=(,,,)υυ"为残差向量。根据最小二乘法的原理,最后得到接收机123的位置解为T−1TX=()AAAl(24)i其精度为22T−1DmQmAA==()(25)xx00式中,m为伪距测量中误差,Q为权系数阵。0x这种多余观测的优点在于消除了卫星定位的系统误差。过去,我们经常发现在仅用4颗卫星的差分定位中,当中间更换卫星时,位置会出现较大的偏移,等过了数秒后又逐渐回到原位。定位精度越高,这一现象越明显,当应用4颗以上的卫星定位时,这一现象就不存在了。4程序设计用C++编写了几个小程序对GPS观测数据进行处理,包括时间转换程序、利用广播星历计算卫星坐标程序和地面点近似坐标计算程序,程序比较简单,使 用方便,能满足基本的定位需求,程序内容较多,本部分不具体列出。5计算实例及误差分析本程序以2009年11月21日上海跟踪站(SHAO)的RINEX格式广播星历shao3250.09n和观测数据shao3250.09o为例,取了200个连续观测历元,在不同历元求出坐标值,最后求出坐标平差值,对平差值的各分量作比较。下图为接收机坐标值的X,Y,Z三个方向在不同历元和平差值的偏离度。图1X方向和平差值的偏离度图2Y方向和平差值的偏离度 图3Z方向和平差值的偏离度从图1至图3可明显看出,接收机坐标在3个方向的最大偏离度都小于8m,可以认为定位结果是正确的。在X波动较大的地方,Y和Z也波动较大。图2和图3表明,Y、Z坐标分量有相近的走势,在100到200历元间比较稳定。因此,延长观测时间,获得较多的观测数据,对提高定位精度有较大作用。6结论如何利用GPS的广播星历来获得比较准确的卫星位置,进而为实时、精确的导航和定位服务是一件相当复杂的工作。如何在工作中考虑各种误差对定位精度的影响,如何利用不同的算法来提高定位的精度,一直是人们非常关心的课题。通过一个实例的计算,详尽介绍了利用GPS广播星历计算卫星位置和利用观测数据计算地面点坐标的方法和原理,简单的对计算结果的误差进行了分析,证实了该算法的可行性。由于本作者水平有限,文中不足之处还有很多,如何进一步提高GPS定位的精度,还需要进一步的研究。参考文献:[1]李明峰,冯宝红,刘三枝.GPS定位技术及其应用[M].北京:国防工业出版社,2007.[2]张勤,李家权等.GPS测量原理及应用[M].北京:科学出版社,2007.[3]刘大杰,施一民,过静珺.全球定位系统(GPS)的原理与数据处理[M].上海:同济大学出版社,1996.[4]陈义.精密点定位的基本原理和应用[J].同济大学学报,2006,(7):919~923.[5]孙正明,高井祥,王坚.GPS广播星历误差及对单点定位的影响[J].测绘工程,2007,16(6):16~18. [6]李征航,黄劲松.GPS测量与数据处理[M].武汉:武汉大学出版社,2005.[7]周晓华,徐军,张苏红.GPS精密单点定位(PPP)技术在测量中的应用[J].江西测绘,2007,(2):48~50.[8]郭秋英,胡振琪.GPS卫星坐标的计算[J].全球定位系统,2006,(3):13~16.[9]魏子卿,葛茂荣.GPS相对定位的数学模型[M].北京:测绘出版社,1997.[10]刘磊,盛峥,王迎强,成银春.利用广播星历计算GPS卫星位置及误差分析[J].解放军理工大学学报,2006,7(6):592~596.[11]李洪涛,许国昌等.GPS应用程序设计[M].北京:科学出版社,1999.[12]王解先.GPS精密定轨定位[M].上海:同济大学出版社,1997.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭