> restart:#"m15_p52"

> read`../therm_eq.m`:read`../therm_chem.m`:with(therm_chem);with(therm_proc):

[Ateo, Mf, PCI, PCS, eqEQ, eqMIX, eq_fit, get_hgs_data, hgs_r25, nulist, seqEBE]

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];

[u = 14, v = 26, xO2dry = 0.5e-1, VdryN = `+`(`/`(`*`(`/`(1, 36), `*`(`^`(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_);

C
H2
`+`(`*`(14, `*`(C)), `*`(13, `*`(H2)))
`+`(`*`(a, `*`(`+`(`*`(14, `*`(C)), `*`(13, `*`(H2))))), `*`(b, `*`(`+`(`*`(c21, `*`(O2)), `*`(c79, `*`(N2)))))) = `+`(`*`(x[O2], `*`(O2)), `*`(x[N2], `*`(N2)), `*`(x[CO2], `*`(CO2)), `*`(x[H2O], `*`(...
A[0] = `/`(`*`(`+`(u, `*`(`/`(1, 4), `*`(v)), `-`(`*`(`/`(1, 2), `*`(w))), y)), `*`(c21))
A[0] = 97.61
`+`(`/`(`*`(.194, `*`(kg_)), `*`(mol_)))
A0m = `/`(`*`(A[0], `*`(Ma)), `*`(Mf))
A0m = 14.59

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]}));

e = `+`(`/`(`*`(A), `*`(A[0])), `-`(1))
A = `+`(`*`(2, `*`(A[0])))
A = 195.2
`/`(`*`(b), `*`(a)) = A
{a = 0.4958e-2, b = .9678, x[CO2] = 0.6941e-1, x[H2O] = 0.6445e-1, x[N2] = .7646, x[O2] = .1016}

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_,%);

xH2Omax = `/`(`*`(p[v](T25)), `*`(p0))
xH2Omax = 0.3158e-1
`/`(`*`(x[O2]), `*`(`+`(x[O2], x[N2], x[CO2])))
.1086

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);

`/`(`*`(x[O2]), `*`(`+`(x[O2], x[N2], x[CO2]))) = 0.5e-1
{a = 0.7542e-2, b = .9510, x[CO2] = .1056, x[H2O] = 0.9805e-1, x[N2] = .7513, x[O2] = 0.4510e-1}
A = `/`(`*`(b), `*`(a))
e = .291
A = `*`(A[0], `*`(`+`(1, e)))
A = 126.0

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);

ndot = `/`(`*`(p0, `*`(Vdot)), `*`(R[u], `*`(T[tr])))
ndot = `+`(`/`(`*`(1.223, `*`(mol_)), `*`(s_)))
`*`(a, `*`(ndot))
`+`(`/`(`*`(0.9224e-2, `*`(mol_)), `*`(s_)))
`*`(ndot_F, `*`(Mf))
`+`(`/`(`*`(0.1789e-2, `*`(kg_)), `*`(s_)))
`*`(ndot_F, `*`(A))
`+`(`/`(`*`(1.162, `*`(mol_)), `*`(s_)))
`+`(`/`(`*`(0.3370e-1, `*`(kg_)), `*`(s_)))

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_);

Qdot = `*`(ndot_F, `*`(PCS))
`+`(`/`(`*`(0.9224e7, `*`(J_)), `*`(mol_)))
`/`(`*`(PCS), `*`(Mf))
`+`(`/`(`*`(0.4755e8, `*`(J_)), `*`(kg_)))
`+`(`*`(0.8507e5, `*`(W_)))

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.

>