高等工程热力学2014作业 下载本文

高等工程热力学作业

2014年流体热物性部分

高等工程热力学作业

一、请用PR方程计算工质R290、R600a和混合工质R290/R600a(50/50Wt%)的

pvT性质。

PR方程的形式为:

p?RTa? v?bv(v?b)?b(v?b)a?0.45724?R2Tc2pc …… b?0.07780RTc pc??[1?k(1?Tr0.5)]2

k?0.37464?1.54226w?0.26992w2

am???xixj(1?kij)aiaj …… bm??xibi

ijik12?0.01 …………(R32/R125)

已知参数:R=8.31451;

R290: M=44.096g/mol Tc=369.89K pc=4.2512MPa w=0.1521 R600a:M=58.122g/mol Tc=407.81K pc=3.629Pa w=0.184

解题思路:

本题采用PR方程求解工质R290和R290a及其混合物的物性,已知温度和压力即可得到摩尔体积的值。其编写程序如下。 1、程序如下 (1)纯质R290

clc;clear; pc1=4.251200; tc1=369.89; R=8.314;

p=input('输入工质压力MPa)'); t=input('输入工质温度℃'); w1=0.1521; t=t+273.15; pr1=p/pc1; tr1=t/tc1;

k1=0.37464+1.54226*w1-0.26992*w1^2; al1=(1+k1*(1-tr1^0.5))^2; al=0.45724*al1*R^2*tc1^2/pc1; b1=0.07780*R*tc1/pc1; A1=0.45724*al1*pr1/tr1^2;

B1=0.07780*pr1/tr1;

z=1.0;D=1;fz=1; %给变量赋初值 eps1=0.00001;eps2=0.00001; %采用牛顿迭代法求z的值 while D>eps1&&abs(fz)>eps2

fz=z^3-(1-B1)*z^2+z*(A1-2*B1-3*B1^2)-(A1*B1-B1^2-B1^3); fzz=3*z^2-2*(1-B1)*z+A1-2*B1-3*B1^2; y=z; z=z-fz/fzz; D=abs((z-y)/z); end

v=z*8.31451*t/p/10^6;

fprintf('该温度及压力下的工质的摩尔体积为v=%.6fm3/mol\\n',v);

(2)R600a

同R290,只是物性参数改变。 clear;clc; pc2=3.629; R=8.314; tc2=407.81;

p=input('输入工质的压力(MPa)'); t=input('输入工质的温度(℃)'); w2=0.184;

%定义计算需要的系数 t=t+273.15; pr2=p/pc2; tr2=t/tc2;

k2=0.37464+1.54226*w2-0.26992*w2^2; al2=(1+k2*(1-tr2^0.5))^2;

a2=0.45724*al2*R^2*tc2^2/pc2; b2=0.07780*R*tc2/pc2; A2=0.45724*al2*pr2/tr2^2; B2=0.07780*pr2/tr2; %定义迭代的初值 z=1.0;D=1;fz=1;

eps1=0.00001;eps2=0.00001;

%牛顿迭代法求解压缩因子Z 的方程及收敛条件 while D>eps1&&abs(fz)>eps2

fz=z^3-(1-B2)*z^2+z*(A2-2*B2-3*B2^2)-(A2*B2-B2^2-B2^3); fzz=3*z^2-2*(1-B2)*z+A2-2*B2-3*B2^2; y=z;

z=z-fz/fzz; D=abs((z-y)/z); end

v=z*8.31451*t/p/10^6;

fprintf('该温度及压力下的工质的摩尔体积为v=%.6fm3/mol\\n',v);

(3)对于混合工质按照混合法则求解 clear;clc

p=input('输入工质的压力(MPa)'); t=input('输入工质的温度(℃)');

pc1=4.251200;tc1=369.89;w1=0.1521;t=t+273.15; pr1=p/pc1;tr1=t/tc1;

