比推力 (Specific Impulse) と推進剤性能の物理 — 化学・電気推進のエネルギー論

サターンV第二段はなぜケロシンではなく液体水素を燃料に選んだのでしょうか。同じ酸素と燃焼させても、なぜ水素は推進剤として「最強」と呼ばれ、その代わり巨大な断熱タンクを必要とするのでしょうか。一方、月探査機SMART-1や火星探査機Dawnが使ったキセノンを推進剤とするイオン・ホール推進機は、燃料1kgあたりの性能では化学ロケットを軽く10倍以上凌駕しますが、推力はテーブルの上に1円玉を浮かせる程度しかありません。同じ「ロケット」という言葉で括られながら、これらの性能差は3桁にも及びます。この違いを定量的に理解するための物理量が 比推力(Specific Impulse, $I_{sp}$) です。

比推力は単なる効率の指標ではありません。ツィオルコフスキーのロケット方程式 $\Delta v = v_e \ln(m_0/m_f)$ の中で、$\Delta v$ を稼ぐ「為替レート」そのものです。$I_{sp}$ が2倍になれば、同じ$\Delta v$を達成するのに必要な推進剤質量比は指数関数的に有利になります。逆に推力を稼ぎたいなら、低$I_{sp}$でも大流量の推進剤を吐き出す必要があります。この推力と$I_{sp}$のトレードオフこそ、ロケット工学と探査機ミッション設計の中心命題です。

身近な応用先を挙げると、まず打上げロケット——重力に打ち勝つために高推力(よって低中$I_{sp}$)の化学推進が必須です。次に深宇宙探査機——巡航中の$\Delta v$稼ぎに、低推力でも高$I_{sp}$の電気推進が用いられます。さらに月・火星有人ミッションでは、核熱推進(NTP)が化学推進の倍の$I_{sp}$で輸送時間と必要推進剤を劇的に減らせる可能性があり、各国が研究を加速しています。衛星の軌道保持でも、長寿命と最小推進剤で運用するため電気推進への移行が急速に進んでいます。

本記事の内容

  • 比推力の定義 $I_{sp} = v_e / g_0$ の物理的意味と単位「秒」の直感
  • ノズル理論からの $v_e \propto \sqrt{T_c / M}$ 導出 — なぜ温度と分子量がすべてを決めるか
  • LH2/LOX, RP-1/LOX, MMH/N2O4 など実推進剤の$I_{sp}$比較と「水素最強」の理由
  • 化学・電気・核熱推進のエネルギー論的限界と$I_{sp}$ランキング
  • 推力と$I_{sp}$のトレードオフ — ロケット方程式から導くミッション最適推進方式
  • Pythonで推進剤データベースを構築し、Tc–M平面上での$I_{sp}$等高線・最適推進方式選択チャートを描画

前提知識

この記事を読む前に、以下の記事を読んでおくと理解が深まります。

直感: 同じ1kgの燃料でも性能はなぜ違うか

「1kgの燃料」と一口に言っても、その1kgが生み出せる$\Delta v$は推進方式によって天と地ほど違います。たとえば、ある衛星に同じ100kgの推進剤を積んだとしましょう。

化学推進(ヒドラジン、$I_{sp} \approx 220$秒)なら、衛星に与えられる$\Delta v$は数百m/s程度。これは地球周回軌道で軌道高度を数十km上げる程度の能力です。同じ100kgでもキセノンを使うホール推進機($I_{sp} \approx 1600$秒)なら、$\Delta v$は数km/sに達します。月遷移軌道どころか、火星遷移軌道に乗せるのに十分な能力です。同じ質量の推進剤で、得られる速度変化が1桁違う——この差は一体どこから来るのでしょうか。

直感を整える鍵は、ロケットが運動量保存で動くという基本原理です。ロケットは「燃やしたガスを後ろに吐き出した反動」で前進します。ニュートンの第3法則のとおり、吐き出した質量×速度の運動量を受け取って、自分が反対方向に同じ運動量を得ます。

ということは、性能を決めるのは「吐き出した推進剤質量×排気速度」です。同じ1kgを吐き出すなら、排気速度 $v_e$ が大きいほどたくさんの運動量を得られます。逆に同じ運動量を得るなら、$v_e$ が大きいほど少ない推進剤で済みます。ロケットの性能は本質的に「排気速度」で決まる——これが直感の核心です。

排気速度を上げるには、推進剤にエネルギーを叩き込み、それを運動エネルギーに変換する必要があります。化学推進ではこのエネルギー源が燃焼の化学エネルギーに限られる一方、電気推進では外部の電力(太陽電池や原子炉)を使うので、原理的に化学を超える排気速度を狙えます。この「エネルギー源の違い」が、$I_{sp}$ の3桁差を生む根源です。

では、排気速度 $v_e$ を物理量として正面から定義し、それが燃焼温度や分子量とどう結びつくかを次節以降で見ていきましょう。

比推力の定義と物理的意味

推力の運動量論的表現

ロケットエンジンが生み出す推力 $F$ は、運動量保存から次のように書けます。推進剤を質量流量 $\dot{m}$ [kg/s] で噴射し、ノズル出口での平均排気速度を $v_e$ [m/s] とすれば、

$$ F = \dot{m}\, v_e $$

