|||
花絮1:
为了整理一些溶剂的蒸汽压,我查了一些文献,发现DMC人们研究得还是比较多的,其中有一部分应用就是作为汽油的添加剂,另一部分就是我们锂电行业电解液的溶剂了。
查到两篇中文的报道里就提供了Antoine方程的回归系数.
这标题言之赫赫的提供了A,B,C三个参数.然而,我拿来一算,结果明显不合理呀!
于是查到原文,里面提供了实测数据如下
再代入公式算算,还是不对呀! 比如说29.6度,
lgP=7.605-1649.63/(29.6+259.08)=1.890610,那么P值算出来是77.73. 这与实测的10.77KPa不符合.这不应该呀,根据实测数据提供的回归方程,竟然与实测数据相差万里.这是怎么回事?
放下这个问题,我再找,有第2篇文献
这篇文章比较厚道,提供了两种回归方程,(1a)就是antoine方程.并且列出了非常详细的实测数据.如下
这时我突然注意到,这篇文章的Anotine方程,压强用的单位是mmHg,不是KPa.会不会上面那篇文章也是用的mmHg作为单位?
把上面的试算结果77.73当成mmHg试试看,77.73/760*101.325=10.36,这个结果与10.77的实测值基本相符了.再把其它温度下的结果验算一下,都能符合.这就比较扯淡了: 作者中间列出来的数据用KPa,结果回归时又用了mmHg,并且没有一个地方提示或说明蒸汽压是用的mmHg做单位进行回归的,当然大家会当成是以KPa为单位来用,这无形中就给读者挖了一个坑,你说奇葩不奇葩?
天津大学的这篇文章还提供了另一种形式的回归方程
这个公式中明显的显示了使用的单位,比较严谨,值得称赞!
花絮2:
我在CRC手册中查到了GBL和EP的数据,只有5~6个点数据.如果我想根据这几个数据算出Antoine方程的A,B,C,应该怎么算呢?
最常用的数据处理工具当然是Excel,可是我查了一下EXCEL趋势线的几种选择,从指数,幂,对数,多项式,线性,移动平均的拟合,都没有办法处理这种公式。
突然,我想起伟大的matlab中好象有个曲线拟合工具,赶紧临时抱佛脚的学习了一下cftool(应该是curve fitting tool的缩写吧)的用法,我的乖乖,用这个工具,用自定义方程输入antoine方程,三下五除二就搞定了!
佩服佩服!
花絮3:
Antoine方程是最准确的吗? 我尝试对PC的蒸汽压数据,分别按Antoine方程或三次多项式进行回归,结果如下:
从拟合的结果来看,拟合的参数,无论哪个按多项式拟合的都要好一些.
结论是,Antoine方程回归并不是所有情况下都是最精确的经验方程,但是它比较通用.
其实,我更喜欢用三次多项式,这个可以简单的用EXCEL来拟合.
花絮4:
偶尔发现,蒸汽压-温度曲线进行拟合时,有的情况下用摄氏度的值来进行拟合,会出现错误.但用绝对温度K的值来拟合,就没有问题了.请看乙酸正丁酯的蒸汽压数据.示例如下
P的单位还是KPa,温度是蒸汽压为1Pa,10Pa乃至100KPa时对应的温度,BA_t表示用摄氏度表示,BA_K表示用开尔文表示.
很显然,用摄氏度进行拟合时,拟合的结果有严重的问题.曲线与线型都对不上.
如果用开尔文进行拟合,结果就不一样了.
这个曲线与数据符合得很好.
这个问题,我猜测原因是,C+t从负向趋近于0时,C+t值为负值,lgP会趋近于负无穷大(注意B为负值,公式中又是减号),C+t从正向趋近于0时,结果趋近于正无穷大.函数出现了不连续.所以拟合结果就非常糟糕了.反之,用开尔文做温度单位,C+T值一直是正数,B/(C+T)就会连续,结果也就比较准确了.
再进一步想想,我们能否避免用摄氏度做温度时拟合出现这样的异常呢? 或许我可以设置一下拟合的起点,将C的拟合起点设置在63.1度,以保证(C+t)总是大于0的,这样结果会怎么样呢?
果然,曲线与数值贴近了,符合得很好, R2到了0.9999,结果相当理想. 问题解决!
求教:
cftool出来的结果精度不高,只有2~3位小数,不知道应该怎么调整,设置format long也没用,希望知道的朋友教我,谢谢!
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2025-1-10 21:14
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社