用MATLAB计算GPS卫星位置

点赞:17866 浏览:81591 近期更新时间:2024-02-02 作者:网友分享原创网站原创

摘 要:本文主要介绍了GPS测量数据的常用格式RINEX标准文件格式,并利用MATLAB工具计算出所观测卫星里的五颗卫星(14、20、29、31和32五颗)在283个历元的瞬时位置,即所观测时间段里五颗卫星在WGS-84坐标下的空间运行轨迹.

关 键 词 :RINEX标准文件 WGS-84下卫星位置 MATLAB工具

中图分类号:P228.4 文献标识码:A 文章编号:1672-3791(2013)07(c)-0005-05

GPS定位的基本原理简单来说就是在WGS-84空间直角坐标系中,确定未知点与GPS卫星的空间几何关系.因此利用GPS进行导航和测量时,卫星是作为位置已知的高空观测目标.那么如何精确快速的解算出卫星在空间运行的轨迹即其轨道是实现未知点快速定位的关键.

1.标准格式RINEX格式简述

在进行GPS数据处理时,由于接收机出自于不同厂家,所以厂家设计的数据格式也是五花八门的,但是在实际中,很多时候需要把来自不同型号的接收机的数据放在一块进行处理,这就需要数据格式的统一,为了解决这种矛盾,RINEX(英文全称为:The Receiver Independent Exchange Format)格式则应运而生,该格式存储数据的类型是文本文件,数据记录格式是独立于接收机的出自厂家和具体型号的.由此可见,其特点是:由于是通用格式,所以可将不同型号接收机收集的数据进行统一处理,并且大多数大型数据处理软件都能够识别处理,此外也适用于多种型号的接收机联合作业,通用性很强.

RINEX标准文件里不是单一的一个文件,而是包括如下几种类型的文件[1].

(1)观测数据文件(ssssdddf.yyo),记录的是GPS观测值信息,(OBServation data,简写OBS,为接收机记录的伪距、相位观测值;O文件,如XG012191.10O).

(2)导航电文文件(ssssdddf.yyn),记录的是GPS卫星星历信息(Nigation data,简写N,记录实时发布的广播星历;N文件,如XG012191.10N).

(3)气象数据文件(ssssdddf.yym),主要是在测站处所测定的气象数据(METerological data,简写MET,记录气象仪器观测的温、压、湿度状况;M文件,如XG012191.10M).

(4)GLONASS导航电文文件(ssssdddf.yyg),记录的是地球同步卫星的导航电文.

由上述可见,RINEX文件的命名规则为ssssdddf.yyt(t指的是数据类型,不同的文件,t所代表的字母不同),其中文件名前四个字母(ssss)指的是测站名,一般是用字母和数字的组合来定义,方便识别,用户自己定义.紧跟着的三个字母(ddd)指的是第一组数据的年积日(年积日是仅在一年中使用的连续计算日期的方法,是从当年1月1日起开始计算的天数.例如:每年的1月1日为第1日,2月1日为第32日,以此类推)如219表示8月7号,年积日的计算可通过在网上下载软件进行快速计算,也可自己编一个小程序计算.f指的是观测当天文件的观测序列号,其可以在0~9或A~Z中取值,如果文件序号取值为0,则其意味着今天一天观测的所有数据都放在该文件中,用户则不用在所有文件中一一去找当天的某个文件,只需在此文件中进行查询即可.对于f的理解,还有一点需要注意,通过下面的例子来进行说明:在某一天,用GPS测量进行某一项目的时候,共使用了3台GPS接收机,由于各种原因,用户分为三个时间段来进行:第一时间段,三台接收机全部启用;第二时间段,启用两台接收机;第三时间段,三台接收机又全部工作,那么在第一时间段,三台接收机所接收到的数据文件编号则都为1,在第二时间段,参与工作的两台接收机接收到的观测数据文件编号为2,在第三时间段,又是所有三台接收机参与观测,那么在该时间段,这三台接收机所对应的文件编号就为3.由此可见,文件序号的编排不是以某台接收机在该天的观测时段为基础定义,而是用用户所进行的整体项目在该天的同步观测时段为基础的.RINEX文件命名里的yy指的是年的后两位数字,如对于2013年,则yy为13.

RINEX文件命名里后一位o,n,m,g则标识的分别是观测数据文件、导航电文文件、气象数据文件以及GLONASS导航电文文件.此标准文件是纯ASCll码文本文件,所有类型的文件都由两部分组成,文件头和数据记录.文件头和数据记录的区分界是END OF HEADER,文件头里每条记录占一行,列宽不超过80,并且第61~80列是对前面列数据记录内容的说明,称为标签.数据记录里如果一行写不下,则在第二行继续数据的记录.

1.1 GPS观测数据文件

