移動ルートとしての軌道

ここまで目的地としての軌道について説明をしてきました。ここからは目的地に向かうための「移動ルートとしての軌道」の話をしていきます。

ある初期の軌道から目的の軌道に向かうためには、その2種類の軌道両方と交わる(=位置が一致する)ような軌道を移動ルートとして選べば良いということになります。

「初期の軌道」から「移動ルートとしての軌道」への変更
そして,「初期の軌道」と「移動ルートとしての軌道」が交わる位置で速度を変更すれば、「移動ルートとしての軌道」に乗り換えることが可能となります。ここで、速度の変更量はΔV(デルタブイ)と呼ばれています。ΔVは速度(ベクトル)の差で計算できます。
そして、「移動ルートとしての軌道」と「目的の軌道」が交わるところで、再び速度を変更することで、目標の軌道に到達することができます。
このような移動ルートとして選べる軌道は、通常、複数通り存在します。そのため、その複数通り存在する移動ルートの中から、ミッションを遂行する上でベストな軌道を選ぶことが求められます。これが私の専門でもある「軌道最適化」です。
どのような観点でベストな軌道を選ぶかはミッションによって様々ですが、ロケットや宇宙機の燃料消費量が少なくなるような軌道を選ぶ場合が多いです。
軌道変更にともなう燃料消費量の計算
ロケットの燃料消費量は「ツィオルコフスキーのロケット方程式」を用いて計算することができます。ツィオルコフスキーのロケット方程式の導出は様々な教科書に紹介されているので、ここでは割愛します。

有効排気速度はロケットの性能を表す量であり、大きければ大きいほど効率的です。例えば、固体ロケットであれば2.45km/s程度、液体ロケットであれば3.43km/s程度、はやぶさ等で有名となったイオンエンジンであれば29.4km/s程度です!いかにwの大きなロケットを開発するかが、ロケット推進の研究者の研究課題の一つとなっています。
では、Jupyterノートブックを使って、ロケットが運べる質量を計算してみましょう。LEOから深宇宙空間へギリギリ脱出するためには、約3.3km/sのΔVが必要です(第二宇宙速度11.2km/sと第一宇宙速度7.9km/sの差で計算できる)。初期質量1000kgの液体ロケットを仮定して、LEOから深宇宙まで運べる質量を計算してみましょう。
import numpy as np
dv = 3.3 # LEOから深宇宙へのΔV,km/s
w = 3.43 # 液体ロケットの有効排気速度,km/s
m0 = 1000 # 初期質量, kg
mf = m0*np.exp(-dv/w)
print(mf)

これはつまり、1000kgの液体ロケットで運んだ場合、約6割の618kg(1000kg – 382kg)は燃料として消えてしまうということです!この残った質量382kgにはロケット推進のハードウェア、タンク、それらを支える構造等も含んでいるので、注意が必要です。ΔVの大きさ・wの大きさが、いかに大切かが分かっていただけましたでしょうか。
それでは、ΔVの計算するための手法をいくつか紹介します。ただし、実際のΔVの計算は非常に奥深いため、今回は入門編になります。より詳しく勉強したい方は、書籍などを参照してください。以下では、全て二体問題を仮定します。
ホーマン遷移軌道
初期の軌道と目的の軌道が共に同一平面の円軌道であるとき、ΔV最小の遷移軌道として、「ホーマン遷移軌道(Hohmann Transfer Orbit)」という軌道が知られています。

ホーマン遷移軌道は、内側の円軌道上に近点が、外側の円軌道上に遠点があるような楕円軌道です。
なぜホーマン遷移軌道がΔV最小になるかを直感的に説明すると、衛星が進行方向にΔVを与えた方が効率的であるためです。ホーマン遷移軌道によらず、速度方向にΔVを出すと効率的に遷移できることが多いです。
楕円の近点半径をrp、遠点半径をraとしたとき、楕円の近点・遠点での速度は以下の式で計算できます。

なお、この式は楕円軌道が近点と遠点でエネルギー・角運動量が保存されるという以下の関係式から導かれます。

