【MATLAB航空航天工具箱】学习笔记--时间系统

由于各种输入信息的时间系统并不一致,因此需要在统一的时间下进行各参数的转换。

 

 格里高利历(MJD和GPS周/日)

国际原子时Temps Atomique International(TAI)

作用:协调全球时间基准

引入时间:1972年

时间原点:取1958年1月1日0时0分0秒世界时(UT)的瞬间作为同年同月同日0时0分0秒TAI。(事后发现,在该瞬间原子时与世界时的时刻之差为0.0039秒。这一差值就作为历史事实而保留下来。)

协调世界时 Coordinated Universal Time(UTC)

作用:卫星的状态及跟踪卫星的观测数据

引入时间:1972年

秒长:与原子时相同

与原子时基准时间差异:UTC-TAI=(-10-27)s

其中10为两者定义基准时的闰秒,27为从1972年开始统计闰秒时的差异。

所有的####年##月##日均为格里高利历纪日法,闰年已包含在此体系内。

##时##分##秒计时法根据不同使用情况加后缀进行区分,闰秒只包含在UTC体系内。

太阳系质心动力学时 Dynamic Barycentric Time(TDB)

作用:解算坐标原点位于太阳系质心的运动方程、编制行星星表,计算岁差章动

引入时间:1972年

地球动力学时 (TT)

作用:解算围绕地球质心运动的天体的运动方程,编制卫星星历

引入时间:1991年

时间原点:TT=TAI+32.184s

全球统一世界时 Principal Universal Time(UT1)

作用:全世界民用时基础,表示地球瞬时自转轴的自转速度

UTC与UT1差值的计算  |UTC-UT1|<0.9s

matlab里面的计算函数为

[DUT1,DUT1Error]=deltaUT1(utc)

计算公式为:

 UT1-UTC=0.5309-0.00123(MJD-57808)-(UT2-UT1)

使用如下:

>> mjd = mjuliandate([2015 12 28])
[dUT1,dUT1Err] = deltaUT1(mjd)
mjd =
       57384
dUT1 =
                 0.0885937
dUT1Err =
                   3.9e-06

儒略日 Julian Date(JD)

A Julian date is the number of days and fractional days since noon on November 24, 4714 BCE in the proleptic Gregorian calendar, or January 1, 4713 BCE in the proleptic Julian calendar.

公历即格里历,又译格里高利历,称公元。

儒略日是法国学者Joseph Justus Scaliger(1540-1609)设计的一种历法,与尤里乌斯·恺撒于公元前45年颁布的儒略历没有关系,不要混淆。儒略日是指从公元-4712年1月1日12时(公元前4713年1月1日12时)开始连续计算得出的天数(不满一日的部分用小数表示)。

儒略日记得是什么日?儒略日记的的世界时(UT).

以下时间格式均为:格里高利历+UTC。

>> t1 = datetime('-4713-11-24 12:00:00');jd1 = juliandate(t1)
jd1 =
     0

>> t1 = datetime('-4713-11-24 12:00:00');mjd1 = juliandate(t1,'modifiedjuliandate')
mjd1 =
                -2400000.5

简化儒略日 Modified Julian Date(MJD)

A modified Julian date is the number of days and fractional days since November 17, 1858 00:00:00

由于儒略日数字位数太多,国际天文学联合会于1973年采用简化儒略日(MJD),其定义为 MJD = JD - 2400000.5。MJD相应的起点是1858年11月17日世界时(UT)0时。 

以下时间格式均为:格里高利历+UTC。

>> t1 = datetime('1858-11-17 00:00:00');jd1 = juliandate(t1)
jd1 =
                 2400000.5

>> t1 = datetime('1858-11-17 00:00:00');mjd1 = juliandate(t1,'modifiedjuliandate')
mjd1 =
     0

>> t1 = datetime('2000-01-01 00:00:00');mjd1 = juliandate(t1)
mjd1 =
                 2451544.5

UNIX时间戳

UNIX时间戳以UTC时间1971-01-01 00:00:00为起点,到当前时间的秒数,不考虑闰秒

格林尼治平恒星时Greenwich Mean  Sidereal Times(GMST)

格林尼治瞬恒星时Greenwich Apparent  Sidereal Times(GAST)

matlab里面计算函数为:

[thGMST,thGAST] = siderealTime(utcJD,dUT1,dAT)

utcJD指utc格式的格里高利时间转换成的儒略日;

dUT1=UT1-UTC

dAT=TAI-UTC

说明:

|UTC-UT1|<0.9s

TAI-UTC=-10-27=-37s

以下示例含义为 格里高利历(公元)2019年1月4日12时0时0分(UTC)时刻对应的格林尼治平恒星时和格林尼治瞬恒星时。

 >> jd = juliandate([2019 1 4 12 0 0]);