これは、毎秒 $\dot{m}$ kgの推進剤を $v_e$ m/s で後ろに投げ捨てると、運動量保存の反作用としてロケット本体は前方に $\dot{m} v_e$ の力(=単位時間あたりの運動量変化)を受ける、という関係です。厳密にはノズル出口圧と周囲圧の差から来る圧力推力項も加わりますが、ここでは速度項が支配的な場合の本質形だけ示しました。

比推力の定義

比推力 $I_{sp}$ は、推力 $F$ を「単位重量あたりの推進剤消費」で割って定義されます。

$$ \boxed{\,I_{sp} = \frac{F}{\dot{m}\, g_0} = \frac{v_e}{g_0}\,} $$

ここで $g_0 = 9.80665~\text{m/s}^2$ は標準重力加速度です。分子の単位は[N]=[kg·m/s²]、分母の単位は[kg/s]×[m/s²]=[N/s] なので、$I_{sp}$ の単位は[秒]になります。

「比推力の単位は秒です」と言われると一瞬戸惑いますが、物理的な意味は明快です。$I_{sp}$ 秒は、「単位重量(1ニュートン分)の推進剤を使って1ニュートンの推力を維持できる時間」 を表します。地表で1kgの推進剤は$g_0 \cdot 1 = 9.8$ Nの重量を持ちますから、「1kgの推進剤を使ってどれだけの推力をどれだけの時間維持できるか」の正規化された指標と読むこともできます。

なぜ「秒」という単位なのか

歴史的事情も込めて言えば、$g_0$ で割る習慣はもともと「単位質量あたり」ではなく「単位重量あたり」で性能を測ろうとした名残です。SI単位系では $v_e$ をそのまま m/s で表現するのが自然ですが、慣習的に $I_{sp}$ が広く使われています。

両者の換算は単純に $v_e = I_{sp} \cdot g_0$ です。例えば $I_{sp} = 450$ 秒なら $v_e = 450 \times 9.81 \approx 4400$ m/s ≈ 4.4 km/s。$I_{sp} = 3000$ 秒のホール推進機なら $v_e \approx 29.4$ km/s。直感としては、$I_{sp}$ に10をかければ大体の排気速度(m/s)が出る、と覚えておくと便利です。

ここまでで $I_{sp}$ は「排気速度を $g_0$ で正規化したもの」と整理できました。すると次の問いは自然です——排気速度 $v_e$ は何で決まるのか? 燃焼室の温度、推進剤の分子量、ノズルの膨張比のどれが効くのか。次節ではノズル流れの熱力学から $v_e$ の正体を導きます。

熱力学的導出 — 燃焼室温度と分子量

エネルギー保存と等エントロピー仮定

ノズル内の流れを次のように理想化します。燃焼室では推進剤が高温高圧の停滞状態(流速ゼロに近い)にあり、温度 $T_c$、圧力 $p_c$、比エンタルピー $h_c$ を持つ。ガスはそこからノズルを通って加速され、ノズル出口で温度 $T_e$、圧力 $p_e$、流速 $v_e$ となる。流れは断熱・摩擦なしの等エントロピー流れと仮定し、ガスは理想気体(比熱比 $\gamma$、平均モル質量 $M$)とします。

定常流のエネルギー保存式(ベルヌーイ式の熱版、定常流エネルギー方程式)は

$$ h_c + \tfrac{1}{2} v_c^2 = h_e + \tfrac{1}{2} v_e^2 $$

です。燃焼室では $v_c \approx 0$ と置けるので、

$$ \tfrac{1}{2} v_e^2 = h_c – h_e $$

つまり、ノズルで失われる比エンタルピー(熱・圧力エネルギーに相当)がそのまま運動エネルギーに変換されます。

比熱と温度差で書き直す

理想気体では比エンタルピーは温度の関数で $h = c_p T$($c_p$ は定圧比熱)と書けます。これを代入して、

$$ \tfrac{1}{2} v_e^2 = c_p (T_c – T_e) $$

$c_p$ について少し変形しておきます。マイヤーの関係 $c_p – c_v = R_s$(ここで $R_s = R/M$ は推進剤ガスの比気体定数、$R = 8.314$ J/(mol·K) は普遍気体定数、$M$ は平均モル質量 [kg/mol])と比熱比 $\gamma = c_p/c_v$ を組み合わせると、

$$ c_p = \frac{\gamma}{\gamma – 1} R_s = \frac{\gamma}{\gamma – 1}\frac{R}{M} $$

が出ます。よって、

$$ v_e^2 = \frac{2\gamma}{\gamma – 1}\frac{R T_c}{M}\left(1 – \frac{T_e}{T_c}\right) $$

圧力比でT_e/T_cを置き換える

等エントロピー流れでは温度と圧力の関係 $T p^{-(\gamma-1)/\gamma} = \text{const}$ が成り立つので、

$$ \frac{T_e}{T_c} = \left(\frac{p_e}{p_c}\right)^{(\gamma-1)/\gamma} $$

これを代入すると、最終的にノズル排気速度の基本式が得られます。

$$ \boxed{\,v_e = \sqrt{\frac{2\gamma}{\gamma – 1}\,\frac{R\, T_c}{M}\left[1 – \left(\frac{p_e}{p_c}\right)^{(\gamma-1)/\gamma}\right]}\,} $$

