衛星の速度とSA

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

衛星は「どっちを向いて」「どの方向に」「どんな速度で」飛んでいるのか 

 もう一度、衛星の軌道面に戻ってみましょう。 軌道面での衛星の位置については理解したところですが、「どの方向に」「どんな速度で」を表すのが速度ベクトルです。 また、衛星に指向性アンテナが搭載されている場合にはその指向性が地球を向いている必要があります。 その場合、衛星の姿勢(アンテナの向き)が、観測点からの衛星の視線方向に一致していることが望ましいわけですが、そのずれ具合を示すものがSA(スクイント・アングル)と呼ばれる角度です。 この2つの値は、衛星の軌道面で速度ベクトルと方向ベクトルという形であらかじめ求めておいて、これまでに説明した座標回転を位置ベクトルと同様に行い、観測点からみた値に変換します。

 スクイント・アングルから考えましょう。 ここで、衛星の姿勢を示す基準軸を決める必要があります。 たとえば、衛星の姿勢を安定させるために自ら回転(スピン)しているスピン安定型衛星では、この回転軸を基準にします。 また、衛星が回転していなくてもアンテナの指向性の方向を基準軸としてもよいでしょう。 また 、基準軸の方向をあらわすために地球の中心から衛星軌道面の近地点を見た方向を経度0度(ALON=0)とし、0から360度の値をとります。 さらに、基準軸が軌道面に一致するときを緯度0度(ALAT=0)とし、+90度から−90度の値をとります。  これらは、(ALON=300/ALAT=10)の ような形で与えられ、大きさを持たない方向だけの情報です。 CALSAT32では単位ベクトル(Xak、Yak、Zak)として扱い、軌道面のXY座標にZ軸を加えて表現し、座標変換し ています。

Xak = Cos Alon * Cos Alat
Yak = Sin Alon  * Cos Alat
Zak = Sin Alat

 観測点の位置が変わればスクイントアングルの値も異なったものになります。 

 速度ベクトルは、衛星通信にとって重要なものです。 電波は1秒間に30万kmしか進めません。 通常この速度を気にすることはないのですが、衛星通信では衛星自体が毎秒数kmの速度で移動しているため無視できなくなってきます。 また、私たちは回転する地球の上にいるため宇宙から見ると自転とともに速度を持って移動しています。 これらの影響は、ドップラーシフトとなって現れることはご存じのとおりです。 衛星の速度は軌道長半径が小さいと速く、大きくなると遅くなります。 さらに離心率が0であれば一定ですが、0で無い場合には近地点で速く、遠地点で遅くなります。 ここで、衛星の動径 Rk軌道長半径 a地球重力定数 Ge とすれば、軌道接線方向の衛星速度 Sk は、つぎのようになります。

Sk = ( Ge * ( 2 / Rk - 1 / a )) ^ 0.5 

 Rkを求めるためには、ケプラーの方程式を解かなくてはなりませんが、後にあるプログラムで確認してください。

 それでは、軌道長半径をテキストボックスに、離心率と平均近点角をスライダーから与え、衛星の速度を計算して表示するプログラムを使ってみましょう。

 

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

 

 解凍したフォルダに含まれる"Calsat32Velocity.exe"を起動 すると、つぎのようなフォームが表示されます。

 

 

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

 

Private Sub Form_Load()
    Call disp
End Sub

Private Sub Form_Unload(Cancel As Integer)
    End
End Sub

Private Sub Slider1_Change()   
    Call disp
End Sub

Private Sub Slider2_Change()
    Call disp
End Sub

Private Sub Text1_Change()
    Call disp
End Sub

 

 

Sub disp()

    Dim dblMk As Double, dblEc As Double, dblEk As Double
    Dim TanVk As Double, dblVk As Double, dblE As Double
    Dim dblRk As Double, dblSk As Double, dblTanVk As Double
    Dim dblPi As Double, dblA As Double, dblGe As Double

'定数の設定
    dblPi = 4# * Atn(1#)
    dblGe = 398600500000000#

'変数の読み込み
    dblMk = Val(Form1.Slider2.Value) / 256# * 2# * dblPi
    Form1.Label11.Caption = Form1.Slider2.Value
    dblE = Val(Form1.Slider1.Value) / 100#
    Form1.Label10.Caption = Format(dblE, "0.###")
    dblA = Val(Form1.Text1.Text) * 1000#

'衛星軌道面の離心近点角の計算 dblEk (rad)
    dblEc = dblMk + dblE * Sin(dblMk)
Loop1:
    dblEk = dblMk + dblE * Sin(dblEc)
    If Abs(dblEc - dblEk) > 0.000000000001 Then
        dblEc = dblEk
        GoTo Loop1
    End If

'衛星軌道面の真近点角の計算 dblVk (rad)
    dblTanVk = (1# - dblE ^ 2#) ^ 0.5 * Sin(dblEk) / (Cos(dblEk) - dblE)
    dblVk = Atn(dblTanVk)
    If (Cos(dblEk) - dblE) < 0# Then
        dblVk = dblVk + dblPi
    End If
    If dblVk < 0# Then
        dblVk = 2# * dblPi + dblVk
    End If

'衛星軌道面の動径の計算 dblRk (m)
    dblRk = dblA * (1# - dblE * Cos(dblEk))

'衛星の軌道接線方向速度の計算 dblSk (m/s)
    dblSk = (dblGe * (2# / dblRk - 1# / dblA)) ^ 0.5

'計算結果の表示
    Form1.Label2.Caption = Format(dblSk, "##,###")

End Sub

 

 実際の衛星の軌道長半径は、地球 の赤道半径+大気の厚み以上になりますが、計算上では重心には大きさが0の地球質量があることになっているので、それ以下の値もセットすることができます。 離心率を0以外にすると平均近点角(0〜256)の変化にともなって速度が変化する様子を見ることができます。 実際の衛星の値にセットして試してみると実感がわくかもしれません。

 

 ここでは衛星の位置だけでなく、動きや向きについて理解できましたか。 観測点からの相対速度やスクイント・アングルを求めるためには、さらに座標回転などが必要にな りますが、これまでの知識を駆使すれば導くことができます。 また、相対速度からドップラーシフトは簡単に計算することができます。