熱力学第1法則は、エネルギー保存則の熱力学的な表現です。「エネルギーは生まれも消えもしない。形を変えるだけだ」という自然界の根本原理を、熱と仕事と内部エネルギーの関係として定式化します。
この法則は、エンジンの効率計算、冷凍サイクルの設計、化学反応のエネルギー収支、宇宙機の熱制御など、工学のあらゆる場面で基盤となります。本記事では、第1法則の数学的な表現から、各種熱力学過程への適用を丁寧に解説します。
本記事の内容
- 熱力学第1法則の数学的定式化
- 状態量と経路量の区別
- 各種過程(定容・定圧・等温・断熱)への適用
- 理想気体での具体的な計算
- Pythonでのp-V図の可視化
前提知識
この記事を読む前に、以下の概念を理解しておくと良いでしょう。
- 理想気体の状態方程式 $pV = nRT$
- エネルギーの基本概念
基本概念
系(System)と外界(Surroundings)
- 系: 注目する対象(例:シリンダー内のガス)
- 外界: 系以外のすべて
- 境界: 系と外界の境目
状態量と経路量
- 状態量(state function): 系の状態だけで決まる量。経路に依存しない。例: 温度 $T$、圧力 $p$、体積 $V$、内部エネルギー $U$
- 経路量(path function): 過程の経路に依存する量。例: 熱 $Q$、仕事 $W$
微小変化において、状態量は完全微分 $dU$、経路量は不完全微分 $\delta Q$, $\delta W$ と書きます。
熱力学第1法則
定式化
$$ \begin{equation} dU = \delta Q – \delta W \end{equation} $$
有限の過程では:
$$ \begin{equation} \Delta U = Q – W \end{equation} $$
ここで: – $\Delta U$: 内部エネルギーの変化 – $Q$: 系に加えられた熱(正: 系が熱を受け取る) – $W$: 系がした仕事(正: 系が外界に仕事をする)
符号の約束
| 量 | 正 | 負 |
|---|---|---|
| $Q$ | 系が熱を受け取る | 系が熱を放出する |
| $W$ | 系が仕事をする | 外界が系に仕事をする |
注意: 教科書によって $dU = \delta Q + \delta W$($W$ が系にされた仕事)の符号規約もあります。
仕事の表現
準静的過程(ゆっくりと平衡を保ちながら進む過程)では、体積変化による仕事は:
$$ \begin{equation} \delta W = p \, dV \end{equation} $$
$$ W = \int_{V_1}^{V_2} p \, dV $$
これはp-V図における 曲線の下の面積 に等しくなります。
理想気体の内部エネルギー
理想気体の内部エネルギーは温度のみの関数です:
$$ U = U(T) $$
$$ dU = nC_v \, dT $$
ここで $C_v$ は定容モル比熱です。
比熱の関係
理想気体では以下の関係(マイヤーの関係式)が成り立ちます:
$$ \begin{equation} C_p – C_v = R \end{equation} $$
比熱比 $\gamma = C_p / C_v$ を定義します。単原子理想気体では $\gamma = 5/3$、2原子理想気体では $\gamma = 7/5$ です。
各種熱力学過程
1. 定容過程(Isochoric, $V = \text{const}$)
$dV = 0$ なので $W = 0$:
$$ \begin{align} \Delta U &= Q_v \\ Q_v &= nC_v \Delta T \end{align} $$
加えた熱がすべて内部エネルギーの増加になります。
2. 定圧過程(Isobaric, $p = \text{const}$)
$$ W = p\Delta V = p(V_2 – V_1) = nR\Delta T $$
$$ \begin{align} Q_p &= \Delta U + W = nC_v\Delta T + nR\Delta T = nC_p\Delta T \end{align} $$
エンタルピー $H = U + pV$ を導入すると:
$$ Q_p = \Delta H = nC_p\Delta T $$
3. 等温過程(Isothermal, $T = \text{const}$)
$\Delta T = 0$ なので $\Delta U = 0$(理想気体):
$$ Q = W = \int_{V_1}^{V_2} p \, dV = \int_{V_1}^{V_2} \frac{nRT}{V} dV = nRT \ln\frac{V_2}{V_1} $$
加えた熱がすべて仕事に変換されます。
4. 断熱過程(Adiabatic, $Q = 0$)
$$ dU = -\delta W \implies nC_v dT = -p \, dV $$
理想気体の状態方程式と組み合わせると、ポアソンの関係式が得られます:
$$ \begin{equation} pV^\gamma = \text{const} \end{equation} $$
$$ TV^{\gamma-1} = \text{const} $$
導出:
$$ \begin{align} nC_v dT &= -p \, dV = -\frac{nRT}{V} dV \\ \frac{dT}{T} &= -\frac{R}{C_v} \frac{dV}{V} = -(\gamma – 1) \frac{dV}{V} \\ \ln T &= -(\gamma – 1)\ln V + \text{const} \\ TV^{\gamma-1} &= \text{const} \end{align} $$
断熱過程での仕事:
$$ W = -\Delta U = -nC_v(T_2 – T_1) = \frac{p_1V_1 – p_2V_2}{\gamma – 1} $$
まとめ表
| 過程 | 条件 | $Q$ | $W$ | $\Delta U$ |
|---|---|---|---|---|
| 定容 | $V = \text{const}$ | $nC_v\Delta T$ | $0$ | $nC_v\Delta T$ |
| 定圧 | $p = \text{const}$ | $nC_p\Delta T$ | $p\Delta V$ | $nC_v\Delta T$ |
| 等温 | $T = \text{const}$ | $nRT\ln\frac{V_2}{V_1}$ | $nRT\ln\frac{V_2}{V_1}$ | $0$ |
| 断熱 | $Q = 0$ | $0$ | $-nC_v\Delta T$ | $nC_v\Delta T$ |
Pythonでの実装
p-V図上の各種過程の可視化
import numpy as np
import matplotlib.pyplot as plt
# 理想気体のパラメータ
n = 1.0 # モル数
R = 8.314 # 気体定数 [J/(mol·K)]
gamma = 1.4 # 2原子分子
# 初期状態
T1 = 300 # K
p1 = 1e5 # Pa (1 atm)
V1 = n * R * T1 / p1
V = np.linspace(V1 * 0.5, V1 * 3, 500)
fig, axes = plt.subplots(1, 2, figsize=(14, 6))
# 左: 各過程のp-V図
# 等温過程
p_isothermal = n * R * T1 / V
axes[0].plot(V * 1e3, p_isothermal / 1e3, 'b-', linewidth=2, label=f'等温 (T={T1}K)')
# 断熱過程
p_adiabatic = p1 * (V1 / V)**gamma
axes[0].plot(V * 1e3, p_adiabatic / 1e3, 'r-', linewidth=2, label='断熱')
# 定圧過程
axes[0].axhline(y=p1/1e3, color='g', linewidth=2, label=f'定圧 (p={p1/1e3:.0f}kPa)')
# 定容過程
axes[0].axvline(x=V1*1e3, color='m', linewidth=2, label=f'定容 (V={V1*1e3:.1f}L)')
axes[0].plot(V1 * 1e3, p1 / 1e3, 'ko', markersize=10, label='初期状態')
axes[0].set_xlabel('体積 V [L]', fontsize=12)
axes[0].set_ylabel('圧力 p [kPa]', fontsize=12)
axes[0].set_title('p-V図上の各種過程', fontsize=14)
axes[0].legend(fontsize=10)
axes[0].grid(True, alpha=0.3)
axes[0].set_xlim(V[0]*1e3, V[-1]*1e3)
axes[0].set_ylim(0, 250)
# 右: 等温と断熱の仕事の比較
V2 = V1 * 2 # 体積を2倍に膨張
# 等温膨張の仕事
V_range = np.linspace(V1, V2, 200)
p_iso = n * R * T1 / V_range
W_isothermal = n * R * T1 * np.log(V2 / V1)
# 断熱膨張の仕事
p_adi = p1 * (V1 / V_range)**gamma
T2_adi = T1 * (V1 / V2)**(gamma - 1)
W_adiabatic = n * R * (T1 - T2_adi) / (gamma - 1) # = -nCv(T2-T1)
axes[1].fill_between(V_range * 1e3, 0, p_iso / 1e3, alpha=0.3, color='blue',
label=f'等温仕事 = {W_isothermal:.1f} J')
axes[1].plot(V_range * 1e3, p_iso / 1e3, 'b-', linewidth=2)
axes[1].fill_between(V_range * 1e3, 0, p_adi / 1e3, alpha=0.3, color='red',
label=f'断熱仕事 = {W_adiabatic:.1f} J')
axes[1].plot(V_range * 1e3, p_adi / 1e3, 'r-', linewidth=2)
axes[1].set_xlabel('体積 V [L]', fontsize=12)
axes[1].set_ylabel('圧力 p [kPa]', fontsize=12)
axes[1].set_title('膨張仕事の比較(体積2倍)', fontsize=14)
axes[1].legend(fontsize=11)
axes[1].grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
print(f"等温膨張: W = {W_isothermal:.1f} J, Q = {W_isothermal:.1f} J, ΔU = 0 J")
print(f"断熱膨張: W = {W_adiabatic:.1f} J, Q = 0 J, ΔU = {-W_adiabatic:.1f} J")
print(f"断熱膨張後の温度: {T2_adi:.1f} K")
エネルギー収支の可視化
import numpy as np
import matplotlib.pyplot as plt
# 各過程でのエネルギー収支を棒グラフで比較
n, R, T1 = 1.0, 8.314, 300
Cv = 5/2 * R # 2原子分子
Cp = 7/2 * R
gamma = Cp / Cv
dT = 100 # 100K温度上昇
processes = ['定容\n(V=const)', '定圧\n(p=const)', '等温\n(T=const)', '断熱\n(Q=0)']
# 各過程のQ, W, ΔU
Q_vals = [n*Cv*dT, n*Cp*dT, n*R*T1*np.log(2), 0]
W_vals = [0, n*R*dT, n*R*T1*np.log(2), -n*Cv*dT]
dU_vals = [n*Cv*dT, n*Cv*dT, 0, n*Cv*dT]
x = np.arange(len(processes))
width = 0.25
fig, ax = plt.subplots(figsize=(12, 6))
bars1 = ax.bar(x - width, Q_vals, width, label='Q(熱)', color='red', alpha=0.7)
bars2 = ax.bar(x, W_vals, width, label='W(仕事)', color='blue', alpha=0.7)
bars3 = ax.bar(x + width, dU_vals, width, label='ΔU(内部エネルギー変化)', color='green', alpha=0.7)
ax.set_xlabel('熱力学過程', fontsize=12)
ax.set_ylabel('エネルギー [J]', fontsize=12)
ax.set_title('熱力学第1法則: Q = ΔU + W', fontsize=14)
ax.set_xticks(x)
ax.set_xticklabels(processes, fontsize=11)
ax.legend(fontsize=11)
ax.grid(True, alpha=0.3, axis='y')
ax.axhline(y=0, color='k', linewidth=0.5)
plt.tight_layout()
plt.show()
まとめ
本記事では、熱力学第1法則について解説しました。
- 熱力学第1法則: $\Delta U = Q – W$(エネルギー保存則)
- 状態量($U, T, p, V$)は経路に依存しない、経路量($Q, W$)は過程に依存する
- 定容過程: $W = 0$、$Q_v = nC_v\Delta T$
- 定圧過程: $Q_p = nC_p\Delta T$、エンタルピー $H = U + pV$ が便利
- 等温過程: $\Delta U = 0$、$Q = W = nRT\ln(V_2/V_1)$
- 断熱過程: $Q = 0$、$pV^\gamma = \text{const}$
次のステップとして、以下の記事も参考にしてください。
- カルノーサイクル — 各過程を組み合わせた熱機関
- エントロピーの定義と意味 — 第2法則への接続