> restart:#"m16_p07"

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

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

En un reactor a presión constante se quema metano con oxígeno puro. Se pide:

a) Suponiendo combustión estequiométrica y completa, determinar la composición a la salida, el poder calorífico y la temperatura de salida

b) Sabiendo que en realidad se quema a razón de 2 moles de metano por cada 3 moles de oxígeno, y suponiendo que todo el hidrógeno se oxida completamente (y el carbono parcialmente), determinar la nueva estequiometría, la composición a la salida, el poder calorífico y la temperatura de salida

c) Sabiendo que en los productos aparecen CO2, CO, H2O y H2, y suponiendo que están en equilibrio, determinar el número de reacciones independientes necesarias para modelizar el proceso real, e indicarlas

d) Determinar las constantes de equilibrio de las reacciones anteriores en función de la temperatura, aproximándolas por lnK=A-B/T.

e) Plantear el sistema de ecuaciones que permiten determinar la composición, el poder calorífico y la temperatura de equilibrio adiabática en el proceso último, indicando las incógnitas y los datos.

Datos:

> su1:="Aire":su2:="H2O":dat:=[Mf_=0.016*kg_/mol_,nf=2*mol_,nO=3*mol_,nCO2_1=0.1*mol_,nCO2_2=0.9*mol_];

[Mf_ = `+`(`/`(`*`(0.16e-1, `*`(kg_)), `*`(mol_))), nf = `+`(`*`(2, `*`(mol_))), nO = `+`(`*`(3, `*`(mol_))), nCO2_1 = `+`(`*`(.1, `*`(mol_))), nCO2_2 = `+`(`*`(.9, `*`(mol_)))]

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:

a) Suponiendo combustión estequiométrica y completa, determinar la composición a la salida, el poder calorífico y la temperatura de salida

> eqM:=eqMIX(a*CH4+b*O2=[4,5]);sol1_:=evalf(solve(subs(dat,{eqNX,eqBC,eqBH,eqBO}),{a,b,x[Comp[4]],x[Comp[5]]}));PCI_:=PCI(subs(sol1_,eqM/a));eqBE_:=0=subs(cpComp_,sol1_,dat,PCI_-sum(delta[i]*x[Comp[i]]*c[p,Comp[i]],i=1..C_)*(Ts-T25)/a);Ts_:=subs(dat,solve(eqBE_,Ts));eqM_:=subs(sol1_,eqM/a);

`+`(`*`(CH4, `*`(a)), `*`(O2, `*`(b))) = `+`(`*`(CO2, `*`(x[CO2])), `*`(H2O, `*`(x[H2O])))
{a = .3333333333, b = .6666666667, x[CO2] = .3333333333, x[H2O] = .6666666667}
`+`(`/`(`*`(802310.00, `*`(J_)), `*`(mol_)))
0 = `+`(`/`(`*`(802310.00, `*`(J_)), `*`(mol_)), `-`(`/`(`*`(148.0000000, `*`(kg_, `*`(`^`(m_, 2), `*`(`+`(Ts, `-`(`*`(298.15, `*`(K_)))))))), `*`(`^`(s_, 2), `*`(mol_, `*`(K_))))))
`+`(`*`(5719.163512, `*`(K_)))
`+`(`*`(.9999999999, `*`(CH4)), `*`(2.000000000, `*`(O2))) = `+`(`*`(.9999999999, `*`(CO2)), `*`(2.000000000, `*`(H2O)))

Pero no será válido porque se descompone a tan alta temperatura.

b) Sabiendo que en realidad se quema a razón de 2 moles de metano por cada 3 moles de oxígeno, y suponiendo que todo el hidrógeno se oxida completamente (y el carbono parcialmente), determinar la nueva estequiometría, la composición a la salida, el poder calorífico y la temperatura de salida

> eqDat:=b/a=subs(dat,nO/nf);eqM:=eqMIX(a*CH4+b*O2=[4,6,7]);sol1_:=evalf(solve(subs(dat,{eqNX,eqBC,eqBH,eqBO,eqDat}),{a,b,x[Comp[4]],x[Comp[6]],x[Comp[7]]}));PCI_:=PCI(subs(sol1_,eqM/a));eqBE_:=0=subs(cpComp_,sol1_,dat,PCI_-sum(delta[i]*x[Comp[i]]*c[p,Comp[i]],i=1..C_)*(Ts-T25)/a);Ts_:=subs(dat,solve(eqBE_,Ts));eqM_:=subs(sol1_,eqM/a);

