> restart:#"m15_p47"

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

Para un estudio de contaminantes de un motor de gasolina, se desea calcular la composición de salida cuando se quema una mezcla aire / combustible (supóngase n-octano) de riqueza 1,2. En particular, para una temperatura de salida de 700 ºC, se pide:
a) Relación aire/combustible estequiométrica, en bases másica y molar.
b) Fracciones molares a la salida suponiendo que aparece CO.  
c) Fracciones molares a la salida suponiendo que aparece también H2.  
d) Temperatura de rocío a la salida.

Datos:

> su1:="Aire":su2:="H2O":fuel:=C8H18:dat:=[phi=1.2,Ts=(700+273)*K_];

[phi = 1.2, Ts = `+`(`*`(973, `*`(K_)))]

Eqs. const.:

> Adat:=get_gas_data(su1):Wdat:=get_gas_data(su2),get_liq_data(su2):get_pv_data(su2):dat:=op(dat),op(subs(g=g0,[Const])),Adat,SI2,SI1:Fdat:=get_liq_data("C8H18"):Mf(fuel);

M = `+`(`/`(`*`(.114, `*`(kg_)), `*`(mol_)))

a) Relación aire/combustible estequiométrica, en bases másica y molar.

> eqA0:=Ateo(fuel);A0m_:=rhs(eqA0)*subs(Adat,M)/rhs(Mf(fuel));

A[0] = 59.52
15.14

b) Fracciones molares a la salida suponiendo que aparece CO.  

> eq1_:=eqMIX(a*fuel+b*(c21*O2+c79*N2)=[3,4,6,7]);eqDat:=b/a=A[0]/phi;eqDat_:=b/a=subs(dat,rhs(eqA0)/phi);sol1_:=subs(dat,solve({eqNX,eqBC,eqBH,eqBO,eqBN,eqDat_},{a,b,x[CO2],x[CO],x[H2O],x[N2]}));

`+`(`*`(a, `*`(C8H18)), `*`(b, `*`(`+`(`*`(c21, `*`(O2)), `*`(c79, `*`(N2)))))) = `+`(`*`(x[N2], `*`(N2)), `*`(x[CO2], `*`(CO2)), `*`(x[H2O], `*`(H2O)), `*`(x[CO], `*`(CO)))
`/`(`*`(b), `*`(a)) = `/`(`*`(A[0]), `*`(phi))
`/`(`*`(b), `*`(a)) = 49.60
{a = 0.1780e-1, b = .8829, x[CO] = 0.7405e-1, x[CO2] = 0.6835e-1, x[H2O] = .1602, x[N2] = .6974}

c) Fracciones molares a la salida suponiendo que aparece también H2.

> eq:=eq_fit(CO+H2O=CO2+H2);eqEQ_:=evalf(subs(T=Ts,dat,eqEQ(eq))):eqEQ=evalf(%,2);eq1_:=eqMIX(a*fuel+b*(c21*O2+c79*N2)=[3,4,6,7,8]);sol1_:=subs(dat,fsolve(subs(dat,{eqNX,eqBC,eqBH,eqBO,eqBN,eqDat_,eqEQ_}),{a,b,x[CO2],x[CO],x[H2O],x[N2],x[H2]},{x[H2]=0..1,x[CO]=0..1}));

`+`(CO, H2O) = `+`(CO2, H2)
eqEQ = (`/`(`*`(x[CO2], `*`(x[H2])), `*`(x[H2O], `*`(x[CO]))) = 1.0)
`+`(`*`(a, `*`(C8H18)), `*`(b, `*`(`+`(`*`(c21, `*`(O2)), `*`(c79, `*`(N2)))))) = `+`(`*`(x[N2], `*`(N2)), `*`(x[CO2], `*`(CO2)), `*`(x[H2O], `*`(H2O)), `*`(x[CO], `*`(CO)), `*`(x[H2], `*`(H2)))
{a = 0.1780e-1, b = .8828, x[CO] = 0.3480e-1, x[CO2] = .1076, x[H2] = 0.3939e-1, x[H2O] = .1208, x[N2] = .6974}

d) Temperatura de rocío en la salida.

> eq_sat:=eq8_2;eq_sat_:=subs(p[v]=pv,x[v,sat]=x[H2O],p=p0,eq_sat);Trocio_:=solve(subs(sol1_,dat,eval(eq_sat_)),T);Trocio=TKC(Trocio_);

x[v, sat] = `/`(`*`(p[v](T)), `*`(p))
x[H2O] = `/`(`*`(pv(T)), `*`(p0))
`+`(`*`(322.7, `*`(K_)))
Trocio = `+`(`*`(49.5, `*`(?C)))

>