> |
restart:#"Comb_rules".23-06-2005. |
> |
read`../therm_chem.m`:with(therm_chem);with(therm_proc): |
EXAMPLES OF AVAILABLE PROCEDURES
Data:
Constants: g=g0 to distiguish from g.i, usually T0=T25 and c[p,di]=34, c[p,H2O]=47, c[p,CO2]=54 J/(mol.K).
Comp[i] list of std components.
nu[i] is used in 0=Sum(nu[i]*Comp[i],i=1..C).
x[Comp[i]] for molar fractions.
delta[i] to signal output components.
Usually su1:="Aire", su2:="H2O", su3:=FUEL.
> |
su1:="Aire":su2:="H2O":fuel:=CH4:dat:=[e=0.3]: |
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: |
Given a fuel, e.g. CH4, you may find its position in the list, the elemental analysis, its molar mass, its theoretical air/fuel ratio, etc.
> |
i:='i':member(fuel,Comp,i):Comp[i],[u,v,w,x,y]=CompElem[i];eqM:=Mf(fuel);eq15_2;eqA0:=Ateo(fuel):evalf(%,3); |
Stoicuiometric equation, LHV (PCI), HHV (PCS), etc. Notice that hgs_data is available as h1_,g1_,s1_,h2_,...
> |
eqfit:=eq_fit(fuel+a*O2=b*CO2+c*H2O);i:='i':eq15_5;PCI_:=PCI(eqfit);PCS_:=PCS(eqfit); |
Mixture equation (assumes e=0.3 given, i.e. 30% excess air).
eqMIX converts a sketch of the mixture eqation (e.g. eqmix:=a*C+b*O2=[2,4,7] to the mixture eqation. Additionally, the extended balance equations eqNX,eqBC,eqBH,eqBO,eqBN,eqBS and the delta list of exhaust-compounds are globally created.
> |
eqe:=eq15_4;A_:=solve(subs(A[0]=rhs(eqA0),dat,eqe),A);eqMIX(a*fuel+a*A_*(c21*O2+c79*N2)=[2,3,4,6]);eqNX;eqBC;eqBH;eqBO;eqBN;eqBS;sol1:=subs(dat,solve({eqNX,eqBC,eqBH,eqBO,eqBN},{a,x[Comp[2]],x[Comp[3]],x[Comp[4]],x[Comp[5]]})); |
To compute Tad, or qs for a given Ts, you may use:
> |
eq15_7;subs(sol1,c[pa]=c[p,N2],cpComp_,dat,eq15_7_1);eq15_7_2;subs(sol1,cpComp_,dat,eq15_7_3); |
i.e the approximation of air-properties for the flue gas is not too bad (<10% bias).
Equilibrium composition.
> |
eq:=eqMIX(a*fuel+a*A_*(c21*O2+c79*N2)=[2,3,4,6,7,8]);sol2:=subs(dat,solve({eqNX,eqBC,eqBH,eqBO,eqBN},{a,x[Comp[2]],x[Comp[3]],x[Comp[4]],x[Comp[5]]}));eq1:=eqEQ(H2+CO2=H2O+CO);eq2:=subs(p=p0,eqEQ(H2+(1/2)*O2=H2O));PCI_:=PCI(eq)/a;eqTa:=subs(cpComp,dat,eq15_7_3); |
You MUST solve this non-linear system by iterations.
Start with x[H2]=0 and x[CO]=0, i.e. complete combustion.
> |
sol20:=subs(x[H2]=0,x[CO]=0,sol2);PCI0:=subs(x[H2]=0,x[CO]=0,sol20,PCI_);Tad0:=subs(x[H2]=0,x[CO]=0,sol20,rhs(eqTa));eq1__:=evalf(subs(sol20,T=Tad0,eq1));eq2__:=evalf(subs(sol20,T=Tad0,eq2));sol3:=solve({eq1__,eq2__},{x[H2],x[CO]});sol2_:=subs(sol3,sol2); |
i.e. complete combustion is a good start (and many times a good end).