衛星熱制御の設計 — MLI・ヒートパイプ・ラジエータの放射伝熱

宇宙空間は真空です。空気の対流も伝導も使えません。さらに太陽光が直接当たる面は+200°Cを超えて焼け、影に入ると-150°Cまで冷え込みます。一方で衛星の電子機器は概ね-10°C〜+40°Cの狭い範囲でしか正常に動作しません。1基あたり数百億円の衛星を、こんな過酷な環境で何年も動かし続けるには、わずか一つの技術領域が要となります。それが熱制御(thermal control) です。

熱制御を理解することは、衛星設計の中で電源系・構造系と並ぶ屋台骨を押さえることでもあります。たとえば国際宇宙ステーション(ISS)は外部にアンモニアループで熱を集めて巨大なラジエータで宇宙へ捨てており、これがなければ電子機器とクルーの両方が即座に高温で死にます。ジェイムズ・ウェッブ宇宙望遠鏡(JWST)はわずか5枚のテニスコート大のサンシールドで太陽側+85°C・観測側-233°Cという250°C近い温度差を保ち、赤外線観測を成立させています。火星探査機キュリオシティのRTG(放射性同位体熱電気転換器)は熱輸送ループで電子機器を温めて極寒の夜を生き延びます。いずれも、MLI(多層断熱材)・ヒートパイプ・ラジエータという3つの基本要素の組み合わせで成り立っています。

本記事の内容

  • 宇宙の熱環境(太陽輻射・地球アルベド・地球赤外・深宇宙)と熱平衡方程式の導出
  • 表面光学特性 $\alpha_s/\varepsilon$ 比による平衡温度のコントロール
  • MLI(Multi-Layer Insulation)の多層放射シールド効果と有効放射率の式
  • ヒートパイプの蒸発-凝縮サイクル、毛細管限界・ソニック限界、LHPの原理
  • ラジエータ面積設計とStefan-Boltzmannの逆問題
  • Pythonによる平衡温度・5層MLI効果・12節点集中質量熱モデルの実装
  • ISS・JWST・RTGの熱制御アーキテクチャ

前提知識

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

直感 — なぜ宇宙の熱は厄介か

地球上では熱は3つの経路で逃げます。伝導(金属に触れた手から熱が奪われる)、対流(扇風機の風で涼しくなる)、放射(焚き火の炎の熱が離れていても顔に届く)。エアコンも結露冷却も、すべて空気か液体という媒体を介した熱輸送です。ところが宇宙空間は真空です。媒体が存在しないので、対流は完全にゼロになります。伝導も筐体内部でしか使えません。

残された経路は放射のみです。Stefan-Boltzmannの法則 $Q = \varepsilon \sigma T^4 A$ に従い、温度の4乗に比例した電磁波の形でしか熱を捨てられません。地上のエンジニアにとって対流冷却は当然のツールですが、宇宙ではこれが封じられているのです。「コンピュータの冷却ファンが効かない」「水冷もできない」と思えば、いかに窮屈な条件かわかります。

さらに困ったことに、宇宙環境は時間的にも空間的にも極端です。太陽が照ると1平方メートルあたり1361 Wもの熱が降り注ぎ、これは家庭用ヒーター並みのエネルギーです。影に入った瞬間その入力はゼロになり、衛星はわずかな自己消費電力だけを発熱源として、3 K(マイナス270°C)の深宇宙に向かって放熱を続けます。低軌道衛星なら90分周期で日陰と日向を行き来し、機器の温度は数十°Cも振動します。

それでも電子機器は20°C前後を要求し、リチウムイオンバッテリは0〜30°Cを外れると劣化し、観測機器の赤外センサは100 K以下に冷やさないとノイズに埋もれます。「太陽の熱を遮り、内部発熱を捨て、必要なら温める」というすべての操作を、放射だけで完結させるのが衛星熱制御です。次節で具体的な熱環境の値と熱バランスの式を立てます。

宇宙熱環境と平衡温度

4つの熱源を整理する

衛星に入射する熱と衛星から出ていく熱を、まず洗い出します。地球低軌道(LEO)から静止軌道(GEO)あたりまでの衛星では、以下の4種類が支配的です。

熱源 物理的内容 代表値(地球近傍)
太陽輻射 太陽からの直接電磁波(主に可視〜近赤外) $S = 1361\ \text{W/m}^2$
地球アルベド 地球で反射した太陽光 $a S \approx 408\ \text{W/m}^2$($a=0.30$)
地球赤外放射 地球自身の熱放射(中赤外) $E_\oplus = 237\ \text{W/m}^2$
深宇宙 宇宙背景放射(実質3 K) $\approx 0\ \text{W/m}^2$

ここで「太陽定数」$S = 1361\ \text{W/m}^2$ は1 AU(1天文単位)での値で、火星では $S \times (1/1.52)^2 \approx 589\ \text{W/m}^2$、木星では $50\ \text{W/m}^2$ 程度に弱まります。地球近傍の議論では $S = 1361$ を出発点とします。アルベド係数 $a$ は地表の反射率で、雲・海・砂漠で大きく違いますが、軌道平均で $a \approx 0.30$ を使うのが定石です。地球赤外 $E_\oplus = 237\ \text{W/m}^2$ は地球が宇宙に放出する熱で、$\sigma T_\oplus^4$ に等価温度 $T_\oplus \approx 255$ K を代入して得られる値です。

深宇宙の温度は宇宙マイクロ波背景放射 2.7 K に対応しますが、放射熱量は温度の4乗に効くので、たかだか地表の $(2.7/300)^4 \approx 6.6 \times 10^{-9}$ 倍。事実上ゼロと近似できます。これがあるおかげで衛星は熱を捨てられます。「宇宙は無限大の冷却シンク」と表現されるゆえんです。

熱平衡方程式

衛星表面(または衛星全体)を1つの等温体と仮定し、定常状態での熱バランスを書きます。流入熱と流出熱が釣り合うときの温度を平衡温度と呼びます。簡単のため、太陽輻射のみが入射するシンプルな場合から始めましょう。投影面積 $A_s$ の表面が太陽に正対し、表面の太陽吸収率を $\alpha_s$(0〜1)とすると、吸収される太陽熱は

