天空の時計と原子時計

ホーム 上へ 衛星の軌道要素 経緯度・高さと直交座標 天空の時計と原子時計 ちょこっと(逆三角関数) 衛星軌道面での動き ベクトルと座標回転 衛星の方位と仰角 ちょこっと(NTP) 可視範囲と等距離円 衛星の速度とSA 地球の大きさと形 ちょこっと(方位磁石) SGP計算モデル アンテナの自動制御 リグのコントロール ちょこっと(ドップラ補正) DDEインターフェース 位置計算の数値例 マクロを使った自動運転 ちょこっと(軌道コレクション)

 天空を巡る星々や太陽を見て、季節や時刻を知ることができます

 夜空を見上げると時刻とともに東から西に星々が移動していきます。 また、毎日同じ時刻に星を見ると季節とともに星々が西に移り、1年をかけて巡ります。 もし星々の中に0時、1時、2時、・・・、22時、23時、24時(0時)のように目盛りを付けることができれば地球の自転による時計を作ることができます。 このような時刻を恒星時と呼び、長期間にわたって一様 で安定な時計として利用することができます。  しかし恒星時の1日は、地上から見る太陽の動きに対して約4分ほど短いものになります。 この差を1年間積算すると1日になります。  これは、地球が自転しながら1年をかけて公転するために生じる差なのです。  一方、太陽の南中から翌日の南中までの時間を真太陽時と言います。 南中を正午とすれば太陽の位置と時刻がずれることはないのですが、地球の公転軌道が楕円であることと地球の自転軸が傾いていることなどの影響で季節によって変動し、一定ではありません。 このため、黄道面を一様な角速度で運動する平均太陽を仮定して、この動きから決まる時刻を世界時(UT)と呼びます。

 長い間、星々や太陽の動きから時刻を決めていました。 一方、物理的に安定な現象を持つものからも時を計ることができます。 ろうそくやお香が燃える速度を使ったり、水の 流れと升を使ったり、振り子を使ったりといろいろな方法が考えられました。 電子技術が発達すると水晶の圧電現象と、その安定した振動を利用した水晶発振器が考案され、時計に使われました。 現在では正確な水晶時計が安い価格で 買えるようになりました。 さらに量子力学を応用した原子固有の振動を基準に原子時計が1955年に誕生しました。 現在では、1秒の長さにはセシウムという原子の正確な周期が利用され、これを積算した時刻は国際原子時 (TAI)と呼ばれています。

 原子時は物理の基本単位である1秒を正確に決めるために重要な役割を担っているのですが、恒星や太陽の動きとは全く関係がない時系です。 すなわち、地球の自転が潮汐現象などで遅れてしまったりした場合には、特に太陽の動きと のずれが問題となってきます。 極端には真夜中に太陽が頭の上に輝いているなどということにもなり かねません。 それではこのように独立した時刻が歩み寄るにはどうしたらよいのでしょうか。 原子時の運用が開始された初期には、世界時に原子時計の周波数をわざわざずらして合わせていました。 しかし、この方法では1秒の長さが変わってしまう不都合があるために、1972年からは1秒の長さ(周波数)は正確な値を保ち、世界時と原子時が1秒以上ずれないようにするための、1秒のステップ調整が行われるようになりました。 この際に 調整される1秒のことをうるう秒と呼び、このような時系を協定世界時(UTC)と呼んでいます。

 

 また、私たちが日常的に使っている日本標準時(JST)は協定世界時 (UTC)を9時間進めた時刻です。

 衛星の軌道要素は地心赤道直交座標で表されています。 このため、地球上の位置と結びつけるためには春分点方向からグリニッジ子午線がどのような位置関係にあるかを知る必要があります。 こ れは、その場所のその時刻の恒星時Θ を求めることで、世界時0時におけるグリニッジ平均恒星時Θ0 を求めて経度λ 、経過時間Lt、経過時間に対する補正値からつぎの式 で求めることができます。

 

  Θ = Θ0 + λ  +  Lt + 補正値

また、

 補正値 = Lt × 0.00273791

となる。

 

さらに、

  Θ0 = 6(h) 38(m) 45(s).836 + 8640184(s).542Tu + 0(s).0929Tu^2

ここで、Tuは1900年1月0日正午UTから数えた経過日数を、36525日を1として表したものです。

 

 1秒以下の正確さが求められる場合には分点差と呼ばれる補正が必要になりますが、CALSAT32では軌道要素の不確かさ、パソコンの時計の不確かさ 、世界時(UT)と協定世界時(UTC)の差が1秒以内ではあるものの計算で求められないことなどから、補正は行っていません。

 それでは、グリニッジ平均恒星時を計算して、フォームに表示するプログラムを使ってみましょう。

 

