> restart:#"m15_p50"

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

La figura representa un esquema idealizado de un calorímetro de flujo para la medida del poder calorífico de combustibles gaseosos. Por 1 se alimenta un mechero bunsen con 170 L/h de un hidrocarburo gaseoso con exceso de aire a 20 ºC, saliendo el escape por 2 a 40 ºC. Por 3 se alimenta el agua de refrigeración a 15 ºC, 75 L/h, saliendo por 4 a 35 ºC. Por 5 sale el agua condensada en las paredes, 14 cm3 en 5 minutos. Se pide.
a) Poder calorífico del gas.
b) Deducir de qué gas puede tratarse.
c) Cantidad de agua que sale con los gases de escape.
d) Relación aire/combustible.
e) Composición de los gases a la salida.

Datos:

> fuel:=CH4;su:="H2O":dat:=[VdotF=(170/3.6e6)*m_^3/s_,T1=(20+273)*K_,T2=(40+273)*K_,mdotC=(75/3600)*kg_/s_,DT=(35-15)*K_,mdotW=(14e-3/300)*kg_/s_];

CH4
[VdotF = `+`(`/`(`*`(0.4722e-4, `*`(`^`(m_, 3))), `*`(s_))), T1 = `+`(`*`(293, `*`(K_))), T2 = `+`(`*`(313, `*`(K_))), mdotC = `+`(`/`(`*`(`/`(1, 48), `*`(kg_)), `*`(s_))), DT = `+`(`*`(20, `*`(K_))),...

Image

Eqs. const.:

> dat:=op(dat),op(subs(g=g0,[Const])),SI2,SI1:Wdat:=get_gas_data(su),get_liq_data(su):get_pv_data(su):

a) Poder calorífico del gas.

Despreciando la entalpía térmica de los gases de escape:

> eqBE:=Qdot=mdotC*c*DT;Qdot_:=subs(Wdat,dat,rhs(eqBE));ndotF:=p0*VdotF/(R[u]*T0);ndotF_:=subs(Const,dat,ndotF);'PCS'='Qdot/ndotF';PCS_:=subs(dat,Qdot_/ndotF_);

Qdot = `*`(mdotC, `*`(c, `*`(DT)))
`+`(`*`(1742., `*`(W_)))
`/`(`*`(p0, `*`(VdotF)), `*`(R[u], `*`(T0)))
`+`(`/`(`*`(0.1972e-2, `*`(mol_)), `*`(s_)))
PCS = `/`(`*`(Qdot), `*`(ndotF))
`+`(`/`(`*`(0.8834e6, `*`(J_)), `*`(mol_)))

b) Deducir de qué gas puede tratarse.

Sabemos de otros problemas que ese valor es próximo al PCS del metano, 890 kJ/mol, pero se deduciría así:

> eq:=a*CnHm+b*(c21*O2+c79*N2)=a*n*CO2+a*(m/2)*H2O+(b*c21-a*n-a*(m/4))*O2+b*c79*N2;eqBE:=PCS=-n*h[f,CO2]-(m/2)*h[f,H2O]+a*h[f,CnHm];eqBE_:=subs(PCS=PCS_,h[f,CO2]=h4_,h[f,H2O]=h5_,h[f,CnHm]=0,eqBE);'n'=1;m_n1:=evalf(subs(n=1,solve(eqBE_,m)),2);'n'=2;m_n2:=evalf(subs(n=2,solve(eqBE_,m)));

