DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 884|回复: 0
打印 上一主题 下一主题

[GPS] 实时GPS卫星坐标计算方法

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-1 06:14:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
 
摘要:利用GPS星历计算卫星坐标是GPS实时差分定位工作中的首要部分,而其中还要对GPS接收机的原始数据解码才能得到卫
星轨道参数;首先重点比较了几种不同厂商的单频GPS接收机的原始数据输出格式,以找出对不同类型GPS接收机原始数据解码方法的
共同点;然后以Hemisphere公司的HC12板卡为例,通过对卫星的观测并实时计算出所观测到的卫星的坐标,与IGS精密星历比较误差
在1m左右,计算结果与理论值相吻合,证明了该方法的正确性和有效性。
关键词:GPS;原始数据解析;导航电文;卫星坐标
Method of Real-time GPS Satellite Coordinates Calculation
Lei Bo,Li Qing,Li Xiong
(College of Mechanical and Electrical Engineering,China Jiliang University,Hangzhou 310018,China)
Abstract:Using the GPS satellite ephemeris to calculate satellite coordinate is the first part of the GPS real-time differential positioning
work,and it must decode the raw data to get the satellite orbital parameters from the GPS receiver.First,compared several different companies’raw
 data output format of Single-Frequency GPS receivers to find out the commonality of raw data decoding method for different types
of GPS receivers.Then take the HC12GPS OEM board of Hemisphere Company for example,calculate the coordinate of GPS satellite in real
time,the error is about 1mby comparing with IGS precise ephemeris,the results of calculated and actual value agree well,then proving that
this method is correct and effective.
Key words:GPS;raw data decoding;navigation message;satellite coordinate
0 引言
近年来,随着GPS定位系统的不断完善,GPS已经融入了
国民经济建设、国防建设和社会发展的各个应用领域。由于高
端GPS接收机价格一般较为昂贵,所以国内对GPS的研究大
部分都是以国外性价比较高的GPS-OEM (Original Equipment
 Manufacture)板为基础。利用GPS星历计算卫星在轨坐
标是GPS差分定位工作中的首要部分,而这其中必定要对
GPS-OEM 板的原始数据解码才能得到卫星轨道参数。然而
不同公司生产的OEM 板所输出的数据格式又不尽相同,虽然
设备制造商在销售时会附送将原始数据转换为与接收机无关的
RINEX (Receiver Independent Exchange Format)标准格式的
软件,但如果在其它嵌入式平台或者将接收机输出的数据直接
用于定位的实时解算则是无法使用的。为了正确快速提取出用
户所需要的数据,并直接用于GPS定位解算,本文具体描述了
解析GPS原始星历数据并计算卫星坐标的方法,为进一步的
对GPS定位的研究起到一定的借鉴作用。
1 不同厂商的原始数据格式
目前大部分具有原始数据输出功能的测量型GPS接收机
的数据输出格式一般有两种:一种为ASCII码的NMEA-
0183标准格式,另一种为原始设备商自定义的二进制格式。
NMEA-0183数据的应用较为方便,但输出的信息较少,而原
始的观测数据和星历数据则是以压缩率较高的二进制格式输
出,是GPS数据处理的主要信息来源。而各厂商的二进制格
式又有所不同,所以本文所讨论的原始数据是针对二进制格式
而言。
一般地,用户需要向接收机发送相应的命令以请求相应的
数据输出,这在厂家所提供的技术手册中都会有说明。为了满
足异步串行传送的要求,每一组数据包含3个部分:字块头
(Header)、数据块(Data)和结束符(Epilogue)。字块头包
含电文的标志、语句名和数据长度;数据块包括导航电文中的
全部数据;结束符包括校验和回车换行[1]。用户需根据语句的
具体内容按偏移量来提取特定的信息。
为了说明文中数据解析方法的通用性,以下列出三种市场
上性价比较高的单频OEM 板的原始星历数据进行比较分析。
分别是THALES公司的AC12、NovAtel公司的SUPERSTAR II
和Hemisphere公司的HC12OEM板卡,见表1-3[2-4]。
表1 AC12星历数据格式
Field Bytes Content
short wn 2 GPS week number
long tow 4 Seconds GPS week
float tgd 4 Group delay (seconds)
long aodc 4 Clock data issue
long toc 4 Clock data reference time in seconds
float af2 4 Clock correction(sec/sec2)
AC12和HC12的子块头和结束符在表中没有给出,只给
出了中间的数据块部分。SUPERSTAR II则给出了完整的字
第2期雷 波,等:实时GPS