Calsat32TimeTg.zipをダウンロードして、解凍してください。

 

 解凍したフォルダに含まれる"Calsat32TimeTg.exe"を起動して、「 グリニッジ平均恒星時の計算ボタン」を押すとつぎのようなフォームが表示されます。

 

 

 また、"Calsat32TimeTg.vbp"をクリックすると Visual BASIC が起動して、つぎのコードを見ることができます。

Private Sub Command1_Click()

Dim intY As Integer, intM As Integer, intD As Integer, dblCmjd As Double
Dim dblLt As Double, dblTu As Double
Dim dblTg0 As Double, dblTg As Double


'計算するMJDの設定
    intY = Val(Text1.Text)
    intM = Val(Text2.Text)
    intD = Val(Text3.Text)
    Call YMD2MJD(intY, intM, intD, dblCmjd)
    dblCmjd = dblCmjd + (Val(Text4.Text) * 3600# + Val(Text5.Text) * 60# + Val(Text6.Text)) / 86400#

'グリニッジ平均恒星時の計算
    dblLt = dblCmjd - Int(dblCmjd)
    dblTu = Int(dblCmjd) - 15019.5
    dblTu = dblTu / 36525#
    dblTg0 = (23925.836 + 8640184.542 * dblTu + 0.0929 * dblTu ^ 2#) / 86400#
    dblTg0 = dblTg0 - Int(dblTg0)
    dblTg = dblTg0 + dblLt + dblLt * 0.00273791
    dblTg = (dblTg - Int(dblTg)) * 86400#

'結果の表示
    Cls
    Print "グリニッジ平均恒星時は、"
    dblTg = dblTg / 3600#
    Print Format(Int(dblTg), " ##h");
    dblTg = (dblTg - Int(dblTg)) * 60#
    Print Format(Int(dblTg), " ##m");
    dblTg = (dblTg - Int(dblTg)) * 60#
    Print Format(dblTg, " ##.#s")
    Print "です。"
End Sub
 


Sub YMD2MJD(intY As Integer, intM As Integer, intD As Integer, dblMjd As Double)

Dim vntDate As Variant
Dim dblDate As Double

'年月日をMJDに変換
    vntDate = DateSerial(intY, intM, intD)
    dblDate = vntDate
    dblMjd = dblDate + 15018#

End Sub

 

 CALSAT32では日付と時刻の取り扱いはMJDと呼ばれる表記を使っています。 MJDを使うことで日時を連続的に扱うことができるためとても便利なものです。 しかし、必要に応じて、MJDと年月日時分秒との間で相互に変換が必要になります。 サブルーチン YMD2MJD は年月日からMJDに変換するものです。

 

   テキストボックスには、2002年3月19日0時0分0秒がセットされていますが、日時を変更して計算してみましょう。

 

 ここでの平均恒星時の計算には古い計算方式を示していますが、1984年からは新しい定義が改訂されています。 CALSAT32では古い計算方式を使っていますが、その誤差は1秒以内と小さなものです。 将来のバージョンでは改訂したいと思っています。 また、CALSAT32では太陽の位置も計算しているため、歴表時(力学時)についての考慮も行っています。 歴表時(力学時)と世界時の間には2000年の時点で約64秒の差があり、その変化は計算からは求められないものです。 CALSAT32の最新版では64秒を設定してありますが、必要に応じて改訂します。 (CALSAT32 Ver 1.1.6 から MYQTH.TXT に設定することができるようになりました。)

 

 

 恒星時、原子時、協定世界時、日本標準時の関係が理解できたと思います。 グリニッジ平均恒星時を求めることで、地球の向きを知ることができるのです。 何気なく使っている時刻も、精密な天文観測、正確な原子時計、いろいろな約束事から決められているのです。  また、時刻の重要性についても理解していただけたのではないかと思います。 CALSAT32ではパソコンの内蔵時計を基準に計算しているので、そのずれが計算精度低下につながります。 パソコンもインターネットに常時接続する環境が広まっているので、NTPなどを使ってパソコンの時計を常に正確に合わせておくようにすると良いでしょう。 WindowsXPにはこの機能が標準で装備されていますし、フリーの時計表示ソフトにもこの機能を持っているものが多くあります。