これがロケット工学で最も基本的かつ重要な式の一つです。式が示すのは次のことです。$v_e$ は3つの因子の積で決まります。

  1. 燃焼室温度 $T_c$ — 高いほど良い(運動エネルギーへ変換できるエンタルピーが大きい)
  2. 平均分子量 $M$ — 小さいほど良い(同じエネルギーをより少ない質量に詰め込めば速度が上がる)
  3. 圧力比 $p_e/p_c$ — 小さいほど良い(膨張を進めるほど熱が運動に変換される)

第3因子は通常 $p_c \gg p_e$(典型的に $p_c \sim 100$ atm、$p_e \sim 0.1$ atm)になるので、角括弧の中はほぼ1に近づきます。残る支配項を取り出すと、

$$ v_e \propto \sqrt{\frac{T_c}{M}} $$

——「燃焼室温度を上げて、分子量を下げる」のが推進剤性能を決める二大要因であることが直接見えます。この比例関係こそ、化学推進・電気推進・核熱推進の性能差を解釈する物差しです。

比推力に直す

$I_{sp} = v_e / g_0$ なので、

$$ I_{sp} = \frac{1}{g_0}\sqrt{\frac{2\gamma}{\gamma – 1}\,\frac{R\, T_c}{M}\left[1 – \left(\frac{p_e}{p_c}\right)^{(\gamma-1)/\gamma}\right]} $$

完全膨張($p_e/p_c \to 0$)の漸近形では、

$$ I_{sp}^{\max} \approx \frac{1}{g_0}\sqrt{\frac{2\gamma}{\gamma – 1}\,\frac{R\, T_c}{M}} $$

これは「ある $T_c, M, \gamma$ で原理的に到達できる$I_{sp}$の上限」を与える式で、後でPythonで実推進剤を当てはめて議論します。

ここまでで、$I_{sp}$ が燃焼室温度と分子量という2つの物理量に集約されることが分かりました。すると「同じ燃焼温度なら分子量が最小の燃料が最強」という結論が浮かびますが、それは本当でしょうか。次節で液体水素がなぜ別格に強いのかを見ていきます。

なぜLH2が最強なのか

分子量の支配性

実際の推進剤について、燃焼室温度・平均分子量・$I_{sp}$ をざっと並べてみましょう。

推進剤 酸化剤 $T_c$ [K] $M$ [g/mol] 真空中$I_{sp}$ [s]
LH2 LOX 3500 12 450
RP-1 (ケロシン) LOX 3700 22 340
MMH N2O4 3400 21 320
固体推進剤 (APCP) (一体型) 3500 25 270

驚くべき事実は、LH2/LOXとRP-1/LOXの燃焼室温度がほぼ同じ(3500 K vs 3700 K)にもかかわらず、$I_{sp}$ で100秒以上の差があることです。RP-1の方がむしろ温度が高いのに、$I_{sp}$ では完敗しています。

その理由は平均分子量 $M$ の違いです。LH2/LOXの完全燃焼反応 $2\mathrm{H}_2 + \mathrm{O}_2 \to 2\mathrm{H}_2\mathrm{O}$ では水($M = 18$)が生成されますが、実際には燃焼室で過剰な水素を残す(混合比を当量比未満にする)ことで、生成ガス中に未反応 $\mathrm{H}_2$($M = 2$)を混ぜます。これにより平均分子量を 12 程度まで下げることができるのです。

一方、RP-1/LOXでは燃焼生成物が $\mathrm{H}_2\mathrm{O}$ と $\mathrm{CO}_2$($M = 44$)、$\mathrm{CO}$、未燃の $\mathrm{H}_2$ などの混合物となり、$M \approx 22$ にしかなりません。$v_e \propto \sqrt{T_c/M}$ の式で、$T_c$ がほぼ同じでも $M$ が半分なら $v_e$ は $\sqrt{2} \approx 1.41$ 倍になります。$I_{sp}$ で言えば 340 × 1.41 ≈ 480 となり、観測される 450 とよく合います。

なぜ過剰水素にすると$I_{sp}$が上がるのか

化学的には、当量比($\mathrm{O}_2$ と $\mathrm{H}_2$ をちょうど反応させる混合比)で焚くと最大温度 $T_c$ が出ます。しかし $I_{sp} \propto \sqrt{T_c/M}$ では、温度を少し下げても分子量を大幅に下げられれば性能が上がるトレードオフがあります。

例えば当量比(混合比 O/F = 8)では $T_c \approx 3500$ K, $M \approx 18$、燃料リッチの混合比 O/F = 5 では $T_c \approx 3300$ K, $M \approx 12$ となる。それぞれで $T_c/M$ を計算すると、

  • 当量: $3500 / 18 \approx 194$
  • 燃料リッチ: $3300 / 12 \approx 275$

燃料リッチの方が $T_c/M$ が大きいので、$v_e$ も大きくなります。スペースシャトル主機(SSME)やSLSのRS-25が混合比 6:1 程度(当量よりかなり水素リッチ)で運転されているのはこの理由です。

水素のデメリット

LH2が最強なら、なぜ全部のロケットがLH2を使わないのでしょうか。理由は密度です。液体水素の密度はわずか71 kg/m³で、ケロシンの800 kg/m³に比べて約1/11しかありません。同じエネルギーを蓄えるのに11倍の体積のタンクが必要になります。さらに沸点が20.3 K(−253°C)と極低温なので、断熱と取り扱いが極めて厄介です。

ロケットの第1段(最大推力が必要、構造重量比が厳しい)ではタンク体積の影響が大きく、密度の高いRP-1/LOXがしばしば選ばれます。逆に上段(質量比が支配的)ではLH2/LOXの$I_{sp}$優位がタンクの不利を上回り、サターンV上段、シャトル、SLSコア、Ariane 5主段などに採用されています。

