> |
read`../therm_eq.m`:read`../therm_chem.m`:with(therm_chem);with(therm_proc): |
Se quiere obtener un caudal de 100 m3/h (medidos a 0 ºC y 100 kPa) de gas inerte (gas con insuficiente oxígeno para la combustión de combustibles fósiles; xO2<5% según las normas IMO) para un servicio en un buque, a partir de los gases de escape de la combustión de un fuel marino de fórmula empírica C14H26. Se pide:
a) Calcular el aire teórico para ese combustible (en base molar y en base másica).
b) ¿Serviría usar los gases de escape (enfriándos) del motor principal del buque, sabiendo que usa un 100% de exceso de aire?
c) Calcular el exceso de aire máximo para generar gas inerte en un combustor independiente.
d) Calcular los gastos másicos de combustible y de aire necesarios.
e) Calcular el calor a evacuar para suministrar el gas inerte a temperatura ambiente.
Datos:
> |
su0:="Aire":su1:="C":su2:="H2":su3:="H2O":dat:=[u=14,v=26,xO2dry=0.05,VdryN=(100/3600)*m_^3/s_,eMP=1]; |
Eqs. const.:
> |
dat:=op(subs(g=g0,[Const])),op(dat),SI2,SI1:Adat:=get_gas_data(su0):Wdat:=get_gas_data(su3),get_liq_data(su3):get_pv_data(su3): |
a) Calcular el aire teórico para ese combustible (en base molar y en base másica).
> |
su1_:=convert(su1,symbol);su2_:=convert(su2,symbol);fuel:=subs(dat,u*su1_+(v/2)*su2_);eqMIX_:=eqMIX(a*fuel+b*(c21*O2+c79*N2)=[2,3,4,5]);eq15_2;eqA0:=subs(w=0,y=0,dat,eq15_2);Mf_:=subs(dat,(u*0.012+v*0.001)*kg_/mol_);eqA0_:=A0m=A[0]*Ma/Mf;eqA0__:=subs(Mf=Mf_,Ma=M,Adat,eqA0,eqA0_); |
b) ¿Serviría usar los gases de escape (enfriándos) del motor principal del buque, sabiendo que usa un 100% de exceso de aire?
> |
eqe:=e=A/A[0]-1;eqA_MP:=A=2*A[0];eqA_MP_:=subs(eqA0,%);eqDat:=b/a=A;sol1_:=subs(dat,solve({eqBC,eqBH,eqBO,eqBN,eqNX,subs(eqA_MP_,eqDat)},{a,b,x[O2],x[N2],x[CO2],x[H2O]})); |
i.e., no sirve porque sale un 10% (>5%) de xO2 ya en caliente; a temperatura ambiente habrá condensado casi todo el H2O (bueno, en este caso más de 2/3, pues pasaría del 10% al 3%).
> |
eqRaoult:=xH2Omax=p[v](T25)/p0;eqRaoult:=xH2Omax=subs(dat,evalf(subs(dat,pv(T25)))/p0);xO2_dry:=x[O2]/(x[O2]+x[N2]+x[CO2]);xO2_dry_:=subs(sol1_,%); |
c) Calcular el exceso de aire máximo para generar gas inerte en un combustor independiente
> |
eqDat:=x[O2]/(x[O2]+x[N2]+x[CO2])=subs(dat,xO2dry);sol1_:=subs(dat,solve({eqBC,eqBH,eqBO,eqBN,eqNX,eqDat},{a,b,x[O2],x[N2],x[CO2],x[H2O]}));eqe_:=A=b/a;eqe__:=subs(eqA0,eqe_,sol1_,eqe);eqAmax:=A=A[0]*(1+e);eqAmax_:=subs(eqA0,eqe__,eqAmax); |
i.e. sólo se puede usar hasta un 29% de exceso de aire.
d) Calcular los gastos másicos de combustible y de aire necesarios.
> |
u:='u':eqV:=ndot=p0*Vdot/(R[u]*T[tr]);eqV_:=subs(Vdot=VdryN,dat,eqV);ndot_F:='a*ndot';ndot_F_:=subs(eqV_,sol1_,ndot_F);mdot_F:='ndot_F*Mf';mdot_F_:=ndot_F_*Mf_;ndot_A:='ndot_F*A';ndot_A_:=subs(eqAmax_,ndot_F_*A);mdot_A_:=subs(Adat,ndot_A_*M); |
e) Calcular el calor a evacuar para suministrar el gas inerte a temperatura ambiente.
> |
eqBE:=Qdot='ndot_F*PCS';PCS_:=subs(sol1_,PCS(eqMIX_)/a);PCSm:='PCS/Mf';PCSm_:=PCS_/Mf_;Qdot_:=subs(dat,mdot_F_*PCSm_); |
i.e. hay que evacuar 85 kW para que el gas inerte salga a temperatura ambiente.
Los sistemas de gas inerte se usan en el transporte marítimo de crudo, derivados, y otros productos químicos combustibles. Aunque el sistema tradicional es el de generar el gas inerte por combustión (en un quemador especial, usando aire o mejor los gases de escape del motor principal, y luego pasando los gases producto por un absorbedor), también se usan generadores de separación por membrana, donde se separa el nitrógeno del aire.