> restart:#"m09_p30"

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

En un proceso reformado de gas natural (supóngase metano), se alimenta un reactor a presión ambiente con 0,1 kg/s de ese gas y un flujo equimolar de vapor de agua, entrando todo a 100 ºC y saliendo los productos a 900 ºC. Se pide:
a) Determinar la composición a la salida suponiendo que a la salida sólo hay hydrógeno, vapor de agua y monóxido de carbono, en equilibrio. ¿Cómo se puede deducir si conviene operar a temperaturas bajas o altas?
b) Determinar el intercambio de energía con el exterior, en el caso anterior.
c) Comparar el poder calorífico del gas reformado con el del gas natural.
d) Determinar la composición a la salida suponiendo que están en equilibrio el metano, el agua, el hidrógeno, el monóxido de carbono y el dióxido de carbono.

Datos:

> su0:="Aire":su1:="CH4":su2:="H2O":su3:="H2":su4:="CO":dat:=[mGN=0.1*kg_/s_,b_a=1,T1=(100+273)*K_,p1=1e5*Pa_,T2=(900+273)*K_];

[mGN = `+`(`/`(`*`(.1, `*`(kg_)), `*`(s_))), b_a = 1, T1 = `+`(`*`(373, `*`(K_))), p1 = `+`(`*`(0.1e6, `*`(Pa_))), T2 = `+`(`*`(1173, `*`(K_)))]

Eqs. const.:

> dat:=op(subs(g=g0,[Const])),op(dat),SI2,SI1:Adat:=get_gas_data(su0):Fdat:=get_gas_data(su1):Wdat:=get_gas_data(su2),get_liq_data(su2):

a) Determinar la composición a la salida suponiendo que a la salida sólo hay hydrógeno, vapor de agua y monóxido de carbono, en equilibrio. ¿Cómo se puede deducir si conviene operar a temperaturas bajas o altas?

Ante todo, determinemos el caudal de agua líquida necesario para el proceso.

> nGN:=mGN/M;nGN_:=subs(Fdat,dat,nGN):'nGN'=evalf(%,2);nW:='b_a*nGN';nW_:=subs(dat,b_a*nGN_):'nW'=evalf(%,2);mW:='nW*M';mW_:=subs(Wdat,nW_*M):'mW'=evalf(%,2);VW:='mW*rho';VW_:=subs(Wdat,mW_/rho):'VW'=evalf(%,2);

`/`(`*`(mGN), `*`(M))
nGN = `+`(`/`(`*`(6.2, `*`(mol_)), `*`(s_)))
`*`(b_a, `*`(nGN))
nW = `+`(`/`(`*`(6.2, `*`(mol_)), `*`(s_)))
`*`(nW, `*`(M))
mW = `+`(`/`(`*`(.11, `*`(kg_)), `*`(s_)))
`*`(mW, `*`(rho))
VW = `+`(`/`(`*`(0.11e-3, `*`(`^`(m_, 3))), `*`(s_)))

La ecuación de mezcla (entrada y salida) nos dicen que es:

> eqMIX_:=eqMIX(a*(CH4+b_a*H2O)=[5,7,8]);eqBC;eqBH;eqBO;eqNX;sol1_:=solve(subs(dat,{eqBC,eqBH,eqBO,eqNX}),{a,x[H2O],x[CO],x[H2]}):evalf(%,2);eq1:=subs(sol1_,dat,eqMIX_/a);

`*`(a, `*`(`+`(CH4, `*`(b_a, `*`(H2O))))) = `+`(`*`(x[H2O], `*`(H2O)), `*`(x[CO], `*`(CO)), `*`(x[H2], `*`(H2)))
0 = `+`(x[CO], `-`(a))
0 = `+`(`-`(`*`(2, `*`(a, `*`(b_a)))), `*`(2, `*`(x[H2O])), `*`(2, `*`(x[H2])), `-`(`*`(4, `*`(a))))
0 = `+`(`-`(`*`(a, `*`(b_a))), x[H2O], x[CO])
1 = `+`(x[H2O], x[CO], x[H2])
{a = .25, x[CO] = .25, x[H2] = .75, x[H2O] = 0.}
`+`(CH4, H2O) = `+`(CO, `*`(3, `*`(H2)))

i.e. sale 75% de H2 y 25% de CO, y no puede haber agua a la salida (si sólo hay eso).