このように、化学推進では分子量と温度の制約から $I_{sp}$ の上限が約450秒に張り付きます。これを超えるためには、化学反応とは違うエネルギー源が必要です。それが電気推進や核熱推進の出番です。

電気推進・核推進との比較

化学推進の絶対的上限

$v_e \propto \sqrt{T_c/M}$ の式は、化学推進の根本的限界を教えてくれます。燃焼温度 $T_c$ は化学結合エネルギーで決まるので、いくら工夫しても約4000 Kを大きく超えられません(材料が溶ける、解離反応で温度が頭打ちになる、等の理由も加わります)。分子量も水素を超えて軽い物質はなく、$M = 2$ が下限です。

これらを式に入れると、

$$ v_e^{\max,\text{chem}} \approx \sqrt{\frac{2 \cdot 1.2}{0.2} \cdot \frac{8.314 \cdot 4000}{0.002}} \approx 5000~\text{m/s} $$

つまり化学推進の$I_{sp}$は原理的に 約500秒 が上限です。実用エンジンの最高峰がLH2/LOX(SSME)の450秒なのは、この理論限界に既に肉薄しているからです。化学を頑張っても、もう改善余地は10%程度しかありません。

電気推進: エネルギーと推進剤を分離する

電気推進(イオン推進、ホール推進、MPD推進など)の発想は革命的です。推進剤を加熱・燃焼するのではなく、電場や磁場で直接加速する。エネルギー源は化学結合ではなく、太陽電池や原子炉から供給される電力です。

ホール推進機を例に取りましょう。キセノン($M = 131$ g/mol)原子を電離し、生成したXe⁺イオンを電圧 $V$ で加速します。エネルギー保存から、

$$ \tfrac{1}{2} m_{\mathrm{ion}} v_e^2 = q V $$

つまり、

$$ v_e = \sqrt{\frac{2 q V}{m_{\mathrm{ion}}}} $$

ここで $q$ はイオン電荷、$m_{\mathrm{ion}}$ はイオン質量です。例として Xe⁺($m = 2.18 \times 10^{-25}$ kg、$q = 1.6 \times 10^{-19}$ C)を $V = 300$ V で加速すると、

$$ v_e = \sqrt{\frac{2 \cdot 1.6 \times 10^{-19} \cdot 300}{2.18 \times 10^{-25}}} \approx 21{,}000~\text{m/s} $$

これで $I_{sp} \approx 2100$ 秒。SMART-1のホール推進機の値($I_{sp} \approx 1600$ s、$V \approx 250$ V)とよく合います。

電気推進の決定的優位は、$v_e$ を電圧で自由にコントロールできることです。化学推進では $T_c$ と $M$ がほぼ固定されますが、電気推進では電圧を上げれば原理的にいくらでも $v_e$ を上げられます。実用上の制約はパワー(電力源の大きさ)、推進機のエロージョン、推進剤の電離効率などです。

核熱推進: 化学の壁を温度で破る

核熱推進(Nuclear Thermal Propulsion, NTP)は、化学反応の代わりに核分裂炉で水素を加熱する方式です。化学燃焼では $T_c \sim 3500$ K が限界でしたが、核炉ではより高温も可能(材料制約はあるが、3000 K 程度は実現可能)。重要なのは、ガスとして純水素($M = 2$)を使えることです。

化学燃焼では水素を燃やせば $\mathrm{H}_2\mathrm{O}$ になり $M$ が大きくなりますが、核炉なら水素を「ただ加熱するだけ」なので $M = 2$ のまま。$v_e \propto \sqrt{T_c/M}$ で $M$ を 1/6 にできるので、同じ温度でも $\sqrt{6} \approx 2.45$ 倍の $v_e$ になります。NERVA計画では $I_{sp} \approx 900$ 秒が実証されました。化学推進の倍です。

推進方式の$I_{sp}$ランキング

代表的な推進方式の典型値を並べると、

推進方式 $I_{sp}$ 範囲 [s] 推力範囲 エネルギー源
冷ガス (N2) 50–80 mN–N 圧縮ガス
単元推進剤 (ヒドラジン) 220–240 N 触媒分解
化学2元 (MMH/N2O4) 300–340 kN 燃焼
化学2元 (RP-1/LOX) 300–360 MN 燃焼
化学2元 (LH2/LOX) 380–450 MN 燃焼
アークジェット 500–700 N 電気加熱
ホール推進 1500–2500 mN 電場
イオン推進 3000–5000 mN 電場
MPD推進 5000–10000 mN–N 電磁
核熱推進 800–1000 kN 核分裂
核電気推進 5000+ mN 核分裂+電気
ソーラーセイル $\infty$(推進剤なし) μN 太陽光圧

範囲が広いことに注目してください。同じ「推進機」と呼ばれるものでも、$I_{sp}$ は2桁、推力は8桁の幅があります。これらが共存する理由が、次節のトレードオフです。

推力と比推力のトレードオフ

パワーと推力の根本関係

電気推進が高$I_{sp}$なのに低推力にとどまる理由を、エネルギー論で考えましょう。推進機が排気に与えるジェット出力(kinetic power) は、

$$ P_{\text{jet}} = \tfrac{1}{2} \dot{m}\, v_e^2 = \tfrac{1}{2} F\, v_e $$

