火力発電所の熱効率はおおよそ35〜42%です。残りの55〜65%のエネルギーは、冷却水や排気とともに捨てられています。では、技術を改良すれば効率は100%に到達できるのでしょうか?
答えは「いいえ」です。どんなに技術が進歩しても、2つの温度が異なる熱源の間で動作する熱機関には、理論上越えられない効率の壁が存在します。その壁を定めるのが、本記事で解説するカルノーサイクル(Carnot cycle)です。
カルノーサイクルを理解すると、以下のような幅広い場面で「なぜこの効率なのか」「どこまで改善の余地があるのか」が見通せるようになります。
- 発電所の設計: 火力・原子力・地熱発電の理論限界効率を見積もる
- 冷凍・空調: ヒートポンプや冷凍機の成績係数(COP)の上限を評価する
- エントロピーの理解: エントロピーの概念がなぜ導入されたのか、その歴史的原点を知る
- 自動車エンジンの改良: ガソリンエンジンやディーゼルエンジンの熱効率改善の指針とする
本記事の内容
- カルノーサイクルの直感的理解とピストンの動き
- 4つの過程(等温膨張・断熱膨張・等温圧縮・断熱圧縮)の物理と数式
- 体積比 $V_2/V_1 = V_3/V_4$ の丁寧な導出
- カルノー効率 $\eta = 1 – T_L/T_H$ の導出
- カルノーの定理と背理法による証明
- 火力・原子力・ガスタービン等の数値比較
- p-V図とT-S図のPython可視化と考察
前提知識
この記事を読む前に、以下の記事を読んでおくと理解が深まります。
カルノーサイクルとは
「完璧な熱機関」という思考実験
まず、熱機関の基本的な仕組みを思い出しましょう。やかんに水を入れて火にかけると、蒸気が出ます。この蒸気でピストンを押すと、熱エネルギーが力学的な仕事に変わります。これが蒸気機関 — つまり熱機関の原理です。
しかし、実際の熱機関では摩擦や急激な膨張によるエネルギー損失がつきものです。ここで、1824年にフランスの技術者サディ・カルノー(Sadi Carnot)は次のような問いを立てました。
「もし一切の摩擦や損失がない、完璧な熱機関を作れたとしたら、その効率はどこまで上がるのか?」
この思考実験から生まれたのがカルノーサイクルです。カルノーサイクルは理想的な可逆過程だけで構成された熱機関であり、実際には実現できません。しかし、その効率はあらゆる実在の熱機関の効率の上限を与えるという点で、熱力学の理論的支柱となっています。
カルノーサイクルの基本設定
カルノーサイクルが動作する舞台を整理しましょう。登場するのは3つの要素です。
- 高温熱源(温度 $T_H$): ボイラーや燃焼ガスに相当。作動流体に熱を与えます
- 低温熱源(温度 $T_L$): 冷却水や外気に相当。作動流体から熱を受け取ります
- 作動流体(理想気体): ピストン内に閉じ込められた気体。膨張・圧縮を繰り返して仕事をします
ここで重要なのは、高温熱源も低温熱源も十分に大きい(熱容量が無限大) と仮定することです。そのため、作動流体が熱を吸ったり放出したりしても、熱源の温度は変わりません。
作動流体は理想気体の状態方程式 $pV = nRT$ に従うものとし、以下では1 molの場合を考えます($pV = RT$)。
4つの過程の全体像
カルノーサイクルは、以下の4つの過程を順番に実行して1サイクルを完成させます。
| 過程 | 種類 | 温度 | 熱のやり取り | ピストンの動き |
|---|---|---|---|---|
| $1 \to 2$ | 等温膨張 | $T_H$(一定) | 高温熱源から $Q_H$ を吸収 | ゆっくり膨張 |
| $2 \to 3$ | 断熱膨張 | $T_H \to T_L$(降下) | なし($Q = 0$) | さらに膨張 |
| $3 \to 4$ | 等温圧縮 | $T_L$(一定) | 低温熱源へ $Q_L$ を放出 | ゆっくり圧縮 |
| $4 \to 1$ | 断熱圧縮 | $T_L \to T_H$(上昇) | なし($Q = 0$) | さらに圧縮 |
イメージとしては、「高温で膨張して仕事を取り出し、低温で圧縮して元に戻す」 サイクルです。膨張時に取り出す仕事は圧縮時に必要な仕事より大きいため、差し引きで正味の仕事が得られます。
では、4つの過程それぞれを「何が起きているか」から見ていきましょう。
過程 1→2: 等温膨張(温度 $T_H$ 一定)
何が起きているか
ピストン内の気体を、高温熱源(温度 $T_H$)に接触させた状態でゆっくりと膨張させます。「ゆっくり」というのが重要です。急激に膨張させると、気体内部に温度のムラが生じて不可逆になってしまいます。
高温熱源に接触しているので、膨張しても気体の温度は $T_H$ に保たれます。温度が一定なら、理想気体の内部エネルギーは温度だけの関数なので変化しません。つまり、高温熱源から吸収した熱はすべて仕事に変換されます。
「それなら等温膨張だけで100%の効率が出るのでは?」と思うかもしれません。しかし、ここが大事なポイントです。等温膨張だけではサイクルが完成しません。ピストンを元に戻さないと、次のサイクルを回せないのです。元に戻す過程で必ず仕事を消費するため、100%にはならないのです。
数式での解析
理想気体(1 mol)の等温過程では、熱力学第1法則 $\Delta U = Q – W$ において、温度が一定なので内部エネルギー変化 $\Delta U = 0$ です。したがって、吸収した熱 $Q_H$ はすべて仕事 $W_{12}$ に等しくなります。
状態方程式 $p = RT_H / V$ を用いてこの仕事を計算すると:
$$ Q_H = W_{12} = \int_{V_1}^{V_2} p \, dV = \int_{V_1}^{V_2} \frac{RT_H}{V} \, dV = RT_H \ln\frac{V_2}{V_1} $$
膨張なので $V_2 > V_1$ であり、$\ln(V_2/V_1) > 0$ です。つまり $Q_H > 0$(熱を吸収)、$W_{12} > 0$(外部に仕事をする)となり、物理的な直感と一致します。
この過程を終えると、気体は体積 $V_1$ から $V_2$ に膨張し、圧力は $p_1$ から $p_2$ に低下しています。温度はまだ $T_H$ のままです。次の過程では、高温熱源を切り離し、気体を断熱的に膨張させてさらに仕事を取り出します。
過程 2→3: 断熱膨張($Q = 0$)
何が起きているか
ここで高温熱源を切り離します。気体は外部と熱をやり取りできなくなった状態で、さらに膨張を続けます。
熱の供給がないのに膨張すると、気体は自分自身の内部エネルギーを使って仕事をすることになります。内部エネルギーが減ると温度が下がるので、断熱膨張では気体の温度が $T_H$ から $T_L$ まで降下します。
日常の例で言えば、スプレー缶を長時間噴射すると缶が冷たくなるのと同じ原理です。気体が断熱的に膨張することで温度が下がるのです。
数式での解析
断熱過程では $Q = 0$ なので、熱力学第1法則より $\Delta U = -W_{23}$ です。すなわち、気体がした仕事の分だけ内部エネルギーが減少します。
熱力学の各種過程で学んだように、理想気体の断熱過程では次のポアソンの関係式(断熱の式)が成り立ちます。
$$ TV^{\gamma – 1} = \text{const} $$
ここで $\gamma$ は比熱比 $\gamma = C_p / C_v$ です。この関係式を状態2と状態3に適用すると:
$$ \begin{equation} T_H V_2^{\gamma-1} = T_L V_3^{\gamma-1} \end{equation} $$
また、気体が外部にした仕事は内部エネルギーの減少分に等しいので:
$$ W_{23} = C_v(T_H – T_L) $$
$T_H > T_L$ なので $W_{23} > 0$ であり、この過程でも気体は外部に仕事をしています。
この過程が終わると、気体の温度は低温熱源と同じ $T_L$ まで下がり、体積は $V_3$ に達しています。ここからは、サイクルを元に戻すための圧縮過程に入ります。低温熱源に接触させた状態で圧縮を行う — これが次の等温圧縮です。
過程 3→4: 等温圧縮(温度 $T_L$ 一定)
何が起きているか
今度は低温熱源(温度 $T_L$)に接触させた状態で、気体をゆっくりと圧縮します。
圧縮すると気体の温度は上がろうとしますが、低温熱源に接触しているため、発生した熱は低温熱源に逃げていきます。その結果、温度は $T_L$ に保たれたまま体積が減少します。
ここでのポイントは、この過程で外部から仕事を加えなければならないということです。膨張は自発的に起きますが、圧縮には仕事が必要です。カルノーサイクルが100%の効率にならないのは、この圧縮過程で仕事を消費するためです。
しかし、圧縮を低温($T_L$)で行うことが非常に重要です。なぜなら、低温では気体の圧力が低いため、同じ体積を縮めるのに必要な仕事が小さいのです。高温で膨張させて大きな仕事を取り出し、低温で圧縮して小さな仕事で元に戻す — これがカルノーサイクルで正味の仕事が得られるメカニズムです。
数式での解析
等温膨張の場合と同様に、等温圧縮でも $\Delta U = 0$(温度一定のため)です。ただし今回は圧縮なので、外部が気体に仕事をし、その分の熱が低温熱源に放出されます。
気体が低温熱源に放出する熱量 $Q_L$ は:
$$ Q_L = \left|W_{34}\right| = RT_L \ln\frac{V_3}{V_4} $$
ここで $V_3 > V_4$(圧縮なので体積が減少)であるため、$\ln(V_3/V_4) > 0$ すなわち $Q_L > 0$ です。この符号の約束として、$Q_L$ は系が放出する熱を正の値で表しています。
この等温圧縮が終わると、体積は $V_4$ まで縮まっていますが、温度はまだ $T_L$ のままです。最後の過程で、断熱的に圧縮して温度を $T_H$ まで上げ、初期状態に戻します。
過程 4→1: 断熱圧縮($Q = 0$)
何が起きているか
最後に、低温熱源を切り離し、気体を断熱的に圧縮します。外部から仕事が加わり、熱の逃げ場がないため、気体の温度は $T_L$ から $T_H$ まで上昇します。
これで気体は最初の状態(温度 $T_H$、体積 $V_1$、圧力 $p_1$)に戻り、1サイクルが完了します。サイクルを繰り返すことで、連続的に仕事を取り出せます。
数式での解析
断熱過程の関係式 $TV^{\gamma – 1} = \text{const}$ を状態4と状態1に適用すると:
$$ \begin{equation} T_L V_4^{\gamma-1} = T_H V_1^{\gamma-1} \end{equation} $$
この過程で外部が気体にする仕事は:
$$ W_{41} = C_v(T_L – T_H) < 0 $$
符号が負、すなわち気体が外部に仕事を「される」側であることを意味しています。
4つの過程をすべて追いました。ここまでで、サイクル全体の「物理的な絵」が見えたと思います。次に、この4つの過程から得られるサイクル全体の正味の仕事と熱効率を、数式を使って導出していきましょう。
熱効率の導出
熱効率の定義
熱機関の「性能」を測る指標が熱効率 $\eta$ です。直感的には、「投入した熱エネルギーのうち、どれだけを有用な仕事に変換できたか」を表す割合です。
$$ \eta = \frac{W_{\text{net}}}{Q_H} $$
ここで $W_{\text{net}}$ はサイクル全体で取り出せる正味の仕事、$Q_H$ は高温熱源から吸収した熱です。
サイクル全体では作動流体は元の状態に戻るので、1サイクルあたりの内部エネルギー変化はゼロです。したがって、熱力学第1法則より:
$$ W_{\text{net}} = Q_H – Q_L $$
つまり、吸収した熱 $Q_H$ から放出した熱 $Q_L$ を引いた残りが仕事になります。これを熱効率の式に代入すると:
$$ \eta = \frac{Q_H – Q_L}{Q_H} = 1 – \frac{Q_L}{Q_H} $$
ここまでは一般的な熱機関に当てはまる式です。カルノーサイクル特有の結果を得るには、$Q_L / Q_H$ を温度で表す必要があります。
体積比の関係 $V_2/V_1 = V_3/V_4$ の導出
カルノー効率を導くうえで鍵となるのが、4つの状態点の体積の間に成り立つ巧みな関係です。この関係を丁寧に導きましょう。
先ほどの断熱過程の関係式、式(1)と式(2)をもう一度並べます。
過程 $2 \to 3$(断熱膨張)の関係式:
$$ T_H V_2^{\gamma-1} = T_L V_3^{\gamma-1} $$
過程 $4 \to 1$(断熱圧縮)の関係式:
$$ T_L V_4^{\gamma-1} = T_H V_1^{\gamma-1} $$
式(1)の両辺を式(2)の両辺でそれぞれ割ります:
$$ \frac{T_H V_2^{\gamma-1}}{T_L V_4^{\gamma-1}} = \frac{T_L V_3^{\gamma-1}}{T_H V_1^{\gamma-1}} $$
左辺と右辺をそれぞれ整理します。左辺は $\frac{T_H}{T_L} \cdot \frac{V_2^{\gamma-1}}{V_4^{\gamma-1}}$、右辺は $\frac{T_L}{T_H} \cdot \frac{V_3^{\gamma-1}}{V_1^{\gamma-1}}$ です:
$$ \frac{T_H}{T_L} \cdot \left(\frac{V_2}{V_4}\right)^{\gamma-1} = \frac{T_L}{T_H} \cdot \left(\frac{V_3}{V_1}\right)^{\gamma-1} $$
$\frac{T_H}{T_L}$ を右辺に移して整理します。右辺の $\frac{T_L}{T_H}$ と合わせると $\left(\frac{T_L}{T_H}\right)^2$ が出ますが、ここでもう少し直接的な方法を使いましょう。
式(1)を $V_2^{\gamma-1}$ について解きます:
$$ V_2^{\gamma-1} = \frac{T_L}{T_H} V_3^{\gamma-1} $$
式(2)を $V_1^{\gamma-1}$ について解きます:
$$ V_1^{\gamma-1} = \frac{T_L}{T_H} V_4^{\gamma-1} $$
この2式の比を取ると、右辺の $T_L / T_H$ が約分されて:
$$ \frac{V_2^{\gamma-1}}{V_1^{\gamma-1}} = \frac{V_3^{\gamma-1}}{V_4^{\gamma-1}} $$
$\gamma – 1 > 0$(理想気体では $\gamma > 1$)なので、両辺の $(\gamma – 1)$ 乗根を取ることができます:
$$ \boxed{\frac{V_2}{V_1} = \frac{V_3}{V_4}} $$
この関係式は「等温膨張での体積比と等温圧縮での体積比が等しい」ことを意味しています。2つの断熱過程が、2つの等温過程の体積比を結び付ける「橋」の役割を果たしているのです。
カルノー効率の最終導出
体積比の関係が得られたので、いよいよ $Q_L / Q_H$ を温度だけで表現できます。
先ほどの等温過程の結果を書き並べます:
$$ Q_H = RT_H \ln\frac{V_2}{V_1}, \qquad Q_L = RT_L \ln\frac{V_3}{V_4} $$
$Q_L / Q_H$ の比を計算します:
$$ \frac{Q_L}{Q_H} = \frac{RT_L \ln(V_3/V_4)}{RT_H \ln(V_2/V_1)} $$
$R$ は共通因子なので約分されます。さらに、先ほど導いた $V_2/V_1 = V_3/V_4$ より、$\ln(V_3/V_4) = \ln(V_2/V_1)$ が成り立つので、対数部分もきれいに約分されます:
$$ \frac{Q_L}{Q_H} = \frac{T_L}{T_H} $$
これを熱効率の式 $\eta = 1 – Q_L / Q_H$ に代入すると、カルノー効率が得られます:
$$ \begin{equation} \boxed{\eta_{\text{Carnot}} = 1 – \frac{T_L}{T_H}} \end{equation} $$
カルノー効率の意味を読み解く
この結果は、短い式の中に深い物理が詰まっています。
1. 効率は温度だけで決まる: 作動流体が空気であろうとヘリウムであろうと水蒸気であろうと、カルノー効率は $T_H$ と $T_L$ だけで決まります。これは驚くべきことです。物質の種類によらない普遍的な上限が存在するのです。
2. 効率100%は不可能: $\eta = 1$(100%)を達成するには $T_L = 0$ K(絶対零度)が必要です。しかし、熱力学の基本概念で知られるように、絶対零度には有限回の操作で到達できません(熱力学第3法則)。したがって、$\eta < 1$ は原理的な制約です。
3. $T_H$ を上げるか $T_L$ を下げるか: 効率を上げるには、高温熱源の温度を上げるか、低温熱源の温度を下げるかの2通りがあります。実際のエンジニアリングでは、低温熱源は外気($\sim 300$ K)で固定されることが多いため、高温熱源の温度を上げる方向が追求されます。耐熱材料の開発がエンジン効率向上の鍵となるのは、このためです。
4. 温度は絶対温度: カルノー効率の式には絶対温度(ケルビン)を使わなければなりません。セルシウス度で計算すると意味のない結果になります。これは熱力学の式が本質的に絶対温度スケールを要求することの表れです。
カルノー効率が理論的な最大値であることはわかりましたが、なぜ「すべての熱機関の効率はカルノー効率以下」と言えるのでしょうか。次のセクションでは、この主張を厳密に述べたカルノーの定理とその証明を見ていきます。
カルノーの定理
定理の主張
カルノーの定理: 同じ高温熱源(温度 $T_H$)と低温熱源(温度 $T_L$)の間で動作するすべての熱機関の中で、可逆機関(カルノー機関)が最大の効率を持つ。
数式で書けば、任意の不可逆熱機関の効率 $\eta_{\text{irrev}}$ に対して:
$$ \eta_{\text{irrev}} \leq \eta_{\text{Carnot}} = 1 – \frac{T_L}{T_H} $$
等号が成り立つのは、その熱機関が可逆(カルノーサイクル)である場合に限ります。
直感的な理解
なぜカルノー機関が最大効率なのかを直感的に理解するには、「可逆」という性質が鍵です。
可逆過程とは、「巻き戻し」ができる過程です。フィルムを逆再生するように、すべてのステップを逆向きに実行でき、系と外部のすべてを完全に元に戻せます。一方、不可逆過程(摩擦、急激な膨張、有限の温度差を介した熱移動など)には必ずエネルギーの「質」の劣化が伴い、その分だけ有用な仕事に変換できるエネルギーが減ります。
カルノーサイクルは不可逆な要素が一切ないため、利用可能なエネルギーを最大限仕事に変換できるのです。
背理法による証明
この定理を熱力学第2法則を用いて背理法で証明します。証明のアイデアは「カルノー機関を逆転させる」ことです。
仮定(背理法): ある不可逆熱機関Xが、カルノー機関Cより高い効率を持つとします:
$$ \eta_X > \eta_C $$
ステップ1: 熱機関Xとカルノー機関Cが同じ2つの熱源の間で動作しているとします。Xは高温熱源から熱 $Q_H$ を吸収し、仕事 $W_X$ を出力し、低温熱源に熱 $Q_H – W_X$ を放出します。
ステップ2: カルノー機関は可逆なので、逆転させてヒートポンプとして動作させることができます。逆転カルノー機関は、仕事 $W_C$ を受け取り、低温熱源から熱を吸い上げ、高温熱源に熱 $Q_H$ を戻します。ここで、逆転カルノー機関が高温熱源に戻す熱が、ちょうどXが吸収する熱 $Q_H$ と等しくなるように調整します。
ステップ3: この2つの機関を組み合わせた複合システムを考えます。高温熱源から見ると、Xが $Q_H$ を取り出し、逆転Cが $Q_H$ を戻すので、正味の熱移動はゼロです。
ステップ4: 仮定 $\eta_X > \eta_C$ より $W_X > W_C$(同じ $Q_H$ に対して、Xの方が多くの仕事を出す)です。複合システム全体では正味の仕事 $W_X – W_C > 0$ が生じます。
ステップ5: この正味の仕事のエネルギーはどこから来たのでしょうか?高温熱源への正味の熱移動はゼロなので、低温熱源から吸い上げた熱が唯一のエネルギー源です。つまり、この複合システムは低温熱源から熱を吸収し、それを完全に仕事に変換する装置ということになります。
結論: これは熱力学第2法則のクラウジウスの原理(「低温物体から高温物体へ熱を移すだけで他に何の変化も残さない過程は不可能」)に違反します。別の言い方をすれば、ケルビンの原理(「単一の熱源から熱を吸収し、それをすべて仕事に変換する過程は不可能」)にも違反します。
したがって、仮定 $\eta_X > \eta_C$ は誤りであり、$\eta_X \leq \eta_C$ が示されました。
カルノーの定理の系(可逆機関同士の等効率)
カルノーの定理から直ちに導かれる重要な帰結があります。2つの可逆機関AとBが同じ2つの熱源の間で動作するなら、$\eta_A \leq \eta_B$ かつ $\eta_B \leq \eta_A$ が成り立つので:
$$ \eta_A = \eta_B $$
つまり、すべての可逆機関は同じ効率を持つのです。この結果は「効率が作動流体によらない」というカルノー効率の普遍性を保証しています。
カルノーの定理は、熱機関の効率に絶対的な上限を与えるという意味で、工学的に極めて重要です。では、具体的にどのような数値になるのか、実在の発電システムと比較してみましょう。
数値例: 実在の熱機関との比較
各種熱機関のカルノー効率
カルノー効率の式 $\eta_{\text{Carnot}} = 1 – T_L / T_H$ に、代表的な熱機関の温度を代入してみましょう。低温側は外気温 $T_L = 303$ K($30°\text{C}$)とします。
| 熱機関 | $T_H$ [$°\text{C}$] | $T_H$ [K] | カルノー効率 | 実際の効率(目安) |
|---|---|---|---|---|
| 地熱発電 | 150 | 423 | 28.4% | 10〜15% |
| 原子力発電(PWR) | 320 | 593 | 48.9% | 33〜37% |
| 石炭火力発電 | 600 | 873 | 65.3% | 35〜42% |
| ガスタービン複合発電 | 1200 | 1473 | 79.4% | 55〜62% |
| 自動車ガソリンエンジン | 2200 | 2473 | 87.7% | 25〜35% |
数値の読み取り
いくつかの重要な観察ができます。
1. カルノー効率と実際の効率の差: どの熱機関でも、実際の効率はカルノー効率の50〜70%程度にとどまっています。この差は摩擦、有限速度の膨張・圧縮、有限の温度差を介した熱移動など、不可逆な要素によるものです。
2. 自動車エンジンの効率が意外に低い: カルノー効率は87.7%もあるのに、実際の効率は25〜35%と低いのが目立ちます。これは燃焼が爆発的で非平衡な過程であること、排気ガスの高温が十分に回収できないこと、摩擦損失が大きいことなどが原因です。
3. ガスタービン複合発電の優秀さ: 実際の効率が55〜62%と最も高く、カルノー効率に対する達成率も70%以上です。ガスタービンと蒸気タービンを組み合わせる(コンバインドサイクル)ことで、排熱を有効活用しているためです。
具体的な計算例
火力発電所(石炭火力)の場合を詳しく計算してみましょう。
$T_H = 600°\text{C} = 873$ K、$T_L = 30°\text{C} = 303$ K とすると:
$$ \eta_{\text{Carnot}} = 1 – \frac{303}{873} = 1 – 0.347 = 0.653 = 65.3\% $$
実際の効率が $\eta_{\text{actual}} = 0.40$(40%)だとすると、カルノー効率に対する達成率は:
$$ \frac{\eta_{\text{actual}}}{\eta_{\text{Carnot}}} = \frac{0.40}{0.653} = 0.613 = 61.3\% $$
つまり、理論限界の約61%しか達成できていないことがわかります。逆に言えば、不可逆損失を減らす余地がまだ39%分あるということです。
もし $T_H$ を $700°\text{C}$(973 K)に上げられたとすると:
$$ \eta_{\text{Carnot}} = 1 – \frac{303}{973} = 1 – 0.311 = 0.689 = 68.9\% $$
高温側をわずか100°C上げるだけで、理論限界が3.6ポイントも向上します。超々臨界圧火力発電(USC)や、先進超々臨界圧火力発電(A-USC)が高温化を追求するのは、まさにこのためです。
数値で確認したところで、次はカルノーサイクルをグラフで「見る」ことで、さらに深い理解を得ましょう。特にT-S図はカルノーサイクルの本質を美しく可視化してくれます。
T-S図: なぜ長方形になるのか
T-S図の直感的理解
p-V図(圧力-体積図)はピストンの動きを追うのに直感的ですが、熱効率やエントロピーの変化を議論するにはT-S図(温度-エントロピー図)が強力です。
T-S図上でカルノーサイクルを描くと、完全な長方形になります。なぜでしょうか?
4つの過程を1つずつT-S図上で追ってみましょう。
過程 $1 \to 2$(等温膨張): 温度は $T_H$ で一定です。T-S図では水平な直線になります。高温熱源から熱を吸収するのでエントロピーは増加し、右に進みます。
過程 $2 \to 3$(断熱膨張): 断熱かつ可逆なので、エントロピーは一定です($\Delta S = Q_{\text{rev}} / T = 0$)。T-S図では垂直な直線で、温度が $T_H$ から $T_L$ に下がります。
過程 $3 \to 4$(等温圧縮): 温度は $T_L$ で一定です。T-S図では水平な直線です。低温熱源に熱を放出するのでエントロピーは減少し、左に進みます。
過程 $4 \to 1$(断熱圧縮): 再びエントロピー一定で、温度が $T_L$ から $T_H$ に上がります。垂直な直線です。
4辺がすべて水平または垂直なので、結果は長方形になります。これはカルノーサイクルが2つの等温線と2つの等エントロピー線だけで構成されているという構造の直接的な反映です。
T-S図の面積と仕事・熱の関係
T-S図には美しい幾何学的意味があります。
可逆過程では $\delta Q_{\text{rev}} = T \, dS$ が成り立つので、T-S図上の曲線の下の面積は熱の移動量に対応します。
- 上辺($1 \to 2$、温度 $T_H$)の下の面積: $Q_H = T_H \cdot \Delta S$(吸収熱)
- 下辺($3 \to 4$、温度 $T_L$)の下の面積: $Q_L = T_L \cdot \Delta S$(放出熱)
- 長方形の面積: $W_{\text{net}} = Q_H – Q_L = (T_H – T_L) \cdot \Delta S$(正味の仕事)
ここで $\Delta S = Q_H / T_H = R \ln(V_2/V_1)$ はエントロピーの変化量です。
つまり、T-S図の長方形の面積が正味の仕事を表し、熱効率は:
$$ \eta = \frac{\text{長方形の面積}}{\text{上辺の下の面積}} = \frac{(T_H – T_L) \cdot \Delta S}{T_H \cdot \Delta S} = 1 – \frac{T_L}{T_H} $$
このように、T-S図を使えばカルノー効率が幾何学的に一目で理解できます。長方形の縦の長さ $T_H – T_L$ が大きいほど(つまり温度差が大きいほど)、同じ熱量に対して多くの仕事を取り出せることが図からも直感的にわかります。
それでは、ここまでの理論をPythonで可視化し、数値計算と合わせて確認していきましょう。
Pythonによるp-V図の可視化
まず、カルノーサイクルのp-V図(圧力-体積図)を描画します。4つの過程がどのような曲線を描くかを確認しましょう。
import numpy as np
import matplotlib.pyplot as plt
# カルノーサイクルのパラメータ
T_H = 600 # K(高温熱源)
T_L = 300 # K(低温熱源)
V1 = 1.0 # m³(状態1の体積)
gamma = 1.4 # 比熱比(空気)
R = 8.314 # J/(mol·K)
# 各状態点の体積を計算
V2 = 2.0 * V1 # 等温膨張後(V2/V1 = 2 と設定)
# 断熱過程の関係式 T * V^(γ-1) = const から V3, V4 を計算
V3 = V2 * (T_H / T_L) ** (1 / (gamma - 1))
V4 = V1 * (T_H / T_L) ** (1 / (gamma - 1))
# 体積比の確認(V2/V1 = V3/V4 が成り立つはず)
print(f"V1 = {V1:.4f}, V2 = {V2:.4f}, V3 = {V3:.4f}, V4 = {V4:.4f}")
print(f"V2/V1 = {V2/V1:.6f}")
print(f"V3/V4 = {V3/V4:.6f}")
print(f"体積比の一致: {np.isclose(V2/V1, V3/V4)}")
# 各過程の曲線データを生成
V_12 = np.linspace(V1, V2, 300)
p_12 = R * T_H / V_12 # 等温膨張: pV = RT_H
V_23 = np.linspace(V2, V3, 300)
p_23 = R * T_H * V2**(gamma - 1) / V_23**gamma # 断熱膨張: pV^γ = const
V_34 = np.linspace(V3, V4, 300)
p_34 = R * T_L / V_34 # 等温圧縮: pV = RT_L
V_41 = np.linspace(V4, V1, 300)
p_41 = R * T_L * V4**(gamma - 1) / V_41**gamma # 断熱圧縮: pV^γ = const
# p-V図の描画
fig, ax = plt.subplots(figsize=(9, 6))
ax.plot(V_12, p_12, 'r-', linewidth=2.5, label=f'1→2: Isothermal expansion ($T_H$={T_H}K)')
ax.plot(V_23, p_23, 'b-', linewidth=2.5, label='2→3: Adiabatic expansion')
ax.plot(V_34, p_34, 'g-', linewidth=2.5, label=f'3→4: Isothermal compression ($T_L$={T_L}K)')
ax.plot(V_41, p_41, 'm-', linewidth=2.5, label='4→1: Adiabatic compression')
# サイクルの内部を塗りつぶし(正味の仕事の面積)
V_cycle = np.concatenate([V_12, V_23, V_34, V_41])
p_cycle = np.concatenate([p_12, p_23, p_34, p_41])
ax.fill(V_cycle, p_cycle, alpha=0.1, color='orange')
# 状態点のプロット
states_V = [V1, V2, V3, V4]
states_p = [R * T_H / V1, R * T_H / V2, R * T_L / V3, R * T_L / V4]
labels = ['1', '2', '3', '4']
for v, p, lab in zip(states_V, states_p, labels):
ax.plot(v, p, 'ko', markersize=10, zorder=5)
ax.annotate(lab, (v, p), textcoords="offset points",
xytext=(12, 12), fontsize=16, fontweight='bold')
ax.set_xlabel('Volume $V$ [m³]', fontsize=13)
ax.set_ylabel('Pressure $p$ [Pa]', fontsize=13)
ax.set_title('Carnot Cycle — p-V Diagram', fontsize=15)
ax.legend(fontsize=10, loc='upper right')
ax.grid(True, alpha=0.3)
ax.set_xlim(left=0)
ax.set_ylim(bottom=0)
plt.tight_layout()
plt.show()
このp-V図から、以下のことが読み取れます。
- サイクルは閉曲線を描き、囲まれた面積が正味の仕事に対応しています。等温膨張(赤)で取り出す仕事が、等温圧縮(緑)で消費する仕事を上回るため、差し引きで正味の仕事が得られます。
- 等温線(赤・緑)は双曲線($p \propto 1/V$)であり、断熱線(青・紫)はそれより急な曲線($p \propto 1/V^\gamma$、$\gamma > 1$)です。断熱線の方が急なのは、断熱膨張では温度低下によって圧力がより速く下がるためです。
- 高温の等温線(赤)が低温の等温線(緑)より上にあるのは、同じ体積でも高温の方が圧力が高い($p = RT/V$)ためです。この温度差があるからこそ正味の仕事が得られるのです。
PythonによるT-S図の可視化
次に、T-S図を描画して、長方形になることを確認しましょう。
import numpy as np
import matplotlib.pyplot as plt
# パラメータ(前のコードと同じ)
T_H = 600 # K
T_L = 300 # K
V1 = 1.0
V2 = 2.0
R = 8.314
# エントロピー変化の計算
Q_H = R * T_H * np.log(V2 / V1) # 高温熱源から吸収する熱
Delta_S = Q_H / T_H # エントロピー変化量
# 4つの状態点のエントロピー(基準点 S1 = 0)
S1 = 0
S2 = S1 + Delta_S # 等温膨張でエントロピー増加
S3 = S2 # 断熱(等エントロピー)
S4 = S1 # 断熱(等エントロピー)
print(f"ΔS = {Delta_S:.4f} J/(mol·K)")
print(f"Q_H = T_H × ΔS = {T_H * Delta_S:.4f} J/mol")
print(f"Q_L = T_L × ΔS = {T_L * Delta_S:.4f} J/mol")
print(f"W_net = (T_H - T_L) × ΔS = {(T_H - T_L) * Delta_S:.4f} J/mol")
# T-S図の描画
fig, ax = plt.subplots(figsize=(9, 6))
# サイクル(長方形)
cycle_S = [S1, S2, S2, S1, S1]
cycle_T = [T_H, T_H, T_L, T_L, T_H]
# 面積の塗りつぶし
ax.fill(cycle_S, cycle_T, alpha=0.15, color='orange', label='$W_{net}$ (net work)')
# Q_L の面積(下部)
ax.fill_between([S1, S2], 0, T_L, alpha=0.1, color='blue', label='$Q_L$ (rejected heat)')
# サイクルの辺を描画
# 1→2: 等温膨張(上辺)
ax.plot([S1, S2], [T_H, T_H], 'r-', linewidth=2.5, label='1→2: Isothermal expansion')
# 2→3: 断熱膨張(右辺)
ax.plot([S2, S3], [T_H, T_L], 'b-', linewidth=2.5, label='2→3: Adiabatic expansion')
# 3→4: 等温圧縮(下辺)
ax.plot([S3, S4], [T_L, T_L], 'g-', linewidth=2.5, label='3→4: Isothermal compression')
# 4→1: 断熱圧縮(左辺)
ax.plot([S4, S1], [T_L, T_H], 'm-', linewidth=2.5, label='4→1: Adiabatic compression')
# 状態点
for s, t, lab in zip([S1, S2, S2, S1], [T_H, T_H, T_L, T_L], ['1', '2', '3', '4']):
ax.plot(s, t, 'ko', markersize=10, zorder=5)
ax.annotate(lab, (s, t), textcoords="offset points",
xytext=(12, 12), fontsize=16, fontweight='bold')
# アノテーション: 面積の意味
ax.annotate('$W_{net} = (T_H - T_L) \\cdot \\Delta S$',
xy=(Delta_S / 2, (T_H + T_L) / 2),
fontsize=12, ha='center', va='center',
bbox=dict(boxstyle='round,pad=0.3', facecolor='lightyellow', alpha=0.8))
ax.set_xlabel('Entropy $S$ [J/(mol·K)]', fontsize=13)
ax.set_ylabel('Temperature $T$ [K]', fontsize=13)
ax.set_title('Carnot Cycle — T-S Diagram', fontsize=15)
ax.legend(fontsize=9, loc='upper right')
ax.grid(True, alpha=0.3)
ax.set_ylim(bottom=0)
ax.set_xlim(left=-0.5)
plt.tight_layout()
plt.show()
T-S図からは以下の重要な特徴が読み取れます。
- カルノーサイクルは完全な長方形で表されます。これは、等温過程(水平線)と断熱可逆過程(垂直線)の組み合わせだからです。他のサイクル(オットーサイクルやランキンサイクル等)はT-S図上で長方形にならないため、カルノー効率を下回ります。
- 長方形の面積がサイクルの正味の仕事に等しくなります。面積を広くする($T_H$ と $T_L$ の差を大きくする、または $\Delta S$ を大きくする)ほど、多くの仕事を取り出せることが一目でわかります。
- 下辺の下の面積($Q_L = T_L \cdot \Delta S$)は「捨てなければならない熱」 に対応します。$T_L > 0$ である限りこの面積はゼロにならず、これこそが効率100%に到達できない根本的な理由です。
各種パラメータの影響をPythonで探る
カルノー効率の温度依存性
高温熱源の温度 $T_H$ を変化させたとき、カルノー効率がどう変わるかをグラフで確認します。低温熱源の温度 $T_L$ を3通りに変えて比較します。
import numpy as np
import matplotlib.pyplot as plt
T_H_range = np.linspace(300, 2500, 500)
# 3つの低温熱源温度で比較
T_L_values = [200, 300, 400]
colors = ['#2196F3', '#FF9800', '#4CAF50']
fig, ax = plt.subplots(figsize=(9, 6))
for T_L, color in zip(T_L_values, colors):
valid = T_H_range > T_L # T_H > T_L の範囲のみ
eta = (1 - T_L / T_H_range[valid]) * 100
ax.plot(T_H_range[valid], eta, linewidth=2.5, color=color,
label=f'$T_L$ = {T_L} K ({T_L - 273:.0f}°C)')
# 代表的な熱機関の位置をプロット
engines = [
("Geothermal\n(150°C)", 423, 300, 28.4),
("Nuclear\n(320°C)", 593, 300, 48.9),
("Coal\n(600°C)", 873, 300, 65.3),
("Gas Turbine\n(1200°C)", 1473, 300, 79.4),
]
for name, th, tl, eta in engines:
ax.plot(th, eta, 'k^', markersize=10, zorder=5)
ax.annotate(name, (th, eta), textcoords="offset points",
xytext=(10, -15), fontsize=9, ha='left')
ax.set_xlabel('Hot source temperature $T_H$ [K]', fontsize=13)
ax.set_ylabel('Carnot efficiency $\\eta_{Carnot}$ [%]', fontsize=13)
ax.set_title('Carnot Efficiency vs Hot Source Temperature', fontsize=15)
ax.legend(fontsize=11)
ax.grid(True, alpha=0.3)
ax.set_ylim([0, 100])
ax.set_xlim([200, 2500])
plt.tight_layout()
plt.show()
このグラフから以下のことが読み取れます。
- $T_H$ が低い領域では効率が急激に変化します。例えば $T_L = 300$ Kの場合、$T_H$ を400 Kから600 Kに上げると効率は25%から50%へと大幅に向上します。一方、$T_H$ を1500 Kから1700 Kに上げても効率の伸びは数%にとどまります。つまり、低温域での温度向上が最も効率改善に効くのです。
- $T_L$ を下げることの効果も大きいことがわかります。同じ $T_H = 873$ K(600°C)に対し、$T_L$ を400 K → 300 K → 200 Kと下げると、カルノー効率は54.2% → 65.3% → 77.1%と大幅に向上します。寒冷地に発電所を建設する方が理論上は有利、というのはこのためです。
- 各種熱機関の「ポジション」 が直感的に見えます。地熱発電は $T_H$ が低いために理論限界自体が低く、ガスタービンは $T_H$ が高いために高い理論限界を持ちます。
カルノー効率と実際の効率の比較
各種熱機関のカルノー効率と実際の効率を棒グラフで比較します。
import numpy as np
import matplotlib.pyplot as plt
# 各種熱機関のデータ
engines = {
'Geothermal\n(150°C)': {'T_H': 423, 'T_L': 303, 'actual': 12},
'Nuclear PWR\n(320°C)': {'T_H': 593, 'T_L': 303, 'actual': 35},
'Coal\n(600°C)': {'T_H': 873, 'T_L': 303, 'actual': 40},
'Gas Turbine CC\n(1200°C)': {'T_H': 1473, 'T_L': 303, 'actual': 60},
'Car Engine\n(2200°C)': {'T_H': 2473, 'T_L': 303, 'actual': 30},
}
names = list(engines.keys())
carnot_eff = [(1 - e['T_L'] / e['T_H']) * 100 for e in engines.values()]
actual_eff = [e['actual'] for e in engines.values()]
x = np.arange(len(names))
width = 0.35
fig, ax = plt.subplots(figsize=(11, 6))
bars1 = ax.bar(x - width/2, carnot_eff, width, label='Carnot efficiency',
color='#2196F3', alpha=0.8, edgecolor='black', linewidth=0.5)
bars2 = ax.bar(x + width/2, actual_eff, width, label='Actual efficiency',
color='#FF9800', alpha=0.8, edgecolor='black', linewidth=0.5)
# 棒グラフの上に数値を表示
for bar in bars1:
h = bar.get_height()
ax.text(bar.get_x() + bar.get_width()/2., h + 1, f'{h:.1f}%',
ha='center', va='bottom', fontsize=9, fontweight='bold')
for bar in bars2:
h = bar.get_height()
ax.text(bar.get_x() + bar.get_width()/2., h + 1, f'{h:.0f}%',
ha='center', va='bottom', fontsize=9, fontweight='bold')
ax.set_ylabel('Efficiency [%]', fontsize=13)
ax.set_title('Carnot Efficiency vs Actual Efficiency', fontsize=15)
ax.set_xticks(x)
ax.set_xticklabels(names, fontsize=10)
ax.legend(fontsize=11)
ax.grid(True, alpha=0.3, axis='y')
ax.set_ylim([0, 100])
plt.tight_layout()
plt.show()
# 達成率の出力
print("=== カルノー効率に対する達成率 ===")
for name, c_eff, a_eff in zip(names, carnot_eff, actual_eff):
ratio = a_eff / c_eff * 100
print(f"{name.replace(chr(10), ' ')}: "
f"η_Carnot={c_eff:.1f}%, η_actual={a_eff}%, 達成率={ratio:.1f}%")
この棒グラフは、理論(カルノー効率)と現実(実際の効率)のギャップを視覚的に示しています。
- 全ての熱機関でカルノー効率を下回っていることが確認でき、カルノーの定理が定量的に裏付けられます。
- ガスタービン複合発電(GTCC)がカルノー効率への達成率で最も優れていることがわかります。これはコンバインドサイクルによる排熱回収が効果的に機能しているためです。
- 自動車エンジンはカルノー効率が最も高い(87.7%)のに、実際の効率は最も低い部類(30%) です。カルノー効率が高いことは、実際の効率が高いことを意味しないのです。$T_H$ が高いことよりも、サイクルの可逆性(理想性への近さ)が実効率には重要であることがわかります。
ヒートポンプへの応用: 逆カルノーサイクル
逆カルノーサイクルとCOP
カルノーサイクルは可逆なので、逆転させることができます。逆転したカルノーサイクルはヒートポンプまたは冷凍機として動作します。
ヒートポンプは、外部から仕事 $W$ を加えることで、低温熱源から高温熱源へ熱を汲み上げる装置です。冷蔵庫やエアコン(暖房モード)がこれに該当します。
ヒートポンプの性能は成績係数(COP: Coefficient of Performance)で評価します。暖房目的の場合:
$$ \text{COP}_{\text{heat}} = \frac{Q_H}{W} = \frac{Q_H}{Q_H – Q_L} = \frac{1}{1 – Q_L/Q_H} $$
カルノーサイクルでは $Q_L/Q_H = T_L/T_H$ なので:
$$ \text{COP}_{\text{Carnot, heat}} = \frac{1}{1 – T_L/T_H} = \frac{T_H}{T_H – T_L} $$
冷房目的(冷凍機)の場合は:
$$ \text{COP}_{\text{Carnot, cool}} = \frac{Q_L}{W} = \frac{T_L}{T_H – T_L} $$
COPの特筆すべき性質
ヒートポンプのCOPは1より大きくなり得ます。例えば、外気温 $T_L = 273$ K($0°\text{C}$)、室温 $T_H = 293$ K($20°\text{C}$)の場合:
$$ \text{COP}_{\text{Carnot, heat}} = \frac{293}{293 – 273} = \frac{293}{20} = 14.65 $$
つまり、1 Jの仕事で理論上14.65 Jの熱を室内に運べるということです。電気ヒーターは1 Jの電気で1 Jの熱しか出せませんから、ヒートポンプは理論上はるかに効率的です。実際のエアコンのCOPは3〜7程度ですが、それでも電気ヒーターの3〜7倍のエネルギー効率を持ちます。
この結果は、熱効率とCOPの関係を考えるうえで非常に示唆的です。カルノーサイクルの理論は、エンジンだけでなく冷暖房システムの設計にも根本的な指針を与えているのです。
それでは最後に、ヒートポンプのCOPの温度依存性もPythonで可視化してみましょう。
PythonによるCOPの可視化
import numpy as np
import matplotlib.pyplot as plt
T_H_fixed = 293 # 室温 20°C(暖房目的)
T_L_range = np.linspace(230, 290, 300) # 外気温の範囲
COP_heat = T_H_fixed / (T_H_fixed - T_L_range)
COP_cool = T_L_range / (T_H_fixed - T_L_range)
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
# 暖房COP
axes[0].plot(T_L_range - 273, COP_heat, 'r-', linewidth=2.5)
axes[0].axhline(y=1, color='gray', linestyle='--', linewidth=1, label='Electric heater (COP=1)')
axes[0].set_xlabel('Outdoor temperature $T_L$ [°C]', fontsize=12)
axes[0].set_ylabel('COP (heating)', fontsize=12)
axes[0].set_title(f'Carnot COP for Heating ($T_H$={T_H_fixed-273}°C)', fontsize=14)
axes[0].legend(fontsize=10)
axes[0].grid(True, alpha=0.3)
axes[0].set_ylim([0, 30])
# 冷房COP
T_L_fixed = 273 # 冷蔵庫内 0°C
T_H_range_cool = np.linspace(280, 330, 300)
COP_cool_plot = T_L_fixed / (T_H_range_cool - T_L_fixed)
axes[1].plot(T_H_range_cool - 273, COP_cool_plot, 'b-', linewidth=2.5)
axes[1].set_xlabel('Ambient temperature $T_H$ [°C]', fontsize=12)
axes[1].set_ylabel('COP (cooling)', fontsize=12)
axes[1].set_title(f'Carnot COP for Cooling ($T_L$={T_L_fixed-273}°C)', fontsize=14)
axes[1].grid(True, alpha=0.3)
axes[1].set_ylim([0, 50])
plt.tight_layout()
plt.show()
このグラフから以下のことが読み取れます。
- 暖房COP(左図)は外気温が室温に近づくほど急激に増大します。外気温が15°Cなら理論COPは約58ですが、-20°Cでは約7.3に低下します。これは直感に合います — 温度差が小さいほど熱を汲み上げるのが容易なのです。寒冷地でヒートポンプの効率が落ちるのは、この原理で説明できます。
- 冷房COP(右図)は外気温が上がるほど低下します。猛暑日には冷房が効きにくくなる(電力消費が増える)のも、カルノーサイクルの理論から理解できます。
エントロピーとの関係
カルノーサイクルからエントロピーへ
歴史的に見ると、クラウジウスがエントロピーの概念を導入する際に、カルノーサイクルの解析が重要な役割を果たしました。
カルノーサイクルでは:
$$ \frac{Q_H}{T_H} = \frac{Q_L}{T_L} $$
この関係を変形すると:
$$ \frac{Q_H}{T_H} – \frac{Q_L}{T_L} = 0 $$
熱源に放出する熱を負の符号で表す約束にすると:
$$ \oint \frac{\delta Q_{\text{rev}}}{T} = 0 $$
この積分がゼロになるということは、$\delta Q_{\text{rev}} / T$ が状態量の全微分であることを意味します。クラウジウスはこの状態量をエントロピー $S$ と名付けました:
$$ dS = \frac{\delta Q_{\text{rev}}}{T} $$
つまり、カルノーサイクルの解析は「熱を温度で割ったものが状態量になる」という発見、すなわちエントロピーの発見に直結しているのです。カルノーサイクルは単なる理想サイクルにとどまらず、熱力学の概念的基盤を築く役割を果たしました。
不可逆過程とクラウジウスの不等式
不可逆な熱機関では:
$$ \eta_{\text{irrev}} < \eta_{\text{Carnot}} = 1 - \frac{T_L}{T_H} $$
これを熱量で書き直すと:
$$ \frac{Q_L}{Q_H} > \frac{T_L}{T_H} $$
したがって:
$$ \frac{Q_H}{T_H} – \frac{Q_L}{T_L} < 0 $$
一般化すると、任意のサイクルに対するクラウジウスの不等式が得られます:
$$ \oint \frac{\delta Q}{T} \leq 0 $$
等号はサイクルが可逆(カルノーサイクル)の場合にのみ成り立ちます。この不等式は熱力学第2法則の数学的表現であり、自由エネルギーの概念にもつながっていきます。
まとめ
本記事では、カルノーサイクルの基本原理から熱効率の導出、カルノーの定理の証明、そして実在の熱機関との比較まで、体系的に解説しました。
- カルノーサイクルは、等温膨張 → 断熱膨張 → 等温圧縮 → 断熱圧縮の4つの可逆過程からなる理想的な熱機関サイクルです
- カルノー効率 $\eta = 1 – T_L/T_H$ は、作動流体によらず2つの熱源の温度だけで決まる、普遍的な効率の上限です
- 体積比の関係 $V_2/V_1 = V_3/V_4$ は2つの断熱過程から導かれ、カルノー効率の導出の鍵となります
- カルノーの定理は、すべての熱機関の効率がカルノー効率以下であることを保証し、背理法(逆転カルノー機関)で証明できます
- T-S図ではカルノーサイクルは長方形で表され、面積が正味の仕事に対応します。この幾何学的な見方は効率の本質を直感的に理解する助けになります
- 逆カルノーサイクル(ヒートポンプ)の成績係数COPは1を超え得るため、暖房においてヒートポンプは電気ヒーターより理論上はるかに効率的です
- カルノーサイクルの解析は、エントロピーの概念やクラウジウスの不等式の発見に歴史的に直結しており、熱力学の理論体系の基盤を成しています
次のステップとして、以下の記事も参考にしてください。