GPS观测数据文件中储存的数据是与确定GPS整周未知数息息相关的信息,主要包括星历、卫星数、测站概略坐标、伪距信息、载波相位观测量信息等.下面分别通过表1和表2对GPS观测数据文件的文件头和数据记录里每个记录的含义进行详细说明,以便更清楚的看懂观测数据文件.

GPS观测数据文件的文件头里每个标签的含义如表1所示.

GPS观测数据文件里数据记录里每一行的含义如表2所示.

本文中所使用的算例里观测数据文件XG032191.10O的头文件和部分数据记录如图1与图2所示.

1.2 导航数据文件

GPS导航文件也是计算卫星瞬时位置必不可少的文件,因为卫星星历、时钟改正、偏心率、轨道摄动改正、大气折射改正等导航信息是用户用来实时定位和精确导航的必备数据.

导航文件仍然包括头文件和数据记录两部分,数据文件中数据之间是用空格或回车符隔开的,因为有这样的规律,所以用MATLAB编程读取数据的时候就可利用这点进行数据的获取的控制. GPS导航数据文件的头文件不像观测数据文件那样信息丰富,其仅仅只是对RINEX版本号、观测类型、文件纲要名称、文件机构名称、文件建立日期相关信息进行说明,同观测文件一样,前60列是数据,61~80是标签说明,并以END OF HEADER作为文件头的结束标志.

GPS导航数据文件里的数据记录部分相对较复杂,牵扯到的内容较多,其每一行每一项的含义如表3所示.(如图3,4)

2.卫星坐标的计算步骤

由于在GPS定位和导航的时候,用户都是把GPS卫星的位置作为已知量来对待,并且GPS定位所用的坐标系是世界大地坐标系WGS-84.所以就先必须根据GPS接收机观测的相应星历数据,解算出GPS卫星在WGS-84坐标系中的瞬时位置.

为了后面计算方便,先对广播星历中涉及到的计算卫星坐标的一些轨道参数进行说明,如表4所示.

由于每隔两个小时,GPS接收机收到的广播星历才更新一次,所以用户在根据接收机收到的卫星导航电文汇总的广播星历参数推算GPS的瞬时坐标的时候,一定要选取与GPS卫星的瞬时坐标时刻最相近的那组广播星历数据[2],否则误差将会很大.

首先由已知的GPS接收机接受时刻的钟面时,根据公式换算出GPS卫星发射时刻的钟面时[3]:

其中:可由观测文件直接读取,为伪距,是观测GPS卫星与观测GPS接收机之间的距离(由于这个距离里含有电离层误差、对流层误差等各种误差,不是GPS卫星与GPS接收机之间的真实距离,所以称为伪距),本次算例读取的是P2码伪距观测量,c为光速,值为3×108m/s.


下面就是按照公式,读取相应的广播星历参数,计算观测时刻的GPS卫星瞬时坐标:

3.卫星坐标的计算实例

为了验证本文的计算卫星坐标的理论,本人经过实地设置观测点XG01和XG03,从8月7日1:37:00开始观测,8月7日2:47:30结束观测过程.数据格式为RINEX标准格式,无需转换.观测数据文件XG012191.10O里观测数据的读取、观测数据按照定义的卫星名存放,XG012191.10N里定义卫星名的相关的导航数据的读取和存放,GPS卫星瞬时位置的计算,以上的这些过程都在MATLAB环境中实现,图5就是在MATLAB环境里计算、绘制出的GPS卫星名为14、20、29、31和32在观测时间段的空间运行轨迹图.

4.结论

快速准确计算出GPS卫星在WGS-84坐标系下的瞬时位置是GPS定位里很基础、很重要的问题,由文中描述可知,计算步骤比较繁琐,需要注意的细节也很多,牵扯到的符号也很多.从自己对实例的计算经历中来看,我觉得在使用卫星计算公式计算卫星瞬时坐标的时候特别要注意以下三个问题.

(1)由于每隔两个小时,GPS接收机收到的广播星历才更新一次,所以用户在根据接收机收到的卫星导航电文汇总的广播星历参数推算GPS的瞬时坐标的时候,一定要选取与GPS卫星的瞬时坐标时刻最相近的那组广播星历数据,否则误差将会很大.

(2)由于GPS定位系统的高空动态性, 又因为卫星的发射时刻可唯一表征该时刻GPS卫星的坐标,因此应先由接收机钟面时计算出公式中所需的GPS卫星发射时刻的钟面时.

用MATLAB计算GPS卫星位置参考属性评定
有关论文范文主题研究: 关于文件的文章 大学生适用: 函授论文、函授毕业论文
相关参考文献下载数量: 76 写作解决问题: 如何怎么撰写
毕业论文开题报告: 标准论文格式、论文小结 职称论文适用: 职称评定、职称评副高
所属大学生专业类别: 如何怎么撰写 论文题目推荐度: 优秀选题

(3)必须把GPS接收机的观测历元换算成GPS秒,方可进行下一步.