$$ Q_{\text{in}} = \alpha_s \cdot S \cdot A_s $$

です。一方、衛星表面全体の面積 $A_r$ から放出される赤外放射は、Stefan-Boltzmannの法則より

$$ Q_{\text{out}} = \varepsilon \cdot \sigma \cdot T^4 \cdot A_r $$

ここで $\varepsilon$ は赤外放射率(同じく0〜1)、$\sigma = 5.67 \times 10^{-8}\ \text{W/(m}^2 \text{K}^4)$ はStefan-Boltzmann定数です。内部発熱 $Q_{\text{int}}$(電子機器の消費電力など)も加えて熱バランスを書くと、

$$ \alpha_s S A_s + Q_{\text{int}} = \varepsilon \sigma T^4 A_r $$

これを平衡温度 $T$ について解くと

$$ T = \left( \frac{\alpha_s S A_s + Q_{\text{int}}}{\varepsilon \sigma A_r} \right)^{1/4} $$

が得られます。この式は衛星熱設計のあらゆる出発点になるマスター式です。とくに $Q_{\text{int}} = 0$(内部発熱なし)の場合は

$$ T = \left( \frac{\alpha_s S}{\varepsilon \sigma} \cdot \frac{A_s}{A_r} \right)^{1/4} $$

となり、温度を決める鍵が表面光学特性の比 $\alpha_s/\varepsilon$面積比 $A_s/A_r$ だけになることが見えてきます。コーティング材料と形状で衛星の温度を操作できる、という宇宙熱設計の核心がここに現れています。

球形衛星の概算

直感を養うため、半径 $R$ の球形衛星を考えます。投影面積(太陽光が当たる断面)は $A_s = \pi R^2$、全表面積は $A_r = 4\pi R^2$ なので $A_s/A_r = 1/4$ です。内部発熱なし、$\alpha_s = \varepsilon = 1$(黒体)のとき、

$$ T = \left( \frac{1 \cdot 1361}{1 \cdot 5.67 \times 10^{-8}} \cdot \frac{1}{4} \right)^{1/4} = \left( 6.00 \times 10^9 \right)^{1/4} \approx 278\ \text{K} = 5\ \text{°C} $$

5°C。意外と心地よい温度です。これは「地球の有効温度」とほぼ等しく、地球が黒体だったとしたらこれくらいの平均温度になる、というよく知られた値です。実際の衛星は黒体ではないので、コーティングを変えればこの値を大きく動かせます。たとえば $\alpha_s/\varepsilon = 2.0$(金色テープ的なもの)にすると $T$ は $2^{1/4} = 1.19$ 倍になり、約 +57°C。$\alpha_s/\varepsilon = 0.2$(白色塗装)なら $0.2^{1/4} = 0.67$ 倍で約 -85°C。コーティング選択だけで100°C以上動くことになります。

ここで重要な事実が見えてきました。 $\alpha_s$ と $\varepsilon$ は別物で、可視光(太陽光)に対する吸収と、赤外光(自分の放射)に対する放射を独立に操作できるのです。次節ではこの「分離」を可能にする物理を詳しく見ていきます。

表面光学特性 ($\alpha_s/\varepsilon$ 比)

$\alpha_s$ と $\varepsilon$ が違う理由

「Kirchhoffの法則によれば吸収率と放射率は等しいはずでは?」と思う人もいるでしょう。確かにKirchhoffの法則 $\alpha(\lambda) = \varepsilon(\lambda)$ は各波長ごとに成り立ちます。しかし全波長を足し上げた値 $\alpha_s$(太陽スペクトルでの平均吸収率)と $\varepsilon$(衛星温度での平均放射率)は、スペクトル分布が違うので別の値になります。

太陽光は表面温度約5800 Kの黒体放射で、ピークが波長0.5 μm付近の可視光にあります。衛星の表面温度が300 K前後なら、自分の放射のピークは10 μm付近の中赤外にあります。両者のスペクトル領域はほぼ重ならない。だから「可視光は反射するが赤外は良く出す」という性質を持つ材料を作れば、$\alpha_s < \varepsilon$ となり $\alpha_s/\varepsilon < 1$ にできるのです。

代表的なコーティングと $\alpha_s/\varepsilon$

実際に衛星で使われる主要コーティングの典型値を表にまとめます。

表面処理 $\alpha_s$ $\varepsilon$ $\alpha_s/\varepsilon$ 用途
白色塗装 (ZnO/シリコン系) 0.18 0.88 0.20 ラジエータ・低温保持
OSR(光学太陽反射鏡) 0.08 0.80 0.10 高性能ラジエータ
第2表面鏡(テフロン/Ag) 0.10 0.78 0.13 ラジエータ
磨いた金箔 0.30 0.04 7.5 高温保持・MLI外層
黒色塗装 0.95 0.90 1.06 内面・センサ遮光
アルミ蒸着Kapton 0.40 0.65 0.62 MLI外層
磨いたアルミ 0.12 0.04 3.0 高温保持

ZnO白色塗装は太陽光をほぼ反射しつつ赤外を効率よく放出する優等生で、$\alpha_s/\varepsilon = 0.2$ ですから上記式に代入すれば球衛星で約-85°Cまで下がります。これがラジエータ材料の定番である理由です。逆に金箔は太陽を吸い込みつつ赤外をほぼ反射しないので、高温保持や周辺機器の熱を逃さないMLI外層に使われます。

第2表面鏡(OSR)の仕組み

「光学太陽反射鏡(OSR、Optical Solar Reflector)」は宇宙ラジエータの最高峰です。構造は単純で、薄い石英ガラスの裏面にを蒸着しただけ。仕組みはこうです。太陽光(可視)は石英を透過して銀で反射される(高反射率)ので吸収されにくく $\alpha_s = 0.08$ と低い。一方、衛星自身の赤外放射は、石英が中赤外で強い放射率 を持つため、表面で効率よく出ていきます($\varepsilon = 0.80$)。可視と赤外で材料の振る舞いが正反対なのを巧妙に組み合わせた設計です。

OSRはGEO衛星や大型衛星の電子機器パネルに大面積で貼られます。一方、製造コストが高く重いので、最近はテフロンフィルムに銀蒸着した「第2表面鏡(Second Surface Mirror) 」と呼ばれる軽量代替品が広く使われています。性能は近いです。

