跳轉到

1840 Hess 定律#

案發現場#

十九世紀中葉,化學家們已經知道化學反應伴隨著熱的放出或吸收:燃燒放熱、中和放熱、溶解吸熱。量熱學(calorimetry)的儀器日漸精良,拉瓦錫與拉普拉斯的冰量熱計(見 1789-Lavoisier質量守恆.md)之後,測量反應熱已成為常規工作。

但一個根本問題始終懸而未決:反應熱到底代表什麼?如果兩個反應從相同的原料出發、抵達相同的產物,只是走不同的路徑(例如一步完成,或經過中間產物分兩步完成),總放出的熱會一樣嗎?還是依路徑而異?

這個問題之所以重要,有三個原因:

  1. 實用層面:有些反應熱根本無法直接測量。例如碳在氧氣不足時燃燒成一氧化碳( \(\mathrm{C + \tfrac{1}{2}O_2 \to CO}\) ),火焰中總混雜著二氧化碳,無法單獨測得純粹的熱效應。如果反應熱可以「加減拼湊」,就能由可測的反應間接算出不可測的反應熱。
  2. 理論層面:當時「熱質說」已經被焦耳的熱功當量實驗(1843 年起)動搖,熱逐漸被理解為一種能量。如果熱是能量,那麼反應熱是否遵循與力學中位能同樣的規則——只與始末狀態有關,與路徑無關?
  3. 化學的未來:化學家渴望一個能預測反應可行性、比較反應能量大小的理論。反應熱數據的可靠性,是這一切的起點。

在聖彼得堡,一位出生瑞士、赴俄行醫與教書的化學家 Germain Henri Hess(蓋斯)正面對這個謎題。

偵查過程#

Hess 的偵查手法是典型的實驗歸納法:反覆測量,比對路徑。

他在 1836–1840 年間進行了一系列量熱實驗,最著名的是氨(阿摩尼亞)與硫酸的中和反應。他比較了多種路徑:

  • 路徑一:濃硫酸與氨一步中和;
  • 路徑二:先以水稀釋硫酸(放出稀釋熱),再與氨中和。

Hess 發現:無論走哪條路徑,總熱效應完全相同。稀釋放出的熱,加上稀釋後中和放出的熱,恰好等於直接中和放出的熱。熱好像一本帳簿,記載的只是「起點與終點的差額」,中間如何走動並不影響總帳。

1840 年,他將這一規律發表為「熱量恆定定律」:化學反應的總熱量,只取決於反應物與產物的狀態,而與反應經歷的途徑無關。用今日的熱化學語言表述:

\[ \Delta H_{\text{total}} = \sum_i \Delta H_i \]

具體而言,若反應可拆分為若干步驟,則各步驟反應熱之代數和等於總反應熱:

\[ \mathrm{C(s) + O_2(g) \to CO_2(g)} \quad \Delta H_1 = -393.5 \text{ kJ/mol} \]
\[ \mathrm{CO(g) + \tfrac{1}{2}O_2(g) \to CO_2(g)} \quad \Delta H_2 = -283.0 \text{ kJ/mol} \]
\[ \Rightarrow \mathrm{C(s) + \tfrac{1}{2}O_2(g) \to CO(g)} \quad \Delta H_3 = \Delta H_1 - \Delta H_2 = -110.5 \text{ kJ/mol} \]

這正是碳燃燒成一氧化碳的無法直接測量的反應熱——由兩個可測的反應代數拼湊而出。

Hess 的定律在本質上是能量守恆定律在化學中的先聲:反應熱只與始末態有關,正是「焓是狀態函數」的表現。這與力學中重力位能只看高度差、不看路徑,是同一種數學結構:

\[ \oint dH = 0 \quad \text{(沿任意封閉路徑循環一周,焓的淨變化為零)} \]

結案報告#