Se puede deducir si conviene operar a temperaturas bajas o altas simplemente viendo si la reacción es exotérmica o endotérmica (hallando el valor de la entalpía de reacción) y aplicando el principio de Le Chatelier. Como se sabe que el metano y el agua no reaccionan a temperatura ambiente, la reacción será endotérmica y convendrá operar a alta temperatura. ¿Cuánto de alta? La estimación más sencilla es aquélla que dé valor unidad a la constante de reacción (i.e. que haya de todo un poco):

> eqEQ_:=evalf(subs(p=p1,dat,eqEQ(CH4+H2O=CO+3*H2))):evalf(%,2);T_:=solve(1=rhs(%),T):'Tmin'=evalf(%,2);

`/`(`*`(x[CO], `*`(`^`(x[H2], 3))), `*`(x[H2O], `*`(x[CH4]))) = `+`(`*`(0.16e12, `*`(exp(`+`(`-`(`/`(`*`(0.25e5, `*`(K_)), `*`(T))))))))
Tmin = `+`(`*`(0.97e3, `*`(K_)))

b) Determinar el intercambio de energía con el exterior, en el caso anterior.

Balance energético en régimen estacionario (modelo de gases perfectos), sin trabajo y por unidad de cantidad de sustancia a la salida:

> eqBE:=0=Wdot+Qdot+ndot[entry]*Sum(x[i]*h[t,i],i=1..C)-ndot[exit]*Sum(x[i]*h[t,i],i=1..C);eqBE:=0=q+a*PCI+(a*c[p,CH4]+a*b_a*c[p,H2O])*(T[entrada]-T25)-Sum(x[i]*c[p,i]*(T[salida]-T[std]),i=1..C);PCI_eq1_:=PCI(eq1):'PCI_eq1'=evalf(%,3);eqBE_:=subs(sol1_,cpComp,dat,0=q+a*PCI_eq1_+(a*c[p,CH4]+a*b_a*c[p,H2O])*(T1-T25)-(x[H2O]*c[p,H2O]+x[H2]*c[p,H2]+x[CO]*c[p,CO])*(T2-T25)):evalf(%,2);Qdot_:=subs(sol1_,dat,nGN_*solve(eqBE_,q)/a):'Qdot'=evalf(%,2);

