理想気体の状態方程式 $PV = nRT$ は、熱力学で最も頻繁に使われる関係式の一つです。気体の圧力、体積、温度の関係を簡潔に記述し、多くの工学計算の基礎となります。
本記事では、気体分子運動論からこの状態方程式を導出し、ボイル・シャルルの法則との関係、実在気体との違いを解説します。
本記事の内容
- ボイルの法則・シャルルの法則の統合
- 気体分子運動論からの状態方程式の導出
- ファンデルワールス方程式(実在気体)
- Pythonでの比較と可視化
前提知識
この記事を読む前に、以下の記事を読んでおくと理解が深まります。
経験法則からの出発
ボイルの法則(1662年)
温度一定のとき、気体の圧力と体積は反比例します。
$$ PV = \text{const.} \quad (T = \text{const.}) $$
シャルルの法則(1787年)
圧力一定のとき、気体の体積は絶対温度に比例します。
$$ \frac{V}{T} = \text{const.} \quad (P = \text{const.}) $$
ゲイ=リュサックの法則
体積一定のとき、気体の圧力は絶対温度に比例します。
$$ \frac{P}{T} = \text{const.} \quad (V = \text{const.}) $$
アボガドロの法則
同温同圧のとき、すべての気体は同じモル数なら同じ体積を占めます。
$$ V \propto n \quad (P, T = \text{const.}) $$
これらの法則を統合すると、
$$ \boxed{PV = nRT} $$
ここで $R = 8.314 \, \text{J/(mol·K)}$ は気体定数です。
気体分子運動論からの導出
前提と仮定
- 気体は多数の同一分子からなる
- 分子は大きさのない質点として扱う
- 分子間の相互作用はない(衝突を除く)
- 衝突は完全弾性衝突
- 分子の運動はランダムで等方的
圧力の導出
一辺 $L$ の立方体容器に $N$ 個の分子(質量 $m$)が閉じ込められています。
$x$ 方向に速度 $v_x$ で運動する1個の分子が壁に衝突するとき、
- 壁に与える力積: $\Delta p = 2mv_x$(弾性衝突)
- 壁への衝突頻度: $v_x / (2L)$(往復距離 $2L$)
1個の分子が壁に及ぼす平均の力:
$$ f = 2mv_x \cdot \frac{v_x}{2L} = \frac{mv_x^2}{L} $$
$N$ 個の分子全体では、
$$ F = \frac{Nm\langle v_x^2 \rangle}{L} $$
等方性より $\langle v_x^2 \rangle = \langle v_y^2 \rangle = \langle v_z^2 \rangle = \frac{1}{3}\langle v^2 \rangle$ なので、
$$ F = \frac{Nm\langle v^2 \rangle}{3L} $$
圧力 $P = F/A = F/L^2$ に容積 $V = L^3$ を掛けると、
$$ PV = \frac{1}{3}Nm\langle v^2 \rangle $$
温度との結び付き
1分子あたりの平均運動エネルギーは、
$$ \langle E_k \rangle = \frac{1}{2}m\langle v^2 \rangle = \frac{3}{2}k_BT $$
ここで $k_B = 1.381 \times 10^{-23} \, \text{J/K}$ はボルツマン定数です。したがって、
$$ PV = \frac{2}{3}N \cdot \frac{3}{2}k_BT = Nk_BT $$
$N = nN_A$($N_A$: アボガドロ数)、$R = N_A k_B$ より、
$$ \boxed{PV = nRT} $$
気体分子運動論から理想気体の状態方程式が導出されました。
実在気体:ファンデルワールス方程式
実在の気体は、分子間力の存在と分子自体の大きさのため、理想気体からずれます。ファンデルワールスはこれらの補正を導入しました。
$$ \left(P + \frac{a}{V_m^2}\right)(V_m – b) = RT $$
ここで $V_m = V/n$ はモル体積、$a$ は分子間引力の補正、$b$ は分子自体の体積の補正です。
| 補正項 | 効果 |
|---|---|
| $a/V_m^2$ | 分子間引力により実効圧力が増加 |
| $b$ | 分子自体の体積により利用可能な体積が減少 |
Pythonでの実装
理想気体とファンデルワールス気体のPV曲線を比較します。
import numpy as np
import matplotlib.pyplot as plt
# 定数
R = 8.314 # 気体定数 [J/(mol·K)]
# ファンデルワールス定数(CO2)
a = 0.3658 # [Pa·m^6/mol^2]
b = 4.286e-5 # [m^3/mol]
# 温度配列
temperatures = [250, 300, 350, 400]
colors = ['blue', 'green', 'orange', 'red']
fig, axes = plt.subplots(1, 2, figsize=(14, 6))
# --- PV曲線 ---
for T, color in zip(temperatures, colors):
Vm = np.linspace(1e-4, 5e-3, 1000)
# 理想気体
P_ideal = R * T / Vm
# ファンデルワールス
P_vdw = R * T / (Vm - b) - a / Vm**2
axes[0].plot(Vm * 1e3, P_ideal / 1e6, color=color, linestyle='--', alpha=0.5)
axes[0].plot(Vm * 1e3, P_vdw / 1e6, color=color, linewidth=2, label=f'T={T} K')
axes[0].set_xlabel('Molar Volume $V_m$ [L/mol]')
axes[0].set_ylabel('Pressure [MPa]')
axes[0].set_title('Ideal Gas (dashed) vs van der Waals (solid)')
axes[0].legend()
axes[0].grid(True)
axes[0].set_ylim(0, 15)
# --- ボイルの法則の検証 ---
T_fixed = 300
P_range = np.linspace(0.5e5, 20e5, 100)
# 理想気体
V_ideal = n_mol * R * T_fixed / P_range if 'n_mol' in dir() else R * T_fixed / P_range
# 圧縮因子 Z = PV/(nRT)
# 理想気体では Z = 1
# 実在気体では Z != 1
P_test = np.linspace(1e5, 100e5, 200)
Z_ideal = np.ones_like(P_test)
# ファンデルワールスからZ(数値的に)
Z_vdw = []
for P in P_test:
# Vm^3 - (b + RT/P)Vm^2 + (a/P)Vm - ab/P = 0 を解く
coeffs = [1, -(b + R * T_fixed / P), a / P, -a * b / P]
roots = np.roots(coeffs)
real_roots = roots[np.isreal(roots)].real
positive_roots = real_roots[real_roots > 0]
if len(positive_roots) > 0:
Vm_sol = max(positive_roots) # 気相
Z_vdw.append(P * Vm_sol / (R * T_fixed))
else:
Z_vdw.append(np.nan)
axes[1].plot(P_test / 1e6, Z_ideal, 'b--', linewidth=2, label='Ideal gas ($Z$=1)')
axes[1].plot(P_test / 1e6, Z_vdw, 'r-', linewidth=2, label=f'van der Waals (CO$_2$, T={T_fixed} K)')
axes[1].axhline(y=1, color='gray', linestyle=':', alpha=0.5)
axes[1].set_xlabel('Pressure [MPa]')
axes[1].set_ylabel('Compressibility factor $Z = PV_m/(RT)$')
axes[1].set_title('Compressibility Factor')
axes[1].legend()
axes[1].grid(True)
plt.tight_layout()
plt.show()
左図では、理想気体(破線)とファンデルワールス気体(実線)のPV曲線を比較しています。低温・高圧ほど実在気体効果が顕著になります。右図の圧縮因子 $Z$ が1から外れるほど、理想気体からのずれが大きいことを示しています。
まとめ
本記事では、理想気体の状態方程式について解説しました。
- ボイル・シャルル・アボガドロの法則を統合して $PV = nRT$ が得られる
- 気体分子運動論から微視的に $PV = Nk_BT$ を導出した
- 分子の平均運動エネルギーは $\frac{3}{2}k_BT$ で温度に比例する
- 実在気体はファンデルワールス方程式 $(P + a/V_m^2)(V_m – b) = RT$ で近似される
次のステップとして、以下の記事も参考にしてください。