ここで2番目の等号で $F = \dot{m} v_e$ を使いました。この式から重要なことが導けます。同じパワー $P$ で運転する場合、

$$ F = \frac{2 P}{v_e} $$

すなわち、$v_e$ を上げると同じ電力で得られる推力は逆比例で下がる。電気推進が高$I_{sp}$ である代償に低推力になるのは、この物理的トレードオフの直接的帰結です。例えば、5 kWのホール推進機で $v_e = 20$ km/s なら、

$$ F = \frac{2 \cdot 5000}{20000} = 0.5~\text{N} $$

たった0.5 N(1円玉の重力に近い)。これに対し、ロケットエンジンRS-25は1900 kN(1.9 MN)の推力を出しますが、その時のジェット出力は$\tfrac{1}{2} F v_e \approx \tfrac{1}{2} \cdot 1.9 \times 10^6 \cdot 4400 \approx 4.2 \times 10^9$ W、つまり4.2 GW。これは原発1基分の出力に匹敵します。

化学推進は推進剤自身が高密度エネルギー源(高エネルギー化学結合)を持っているので、巨大なジェット出力を出せる。電気推進は外部電源に頼るので、太陽電池が出せる数kWに制約され、推力も小さくなります。

ロケット方程式と「最適 $I_{sp}$」

ツィオルコフスキーのロケット方程式 $\Delta v = v_e \ln(m_0/m_f)$ から、ミッションに必要な推進剤質量比は

$$ \frac{m_p}{m_0} = 1 – e^{-\Delta v / v_e} $$

で与えられます。$v_e$ が大きい(高$I_{sp}$)ほど推進剤質量比が小さくて済む——これが電気推進の魅力です。

しかし、電気推進では電力源(太陽電池、原子炉)の質量 $m_{\text{power}}$ が新たに加わります。$m_{\text{power}}$ はパワー $P$ にほぼ比例し、$m_{\text{power}} = \alpha P$($\alpha$ は比質量 [kg/W])と書けます。さらに、必要なジェット出力 $P_{\text{jet}}$ はミッション時間 $t$ に反比例(短時間で$\Delta v$ を稼ぐほど大きな推力=大きなパワーが必要)。

このとき、全質量を最小化する「最適 $v_e$」が存在することが知られています。ストルマンの解析によると、最適は概ね

$$ v_e^{\text{opt}} \sim \sqrt{\frac{2 \Delta v \cdot t}{\alpha}} $$

の関係に従い、ミッション $\Delta v$ とミッション期間 $t$ が大きいほど高$I_{sp}$が有利。逆に短時間で大$\Delta v$ を稼ぐ打上げのような場合は、低$I_{sp}$でも大推力の化学推進が圧倒的に有利になります。

具体的な例で考えましょう。 – 打上げ(地表→LEO): $\Delta v \approx 9.4$ km/s、所要時間 $t \approx 10$ 分 → 高推力必須 → 化学推進 – LEO→GTO: $\Delta v \approx 2.5$ km/s、$t \approx 6$ 時間 → 化学推進(短時間) – GTO→GEO: $\Delta v \approx 1.5$ km/s、$t$ ≤ 数ヶ月の余裕 → 電気推進が有利 – 地球→火星 (Hohmann): $\Delta v \approx 3.6$ km/s、$t \approx 8$ ヶ月 → 化学or電気(要検討) – 地球→外惑星探査: $\Delta v \approx 10+$ km/s、$t \approx$ 年単位 → 電気推進が圧倒的有利

このトレードオフをPython上で系統的に計算する例を、次節で実装します。

Python実装 — 推進方式選択

推進剤データベースと$I_{sp}$計算

まず、代表的な化学推進剤の燃焼パラメータ($T_c$, $M$, $\gamma$)から$I_{sp}$を計算する関数を作ります。

import numpy as np
import matplotlib.pyplot as plt

# 物理定数
R = 8.314          # 普遍気体定数 [J/(mol·K)]
g0 = 9.80665       # 標準重力加速度 [m/s^2]

def isp_chemical(Tc, M, gamma, pe_pc=0.01):
    """
    化学推進の理論I_spを計算
    Tc: 燃焼室温度 [K]
    M: 平均分子量 [g/mol]
    gamma: 比熱比
    pe_pc: ノズル出口圧/燃焼室圧 (デフォルト0.01=高膨張比)
    戻り値: I_sp [秒]
    """
    M_kg = M * 1e-3  # g/mol -> kg/mol
    term1 = (2 * gamma / (gamma - 1)) * R * Tc / M_kg
    term2 = 1 - pe_pc ** ((gamma - 1) / gamma)
    ve = np.sqrt(term1 * term2)
    return ve / g0

# 推進剤データベース (Tc, M, gamma, 実機Isp参考値)
propellants = {
    "LH2/LOX (リッチ)":  (3500, 12, 1.24, 450),
    "LH2/LOX (当量)":    (3700, 18, 1.22, 410),
    "RP-1/LOX":          (3700, 22, 1.22, 340),
    "MMH/N2O4":          (3400, 21, 1.24, 320),
    "ヒドラジン単元":      (1200, 13, 1.30, 230),
    "固体APCP":          (3500, 25, 1.20, 270),
    "LOX/メタン":         (3550, 21, 1.20, 360),
}

