> | restart;#"m07_p19" |
Se trata del estudio de las mezclas de propano y n-butano. Se pide:
a) Diagrama p-x a 0 ºC, 20 ºC y 50 ºC.
b) Diagrama T-x a 10 kPa, 100 kPa y 1000 kPa.
Datos:
> | read"../therm_eq.m":read"../therm_proc.m":with(therm_proc): |
> | su1:="C3H8":su2:="C4H10":dat:=[T1=(0+273)*K_,T2=(20+273)*K_,T3=(50+273)*K_,p1=10e3*Pa_,p2=100e3*Pa_,p3=1000e3*Pa_]; |
![]() |
Esquema:
> | ![]() |
> | ![]() |
Eqs. const.:
> | eqETg:=subs(eq1_11,eq1_12);eqEE:=eq1_16;for i from 1 to 2 do gdat||i:=get_gas_data(su||i):dat||i:=op(dat),gdat||i,Const,SI2,SI1:od:pv1:=proc(T) global su1;get_pv_data(su1);RETURN(pv(T)):end:pv2:=proc(T) global su1;get_pv_data(su2);RETURN(pv(T)):end: |
![]() |
![]() |
Desarrollo genérico:
> | eqNV:=xv1+xv2=1;eqNL:=xl1+xl2=1;eqC1:=xv1*xv0+xl1*xl0=x01;eqC2:=xv2*xv0+xl2*xl0=x02;eqE1:=xv1/xl1=pv1/p;eqE2:=xv2/xl2=pv2/p;sol1:=solve({eqNV,eqNL,eqE1,eqE2},{xv1,xv2,xl1,xl2});sol2:=solve({eqC1,eqC2},{xv0,xl0}); |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
a) Diagrama p-x a 0 ºC, 20 ºC y 50 ºC.
0 ºC
> | p1_:=evalf(subs(dat,pv1(T1))):'p1'=evalf(%,2);p2_:=evalf(subs(dat,pv2(T1))):'p2'=evalf(%,2);N:=5:pl1:=[[1,p1_]]:pl2:=[[1,p1_]]:for i from 1 to N-1 do p[i]:=p1_+(p2_-p1_)*(i/N);xv1_[i]:=subs(sol1,p=p[i],pv1=p1_,pv2=p2_,dat,xv1);xl1_[i]:=subs(sol1,p=p[i],pv1=p1_,pv2=p2_,dat,xl1);pl1:=[op(pl1),[xv1_[i],p[i]]];pl2:=[op(pl2),[xl1_[i],p[i]]];print(p[i],xv1_[i],xl1_[i]);od:pl1:=[op(pl1),[0,p2_]]:pl2:=[op(pl2),[0,p2_]]:#plot(subs(SI0,{pl1,pl2,[[1,0],[1,500e3]]}),x=0..1,'p'=0..500e3,color=black); |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
20 ºC.
> | p1_:=evalf(subs(dat,pv1(T2))):'p1'=evalf(%,2);p2_:=evalf(subs(dat,pv2(T2))):'p2'=evalf(%,2);N:=5:pl1_:=[[1,p1_]]:pl2_:=[[1,p1_]]:for i from 1 to N-1 do p[i]:=p1_+(p2_-p1_)*(i/N);xv1_[i]:=subs(sol1,p=p[i],pv1=p1_,pv2=p2_,dat,xv1);xl1_[i]:=subs(sol1,p=p[i],pv1=p1_,pv2=p2_,dat,xl1);pl1_:=[op(pl1_),[xv1_[i],p[i]]];pl2_:=[op(pl2_),[xl1_[i],p[i]]];print(p[i],xv1_[i],xl1_[i]);od:pl1_:=[op(pl1_),[0,p2_]]:pl2_:=[op(pl2_),[0,p2_]]: |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
50 ºC
> | p1_:=evalf(subs(dat,pv1(T3))):'p1'=evalf(%,2);p2_:=evalf(subs(dat,pv2(T3))):'p2'=evalf(%,2);N:=5:pl1__:=[[1,p1_]]:pl2__:=[[1,p1_]]:for i from 1 to N-1 do p[i]:=p1_+(p2_-p1_)*(i/N);xv1_[i]:=subs(sol1,p=p[i],pv1=p1_,pv2=p2_,dat,xv1);xl1_[i]:=subs(sol1,p=p[i],pv1=p1_,pv2=p2_,dat,xl1);pl1__:=[op(pl1__),[xv1_[i],p[i]]];pl2__:=[op(pl2__),[xl1_[i],p[i]]];print(p[i],xv1_[i],xl1_[i]);od:pl1__:=[op(pl1__),[0,p2_]]:pl2__:=[op(pl2__),[0,p2_]]: |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
> | plot(subs(SI0,{pl1,pl2,pl1_,pl2_,pl1__,pl2__,[[1,0],[1,2e6]]}),x=0..1,'p'=0..2e6,color=black); |
![]() |
b) Diagrama T-x a 10 kPa, 100 kPa y 1000 kPa.
> | p0:=p1:T1:=evalf(subs(dat,solve(p0=pv1(T),T)));T2:=evalf(subs(dat,solve(p0=pv2(T),T)));N:=5:pl1:=[[1,T1]]:pl2:=[[1,T1]]:for i from 1 to N-1 do T[i]:=T1+(T2-T1)*(i/N);pv1_:=pv1(T[i]);pv2_:=pv2(T[i]);xv1_[i]:=subs(sol1,p=p0,pv1=pv1_,pv2=pv2_,dat,xv1);xl1_[i]:=subs(sol1,p=p0,pv1=pv1_,pv2=pv2_,dat,xl1);pl1:=[op(pl1),[xv1_[i],T[i]]];pl2:=[op(pl2),[xl1_[i],T[i]]];print(T[i],pv1_,pv2_,xv1_[i],xl1_[i]);od:pl1:=[op(pl1),[0,T2]]:pl2:=[op(pl2),[0,T2]]: |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
a)•100 kPa
> | p0:=p2:T1:=evalf(subs(dat,solve(p0=pv1(T),T)));T2:=evalf(subs(dat,solve(p0=pv2(T),T)));N:=5:pl1_:=[[1,T1]]:pl2_:=[[1,T1]]:for i from 1 to N-1 do T[i]:=T1+(T2-T1)*(i/N);pv1_:=pv1(T[i]);pv2_:=pv2(T[i]);xv1_[i]:=subs(sol1,p=p0,pv1=pv1_,pv2=pv2_,dat,xv1);xl1_[i]:=subs(sol1,p=p0,pv1=pv1_,pv2=pv2_,dat,xl1);pl1_:=[op(pl1_),[xv1_[i],T[i]]];pl2_:=[op(pl2_),[xl1_[i],T[i]]];print(T[i],pv1_,pv2_,xv1_[i],xl1_[i]);od:pl1_:=[op(pl1_),[0,T2]]:pl2_:=[op(pl2_),[0,T2]]: |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
a)•1000 kPa
> | p0:=p3:T1:=evalf(subs(dat,solve(p0=pv1(T),T)));T2:=evalf(subs(dat,solve(p0=pv2(T),T)));N:=5:pl1__:=[[1,T1]]:pl2__:=[[1,T1]]:for i from 1 to N-1 do T[i]:=T1+(T2-T1)*(i/N);pv1_:=pv1(T[i]);pv2_:=pv2(T[i]);xv1_[i]:=subs(sol1,p=p0,pv1=pv1_,pv2=pv2_,dat,xv1);xl1_[i]:=subs(sol1,p=p0,pv1=pv1_,pv2=pv2_,dat,xl1);pl1__:=[op(pl1__),[xv1_[i],T[i]]];pl2__:=[op(pl2__),[xl1_[i],T[i]]];print(T[i],pv1_,pv2_,xv1_[i],xl1_[i]);od:pl1__:=[op(pl1__),[0,T2]]:pl2__:=[op(pl2__),[0,T2]]: |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
> | plot(subs(SI0,{pl1,pl2,pl1_,pl2_,pl1__,pl2__,[[1,0],[1,500]]}),x=0..1,'Temp'=0..400,color=black); |
![]() |
> |