軌道での平均化

ここまで「太陽に正対」と仮定しましたが、実際の衛星は姿勢が変わったり、ある面は影になっていたりします。表面ごとに $\alpha_s, \varepsilon$ を変えて多面体としてモデル化し、各面の太陽入射角・地球アルベド入射角・地球赤外入射角を時間とともに計算する必要があります。CubeSat の6面立方体なら、太陽指向面は白色塗装、深宇宙指向面は OSR、地球指向面は MLI、という具合に面ごとに別の表面処理を施すのが普通です。

ここまでで「表面のコーティングを変えれば数十°Cから百°Cの温度コントロールが可能」とわかりました。しかし衛星全体を温度均一に保つには、外気からの熱を遮断することも同じくらい重要です。次節では衛星表面の大部分を覆う「熱の毛布」、MLIの原理を見ていきます。

MLIの原理

多層断熱材という発想

衛星の機体を覆う、銀色や金色のカサカサした「アルミホイル」のような被覆——これがMLI(Multi-Layer Insulation、多層断熱材)です。1枚あたり厚さは数μm程度の超薄膜で、衛星の80%以上の表面を覆うこともあります。MLIは「真空中での放射伝熱を遮断する」目的で開発された宇宙特有の技術です。

地上の断熱材(グラスウールや発泡スチロール)は、内部に閉じ込められた空気が対流を抑えることで熱伝導を減らします。しかし宇宙では最初から対流がないので、対流抑制材は無意味です。問題は放射です。1枚の薄膜で太陽光を反射してもまだ多くの赤外がすり抜けてしまう。そこで「薄膜を多層重ねて、各層が次々と放射を反射する」というアイデアが生まれました。

1枚の遮熱板の効果

直感を養うため、まず1枚の遮熱板を入れた効果を考えます。温度 $T_h$ の高温面と温度 $T_c$ の低温面の間(真空)に、放射率 $\varepsilon$ の薄板を1枚挟みます。薄板の温度を $T_s$ とすると、定常状態では「高温面から薄板に流れる放射」と「薄板から低温面に流れる放射」が等しくなります。簡単のため両面とも放射率 $\varepsilon$、衛星の幾何を平行平板と仮定し、相互放射の式を使うと正味放射流束は

$$ q = \frac{\sigma(T_h^4 – T_c^4)}{1/\varepsilon_h + 1/\varepsilon_c – 1} $$

で与えられます($\varepsilon_h, \varepsilon_c$ は両面の放射率)。両面ともすべて $\varepsilon$ なら $1/\varepsilon + 1/\varepsilon – 1 = 2/\varepsilon – 1$ です。

ここに薄板を1枚挟んだ系を考えます。高温面→薄板の流束と薄板→低温面の流束を等しく置いて $T_s$ を消去すると、新しい正味流束は

$$ q’ = \frac{\sigma(T_h^4 – T_c^4)}{2 \cdot (2/\varepsilon – 1)} $$

つまりちょうど半分になります。同じ理屈で薄板を $n$ 枚重ねると、流束は元の $1/(n+1)$ になります。

$$ q_n = \frac{1}{n+1} \cdot \frac{\sigma(T_h^4 – T_c^4)}{2/\varepsilon – 1} $$

これがMLIの核心式です。遮熱層を増やすほど熱流が反比例で減る。20層なら $1/21$、50層なら $1/51$ になります。

有効放射率という指標

MLI全体を1つの「有効放射率 $\varepsilon^*$」で表現すると、外側からは

$$ q = \varepsilon^* \sigma (T_h^4 – T_c^4) $$

と書け、上の式と比較すれば

$$ \varepsilon^* = \frac{\varepsilon}{(n+1)(2 – \varepsilon)} $$

たとえば $\varepsilon = 0.05$(金属箔の典型値)で $n = 20$ 層なら、$\varepsilon^* \approx 0.05/(21 \times 1.95) \approx 0.0012$。これは通常の表面の100倍以上の断熱性能です。実際のMLI(Mylar/Kapton にアルミ蒸着)では、製造誤差や熱橋(縫い目・スペーサーでの接触伝導)の影響で $\varepsilon^* \sim 0.01$–$0.05$ が現実的な範囲となります。

真空が必須

MLIが性能を発揮する条件として、層間が完全な真空であることが必須です。地上では層間に空気があるため伝導でほとんど効果が出ません(だから打ち上げ前のテストはチャンバー内で行う)。さらに層間が接触すると伝導が発生して性能が落ちるため、各層は薄いポリエステルメッシュ(スペーサー)で隔離します。

実用上はMLIにベント穴を多数開けて、打ち上げ時に層間の空気を抜けやすくします。打ち上げ後の真空到達まで、空気が膨張してMLIを破壊しないようにする工夫です。設計の細部に宇宙特有の事情が詰まっています。

MLIで「外との熱の出入りをほぼゼロにする」ことができたなら、次の課題は「衛星内部で発熱した熱をどうやって運ぶか」です。ここで登場するのがヒートパイプです。

ヒートパイプとLHP

蒸発と凝縮の相変化サイクル

電子機器は内部で熱を発生しますが、すべての電子機器を直接ラジエータに貼り付けるのは現実的ではありません。離れた場所からラジエータへ熱を運ぶ「熱輸送デバイス」が必要です。地上では水冷ポンプを使いますが、宇宙では機械的可動部のないパッシブな手段が好まれます。それがヒートパイプ(heat pipe) です。

ヒートパイプは、密閉された中空管の中に作動流体(アンモニア、水、メタノール等)を封入したものです。管の内壁にはウィック(毛細管構造、金属メッシュや溝) が貼られています。動作はこうです。

  1. 蒸発部(電子機器に接続された高温側)で液体が熱を吸って蒸気になる
  2. 圧力差で蒸気が凝縮部(ラジエータに接続された低温側)に流れる
  3. 凝縮部で蒸気が冷えて液体に戻り、潜熱を放出する
  4. 凝縮した液体が毛細管力でウィックを伝って蒸発部へ戻る

