> restart:#"m15_p20"

> 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]

Una regla muy utilizada para evaluar el exceso de aire, e, usado en un horno, en función de la composición de los productos secos es:

a) Dedúzcase la expresión exacta y las aproximaciones que dan lugar a la regla anterior.

Datos:

> eqDat:=e=(xsO2-0.5*xsCO)/(0.266*xsN2-xsO2+0.5*xsCO);

e = `/`(`*`(`+`(xsO2, `-`(`*`(.5, `*`(xsCO))))), `*`(`+`(`*`(.266, `*`(xsN2)), `-`(xsO2), `*`(.5, `*`(xsCO)))))

a) Dedúzcase la expresión exacta y las aproximaciones que dan lugar a la regla anterior.

> aa*CuHvOwNo+aa*(1+e)*(u+v/4-w/2)*O2+aa*(1+e)*(c79/c21)*(u+v/4-w/2)*N2=xsCO2+fH2O+xsCO+xsO2+xsN2;eq1:=CO+(1/2)*O2=CO2;eq2:=evalf(subs(p=p0,Const,eqEQ(eq1)));eq2_:=subs(x[CO2]=xsCO2/(1+fH2O),x[CO]=xsCO/(1+fH2O),x[O2]=xsO2/(1+fH2O),lhs(eq2)=k);

`+`(`*`(aa, `*`(CuHvOwNo)), `*`(aa, `*`(`+`(1, e), `*`(`+`(u, `*`(`/`(1, 4), `*`(v)), `-`(`*`(`/`(1, 2), `*`(w)))), `*`(O2)))), `/`(`*`(aa, `*`(`+`(1, e), `*`(c79, `*`(`+`(u, `*`(`/`(1, 4), `*`(v)), `...
`+`(`*`(aa, `*`(CuHvOwNo)), `*`(aa, `*`(`+`(1, e), `*`(`+`(u, `*`(`/`(1, 4), `*`(v)), `-`(`*`(`/`(1, 2), `*`(w)))), `*`(O2)))), `/`(`*`(aa, `*`(`+`(1, e), `*`(c79, `*`(`+`(u, `*`(`/`(1, 4), `*`(v)), `...
`+`(CO, `*`(`/`(1, 2), `*`(O2))) = CO2
`/`(`*`(x[CO2]), `*`(`^`(x[O2], `/`(1, 2)), `*`(x[CO]))) = `+`(`*`(0.2983e-4, `*`(exp(`+`(`/`(`*`(0.3404e5, `*`(K_)), `*`(T)))))))
`/`(`*`(xsCO2), `*`(`^`(`/`(`*`(xsO2), `*`(`+`(1, fH2O))), `/`(1, 2)), `*`(xsCO))) = k

Del análisis de datos y ecuaciones se deduce que la medida de xsCO2 y xsCO es redundante, por lo que no usaremos la eqNX_.

> eqNX_:=xsCO2+xsCO+xsO2+xsN2=1;eqBMC:=aa*u=xsCO2+xsCO;eqBMH:=aa*v=2*fH2O;eqBMO:=aa*w+2*aa*(1+e)*(u+v/4-w/2)=2*xsCO2+fH2O+xsCO+2*xsO2;eqBMN:=aa*o+2*aa*(1+e)*(c79/c21)*(u+v/4-w/2)=2*xsN2;sol1:=solve({eqBMC,eqBMH,eqBMO,eqBMN},{aa,xsCO2,fH2O,e});

`+`(xsCO2, xsCO, xsO2, xsN2) = 1
`*`(aa, `*`(u)) = `+`(xsCO2, xsCO)
`*`(aa, `*`(v)) = `+`(`*`(2, `*`(fH2O)))
`+`(`*`(aa, `*`(w)), `*`(2, `*`(aa, `*`(`+`(1, e), `*`(`+`(u, `*`(`/`(1, 4), `*`(v)), `-`(`*`(`/`(1, 2), `*`(w))))))))) = `+`(`*`(2, `*`(xsCO2)), fH2O, xsCO, `*`(2, `*`(xsO2)))
`+`(`*`(aa, `*`(o)), `/`(`*`(2, `*`(aa, `*`(`+`(1, e), `*`(c79, `*`(`+`(u, `*`(`/`(1, 4), `*`(v)), `-`(`*`(`/`(1, 2), `*`(w))))))))), `*`(c21))) = `+`(`*`(2, `*`(xsN2)))
{aa = `+`(`/`(`*`(2, `*`(`+`(`*`(c79, `*`(xsCO)), `-`(`*`(2, `*`(c79, `*`(xsO2)))), `*`(2, `*`(xsN2, `*`(c21)))))), `*`(`+`(`*`(4, `*`(c79, `*`(u))), `-`(`*`(2, `*`(c79, `*`(w)))), `*`(2, `*`(o, `*`(c...
{aa = `+`(`/`(`*`(2, `*`(`+`(`*`(c79, `*`(xsCO)), `-`(`*`(2, `*`(c79, `*`(xsO2)))), `*`(2, `*`(xsN2, `*`(c21)))))), `*`(`+`(`*`(4, `*`(c79, `*`(u))), `-`(`*`(2, `*`(c79, `*`(w)))), `*`(2, `*`(o, `*`(c...
{aa = `+`(`/`(`*`(2, `*`(`+`(`*`(c79, `*`(xsCO)), `-`(`*`(2, `*`(c79, `*`(xsO2)))), `*`(2, `*`(xsN2, `*`(c21)))))), `*`(`+`(`*`(4, `*`(c79, `*`(u))), `-`(`*`(2, `*`(c79, `*`(w)))), `*`(2, `*`(o, `*`(c...

Comprobación para el C (u=1,v=0,w=0,o=0)

> eq3:=e=subs(subs(u=1,v=0,w=0,o=0,sol1),e);eqDat;

e = `+`(`-`(`/`(`*`(`+`(xsCO, `-`(`*`(2, `*`(xsO2)))), `*`(c79)), `*`(`+`(`*`(c79, `*`(xsCO)), `-`(`*`(2, `*`(c79, `*`(xsO2)))), `*`(2, `*`(xsN2, `*`(c21))))))))
e = `/`(`*`(`+`(xsO2, `-`(`*`(.5, `*`(xsCO))))), `*`(`+`(`*`(.266, `*`(xsN2)), `-`(xsO2), `*`(.5, `*`(xsCO)))))

que coinciden, ya que c21/c79=0,266.

Pero en general:

> eq3:=e=subs(subs(sol1),e);

e = `+`(`-`(`/`(`*`(`+`(xsCO, `-`(`*`(2, `*`(xsO2)))), `*`(`+`(`*`(4, `*`(c79, `*`(u))), `-`(`*`(2, `*`(c79, `*`(w)))), `*`(2, `*`(o, `*`(c21))), `*`(c79, `*`(v))))), `*`(`+`(`*`(c79, `*`(xsCO)), `-`(...

Si es hidrocarburo (w=0,o=0):

> eq3:=e=simplify(subs(subs(w=0,o=0,sol1),e));

e = `+`(`-`(`/`(`*`(`+`(xsCO, `-`(`*`(2, `*`(xsO2)))), `*`(c79)), `*`(`+`(`*`(c79, `*`(xsCO)), `-`(`*`(2, `*`(c79, `*`(xsO2)))), `*`(2, `*`(xsN2, `*`(c21))))))))

Es decir, basta con que sea w=0,o=0 o pequeños frente a u y v.

>