熱力学第1法則はエネルギー保存を述べますが、変化の方向については何も教えてくれません。高温の物体と低温の物体を接触させれば熱は高温→低温に流れますが、その逆は自発的には起こりません。この「不可逆性」を定式化するのが熱力学第2法則です。
本記事の内容
- クラウジウスの表現とケルビン・プランクの表現
- 両者の同値性
- カルノーの定理
- クラウジウスの不等式
- エントロピーの導入
- Pythonでの可視化
前提知識
2つの表現
クラウジウスの表現
低温の物体から高温の物体へ、他に何の変化も残さずに熱を移すことは不可能である。
ケルビン・プランクの表現
単一の熱源から熱を受け取り、それを全て仕事に変換する(他に何の変化も残さない)サイクルは存在しない。
同値性
2つの表現は同値です。一方に反する装置があれば他方にも反することを背理法で示せます。
カルノーの定理
- 同じ2つの熱源間で作動する全ての可逆熱機関の効率は等しい
- 不可逆熱機関の効率は可逆機関の効率を超えることはできない
$$ \eta_{\text{irrev}} \leq \eta_{\text{Carnot}} = 1 – \frac{T_L}{T_H} $$
クラウジウスの不等式
任意のサイクルに対して:
$$ \boxed{\oint \frac{\delta Q}{T} \leq 0} $$
等号は可逆サイクルの場合に成立します。
エントロピーの定義への橋渡し
可逆サイクルでは $\oint \delta Q_{\text{rev}}/T = 0$ が成り立つため、$\delta Q_{\text{rev}}/T$ は状態量の完全微分です。この状態量をエントロピー $S$ と定義します:
$$ \boxed{dS = \frac{\delta Q_{\text{rev}}}{T}} $$
Pythonでの可視化
import numpy as np
import matplotlib.pyplot as plt
fig, axes = plt.subplots(1, 3, figsize=(16, 5))
# (1) カルノー効率 vs 温度比
T_H = np.linspace(300, 2000, 200)
T_L_vals = [200, 300, 400, 500]
for T_L in T_L_vals:
eta = 1 - T_L / T_H
axes[0].plot(T_H, eta * 100, lw=2, label=f'$T_L$ = {T_L} K')
axes[0].set_xlabel('Hot reservoir $T_H$ [K]', fontsize=12)
axes[0].set_ylabel('Carnot efficiency [%]', fontsize=12)
axes[0].set_title('Carnot efficiency', fontsize=13)
axes[0].legend(); axes[0].grid(True, alpha=0.3)
# (2) カルノーサイクルのT-S線図
S = np.array([1.0, 3.0, 3.0, 1.0, 1.0])
T = np.array([300, 300, 800, 800, 300]) # TL→TL→TH→TH→TL
# 等温膨張→断熱膨張→等温圧縮→断熱圧縮
axes[1].plot(S, T, 'b-o', lw=2.5, ms=8)
axes[1].fill(S, T, alpha=0.15, color='blue')
axes[1].annotate('Isothermal expansion', xy=(2, 810), fontsize=10, ha='center')
axes[1].annotate('Isothermal compression', xy=(2, 280), fontsize=10, ha='center')
axes[1].set_xlabel('Entropy $S$ [J/K]', fontsize=12)
axes[1].set_ylabel('Temperature $T$ [K]', fontsize=12)
axes[1].set_title('Carnot cycle (T-S diagram)', fontsize=13)
axes[1].grid(True, alpha=0.3)
# (3) 可逆 vs 不可逆の効率比較
T_H_range = np.linspace(400, 1500, 100)
T_L_fix = 300
eta_carnot = 1 - T_L_fix / T_H_range
eta_irrev = 0.6 * eta_carnot # 不可逆の典型(60%程度)
axes[2].plot(T_H_range, eta_carnot * 100, 'b-', lw=2.5, label='Carnot (reversible)')
axes[2].plot(T_H_range, eta_irrev * 100, 'r--', lw=2.5, label='Typical irreversible')
axes[2].fill_between(T_H_range, eta_irrev*100, eta_carnot*100, alpha=0.1, color='gray')
axes[2].set_xlabel('$T_H$ [K]', fontsize=12)
axes[2].set_ylabel('Efficiency [%]', fontsize=12)
axes[2].set_title('Reversible vs irreversible', fontsize=13)
axes[2].legend(); axes[2].grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
まとめ
- クラウジウス: 低温→高温への自発的熱移動は不可能
- ケルビン・プランク: 熱を100%仕事に変換するサイクルは不可能
- カルノーの定理: 可逆機関が最大効率
- クラウジウスの不等式: $\oint \delta Q/T \leq 0$
- エントロピーの定義: $dS = \delta Q_{\text{rev}}/T$
次のステップとして、以下の記事も参考にしてください。