Como es costumbre ahora pondré en marcha la teoría.
import
pandas as pd
import math
as math
import numpy
as np
i =
["N2","CH4","C2H6","C3H8","C4H10","C4H10","C5H12","C5H12","C6H14","C7+"]
Yi = [0.0138,0.9302,0.0329,0.0136,0.0023,0.0037,0.0012,0.0010,0.0008,0.0005]
Mi =
[28.0134,16.0430,30.0700,44.0970,58.1230,58.1230,72.1500,72.1500,86.1770,142.2850]
Tci =
[227.1600,343.0000,549.5900,665.7300,734.1300,765.2900,828.7700,845.4700,913.2700,1005.2522]
Pci =
[493.1000,666.4000,706.5000,616.0000,527.9000,550.6000,490.4000,488.6000,436.9000,375.6633]
T = 650
P = 750
Diccionario
=
{"Componente":i,"Composición":Yi,"Mi":Mi,"Tci":Tci,"Pci":Pci}
df =
pd.DataFrame(Diccionario)
if
df["Composición"].sum() == 1:
pass
else:
df["Composición"] =
df["Composición"]/df["Composición"].sum()
df["Mi*Yi"]
= df["Composición"]*df["Mi"]
df["Tpci"]
= df["Composición"]*df["Tci"]
df["Ppci"]
= df["Composición"]*df["Pci"]
Ma =
df["Mi*Yi"].sum()
YgM =
Ma/28.96
# Tpc y Ppc
para componentes pesados
df["Yi(Tc/Pc)"]
= df["Composición"]*(df["Tci"]/df["Pci"])
df["Yi(Tc/sqrt(Pc))"]
= df["Composición"]*(df["Tci"]/df["Pci"]**0.5)
df["Yi*sqrt(Tc/Pc)"]
= df["Composición"]*(df["Tci"]/df["Pci"])**0.5
# Obtención
de Ppc y Tpc
A = df["Yi(Tc/Pc)"].sum()
C =
df["Yi*sqrt(Tc/Pc)"].sum()
K =
df["Yi(Tc/sqrt(Pc))"].sum()
YCO2 = 0;
YH2S = 0 ; YN2 = df.iloc[0:1,1:2]; YN2 = np.array(YN2); YH2O = 0
# SUTTON
YgHC =
(YgM-1.1767*YH2S-1.5196*YCO2-0.9672*YN2-0.622*YH2O)/(1-YH2S-YCO2-YN2-YH2O)
PpcHC =
756.8-131*YgHC-3.6*YgHC**2
TpcHC =
169.2+349.5*YgHC-74*YgHC**2
PpcM =
(1-YN2-YCO2-YH2S)*PpcHC+493*YN2+1071*YCO2+1306*YH2S+3200.1*YH2O
TpcM =
(1-YN2-YCO2-YH2S)*TpcHC+227*YN2+548*YCO2+672*YH2S+1164.9*YH2O
TpcM =
float(TpcM); PpcM = float(PpcM)
print("########################Información
del Gas#############################")
print("# Masa
aparente...................................",round(Ma,4),"lbm/lbm-mol#")
print("#
Densidad........................................",round(YgM,4),"lbm/lbm-mol
#")
print("# Temperatura
Pseudocritica.......................",round(TpcM,4),"°R #")
print("# Presión
Pseudocritica...........................",round(PpcM,4),"psi #")
def
Brill(Tpr,Ppr):
F = 0.3106 - (0.49*(Tpr)) +
(0.1824*(Tpr)**2)
E = 9*(Tpr-1)
D = 10**F
C = 0.132-0.32*np.log10(Tpr)
B = (0.62-(0.23*Tpr))*Ppr +
((0.066/(Tpr-0.86))-0.037)*(Ppr**2) + (0.32/(10**E))*(Ppr**6)
A =
(1.39*(Tpr-0.92)**0.5)-(0.36*Tpr)-0.10
z = A + ((1-A)/np.exp(B)) +
(C*(Ppr**D))
return z
Ppr =
P/PpcM; Tpr = T/TpcM
print("# Factor Z
Brill..................................",round(Brill(Tpr,Ppr),4)," #")
z =
Brill(Tpr,Ppr)
Delta =
-(3.52/(10**(0.9812*Tpr)))+((0.548*Ppr)/(10**(0.8157*Tpr)))
Cr =
(1/Ppr)-(Delta/z)
Cg3 = Cr/680
print("# Compresibilidad.................................",round(Cg3,4),"1/psi #")
Pg =
(1.4935*(10**-3))*((P*Ma)/(z*T))
X = 3.5 +
(986/T)+0.01*Ma
K =
((9.4+0.02*Ma)*T**1.5)/(209+19*Ma+T)
Y =
2.4-0.2*X
Mg =
(K*np.exp(X*Pg**Y))/10**4
print("# Viscosidad......................................",round(Mg,4),"cp #")
print("########################################################################")
El código
entrega los siguientes resultados:
########################Información
del Gas###########
# Masa aparente................................... 17.5464 lbm/lbm-mol #
#
Densidad........................................ 0.6059 lbm/lbm-mol #
# Temperatura
Pseudocritica....................... 350.7439 °R #
# Presión
Pseudocritica........................... 674.2558 psi #
# Factor Z
Brill.................................. 0.9573 #
#
Compresibilidad................................. 0.0014 1/psi #
# Viscosidad......................................
0.0142 cp #