この相変化サイクルが連続することで、熱が低温部→高温部の方向と逆に(蒸気の流れに乗って)絶え間なく運ばれます。電気もポンプも使わない、純粋に気液の相変化と表面張力で駆動される自己完結ループです。

なぜ等温に近いのか

ヒートパイプの最大の利点は、両端の温度差がきわめて小さいこと、つまり等温性です。これは、蒸気が一定温度で気液平衡を保ったまま流れるためです。蒸気圧と温度の関係(Clausius-Clapeyronの関係)から、圧力降下が小さければ蒸気温度も均一に保たれます。アンモニアヒートパイプでは、長さ1 mで数100 W輸送しても両端の温度差はわずか数°C以内に収まります。同じ熱量を金属の伝導で運ぶには断面積が膨大に必要であり、ヒートパイプの実効熱伝導率は銅の100〜1000倍にもなります。

毛細管力の限界

毛細管が液体を引き上げる能力には限界があります。毛細管圧 $\Delta P_{\text{cap}}$ は

$$ \Delta P_{\text{cap}} = \frac{2 \sigma_l \cos\theta}{r_{\text{pore}}} $$

で表され($\sigma_l$: 液体の表面張力、$\theta$: 接触角、$r_{\text{pore}}$: ウィック孔径)、これがパイプ全長の流路抵抗 $\Delta P_{\text{flow}}$ を上回らなければなりません。条件 $\Delta P_{\text{cap}} \geq \Delta P_{\text{flow}}$ から定まる最大熱輸送量を毛細管限界(capillary limit) と呼びます。

ヒートパイプには他にも限界があります。ソニック限界は蒸気速度が音速に達して圧力波が発生し熱輸送が止まる現象、エントレインメント限界は蒸気流が逆流する液体を引きずってウィックが乾く現象です。設計では作動流体・管径・ウィック構造・運転温度範囲をこれら全限界の交点で決めます。地上設計と違うのは、重力アシストが効かないことです。地上では液体が自然落下しますが、宇宙では毛細管力だけが頼りです。

LHP(Loop Heat Pipe)の登場

通常のヒートパイプは管長が長くなったり屈曲が増えたりすると毛細管限界に達しやすくなります。これを克服したのがLHP(Loop Heat Pipe) です。LHPは蒸気と液体を別々の管で循環させる「閉ループ構造」で、ウィックを蒸発部だけに局所化することで全体の流路抵抗を激減させます。

LHPの利点は

  • 数mから数十mの長距離熱輸送が可能
  • 配管をフレキシブルにできる(衛星アームの先端まで運べる)
  • 数kW級の大熱量輸送

国際宇宙ステーション、ロシアのEXPRESS-AMミルAtelite、最近のJWSTにもLHP系列の技術が使われており、現代の大型衛星熱制御の主役技術の一つです。

熱を運ぶ手段はわかりました。あとはそれを宇宙へ最終的に「捨てる」場所、ラジエータの設計です。

ラジエータ設計

Stefan-Boltzmannの逆問題

ラジエータは衛星から不要熱を深宇宙へ放出する装置です。基本は平板に近い構造に、放射率の高いコーティング(先述のZnO白色塗装やOSR)を施したものです。設計の出発点は、捨てたい熱量 $Q_{\text{reject}}$ から必要なラジエータ面積 $A_r$ を求める「逆問題」です。

ラジエータ温度を $T_r$、周囲環境(深宇宙+アルベド+地球赤外)の等価温度を $T_{\text{env}}$ とすると、正味放出熱量は

$$ Q_{\text{reject}} = \varepsilon \sigma A_r (T_r^4 – T_{\text{env}}^4) $$

これを $A_r$ について解くと

$$ A_r = \frac{Q_{\text{reject}}}{\varepsilon \sigma (T_r^4 – T_{\text{env}}^4)} $$

たとえば $Q = 500$ W、$T_r = 300$ K、$T_{\text{env}} = 250$ K、$\varepsilon = 0.85$ とすると、

$$ A_r = \frac{500}{0.85 \times 5.67 \times 10^{-8} \times (300^4 – 250^4)} = \frac{500}{0.85 \times 5.67 \times 10^{-8} \times (8.10 \times 10^9 – 3.91 \times 10^9)} $$

ここで $300^4 = 8.10 \times 10^9$、$250^4 = 3.91 \times 10^9$ なので分母は $0.85 \times 5.67 \times 10^{-8} \times 4.19 \times 10^9 \approx 202$ W/m²。よって $A_r \approx 500/202 \approx 2.5\ \text{m}^2$ となります。500 W捨てるのに約2.5平方メートル。低温で捨てようとすると面積がさらに必要になります。

太陽入射の影響

実際のラジエータは深宇宙だけでなく太陽光も浴びます。$\alpha_s S \cos\phi$($\phi$ は入射角)の熱を吸ってしまうので、これを上の式に加える必要があります。

$$ Q_{\text{reject}} = \varepsilon \sigma A_r (T_r^4 – T_{\text{env}}^4) – \alpha_s S A_r \cos\phi $$

太陽が当たる面では $\alpha_s$ を下げる必要があり、これが OSR の $\alpha_s = 0.08$ という低値を採用する理由です。

ヒートパイプとの統合

実際の衛星ラジエータは、ヒートパイプを多数埋め込んで内部に等温化された平板を作ります。電子機器の熱を集めるコールドプレート→ヒートパイプ→ラジエータ表面→深宇宙という熱の流れです。ヒートパイプで熱を分散させないと、局所的に高温になり放射効率が落ちる($T^4$ で効くため均一化のメリットが大きい)からです。

Lumped Parameter Modelと熱ネットワーク

実機の設計では衛星を多数の節点(ノード) に離散化し、各節点間の熱結合(伝導・放射)を熱抵抗ネットワークで表す Lumped Parameter Model(集中質量熱モデル) を使います。各節点の熱バランスは

$$ m_i c_i \frac{dT_i}{dt} = Q_{\text{in},i}(t) + \sum_j K_{ij}(T_j – T_i) + \sum_j R_{ij}(T_j^4 – T_i^4) $$