卫星坐标计算方法 · 445·
块头、数据块和结束符三部分。从AC12星历数据格式中可以
看出,该公司已经把卫星发送出来的导航电文进行了译码输
出,按照表中的存储顺序给出了参考时间(GPS周:wn,GPS
秒:tow)和用于计算卫星坐标的轨道参数等一些信息(tgd,
aodc,toc,af2…),这样用户对数据的提取就更加方便。
表2 SUPERSTAR II星历数据格式
BYTE BIT DESCRIPTION UNITS TYPE OFFSET
1-4 Header,see Section 1.2.2, Message Block Structure
starting on pAGE 13 0

0-4 SV# (0-31) N/A Uchar 4
5-7 Reserved N/A
6-77
Ephemeris sub-frame
1-3/words 3-10
MSB of byte 6isBit 61
of subframe 1
as per
NAVSTAR* 5
78-79
Checksum, see Section
 1.6. Checksum
Calulation Rules starting
 on Page 19
N/A Ushort 77
表3 HC12星历数据格式
Name Components Type Bytes Value
SV
The satelllte to which
this data belongs
unslgned
short

Spare 1 Not used at this time
unsigned
short

Future
use
Sec Of Week
Time at which this arrived(
LSB=6) unsigned long 4
SF1words(10) Unparsed SF1message unsigned long 4×10=40
SF2words(10) Unparsed SF2message unsigned long 4×10=40
SF3words(10) Unparsed SF3message unsigned long 4×10=40
  而SUPERSTAR II和HC12却没有将导航电文译码,它
们的具体做法是直接将接收到的导航电文按照原有的格式输
出,但不同的公司稍有不同。如表2中所示,SUPERSTAR II
的星历数据包含在6-77Byte中,也就是导航电文的前三个子
帧。数据格式是严格按照IS-GPS-200D文档中导航电文的
格式,只不过每一子帧中略去了WORD1(遥测码TLM)和
WORD2(转换码HOW),并且每一WORD中省略了6bit的奇
偶校验数据P,这样前三子帧一共72Byte,导航电文子帧1如
图1所示,详细信息参考文献[3]、[5]。
图1 导航电文子帧1[5]
HC12的SF1words、SF2words和SF3words这三个数组
便是分别对应导航电文的前三子帧,导航电文的每一WORD
对应计算机的4Byte (1WORD)。由于导航电文中的每一
WORD是30bit,每一子帧300bit,而计算机的每一WORD是
32bit,每一SFwords数组是40Byte (320bit),比导航电文子
帧多出20bit。原来是该公司将导航电文的每一WORD放在了
计算机每一WORD的低30bit,而高两位无效,这样每一SFwords
数组中有用的数据也就是300bit,刚好对应导航电文的
每一子帧[4-5]。一般地,其他公司的OEM 板都会有类似的
做法。
2 原始数据解析
通过以上比较分析可以看出AC12的数据解析过程较为简
单,SUPERSTAR II和HC12较复杂一些。本文以HC12板卡
为例,将计算机通过串口与该板卡连接,实时接收原始星历数
据,并用VC++6.0编写界面程序,实时解析计算并显示出
所观测到的卫星的坐标值。
2.1 二进制数据存储
计算机与GPS接收机通讯过程中,在计算机上接收的字
节数据可以按照接收的顺序将其存放于一个字符数组中,而
HC12板卡输出的数据在计算机上接收后是以小端格式(Little
Endian format)存储,也就是低地址中存放字数据的低字节,
高地址中存放字数据的高字节,这在解析过程中需要引起
注意。
2.2 不同数据类型的解析
表3中HC12的星历数据有两种数据类型Unsigned short
和Unsigned long,所以在编写程序时最好的做法是按照表3中
的数据格式定义一个结构体,然后将接收数据的字符数组的地
址强制转化为该类结构体指针,这样就可以比较容易地解析出
对应的数据了。
2.3 导航电文的解码
导航电文中的数据不是按照整数字节顺序存储,而是存储
在某一字节的连续的某几个二进制位中,具体格式可参看ISGPS-
200D文档,这就需要用到数据的位操作来读取其中的
某几位。
图2 数据的对应关系
图2为HC12板卡计算机接收的WORD数据与导航电文
WORD数据的对应关系,计算机WORD数据高两位无效,低
30位便是导航电文WORD 数据。例如要读取子帧1 中
WORD3中的WN,则可将上一步解析出的Unsigned long型数
据右移20位,然后与0x3ff进行位移操作就可以得到WN
的值。
在解码时还应该注意几点[6]:某些参数是以2的补码来表
示的,正数的补码与真值相同,如果是负数,解码后还应该求
出其真值:X真=X补-2n ,其中n为二进制位数。在求出真值
后还要乘以每个参数所对应的比例因子,并且注意值的有效范
围。最后还要检查各参数的单位,凡是单位中含有semi-cir 
 计算机测量与控制 第20

