写这篇东西的起因,是我去年做一套压缩空气系统改造时,客户反复追问一个问题:“这气体从压缩机出来之后,到底降到多少度才开始析出水?”接管道的师傅对着露点仪挠头,工艺工程师拿着查出来的露点表说“大概5摄氏度”,结果系统在15摄氏度就开始出现冷凝液。问题就出在只查了水的饱和露点,没算混合气在操作压力下的真实露点。所以我把用安托因方程从气相组成反推露点的完整方法写出来,包含原理推导、手算演示、Python和Excel的落地实现,以及那些现场最容易踩的坑。
1. 露点计算到底在解决什么问题
露点这个词在工程上其实有歧义。对纯组分来说,露点就是该温度下饱和蒸气压等于体系总压的那个点,比如常压下水在100摄氏度沸腾,对应水蒸气的露点也是100摄氏度。但我们在实际项目里碰到的几乎都是多组分气体:天然气、压缩机出口的含油含湿空气、精馏塔顶的混合蒸气、干燥器再生气,这些体系没有一个单一的“饱和蒸气压”。它们在某一个温度下,可能只是混合气中某个重组分刚好开始凝结,这个时候体系里同时存在气相和极少量的液相,那个温度才是这套工艺气体的露点。
搞清楚的第一个意义是选设备。水冷器、空冷器、气液分离罐的设计,全部依赖这个温度。冷却介质温度比露点低多少,决定了实际冷凝量有多少,也决定了分离罐的尺寸。第二个意义是防冻堵。天然气管线里如果同时存在水和重组分烃类,温度降到某个值后,水和烃会分别或同时凝结,形成水合物或者液烃积累。第三个意义是干燥工艺的考核指标。吸附式干燥器出口气的露点,直接说明干燥剂有没有失效,这靠仪器测量,但仪器校准的时候你想过没有,标准露点值用的是什么体系?通常就是纯水蒸气在惰性气体里的露点,这本质上还是一个二元体系的安托因计算问题。
有了这个背景你就明白,露点计算不是背一个公式就完了,它是一个相平衡计算。温度是未知量,气相组成是已知量,体系的约束条件是:当温度降到露点时,混合气刚好达到饱和,或者说,在这个温度下气相中各组分的逸度与一个“即将出现”的液相达到平衡。那道相平衡方程解出来的温度,才是真正的露点。接下来要做的,就是把这个约束条件用安托因方程具体表达出来,然后找迭代方法求解。思路清楚了,后面所有步骤都是数学。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 安托因方程:常数、单位与三个容易踩的边界
安托因方程的常见形式是:
[
\log_{10} P^{sat} = A - \frac{B}{C + T}
]
式中 (P^{sat}) 是纯组分的饱和蒸气压,(T) 是温度,A、B、C是组分特性常数。它本质上是对克拉佩龙-克劳修斯方程在有限温度区间内的拟合,所以它对温度和压力的适用区间是有边界的。工程上最常用的常数表里,有两种单位体系要特别警惕。第一种是以摄氏度配毫米汞柱(mmHg),波林《化学工程手册》里大量采用这种;第二种是以开尔文配巴或帕斯卡,多见于后来的化工模拟软件数据包。同样是苯,摄氏度体系下A=6.90565,B=1211.033,C=220.790,但换到开尔文配千帕的体系,这三个数字完全不同,如果你混用,算出来的饱和蒸气压能差出几个数量级。
我习惯的做法是,从一开始就在计算表或程序里写清楚“常数采用的温度单位和压力单位”,并且统一转换到同一套体系。举个例子,假如我打算用摄氏度加毫米汞柱的常数,那么体系总压也要换算成毫米汞柱。一个常见错误是:总压用了兆帕,而饱和蒸气压算出来是毫米汞柱,直接把两个数相除算K值。单位错了,后面再精细的迭代都是白搭。
第二个边界是温度适用范围。安托因常数表通常会在末尾标注温度范围,比如苯在8到103摄氏度、甲苯在8到111摄氏度、乙苯在30到165摄氏度。出了这个范围,方程的外推结果就开始明显偏离真实蒸气压。尤其要注意低温端,很多人在算低温露点时把常数强行外推到零下几十度,算出来的结果比实际值差出十几摄氏度都有可能。
第三个边界是压力上限。安托因方程背后是理想气体和理想液体的假设,压力越高,真实气体效应越明显,也就越不可靠。经验上,体系总压超过5到10个大气压之后,直接用安托因算出的露点就需要谨慎对待了;超过20个大气压,基本就该切换状态方程(Peng-Robinson或SRK)来做闪蒸计算。这一点到后面第六节再展开,但你先记住,安托因方法的正确使用场景是常压、低压和中等压力下的理想体系,比如常压精馏塔顶、低压气体管道、干燥器进出口。
| 组分 | A(log10,mmHg,℃) | B | C | 适用温度范围(℃) |
|---|---|---|---|---|
| 苯 | 6.90565 | 1211.033 | 220.790 | 8 ~ 103 |
| 甲苯 | 6.95464 | 1344.800 | 219.482 | 8 ~ 111 |
| 乙苯 | 6.95719 | 1424.255 | 213.206 | 30 ~ 165 |
| 水 | 8.07131 | 1730.630 | 233.426 | 1 ~ 100 |
| 正己烷 | 6.87601 | 1171.170 | 224.410 | -25 ~ 70 |
这里有件事要说明:不同版本的手册给出的