`+`(`*`(a, `*`(CnHm)), `*`(b, `*`(`+`(`*`(c21, `*`(O2)), `*`(c79, `*`(N2)))))) = `+`(`*`(a, `*`(n, `*`(CO2))), `*`(`/`(1, 2), `*`(a, `*`(m, `*`(H2O)))), `*`(`+`(`*`(b, `*`(c21)), `-`(`*`(a, `*`(n))), ...
PCS = `+`(`-`(`*`(n, `*`(h[f, CO2]))), `-`(`*`(`/`(1, 2), `*`(m, `*`(h[f, H2O])))), `*`(a, `*`(h[f, CnHm])))
`+`(`/`(`*`(0.8834e6, `*`(J_)), `*`(mol_))) = `+`(`/`(`*`(0.3935e6, `*`(n, `*`(J_))), `*`(mol_)), `/`(`*`(0.1429e6, `*`(m, `*`(J_))), `*`(mol_)))
n = 1
3.4
n = 2
.674

i.e. se empieza despreciando la entalpía de formación del combustible y estimando la n máxima, que es n=2, y se prueba con n decreciente, calculando la m que corresponde. Se concluye que las parejas posibles son (n=1, m=4; i.e. CH4), (n=1,m=3) o (n=2,m=1), y por tanto será metano o, más probablemente, un gas natural.

c) Cantidad de agua que sale con los gases de escape.

La cantidad total de agua generada, ndotWtotal, se deduce de la estequiometría, y la de agua líquida del dato de condensado.:

> eq:=CH4+2*O2=CO2+2*H2O;ndotWtotal:='2*ndotF';ndotWtotal_:=2*ndotF_;ndotWliq:=mdotW/M;ndotWliq_:=subs(Wdat,dat,ndotWliq);ndotWvap:='ndotWtotal-ndotWliq';ndotWvap_:=ndotWtotal_-ndotWliq_;

`+`(CH4, `*`(2, `*`(O2))) = `+`(CO2, `*`(2, `*`(H2O)))
`+`(`*`(2, `*`(ndotF)))
`+`(`/`(`*`(0.3944e-2, `*`(mol_)), `*`(s_)))
`/`(`*`(mdotW), `*`(M))
`+`(`/`(`*`(0.2593e-2, `*`(mol_)), `*`(s_)))
`+`(ndotWtotal, `-`(ndotWliq))
`+`(`/`(`*`(0.1351e-2, `*`(mol_)), `*`(s_)))

i.e. del los 0,0039 mol/s de agua formada, un 67% (26/39) condensa y el otro 33% sale como vapor disuelto en el escape, que no es despreciable, luego, habría que corregir el poder calorífico experimental para obtener el poder calorífico superior.

> PCS='(Qdot+ndotWvap*h[lv])/ndotF';PCS_:=subs(dat,(Qdot_+ndotWvap_*(h6_-h5_))/ndotF)

PCS = `/`(`*`(`+`(Qdot, `*`(ndotWvap, `*`(h[lv])))), `*`(ndotF))
Warning, inserted missing semicolon at end of statement
`+`(`/`(`*`(0.9135e6, `*`(J_)), `*`(mol_)))

d) Relación aire/combustible.

Hay dos incógnitas, la b y la fracción de vapor, pero están relacionadas entre sí y con la temperatura de escape.

> eq:=a*CH4+b*(c21*O2+c79*N2)=a*CO2+2*a*H2O+(b*c21-2*a)*O2+b*c79*N2;eqx:='xvap=ndotWvap/ndot2';ndot2:='(a+ndotWvap+b*c21-2*a+b*c79)';a:='ndotF';eqRaoult:='xvap*p[0]=p[v,T2]';pvT2_:=subs(dat,evalf(subs(dat,pv(T2)))):'p[v,T2]'=evalf(%);xvap_:=subs(dat,pvT2_/p0);eqx_:=subs(dat,xvap_=ndotWvap_/(ndotF_+ndotWvap_+b*c21-2*ndotF_+b*c79));b_:=solve(eqx_,b);A:=b/a;A_:=b_/ndotF_;

`+`(`*`(a, `*`(CH4)), `*`(b, `*`(`+`(`*`(c21, `*`(O2)), `*`(c79, `*`(N2)))))) = `+`(`*`(a, `*`(CO2)), `*`(2, `*`(a, `*`(H2O))), `*`(`+`(`*`(b, `*`(c21)), `-`(`*`(2, `*`(a)))), `*`(O2)), `*`(b, `*`(c79...
xvap = `/`(`*`(ndotWvap), `*`(ndot2))
`+`(`-`(a), ndotWvap, `*`(b, `*`(c21)), `*`(b, `*`(c79)))
ndotF
`*`(xvap, `*`(p[0])) = p[v, T2]
p[v, T2] = `+`(`*`(7316., `*`(Pa_)))
0.7316e-1
0.7316e-1 = `+`(`/`(`*`(0.1351e-2, `*`(mol_)), `*`(s_, `*`(`+`(`-`(`/`(`*`(0.621e-3, `*`(mol_)), `*`(s_))), `*`(1.00, `*`(b)))))))
`+`(`/`(`*`(0.1909e-1, `*`(mol_)), `*`(s_)))
`/`(`*`(b, `*`(R[u], `*`(T0))), `*`(p0, `*`(VdotF)))
9.681

i.e. se alimentaba con 9,6 molA/molF (el aire teórico para el metano es A=9,5), luego, sí había aire en exceso, pero poco.

e) Composición de los gases a la salida.

> x[base_seca]:='[x[CO2]=a/(a+(b*c21-2*a)+b*c79),x[O2]=(b*c21-2*a)/(a+(b*c21-2*a)+b*c79),x[N2]=b*c79/(a+(b*c21-2*a)+b*c79)]';x_base_seca_:=subs(b=b_,dat,%):'x[base_seca]'=evalf(%);

[x[CO2] = `/`(`*`(a), `*`(`+`(`-`(a), `*`(b, `*`(c21)), `*`(b, `*`(c79))))), x[O2] = `/`(`*`(`+`(`*`(b, `*`(c21)), `-`(`*`(2, `*`(a))))), `*`(`+`(`-`(a), `*`(b, `*`(c21)), `*`(b, `*`(c79))))), x[N2] =...
x[base_seca] = [x[CO2] = .1152, x[O2] = 0.3797e-2, x[N2] = .8808]

> x[base_húmeda]:='[x[CO2]=a/(a+ndotWvap+(b*c21-2*a)+b*c79),x[H2O]=ndotWvap/(a+ndotWvap+(b*c21-2*a)+b*c79),x[O2]=(b*c21-2*a)/(a+ndotWvap+(b*c21-2*a)+b*c79),x[N2]=b*c79/(a+ndotWvap+(b*c21-2*a)+b*c79)]';x_base_húmeda_:=subs(b=b_,dat,Wdat,%):'x[base_húmeda]'=evalf(%);

[x[CO2] = `/`(`*`(a), `*`(`+`(`-`(a), ndotWvap, `*`(b, `*`(c21)), `*`(b, `*`(c79))))), x[H2O] = `/`(`*`(ndotWvap), `*`(`+`(`-`(a), ndotWvap, `*`(b, `*`(c21)), `*`(b, `*`(c79))))), x[O2] = `/`(`*`(`+`(...
[x[CO2] = `/`(`*`(a), `*`(`+`(`-`(a), ndotWvap, `*`(b, `*`(c21)), `*`(b, `*`(c79))))), x[H2O] = `/`(`*`(ndotWvap), `*`(`+`(`-`(a), ndotWvap, `*`(b, `*`(c21)), `*`(b, `*`(c79))))), x[O2] = `/`(`*`(`+`(...
x[base_h?eda] = [x[CO2] = .1068, x[H2O] = 0.7315e-1, x[O2] = 0.3519e-2, x[N2] = .8164]

Comprobamos que xH2O,vap=7,4%, como ya habíamos calculado antes.

>