时钟系统的前世今生
最近在完善惯导ros驱动,发现GPGGA语句和GPFPD语句输出的时间不一致,一个是utc时间,另一个是gps时间。为了实现时钟同步,就要完成二者之间的转换。
格林威治标准时间(Greenwich Mean Time,GMT)
格林尼治平均时间(Greenwich Mean Time,GMT)
是指位于英国伦敦郊区的皇家格林尼治天文台当地的平太阳时,格林尼治标准时间的正午是指当平太阳横穿格林尼治子午线时(也就是在格林尼治上空最高点时)的时间。由于地球每天的自转是有些不规则的,而且正在缓慢减速,因此格林尼治平时基于天文观测本身的缺陷,已经被原子钟报时的协调世界时(UTC)所取代。
自1924年2月5日开始,格林尼治天文台负责每隔一小时向全世界发放调时信息。
世界时(Universal Time, UT)
后来,由于1925年以前人们在天文观测中,常常把每天的起始(0时)定为正午,而不是通常民用的午夜,给格林尼治平时的意义造成含糊,人们使用世界时(Universal Time, UT)
一词来明确表示每天从午夜开始的格林尼治平时。
世界时是以地球自转为基准得到的时间尺度,其精度受到地球自转不均匀变化和极移的影响,为了解决这种影响,1955年国际天文联合会定义了UT0、UT1和UT2三个系统:
- UT0系统是由一个天文台的天文观测直接测定的世界时,没有考虑极移造成的天文台地理坐标变化。
- UT1系统是在UT0的基础上加入了极移改正 Δλ,修正地轴摆动的影响。UT1是目前使用的世界时标准。被作为目前世界民用时间标准UTC在增减闰秒时的参照标准。
- UT2系统是UT1的平滑处理版本,在UT1基础上加入了地球自转速率的季节性改正 ΔT。
目前使用的世界时测算标准又称UT1。在UT1之前人们曾使用过UT0,但由于UT0没有考虑极移导致的天文台地理坐标变动的问题,因此测出的世界时不准确,现在已经不再被使用。
在UT1之后,由于人们发现,因为地球自转本身不均匀的问题,UT1定义的时间的流逝仍然不均匀,于是人们又发展了一些对UT1进行平滑处理后的时间标准,包括UT1R和UT2,但它们都未能彻底解决定义的时间的流逝不均匀的问题,这些时间标准现在都不再被使用。
原子时(International Atomic Time, TAI)
为了彻底解决定义的时间的流逝不均匀的问题,开始使用原子钟定义时间。人们首先用全世界的原子钟共同为地球确立了一个均匀流动的时间,称为国际原子时(International Atomic Time, TAI)
。
1967年第13届国际计量大会上通过一项决议,定义一秒为铯-133原子基态两个超精细能级间跃迁辐射振荡9,192,631,770周所持续的时间。[2][3]其起点为世界时1958年的开始。
原子时起点定在1958年1月1日0时0分0秒(UT),即规定在这一瞬间原子时时刻与世界时刻重合。但事后发现,在该瞬间原子时与世界时的时刻之差为0.0039秒。这一差值就作为历史事实而保留下来。在确定原子时起点之后,由于地球自转速度
的问题,使得原子时钟不能与世界时间保持协调。
协调世界时(Coordinated Universal Time, UTC)
为了使定义的时间与地球自转相配合,人们通过在TAI的基础上不定期增减闰秒
的方式,使定义的时间与世界时(UT1)保持差异在0.9秒以内,这样定义的时间就是协调世界时(Coordinated Universal Time, UTC)
。
协调世界时是最接近格林威治标准时间(GMT)的几个替代时间系统之一。对于大多数用途来说,UTC时间被认为能与GMT时间互换,但GMT时间已不再被科学界所确定。
UTC基于国际原子时,并通过不规则的加入闰秒来抵消地球自转变慢的影响。闰秒在必要的时候会被插入到UTC中,以保证协调世界时(UTC)与世界时(UT1)相差不超过0.9秒。
这就是所谓的跳秒,由于需要适应地球自转变化,需要在不定时进行跳秒,截止2019年2月,已经18次跳秒。正因为跳秒的存在,才会导致后面介绍的GPS时与UTC时不一致。
GPS时
GPS时是用于卫星定位系统时间,由于卫星系统是连续运行的,其要求时间系统也是连续的,因此采用原子钟的方法。GPS时间系统就是采用基于美国海军观测实验室维持的原子时。
GPS时在1980年1月6日0点0分与世界协调时(UTC)一致,此后就只按原子时来累计,不受外界影响,也不会产生跳秒。因此与UTC时间的差为秒的整数倍,即:
\[ Time_{GPS} = Time_{UTC}+n \]
特别的,GPS时间的计时方法采用星期数和秒周数来表示,其中周数作为C/A和P码中的十位字段发送,所以\(2^{10}=1024\)周(19.6年)后会再次归零。
为了解决这个问题,现代化的GPS导航消息采用了13位的字段,每隔8192周(157年)才归零。