ここで $m_i c_i$ は熱容量、$K_{ij}$ は伝導カップリング係数、$R_{ij}$ は放射カップリング係数です。これを $N$ 元連立常微分方程式として時間積分します。実機の解析では TRASYS / SINDA / Thermal Desktop といった商用ソフトが標準で、数千ノードのモデルが普通に動かされます。

理論はここまでです。これらすべてをPythonコードで動かして、衛星の温度がどう振る舞うかを直接観察してみましょう。

Python実装 — 平衡温度から軌道温度変動まで

平衡温度の表面コーティング依存性

まず最もシンプルな計算として、球形衛星の平衡温度をコーティング別に算出します。$\alpha_s/\varepsilon$ 比だけで温度がどう変わるかを可視化します。

import numpy as np
import matplotlib.pyplot as plt

# 定数
S = 1361.0                    # 太陽定数 [W/m^2]
SIGMA = 5.67e-8               # Stefan-Boltzmann定数 [W/(m^2 K^4)]

def equilibrium_temp_sphere(alpha_s, epsilon, S_in=S, Q_int=0.0, R=0.5):
    """球形衛星の平衡温度
    alpha_s: 太陽吸収率, epsilon: 赤外放射率
    Q_int: 内部発熱 [W], R: 半径 [m]"""
    A_s = np.pi * R**2          # 投影面積
    A_r = 4 * np.pi * R**2       # 全表面積
    # alpha_s * S * A_s + Q_int = eps * sigma * T^4 * A_r
    T4 = (alpha_s * S_in * A_s + Q_int) / (epsilon * SIGMA * A_r)
    return T4 ** 0.25

# 代表的コーティングの (alpha_s, epsilon, 名前)
coatings = [
    (0.18, 0.88, "White paint (ZnO)"),
    (0.08, 0.80, "OSR"),
    (0.10, 0.78, "2nd surface mirror"),
    (0.30, 0.04, "Polished gold"),
    (0.95, 0.90, "Black paint"),
    (0.40, 0.65, "Aluminized Kapton"),
    (0.12, 0.04, "Polished Al"),
]

names, temps, ratios = [], [], []
for a, e, name in coatings:
    T = equilibrium_temp_sphere(a, e)
    names.append(name); temps.append(T - 273.15); ratios.append(a/e)

fig, ax = plt.subplots(figsize=(10, 5))
colors = plt.cm.coolwarm(np.linspace(0, 1, len(names)))
y_pos = np.arange(len(names))
bars = ax.barh(y_pos, temps, color=colors)
ax.set_yticks(y_pos); ax.set_yticklabels(names)
ax.set_xlabel("Equilibrium temperature [°C]")
ax.axvline(0, color='gray', alpha=0.5)
ax.axvline(20, color='green', ls='--', alpha=0.5, label='Comfortable for electronics')
for i, (T, r) in enumerate(zip(temps, ratios)):
    ax.text(T + 5, i, f"α/ε={r:.2f}", va='center')
ax.legend(); ax.set_title("Equilibrium temperature of a spherical satellite by coating")
plt.tight_layout(); plt.savefig("eq_temp_by_coating.png", dpi=150); plt.show()

このグラフから3つの大事な事実が読み取れます。第一に、$\alpha_s/\varepsilon$ 比が小さい白色塗装やOSRでは平衡温度が-90°C前後の極低温になります。これらは高温機器を冷やすラジエータ材料として使われ、太陽光が当たっても温度が上がりにくい性質を活かしています。第二に、金箔や磨いたアルミなど $\alpha_s/\varepsilon$ 比が3以上の材料では平衡温度が+200°C超に達します。電子機器を貼ったら一瞬で壊れますが、温めたい部位(推進剤タンクのヒーター代替)には有用です。第三に、ちょうど電子機器に適した0〜30°Cを実現するコーティングは黒色塗装(バランス型)に近く、実機ではこれと白色塗装を面ごとに使い分けて平均温度を狙います。コーティング選択は熱設計の最重要パラメータです。

MLIの遮熱効果シミュレーション

次に、MLIの層数を変えたときの正味放射流束を理論式で計算し、有効放射率がどう減るかを可視化します。

import numpy as np
import matplotlib.pyplot as plt

def mli_heat_flux(n_layers, eps_layer, T_h, T_c):
    """n_layers層MLIを通る正味放射流束 [W/m^2]
    eps_layer: 各層の放射率, T_h: 高温側温度, T_c: 低温側温度"""
    # 1枚あたりの放射抵抗 2/eps - 1, 直列加算で (n+1)倍に
    R_per_pair = 2/eps_layer - 1
    R_total = (n_layers + 1) * R_per_pair
    return SIGMA * (T_h**4 - T_c**4) / R_total

def mli_effective_emissivity(n_layers, eps_layer):
    """MLI全体の有効放射率"""
    return eps_layer / ((n_layers + 1) * (2 - eps_layer))

# 高温側 100°C, 低温側 -100°C, 各層 eps=0.05 (典型値)
T_h, T_c = 373.0, 173.0
n_range = np.arange(0, 50)
eps_layers = [0.03, 0.05, 0.10]

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(13, 5))
for eps in eps_layers:
    q = [mli_heat_flux(n, eps, T_h, T_c) for n in n_range]
    eps_eff = [mli_effective_emissivity(n, eps) for n in n_range]
    ax1.semilogy(n_range, q, label=f"ε_layer = {eps}")
    ax2.semilogy(n_range, eps_eff, label=f"ε_layer = {eps}")

# 参考: MLIなしの黒体間放射
q_no_mli = SIGMA * (T_h**4 - T_c**4)
ax1.axhline(q_no_mli, color='red', ls='--', label=f"No MLI (~{q_no_mli:.0f} W/m²)")
ax1.set_xlabel("Number of MLI layers n")
ax1.set_ylabel("Heat flux [W/m²]")
ax1.set_title(f"MLI heat flux (T_h=100°C, T_c=-100°C)")
ax1.legend(); ax1.grid(True, which='both', alpha=0.3)

ax2.set_xlabel("Number of MLI layers n")
ax2.set_ylabel("Effective emissivity ε*")
ax2.set_title("MLI effective emissivity")
ax2.legend(); ax2.grid(True, which='both', alpha=0.3)
plt.tight_layout(); plt.savefig("mli_performance.png", dpi=150); plt.show()

