衛星の軌道要素

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

軌道要素はその瞬間の衛星の位置と軌道の形

 衛星の位置を計算するために必要な情報は軌道要素と呼ばれ、CALSAT32ではNASA 2 Line フォーマットと呼ばれるものを利用しています。 この情報はCQ誌やJAMSATのホームページなどから入手することができます。 実際には衛星名1行と軌道要素2行の3行で一つの衛星の情報になります。 つぎの軌道要素は、AO−10と呼ばれる衛星のものです。

 

AO-10
1 14129U 83058B   02022.99297787 -.00000144  00000-0  10000-3 0 08594

2 14129 025.9725 231.4179 6063850 218.5945 076.6418 02.05869739139978

 

 

 CALSAT32では、表示画面にある衛星名部分をダブルクリックすると、計算に使っている軌道要素を表示することができます。

 

 表示画面の例としては、つぎのようになります。

 

 CALSAT32では多くの衛星の軌道要素を "ELEM.TXT" という名前のファイルに設定しています。 ここで、このファイルの先頭に記述されている衛星の軌道要素を読み込み、フォームに表示するプログラムを使ってみましょう。

 

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

 

 解凍したフォルダに含まれる"Calsat32Elem.exe"を起動して、「ELEM.TXTを読むボタン」を押すとつぎのような フォームが表示されます。

 

 

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

Private Sub Command1_Click()
Dim intI As Integer
Dim strElem(3) As String
Dim intFile As Integer
Dim strStName As String, dblStElem(10) As Double, lngStRev As Long


'ELEM.TXTをオープンする
    intFile = FreeFile
    Open "ELEM.TXT" For Input As #intFile


'軌道要素を読み込み
    For intI = 1 To 3
        Line Input #intFile, strElem(intI)
    Next intI


'要素毎に分ける
    strStName = Trim(strElem(1))                              '衛星名
    dblStElem(1) = Val(Mid$(strElem(2), 19, 2)) + 2000        '元期 年
    dblStElem(2) = Val(Mid$(strElem(2), 21, 12))              '元期 通算日
    dblStElem(3) = Val(Mid$(strElem(3), 9, 8))                '軌道傾斜角
    dblStElem(4) = Val(Mid$(strElem(3), 18, 8))               '昇交点赤経
    dblStElem(5) = Val("0." + Mid$(strElem(3), 27, 7))        '離心率
    dblStElem(6) = Val(Mid$(strElem(3), 35, 8))               '近地点引数
    dblStElem(7) = Val(Mid$(strElem(3), 44, 8))               '平均近点離角
    dblStElem(8) = Val(Mid$(strElem(3), 53, 11))              '平均運動
    dblStElem(9) = Val(Mid$(strElem(2), 34, 10))              '平均運動の変化
    lngStRev = Val(Mid$(strElem(3), 64, 5))                   '周回番号

'ELEM.TXTをクローズ
    Close

'確認の表示
    Cls
    Print strStName
    Print dblStElem(1)
    Print dblStElem(2)
    Print dblStElem(3)
    Print dblStElem(4)
    Print dblStElem(5)
    Print dblStElem(6)
    Print dblStElem(7)
    Print dblStElem(8)
    Print dblStElem(9)
    Print lngStRev

End Sub

 以下に、軌道要素の各行の各カラムの意味を示します。

 (プログラムと比較しながら見るとわかりやすいと思います。)

 

 

1行目

            1         2         3         4         5         6

123456789012345678901234567890123456789012345678901234567890123456789

a bbbbb  ccdddeee ffgggggggggggg hhhhhhhhhh iiiiiiii jjjjjjjj   kkkkl

 

2行目

123456789012345678901234567890123456789012345678901234567890123456789

m nnnnn oooooooo pppppppp qqqqqqq rrrrrrrr ssssssss tttttttttttuuuuuv

 

   a: 行番号                             m: 行番号

   b: 衛星識別番号                       n: 衛星識別番号

   c: 打ち上げた年(西暦の下2桁)       o: 軌道傾斜角

   d: 打ち上げの通し番号                 p: 昇交点赤経

   e: 同時打ち上げ衛星の識別             q: 離心率

   f: 元期 年(西暦の下2桁)           r: 近地点引数

   g: 元期 通日で表示                   s: 平均近点離角

   h: 摂動1                             t: 平均運動

   i: 摂道2                             u: 周回番号

   j: 摂道3                             v: チェックサム

   k: エレメント番号

   l: チェックサム

 

 

 

a: 行番号

 1行目を示す"1"が入ります。 CALSAT32では利用していません。

 

b: 衛星識別番号

 衛星固有の識別番号です。 CALSAT32では利用していません。

 

c: 打ち上げた年(西暦の下2桁)

d: 打ち上げの通し番号

e: 同時打ち上げ衛星の識別

 1983年の58番目に打ち上げられ、少なくてもAとBの2個以上の衛星が同時に打ち上げられていることがわかります。 CALSAT32では利用していません。

 

