您好,欢迎访问三七文档
一计算流程GPS单点定位的原理比较简单,主要就是空间距离的后方交会,用一台接收机同时接受四个或者以上卫星的信号得出卫星的位置坐标和卫星与接收机的距离,运用后方交会解算出接收机的三维坐标。其中,接收机钟误差作为一个参数参与解算。如果观测的卫星数目多于四颗,则采用最小二乘法进行平差求解。1,读取数据包括读取O文件和N文件里的数据O文件里包括头文件和观测数据文件。头文件里要读取出观测日期、接收机近似坐标,观测间隔,观测数据类型等。观测数据文件包括观测时间,卫星数量,卫星质量标记,卫星的伪随机编号,之后分每个历元有对各颗卫星的观测数据,例如,P1、P2、L1、L2,要将这些数据读取出来。N文件里包含的数据种类比较多,主要包括卫星的星历数据,通过这些数据可以求解出卫星的位置坐标。数据包括卫星钟差参考时刻、卫星星历参考时刻,以及参考时刻升交点赤径、参考时刻轨道倾角等好多参数信息。2,计算卫星位置卫星计算位置里面采用模块函数的方式,可以直接调用。在读取N文件中的数据之后,可以调用这些已经读出来的数据进行使用,函数提供两个形参,一个是星历数据的编号,另外一个是卫星信号发射时刻。计算过程比较繁琐,一步一步的算就行。3,交会定位计算一般每个历元的卫星数目不止四颗,通常采用最小二乘法进行平差求解。公式为:V=AδX-L。在具体计算的时候,首先要对(1)式进行线性化,得到矩阵A,L,这中间要用到很多矩阵的运算。在求得卫星位置之后,要对O文件中每个历元里的卫星编号与N文件中的卫星编号进行匹配,如果匹配成功,再对时间进行匹配,如果时间差小于两个小时,那么该数据可以用于运算。就这样,一个历元里匹配出的卫星数目超过4个的话,就可以通过平差计算出接收机的坐标了。4,GPS时间的计算GPS时间的计算比较简单,计算出参考1980年1月6日0时0分0秒的不足一周的秒数。主要在于判断所在的年是否为闰年,是否超过2月份,其他的问题就比较简单,采用一个SelectCase的条件语句就可以了,函数最后得到不足一周的秒数就行。5,模块矩阵的计算矩阵的运算是这个程序的最重要的部分,采用VB编写矩阵运算经常容易出错,经常容易出现下标越界、类型不正确等等问题。但是,矩阵运算本身并不复杂,要实现的话也会一步步运算就可以,难度大一点的在于矩阵的行列式,矩阵乘法,矩阵求逆。矩阵编好了后,可以直接调用。二、一些数据迭代计算1、在计算卫星位置的时候,关于偏近点角的计算需要进行迭代求解以提高精度。迭代可以保证偏近点角的精度。2、坐标迭代计算这个过程比较麻烦,在交会定位中,设计到一些数据的初始化,如卫星信号的传播时间,卫星与接收机的距离,卫星坐标,接收机的坐标等等。卫星信号的传播时间初始按照0.07秒计算,在第一次算出接收机的坐标之后,就可以再次得出信号传播时间以及卫星坐标、计算出卫星与接收机的距离,重新运用最小二乘法进行平差计算。以此类推,用DO循环进行迭代计算,知道最后二次的坐标计算结果小于之前预设的值就行。最后一次迭代的坐标值就作为接收机坐标。(关于这方面,本程序的调试还有些问题)三、部分问题处理方式1、伪距电离层改正采用双频观测值的组合解法会消除部分伪距电离层带来的误差影响。2、参考星历的选取由于卫星星历每2小时发送一次,所以一般卫星信号发射时刻与卫星星历播报时刻不对应,在计算时要选择离卫星发射时刻时间间隔最近的星历参数作为计算卫星位置的卫星星历。具体在程序中,只要它们之间的时间间隔小于1小时,就可以使用。3、卫星发射信号时刻归化卫星发射信号时刻采用GPS时间系统,时间经过GPS时间转换得到不足一周的秒数。计算归化时间的时候,不能大于302400秒,也不能小于-302400秒,要限制在这个范围内,这是刚好两个小时的秒数。4、地球自转改正由于地球的自转,在卫星发射的信号到达接收机时,卫星与接收机产生一个相对移动的位移,为了将两者坐标统一在地心地固坐标系中,就需要对卫星坐标进行地球自转改正。改正后,就可以进行交会定位计算了。5、变量处理方面由于N文件和O文件里都有大量的数据要进行读取,因此,在整个程序里涉及到的变量会很多,会有一些数组,常量,一般变量,也会有很多数组类型。包括全局变量和局部变量的区别运用、动态数组的重新声明等。在读取O文件和N文件所用到的数组,可以采用结构体的定义方式定义变量以及其中的各个元素,这样,在运用数组的时候就会比较方便,而且大大地减少了程序出错的概率。尽管采用了一些方式来尽可能地提高GPS单点定位的精,,但是,实际效果不是特别明显。具体定位精度可能与观测的时间段、可观测的卫星数量等因素有关。另外,部分观测数据可能有一些问题,最后计算的结果发现有这明显的错误,而不仅仅是计算的误差或者精度方面的问题,对于这一部分数据,应该讲他们剔除掉而不使用。
本文标题:GPS伪距单点定位
链接地址:https://www.777doc.com/doc-5400558 .html