
ホーマン遷移軌道をPythonで計算する|衛星を別の軌道へ運ぶΔv
2026-09-11 ・ 実践
打ち上げた衛星を、低軌道から静止軌道など別の軌道へ運ぶ——そのいちばん燃料効率のよい方法がホーマン遷移軌道です。この記事ではPythonで、低軌道(LEO)から静止軌道(GEO)への遷移に必要な速度変化(Δv)を計算します。軌道速度の続きとして、軌道を"乗り換える"数字を掴みます。
しくみ: 2回の噴射で乗り換える
ホーマン遷移は、内側の円軌道と外側の円軌道に接する楕円軌道を経由します。
- 出発点で加速(1回目の噴射)→ 楕円軌道に乗る
- 楕円の遠い側(目標高度)で再び加速(2回目の噴射)→ 外側の円軌道に乗る
この2回のΔvの合計が、遷移に必要な"燃料の量"に直結します。
2回の噴射で軌道を上げる
噴射1
楕円軌道へ
惰性
楕円を半周
噴射2
外側の円へ
準備
pip install numpy
① ホーマン遷移のΔvを計算する
出発・到着それぞれの円軌道速度と、楕円軌道の速度の差からΔvを求めます。
import numpy as np
GM = 3.986e14
R_earth = 6.371e6
def hohmann(alt1_km, alt2_km):
r1 = R_earth + alt1_km * 1000
r2 = R_earth + alt2_km * 1000
a = (r1 + r2) / 2 # 遷移楕円の長半径
v1 = np.sqrt(GM / r1) # 出発の円軌道速度
v2 = np.sqrt(GM / r2) # 到着の円軌道速度
v_peri = np.sqrt(GM * (2/r1 - 1/a)) # 楕円の近地点速度
v_apo = np.sqrt(GM * (2/r2 - 1/a)) # 楕円の遠地点速度
dv1 = v_peri - v1 # 1回目の噴射
dv2 = v2 - v_apo # 2回目の噴射
return dv1, dv2, dv1 + dv2
dv1, dv2, total = hohmann(400, 35786) # LEO(400km) → GEO(静止軌道)
print(f"1回目Δv: {dv1:.0f} m/s")
print(f"2回目Δv: {dv2:.0f} m/s")
print(f"合計Δv : {total:.0f} m/s")
出力はおおよそ:
1回目Δv: 2399 m/s
2回目Δv: 1457 m/s
合計Δv : 3857 m/s
LEOからGEOへ運ぶのに合計 約3.9 km/s のΔvが必要、とわかりました。この値にロケット方程式を当てはめれば、必要な燃料が計算できます。
遷移にかかる時間も出せる
遷移楕円を半周する時間が到着までの飛行時間です。T_transfer = π * sqrt(a³/GM) で計算でき、LEO→GEOなら約5時間半。a から求めて確かめてみてください。軌道の乗り換えは"時間もコスト"です。
② なぜ「いちばん省エネ」なのか
ホーマン遷移は、2回の噴射で軌道を上げる方法の中でΔvが最小になることが知られています(同一平面・円→円の場合)。だから燃料が限られる宇宙機の定番です。
速さと燃費はトレードオフ
もっと速く着きたいなら、より多くのΔv(燃料)を使う別の遷移もあります。ホーマンは「いちばん省エネだが、いちばん急ぎではない」。ミッションによって、燃料を取るか時間を取るかを選びます。
③ 目的地を変えて試す
for name, alt in [("ISS高度", 400), ("中軌道", 10000), ("静止軌道", 35786)]:
_, _, total = hohmann(400, alt)
print(f"400km → {name}({alt}km): 合計Δv {total:.0f} m/s")
行き先が遠いほど合計Δvが増えます。軌道を大きく変えるほど燃料が要る——衛星の軌道計画がなぜ綿密なのか、数字で腑に落ちます。
まとめ
- ホーマン遷移=内外の円軌道に接する楕円を経由し、2回の噴射で乗り換える
- LEO(400km)→GEO(静止軌道)は合計 約3.9 km/s のΔvが必要
- 同一平面・円→円ではΔv最小。省エネだが時間はかかる
- 行き先が遠いほどΔv(燃料)が増える
もう少し詳しく(背景と理論)
ホーマン遷移は Walter Hohmann が1925年に示した、2つの円軌道を結ぶ最小エネルギーの2インパルス遷移です1。低い軌道の一点で加速して遷移楕円に乗り、半周後の遠点で再加速して高い軌道へ円化します。各噴射量はビス・ビバ方程式から計算できます。2回の噴射で済む点が効率的ですが、時間がかかる(遷移楕円の半周ぶん)トレードオフがあります2。なお軌道半径比が約11.94倍を超える極端なケースでは、いったん遠くへ膨らませるバイエリプティック遷移の方が総Δvが小さくなることが知られています3。実際の惑星間航行では、これに打ち上げウィンドウの制約が加わります。
次の一歩 🌸
前提となる軌道速度は軌道速度をPythonで計算、Δvから燃料へはロケット方程式をPythonで解く、軌道の種類は軌道の種類へどうぞ。