0 = `+`(Wdot, Qdot, `*`(ndot[entry], `*`(Sum(`*`(x[i], `*`(h[t, i])), i = 1 .. C))), `-`(`*`(ndot[exit], `*`(Sum(`*`(x[i], `*`(h[t, i])), i = 1 .. C)))))
0 = `+`(q, `*`(a, `*`(PCI)), `*`(`+`(`*`(a, `*`(c[p, CH4])), `*`(a, `*`(b_a, `*`(c[p, H2O])))), `*`(`+`(T[entrada], `-`(T25)))), `-`(Sum(`*`(x[i], `*`(c[p, i], `*`(`+`(T[salida], `-`(T[std]))))), i = ...
PCI_eq1 = `+`(`-`(`/`(`*`(0.206e6, `*`(J_)), `*`(mol_))))
0. = `+`(q, `-`(`/`(`*`(0.79e5, `*`(J_)), `*`(mol_))))
Qdot = `+`(`*`(0.20e7, `*`(W_)))

i.e., el reformado es un proceso endotémico que en condiciones estándar (pero con el agua en estado de gas ideal, i.e PCI) consumiriía 206 kJ/molCH4 (de las entalpías de formación, hr=-111+3*0+75+242=206=-PCI), y en las condiciones del enunciado 77 kJ/mol_salida (308 kJ/molCH4), lo que corresponde a 2,0 MW para el gasto dado.

c) Comparar el poder calorífico del gas reformado con el del gas natural.

> eqRef:=eq1;eqC1:=eq_fit(lhs(eq1)+a*O2=b*CO2+c*H2O);eqC2:=eq_fit(rhs(eq1)+a*O2=b*CO2+c*H2O);PCS_C1_:=PCS(eqC1):'PCS_C1'=evalf(%,3);PCI_C1_:=PCI(eqC1):'PCI_C1'=evalf(%,3);PCS_C2_:=PCS(eqC2):'PCS_C2'=evalf(%,3);PCI_C2_:=PCI(eqC2):'PCI_C2'=evalf(%,3);Delta[PCS]=evalf(PCS_C2_/PCS_C1_,3);Delta[PCI]=evalf(PCI_C2_/PCI_C1_,3);

`+`(CH4, H2O) = `+`(CO, `*`(3, `*`(H2)))
`+`(CH4, H2O, `*`(2, `*`(O2))) = `+`(CO2, `*`(3, `*`(H2O)))
`+`(CO, `*`(3, `*`(H2)), `*`(2, `*`(O2))) = `+`(CO2, `*`(3, `*`(H2O)))
PCS_C1 = `+`(`/`(`*`(0.890e6, `*`(J_)), `*`(mol_)))
PCI_C1 = `+`(`/`(`*`(0.802e6, `*`(J_)), `*`(mol_)))
PCS_C2 = `+`(`/`(`*`(0.114e7, `*`(J_)), `*`(mol_)))
PCI_C2 = `+`(`/`(`*`(0.101e7, `*`(J_)), `*`(mol_)))
Delta[PCS] = 1.28
Delta[PCI] = 1.26

i.e., por mol de gas natural, el gas producido tiene un 28% más de poder calorífico superior (o un 26% más de PCI).

Puede comprobarse que el PCI del reformado (por mol de CH4), 1010 kJ/mol, es el PCI del CH4, 802 kJ/mol más el abs(PCI) de la rectificación, 206 kJ/mol.
Esta reacción se está empezando a usar como recuperador químico del calor de gases de escape de turbinas de gas de ciclo combinado (antes de pasar a la caldera).

d) Determinar la composición a la salida suponiendo que están en equilibrio el metano, el agua, el hidrógeno, el monóxido de carbono y el dióxido de carbono.

Nótese que si entra CH4+H2O no hay suficiente oxígeno para oxidar todo el carbono, el cual ha de salir en parte sin reaccionar en forma de CH4.

> eqEQ1_:=evalf(subs(T=T2,dat,eqEQ(CO2+H2=CO+H2O))):evalf(%,2);eqEQ2_:=evalf(subs(T=T2,p=p1,dat,eqEQ(CH4+H2O=CO+3*H2))):evalf(%,2);eqMIX_:=eqMIX(a*(CH4+b_a*H2O)=[4,5,7,8,10]);sol1_:=fsolve(subs(dat,{eqBC,eqBH,eqBO,eqNX,eqEQ1_,eqEQ2_}),{a,x[H2O],x[CO],x[H2],x[CO2],x[CH4]},{x[H2O]=0..1,x[CO]=0..1,x[H2]=0..1,x[CO2]=0..1,x[CH4]=0..1}):evalf(%,2);

`/`(`*`(x[H2O], `*`(x[CO])), `*`(x[CO2], `*`(x[H2]))) = 2.4
`/`(`*`(x[CO], `*`(`^`(x[H2], 3))), `*`(x[H2O], `*`(x[CH4]))) = 0.11e3
`*`(a, `*`(`+`(CH4, `*`(b_a, `*`(H2O))))) = `+`(`*`(x[CO2], `*`(CO2)), `*`(x[H2O], `*`(H2O)), `*`(x[CO], `*`(CO)), `*`(x[H2], `*`(H2)), `*`(x[CH4], `*`(CH4)))
{a = .26, x[CH4] = 0.30e-1, x[CO] = .23, x[CO2] = 0.36e-2, x[H2] = .71, x[H2O] = 0.26e-1}

El intercambio de energía con el exterior en este caso sería:

> eq1:=subs(sol1_,dat,eqMIX_/a):'eq1'=evalf(%,2);PCI_eq1_:=PCI(eq1):'PCI_eq1'=evalf(%,3);eqBE_:=subs(sol1_,cpComp,dat,0=q+a*PCI_eq1_+(a*c[p,CH4]+b_a*c[p,H2O])*(T1-T25)-(x[H2O]*c[p,H2O]+x[H2]*c[p,H2]+x[CO]*c[p,CO])*(T2-T25)):evalf(%,2);Qdot_:=subs(sol1_,dat,nGN_*solve(eqBE_,q)/a):'Qdot'=evalf(%,2);

eq1 = (`+`(CH4, H2O) = `+`(`*`(0.14e-1, `*`(CO2)), `*`(0.99e-1, `*`(H2O)), `*`(.87, `*`(CO)), `*`(2.7, `*`(H2)), `*`(.11, `*`(CH4))))
PCI_eq1 = `+`(`-`(`/`(`*`(0.182e6, `*`(J_)), `*`(mol_))))
0. = `+`(q, `-`(`/`(`*`(0.73e5, `*`(J_)), `*`(mol_))))
Qdot = `+`(`*`(0.17e7, `*`(W_)))

i.e., sale 0,71 de H2 en lugar de 0,75, y se necesitan 1,7 MW en vez de 2,0 MW, pero se ve que en realidad el gas reformado no ha ganado tanto poder calorífico como antes:

> eqRef:=evalf(eq1,2);eqC1:=eq_fit(lhs(eq1)+a*O2=b*CO2+c*H2O);eqC2:=eq_fit(rhs(eq1)+a*O2=b*CO2+c*H2O):'eqC2'=evalf(%,2);PCS_C1_:=PCS(eqC1):'PCS_C1'=evalf(%,3);PCI_C1_:=PCI(eqC1):'PCI_C1'=evalf(%,3);PCS_C2_:=PCS(eqC2):'PCS_C2'=evalf(%,3);PCI_C2_:=PCI(eqC2):'PCI_C2'=evalf(%,3);Delta[PCS]=evalf(PCS_C2_/PCS_C1_,3);Delta[PCI]=evalf(PCI_C2_/PCI_C1_,3);eqMIX_:=eqMIX(a*(CH4+b_a*H2O)=[4,5,7,8,10]):#Last one to recompute coeffs.

`+`(CH4, H2O) = `+`(`*`(0.14e-1, `*`(CO2)), `*`(0.99e-1, `*`(H2O)), `*`(.87, `*`(CO)), `*`(2.7, `*`(H2)), `*`(.11, `*`(CH4)))
`+`(CH4, H2O, `*`(2, `*`(O2))) = `+`(CO2, `*`(3, `*`(H2O)))
eqC2 = (`+`(`*`(0.14e-1, `*`(CO2)), `*`(0.99e-1, `*`(H2O)), `*`(.87, `*`(CO)), `*`(2.7, `*`(H2)), `*`(.11, `*`(CH4)), `*`(2.0, `*`(O2))) = `+`(`*`(1.0, `*`(CO2)), `*`(3.0, `*`(H2O))))
PCS_C1 = `+`(`/`(`*`(0.890e6, `*`(J_)), `*`(mol_)))
PCI_C1 = `+`(`/`(`*`(0.802e6, `*`(J_)), `*`(mol_)))
PCS_C2 = `+`(`/`(`*`(0.111e7, `*`(J_)), `*`(mol_)))
PCI_C2 = `+`(`/`(`*`(0.984e6, `*`(J_)), `*`(mol_)))
Delta[PCS] = 1.25
Delta[PCI] = 1.23

A continuación puede verse lo importante que es operar a alta temperatura (a mucho más de los 750 K típicos de la salida de las turbinas de gas convencionales).

> n:=19:arr:=array(1..n,1..6):for i from 1 to n do T[i]:=(400+900*(i/n))*K_;eqEQ1_:=evalf(subs(T=T[i],dat,eqEQ(CO2+H2=CO+H2O))):eqEQ2_:=evalf(subs(T=T[i],p=p1,dat,eqEQ(CH4+H2O=CO+3*H2))):sol1_:=fsolve(subs(dat,{eqBC,eqBH,eqBO,eqNX,eqEQ1_,eqEQ2_}),{a,x[H2O],x[CO],x[H2],x[CO2],x[CH4]},{x[H2O]=0..1,x[CO]=0..1,x[H2]=0..1,x[CO2]=0..1,x[CH4]=0..1});arr[i,1]:=T[i]/K_;arr[i,2]:=subs(sol1_,x[Comp[4]]);arr[i,3]:=subs(sol1_,x[Comp[5]]);arr[i,4]:=subs(sol1_,x[Comp[7]]);arr[i,5]:=subs(sol1_,x[Comp[8]]);arr[i,6]:=subs(sol1_,x[Comp[10]]);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):plot([pl2,pl3,pl4,pl5,pl6],Temperature_K=0..1500,x=0..1,color=black);

Plot_2d

>