k1=0.37464+1.54226*w1-0.26992*w1^2; al1=(1+k1*(1-tr1^0.5))^2;

a1=0.45724*al1*R^2*tc1^2/pc1; b1=0.07780*R*tc1/pc1;

pc2=3.629;R=8.314;tc2=407.81;w2=0.184; t=t+273.15; pr2=p/pc2; tr2=t/tc2;

k2=0.37464+1.54226*w2-0.26992*w2^2; al2=(1+k2*(1-tr2^0.5))^2;

a2=0.45724*al2*R^2*tc2^2/pc2; b2=0.07780*R*tc2/pc2;

k12=0.01;k21=0.01;R=8.314;

am=0.3233*a1+0.1861*a2+0.4857*(1-k12)*sqrt(a1*a2); bm=0.5686*b1+0.4314*b2; Am=am*p/t^2/R^2; Bm=bm*p/t/R; %定义迭代的初值 z=1.0;D=1;fz=1;

eps1=0.00001;eps2=0.00001;

%牛顿迭代法求解压缩因子Z 的方程及收敛条件 while D>eps1&&abs(fz)>eps2

fz=z^3-(1-Bm)*z^2+z*(Am-2*Bm-3*Bm^2)-(Am*Bm-Bm^2-Bm^3); fzz=3*z^2-2*(1-Bm)*z+Am-2*Bm-3*Bm^2; y=z;

z=z-fz/fzz; D=abs((z-y)/z); end

v=z*8.31451*t/p/10^6;

fprintf('对应于该温度及压力下的该工质的比体积(m3/mol)为v=%.6fm3/mol\\n',v);

2、计算结果

按照以上编程,用PR方程分别计算工质压力为1MPa.温度为27℃时,其摩尔体积值。 (1)R290

p=1MPa.t=27℃时,摩尔体积为0.002034m/mol

3

(2)R600a

p=1MPa.t=27℃时,摩尔体积为0.001643m/mol

3(3)混合工质

p=1MPa.t=27℃时,摩尔体积为0.004596m/mol

3

第四章 实际气体的导出热力学性质与过程

二、请用PR方程计算工质R290、R600a和混合工质R290/R600a(50/50Wt%)的导出热力性质焓和熵。PR方程的余焓和余熵函数为:

ar?a*?a?RTlnv?bav?0.414bv?ln?RTln* vv22bv?2.414bv?b?v?0.414bv?ln?RTln* vv22bv?2.414bbr?b*?b??RTln?a ?T??理想气体比热:cp0=c0+ c1T+ c2T2 + c3T3 J/(kg.K)

R290: c0=-95.8 c1=6.945 c2=-3.597×10-3 c3=7.290×10-7 R600a: c0=-29.91 c1=6.605 c2=-3.176×10-3 c3=4.981×10-7 0oC工质的饱和压力:

R290:ps=0.15696 MPa R600a:ps=0.47446MPa R290/R600a(50/50Wt%):ps=0.32979 MPa

解题思路:

按照国际标准以0℃饱和液体为计算基准点。

取h0℃,ps?200kJ/kg s0℃,ps?1kJ/kg?K 焓值计算

273.15hp,T?0?熵值计算

?0cdT??0pT273.15cdT?hrp,T?200?hr0℃,ps??0pT273.15c0pdT?hrp,T

273.15sp,T?0??0c0pTc0pspppdT??dT?Rln?Rln?srp,T?1?sr0℃,ps??dT?Rln?srp,T273.15T273.15TTp0pspsTc0p1、编程如下:

1)对于纯质R290 clear;clc

%输入已知参数

p=input('输入待求工质的压力(MPa)'); t=input('输入待求工质的温度(℃)'); t0=273.15; t=t+t0;

R=8.31451;

%R290工质的参数 pc=4.2512; tc=369.89;

w=0.1521; M=44.096; ps=0.15696; %理想气体比热 c0=-95.80;