# 具体値
print(f"MLIなし: q = {q_no_mli:.1f} W/m²")
for n in [5, 10, 20, 50]:
    q = mli_heat_flux(n, 0.05, T_h, T_c)
    eps_eff = mli_effective_emissivity(n, 0.05)
    print(f"n={n:2d} 層: q = {q:.3f} W/m², ε* = {eps_eff:.5f} (削減率 1/{q_no_mli/q:.0f})")

このシミュレーションから、MLIの劇的な遮熱効果が明確に見えます。MLIなしの場合、100°Cと-100°C間の黒体放射流束は約1100 W/m² ですが、20層のMLI($\varepsilon=0.05$)を入れると 0.5 W/m²以下にまで激減し、約2000倍の遮熱効果が得られます。50層なら4000倍。グラフの両対数軸を見ると、層数増加に対して流束が反比例で減少する $1/(n+1)$ 則 が直線として現れていることが確認できます。有効放射率 $\varepsilon^*$ も同様に層数の増加で急速に低下し、典型的な衛星設計で使う10〜30層という値が「コスパの良い領域」であることが視覚的に納得できます。実機ではこれに熱橋の影響が加わって性能が落ちるため、$\varepsilon^* \sim 0.02$ あたりが現実的な目標になります。

ヒートパイプの蒸発-凝縮温度プロファイル

ヒートパイプの「等温性」を簡易モデルで確認します。蒸発部と凝縮部の温度をエネルギー保存と熱抵抗ネットワークで計算します。

import numpy as np
import matplotlib.pyplot as plt

def heat_pipe_temps(Q, T_source, T_sink, R_evap, R_vapor, R_cond):
    """ヒートパイプ各部の温度
    Q: 輸送熱量 [W]
    T_source: 熱源温度, T_sink: ヒートシンク温度
    R_evap, R_vapor, R_cond: 蒸発・蒸気・凝縮の熱抵抗 [K/W]"""
    R_total = R_evap + R_vapor + R_cond
    # 全体の正味温度差
    dT_total = Q * R_total
    # 各部の温度(蒸発部側から低温部へ)
    T_evap_wall = T_source - Q * R_evap  # 蒸発部壁面
    T_vapor = T_evap_wall - Q * R_vapor / 2  # 蒸気温度(中央)
    T_cond_wall = T_evap_wall - Q * R_vapor  # 凝縮部壁面
    return T_evap_wall, T_vapor, T_cond_wall

# 典型的なアンモニアヒートパイプ
T_source = 320.0       # 電子機器 47°C
T_sink = 270.0         # ラジエータ -3°C
R_evap = 0.05          # K/W
R_vapor = 0.005        # K/W (蒸気は等温性が高い)
R_cond = 0.05          # K/W

Qs = np.linspace(10, 300, 30)
T_ew, T_v, T_cw = [], [], []
for Q in Qs:
    a, b, c = heat_pipe_temps(Q, T_source, T_sink, R_evap, R_vapor, R_cond)
    T_ew.append(a); T_v.append(b); T_cw.append(c)

fig, ax = plt.subplots(figsize=(10, 5))
ax.plot(Qs, np.array(T_ew) - 273.15, 'r-', label='Evaporator wall')
ax.plot(Qs, np.array(T_v) - 273.15, 'g--', label='Vapor (center)')
ax.plot(Qs, np.array(T_cw) - 273.15, 'b-', label='Condenser wall')
ax.axhline(T_source - 273.15, color='red', ls=':', alpha=0.5, label='Heat source')
ax.axhline(T_sink - 273.15, color='blue', ls=':', alpha=0.5, label='Heat sink')
ax.set_xlabel("Transported heat Q [W]")
ax.set_ylabel("Temperature [°C]")
ax.set_title("Heat pipe temperature profile vs transported heat")
ax.legend(); ax.grid(True, alpha=0.3)
plt.tight_layout(); plt.savefig("heatpipe_profile.png", dpi=150); plt.show()

# 100Wでの両端温度差
T_ew_100, T_v_100, T_cw_100 = heat_pipe_temps(100, T_source, T_sink, R_evap, R_vapor, R_cond)
print(f"100W輸送時:")
print(f"  蒸発部壁: {T_ew_100-273.15:.1f}°C")
print(f"  蒸気: {T_v_100-273.15:.1f}°C")
print(f"  凝縮部壁: {T_cw_100-273.15:.1f}°C")
print(f"  両端壁面の温度差: {T_ew_100-T_cw_100:.2f}°C")

このプロットから、ヒートパイプの等温性能が一目で確認できます。100 W程度の熱輸送では蒸発部と凝縮部の壁面温度差はわずか0.5°C程度で、蒸気部分はほぼ完全に等温です。これは同じ熱量を金属棒の伝導で運ぶ場合に比べて1000倍以上の実効熱伝導率に相当します。Qを増やしていくと両端の温度差も比例的に増えますが、それでも数°C以下に収まります。実際のヒートパイプはこの「等温性」が利点で、衛星内の温度勾配を平準化し、ラジエータ面の温度を均一に保つことで放射効率を最大化します。プロットの傾きが熱抵抗 $R_{\text{total}}$ に対応し、ウィック設計・流体選定で最小化するのが実機設計の腕の見せ所です。

12節点集中質量熱モデルで軌道1周期の温度変動

最後に、衛星を12節点(6面 + 内部6機器)に分割した集中質量熱モデルで、LEO衛星が90分軌道を1周する間の温度変動をシミュレーションします。各面の太陽入射が時間変化することで温度がどう振る舞うかを見ます。

import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import solve_ivp

SIGMA = 5.67e-8

# 衛星パラメータ(1辺 1m の立方体 + 内部6機器を想定)
N = 12  # ノード数: 0-5=外面(±X,±Y,±Z), 6-11=内部機器
A_face = 1.0   # 各面の面積 m^2
m_face = 5.0   # 各面の質量 kg
c_face = 900.0 # アルミ比熱 J/(kg K)
m_int = 10.0
c_int = 500.0

# 外面の表面光学特性(面ごとに変える)
alpha_s_faces = np.array([0.18, 0.18, 0.18, 0.18, 0.08, 0.40])  # +X,-X,+Y,-Y,+Z(OSR),-Z(MLI)
eps_faces = np.array([0.88, 0.88, 0.88, 0.88, 0.80, 0.65])