print(f"{'推進剤':<22} | {'理論Isp':>8} | {'実機Isp':>8}")
print("-" * 50)
for name, (Tc, M, gamma, isp_real) in propellants.items():
    isp_th = isp_chemical(Tc, M, gamma, pe_pc=0.005)
    print(f"{name:<22} | {isp_th:8.0f} | {isp_real:8d}")

このコードを実行すると、各推進剤の理論$I_{sp}$と実機性能がほぼ近い値になっていることが確認できます。理論値が実機を10〜20%上回るのは、ノズル損失、燃焼不完全、境界層、ノズル冷却での熱損失、有限な膨張比などの非理想要因のためです。それでも、$T_c$ と $M$ という2つのパラメータだけで実機性能を桁オーダーで予測できることは、ノズル理論の強力さを物語っています。

特にLH2/LOX(リッチ)の理論値約480秒が実機の450秒に最も近く、また分子量18の当量比で焚いた場合より、分子量12のリッチ運転で焚いた場合の方が$I_{sp}$ が大きく出ているのが分かります。これが「水素を過剰に焚いて分子量を下げる」というSSME運転戦略の理論的根拠です。

Tc–M平面上での$I_{sp}$等高線

次に、$T_c$ と $M$ を連続的に変えたときの$I_{sp}$ を等高線で可視化します。これにより、各推進剤がこの平面のどこに位置するかが一目で分かります。

import numpy as np
import matplotlib.pyplot as plt

# Tc, M のグリッドを作成
Tc_range = np.linspace(1500, 5000, 100)
M_range = np.linspace(2, 30, 100)
Tc_grid, M_grid = np.meshgrid(Tc_range, M_range)

# Ispを計算 (gamma=1.22 で代表させる)
gamma = 1.22
pe_pc = 0.005
M_kg = M_grid * 1e-3
term1 = (2 * gamma / (gamma - 1)) * 8.314 * Tc_grid / M_kg
term2 = 1 - pe_pc ** ((gamma - 1) / gamma)
Isp_grid = np.sqrt(term1 * term2) / 9.80665

fig, ax = plt.subplots(figsize=(10, 7))
levels = [200, 250, 300, 350, 400, 450, 500, 600, 700, 800]
cs = ax.contour(Tc_grid, M_grid, Isp_grid, levels=levels,
                colors='steelblue', linewidths=1.2)
ax.clabel(cs, inline=True, fontsize=9, fmt='%d s')
cf = ax.contourf(Tc_grid, M_grid, Isp_grid, levels=20, cmap='viridis', alpha=0.6)
plt.colorbar(cf, label='Theoretical $I_{sp}$ [s]')

# 実推進剤をプロット
propellants_xy = {
    "LH2/LOX rich": (3500, 12),
    "LH2/LOX": (3700, 18),
    "RP-1/LOX": (3700, 22),
    "MMH/N2O4": (3400, 21),
    "Hydrazine": (1200, 13),
    "APCP": (3500, 25),
    "LOX/CH4": (3550, 21),
}
for name, (Tc, M) in propellants_xy.items():
    ax.plot(Tc, M, 'ro', markersize=10, markeredgecolor='white')
    ax.annotate(name, (Tc, M), xytext=(8, 5),
                textcoords='offset points', fontsize=9,
                color='white', fontweight='bold')

# 核熱推進 (純水素, T_c ~ 2700 K)
ax.plot(2700, 2, 'y*', markersize=18, markeredgecolor='black')
ax.annotate('NTP (H2)', (2700, 2), xytext=(8, -12),
            textcoords='offset points', fontsize=10,
            color='yellow', fontweight='bold')

ax.set_xlabel('Chamber temperature $T_c$ [K]')
ax.set_ylabel('Mean molecular weight $M$ [g/mol]')
ax.set_title(r'Theoretical $I_{sp}$ in $T_c$-$M$ plane ($\gamma=1.22$)')
ax.invert_yaxis()  # M小さい方を上に
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('isp_contour.png', dpi=150, bbox_inches='tight')
plt.show()

このコンター図から$I_{sp}$ の物理が一気に視覚化されます。等高線が左下から右上に走り、左上(高温・低分子量)が高$I_{sp}$領域であることがハッキリ見えます。LH2/LOX(リッチ)の点が他の化学推進より上(より低分子量側)にあり、$I_{sp} = 450$ 秒台の等高線上に乗っているのが分かります。一方、核熱推進(NTP, H2)は星印で示した位置——燃焼室温度はやや低めでも分子量が2で純水素なので、化学推進の到達不可能な850秒近い領域に達することが読み取れます。化学推進の上限は等高線500秒近辺で頭打ちになっており、これが「化学では超えられない壁」を視覚化しています。

電気推進の$I_{sp}$ — 電圧依存

電気推進の$I_{sp}$ は加速電圧で決まることを定量化します。

import numpy as np
import matplotlib.pyplot as plt

# イオン質量データ [kg] (原子質量 × atomic mass unit)
amu = 1.66054e-27
ion_data = {
    "Xe (Xe+)":   (131.3 * amu, 1),  # (質量, 電荷数)
    "Kr (Kr+)":   (83.8 * amu,  1),
    "Ar (Ar+)":   (39.9 * amu,  1),
    "Hg (Hg+)":   (200.6 * amu, 1),
    "I (I+)":     (126.9 * amu, 1),
}

q_e = 1.602e-19  # 電気素量 [C]
g0 = 9.80665
V_range = np.linspace(100, 5000, 200)  # 加速電圧 [V]