c1=6.945;c2=-3.597*10^-3; c3=7.290*10^-7;

%求解余焓和余熵函数 [hr sr]=hr_s(p,t,pc,tc,w,M);

fprintf('该温度及压力下的该工质的余焓为hr=%.6f kJ/kg\\n',hr); fprintf('该温度及压力下的该工质的余熵为sr=%.6f kJ/kgK\\n',sr); [hr0 sr0]=hr_s(ps,273.15,pc,tc,w,M);

fprintf('0℃时工质饱和液体的余焓为hr=%.6f kJ/kg\\n',hr0); fprintf('0℃时工质饱和液体的余熵为sr=%.6f kJ/kgK\\n',sr0); %从273.15度到T进行积分cp0和cp0/T的值

int1=c0*t+1/2*c1*t^2+1/3*c2*t^3+1/4*c3*t^4-(c0*t0+1/2*c1*t0^2+1/3*c2*t0^3+1/4*c3*t0^4); int2=c1*t+1/2*c2*t^2+1/3*c3*t^3-c0/t^2-(c1*t0+1/2*c2*t0^2+1/3*c3*t0^3-c0/t0^2); %计算工质的焓和熵 h=200+hr0+int1/1000-hr;

s=1+sr0+int2/1000-R*log(p/ps)/M-sr; %输出计算结果

fprintf('该温度及压力下工质的焓为h=%.6f kJ/kg\\n',h); fprintf('该温度及压力下工质的熵为s=%.6f kJ/kgK\\n',s); 2) 对于纯质R600a clear;

p=input('输入待求工质的压力(MPa)'); t=input('输入待求工质的温度(℃)'); t0=273.15;t=t+t0; R=8.31451;

%R600a工质的参数 pc=3.629; tc=407.81; w=0.184; M=58.122; ps=0.47446;

%理想气体比热参数 c0=-23.91; c1=6.605;

c2=-3.176*10^-3; c3=4.981*10^-7;

%求解余焓和余熵函数 [hr, sr]=hr_s (p,t,pc,tc,w,M);

fprintf('该温度及压力下的该工质的余焓为hr=%.6f kJ/kg\\n',hr); fprintf('该温度及压力下的该工质的余熵为sr=%.6f kJ/kgK\\n',sr);

[hr0, sr0]=hr_s (ps,273.15,pc,tc,w,M);

fprintf('0℃时工质饱和液体的余焓为hr=%.6f kJ/kg\\n',hr0); fprintf('0℃时工质饱和液体的余熵为sr=%.6f kJ/kgK\\n',sr0); %从273.15度到T进行积分cp0和cp0/T的值

int1=c0*t+1/2*c1*t^2+1/3*c2*t^3+1/4*c3*t^4-(c0*t0+1/2*c1*t0^2+1/3*c2*t0^3+1/4*c3*t0^4); int2=c1*t+1/2*c2*t^2+1/3*c3*t^3-c0/t^2-(c1*t0+1/2*c2*t0^2+1/3*c3*t0^3-c0/t0^2); %计算工质的焓和熵 h=200+hr0+int1/1000-hr;

s=1+sr0+int2/1000-R*log(p/ps)/M-sr; %输出计算结果

fprintf('该温度及压力下工质的焓为h=%.6f kJ/kg\\n',h); fprintf('该温度及压力下工质的熵为s=%.6f kJ/kgK\\n',s);

3) 对于混合工质R600a/R290 W/W=50/50 clear

p=input('输入工质的压力(MPa)'); t=input('输入工质的温度(℃)'); t0=273.15; t=t+t0;

R=8.31451; ps=0.32979; M1=44.096; M2=58.122;

M=0.5686*M1+0.4314*M2; %R290理想气体比热 c01=-95.80; c11=6.945;

c21=-3.597*10^-3; c31=7.290*10^-7;

%R600a理想气体比热 c02=-23.91; c12=6.605;

