【求助】PR方程计算空气分离氮组分逸度系数问题
小弟初学气液相平衡
根据已知的一组相平衡数据,学习用PR方程计算组分逸度,但计算结果总是不对!
现在有一个问题迷惑,在用PR方程计算压缩因子时,求得三个结果
不知哪个是气态的压缩因子,哪个是液态的压缩因子?
先贴上此问题的m文件,文件中有详细说明
望各位前辈指教一二,不胜感激!
clear
clc
format long
%在以下压力、温度以及组分条件下,氮氧两组份满足相平衡,相平衡常数KN=1.14,这段程序是为了学习并验证PR方程
p=5.23e5; %压力
T=96.6; %温度
yN=0.904; %气相氮组分
yO=1-yN; %气态氧组分
xN=0.793; %液态氮组分
xO=1-xN; %液态氧组分
%物性基本常数
%N2
TcN=126.2; %临界温度
pcN=34e5; %临界压力
wN=0.03726; %偏心因子
RN=296.8; %气体常数
mN=0.37464+1.54226*wN-0.26992*wN^2; %用来计算PR方程中的a(T)
%O2
TcO=154.58; %同氮气
pcO=50.43e5;
wO=0.022;
RO=259.84;
mO=0.37464+1.54226*wO-0.26992*wO^2;
%PR方程参数求取
%N2
TrN=T/TcN; %对比温度
alphaN=(1+mN*(1-TrN^0.5))^2; %用来求a(T)
acN=0.45724*RN^2*TcN^2/pcN; %用来求a(T)
aN=acN*alphaN; %a(T)计算式
bN=0.0778*RN*TcN/pcN; %b计算式
AN=aN*p/(RN^2*T^2); %A计算式
BN=bN*p/RN/T; %B计算式
aaN=BN-1;
bbN=AN-2*BN-3*BN^2;
ccN=BN^3+BN^2-AN*BN; %以上三个参数用做求体积压缩率的多项式系数
%O2 注释同氮气
TrO=T/TcO;
alphaO=(1+mO*(1-TrO^0.5))^2;
acO=0.45724*RO^2*TcO^2/pcO;
aO=acO*alphaO;
bO=0.0778*RO*TcO/pcO;
AO=aO*p/(RO^2*T^2);
BO=bO*p/RO/T;
aaO=BO-1;
bbO=AO-2*BO-3*BO^2;
ccO=BO^3+BO^2-AO*BO;
%混合规则
%气相
kNO=-0.023644+0.15427e-3; %两元交互因子
am=yN*yN*aN+yO*yO*aO+2*yN*yO*sqrt(aN*aO)*(1-kNO); %混合a
% am=(yN*sqrt(aN)+yO*sqrt(aO))^2;
bm=yN*bN+yO*bO; %混合物的b
Am=am*p/(RN^2*T^2);
Bm=bm*p/RN/T;
aam=Bm-1;
bbm=Am-2*Bm-3*Bm^2;
ccm=Bm^3+Bm^2-Am*Bm; %以上三个参数用做求体积压缩率的多项式系数
%液相
am1=xN*xN*aN+xO*xO*aO+2*xN*xO*sqrt(aN*aO)*(1-kNO);
bm1=xN*bN+(1-xN)*bO;
Am1=am1*p/(RN^2*T^2);
Bm1=bm1*p/RN/T;
aam1=Bm1-1;
bbm1=Am1-2*Bm1-3*Bm1^2;
ccm1=Bm1^3+Bm1^2-Am1*Bm1;
%求体积压缩因子
n=[1,aam,bbm,ccm];
z=roots(n)
n1=[1,aam1,bbm1,ccm1];
z1=roots(n1)
%求两相N2的逸度
phi_yN=exp(bN*(z-1)/bm-log(z-Bm)-Am/(2*sqrt(2))*((2*(yO*sqrt(aN*aO)+yN*sqrt(aN*aN)))/am-bN/bm)*(log((z+2.414*Bm)./(z+0.414*Bm))))
phi_xN=exp(bN*(z1-1)/bm1-log(z1-Bm1)-Am1/(2*sqrt(2))*((2*((1-xN)*sqrt(aN*aO)+xN*sqrt(aN*aN)))/am1-bN/bm1)*(log((z1+2.414*Bm1)./(z1+0.414*Bm1))))
% 无论气相还是液相都取得了三个体积压缩因子,根据相平衡的原则,KN=1.14应该等于phi_xN/phi_yN,分别按照三个压缩因子求得逸度,但无
% 论怎么组合,都不能满足以上式子。
%问题:可能是因为压缩因子求取有问题?另问:当求得三个压缩因子时,到底哪个用作液相的压缩因子,哪个用作气相压缩因子?
返回小木虫查看更多
京公网安备 11010802022153号
if isreal==1
ZL=min(Z)
ZV=max(Z)
else
Z=sum(isreal(Z(i))*Z(i))
end
end
计算相平衡时多注意ai,bi的变化
楼主你好!看到了这个帖子,想知道这个问题是如何解决的?是否适合计算CO2/H2O,不同压力、温度下的逸度?期待你的回复,十分感谢!
不知道怎么才能联系到楼主,方便留下QQ吗?
高手,您补充的这段程序是什么意思?没学过热物理,实在看不懂,能否指教一二
,