编程求解实际气体状态方程
曹期JUL喂((盛篇ls…lVo1【2N(.3『ull200】 编程求解实际气体状态方程
潘宝娟,沈海滨
(南京化学工业集团公司电大江苏南京210048 摘要:将几种常用的卖筒=气体状冬方程式转化为三丘方程,采用牛顿选代法并耳
J=用计算机蝙程
进行求解
关键词:气体状态方程武;牛顿速代法;高班方程 中图分类号:055231文献标识码:B文章编号:10084207(2001)03005002
一
,数学模型的建立
描述实际气体pV7'行为的状态方程式很多, 比较常用的有范蒋华方程,维里方程,R—K方 程,这些方程都带有两个或多个物性参数,不同的 方程适用于不同的气体及不同的T,P范围.所 以,对不同的气体应该选用不同的方程才能求得 精确的结果.下面对几种常用的实际气体状态方 程进行分析,化简.
范德华方程 1.
i)(6)=RT
范德华方程建立了实际气体的分子模型,方 程式的推导原理很简单,容易理解,适用于中低压 范围,高压下有一定的误差.将上式转化为v的 三次方程:,(V)=,,一(bp十RT)V一
ab=0
2.维里方程
声=RTl1Bc一')
维里方程是纯经验方程,B,c等分别称为第 二,第三,……维里系数,是气体的特性常数,在 计算中压以下的实际气体时,一般略去第三维里 系数以后的高次项,维里方程不适用于高压情况 将上式转化为V的三次方程:,()=pV一 RTV,RTBRTC=0
3R,K方程
LP十J(=盯L1,j(+?J,…
R—K方程被认为是日前最好的二参数方程 式,因它的适用范围广,计算精度高而被广泛使 用.R,K方程用于烃类,N:,等非极性气体时 精度很高,即使在高压下误差仍很小,对NH. O(g)等极性分子气体误差较大对这些极性分
_n,侯)四参数方程误 子气体用马丁一侯(Mal【
差较小,精度较高.
R—K方程也可转化为V的_'次方程: ,()=PRTV一(RTb+pz,
ATO)v一d6,厂.=0
从以上三个方程的转化结果可以看出,求解 实际气体的v卅,最终都归结为求解三次方程的 根.求解三次方程的根,一般采用牛顿迭代法. 4.牛顿迭代法
牛顿迭代法用于求形如,(二r)=n(十【+ a2+…+?的高次方程的实根
具体方法是:先给出根的一个粗略的估计值 ,
sr0,然后不断地用如下的牛顿迭代公式进行迭代
{十算一一龙
收稿日期20o0—08—27
作者简介:潘宝娟(1964).女,浙江东阳^南京化学工业集团公司电大讲师;沈海滨
(L963一),男,江苏太仓凡,南京化学工业集III 公司电大高级讲师
第3期潘宝娟.沈海滨:编程求解实际气体状态方程 直到I矗一II<t为止,f是根据精度要求而 事先给定的个很小的值,例如1OE一6一 式中,()是,(z)的导数
如果迭代不收敛,则指定一个最大的迭代次 数,例如100,当实际迭代次数超过谤数时,就作 为迭代不收敛处理.
由r牛顿迭代法的计算工作量非常大.用手 丁计算费时费力,且很难达到精度要求,所以在实 际应用中很少用这些方程式求v.现在由计算 机来完成这一繁重的计算工作可以大大提高计算 精度
二,设计过程
1.没计说明
下面是用c语言编制一个程序,由两个函数 组成:}雨数main和牛顿迭代求解函数Rapfson 由于不同的方程适用于不同的气体和不同的丁, 范围,我们可以在同一程序中将不同的气体状 态方程的计算设计在一起,以便根据具体情况选 择合适的气体方程可以在主程序中设置一个如 下菜单:
(1)用范德华方程求,
(2)用R—K方程求V
(3)用维里方程求.
请选择(1—3):
根据所选择的气体方程式,并在主程序中输 人相应的物性参数,及温度和压力,求出三次方程 中各项的系数n0,or3的值;然后调用牛顿造代 求根的了程序,求出这样求出的结果比较精 确.最后将结果传回到主函数进行输出. 整个求解过程只要选择气体状态方程式,然 后输人数据即可.
本例中摩尔体积的初始估计值采用理想气体 状态方程式的计算值,即V0:Rfr.由于V 和高次方程中的各项系数(n,or)在程序运行 (即选代琅解)过程中其值不变,且这些变量在几 个函数中都用到,所以将它们定义为全局变量,就 不需要通过参数进行数据的传递了
程序主要内容 2.
:defineR8314
inc[udcmathh'
n.la:3,m:
n-f1t)/t牛顿选代法解三敬方程*/
jJuti=0:
float棚,x,f,门
x,0:
d.
x0=X:
t=[ca3-x0a2)如一a1)*+a0:
门:(3a3*xo十2a2))【0al:
x=棚一fI;i—i—I:
:wk((fabs(x—x0)>=10e一6)&&"<:【00)
if(i>【[H],r+tum(0); dreturn(x):l
main1)
…-
\显示简要菜单*\
prinff("\n(1)用R—K方程求V):
printf("\n(2)用范德华方程求V||l1.); primf{"\n(3用维里方程隶V||l11); print[,n请选择(I一3):");
scanf【%d",c,hoise)
\*输人数据*,
printf("\n输^温度(单位:K)和压强(单位:Pa):");
s哪f("%f%,.&T.&p);
switch(choise)\*求出三次方程的各系数项*\ l【:priutt("\n范德华常数(先a,后b:).n删1; 一f("96f96f'.&a,&b);
a0=一a*b:
ala:
a2=一(P-b十R*T);
a3=p
break;
(2….
r.k~e3::'一
V0=R*T:
Vm=Rapfson();
f{}Vm)pfinff(\n该指定条件下选代收敛"); elseprinff("\n%s在该条件下的Vm%f",flKrlle.Vm)
从程序实际运行结果看,计算结果与实测值 非常吻合,计算精度较高利用计算机并且可以
在极短的时间内完成不同物质在不同丁,P条件 下的精确计算.
参考文献:
[1]天津大学物理化学教研室物理化学[M北京:高等敷育 出版社.1983
[2]谭浩强C程序设计[M]北京:清华大学出版杜,1998 [3]柄保群等PASCAL管理程序库[M]成都:西南交通大学 m版杜.1984(责任编辑文涛)
本文档为【编程求解实际气体状态方程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。