> restart:#"m05_p19"

Se quiere obtener trabajo a partir del aire contenido en un depósito de 1000 m3, inicialmente a 1 MPa. Se pide:

a) Trabajo máximo obtenible.

b) Variación de entropía del aire y de la atmósfera en el caso anterior.

c) Trabajo máximo obtenible con una turbina adiabática que se adaptase al salto de presión adecuado.

d) Variación de entropía del aire y de la atmósfera en el caso anterior.

e) Trabajo máximo obtenible con una turbina que trabaja entre 400 kPa y 100 kPa (es decir, habrá que poner una válvula a la entrada para que la presión del depósito caiga a 400 kPa).

f) Variación de entropía del aire y de la atmósfera en el caso anterior.

Datos:

> read"../therm_eq.m":read"../therm_proc.m":with(therm_proc):

> su:="Aire":dat:=[V=1000*m_^3,p1=1e6*Pa_,p2=400e3*Pa_];

`:=`(dat, [V = `+`(`*`(1000, `*`(`^`(m_, 3)))), p1 = `+`(`*`(0.1e7, `*`(Pa_))), p2 = `+`(`*`(0.400e6, `*`(Pa_)))])

Esquema:

> `:=`(Sistemas, [gas, amb])

> `:=`(Estados, [1, 2])

Eqs. const.:

> eqET:=subs(eq1_11,eq1_12);eqEE:=eq1_16;gdat:=get_gas_data(su):dat:=[op(dat),Const,gdat,SI2,SI1]:

`:=`(eqET, `/`(`*`(m), `*`(V)) = `/`(`*`(p), `*`(R, `*`(T))))

`:=`(eqEE, DU = `*`(m, `*`(c[v], `*`(DT))))

a) Trabajo máximo obtenible.

> T1:=T0:m1_:=subs(p=p1,T=T1,dat,dat,solve(eqET,m));V1:=V;V0:=V*(p1/p0)*(T0/T1);DPhi01:='DE01+p0*DV01-T0*DS01';DE01:=m*c[v]*(T1-T0);DV01:=V1-V0;DS01:=m*c[p]*ln(T1/T0)-m*R*ln(p1/p0);DPhi01_:=subs(dat,dat,evalf(subs(m=m1_,dat,DPhi01))):'DPhi01'=evalf(%/(1e6*J_/MJ_));

`:=`(m1_, `+`(`*`(12111.43185, `*`(kg_))))

`:=`(V1, V)

`:=`(V0, `/`(`*`(V, `*`(p1)), `*`(p0)))

`:=`(DPhi01, `+`(DE01, `*`(p0, `*`(DV01)), `-`(`*`(T0, `*`(DS01)))))

`:=`(DE01, 0)

`:=`(DV01, `+`(V, `-`(`/`(`*`(V, `*`(p1)), `*`(p0)))))

`:=`(DS01, `+`(`-`(`*`(m, `*`(R, `*`(ln(`/`(`*`(p1), `*`(p0)))))))))

DPhi01 = `+`(`*`(1402.585092, `*`(MJ_)))

b) Variación de entropía del aire y de la atmósfera en el caso anterior.

> DSaire:=m*c[p]*ln(T0/T1)-m*R*ln(p0/p1);DSatm:=Qatm/T0;Qatm:=-Q10;Q10:=DE10-W10;DE10:=-DE01;W10:=-'DPhi01'-Int(p0,v=V1..V0);DSatm:=simplify(value(DSatm));

`:=`(DSaire, `+`(`-`(`*`(m, `*`(R, `*`(ln(`/`(`*`(p0), `*`(p1)))))))))

`:=`(DSatm, `/`(`*`(Qatm), `*`(T0)))

`:=`(Qatm, `+`(`-`(Q10)))

`:=`(Q10, `+`(DE10, `-`(W10)))

`:=`(DE10, 0)

`:=`(W10, `+`(`-`(DPhi01), `-`(Int(p0, v = V .. `/`(`*`(V, `*`(p1)), `*`(p0))))))

`:=`(DSatm, `+`(`-`(`*`(m, `*`(R, `*`(ln(`/`(`*`(p1), `*`(p0)))))))))

> W10_:=evalf(subs(m=m1_,dat,SI1,value(W10))):'W10'=evalf(%/(1e6*J_/MJ_));DSaire_:=evalf(subs(m=m1_,dat,DSaire)):'DSaire'=evalf(%/(1e6*J_/MJ_));DSatm_:=evalf(subs(m=m1_,dat,DSatm)):'DSatm'=evalf(%/(1e6*J_/MJ_));

W10 = `+`(`-`(`*`(2302.585092, `*`(MJ_))))

DSaire = `+`(`/`(`*`(7.995087126, `*`(MJ_)), `*`(K_)))

DSatm = `+`(`-`(`/`(`*`(7.995087126, `*`(MJ_)), `*`(K_))))

c) Trabajo máximo obtenible con una turbina adiabática que se adaptase al salto de presión adecuado.

> Wt:=Int(cp*T0*(1-(p0/p)^((gamma-1)/gamma)),m=m0..m1);p:=m*R*T0/V;Wt_:=(subs(cp=c[p],m1=m1_,m0=p0*V/(R*T0),dat,SI0,value(Wt))*J_):'Wt'=evalf(%/(1e6*J_/MJ_));

`:=`(Wt, Int(`*`(cp, `*`(T0, `*`(`+`(1, `-`(`^`(`/`(`*`(p0), `*`(p)), `/`(`*`(`+`(gamma, `-`(1))), `*`(gamma)))))))), m = m0 .. m1))

`:=`(p, `/`(`*`(m, `*`(R, `*`(T0))), `*`(V)))
Wt = `+`(`*`(1102.204305, `*`(MJ_)))