c22=-3.176*10^-3; c32=4.981*10^-7;

%混合工质理想气体比热 c0=0.5686*c01+0.4314*c02; c1=0.5686*c11+0.4314*c12; c2=0.5686*c21+0.4314*c22; c3=0.5686*c31+0.4314*c32; %求解余焓和余熵函数 [hr sr]=Mix(p,t);

fprintf('该温度及压力下工质的余焓为hr=%.6f kJ/kg\\n',hr); fprintf('该温度及压力下工质的余熵为sr=%.6f kJ/kgK\\n',sr); [hr0 sr0]=Mix(ps,t0);

fprintf('0℃时工质饱和液体的余焓为hr=%.6f kJ/kg\\n',hr0); fprintf('0℃时工质饱和液体的余熵为sr=%.6f kJ/kgK\\n',sr0); %从273.15度到T进行积分cp0和cp0/T的值

int1=c0*t+1/2*c1*t^2+1/3*c2*t^3+1/4*c3*t^4-(c0*t0+1/2*c1*t0^2+1/3*c2*t0^3 +1/4*c3*t0^4);

int2=c1*t+1/2*c2*t^2+1/3*c3*t^3-c0/t^2-(c1*t0+1/2*c2*t0^2+1/3*c3*t0^3-c0/t0^2); %计算工质和焓和熵 h=200+hr0+int1/1000-hr;

s=1+sr0+int2/1000-R*log(p/ps)/M-sr; %输出计算结果

fprintf('该温度及压力下混合工质的焓为h=%.6f kJ/kg\\n',h); fprintf('该温度及压力下混合工质的熵为s=%.6f kJ/kg?K\\n',s);

%调用了一个余函数

function [hr sr]=hr_s(p,t,pc,tc,w,M) R=8.31451; tr=t/tc;

k=0.37464+1.54226*w-0.26992*w^2; al=(1+k*(1-tr^0.5))^2;

al1=-(1+k*(1-tr^0.5))*k*(1/t/tc)^0.5; a=0.45724*al*R^2*tc^2/pc*10^-6; a1=0.45724*al1*R^2*tc^2/pc*10^-6; b=0.07780*R*tc/pc*10^-6; A=a*p*10^6/(R*t)^2; B=b*p*10^6/t/R; z=1.0;D=1;fz=1;

eps1=0.00001;eps2=0.00001;

%利用牛顿迭代法求解压缩因子Z while D>eps1&&abs(fz)>eps2

fz=z^3-(1-B)*z^2+z*(A-2*B-3*B^2)-(A*B-B^2-B^3); fzz=3*z^2-2*(1-B)*z+A-2*B-3*B^2; y=z;

z=z-fz/fzz; D=abs((z-y)/z); end

v=z*8.31451*t/p/10^6; v1=R*t/p/10^6;

hr=(t*a1-a)/(2^1.5*b)*log((v-0.414*b)/(v+2.414*b))+R*t*(1-z);

sr=a1/(2^1.5*b)*log((v-0.414*b)/(v+2.414*b))-R*log((v-b)/v)-R*log(v/v1); hr=hr/M; sr=sr/M;

以下是混合工质参数混合原则 function [hr sr]=Mix (p,t) R=8.31451;

pc1=4.2512;tc1=369.89;w1=0.1521;M1=44.096; tr1=t/tc1;

pc2=3.629;tc2=407.81;w2=0.184;M2=58.122; tr2=t/tc2;

M=0.5686*M1+0.4314*M2;

%计算工质R290PR方程的系数

k1=0.37464+1.54226*w1-0.26992*w1^2; al1=(1+k1*(1-tr1^0.5))^2;

al11=-(1+k1*(1-tr1^0.5))*k1*(1/t/tc1)^0.5; a1=0.45724*al1*R^2*tc1^2/pc1*10^-6; a11=0.45724*al11*R^2*tc1^2/pc1*10^-6; b1=0.07780*R*tc1/pc1*10^-6; %计算工质R600aPR方程的系数