plt.figure(figsize=(10, 6))
for name, (m_ion, z) in ion_data.items():
    ve = np.sqrt(2 * z * q_e * V_range / m_ion)
    isp = ve / g0
    plt.plot(V_range, isp, lw=2, label=name)

# 化学推進の代表値を水平線で参照
plt.axhline(450, color='red', ls='--', alpha=0.7, label='Chemical max (LH2/LOX)')
plt.axhline(900, color='orange', ls='--', alpha=0.7, label='Nuclear thermal')

plt.xlabel('Acceleration voltage V [V]')
plt.ylabel(r'$I_{sp}$ [s]')
plt.title('Electric propulsion: Isp vs ion species and voltage')
plt.legend(loc='upper left', fontsize=9)
plt.grid(True, which='both', alpha=0.3)
plt.tight_layout()
plt.savefig('electric_propulsion_isp.png', dpi=150, bbox_inches='tight')
plt.show()

この図から、電気推進の$I_{sp}$ は加速電圧の平方根で増加し、軽いイオン(Ar, $M = 40$)の方が同じ電圧でも高$I_{sp}$ になることが視覚化されます。Xeを300 V程度で加速すると$I_{sp} \approx 2000$秒、これは化学推進上限の450秒を4倍以上、核熱推進の900秒も2倍以上凌駕しています。電圧を1000 Vまで上げれば$I_{sp} \approx 4000$秒にも達し、これがイオン推進機の典型値です。重要なのは、化学推進では「燃焼温度」という物理的に固定された値に縛られるのに対し、電気推進では電圧という設計自由度で$I_{sp}$ を自在に選べる点です。ただし高電圧ほど推力は逆に下がるトレードオフを忘れてはいけません。

推力 vs $I_{sp}$ — パワー制約下の関係

電気推進では「推力と$I_{sp}$は同じ電力でトレードオフ」になることを式で確認し、可視化します。

import numpy as np
import matplotlib.pyplot as plt

g0 = 9.80665

# パワー制約下での F vs Isp
Isp_range = np.logspace(2, 4, 200)  # 100 - 10000 s
ve_range = Isp_range * g0

# 異なるパワー水準で F = 2P / ve をプロット
P_levels = [1e3, 5e3, 20e3, 100e3]  # 1kW, 5kW, 20kW, 100kW
labels = ['1 kW (CubeSat)', '5 kW (Small Sat)', '20 kW (Large Sat)', '100 kW (Probe)']

plt.figure(figsize=(10, 6))
for P, label in zip(P_levels, labels):
    F = 2 * P / ve_range  # 効率100%とした理想推力
    plt.loglog(Isp_range, F * 1000, lw=2, label=label)  # mN表示

# 化学推進の代表点 (パワー制約なし)
plt.scatter([300, 340, 450], [10e3 * 1000, 1.5e6 * 1000, 1.9e6 * 1000],
            color='red', s=80, marker='s', label='Chemical (no power limit)', zorder=5)
plt.scatter([2100, 4000], [80, 200], color='blue', s=80, marker='^',
            label='Electric (actual)', zorder=5)

plt.xlabel(r'$I_{sp}$ [s]')
plt.ylabel('Thrust F [mN]')
plt.title('Thrust vs Isp tradeoff ($F = 2P/v_e$)')
plt.legend(loc='upper right', fontsize=9)
plt.grid(True, which='both', alpha=0.3)
plt.tight_layout()
plt.savefig('thrust_isp_tradeoff.png', dpi=150, bbox_inches='tight')
plt.show()

このloglogグラフから、電気推進におけるトレードオフの本質が明確に読み取れます。各パワー水準の直線は、$I_{sp}$ が1桁上がると推力が1桁下がる「反比例」の関係を示しています。例えば5 kWの太陽電池が積めるCubeSatでは、$I_{sp} = 1000$秒なら約1 N、$I_{sp} = 10000$秒なら100 mN程度しか推力が出ません。一方、化学推進(赤の正方形)は推進剤自体がエネルギー源なので、グラフ右下のパワー制約直線とは独立にMNオーダーの推力を出せます。電気推進の実機点(青の三角)は概ね予測直線に乗っており、5 kWクラスのホール推進機が約100 mN、1 kWクラスのイオン推進機が10 mNオーダーという数値が再現されています。これが「電気推進は$I_{sp}$ では化学を圧倒するが、推力では絶対敵わない」という運用上の現実です。

ミッション最適推進方式選定

ロケット方程式からミッションに必要な推進剤質量比を計算し、$\Delta v$ –ミッション時間平面で最適推進方式を選定するチャートを作ります。

import numpy as np
import matplotlib.pyplot as plt

g0 = 9.80665

def propellant_fraction(dv, Isp):
    """必要推進剤質量比 m_p/m_0"""
    ve = Isp * g0
    return 1 - np.exp(-dv / ve)

# ミッションΔv範囲
dv_range = np.linspace(1000, 20000, 200)  # 1 - 20 km/s

# 各推進方式
methods = {
    'Hydrazine (Isp=220s)':   220,
    'MMH/N2O4 (Isp=320s)':    320,
    'RP-1/LOX (Isp=340s)':     340,
    'LH2/LOX (Isp=450s)':      450,
    'NTP (Isp=900s)':          900,
    'Hall (Isp=1600s)':        1600,
    'Ion (Isp=3000s)':         3000,
    'MPD (Isp=8000s)':         8000,
}

