Está en la página 1de 9

Universidad Nacional Autónoma de México

Facultad de Ingeniería

Ingeniería Petrolera

Simulación Matemática de Yacimientos

Profesor: Dr. Víctor Leonardo Teja Juárez

Alumna: Flores Mojica Diana Alejandra

Tarea 3

Fecha de Entrega: 02 de agosto del 2019


1. Gravedad Especifica del aceite

2. Presión de Burbujeo (Pb) <Vázquez y Beggs>

3. Relación de Solubilidad (Rso) <Vázquez y Beggs>


4. Factor Volumétrico del Aceite (Bo) <Petrosky y Farshad>

5. Factor Volumétrico Total (Bt) <Al Morhoun>

6. Compresibilidad del Petróleo <Kartoatmodjo y Schmidt>

7. Viscosidad del Petróleo <Chew y Connally>


8. Tensión Interfacial Gas-Petróleo

CÓDIGO
#PROPIEDADES DEL ACEITE

#GRAVEDAD ESPECIFICA DEL ACEITE

import numpy as np
import matplotlib.pyplot as plt

def Gespecifica(densi_o, densi_w):


gravedad=densi_o/densi_w
return(gravedad)
#print("Gravedad especifica:")
#print(Gespecifica(1,5))

#GRAVEDAD API

def gAPI(densi_o):
API=(141.5/densi_o)-131.5
return(API)
#print("Gravedad API:")
#print(gAPI(1))
#PRESIÓN PB (CORRELACION VAZQUEZ Y BEGGS)

def gammagc(gammaAPI,temper,presion,gammaG):
gammaGC=(gammaG)*(1+(5.912*10**(-
5))*gammaAPI*temper*(np.log10(presion/114.7)))
return(gammaGC)
#print("Gamma es:")
#print(gammagc(31,85,100,0.95))

def Pbvazquezybeggs(Rsb,gammaGC,gammaAPI,temper):
if(gammaAPI<=30):
C1=0.0362
C2=1.0937
C3=25.724
pb=((Rsb)/C1*gammaGC*(np.exp(C3*gammaAPI/(temper+460))))**(1/C2)
if (gammaAPI>30):
C1=0.0178
C2=1.0937
C3=25.724

pb=((Rsb)/(C1*gammaGC*(np.exp(C3*gammaAPI/(temper+460)))))**(1/C2)
return(pb)
#print("El pb es")
#print(Pbvazquezybeggs(675,0.59411,31,180))
#
#presion=np.linspace(1000,2500,5)
#TEMP=np.linspace(80,300,20)
#pb=np.zeros(len(TEMP))
#
#plt.figure("pb",figsize=(4,5))
#
#for i in range(0,len(presion)):
# pb[::]=Pbvazquezybeggs(675,0.9411,31,TEMP)
# plt.plot(TEMP,pb,'k*-')
#
#plt.title('Pb(vazques y beggs)')
#plt.xlabel('Temperatura (°F)')
#plt.ylabel('Pb 31 °API (%)')
#plt.grid('True')
#plt.savefig('Pb',dpi=300)

#RSO (VAZQUEZ Y BEGGS)

def RsoVazquezBeggs(p,T, gammaGC, API,):

if (API <= 30.):


C1 = 0.0362; C2 = 1.0937; C3 = 25.724
Rso = C1*gammaGC*p**(C2)*np.exp(C3*API/(T+460.))

if (API > 30.):


C1 = 0.0178; C2 = 1.1870; C3 = 23.931
Rso = C1*gammaGC*p**(C2)*np.exp(C3*API/(T+460.))

return(Rso)

#print (RsoVazquezBeggs(2000,180, 0.95, 31.,))

#presion=np.linspace(1000, 2500, 5)
#TEMP=np.linspace(80, 300, 20)
#Rso=np.zeros(len(TEMP))
#API=31
#
#plt.figure("Rsw", figsize=(4,5))
#
#for i in range(0,len(presion)):
# Rso[::]=RsoVazquezBeggs(presion[i],TEMP[::],0.95,API)
# plt.plot(TEMP,Rso,'k--')
#
#plt.title('Rso (VazquezBeggs)')
#plt.xlabel('Temperatura (°F)')
#plt.ylabel('Rso 31 API (%)')
#plt.grid('True')
#plt.savefig('Rso(VazquezBeggs)',dpi=300)

#BO (PETROSKY Y FARSHAD)

def BoPetrosky(Rs,gammaG,gammaO,temper):

F=(Rs**(0.3738))*((gammaG**0.2914)/(gammaO**0.6265))+0.2426*(temper**0.
5371)
Bo=1.0113+(7.2046*(10**-5)*(F**3.0936))
return(Bo)
Bo=BoPetrosky(645,0.95,0.871,180)
#print(Bo)
#
#press=np.linspace(0, 3500,20)
#Rs=np.linspace(0,100,20)
#bo=np.zeros(len(TEMP))
#
#plt.figure("bo", figsize=(4,5))
#
#for i in range(0,len(Rs)):
# bo[::]=BoPetrosky(Rs,0.95,0.871,180)
# plt.plot(press,bo,'k*-')
#
#plt.title('Bo')
#plt.xlabel('Presion')
#plt.ylabel('Bo')
#plt.grid('True')
#plt.savefig('bo',dpi=300)

#Bt (AL-MORHOUN)

def BtAlMarhoun(PRES,temper,Rs,gammaG,gammaO):
F=(Rs**0.644516)*(gammaG**-1.07934)*(gammaO**0.724874)*(PRES**-
0.76191)*(temper**2.00621)
Bt=0.3146693+(0.106253*(10**-4))*F+(0.18883*(10**-10))*F**2
return(Bt)
#print(BtAlMarhoun(615,0.95,0.871,2000,640))

#Co (KARTOATMODJO y SCHMIDT)

def CoKartoatmodjo(Rs,gammaAPI,gammaGC,PRES,temper):

COMPRES=(6.8257*(Rs**0.5002)*(gammaAPI**0.3613)*(temper**0.76606)*(g
ammaGC**0.35505))
Co=COMPRES/PRES*(10**6)
return(Co)
#print(CoKartoatmodjo(555,31,180,0.95,4000))

#Viscosidad (CHEW Y CONALLY)


def VChewyConally(Visco,Rs):
A=np.exp(Rs*((2.2e-7*Rs)-7.4e-4))
B=(0.68/10**(8.62e-5*Rs))+(0.25/10**(1.1e-3*Rs))+(0.062/10**(3.74e-3*Rs))
Visco=A*(Visco)**B
return(Visco)
#print(VChewyConally(675,2.65))

#Tensión Interfacial

def tensionINTER (api,temper):


if(temper==68):
SIG=39-0.2571*api
if(temper==100):
SIG=37.5-0.2571*api
if(68<temper<100):
sig68=39-0.2571*api
sig100=37.5-0.2571*api
SIG=sig68-((temper-68)(sig68-sig100)/32)
return(SIG)
#print(tensionINTER(31,68))

También podría gustarte