`/`(`*`(b), `*`(a)) = `/`(3, 2)
`+`(`*`(CH4, `*`(a)), `*`(O2, `*`(b))) = `+`(`*`(CO, `*`(x[CO])), `*`(CO2, `*`(x[CO2])), `*`(H2O, `*`(x[H2O])))
{a = .3333333333, b = .5000000000, x[CO] = .3333333333, x[CO2] = 0., x[H2O] = .6666666667}
`+`(`/`(`*`(519320.00, `*`(J_)), `*`(mol_)))
0 = `+`(`/`(`*`(519320.00, `*`(J_)), `*`(mol_)), `-`(`/`(`*`(128.0000000, `*`(kg_, `*`(`^`(m_, 2), `*`(`+`(Ts, `-`(`*`(298.15, `*`(K_)))))))), `*`(`^`(s_, 2), `*`(mol_, `*`(K_))))))
`+`(`*`(4355.3375, `*`(K_)))
`+`(`*`(.9999999999, `*`(CH4)), `*`(1.500000000, `*`(O2))) = `+`(`*`(.9999999999, `*`(CO)), `*`(2.000000000, `*`(H2O)))

Pero no es válido porque se descompone a tan altas T.

c) Sabiendo que en los productos aparecen CO2, CO, H2O y H2, y suponiendo que están en equilibrio, determinar el número de reacciones independientes necesarias para modelizar el proceso real, e indicarlas.

Si C={CH4,O2,CO2,CO,H2O,H2}, entonces R=C-E=6-3=3. Valen cualesquiera terna independiente, e.g. CO+H2O=CO2+H2, CO+(1/2)O2=CO2, y CH4+O2=CO2+2H2.

d) Determinar las constantes de equilibrio de las reacciones anteriores en función de la temperatura, aproximándolas por lnK=A-B/T.

> eq9_20;eq9_25;eq1:=subs(p=p0,eqEQ(CO+H2O=CO2+H2));eq2:=subs(p=p0,eqEQ(CO+(1/2)*O2=CO2));;eq3:=subs(p=p0,eqEQ(CH4+O2=CO2+2*H2));ln(lhs(eq1))=evalf(expand(ln(rhs(eq1)))),ln(lhs(eq2))=evalf(expand(ln(rhs(eq2)))),ln(lhs(eq3))=evalf(expand(ln(rhs(eq3))));