では、低軌道(軌道半径6778km)から静止軌道(軌道半径42164km)へ遷移するために必要なΔVをJupyterノートブックで計算してみましょう。
import numpy as np
# 計算条件
GM = 398600.4354360959 # 地球の重力定数, km3/s2
rp = 6778 # LEOの軌道半径, km
ra = 42164 # GEOの軌道半径, km
# LEOの軌道速度とGEOの軌道速度
v_LEO = np.sqrt(GM/rp)np.sqrt(2rp/(rp+rp)) # 円軌道なので近点半径・遠点半径共にrp
v_GEO = np.sqrt(GM/ra)np.sqrt(2ra/(ra+ra)) # 円軌道なので近点半径・遠点半径共にra
# ホーマン遷移軌道の速度
vp = np.sqrt(GM/rp)np.sqrt(2ra/(rp+ra))
va = np.sqrt(GM/ra)np.sqrt(2rp/(rp+ra))
# ΔV計算
dv1 = vp-v_LEO
dv2 = v_GEO-va
print(dv1, dv2)

このような低軌道からGEOへの遷移軌道は静止トランスファ軌道(Geostationary Transfer Orbit: GTO)と呼ばれています。ここで計算されたΔV1は通常ロケット側で、ΔV2は衛星側で出すように設計することが多いです。衛星側で必要なΔV2=1.46km/sを出すために、どのくらいの燃料が必要かはロケット方程式で計算してみてもらえればと思います。
ランベール問題
ホーマン遷移軌道は、「初期の軌道と目的の軌道が共に同一平面の円軌道であるとき」という条件の元で成立していました。しかし、実際の軌道の多くは、同一平面でも、円軌道でもないことが多いです。
一般的な軌道間遷移計算の方法として、専門家の間でも広く使われている手法に「ランベール問題(Lambert’s Problem)」の解法があります。
ランベール問題の理論的な説明には何時間もの時間を要するため、ここではその結果のみを紹介します。ランベール問題は、初期の位置、終端の位置、そして、その遷移時間が与えられたときに、初期の速度、終端の速度を計算するという問題です。
ランベール問題の入出力関係
入力 | 出力 |
初期の位置 終端の位置 遷移時間 | 初期の速度 終端の速度 |

では、Jupyterノートブックを利用して、ランベール問題を解いてみましょう。pykepが必要なので、もしインストールされていなければ、改めてインストールが必要です。
import pykep as pk
import numpy as np
# 計算条件
# 注意: r1ベクトルとr2ベクトルが同一直線上に来る場合は,Lambert問題を
# 一意に解くことができないので,少しずらしている
GM = 398600.4354360959 # 地球の重力定数, km3/s2
r1 = np.array([0.01, -6778.0, 0.0]) # LEO上の位置, km
r2 = np.array([0.01, 42164.0, 0.0]) # GEO上の位置, km
tof = 19048.4026989538 # GTO半周分の時間, s
# Lambert問題を解く
l = pk.lambert_problem(r1 = r1, r2 = r2, tof = tof, mu = GM)
# ΔVの計算
v_LEO = np.sqrt(GM/6778.0) # LEOの速度, km/s
v_GEO = np.sqrt(GM/42164.0) # GEOの速度, km/s
v1 = l.get_v1()[0] # Lambert問題から計算された初期の速度
v2 = l.get_v2()[0] # Lambert問題から計算された終端の速度
dv1 = abs(v1[0]) - v_LEO
dv2 = v_GEO - abs(v2[0])
print(dv1, dv2)

ホーマン遷移軌道で計算したものとほとんど同じ結果が得られたでしょうか?ランベール問題を解くことで、より一般的な遷移軌道を計算することが可能になります。ここで、ランベール問題は初期の軌道から目標の軌道への”最適な”遷移軌道を計算するものではないということに注意してください。最適な遷移軌道を計算するためには、初期の位置、終端の位置、遷移時間を変えながら、軌道を探索する必要があります。
ランベール問題はJAXAの火星衛星探査計画MMXの地球=火星間軌道遷移にも用いられているます。ただし、地球や火星等の重力天体を扱う場合、重力天体近傍で軌道が曲げられる効果を考えなければいけません。このような問題を扱うために、「パッチドコニックス」というアプローチが使われることが多いです。
