> restart:#"m16_p02"

> 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 hace pasar 10 4 kg/s de vapor por un lecho de carbón a presión ambiente, produciéndose CO y H2. Se pide:

a) Composición de salida a 100 °C y a 1000 °C.

b) Calor intercambiado en ambos casos.

c) Consumo de carbón en ambos caso

Datos:

> su1:="Aire":su2:="H2O":dat:=[Mf=0.012*kg_/mol_,mv=1e-4*kg_/s_,Ts1=373*K_,Ts2=1273*K_];

[Mf = `+`(`/`(`*`(0.12e-1, `*`(kg_)), `*`(mol_))), mv = `+`(`/`(`*`(0.1e-3, `*`(kg_)), `*`(s_))), Ts1 = `+`(`*`(373, `*`(K_))), Ts2 = `+`(`*`(1273, `*`(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:

Image

a) Composición de salida a 100 °C y a 1000 °C

Si sólo aparece CO y H2.

Incógnitas: a,b,xH2,xCO,xH2O.

Ecuaciones: eqNX,eqBC,eqBH,eqBO,eqEQ.

> eq:=subs(eqMIX(a*C+b*H2O=[6,7,8]));eq1:=subs(p=p0,dat,eqEQ(C+H2O=CO+H2));lnK=16.1-15800*K_/T;sol1_:=fsolve(subs(T=Ts1,dat,SI0,{eqNX,eqBC,eqBH,eqBO,eq1}),{a,b,x[Comp[6]],x[Comp[7]],x[Comp[8]]},{a=0..1,b=0..1});sol2_:=fsolve(subs(T=Ts2,dat,SI0,{eqNX,eqBC,eqBH,eqBO,eq1}),{a,b,x[Comp[6]],x[Comp[7]],x[Comp[8]]},{a=0..1,b=0..1});

`+`(`*`(a, `*`(C)), `*`(b, `*`(H2O))) = `+`(`*`(x[H2O], `*`(H2O)), `*`(x[CO], `*`(CO)), `*`(x[H2], `*`(H2)))
`/`(`*`(x[CO], `*`(x[H2])), `*`(x[H2O])) = `+`(`*`(0.9919e7, `*`(exp(`+`(`-`(`/`(`*`(0.1580e5, `*`(K_)), `*`(T))))))))
lnK = `+`(16.1, `-`(`/`(`*`(15800, `*`(K_)), `*`(T))))
{a = 0.1995e-5, b = 1.000, x[CO] = 0.1995e-5, x[H2] = 0.1995e-5, x[H2O] = 1.000}
{a = .4969, b = .5031, x[CO] = .4969, x[H2] = .4969, x[H2O] = 0.6105e-2}

i.e., a 100 ºC apenas reacciona, y a 1000 ºC casi reacciona del todo.

b) Calor intercambiado en ambos casos.

c) Consumo de carbón en ambos caso

Hay que ver el consumo de carbón primero para calcular el calor intercambiado.

> eq15_6_2;Qs:=mC*q[s]/a;mC_1:=mv*(a*Mf)/(b*Mv);mC_1_:=subs(Mv=M,Wdat,sol1_,dat,mC_1);'mC_1_'=mC_1_*3600*s_/hora_;PCI_1:=PCI(subs(sol1_,eq/a));eqBE_1:=q[s]/a=subs(cpComp_,sol1_,Ts=Ts1,dat,PCI_1-sum(delta[i]*x[Comp[i]]*c[p,Comp[i]],i=1..C_)*(Ts-T25)/a);Qs_1:=subs(dat,mC_1_*rhs(eqBE_1)/Mf);mC_2:=mv*(a*Mf)/(b*Mv);mC_2_:=subs(Mv=M,Wdat,sol2_,dat,mC_2);'mC_2_'=mC_2_*3600*s_/hora_;PCI_2:=PCI(subs(sol2_,eq/a));eqBE_2:=q[s]/a=subs(cpComp_,sol2_,Ts=Ts2,dat,PCI_2-sum(delta[i]*x[Comp[i]]*c[p,Comp[i]],i=1..C_)*(Ts-T25)/a);Qs_2:=subs(dat,mC_2_*rhs(eqBE_2)/Mf);

q[s] = `+`(`*`(a, `*`(PCI)), `-`(`*`(Sum(`*`(x[Com[i]], `*`(c[p, i])), i = 1 .. CP), `*`(`+`(T, `-`(T25))))))
`/`(`*`(mC, `*`(q[s])), `*`(a))
`/`(`*`(mv, `*`(a, `*`(Mf))), `*`(b, `*`(Mv)))
`+`(`/`(`*`(0.1330e-9, `*`(kg_)), `*`(s_)))
mC_1_ = `+`(`/`(`*`(0.4788e-6, `*`(kg_)), `*`(hora_)))
`+`(`/`(`*`(0.1105e6, `*`(J_)), `*`(mol_)))
`/`(`*`(q[s]), `*`(a)) = `+`(`-`(`/`(`*`(0.1767e10, `*`(J_)), `*`(mol_))))
`+`(`-`(`*`(19.58, `*`(W_))))
`/`(`*`(mv, `*`(a, `*`(Mf))), `*`(b, `*`(Mv)))
`+`(`/`(`*`(0.6586e-4, `*`(kg_)), `*`(s_)))
mC_2_ = `+`(`/`(`*`(.2371, `*`(kg_)), `*`(hora_)))
`+`(`-`(`/`(`*`(0.1313e6, `*`(J_)), `*`(mol_))))
`/`(`*`(q[s]), `*`(a)) = `+`(`-`(`/`(`*`(0.1982e6, `*`(J_)), `*`(mol_))))
`+`(`-`(`*`(1087., `*`(W_))))

i.e., a 100 ºC apenas intercambia calor porque no reacciona (sólo se consume 4,8e-7 kg/h de carbón), pero a 1000 ºC se necesita aportar 1,1 kW y se consume 0,24 kg/h de carbón.

En función de T sería:

> sol_:=solve({eqNX,eqBC,eqBH,eqBO},{b,x[Comp[6]],x[Comp[7]],x[Comp[8]]});eq1_:=subs(sol_,eq1);a_:=solve(%,a)[1]:mC:=mv*(a*Mf)/(b*Mv);mC_:=subs(Mv=M,Wdat,sol_,dat,mC);PCI_:=PCI(subs(sol_,eq/a));eqBE_:=q[s]/a=subs(cpComp_,sol_,dat,PCI_-sum(delta[i]*x[Comp[i]]*c[p,Comp[i]],i=1..C_)*(T-T25)/a);Qs_:=subs(dat,mC_*rhs(eqBE_)/Mf);plot(subs(sol_,a=a_,SI0,{x[H2],x[CO],x[H2O],-Qs_/1000,mC_*1e3}),T=300..1500);

{b = `+`(1, `-`(a)), x[CO] = a, x[H2] = a, x[H2O] = `+`(1, `-`(`*`(2, `*`(a))))}
`/`(`*`(`^`(a, 2)), `*`(`+`(1, `-`(`*`(2, `*`(a)))))) = `+`(`*`(0.9919e7, `*`(exp(`+`(`-`(`/`(`*`(0.1580e5, `*`(K_)), `*`(T))))))))
`/`(`*`(mv, `*`(a, `*`(Mf))), `*`(b, `*`(Mv)))
`+`(`/`(`*`(0.6667e-4, `*`(kg_, `*`(a))), `*`(s_, `*`(`+`(1, `-`(a))))))
`+`(`-`(`/`(`*`(0.1313e6, `*`(J_)), `*`(mol_))))
`/`(`*`(q[s]), `*`(a)) = `+`(`-`(`/`(`*`(0.1313e6, `*`(J_)), `*`(mol_))), `-`(`/`(`*`(`+`(`/`(`*`(47, `*`(`+`(1, `-`(`*`(2, `*`(a)))), `*`(kg_, `*`(`^`(m_, 2))))), `*`(`^`(s_, 2), `*`(mol_, `*`(K_))))...
`+`(`/`(`*`(0.5556e-2, `*`(a, `*`(`+`(`-`(`/`(`*`(0.1313e6, `*`(J_)), `*`(mol_))), `-`(`/`(`*`(`+`(`/`(`*`(47, `*`(`+`(1, `-`(`*`(2, `*`(a)))), `*`(kg_, `*`(`^`(m_, 2))))), `*`(`^`(s_, 2), `*`(mol_, `...
Plot_2d

ADICIONAL

Es muy interesante ver qué pasaría si se considera que también se forma CO2 en equilibrio.

> eq:=subs(eqMIX(a*C+b*H2O=[4,6,7,8]));eq1:=subs(p=p0,dat,eqEQ(C+H2O=CO+H2));lnK=16.1-15800*K_/T;eq2:=subs(p=p0,dat,eqEQ(C+CO2=2*CO));lnK=7.76-20700*K_/T;

`+`(`*`(a, `*`(C)), `*`(b, `*`(H2O))) = `+`(`*`(x[CO2], `*`(CO2)), `*`(x[H2O], `*`(H2O)), `*`(x[CO], `*`(CO)), `*`(x[H2], `*`(H2)))
`/`(`*`(x[CO], `*`(x[H2])), `*`(x[H2O])) = `+`(`*`(0.9919e7, `*`(exp(`+`(`-`(`/`(`*`(0.1580e5, `*`(K_)), `*`(T))))))))
lnK = `+`(16.1, `-`(`/`(`*`(15800, `*`(K_)), `*`(T))))
`/`(`*`(`^`(x[CO], 2)), `*`(x[CO2])) = `+`(`*`(0.1595e10, `*`(exp(`+`(`-`(`/`(`*`(0.2075e5, `*`(K_)), `*`(T))))))))
lnK = `+`(7.76, `-`(`/`(`*`(20700, `*`(K_)), `*`(T))))

> n:=11:arr:=array(1..n,1..7):for i from 1 to n do T:=evalf( 300+1100*(i/n))*K_;sol:=fsolve(subs(dat,SI0,{eqNX,eqBC,eqBH,eqBO,eq1,eq2}),{a,b,x[Comp[4]],x[Comp[6]],x[Comp[7]],x[Comp[8]]},{a=0..1,b=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(sol,eq/a));eqBE_:=qs/a=subs(cpComp_,sol,dat,PCI_-sum(delta[ii]*x[Comp[ii]]*c[p,Comp[ii]],ii=1..C_)*(T-T25)/a);mC_:=subs(Mv=M,Wdat,sol,dat,mC);Qs_:=subs(dat,rhs(eqBE_)*mC_/Mf);arr[i,1]:=T/K_;arr[i,2]:=subs(SI0,-Qs_)/1000;arr[i,3]:=subs(sol,x[Comp[4]]);arr[i,4]:=subs(sol,x[Comp[6]]);arr[i,5]:=subs(sol,x[Comp[7]]);arr[i,6]:=subs(sol,x[Comp[8]]);arr[i,7]:=subs(SI0,mC_*1e3);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],Temperature=0..1500,color=black);

Plot_2d

>