d) Variación de entropía del aire y de la atmósfera en el caso anterior

> 'DSaire_'=evalf(DSaire_/(1e6*J_/kJ_));DSatm:=Int('-cp*T0*(1-(p0/p)^((gamma-1)/gamma))/T0',m=m0..m1);DSatm_:=subs(cp=c[p],m1=m1_,m0=p0*V/(R*T0),dat,SI0,value(DSatm))*J_/K_:'DSatm'=evalf(%/(1e6*J_/MJ_));DSuniv_:=DSaire_+DSatm_:'DSuniv'=evalf(%/(1e6*J_/MJ_));

DSaire_ = `+`(`/`(`*`(7.995087126, `*`(kJ_)), `*`(K_)))

`:=`(DSatm, Int(`+`(`-`(`*`(cp, `*`(`+`(1, `-`(`^`(`/`(`*`(p0), `*`(p)), `/`(`*`(`+`(gamma, `-`(1))), `*`(gamma))))))))), m = m0 .. m1))

DSatm = `+`(`-`(`/`(`*`(3.827098277, `*`(MJ_)), `*`(K_))))

DSuniv = `+`(`/`(`*`(4.167988849, `*`(MJ_)), `*`(K_)))

DSaire es la misma (mismos estados), pero ahora la atmósfera da menos calor porque sólo calienta isobáricamente el aire expandido; dQatm=cp*(T0-T)*dm.
e) Trabajo máximo obtenible con una turbina que trabaja entre 400 kPa y 100 kPa (es decir, habrá que poner una válvula a la entrada para que la presión del depósito caiga a 400 kPa).

> p:='p':pmin_:=subs(dat,p2):'pmin'=evalf(%*MPa_/(1e6*Pa_));m4_:=subs(p=pmin_,T=T0,dat,dat,solve(eqET,m));Wt_41:=Int(cp*T0*(1-(p0/pmin)^((gamma-1)/gamma)),m=m4..m1);Wt_41_:=subs(cp=c[p],m1=m1_,m4=m4_,pmin=pmin_,dat,SI0,value(Wt_41))*J_:'Wt_41'=evalf(%/(1e6*J_/MJ_));

pmin = `+`(`*`(.400, `*`(MPa_)))

`:=`(m4_, `+`(`*`(4844.572740, `*`(kg_))))

`:=`(Wt_41, Int(`*`(cp, `*`(T0, `*`(`+`(1, `-`(`^`(`/`(`*`(p0), `*`(pmin)), `/`(`*`(`+`(gamma, `-`(1))), `*`(gamma)))))))), m = m4 .. m1))

Wt_41 = `+`(`*`(686.8789895, `*`(MJ_)))

f) Variación de entropía del aire y de la atmósfera en el caso anterior.

> DSaire:=(m1-m4)*cp*ln(T0/T1)-(m1-m4)*R*ln(p0/p1)+m4*cp*ln(T0/T1)-m4*R*ln(pmin/p1);DSaire_:=subs(SI1,evalf(subs(cp=c[p],m1=m1_,pmin=pmin_,m4=m4_,dat,dat,DSaire))):'DSaire'=evalf(%/(1e6*J_/MJ_));DSatm1:=Int('-cp*T0*(1-(p0/pmin)^((gamma-1)/gamma))/T0',m=m4..m1);DSatm2:=-(DE14-W14+(m1-m4)*cp*T0)/T0;DE14:=m4*c[v]*T0-m1*c[v]*T0;W14:=0;DSatm1_:=subs(SI1,simplify(subs(cp=c[p],m1=m1_,m0=p0*V/(R*T0),pmin=pmin_,m1=m1_,m4=m4_,dat,dat,value(DSatm1)))):'DSatm1'=evalf(%/(1e6*J_/MJ_));DSatm2_:=subs(cp=c[p],m1=m1_,m0=p0*V/(R*T0),pmin=pmin_,m1=m1_,m4=m4_,dat,value(DSatm2)):'DSatm2'=evalf(%/(1e6*J_/MJ_));DSuniv_:=DSaire_+DSatm1_+DSatm2_:'DSuniv'=evalf(%/(1e6*J_/MJ_));

`:=`(DSaire, `+`(`-`(`*`(`+`(m1, `-`(m4)), `*`(R, `*`(ln(`/`(`*`(p0), `*`(p1))))))), `-`(`*`(m4, `*`(R, `*`(ln(`/`(`*`(pmin), `*`(p1)))))))))

DSaire = `+`(`/`(`*`(6.069678292, `*`(MJ_)), `*`(K_)))

`:=`(DSatm1, Int(`+`(`-`(`*`(cp, `*`(`+`(1, `-`(`^`(`/`(`*`(p0), `*`(pmin)), `/`(`*`(`+`(gamma, `-`(1))), `*`(gamma))))))))), m = m4 .. m1))

`:=`(DSatm2, `+`(`-`(`/`(`*`(`+`(DE14, `-`(W14), `*`(`+`(m1, `-`(m4)), `*`(cp, `*`(T0))))), `*`(T0)))))

`:=`(DE14, `+`(`*`(m4, `*`(c[v], `*`(T0))), `-`(`*`(m1, `*`(c[v], `*`(T0))))))

`:=`(W14, 0)

DSatm1 = `+`(`-`(`/`(`*`(2.384996492, `*`(MJ_)), `*`(K_))))

DSatm2 = `+`(`-`(`/`(`*`(2.083333330, `*`(MJ_)), `*`(K_))))

DSuniv = `+`(`/`(`*`(1.601348470, `*`(MJ_)), `*`(K_)))

>