# 内部機器の発熱(時間依存)
def internal_power(t, dev_idx):
    """機器ごとの消費電力プロファイル [W]"""
    base = [50, 30, 80, 20, 40, 60][dev_idx]
    # 周期5400秒(=90分)で20%程度の変動
    return base * (1 + 0.2 * np.sin(2*np.pi*t/5400 + dev_idx))

# 軌道環境(LEO, 90分周期, 半分日陰)
T_PERIOD = 5400.0  # 90分
T_ECLIPSE_START = T_PERIOD * 0.55
T_ECLIPSE_END = T_PERIOD * 0.95

def solar_flux(t, face_idx):
    """各面が浴びる太陽輻射 [W/m^2]
    face_idx: 0=+X, 1=-X, 2=+Y, 3=-Y, 4=+Z, 5=-Z"""
    t_mod = t % T_PERIOD
    if T_ECLIPSE_START <= t_mod <= T_ECLIPSE_END:
        return 0.0  # 日陰
    # 軌道進行で太陽指向角が変化、+X面が太陽追尾と仮定
    omega = 2*np.pi / T_PERIOD
    if face_idx == 0:    # +X (主に太陽指向)
        return 1361.0 * max(0, np.cos(omega * t_mod))
    elif face_idx == 1:  # -X
        return 1361.0 * max(0, -np.cos(omega * t_mod))
    elif face_idx == 4:  # +Z (深宇宙指向、わずか)
        return 1361.0 * 0.1
    else:
        return 1361.0 * 0.3 * max(0, np.sin(omega * t_mod))

def earth_ir(t, face_idx):
    """地球赤外放射 [W/m^2] (ナディア指向面=-Z が最大)"""
    if face_idx == 5:    # -Z 地球指向
        return 237.0 * 0.8
    elif face_idx in [0, 1, 2, 3]:  # 側面
        return 237.0 * 0.3
    else:
        return 0.0

# 伝導カップリング行列(節点間の熱結合)K_ij [W/K]
K = np.zeros((N, N))
# 外面同士は弱く接続(コーナーで)
for i in range(6):
    for j in range(i+1, 6):
        K[i,j] = K[j,i] = 0.5
# 各内部機器は最も近い1〜2面に接続
face_for_dev = [0, 1, 2, 3, 4, 5]  # 機器kは面kにマウント
for k in range(6):
    K[6+k, face_for_dev[k]] = K[face_for_dev[k], 6+k] = 5.0
# 内部機器同士もハーネスで弱く接続
for i in range(6, N):
    for j in range(i+1, N):
        K[i,j] = K[j,i] = 0.3

# 熱容量ベクトル
C = np.zeros(N)
C[:6] = m_face * c_face
C[6:] = m_int * c_int

def dTdt(t, T):
    dT = np.zeros(N)
    # 外面:太陽吸収 + 地球IR吸収 + 放射放出 + 伝導
    for i in range(6):
        Q_solar = alpha_s_faces[i] * solar_flux(t, i) * A_face
        Q_earth = eps_faces[i] * earth_ir(t, i) * A_face
        Q_rad_out = eps_faces[i] * SIGMA * T[i]**4 * A_face
        Q_cond = sum(K[i,j] * (T[j] - T[i]) for j in range(N))
        dT[i] = (Q_solar + Q_earth - Q_rad_out + Q_cond) / C[i]
    # 内部機器:消費電力発熱 + 伝導のみ
    for k in range(6):
        i = 6 + k
        Q_int = internal_power(t, k)
        Q_cond = sum(K[i,j] * (T[j] - T[i]) for j in range(N))
        dT[i] = (Q_int + Q_cond) / C[i]
    return dT

# 初期条件: 全節点 280 K
T0 = np.ones(N) * 280.0
t_span = (0, 3 * T_PERIOD)  # 軌道3周分
t_eval = np.linspace(*t_span, 600)

sol = solve_ivp(dTdt, t_span, T0, t_eval=t_eval, method='LSODA', rtol=1e-6)

# プロット
fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(11, 8), sharex=True)
face_labels = ['+X (Sun)', '-X', '+Y', '-Y', '+Z (Space, OSR)', '-Z (Earth, MLI)']
for i in range(6):
    ax1.plot(sol.t/60, sol.y[i] - 273.15, label=face_labels[i])
ax1.set_ylabel("External face temp [°C]")
ax1.legend(loc='upper right', fontsize=9)
ax1.grid(alpha=0.3)
ax1.set_title("Satellite temperature over 3 orbits (90 min each)")
# 日陰帯を網掛け
for n in range(3):
    ax1.axvspan((n*T_PERIOD + T_ECLIPSE_START)/60, (n*T_PERIOD + T_ECLIPSE_END)/60,
                 color='gray', alpha=0.15)

dev_labels = [f'Device {i+1} (mounted on face {face_for_dev[i]})' for i in range(6)]
for k in range(6):
    ax2.plot(sol.t/60, sol.y[6+k] - 273.15, label=dev_labels[k])
ax2.set_ylabel("Internal device temp [°C]")
ax2.set_xlabel("Time [min]")
ax2.legend(loc='upper right', fontsize=8)
ax2.grid(alpha=0.3)
for n in range(3):
    ax2.axvspan((n*T_PERIOD + T_ECLIPSE_START)/60, (n*T_PERIOD + T_ECLIPSE_END)/60,
                 color='gray', alpha=0.15)
plt.tight_layout(); plt.savefig("orbital_temperature.png", dpi=150); plt.show()

# 統計
print("=== 軌道3周目の温度統計 ===")
mask = sol.t > 2 * T_PERIOD
for i, name in enumerate(face_labels):
    T_face = sol.y[i, mask] - 273.15
    print(f"{name:25s}: 平均{T_face.mean():+6.1f}°C, 変動幅 {T_face.max()-T_face.min():.1f}°C")
print()
for k, name in enumerate(dev_labels):
    T_dev = sol.y[6+k, mask] - 273.15
    print(f"{name:50s}: 平均{T_dev.mean():+6.1f}°C, 変動幅 {T_dev.max()-T_dev.min():.1f}°C")

