miércoles, 30 de junio de 2021

Factor Z 2

 En esta ocasión continuaré con las correlaciones del factor Z.

Comenzaré por la correlación de Hall, K.R. y Yarborough, L., la cual tiene los siguientes rangos 0.1 <= Ppr <= 24 y 1.2 <= Tpr <= 3

t = 485.9/(194+460) # Tpc (Temperatura Pseudocritica )/T

def DDF(Y,t):

            A = 0.06125*t*np.exp(-1.2*(1-t)**2)

            B = (14.76*t-9.76*t**2+4.58*t**3)

            C = (90.7*t-242.2*t**2+42.4*t**3)

            D = 2.18+2.82*t

            Y = -A*Ppr+((Y+(Y**2)+(Y**3)-(Y**4))/((1-Y)**3))-B*(Y**2)+C*(Y**D)

            return Y

Y = 0.01

conteo = 0

error = 1

while error > 0.0000001:

            dy = ((DDF(Y,t)+0.0001)-DDF(Y,t))/0.0001

            yn = Y-DDF(Y,t)/dy

            conteo = conteo + 1

            error = (yn-Y)/yn

            Y = yn

z =(0.06125*Ppr*t*np.exp(-1.2*(1-t)**2))/Y

print("Hall","------",round(z,4))

La siguiente correlación es la de Dranchuk, P.M., Purvis, R.A. y Robinson, D.B. la cual tiene los siguientes rangos 0.2 <= Ppr <= 30 y 1.05 <= Tpr <= 3

Z = 0.6000 # Z propuesta

A1 = 0.31506237

A2 = -1.0467099

A3 = -0.57832729

A4 = 0.53530771

A5 = -0.61232032

A6 = -0.10488813

A7 = 0.68157001

A8 = 0.68446549

error = 1

while error > 0.000000001:

            Pr = 0.27*(Ppr/(Z*Tpr))

            F = Z-(1+((A1+(A2/Tpr)+(A3/(Tpr**3)))*Pr)+((A4+(A5/Tpr))*(Pr**2))+((A5*A6*Pr**5)/Tpr)+A7*(1+A8*(Pr**2))*((Pr**2)/(Tpr**3))*(np.exp(-A8*Pr**2)))

            G = 1+((A1+(A2/Tpr)+(A3/(Tpr**3)))*(Pr/Z))+(2*(A4+(A5/Tpr))*((Pr**2)/Z))+((5*A5*A6*Pr**5)/(Tpr*Z))+((2*A7*(Pr**2))/(Z*(Tpr**3)))*(1+(A8*(Pr**2))-((A8*(Pr**2))**2))*(np.exp(-A8*(Pr**2)))

            Z2 = Z-(F/G)

            error = (Z2-Z)/Z2

            Z = Z2

print("Dranchuck","-",round(Z,4))

Pr último, está la correlación de Dranchuk, P.M. y Abou-Kassem, J.H., la cual tiene los siguientes rangos 0.2 <= Ppr <= 30 y 1 <= Tpr <= 3.

A1 = 0.3265

A2 = -1.07

A3 = -0.5339

A4 = 0.01569

A5 = -0.05165

A6 = 0.5475

A7 = -0.7361

A8 = 0.1844

A9 = 0.1056

A10 = 0.6134

A11 = 0.721

error = 1

Z = 0.6000

while error > 0.00000001:

            Pr = (0.27*Ppr)/(Z*Tpr)

            F = Z-(1+(A1+(A2/Tpr)+(A3/(Tpr**3))+(A4/(Tpr**4))+(A5/(Tpr**5)))*Pr+(A6+(A7/Tpr)+(A8/(Tpr**2)))*(Pr**2)-A9*((A7/Tpr)+(A8/(Tpr**2)))*(Pr**5)+A10*(1+A11*(Pr**2))*((Pr**2)/(Tpr**3))*np.exp(-A11*Pr**2))

            G = 1+(A1+(A2/Tpr)+(A3/(Tpr**3))+(A4/(Tpr**4))+(A5/(Tpr**5)))*(Pr/Z)+2*(A6+(A7/Tpr)+(A8/(Tpr**2)))*((Pr**2)/Z)-5*A9*((A7/Tpr)+(A8/(Tpr**2)))*((Pr**5)/Z)+((2*A10*(Pr**2))/(Z*(Tpr**3)))*(1+(A11*(Pr**2))-((A11**2)*(Pr**2)**2))*np.exp(-A11*Pr**2)

            Z2 = Z-(F/G)

            error = (Z2-Z)/Z2

            Z = Z2

print("Dranchuck","-",round(Z,4))

No hay comentarios.:

Publicar un comentario