def calculo(self): ind1 = self.Comp1.currentIndex() ind2 = self.Comp2.currentIndex() if ind1 != ind2: zi = arange(0.025, 1., 0.025) id1 = self.indices[ind1] id2 = self.indices[ind2] x = [0] y = [0] for z in zi: try: fraccion = [0.] * len(self.indices) fraccion[ind1] = z fraccion[ind2] = 1 - z mez = Mezcla(tipo=3, fraccionMolar=fraccion, caudalMasico=1.) tb = mez.componente[0].Tb corr = Corriente(T=tb, P=101325., mezcla=mez) T = corr.eos._Dew_T() corr = Corriente(T=T, P=101325., mezcla=mez) while corr.Liquido.fraccion[0] == corr.Gas.fraccion[ 0] and corr.T < corr.mezcla.componente[1].Tb: corr = Corriente(T=corr.T - 0.1, P=101325., mezcla=mez) x.append(corr.Liquido.fraccion[0]) y.append(corr.Gas.fraccion[0]) except: pass x.append(1) y.append(1) self.rellenar(x, y)
a7, b7 = 0.0705233, -0.044448 a8, b8 = 0.504087, 1.32245 a9, b9 = 0.0307452, 0.179433 a10, b10 = 0.0732828, 0.463492 a11, b11 = 0.006450, -0.022143 Bo = (a1 + b1 * cmp.f_acent) * cmp.Vc Ao = (a2 + b2 * cmp.f_acent) * R_atml * cmp.Tc * cmp.Vc Co = (a3 + b3 * cmp.f_acent) * R_atml * cmp.Tc**3 * cmp.Vc gamma = (a4 + b4 * cmp.f_acent) * (cmp.Vc)**2 b = (a5 + b5 * cmp.f_acent) * (cmp.Vc)**2 a = (a6 + b6 * cmp.f_acent) * R_atml * cmp.Tc * (cmp.Vc)**2 alfa = (a7 + b7 * cmp.f_acent) * (cmp.Vc)**3 c = (a8 + b8 * cmp.f_acent) * R_atml * cmp.Tc**3 * (cmp.Vc)**2 Do = (a9 + b9 * cmp.f_acent) * R_atml * cmp.Tc**4 * cmp.Vc d = (a10 + b10 * cmp.f_acent) * R_atml * cmp.Tc**2 * (cmp.Vc)**2 Eo = (a11 + b11 * cmp.f_acent * exp(-3.8 * cmp.f_acent)) * R_atml * cmp.Tc**5 * cmp.Vc return Ao, Bo, Co, Do, Eo, a, b, c, d, alfa, gamma _all = [BWRS] if __name__ == "__main__": from lib.mezcla import Mezcla mezcla = Mezcla(2, ids=[10, 38, 22, 61], caudalUnitarioMolar=[0.3, 0.5, 0.05, 0.15]) eq = BWRS(340, 101325, mezcla) print(eq.x)
__doi__ = { "autor": "Twu, C.H., Coon, J.E., Cunningham, J.R.", "title": "A New Generalized Alpha Function for a Cubic Equation of " "State Part 1. Peng-Robinson equation", "ref": "Fluid Phase Equilibria 105 (1995) 49-59", "doi": "10.1016/0378-3812(94)02601-v" }, OmegaA = 0.457235528921 OmegaB = 0.0777960739039 def _alfa(self, cmp, T): Tr = T / cmp.Tc alpha0 = Tr**(-0.171813) * exp(0.125283 * (1 - Tr**1.77634)) # Eq 11 alpha1 = Tr**(-0.607352) * exp(0.511614 * (1 - Tr**2.20517)) # Eq 12 # Eq 9 alpha = alpha0 + cmp.f_acent * (alpha1 - alpha0) return 0, alpha if __name__ == "__main__": from lib.mezcla import Mezcla mix = Mezcla(5, ids=[4], caudalMolar=1, fraccionMolar=[1]) eq = PRTwu(300, 9.9742e5, mix) print('%0.0f %0.1f' % (eq.Vg.ccmol, eq.Vl.ccmol)) eq = PRTwu(300, 42.477e5, mix) print('%0.1f' % (eq.Vl.ccmol))
# f_acent = (0.01100, 0.02200, -0.00200) # x = (0.50000, 0.30000, 0.20000) from lib.mezcla import Mezcla from lib.compuestos import Componente ch4 = Componente(2) ch4.Tc, ch4.Pc, ch4.f_acent = 190.564, 4599200, 0.011 o2 = Componente(47) o2.Tc, o2.Pc, o2.f_acent = 154.581, 5042800, 0.022 ar = Componente(98) ar.Tc, ar.Pc, ar.f_acent = 150.687, 4863000, -0.002 mix = Mezcla(5, customCmp=[ch4, o2, ar], caudalMolar=1, fraccionMolar=[0.5, 0.3, 0.2]) print(2222) eq = PRMathiasCopeman(800, 34933409.8798343, mix) print(eq._phir(800, 5000, eq.yi)) from lib.mezcla import Mezcla from lib.compuestos import Componente ch4 = Componente(2) ch4.Tc, ch4.Pc, ch4.f_acent = 190.564, 4599200, 0.011 o2 = Componente(47) o2.Tc, o2.Pc, o2.f_acent = 154.581, 5042800, 0.022 ar = Componente(98) ar.Tc, ar.Pc, ar.f_acent = 150.687, 4863000, -0.002 mix = Mezcla(5, customCmp=[ch4, o2, ar],
# mix = Mezcla(5, ids=[46, 2], caudalMolar=1, fraccionMolar=[0.2152, 0.7848]) # eq = SRK(144.26, 2.0684e6, mix) # print(eq.rhoL.kmolm3) # # Ejemplo 6.6, Wallas, pag 340 # mezcla = Mezcla(2, ids=[1, 2, 40, 41], caudalUnitarioMolar=[0.3177, 0.5894, 0.0715, 0.0214]) # P = unidades.Pressure(500, "psi") # T = unidades.Temperature(120, "F") # eq = SRK(T, P, mezcla) # print(T) # print(eq.x) # print([x*(1-eq.x)*5597 for x in eq.xi]) # print([y*eq.x*5597 for y in eq.yi]) # print(eq.Ki) # Example 6.6 wallas P = unidades.Pressure(20, "atm") mix = Mezcla(5, ids=[23, 5], caudalMolar=1, fraccionMolar=[0.607, 0.393]) eq1 = SRK(300, P, mix) eq2 = SRK(400, P, mix) print(eq1._Dew_T(P)) print(eq2._Dew_T(P)) # eq = SRK(500, P, mezcla) # print(eq._Dew_T(P))
kw["a"] = self.tita kw["dat"] = damt kw["datt"] = damtt kw["dattt"] = damttt print(tau, delta, kw) p = CubicHelmholtz(tau, delta, **kw) p["tau"] = tau p["delta"] = delta print("fir: ", p["fir"]) print("fird: ", p["fird"] * delta) print("firt: ", p["firt"] * tau) print("firdd: ", p["firdd"] * delta**2) print("firdt: ", p["firdt"] * delta * tau) print("firtt: ", p["firtt"] * tau**2) print("firddd: ", p["firddd"] * delta**3) print("firddt: ", p["firddt"] * delta**2 * tau) print("firdtt: ", p["firdtt"] * delta * tau**2) print("firttt: ", p["firttt"] * tau**3) print("P", (1 + delta * p["fird"]) * R * self.T * self.rho - self.P) self.fir = p if __name__ == "__main__": from lib.mezcla import Mezcla mix = Mezcla(tipo=5, caudalMolar=1, ids=[2, 47, 98], fraccionMolar=[0.5, 0.3, 0.2]) eq = PRMathiasCopeman(800, 34937532, mix)
self.Bi = [bi*self.P/R/self.T for bi in self.bi] self.Ai = [ai*self.P/(R*self.T)**2 for ai in self.ai] def _lib(self, cmp, T): a0 = 0.42747*R**2*cmp.Tc**2/cmp.Pc alfa = (self.T/cmp.Tc)**-0.5 b = 0.08664*R*cmp.Tc/cmp.Pc return a0*alfa, b def _GEOS(self, xi): am, bm = self._mixture("RK", xi, [self.ai, self.bi]) delta = bm epsilon = 0 return am, bm, delta, epsilon if __name__ == "__main__": from lib.mezcla import Mezcla from lib import unidades # mix = Mezcla(2, ids=[10, 38, 22, 61], # caudalUnitarioMolar=[0.3, 0.5, 0.05, 0.15]) # eq = RK(340, 101325, mix) mezcla = Mezcla(2, ids=[1, 2, 40, 41], caudalUnitarioMolar=[0.31767, 0.58942, 0.07147, 0.02144]) P = unidades.Pressure(485, "psi") T = unidades.Temperature(100, "F") eq = RK(T, P, mezcla, flory=1)
# Eq 21 bptr = 1 - 0.1519*cmp.f_acent - 3.9462*cmp.f_acent**2 + \ 7.0539*cmp.f_acent**3 bpt = bptr * bc mb = bptr - 1 # Eq 17 apt = 29.7056 * bpt * R * Tpt # Eq 19 b = bc * (1 + mb * (1 - Tita)) # Eq 16 ma = (apt / ac)**0.5 - 1 # Eq 11 a = ac * (1 + ma * (1 - Tita**0.5))**2 # Eq 10 return a, b if __name__ == "__main__": from lib.mezcla import Mezcla mix = Mezcla(5, ids=[4], caudalMolar=1, fraccionMolar=[1]) eq = Nasrifar(300, 9.9742e5, mix) print('%0.1f' % (eq.Vl.ccmol)) eq = Nasrifar(300, 42.477e5, mix) print('%0.1f' % (eq.Vg.ccmol)) mix = Mezcla(5, ids=[46, 2], caudalMolar=1, fraccionMolar=[0.04752, 0.95248]) eq = Nasrifar(105, 5e7, mix) print(eq.rhoL.kmolm3)