您好,欢迎访问三七文档
RTKlib关于高精度GPS动态定位处理过程第一章引言.............................................................................................41.1调用主函数main(rnx2rtkp.c)...............................................41.2调用后处理函数postpos(postpos.c)...................................41.3处理基站信息execses_b(postpos.c)...................................41.4处理流动站信息execses_r(postpos.c)...............................41.5执行处理操作execses(postpos.c)........................................51.6函数调用流程图........................................................................5第二章文件读取.....................................................................................62.1观测文件读取readobsnav(postpos.c)......................................62.1.1文件头读取redarnxh(rinex.c)...............................................62.1.2文件的记录数据读取readrnxobs(rinex.c)....................72.2导航电文文件读取....................................................................82.2.1文件头读取....................................................................82.2.2文件的记录数据读取....................................................8第三章计算基准站位置和速度..............................................................93.1利用导航文件与基准站观测文件求卫星位置、速度和卫星钟钟差satposs(ephemeris.c).............................................................93.1.1卫星钟钟差计算ephclk(ephemeris.c)...........................93.1.2卫星位置计算satpos(ephemeris.c).............................103.2码伪距单点定位estpos(pntpos.c).........................................113.3函数调用流程图......................................................................12第四章动态相对定位求流动站位置....................................................134.1码伪距单点定位求流动站的近似坐标pntpos.....................134.2载波相位动态相对定位relpos(rtkpos.c)...............................134.2.1利用导航文件和流动站观测文件求卫星位置和卫星钟钟差satposs(ephemeris.c).....................................................134.2.2求基准站对应的非差残差项zdres(rtkpos.c)..............134.2.3实时状态更新udstate(rtkpos.c)..................................144.2.4求流动站对应的非差残差项zdres(rtkpos.c)..............154.2.5求双差残差项ddres(rtkpos.c).....................................154.2.6卡尔曼滤波filter(rtkcmn.c).........................................184.2.7模糊度整数估计resamb_LAMBDA()..........................194.3函数调用流程图.....................................................................21第五章总结...........................................................................................225.1结果输出.................................................................................225.2不足之处................................................................................225.3下一阶段计划与安排.............................................................22第一章引言精密GPS动态测量采用载波相位差分技术,其标准测量模式为,一台GPS接收机置于已知点,作为基准站来进行静态测量,另一台GPS接收机置于载体上,作为流动站来进行动态测量。两台接收机同步观测相同的卫星,然后将两台GPS接收机的观测值进行组合处理,就可以获得流动站相对于基准站的坐标和速度。本文主要介绍用RTKLIB实现精密动态定位的过程,该过程包括观测文件和导航文件的读取、基准站位置的计算、流动站位置的求解、运行结果的输出,下面将分块讨论。1.1调用主函数main(rnx2rtkp.c)读一个大型程序首先要找到主函数,rtklib的主函数位于文件rnx2rtkp.c中,主函数中主要定义了一些变量的缺省值。比如定位处理选项、解决方案输出选项等。1.2调用后处理函数postpos(postpos.c)输入文件包括观测文件、导航文件、精密星历文件等,postpos在处理输入文件时有两种方法,一种是输入文件可以只包含关键词,然后通过函数处理,将关键词用时间、基准站编号、流动站编号等代替;另一种是直接调用输入文件的文件名,postpos主要是来判断是哪一种输入方式,然后调用相应函数。1.3处理基站信息execses_b(postpos.c)精密GPS动态测量,需要利用基站信息进行差分定位,execses_b就是用来处理基站信息.1.4处理流动站信息execses_r(postpos.c)execses_r函数是用来判断调用输入文件时是调用的关键词还是直接使用了文件名,然后分别进行处理。1.5执行处理操作execses(postpos.c)从execses正式开始执行处理操作,这其中包括文件函数readobsnav,数据的处理函数antpos、procpos等。1.6函数调用流程图注:方框里的字母表示调用的函数,方框里括号内字母表示调用函数所在文件。main(rnx2rtkp.c)readobsnav(postpos.c)execses(postpos.c)execses_r(postpos.c)execses_b(postpos.c)postpos(postpos.c)antpos(postpos.c)procpos(postpos.c)第二章文件读取2.1观测文件读取readobsnav(postpos.c)2.1.1文件头读取redarnxh(rinex.c)RINEX格式的文件头用于存放与整个文件有关的全局性信息,位于每个文件的最前部,其最后一个记录为“ENDOFHEADER”.文件头中,每一记录的第61~80列为该行记录的标签,用于说明第1~60列中所表示的内容。文件头存放有文件的创建日期、单位名、测站名、天线信息、测站近似坐标、观测值数量及类型、观测历元间隔等信息。RTKLIB中文件头读取的函数调用过程见图2-1。图2-1文件头读取的函数调用过程readobsnav(postpos.c)redarnxh(rinex.c)redarnxfp(rinex.c)readrnxfile(rinex.c)readrnxt(rinex.c)2.1.2文件的记录数据读取readrnxobs(rinex.c)RINEX格式的记录数据紧跟在文件头的后面,在观测文件中存放的是观测过程中每一观测历元所观测到的卫星及载波相位、伪距和多普勒等类型的观测值数据等。在观测值文件中,所记录的载波相位数据的单位为周,伪距数据的单位为m。观测值所对应的时标(即观测时刻)是依据接收机钟的读数所生成的,而不是标准的GPS时,因而在该时标中含有接收机的钟差。RTKLIB中文件头读取的函数调用过程见图2-2。图2-2文件记录数据的函数调用过程readobsnav(postpos.c)readrnxobs(rinex.c)readrnxfp(rinex.c)readrnxt(rinex.c)readrnxfile(rinex.c)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
本文标题:总结rtklib
链接地址:https://www.777doc.com/doc-6910247 .html