2. 热力学基础与相平衡条件

相图计算(CALPHAD)之所以能够从一堆热力学参数出发,预测出多元体系在任意温度、成分下的相组成,根本原因在于它把“相是否稳定、以什么比例共存”这类问题,全部转化为吉布斯自由能的比较与最小化问题。因此,在真正动手写计算脚本或调用 Thermo-Calc、Pandat 之前,必须先建立一套统一的热力学语言:什么是组元、什么是相、什么是化学势,以及相平衡到底在什么条件下成立。本节围绕这条主线展开,为后续的相图计算、相分数求解和工艺窗口分析打地基。

一、组元、相与自由度:描述系统的三个基本量

组元(component)是构成体系、且其含量可以独立改变的化学物种。例如 Fe-Cr-Ni 三元体系中,Fe、Cr、Ni 就是三个组元,组元数 C=3。需要区分“组元”与“物种”:若体系中存在化学反应使某些物种含量不独立,则组元数小于物种数。相图计算中通常直接以独立组元数 C 作为成分空间的维度。

相(phase)是体系中物理化学性质均匀、有明确界面与其他部分分开的部分。同一相可以有不同的成分,但结构相同。例如奥氏体(FCC)、铁素体(BCC)、液相(L)、σ 相、M₂₃C₆ 等都是不同的相。相图计算的核心任务,就是确定给定 T、P、成分下哪些相稳定、各相分数是多少、各相成分是多少。

描述一个平衡态需要几个独立强度变量?这就是吉布斯相律:

F = C - P + 2

其中 F 为自由度,C 为组元数,P 为相数,2 对应温度与压力两个强度变量。对恒压下的二元体系(C=2,P=2),F=2-2+1=1,说明两相共存时温度与两相成分被绑定为一条线——这正是二元相图中两相区的由来。相律是判断相图拓扑是否合理的“体检指标”,后续计算中若出现自由度与相数矛盾的结果,往往意味着参数或模型有误。

二、吉布斯自由能:判断稳定性的总指挥

在恒温恒压下,一个封闭体系自发变化的方向是吉布斯自由能 G 减小的方向,平衡态对应 G 取极小值。对含多个组元的相,其摩尔吉布斯自由能可写为:

G_m = Σ x_i · μ_i

其中 x_i 为组元 i 的摩尔分数,μ_i 为组元 i 的化学势。对理想溶液,G_m 由纯组元项与混合项构成:

G_m = Σ x_i · G_i⁰ + RT · Σ x_i · ln x_i

第一项是纯组元加权贡献,第二项是理想混合熵带来的负贡献(因为 x_i<1,ln x_i<0),它使体系倾向于混合。真实溶液还需加入过剩吉布斯自由能 G_ex,用 Redlich-Kister 多项式描述:

G_ex = x_A · x_B · Σ L_n · (x_A - x_B)^n

L_n 为相互作用参数,通常写成温度的一次函数 L_n = a_n + b_n·T。CALPHAD 数据库里存储的正是这些 G_i⁰、L_n 参数。理解这一点非常关键:相图计算不是“画图”,而是对每个相构造 G_m(x,T) 函数,再比较谁更低。

三、化学势与相平衡判据

化学势 μ_i 定义为在恒温恒压下,向体系中加入 1 mol 组元 i 所引起的吉布斯自由能变化:

μ_i = (∂G/∂n_i)_{T,P,n_j}

它同时是组元 i 的偏摩尔吉布斯自由能。对理想溶液,μ_i = G_i⁰ + RT·ln x_i;对真实溶液,用活度 a_i 代替 x_i:μ_i = G_i⁰ + RT·ln a_i,活度系数 γ_i = a_i/x_i 承载了全部非理想性。

相平衡的根本判据是:在恒温恒压下,体系达到平衡时,每一组元在所有共存相中的化学势必须相等。对 α、β 两相平衡:

μ_i^α = μ_i^β   (对每个组元 i)

这条判据等价于“公切线法则”:在 G_m-x 图上,两相平衡时,两相的成分点由一条同时与两条 G_m 曲线相切的公切线确定,切点横坐标就是两相成分,切线斜率对应化学势差。对二元两相区,公切线条件可写成两个方程:

μ_A^α = μ_A^β
μ_B^α = μ_B^β

两个方程、两个未知数(x_A^α、x_A^β),在给定 T 下即可解出两相成分。这正是二元相图计算的数值核心。对三元及以上体系,公切线升级为公切面,求解规模随之增大,但判据形式不变。

二元体系 G_m–x 曲线与公切线:相平衡的几何判据 x_B → G_m α 相 G_m(x) β 相 G_m(x) 公切线:μ_A^α=μ_A^β, μ_B^α=μ_B^β x_B^α x_B^β α+β 两相共存区(杠杆定律适用) α 单相稳定 β 单相稳定 切点横坐标 = 平衡相成分;切线斜率 = 化学势;两相分数由杠杆定律给出

四、从判据到计算:一个可执行的二元示例

下面用一个简化但可复现的示例说明如何把上述判据变成数值过程。设 A-B 二元体系,α 与 β 均为规则溶液,参数取(示例假设值,非实测):

G_A^α = 0        G_B^α = -8000 J/mol    L^α = 12000 J/mol
G_A^β = -3000    G_B^β = -2000 J/mol    L^β = 9000  J/mol
T = 1000 K,  R = 8.314 J/(mol·K)

对规则溶液,组元化学势为:

μ_A = G_A⁰ + RT·ln(1-x_B) + L·x_B²
μ_B = G_B⁰ + RT·ln(x_B)   + L·(1-x_B)²

令 μ_A^α=μ_A^β、μ_B^α=μ_B^β,得到两个非线性方程。可用牛顿-拉夫森迭代求解,初值取 x_B^α=0.2、x_B^β=0.8。迭代收敛后(示例计算,非实测结果)可得到一组近似解,例如 x_B^α≈0.28、x_B^β≈0.72。此时若体系总成分 x_B=0.5,则两相分数由杠杆定律给出:

f^α = (x_B^β - x_B) / (x_B^β - x_B^α) = (0.72-0.50)/(0.72-0.28) ≈ 0.50
f^β = 1 - f^α ≈ 0.50

这个过程的工程意义在于:只要数据库给出了各相的 G⁰ 与 L 参数,任意温度下的相界成分都可以通过“构造 G_m 函数 → 求公切线 → 解化学势相等方程”得到。多元体系只是把两个方程扩展为多个方程,把公切线扩展为公切面,数值方法(如全局最小化、凸包算法)随之升级,但物理判据完全一致。

实操提示:在 Thermo-Calc 中,POLY_3 模块的 COMPUTE-EQUILIBRIUM 本质上就是在做“给定 T、P、总成分,最小化总吉布斯自由能”。若结果出现负相分数或相数异常,优先检查:① 数据库是否覆盖该温度区间;② 是否遗漏了可能稳定的相(用 LIST_PHASES 确认);③ 相互作用参数是否外推过远。

五、常见概念误区与检查清单

  • 把“相”与“组织”混为一谈:珠光体是组织,不是热力学意义上的相;计算得到的是铁素体+渗碳体两相,而非“珠光体相”。
  • 忽略压力项:常压相图计算中 P 固定为 1 atm,相律中的“2”退化为“1”,不要误用 F=C-P+2 去解释恒压相图。
  • 把化学势相等误记为“浓度相等”:平衡时各相成分一般不同,相等的是化学势,不是浓度。
  • 用单一 G_m 曲线判断多相平衡:多元体系必须比较所有候选相的 G_m 并求全局公切面,局部切线可能给出错误结果。