> | restart:#"m16_p03" |
> | read`../therm_eq.m`:read`../therm_chem.m`:with(therm_chem);with(therm_proc): |
![]() |
En una cámara cerrada y rígida hay inicialmente 1 mol de CO y 2 mol de O2 a 25 °C y 200 kPa., y se inicia la reacción. Se pide:
a) Calcular la presión y temperatura de combustión adiabática y la composición de equilibrio.
b) Sabiendo que al cabo de cierto tiempo la temperatura es de 1200 K, calcular la presión, la composición de equilibrio y el calor intercambiado.
Datos:
> | su1:="Aire":su2:="H2O":dat:=[Mf=0.028*kg_/mol_,nCO=1*mol_,nO2=2*mol_,T0=298*K_,p1=200e3*Pa_,Ts=1200*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) Calcular la presión y temperatura de combustión adiabática y la composición de equilibrio.
Incóg.: a,xCO2,xCO,xO2,T,p.
Ec.: eqNX,eqBC,eqBO,eqEQ,pV=nRT,eqBE, pero la no-linealidad de eqEQ complica mucho.
Resolvemos primero xCO2,xCO,xO2 en función de a.
> | eq:=subs(dat,subs(dat,eqMIX(a*CO+a*(nO2/nCO)*O2=[2,4,7])));sol:=solve(subs(dat,{eqNX,eqBC,eqBO}),{x[Comp[2]],x[Comp[4]],x[Comp[7]]});eq1:=eqEQ(CO+(1/2)*O2=CO2);lnK=-10.4+34000*K_/T;eqDat1:=p*V=(sum(delta[i]*x[Comp[i]],i=1..C_)/a)*nCO*R[u]*T;V_:=subs(Const,dat,(nCO+nO2)*R[u]*T0/p1);eq1_:=subs(sol,eq1);eqDat1_:=subs(sol,V=V_,Const,dat,eqDat1);eqBE:='0=PCI_-sum(delta[i]*x[Comp[i]]*c[p,Comp[i]],i=1..C_)*(T-T25)/a';eqBE_:=expand(subs(PCI_=PCI(eq/a),cpComp_,dat,sol,eqBE));T_:=solve(eqBE_,T);p_:=solve(subs(T=T_,eqDat1_),p);a_:=fsolve(subs(T=T_,p=p_,dat,eq1_),a=0..1);Tad:=subs(a=a_,T_);pad:=subs(a=a_,dat,p_);sol_:=subs(a=a_,sol); |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
i.e. Tad=2800 K y reacciona casi todo el CO (por eso el sistema de ecuaciones era tan difícil de resolver).
Pero eso era de prever si la temperatura alcanzada no es muy alta, y deberíamos de haber empezado suponiendo combustión completa:
> | eq:=subs(dat,subs(dat,eqMIX(a*CO+a*(nO2/nCO)*O2=[2,4])));;eqDat1:=p*V=(sum(delta[i]*x[Comp[i]],i=1..C_)/a)*nCO*R[u]*T;sol:=evalf(solve(subs(dat,{eqNX,eqBC,eqBO}),{a,x[Comp[2]],x[Comp[4]]}));eqBE:='0=PCI_-sum(delta[i]*x[Comp[i]]*c[p,Comp[i]],i=1..C_)*(T-T25)/a':PCI_:=subs(sol,PCI(eq/a));Tad:=subs(dat,solve(subs(cpComp_,dat,sol,eqBE),T));pad:=subs(Const,sol,T=Tad,V=V_,dat,solve(eqDat1,p)); |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Efectivamente, la aproximación de combustión completa es aceptable.
b) Sabiendo que al cabo de cierto tiempo la temperatura es de 1200 K, calcular la presión, la composición de equilibrio y el calor intercambiado.
Con más razón será ahora aceptable la aproximación de combustión completa.
> | pf:=subs(Const,sol,T=Ts,V=V_,dat,solve(eqDat1,p));eqBE:='q[s]/a=PCI_-sum(delta[i]*x[Comp[i]]*c[p,Comp[i]],i=1..C_)*(T-T25)/a';eqBE_:=subs(dat,subs(T=Ts,cpComp_,dat,sol,eqBE*a));#pad:=subs(Const,sol,T=Tad,V=V_,dat,solve(eqDat1,p)); |
![]() |
![]() |
![]() |
i.e., a 1200 K la presión es 690 kPa y ya han salido 75 kJ (pues había 1 mol de fuel).
> |