>> [thGMST, thGAST] = siderealTime(jd)
thGMST =
          284.303120228708
thGAST =
          284.303054910965

算例

以2020年1月1日0时0分0秒UTC计算各时间。

时间格式转换

以2016年1月1日0时0分0秒UTC为例。

format longG

timeUTC = datetime(2016,1,1,0,0,0);timeUTC.Format = 'yyyy-MM-dd HH:mm:ss.SSS'

timeUTC = datetime

   2016-01-01 00:00:00.000

timeUTC_JD = juliandate(timeUTC)

timeUTC_JD =                  2457388.5

timeUTC_MJD = juliandate(timeUTC,'modifiedjuliandate')

timeUTC_MJD =        57388

T = leapseconds

T = 27×2 timetable

 

Date

Type

CumulativeAdjustment

1

30-6-1972

+

1 sec

2

31-12-1972

+

2 sec

3

31-12-1973

+

3 sec

4

31-12-1974

+

4 sec

5

31-12-1975

+

5 sec

6

31-12-1976

+

6 sec

7

31-12-1977

+

7 sec

8

31-12-1978

+

8 sec

9

31-12-1979

+

9 sec

10

30-6-1981

+

10 sec

11

30-6-1982

+

11 sec

12

30-6-1983

+

12 sec

13

30-6-1985

+

13 sec

14

31-12-1987

+

14 sec

15

31-12-1989

+

15 sec

16

31-12-1990

+

16 sec

17

30-6-1992

+

17 sec

18

30-6-1993

+

18 sec

19

30-6-1994

+

19 sec

20

31-12-1995

+

20 sec

21

30-6-1997

+

21 sec

22

31-12-1998

+

22 sec

23

31-12-2005

+

23 sec

24

31-12-2008

+

24 sec

25

30-6-2012

+

25 sec

26

30-6-2015

+

26 sec

27

31-12-2016

+

27 sec

timeLeapSeconds = 27;%second

dTAI_UTC = (10+timeLeapSeconds);

timeTAI = timeUTC+dTAI_UTC/86400

timeTAI = datetime

   2016-01-01 00:00:37.000

timeTAI_JD = juliandate(timeTAI)

timeTAI_JD =           2457388.50042824

timeTAI_MJD = juliandate(timeTAI,'modifiedjuliandate')

timeTAI_MJD =           57388.0004282407

dTT_TAI = 32.184;%second TT-TAI=32.184s

timeTT = timeTAI+dTT_TAI/86400

timeTT = datetime

   2016-01-01 00:01:09.183

timeTT_JD = juliandate(timeTT)

timeTT_JD =           2457388.50080074

timeTT_MJD = juliandate(timeTT,'modifiedjuliandate')

timeTT_MJD =           57388.0008007407

timeTDB_JD=tdbjuliandate([timeTT.Year timeTT.Month timeTT.Day timeTT.Hour timeTT.Minute timeTT.Second])

timeTDB_JD =           2457388.50080074

Content                            Announcements of the value of DUT1=UT1-UTC to be transmitted with time signals with a precision of +/-0.1s.

Format                            ASCII

Format Description        See contents of the file.

Documentation                http://hpiers.obspm.fr/eoppc/bul/buld/BULLETIND.GUIDE

Data                                    UT1-UTC [s]

Accuracy                            0.1 s

INTERNATIONAL   EARTH   ROTATION AND REFERENCE SYSTEMS  SERVICE   (IERS)

SERVICE INTERNATIONAL DE LA ROTATION  TERRESTRE ET DES SYSTEMES DE REFERENCE

SERVICE DE LA ROTATION TERRESTRE

OBSERVATOIRE DE PARIS                                  

61, Av. de l'Observatoire

75014 PARIS (France)

Tel. 33 (0) 1 40 51 22 29 

FAX  33 (0) 1 40 51 22 91

Internet: services.iers@obspm.fr                   Paris, 27 October 2015

                               Bulletin D 126

                               ANNOUNCEMENT OF DUT1

        From the

                         26 November 2015, 0h UTC

    until further notice, the value of DUT1 to be disseminated with the

    time signals will be

                                  DUT1 = +0.1 s                                 

        Bulletin D 127 should be issued in January 2016

dUT1_UTC = deltaUT1(timeUTC_MJD)%UT1-UTC

dUT1_UTC =                  0.0815795

timeUT1 = timeUTC+dUT1_UTC/86400

timeUT1 = datetime

   2016-01-01 00:00:00.081

[thGMST,thGAST] = siderealTime(timeUTC_JD,dUT1_UTC,dTAI_UTC)

thGMST =           100.091354068898

thGAST =           100.091350362402

 

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值