跳轉到

1876 Gibbs 化學熱力學#

案發現場#

十九世紀中葉,熱力學已經在物理學中大放異彩:克勞修斯(Clausius)與凱爾文(Kelvin)建立了熱力學第一與第二定律,蒸汽機的效率問題獲得了理論解答。然而化學家面對的卻是一片荒蕪:為什麼某些反應會自發進行,某些卻不會?為什麼化學反應很少能「跑到底」,而是停在某一個平衡點?溫度、壓力、濃度如何影響平衡的位置?當時流行的「化學親和力」概念模糊不清,各家說法互相矛盾,貝特羅(Berthelot)甚至主張「放熱的反應才是自發的」,但這明顯無法解釋冰的融化、鹽的溶解等吸熱過程。

問題的關鍵在於:化學反應發生在「非均質」系統中——氣相、液相、固相共存,多種物質互相反應。要把熱力學定律應用到這種複雜系統,需要一套全新的數學語言。這正是耶魯大學一位沉默寡言的物理學教授吉布斯(Josiah Willard Gibbs, 1839–1903)要解決的問題。他重要性不言而喻:誰能寫出化學平衡的普遍理論,誰就掌握了整個化學工業的鑰匙。

偵查過程#

1876 與 1878 年,吉布斯分兩部分發表了《論非均質物質的平衡》(On the Equilibrium of Heterogeneous Substances),這篇三百多頁的論文被譽為科學史上最重要的文獻之一。他的推理鏈條如下:

第一步:定義正確的狀態函數。 吉布斯看出,在等溫等壓下判斷自發性的正確函數不是熱量,而是一個新函數——後來被稱為吉布斯自由能:

\[ G = H - TS \]

其中 \(H\) 是焓(系統的熱含量), \(T\) 是絕對溫度, \(S\) 是熵。對於自發過程:

\[ \Delta G = \Delta H - T\Delta S < 0 \]

當 \(\Delta G = 0\) 時系統達到平衡。這一條不等式同時解釋了放熱自發( \(\Delta H < 0\) )、高溫下熵驅動自發( \(\Delta S > 0\) )等所有情況。「親和力」的謎團煙消雲散:化學親和力就是 \(\Delta G\) 。

第二步:化學位勢。 對於成分可變的系統,吉布斯引入了劃時代的概念——化學位勢(chemical potential):

\[ \mu_i = \left(\frac{\partial G}{\partial n_i}\right)_{T, P, n_{j \neq i}} \]

\(\mu_i\) 是「把一莫耳物質 \(i\) 加入系統時自由能的增量」。物質會像水從高處流向低處一樣,從化學位勢高的相流向低的相。平衡的條件就是:每一種物質在所有相中的化學位勢相等:

\[ \mu_i^{\alpha} = \mu_i^{\beta} = \cdots \]

第三步:相律。 從這個框架出發,吉布斯推導出了著名的相律(phase rule):

\[ F = C - P + 2 \]

其中 \(F\) 是自由度、 \(C\) 是成分數、 \(P\) 是相數。這條簡潔的公式統治了整個冶金學、地質學與陶瓷工業的相圖分析。

吉布斯的靈感來源是他深厚的數學功底與對熱力學第二定律的深刻洞察——他說過:「宇宙的熵趨於極大」這句話應該寫成數學形式,而他做到了。可惜的是,吉布斯以極簡風格寫作、發表在不起眼的《康乃狄克藝術與科學學報》上,又遠離當時的科學中心歐洲,他的工作被嚴重忽視了二十年以上。

結案報告#

吉布斯的理論最終透過奥斯特瓦德(Ostwald)的翻譯(1892 年譯成德文)、范特荷甫(van 't Hoff)與勒夏特列(Le Chatelier)的推廣而征服歐洲。化學熱力學從此成為化學的總綱:化學平衡常數 \(K\) 與自由能的關係 \(\Delta G^\circ = -RT \ln K\) 、電化學的能斯特方程、溶液理論、相圖學,全部建立在吉布斯的地基上。1923 年 Lewis 與 Randall 的《熱力學》教科書把這套體系寫成現代化學的標準語言。

吉布斯生前安靜,死後封神。愛因斯坦稱他為「美國史上最偉大的頭腦之一」。本書後續的 1884-Ostwald催化與平衡.md 與 1887-Arrhenius電解解離.md 都是站在吉布斯的肩膀上完成的。

證據與工具#

# 用吉布斯自由能判斷反應的自發性與平衡溫度
import numpy as np
import matplotlib.pyplot as plt

# 例:碳酸鈣分解 CaCO3 -> CaO + CO2
# 實驗數據:ΔH ≈ +178.3 kJ/mol, ΔS ≈ +160.5 J/(mol·K)
dH = 178.3e3      # J/mol(吸熱)
dS = 160.5        # J/(mol·K)(熵增)
T = np.linspace(298, 1500, 200)   # 溫度範圍 K

dG = dH - T * dS  # 吉布斯自由能變化

# 平衡溫度:ΔG = 0
T_eq = dH / dS
print(f"平衡溫度 ≈ {T_eq:.0f} K(約 {T_eq-273:.0f} °C)")

plt.plot(T, dG, label=r"$\Delta G = \Delta H - T\Delta S$")
plt.axhline(0, color="gray", ls="--")
plt.axvline(T_eq, color="red", ls=":", label=f"平衡溫度 {T_eq:.0f} K")
plt.xlabel("溫度 T (K)")
plt.ylabel(r"$\Delta G$ (J/mol)")
plt.title(r"CaCO$_3$ 分解:高溫下熵驅動自發($\Delta G<0$)")
plt.legend(); plt.show()