plt.figure(figsize=(11, 6))
for name, isp in methods.items():
    pf = propellant_fraction(dv_range, isp)
    plt.plot(dv_range / 1000, pf * 100, lw=2, label=name)

plt.axhline(50, color='gray', ls=':', alpha=0.5, label='50% (practical limit)')
plt.axhline(90, color='red', ls=':', alpha=0.5, label='90% (impractical)')

# 典型ミッションを矢印で表示
missions = [
    ('LEO', 0.5),
    ('GTO', 2.5),
    ('GEO', 4.5),
    ('Lunar', 4.0),
    ('Mars', 5.5),
    ('Outer planets', 12.0),
]
for name, dv_km in missions:
    plt.axvline(dv_km, color='purple', alpha=0.2, lw=8)
    plt.text(dv_km, 95, name, rotation=90, ha='right', va='top',
             fontsize=8, color='purple')

plt.xlabel(r'Mission $\Delta v$ [km/s]')
plt.ylabel('Required propellant fraction $m_p / m_0$ [%]')
plt.title('Propulsion selection vs mission delta-v')
plt.legend(loc='center right', fontsize=8)
plt.grid(True, alpha=0.3)
plt.ylim(0, 100)
plt.tight_layout()
plt.savefig('mission_propulsion_selection.png', dpi=150, bbox_inches='tight')
plt.show()

# テーブル出力: 各方式で典型ミッションに必要な推進剤比
print(f"\n{'Method':<25}", end='')
for name, dv in missions:
    print(f"| {name:>13}", end='')
print()
print("-" * 130)
for prop_name, isp in methods.items():
    print(f"{prop_name:<25}", end='')
    for _, dv_km in missions:
        pf = propellant_fraction(dv_km * 1000, isp) * 100
        print(f"| {pf:12.1f}%", end='')
    print()

このプロットとテーブルから、推進方式選定の指針が定量的に読み取れます。LEO周回($\Delta v = 0.5$ km/s)程度なら全推進方式で推進剤比は10%未満で済み、推力の出る化学推進で十分。月遷移($\Delta v = 4$ km/s)あたりで化学推進(ヒドラジンやMMH)の推進剤比が60-80%に達し始め、機体の構造重量を圧迫します。これに対しLH2/LOXなら60%、核熱推進なら36%、ホール推進ならわずか22%。火星遷移($\Delta v = 5.5$ km/s)では同様の傾向が拡大し、外惑星探査($\Delta v = 12$ km/s)になると化学推進では推進剤比90%超で非現実的、電気推進(イオンやMPD)でなければミッションが成立しません。実際のNASA Dawnミッション(小惑星ベスタ・セレス探査)がイオン推進を採用したのは、$\Delta v$ 約11 km/sを化学推進では物理的に達成困難だったからです。

ただし、この選定図には「推力(=飛行時間)」が反映されていないことに注意。電気推進の低推力は所要時間を年単位に引き伸ばすので、有人ミッションや短時間運用では化学推進が依然必要です。最終的な推進方式選定は、$I_{sp}$ ・推力・パワー・推進剤密度・コストの多目的最適化となります。

まとめ

本記事では、推進工学の中核概念である比推力 $I_{sp}$ の物理的意味と、推進方式別の性能差の根源について解説しました。

  • 比推力の定義: $I_{sp} = v_e / g_0$ は排気速度を$g_0$で正規化したもので、「単位重量推進剤あたりに維持できる推力時間」を意味する。単位は[秒]。
  • 熱力学的導出: 等エントロピー流れと理想気体仮定から、$v_e = \sqrt{\frac{2\gamma}{\gamma-1}\frac{RT_c}{M}\left[1-(p_e/p_c)^{(\gamma-1)/\gamma}\right]}$ が導かれる。支配的因子として $v_e \propto \sqrt{T_c/M}$。
  • 水素が最強の理由: 燃料リッチ運転で平均分子量を12まで下げ、$T_c$ がやや下がっても $T_c/M$ を最大化することで$I_{sp} \approx 450$秒を達成。これが化学推進の理論限界に近い。
  • 化学推進の壁: 燃焼温度4000K・分子量2が物理的上限を決め、$I_{sp}$ は約500秒で頭打ち。
  • 電気推進: 電場でイオンを直接加速することで$v_e$ を電圧で自由に制御でき、$I_{sp} = 1000$〜10000秒を達成。ただし $F = 2P/v_e$ の制約で推力は同じパワーで$v_e$ に反比例して下がる。
  • 核熱推進: 純水素($M=2$)を核炉で加熱することで化学を超える$I_{sp} \approx 900$秒を実現。化学燃焼の「水素を燃やすと$M$ が大きくなる」問題を回避。
  • ミッション最適化: 推進剤質量比 $m_p/m_0 = 1 – e^{-\Delta v/v_e}$ から、$\Delta v$ が大きいほど高$I_{sp}$が有利。打上げは化学、深宇宙探査は電気推進という棲み分けの根拠。

比推力は単なる効率指標ではなく、エネルギー源(化学・電気・核)と作動流体(推進剤)と運動量保存の三つを橋渡しする物理量です。新世代の推進系(核電気推進、レーザー推進、フォトンセイル)も、結局はこの $v_e \propto \sqrt{T_c/M}$ の式と $F = 2P/v_e$ のトレードオフという普遍的構造の中で評価されます。

次のステップとして、以下の記事も参考にしてください。