k2=0.37464+1.54226*w2-0.26992*w2^2; al2=(1+k2*(1-tr2^0.5))^2;

al21=-(1+k2*(1-tr2^0.5))*k2*(1/t/tc2)^0.5; a2=0.45724*al2*R^2*tc2^2/pc2*10^-6; a21=0.45724*al21*R^2*tc2^2/pc2*10^-6; b2=0.07780*R*tc2/pc2*10^-6; %混合法则 k12=0.01;

am=0.3233*a1+0.1861*a2+0.4857*(1-k12)*sqrt(a1*a2);

am1=0.3233*a11+0.1861*a21+0.4857*(1-k12)*(1/sqrt(4*a1*a2)*(a11*a2+a1*a21)); bm=0.5686*b1+0.4314*b2; %压缩因子Z方程的系数 A=am*p*10^6/(R*t)^2; B=bm*p*10^6/t/R; z=1.0;D=1;fz=1;

eps1=0.00001;eps2=0.00001; while D>eps1&&abs(fz)>eps2

fz=z^3-(1-B)*z^2+z*(A-2*B-3*B^2)-(A*B-B^2-B^3); fzz=3*z^2-2*(1-B)*z+A-2*B-3*B^2; y=z;

z=z-fz/fzz; D=abs((z-y)/z); end

v=z*R*t/p/10^6;

fprintf('该温度及压力下的混合制冷剂的比体积(m3/mol)为v=%.6f\\n',v); v1=R*t/p/10^6;

hr=(t*am1-am)/(2^1.5*bm)*log((v-0.414*bm)/(v+2.414*bm))+R*t*(1-z);

sr=am1/(2^1.5*bm)*log((v-0.414*bm)/(v+2.414*bm))-R*log((v-bm)/v)-R*log(v/v1); hr=hr/M; sr=sr/M;

2、计算结果如下

1)R290余熵余焓计算结果

2)R600a余熵余焓计算结果

3) 对于混合工质R600a/R290 W/W=50/50

第六章 气液相平衡

三、试用Peng-Robinson方程计算 纯质R290p-t相图和溶液R290/R600a分别在p=1atm和p=10atm下的T-x相图。

解题思路:

气液相平衡时,各相温度相等,各相压力相等,而且每一种组分在各相的化学势相等,每种组分在各相的逸度亦相等。由此可得

f?fil

?vi??yip??xip

则 Ki??vi?liyi?? xi??li?vi式中,fi 、?i 分别表示溶液中i组分的逸度和逸度系数,上角标v、l相应表示汽相和液相。Ki称为i组分的汽液平衡比。

i组分的逸度系数用P-R方程求得如下:

??bAln?i?i(Z?1)?ln(Z?B)?(b22B?2?xjaijjabZ?2.414B ?i)lnbZ?0.414B本题给定压力和液相组分,可假定一个温度和汽相成分。其计算框图和计算步骤如下:

开始 结束

输入p,{xi}及 打印结果 所有物性参数; 给T、{yi}赋初 是 否 ? ?调整T Kixi?1? lv计算{?}、{} ?i i 否 是 计算yi?Kixi/Kixi 计算所有的 ??yi 是否变化 lv?Ki??i/?i 计算{?iv} 是 否 是否第一次计算 迭代 yi?Kixi ?????(1)输入压力、液相成分及各组分的物性参数,并给压力及汽相成分赋初值。

(2)根据上面所提供的数据,调用计算物性而选用的状态方程中常系数的子程序,计算混合物的状态方程中的常系数。

(3)求出才常系数后,根据给定的压力及假设的温度迭代求解比容值:用液相摩尔百分数xi代入混合法则中的摩尔百分数项,迭代求出液相比容;用汽相摩尔百分数yi代入混合法则中的摩尔百分数项,迭代求出汽相比容。