このシミュレーション結果から、衛星熱設計の核心的な特徴が複数読み取れます。外面の温度変動(上段)は軌道周期 90 分で振動し、太陽指向面(+X、赤線)は日向で +50〜+80°C、日陰(網掛け部)では急速に -50°C 以下まで落ちます。一方、深宇宙を向く OSR コーティングの +Z 面(紫線)は常に低温(-50〜-30°C)で、ラジエータとして安定動作することが確認できます。MLI で覆われた -Z 面(茶線)は地球赤外を浴びても放射率が低いので変動幅が小さく、衛星本体を断熱しています。内部機器の温度(下段)は、外面に比べて変動幅が小さく(熱容量大 + 伝導カップリングで平滑化される)、ほぼ +10〜+30°C に収まっています。これがまさに「外環境の±100°C変動を、機器レベルでは±10°C以内に抑える」熱制御設計の成功例です。実機ではこのモデルを数千ノードに拡張し、ヒーター制御アルゴリズムとも結合させて最悪条件(コールドケース・ホットケース)での生存性を検証します。

応用 — ISS/JWST/RTG

国際宇宙ステーション(ISS)の外部熱制御ループ

ISSは熱制御の規模で言えば人類最大のシステムです。内部で消費される電力は約100 kWで、そのほぼすべてが熱として外部に捨てられなければなりません。冷却系は二段構成です。

  • 内部水冷ループ: クルーモジュールと機器の熱を水で集める
  • 外部アンモニア冷却ループ: 内部ループから熱を受け取り、巨大ラジエータへ運ぶ

外部ループにアンモニアを使うのは、低温(-40°C以下)でも液体を保ち、潜熱が大きく軽量で済むからです。ラジエータパネルは合計約1400 m² の面積を持ち、地球周回90分のうち日陰側で集中的に放熱します。万一の冷却剤漏洩はクルーの命に関わるため、冗長化と漏洩検知が徹底されています。

JWST(ジェイムズ・ウェッブ宇宙望遠鏡)の極低温パッシブ冷却

JWSTは中赤外観測のため検出器を40 K以下に冷却する必要があります。能動冷凍機を最小限に抑え、5層サンシールドによる完全パッシブ冷却で実現したのが画期的な点です。

5層のサンシールドは1層あたり厚さ数十μmのカプトンに金属蒸着したもので、太陽側の第1層は約 +85°C(358 K)になります。各層を通過するごとに熱が分散・放出され、5層通過後の冷却側面では約 -233°C(40 K)。1層ごとに約60°Cの温度低下が達成されています。この温度差を達成できているのが、まさに本記事のMLI理論の極限利用例です。サンシールドの展開は打ち上げ後最大のリスク要因でしたが、2022年無事に成功しました。

加えて、検出器の最終冷却(〜7 Kまで)にはパルスチューブ式の極低温冷凍機が使われています。MLIだけでは7 Kまで届かないからです。

RTG(放射性同位体熱電気転換器)の排熱処理

火星探査機キュリオシティやパーシビアランス、外惑星探査機カッシーニやボイジャーには、放射性同位体(プルトニウム238)の崩壊熱を電力に変換するRTGが搭載されています。RTGは熱→電気変換効率が6〜7%程度しかないので、残り93%は廃熱として外部に捨てる必要があります。

カッシーニのRTGは3基で約4400 Wの熱を発生し、その大部分を放射フィンから直接深宇宙へ放出。同時にその一部を温度維持の熱源としても活用し、極寒の土星周回環境で電子機器を温める二重の役割を果たしました。火星ローバーも同様で、夜間気温-90°Cの火星で電子機器を温めるためにRTG熱を内部に循環させています。「廃熱が宝物」になる宇宙環境ならではの設計です。

これらの実例はすべて、本記事で扱った3要素(MLI・ヒートパイプ・ラジエータ)の組み合わせで成り立っています。スケールこそ違えど、原理は同じです。

まとめ

本記事では、衛星熱制御の3つの基本技術について、宇宙熱環境の物理から具体的な設計手法まで解説しました。

  • 宇宙熱環境: 太陽輻射 1361 W/m²、地球アルベド ~408 W/m²($a=0.30$)、地球赤外 237 W/m²、深宇宙 ≈ 0 W/m²。媒体がないため放射のみが熱輸送手段
  • 熱平衡方程式: $\alpha_s S A_s + Q_{\text{int}} = \varepsilon \sigma T^4 A_r$ から平衡温度が決まる。$\alpha_s/\varepsilon$ 比と面積比が支配パラメータ。
  • 表面光学特性: $\alpha_s$(可視光吸収)と $\varepsilon$(赤外放射)はスペクトルが違うので独立に設計可能。OSR は $\alpha_s/\varepsilon = 0.1$ でラジエータの定番、金箔は $\alpha_s/\varepsilon = 7$ で高温保持に。
  • MLI: 多層遮熱で正味流束を $1/(n+1)$ に削減。20層で 2000 倍、有効放射率 $\varepsilon^* \sim 0.001$ も理論上可能(実機は 0.01〜0.05)。真空が必須。
  • ヒートパイプとLHP: 蒸発-凝縮の相変化サイクルで等温的に熱輸送。実効熱伝導率は銅の100〜1000倍。毛細管限界・ソニック限界が設計制約。LHPは長距離・大熱量で活躍。
  • ラジエータ: $A_r = Q/(\varepsilon\sigma(T_r^4 – T_{\text{env}}^4))$ で面積設計。実機はヒートパイプで等温化された平板にOSR を貼る構造。
  • 集中質量熱モデル: 衛星を多数ノードに分割した連立 ODE で軌道周期の温度変動を予測。実機では数千ノードのTRASYS/SINDA/Thermal Desktop モデルが標準。

実シミュレーションでは、LEO衛星の外面温度が±100°C振動するなかで、MLIとヒートパイプの組み合わせにより内部機器を+10〜+30°Cに安定保持できることが確認できました。ISS・JWST・RTG搭載機といったあらゆる現代宇宙ミッションが、この記事で扱った原理の積み上げの上に成立しています。熱制御は地味ですが、衛星の寿命と機能を左右する屋台骨の技術です。

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