f: 元期 年(西暦の下2桁)

g: 元期 通日で表示

 いつの軌道要素かを示す日時で、2002年の1月22日+.99297787日を示します。 時刻はUTC0時から.99297787*86400秒経過した時刻で23時49分53秒となります。

 

h: 摂動1

 後にあるt:平均運動の変化率を表します。

 

i: 摂道2

j: 摂道3

k: エレメント番号

l: チェックサム

 CALSAT32では利用していません。

 

m: 行番号

n: 衛星識別番号

 a,bと同様です。 CALSAT32では利用していません。

 

o: 軌道傾斜角

 衛星の軌道平面と地球の赤道面が交わる角度です。 軌道傾斜角が0度であれば赤道上空だけを移動する衛星になり、高緯度の地域からは利用できません。 一方、軌道傾斜角が90度もしくは近い値の軌道は極軌道と呼ばれ 、毎周回ごとに北極と南極の上空を通過し、数日間で地球全体をカバーします。

 

p: 昇交点赤経

 春分点の方向から赤道面に沿って東側に、軌道面と赤道面が交わる地球重心を通る直線で地球重心からみて人工衛星が南から北側に横切る点の方向(昇交点)までの角度です。

 

q: 離心率

 軌道の楕円の形を表し、完全な円軌道では0となります。 楕円の長半径をa、短半径をbとすると離心率eは、

  e=(1−b^2/a^2)^0.5 で表すことができます。(^はべき乗)

 

 aは衛星の平均運動n回/日から求めることができ、つぎの関係があります。

  a^3=GE/n^2

  (ここで、地心重力定数GEは、3.986005e+14)

 

   書き直すと、

    a(km)= 42241.09773/n^(2/3)

 

 ここで、平均運動から長半径を求めて、フォームに表示するプログラムを使ってみましょう。

 

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

 

 解凍したフォルダに含まれる"Calsat32Semi-majoraxis.exe"を起動して、「長半径を計算ボタン」を押すとつぎのような フォームが表示されます。

 

 

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

 

Private Sub Command1_Click()

Dim dblN As Double, dblA As Double

'テキストボックスから1日の周回数を取得する
    dblN = Val(Text1.Text)

'軌道長半径 dblA (km)を計算する
dblA = 42241.09773 / dblN ^ (2# / 3#)
   
'結果を出力
    Cls
    Print "軌道長半径は、"
    Print dblA; "(km)"
    Print "です。"

End Sub

 

 あらかじめ、テキストボックスには "1.0" が設定されています。この場合には静止衛星と同じ周期になります。なお、静止衛星では地球重心からの距離になります。

 

 テキストボックスの数値を変えて実験すると、周回数の多い衛星ほど長半径が小さくなることがわかります。 また、0.035周/日程度にすると、月の距離に近い値になることがわかります。

 

 

r: 近地点引数

 昇交点から軌道面の衛星の軌道に沿って 、衛星が重心に一番近づく点(近地点)までの角度を表します。 近地点引数と軌道傾斜角の値から 地心赤道直交座標に変換することができます。

 

 

s: 平均近点離角

 完全な円軌道の衛星では円の中心から見ると衛星は一定の角速度で運動することになりますが、実際の衛星では楕円となってその運動速度は近地点付近では平均速度に比べると早くなり、遠地点では遅くなります。 平均近点 離角は長半径から決まる平均的な角速度で衛星が動いたと仮定した場合における近地点からの角度で、想像上の角度です。 計算では 0〜360度で扱いますが、一般的には Mean Anomaly (MA)と呼ばれ 0〜256(0) で表示します。 アマチュア衛星では MA の値によって中継器の運用切り替えが行われたりするため、運用上必要になります。 平均近点離角と平均運動と元期から、衛星の軌道平面での位置を求めることができます。

 

 

t: 平均運動

 衛星が軌道上を1日に何周するかを示します。 軌道の長半径から決まり、その関係は離心率のところに書いたとおりです。 

 

 

u: 周回番号

 衛星が打ち上げられてから軌道上を何周したかの積算値です。 低い軌道の衛星ほど周期が短いので、速く増加します。

 

 

v: チェックサム

 CALSAT32では利用していません。

 

 

 なお、軌道要素はできるだけ新しいものを使うようにしてください。 CALSAT32では面倒な軌道要素の更新機能を持っています。 これはAMSATのサイトに接続して、軌道要素が掲載されているページから軌道要素をダウンロードし、ELEM.TXT を書き換えます。 軌道要素は毎週金曜日頃に新しいものが掲載されるので、時々更新するようにしてください。 

 

 

 軌道要素について、その意味を理解いただけたでしょうか。 実際には軌道要素の個々の数値を見ても、自分の位置から衛星がどの方向に見えるかを想像するとは困難なことですが、平均運動と離心率からだいたいの軌道の形が想像できるようになれば、 わかっている人の域に近づいているかもしれません。