· 446· 卷
cles的都要乘以π,才会得到以弧度radians为单位的值。
3 计算卫星坐标
通过以上对接收机原始星历数据的解码后,便可以得到用
于计算卫星在的地心地固系中位置的所有信息。以下为计算任
一历元卫星坐标的步骤[7-8]:
(1)平均角速度:n=n0+Δn,n0= 槡GM/a3,其中GM
为地球引力常数,WGS-84坐标系中GM=3.9860047×1014
(m3/s2)。
(2)归化时间:Δt=t-toe,t为观测瞬间时刻。
(3)平近点角:M=M0+nΔt。
(4)偏近点角:E=M+esinE。
(5)真近点角:根据公式tan (f2
)= 1+e
(1-e)
12
tan (E2

求反三角函数,可得真近点角f。在计算此步时,某些参考书
上介绍用到公式f=arctan 槡1-e2sinE
cos E-e
,不过在用此公式计算
时应注意函数的象限,不然可能造成计算结果与真值符号
相反。
(6)升交点角距:φ0=ω0+f
(7)摄动改正:δu =Cussin2φ0+Cuccos2φ0
δr =Crssin2φ0+Crccos2φ0
δi =Cissin2φ0+Ciccos2φ0
(8)改正后的升交点角距:φ=φ0+δu
改正后的卫星矢径:r=a (1-ecos E)+δr
改正后的轨道面倾角:i=i0+δi+iΔt
(9)观测瞬间升交点经度:λ=Ω0+Ω (t-toe)-ωet,其
中ωe=7.2921151467×10-5 (rad/s)。
(10)卫星轨道平面坐标计算:
x0
y0




燅0
=r
cosφ
sinφ



0 燅
(11)在协议地固系中的坐标:
xt
yt




燅t

x0cosΩ-y0cosisinΩ
x0sinΩ+y0cosicosΩ
y0sin



i 燅
4 实例
使用HC12GPS-OEM 板在中国计量学院某实验楼上对
卫星进行实时观测,将板卡与计算机通过串口进行通信,板卡
数据的输出速率为1Hz,然后用以上方法编写的上位机软件进
行实时计算。由于受到观测地点周围高层建筑影响,在此时刻
只能观测到7颗星,卫星编号PRN 如表4中所示。从IGS
(International GNSS Service)网站[9]下载当天的精密星历与之
比较,然而IGS提供的精密星历是每15min一组,所以这里为
了便于比较就取历元(wn=1598,tow=453600:2010年8月
27日6时),部分精密星历如表5中所示,坐标单位为千米。
用广播星历所计算出的卫星坐标与精密星历比较误差在1m左
右,与理论值相符合,因此本文中所采用的方法正确有效。
不过值得注意的是GPS卫星所发送的广播星历是基于WGS
-84坐标系的,而IGS所发布的精密星历采用的是ITRF国际
参考框架。虽然以上比较不是在同一个坐标系内进行的,但是
ITRF与WGS-84间的差异小于1×10-8~2×10-8,也就是它
们的符合程度达到10cm的水平[10],因而在这一水平上,可以将
ITRF下的轨道数据当做是WGS-84下的轨道数据。
表4 利用广播星历计算所得卫星坐标
卫星PRN X坐标(m) Y坐标(m) Z坐标(m)
11 -7295057.2638  24183759.2894 -7876530.7804
3 -13649302.8600 8044769.8358 20910818.5242
16 -24669274.5837 -185944.1230 10231222.6531
6 -15876391.3020 2105389.5335 21370265.3597
7 1847786.4095 17311324.5742 19991520.8909
8 12410439.1611 8247716.0860 22030811.8926
19 -8911275.7585 18138855.1386 17083055.1604
表5 IGS精密星历
* 2010 8 27 6 0 0.00000000
PG01 -25995.714511 -4234.556221  3800.389414
PG02 21488.551431 -10193.885242 -11329.361501
PG03 -13649.302255 8044.771824 20910.819052
PG04 18576.880839 1418.926527 -19235.326918
PG05 21792.776635 -4722.945553 14488.355931
PG06 -15876.391432 2105.390130 21370.266603
PG07 1847.785432 17311.324715 19991.520825
PG08 12410.439902 8247.716960 22030.812366
PG09 14379.259144 -21473.587185 -6624.819125
PG10 25985.584983 5606.915062 2797.607144
5 结语
本文通过对市场上性价比较高的几种单频GPS-OEM 板
的原始数据格式进行比较,重点分析了不同厂商对导航电文的
不同处理方式,给出了对不同类型接收机原始数据的解码方
法,并实时计算出可见卫星的WGS-84坐标,与IGS精密星
历比较误差在1m左右,证明了该方法的正确性和有效性,在
实际运用中将该方法用于了GPS差分定位的实时解算,体现
出了利用低价位GPS-OEM 板测量的实用价值。
参考文献:
[1]熊志昂,李红瑞,赖顺香.GPS技术与工程应用[M].北京:国防
工业出版社,2005.
[2]AC12Reference Manual[Z].USA:Thales Navigation,2005.
[3]SUPERSTAR II Firmware Reference Manual[Z].Canada:NovAtel
 Inc,2005.
[4]CRESCENT Integrators Manual [Z].Canada: Hemisphere
GPS,2008.
[5]ARINC Engineering Services.Interface Specification(IS-GPS-
200D)[Z],2004.
[6]张光炬,王解先.GPS原始数据解码为RINEX的方法[J].光学
仪器,2007,29(6):27-31.
[7]王惠南.GPS导航原理与应用[M].北京:科学出版社,2003.
[8]周红进,许江宁,李方能.GPS卫星位置计算及精度鉴定方法研究
[J].计算机测量与控制,2005,13 (11):1177-1191.
[9]http://igscb.jpl.nasa.gov/(国际GNSS服务组织).
[10]李征航,黄劲松.GPS测量与数据处理[M].武汉:武汉大学出
版社,2010.】
实时GPS卫星坐标计算方法.pdf (232.23 KB, 下载次数: 0)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-5-12 03:52 , 耗时 0.090557 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表