(4)根据所选用的状态方程的表达式,根据(3)算出的比容,已知压力、xi及假设的p、yi,分别计算出。 (5)计算平衡比

(6)判断是否为第一次迭代。若为第一次迭代,则重新计算,并利用新的yi求方程中的系数,在迭代求解汽相比容,重复第五步。若不是第一次迭代,则坐第七步。

(7)判断是否在变化。若变化,则重新计算,类似第六步的作法,重新计算;若不变化,再判断是否等于1.若,则说米假定的温度T的初值不对,重新调整T,再返回第二步;若,则将结果输出。

程序如下

1、纯质R290p-T相图

1)求R290液相逸度系数子程序

function fl=fl_s(p,t) t=t+273.15;

pc=4.2512;tc=369.89;w=0.1521;%R290的物性参数 tr=t/tc; R=8.31451;

%求解PR方程的各个常系数 k=0.37464+1.54226*w-0.26992*w^2; al=(1+k*(1-tr^0.5))^2;

a=0.45724*al*R^2*tc^2/pc*10^-6; b=0.07780*R*tc/pc*10^-6; A=a*p*10^6/(R*t)^2; B=b*p*10^6/t/R; z=0.0001;D=1;fz=1; eps1=0.00001;eps2=0.00001; %采用牛顿迭代法求解z的值 while D>eps1&&abs(fz)>eps2

fz=z^3-(1-B)*z^2+z*(A-2*B-3*B^2)-(A*B-B^2-B^3); fzz=3*z^2-2*(1-B)*z+A-2*B-3*B^2; y=z; z=z-fz/fzz; D=abs((z-y)/z); end

v=z*8.31451*t/p/10^6;%液相比容 v1=R*t/p/10^6;

fl=R*t*log((v-b)/v)+R*t*log(v/v1)-a/(2^1.5*b)*log((v-0.414*b)/(v+2.414*b))-(1-z);%液相逸度系数

的自然对数

2)求R290汽相逸度系数子程序

function fg=fg_s(p,t) t=t+273.15;

pc=4.2512;tc=369.89;w=0.1521;% R290的物性参数 tr=t/tc; R=8.31451;

%求解PR方程的各个常系数 k=0.37464+1.54226*w-0.26992*w^2; al=(1+k*(1-tr^0.5))^2;

a=0.45724*al*R^2*tc^2/pc*10^-6; b=0.07780*R*tc/pc*10^-6; A=a*p*10^6/(R*t)^2; B=b*p*10^6/t/R; z=1.0;D=1;fz=1;

eps1=0.00001;eps2=0.00001; %采用牛顿迭代法求解z的值 while D>eps1&&abs(fz)>eps2

fz=z^3-(1-B)*z^2+z*(A-2*B-3*B^2)-(A*B-B^2-B^3); fzz=3*z^2-2*(1-B)*z+A-2*B-3*B^2; y=z; z=z-fz/fzz; D=abs((z-y)/z); end

v=z*8.31451*t/p/10^6; v1=R*t/p/10^6;

fg=R*t*log((v-b)/v)+R*t*log(v/v1)-a/(2^1.5*b)*log((v-0.414*b)/(v+2.414*b))-(1-z); %汽相逸度系数的自然对数

3)画R290p-t相图

clear;clf;clc; hold on

axis([-60,100,0,5]); grid p=0.5; n=0;

for t=-60:1:93 fl=1;fg=2;

while abs(fl-fg)>=0.0001 p=p+0.0001; fl=fl_s(p,t); fg=fg_s(p,t);

fprintf('计算次数n=%.f\\n',n); n=n+1; end

plot(t,p,'r.','markersize',10);hold on; end

title('R290的p-T相图'); xlabel('温度t/℃'); ylabel('压力p/MPa');