Product(`^`(x[i], nu[i]), i = 1 .. C) = `*`(`^`(`/`(`*`(p0), `*`(p)), Sum(nu[i], i = 1 .. C)), `*`(K(T)))
lnK = `/`(`*`(`+`(`-`(grR), `*`(hrR, `*`(`+`(1, `-`(`/`(`*`(T25), `*`(T)))))))), `*`(R[u], `*`(T25)))
`/`(`*`(x[CO2], `*`(x[H2])), `*`(x[H2O], `*`(x[CO]))) = `+`(`*`(0.6378474543e-2, `*`(exp(`+`(`/`(`*`(4951.888382, `*`(K_)), `*`(T)))))))
`/`(`*`(x[CO2]), `*`(`^`(x[O2], `/`(1, 2)), `*`(x[CO]))) = `+`(`*`(0.3067553428e-4, `*`(exp(`+`(`/`(`*`(34037.76763, `*`(K_)), `*`(T)))))))
`/`(`*`(x[CO2], `*`(`^`(x[H2], 2))), `*`(x[O2], `*`(x[CH4]))) = `+`(`*`(23229.40263, `*`(exp(`+`(`/`(`*`(38329.32404, `*`(K_)), `*`(T)))))))
ln(`/`(`*`(x[CO2], `*`(x[H2])), `*`(x[H2O], `*`(x[CO])))) = `+`(`-`(5.054826310), `/`(`*`(4951.888382, `*`(K_)), `*`(T))), ln(`/`(`*`(x[CO2]), `*`(`^`(x[O2], `/`(1, 2)), `*`(x[CO])))) = `+`(`-`(10.392...

> eqM:=eqMIX(a*CH4+a*(nO/nf)*O2=[2,4,6,7,8]);

`+`(`*`(a, `*`(CH4)), `/`(`*`(a, `*`(nO, `*`(O2))), `*`(nf))) = `+`(`*`(CO, `*`(x[CO])), `*`(CO2, `*`(x[CO2])), `*`(H2, `*`(x[H2])), `*`(H2O, `*`(x[H2O])), `*`(O2, `*`(x[O2])))

e) Plantear el sistema de ecuaciones que permiten determinar la composición, el poder calorífico y la temperatura de equilibrio adiabática en el proceso último, indicando las incógnitas y los datos.

Empiezo suponiendo xCH4=0 y quitando la última ecuación (luego lo comprobaré).

La Tad será la que haga nulo el calor que sale (Qs=0). Representando los resultados en función de la T:

> n:=7:arr:=array(1..n,1..7):for i from 1 to n do T:=evalf(2000+2000*(i/n))*K_;sol1_:=fsolve(subs(dat,{eqNX,eqBC,eqBH,eqBO,eq1,eq2}),{a,x[Comp[2]],x[Comp[4]],x[Comp[6]],x[Comp[7]],x[Comp[8]]},{a=0..1,x[Comp[2]]=0..1,x[Comp[4]]=0..1,x[Comp[6]]=0..1,x[Comp[7]]=0..1,x[Comp[8]]=0..1});PCI_:=PCI(subs(sol1_,eqM/a));eqBE_:=q[s]/a=subs(cpComp_,sol1_,dat,PCI_-sum(delta[ii]*x[Comp[ii]]*c[p,Comp[ii]],ii=1..C_)*(T-T25)/a);Qs_:=subs(sol1_,rhs(eqBE_)/a);arr[i,1]:=T/K_;arr[i,2]:=subs(SI0,Qs_)/1e6;arr[i,3]:=subs(sol1_,x[Comp[2]]);arr[i,4]:=subs(sol1_,x[Comp[4]]);arr[i,5]:=subs(sol1_,x[Comp[6]]);arr[i,6]:=subs(sol1_,x[Comp[7]]);arr[i,7]:=subs(sol1_,x[Comp[8]]);od: pl2:=pla(arr,2,1):pl3:=pla(arr,3,1):pl4:=pla(arr,4,1):pl5:=pla(arr,5,1):pl6:=pla(arr,6,1):pl7:=pla(arr,7,1):plot([pl2,pl3,pl4,pl5,pl6,pl7],T_K=0..4000,color=black);

Plot_2d

i.e. la Tad es aprox. 3630 K. Comprobemos:

> T:=3630*K_;sol1_:=fsolve(subs(dat,{eqNX,eqBC,eqBH,eqBO,eq1,eq2}),{a,x[Comp[2]],x[Comp[4]],x[Comp[6]],x[Comp[7]],x[Comp[8]]},{a=0..1,x[Comp[2]]=0..1,x[Comp[4]]=0..1,x[Comp[6]]=0..1,x[Comp[7]]=0..1,x[Comp[8]]=0..1});PCI_:=PCI(subs(sol1_,eqM/a));eqBE_:=q[s]/a=subs(cpComp_,sol1_,dat,PCI_-sum(delta[ii]*x[Comp[ii]]*c[p,Comp[ii]],ii=1..C_)*(T-T25)/a);Qs_:=subs(sol1_,rhs(eqBE_)/a);xCH4:=subs(sol1_,solve(eq3,x[CH4]));

`+`(`*`(3630, `*`(K_)))
{a = .3141568491, x[CO] = .2890389044, x[CO2] = 0.2511794464e-1, x[H2] = .1401768502, x[H2O] = .4881368479, x[O2] = 0.5752945279e-1}
`+`(`/`(`*`(434045.9123, `*`(J_)), `*`(mol_)))
`/`(`*`(q[s]), `*`(a)) = `+`(`/`(`*`(823.2445, `*`(J_)), `*`(mol_)))
`+`(`/`(`*`(2620.488786, `*`(J_)), `*`(mol_)))
0.9586819320e-11

Efectivamente, para 3630 K Qs=0 y xCH4=0.

>