> |
read`../therm_chem.m`:with(therm_chem);with(therm_proc): |
Un cierto motor de combustión interna es alimentado con 9 litros/hora de n-octano. Sabiendo que el rendimiento energético del motor es del 30%, y que los gases salen a 600 K con una composición en base seca de 13% CO2, 3% CO y 1% H2, se pide:
a) Balances másicos, gasto de aire y de gases de escape.
b) Balance energético y potencia mecánica desarrollada.
c) Pérdidas de energía térmica y química por el escape.
Datos:
> |
su1:="Aire":su2:="H2O":fuel:=C8H18:dat:=[Vf=0.009/3600*m_^3/s_,xsCO2=0.13,xsCO=0.03,xsH2=0.01,Ts=600*K_,eta=0.30]:evalf(%,2); |
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:Fdat:=get_liq_data("C8H18"): |
a) Balances másicos, gasto de aire y de gases de escape.
Empecemos suponiendo combustión completa.
> |
eqBM:=mf+ma=mp;mf_:=subs(Fdat,dat,Vf*rho):mf=evalf(%,2);eq_:=expand(eq_fit(fuel+a*(c21*O2+c79*N2)=b*CO2+c*H2O+d*N2));eq15_2;eqA0:=Ateo(fuel);A0m_:=evalf(rhs(eqA0)*subs(dat,M)/rhs(Mf(fuel)));ma:=A0m*mf;ma_:=A0m_*mf_;mp_:=evalf(mf_+ma_,2);PCI_:=PCI(eq_);PCIm_:=PCI_/rhs(Mf(fuel));Qf:='mf*PCI';Qf_:=subs(dat,mf_*PCIm_); |
i.e. entran 0.0018 kg/s de combustible y, suponiendo combustión completa, 0.027 kg/s de aire, saliendo 0.029 kg/s de productos. La potencia térmica disponible (PCI) sería de 78 kW.
Pero la combustión no es completa y el aire no será el estequiométrico.
> |
eq1_:=eqMIX(a*fuel+b*(c21*O2+c79*N2)=[3,4,6,7,8]);xsN2:=1-xsCO2-xsCO-xsH2;xsN2_:=subs(dat,xsN2);i:='i':aux_:=subs(x[H2O]=0,sum(delta_[i]*x[Comp[i]],i=1..C_));eqDat1:=subs(dat,xsCO2=x[CO2]/aux_);eqDat2:=subs(dat,xsCO=x[CO]/aux_);eqDat3:=subs(dat,xsH2=x[H2]/aux_);eqDat4:=subs(dat,xsN2=x[N2]/aux_);sol1_:=subs(dat,solve({eqNX,eqBC,eqBH,eqBO,eqBN,eqDat2,eqDat3},{a,b,x[CO2],x[CO],x[H2O],x[N2],x[H2]})); |
Había un dato redundante. Hemos quitado xsCO2; si hubieramos quitado xsO2 podemos estimar la incertidumbre en los datos:
> |
sol2_:=subs(dat,solve({eqNX,eqBC,eqBH,eqBO,eqBN,eqDat1,eqDat3},{a,b,x[CO2],x[CO],x[H2O],x[N2],x[H2]}));Dif:=Dx/x;Dif_:=evalf(seq([Comp[i],2*(subs(sol2_,x[Comp[i]])-subs(sol1_,x[Comp[i]]))/(subs(sol2_,x[Comp[i]])+subs(sol1_,x[Comp[i]]))],i=[3,4,6,7,8])); |
la incertidumbre es máxima en la xCO (27%), y es debida a la medida o al redondeo a una cifra.
La riqueza real es:
> |
A=b/a;A_:=subs(sol1_,b/a);eq15_3;phi_:=rhs(eqA0)/A_:phi=evalf(%);ma:='A0m*mf/phi';ma_:=A0m_*mf_/phi_:'ma'=evalf(%,2);mp_:=evalf(mf_+ma_); |
de donde se deduce que la aproximación de combustión completa da un 10% de error.
b) Balance energético y potencia mecánica desarrollada.
> |
eqBE:=Qfuel=Pmec+Qloss;eqBE:=Qfuel=Pmec+Qexhaust+Qrefrig;eqeta:=eta=Pmec/(mf*PCIm);Pmec_:=subs(dat,Qf_*eta); |
i.e. la Pmec es de 23 kW y, conforme se define eta, se calcula con el PCI de la combustión completa.
c) Pérdidas de energía térmica y química por el escape.
La energía química perdida por el escape será mf(Qfcompleta-Qfreal):
> |
PCI_:=subs(sol1_,PCI(eq1_)/a);PCIm_:=PCI_/rhs(Mf(fuel));Qf__:=subs(dat,mf_*PCIm_);DQf_:=Qf_-Qf__; |
i.e. la potencia térmica disponible sería de 70 kW y no de 78 kW de la combustión completa, mientras que las pérdidas térmicas por el escape son las debidas a la temperatura, Qte=mp*cp*(600 K-298 K), y las de refrigeración el resto.
> |
Qte:=mp*c[p]*(Ts-T25);Qte_:=subs(mp=mp_,dat,Qte);Qte__:=subs(dat,(Ts-T25)*(mf_/rhs(Mf(fuel)))*subs(sol1_,cpComp_,sum(x[Comp[i]]*c[p,Comp[i]]*delta[i]/a,i=1..C_)));Qrefr:=Qf_real-Pmec-Qte;Qrefr_:=Qf__-Pmec_-Qte__; |
i.e. de los 78 kW disponibles a la entrada, 23 kW salen por el eje, 35 por las refrigeraciones, y los otros 20 kW por el escape (11 kW térmicos y 9 kW químicos).
También se podría haber calculado la temperatura de rocío de los gases de escape:
> |
eq_sat:=eq8_2;eq_sat_:=subs(p[v]=pv,x[v,sat]=x[H2O],p=p0,eq_sat);Trocio_:=solve(subs(sol1_,dat,eval(eq_sat_)),T);Trocio=TKC(Trocio_); |