GPS定位是利用一组卫星的伪距、星历、卫星发射时间等观测量和用户钟差来实现的。要获得地面的三维坐标,必须对至少4颗卫星进行测量。在这一定位过程中,存在3部分误差:
第一部分误差是由卫星钟误差、星历误差、电离层误差、对流层误差等引起的;
第二部分是由传播延迟导致的误差;
第三部分为各用户接收机固有的误差,由内部噪声、通道延迟、多路径效应等原因造成。
利用差分技术,第一部分误差可以完全消除;第二部分误差大部分可以消除,消除程度主要取决于基准接收机和用户接收机的距离;第三部分误差则无法消除。
下面,我们主要介绍消除由于电离层延迟和对流层延迟引起的误差的算法。在算法中使用的时间系统为GPS时,坐标系统为WGS-84坐标系。
1.消除电离层误差的算法
我们主要通过电离层网格延迟算法来获得实际的电离层延迟值,以消除电离层误差。具体过程如下:解算星历,得出卫星位置→求电离层穿透点位置→求对应网格点→求网格4个顶点的电离层延迟改正数→内插获得穿透点垂直延迟改正数→求穿透点的实际延迟值。
2.卫星位置的计算
解算出星历数据后,加入星历修正和差分信息,便可计算出卫星位置。
从GPS OEM板接收到的是二进制编码的星历数据流,必须按照本文前面部分列出的数据结构解算星历数据,再依据IEEE-754标准将其转换为十进制编码的数据。在这里,需要解算的参数有:轨道长半轴的平方根(sqrta)、平近点角改正(dn)、星历表基准时间(toe)、toe时的平近点角(m0)、偏心率(e)、近地点角距(w)、卫星轨道摄动修正参数(cus cuc cis cic crs crc)、轨道倾角(i0)、升交点赤经(omg0)、升交点赤经变化率(odot)。