总结rtklibWord格式文档下载.docx
《总结rtklibWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《总结rtklibWord格式文档下载.docx(20页珍藏版)》请在冰豆网上搜索。
execses_r函数是用来判断调用输入文件时是调用的关键词还是直接使用了文件名,然后分别进行处理。
1.5执行处理操作execses(postpos.c)
从execses正式开始执行处理操作,这其中包括文件函数readobsnav,数据的处理函数antpos、procpos等。
1.6函数调用流程图
注:
方框里的字母表示调用的函数,方框里括号内字母表示调用函数所在文件。
第二章文件读取
2.1观测文件读取readobsnav(postpos.c)
2.1.1文件头读取redarnxh(rinex.c)
RINEX格式的文件头用于存放与整个文件有关的全局性信息,位于每个文件的最前部,其最后一个记录为“ENDOFHEADER”.文件头中,每一记录的第61~80列为该行记录的标签,用于说明第1~60列中所表示的内容。
文件头存放有文件的创建日期、单位名、测站名、天线信息、测站近似坐标、观测值数量及类型、观测历元间隔等信息。
RTKLIB中文件头读取的函数调用过程见图2-1。
图2-1文件头读取的函数调用过程
2.1.2文件的记录数据读取readrnxobs(rinex.c)
RINEX格式的记录数据紧跟在文件头的后面,在观测文件中存放的是观测过程中每一观测历元所观测到的卫星及载波相位、伪距和多普勒等类型的观测值数据等。
在观测值文件中,所记录的载波相位数据的单位为周,伪距数据的单位为m。
观测值所对应的时标(即观测时刻)是依据接收机钟的读数所生成的,而不是标准的GPS时,因而在该时标中含有接收机的钟差。
RTKLIB中文件头读取的函数调用过程见图2-2。
图2-2文件记录数据的函数调用过程
2.2导航电文文件读取
2.2.1文件头读取
导航电文文件文件头的格式与观测文件头基本相同,但包含内容略有不同。
导航电文文件的文件头存放有文件创建日期、单位名及其他一些相关信息,另外,还有可能会包含电离层模型的参数以及说明GPS时与UTC间关系的参数和跳秒等。
导航文件的文件头读取的函数调用过程与观测文件文件头读取流程相同,见图2-1.
2.2.2文件的记录数据读取
导航电文文件中存放的是所观测卫星的钟差改正模型参数及卫星轨道数据等。
由于广播星历每2h更新一次,因此,在导航电文文件中可能会出现某颗卫星具有多个不同参考时刻钟差模型改正参数和轨道数据的情况。
GPS导航电文文件数据记录节中的内容为按卫星和参考时刻存放的各颗卫星的时钟和轨道数据,每颗卫星一个参考时刻的数据占8行,第1行为卫星的PRN号和该卫星钟的参考时刻及其改正模型参数,第2~8行为该卫星的广播轨道数据。
导航文件的文件记录数据读取的函数调用过程与观测文件文件头读取流程基本相同,只是在调用最后一个函数时,导航电文文件调用的是函数readrnxnav。
第三章计算基准站位置和速度
GPS提供了三种观测量:
伪距、载波相位和多普勒频移。
本章主要讨论利用伪距单点定位的方法求取基准站接收机的位置。
基准站位置计算调用的函数主要是antpos函数,然后再由antpos函数调用其他函数。
用antpos函数求基站位置有三种方法,第一种是用伪距单点定位的方法求取,调用的是avepos函数;
第二种是直接从位置文件中读取,调用的是getstapos函数;
第三种是直接从rinex的文件头中读取。
本文中采用的是第一种方法。
由于观测文件是以历元的方式存取数据,所以在avepos中要逐历元调用函数pntpos(pntpos.c)处理数据。
Pntpos函数是处理单点定位的函数,该函数包含了卫星位置和钟差计算(satposs)、接收机位置和速度计算(estpos/estvel)等过程。
3.1利用导航文件与基准站观测文件求卫星位置、速度和卫星钟钟差satposs(ephemeris.c)
3.1.1卫星钟钟差计算ephclk(ephemeris.c)
1、求取卫星信号发射时刻
(3-1)
式中,表示第颗星,表示第个测站,此处只有一个测站即基准站,为P1码的伪距观测值,为光速,表示以接收机钟为时间基准的卫星信号接收时刻,表示以卫星钟为时间基准的卫星信号发射时刻。
2、用广播星历求取卫星钟钟差
(3-2)
(3-3)
(3-4)
式中,为卫星钟的参考时刻,分别为卫星钟偏差、卫星钟的漂移、卫星钟的漂移速度,为卫星钟钟差,卫星钟钟差需经多次迭代求得。
3.1.2卫星位置计算satpos(ephemeris.c)
1、计算观测瞬间卫星的平近点角
(3-5)
(3-6)
(3-7)
式中,为卫星钟的GPS时,为星历的参考时刻,为万有引力常数与地球总质量之积,、为广播星历给出的参数。
2、计算偏近点角
(3-8)
解上述方程需用迭代法(也可用微分迭代法)。
3、计算升交距角、卫星矢径、卫星轨道倾角
(3-9a)
(3-9b)
(3-9c)
(3-10a)
(3-10b)(3-10c)
4、计算卫星在轨道面坐标系中的位置
(3-11a)
(3-11b)
5、计算卫星在ECEF坐标系中的位置
(3-12)
(3-13a)
(3-13b)
(3-13c)
卫星速度可由卫星位置差分求得。
3.2码伪距单点定位estpos(pntpos.c)
1、求伪距残差(即误差方程自由项)rescode(pntpos.c)
伪距原始观测方程为:
(3-14)
式中,为卫星到基准站的几何距离,为接收机钟差,为卫星钟钟差,为对流层延迟,为电离层延迟,为观测噪声。
将(3-14)线性化后可得:
(3-15)
式中,,为坐标改正项,,,。
将含未知量的项移到等式右边,重组后有
(3-16)
式中含有四个未知量。
令伪距残差,可得误差方程式
(3-17)
式中,
2、最小二乘法求方程解lsq(rtkcmn.c)
(3-18)
式中,为观测值权矩阵,可由对应的每颗星的观测误差求得。
由(3-18)可求得基准站坐标
3.3函数调用流程图
第四章动态相对定位求流动站位置
在动态相对定位中,参考站A的接收机固定在基线向量已知的点上,流动站接收机是移动的,需要确定其在任意历元的位置。
本章主要介绍相对定位的处理过程,调用的函数是procpos(postpos.c.)。
在函数procpos中,首先调用函数inputobs(postpos.c)函数来输入每一历元的观测数据和星历数据,然后再调用rtkpos(rtkpos.c)函数来进行精密定位。
下面主要讲述在函数rtkpos中处理数据的具体流程。
4.1码伪距单点定位求流动站的近似坐标pntpos
码伪距单点定位求流动站坐标的过程与第三章所述过程基本相同,只是观测文件改变,并且对于每一个历元需求一个流动站位置。
4.2载波相位动态相对定位relpos(rtkpos.c)
4.2.1利用导航文件和流动站观测文件求卫星位置和卫星钟钟差satposs(ephemeris.c)
该过程与3.1中的卫星位置计算过程相同,只是改变了观测文件。
4.2.2求基准站对应的非差残差项zdres(rtkpos.c)
(4-1)
(4-2)
(4-3)
(4-4)
式中,、分别表示载波L1、L2对应的观测量,、分别为码观测量,、对应L1、L2的天线相位改正。
4.2.3实时状态更新udstate(rtkpos.c)
1、实时位置更新udpos(rtkpos.c)
由4.1每个历元都会利用码伪距单点定位计算出一个流动站的近似位置,再根据近似位置经过载波差分定位求出流动站的高精度坐标。
2、周跳探测
文中主要采用电离层残差法进行周跳探测,过程如下。
组合观测量为:
(4-5)
上式消除了接收机至卫星的几何距离、轨道误差、接收机钟差、卫星钟差和对流层延迟误差,仅与电离层延迟、组合模糊的和观测值噪声有关。
它与载体的运动状态无关,可用于静态或动态测量中零差、单差或双差载波相位观测值的周跳探测。
在没有周跳时,它随时间变化缓慢。
一旦有周跳产生,它就会产生比较显著的变化。
因此其相邻历元的差值可以用来检测周跳,其差值为:
(4-6)
式中,。
3、码相位组合求模糊度的浮点解udbias(rtkpos.c)
GPS伪距、载波相位和多普勒观测量表示如下:
(4-7a)
(4-7b)
(4-7c)
(4-7d)
对(4-7a)、(4-7c)分别进行站间差分可得:
(4-8)
(4-9)
将(4-8)、(4-9)进行码相位组合可得:
(4-10)
4.2.4求流动站对应的非差残差项zdres(rtkpos.c)
(4-11a)
(4-11b)
(4-11c)
(4-11d)
4.2.5求双差残差项ddres(rtkpos.c)
双差即不同测站,同步观测同一组卫星,所得的单差之间的差值。
双差可以消除接收机钟差。
另一方面,双差放大了多路径效应和观测噪声的影响。
1、双差方程(以L1为例)
这里只考虑两颗卫星信号频率相同的情况,则双差方程的最终形式为:
(4-12)
2、观测方程线性化
(4-13)
其中,
式中,对应参考星,对应参考站,参考站的坐标已知,为状态向量,为状态向量的方差矩阵(在程序中用P表示)。
因模糊度的浮点解已在4.2.3中求出,则可求得双差残差项
(4-12a)
(4-12b)
(4-12c)
(4-12d)
式中,对应参考星,对应参考站,、分别表示载波L1、L2对应的双差残差项,、分别表示码观测量P1、P2对应的双差残差项。
实例中,设有7颗星,其中以2号星为参考星,以L1为例,可得出6个双差残差项,即,则的方差协方差矩阵为
式中,,
对应参考星,对应卫星的高度角,为载波相位观测误差,为基线向量观测误差,为卫星钟稳定误差。
系数矩阵和状态向量分别为:
式中,=2表示2号星为参考星,为状态向量的方差矩阵(在程序中用表示)。
4.2.6卡尔曼滤波fil