Hess 於 1850 年去世,未能親眼看到他的定律被納入更大的理論體系,但「蓋斯定律」成為熱化學(thermochemistry)的奠基石。

  1. 熱化學之始:蓋斯定律使反應熱可以測量、計算、列表。標準生成焓( \(\Delta H_f^\circ\) )表、燃燒熱表等工具,至今仍是有機與無機化學計算的基礎。凡是難以直接測量的反應熱,都能用蓋斯定律間接求出。
  2. 能量守恆的化學版本:蓋斯定律早於 Helmholtz 正式表述能量守恆(1847 年)數年,它在化學領域提前驗證了「能量是狀態函數」的深刻觀念。
  3. 通往化學熱力學:蓋斯定律只是熱力學第一定律在化學中的特例。1870 年代 Gibbs(吉布斯)建立化學熱力學的完整體系——化學位能 \(\mu\) 、自由能 \(\Delta G = \Delta H - T\Delta S\) 、平衡常數與 \(\Delta G^\circ\) 的關聯——把「反應熱」提升為「自由能」,把「能不能反應」變成可以計算的問題。蓋斯定律是這座大廈的地基。
  4. 教學與實務的永恆工具:從高中化學的「黑斯定律計算題」到工業製程的熱量衡算, \(\Delta H_{\text{total}} = \sum \Delta H_i\) 每天都在被使用。

一個聖彼得堡的量熱實驗,讓「熱」第一次成為可加減、可運算的量——化學的能量帳簿,從此公開、透明、且永遠平衡。

證據與工具#

以下 Python 程式用蓋斯定律由標準生成焓計算難以直接測量的反應熱:

# 蓋斯定律:反應總熱只與始末態有關
# 標準生成焓 ΔHf° (kJ/mol),298 K
Hf = {
    "CO2(g)": -393.5,
    "CO(g)":  -110.5,
    "O2(g)":     0.0,   # 元素在標準狀態的生成焓定義為零
    "C(s)":      0.0,
    "H2O(l)": -285.8,
    "H2(g)":     0.0,
}

def reaction_enthalpy(reactants, products):
    """蓋斯定律:ΔH = Σ(產物生成焓) - Σ(反應物生成焓)
    reactants/products: {物種: 係數}"""
    dH = sum(Hf[s] * n for s, n in products.items()) \
       - sum(Hf[s] * n for s, n in reactants.items())
    return dH

# 案例 1:無法直接測量的反應 C + 1/2 O2 -> CO,由兩步拼湊
r1 = reaction_enthalpy({"C(s)": 1, "O2(g)": 1}, {"CO2(g)": 1})       # 直接燃燒成 CO2
r2 = reaction_enthalpy({"CO(g)": 1, "O2(g)": 0.5}, {"CO2(g)": 1})    # CO 燃燒成 CO2
r3 = reaction_enthalpy({"C(s)": 1, "O2(g)": 0.5}, {"CO(g)": 1})      # 待求!
print(f"ΔH1 (C + O2 -> CO2)      = {r1:8.1f} kJ/mol(可直接測)")
print(f"ΔH2 (CO + 1/2O2 -> CO2)  = {r2:8.1f} kJ/mol(可直接測)")
print(f"ΔH3 = ΔH1 - ΔH2 (C + 1/2O2 -> CO) = {r3:8.1f} kJ/mol(蓋斯拼湊)")

# 案例 2:氫的燃燒
rH = reaction_enthalpy({"H2(g)": 1, "O2(g)": 0.5}, {"H2O(l)": 1})
print(f"ΔH (H2 + 1/2O2 -> H2O(l)) = {rH:8.1f} kJ/mol")

# 驗證封閉循環:C -> CO -> CO2 與 C -> CO2,總變化應相同
loop1 = reaction_enthalpy({"C(s)": 1, "O2(g)": 0.5}, {"CO(g)": 1}) + \
        reaction_enthalpy({"CO(g)": 1, "O2(g)": 0.5}, {"CO2(g)": 1})
loop2 = reaction_enthalpy({"C(s)": 1, "O2(g)": 1}, {"CO2(g)": 1})
print(f"循環驗證:路徑和 = {loop1:.1f},直接 = {loop2:.1f} -> {'一致 ✓' if abs(loop1-loop2) < 0.1 else '不一致 ✗'}")