> | restart:#"m15_p74" |
> | read`../therm_chem.m`:with(therm_chem);with(therm_proc): |
![]() |
En una cámara de combustión estacionaria se quema adiabáticamente 1 kg/s de fuel, asimilable a C10H22, con un 3% de exceso de aire. Sabiendo que el aire entra a 200 ºC y 100 kPa, se pide:
a) Composición de salida suponiendo combustión completa.
b) Temperatura de salida en el caso anterior.
c) Suponiendo que se forma algo de CO y de NO, determinar las concentraciones de equilibrio.
d) Suponiendo que solo se forma CO, determinar la nueva composición de equilibrio.
Datos:
> | su1:="Aire":su2:="H2O":fuel:=C10H22:dat:=[mf=1*kg_/s_,e=0.03,T1=(200+273.15)*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: |
a) Composición de salida suponiendo combustión completa.
> | eq15_5;eq1:=eq_fit(fuel+c1*O2=c2*CO2+c3*H2O);PCS_:=PCS(eq1);PCI_:=PCI(eq1);Mf_:=rhs(Mf(fuel));eq15_2;eqA0_:=Ateo(fuel);eqe:=eq15_4;A_:=solve(subs(A[0]=rhs(eqA0_),dat,eqe),A);eqMix:=eqMIX(subs(dat,a*fuel+a*A_*(c21*O2+c79*N2)=[2,3,4,6]));eqNX;eqBC;eqBH;eqBO;eqBN;sol1:=evalf(subs(dat,solve({eqNX,eqBC,eqBH,eqBO,eqBN},{a,x[Comp[2]],x[Comp[3]],x[Comp[4]],x[Comp[5]]}))); |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
i.e. sale un 0,6% de O2.
b) Temperatura de salida en el caso anterior.
> | eq15_7_4;PCI_Tef_Tea:=subs(dat,[`PCI=`,PCI_,`Tef=`,T25,`Tea=`,T1]);eqTa_:=subs(Tef_=T25,Tea_=T1,b=a*A_,sol1,cpComp,dat,eq15_7_5); |
![]() |
![]() |
![]() |
saldrían a unos 2480 K.
c)Suponiendo que se forma algo de CO y de NO, determinar las concentraciones de equilibrio.
Si suponemos que las emisiones de CO y NO van a ser mucho menores que las demás, podemos estimar su valor suponiendo que los resultados anteriores apenas varían (i.e. T=2470 K, xO2=0,006...):
> | eq2:=CO2=CO+(1/2)*O2;eqEQ2_:=eqEQ(eq2);xCO_:=evalf(subs(p=p0,T=Ta,eqTa_,sol1,dat,solve(%,x[CO])));eq3:=(1/2)*N2+(1/2)*O2=NO;eqEQ3_:=eqEQ(eq3);xNO_:=evalf(subs(p=p0,T=Ta,eqTa_,sol1,dat,solve(%,x[NO]))); |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
pero, como la xCO resulta grande (mucho mayor que la xO2 supuesta), habría que resolver el problema conjunto, lo cual se hace a continuación, despreciando el xNO por ser el más pequeño.
d) Suponiendo que solo se forma CO, determinar la nueva composición de equilibrio.
La mezcla, y las ecuaciones, son:
> | eqMix:=eqMIX(subs(dat,a*fuel+a*A_*(c21*O2+c79*N2)=[2,3,4,6,7]));eqNX;eqBC;eqBH;eqBO;eqBN;eqEQ2__:=subs(p=p0,eqEQ2_);a*PCI=(Sum(x[i]*h[f,i],i=1..C)-a*h[f,F]);eq15_7_4; |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Son 8 incógnitas (a, 5 xi, PCI y Tad) con 8 ecuaciones que resolveremos por iteraciones. Empezamos con xCO=0 calculando PCI y Tad, y con estos resolvemos las 6 ecuaciones (eqNX;eqBC;eqBH;eqBO;eqBN;eqEQ2 con 6 incógnitas (a,xCO2,xH2O,xO2,xN2,xCO). Con los nuevos (a,xCO2,xH2O,xO2,xN2,xCO) calculamos el nuevo PCI y la nueva Ta, y volvemos a iterar hasta que la xCO no cambie.
> | print(`Ta=`,rhs(eqTa_),`PCI=`,PCI_,`x[CO]=`,0);for iii from 1 to 7 do eqTa_;eqMix:=eqMIX(subs(dat,a*fuel+a*A_*(c21*O2+c79*N2)=[2,3,4,5,7]));eqNX;eqBC;eqBH;eqBO;eqBN;eqEQ2__:=evalf(subs(p=p0,T=Ta,eqTa_,eqEQ2_));sol1:=subs(dat,fsolve(subs(dat,{eqNX,eqBC,eqBH,eqBO,eqBN,eqEQ2__}),{a,x[Comp[2]],x[Comp[3]],x[Comp[4]],x[Comp[5]],x[Comp[7]]}));eq15_5;PCI_:=subs(sol1,PCI(eqMix)/a);eqTa_:=subs(Tef_=T25,Tea_=T1,b=a*A_,sol1,cpComp,dat,eq15_7_5);print(`Ta=`,rhs(eqTa_),`PCI=`,PCI_,`x[CO]=`,subs(sol1,x[CO]),sol1);od: |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
i.e. salen a unos 2360 K (en vez de a 2470 K), con un 1,6% de CO y un 1,4% de O2. El PCI es de 5,9 MJ/mol en vez de los 6,3 MJ/mol de la combustión completa.
Los flujos molares de salida son:
> | nf:=mf/Mf;nf_:=subs(dat,mf/Mf_);eqni:='n[i]=nf*x[i]/a';nN2:=subs(sol1,nf_*x[N2]/a);nH2O:=subs(sol1,nf_*x[H2O]/a);nCO2:=subs(sol1,nf_*x[CO2]/a);nCO:=subs(sol1,nf_*x[CO]/a);nO2:=subs(sol1,nf_*x[O2]/a); |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
> |