2、计算溶液R290/R600a在p=1atm下的T-x相图 1)调用汽相逸度系数子程序

function [mf1 mf2]=mf_s(p,t,y1,y2,z0) t=t+273.15; R=8.31451;

pc1=4.2512;tc1=369.89;w1=0.1521; tr1=t/tc1;

pc2=3.629;tc2=407.81;w2=0.184; tr2=t/tc2;

%计算工质R290的各个系数

k1=0.37464+1.54226*w1-0.26992*w1^2; al1=(1+k1*(1-tr1^0.5))^2; a1=0.45724*al1*R^2*tc1^2/pc1; b1=0.07780*R*tc1/pc1;

%计算工质R600a的各个系数

k2=0.37464+1.54226*w2-0.26992*w2^2; al2=(1+k2*(1-tr2^0.5))^2; a2=0.45724*al2*R^2*tc2^2/pc2; b2=0.07780*R*tc2/pc2; %混合法则 k12=0.01;

am=y1^2*a1+y2^2*a2+2*y1*y2*(1-k12)*sqrt(a1*a2); bm=y1*b1+y2*b2; %求解z

A=am*p/R^2/t^2; B=bm*p/R/t;

z=z0;D=1;fz=1; % 迭代初值,汽相z=1;液相z=0; B=bm*p/R/t; z=z0;D=1;fz=1;

eps1=0.00001;eps2=0.00001; %采用牛顿迭代法求解z的值 while D>eps1&&abs(fz)>eps2

fz=z^3-(1-B)*z^2+z*(A-2*B-3*B^2)-(A*B-B^2-B^3); fzz=3*z^2-2*(1-B)*z+A-2*B-3*B^2; y=z; z=z-fz/fzz; D=abs((z-y)/z); end

mf1=exp(b1/bm*(z-1)-log(z-B)-A/(2^1.5*B)*(2*(y1*a1+y2*(1-k12)*sqrt(a1*a2))/am-b1/bm)*log((z+2.414*B)/(z-0.414*B)));

mf2=exp(b2/bm*(z-1)-log(z-B)-A/(2^1.5*B)*(2*(y2*a2+y1*(1-k12)*sqrt(a1*a2))/am-b2/bm)*log((z+2.414*B)/(z-0.414*B)));

2)溶液R290/R600a在p=1atm下的T-x相图

clear;clf;clc;

p=0.101; %p=1atm,一个大气压下

for y1=0:0.001:1 %设定汽相求解的步长 y2=1-y1;x1=0.1;x2=1-x1;x=0;t=-60; while abs(x-1)>=0.01 t=t+0.1;

[mfl1, mfl2]=mf_s(p,t,x1,x2,0.001); %液相逸度 [mfg1, mfg2]=mf_s(p,t,y1,y2,1.001); %汽相逸度 k1=mfg1/mfl1; k2=mfg2/mfl2; x1=k1*y1/(k1*y1+k2*y2); x2=k2*y2/(k1*y1+k2*y2); x0=x; x=k1*y1+k2*y2; while abs(x-x0)>0.001

[mfl1, mfl2]=mf_s(p,t,x1,x2,0.001); k1=mfg1/mfl1; k2=mfg2/mfl2; x1=k1*y1/(k1*y1+k2*y2); x2=k2*y2/(k1*y1+k2*y2); x0=x; x=k1*y1+k2*y2; end end T=273.15+t;

fprintf(‘R290汽相组分y1=%.3f, 液相组分x1=%.3f,相平衡温度T=%.2fK\\n,y1,x1,T); axis([0,1,220,270]);

plot(x1,T,'b.','markersize',5);hold on; plot(y1,T,'r.','markersize',5);hold on; grid end

title('溶液R290/R600a在1atm下的T-x相图'); xlabel('组分x(y)'); ylabel('温度T/K');

同理,在p=10atm时,修改主程序中的压力并重新给温度赋初值,可得到同样的图像如下: