Documentos de Académico
Documentos de Profesional
Documentos de Cultura
T E S I S
INGENIERO PETROLERO
PRESENTA
DIRECTOR DE TESIS
ÍNDICE
AGRADECIMIENTOS......................................................................................................04
DEDICATORIAS................................................................................................................05
RESUMEN...........................................................................................................................06
ABSTRACT.........................................................................................................................08
INTRODUCCIÓN...............................................................................................................10
1.5.2. Ecuaciones................................................................................................................. 28
CONCLUSIONES Y RECOMENDACIONES................................................................75
ÍNDICE DE TABLAS.......................................................................................................102
ÍNDICE DE FIGURAS.....................................................................................................104
REFERENCIAS BIBLIOGRÁFICAS............................................................................106
Agradecimientos
A mis padres, por ser un claro ejemplo de familia y de profesionalismo, porque sin ellos mi
camino sería diferente, gracias a ellos por el apoyo incondicional en cada momento.
A mi hermana, por ser quien me enseñó parte de esta vida, porque es hermana y amiga a la
vez; a ella por apoyarme en momentos difíciles y saber que siempre puedo contar con ella.
A mi primo Alejandro, porque siempre me motivo a seguir adelante y ser un gran ejemplo.
A la Ingeniera Azucena, por ser mi asesora de tesis, quien me ha apoyado en todo momento
Al Ingeniero Omar, por impulsarme a hacer una tesis diferente, y por siempre asesorarme.
A mis amigos Aurora, Jair y Eli; a Aurora por ser una persona que siempre me ayudó y
aconsejó; a Jair por ser un amigo en todo momento, por siempre apoyarme en cada decisión
que he tomado y soportar mi manera de ser; a Eli por estar en momentos difíciles y
Al Instituto Politécnico Nacional, por formarme profesionalmente en sus aulas, porque salir
A mis profesores, por siempre trasmitir de la mejor manera sus conocimientos y querernos
Dedicatorias
A mi mamá, por siempre apoyarme en cada decisión, por ser una gran base en mi
crecimiento profesional, porque siempre vió por mi hermana y por mi antes que por ella.
A mi papá, por ser un ejemplo que seguir y por todo el apoyo que me brindó en mi
preparación profesional.
A mi primo Alejandro, por estar en gran parte de mi vida, por ese apoyo incondicional que
siempre me brindó.
A mi primo Slim, por ser quien me guió en grandes aspectos y por estar en momentos
difíciles.
A mi tío Rogelio, por ayudarme a conocer parte de la industria desde otra perspectiva y
brindarme su apoyo.
A mis abuelos, por ser la base de una gran familia que siempre nos hemos apoyado y hemos
salido adelante desde abajo, por siempre entendernos y corregirnos cuando las cosas que
A mi familia Hernández, por siempre estar en cada momento, por saber que siempre cuento
con ese apoyo incondicional, por siempre recordarme quien soy y hacia dónde voy.
Resumen
programados son:
Dichos métodos tienen como fundamento la EBM, la cual ha sido adecuada por cada autor.
incógnitas se tienen que adecuar a cada método de evaluación. Algunos métodos tienen la
saturar el programa y logrando el objetivo de calcular los valores solicitados por el usuario.
Se presenta el desarrollo del código de manera ordenada con anotaciones que ayudan al
entendimiento de las líneas. Por otro lado, se establecen las variables de cada método, de
igual manera se establecen las fórmulas para cálculos de incógnitas, dando un formato de
operación junto con las adecuaciones matemáticas para los cálculos que el usuario solicita.
Abstract
In this thesis, is presented a program for the evaluation of the reservoir behavior, in which
saturated, undersaturated and gas reservoirs are evaluated, all based on the Material
Balance Equation (M.B.E.). The MBE will suffer changes according to the evaluation of
the type of reservoir and the author. The programmed methods are:
Tarner.
Such methods are based on the MBE, which has been adjusted for each author. When
developing the programming code, iterations, calculations and unknown values must
be adjusted to each method of evaluation. Some methods have the infinite possibility of
calculations, that’s where the program must make the evaluation of those infinite
possibilities to minimize the coding cycles, looking for a mathematic model or the
creation of an algorithm that lets the infinite evaluation without saturating the program
and achieving the objective of calculating the values asked by the user.
The development of the code is presented in an ordered path where annotations are
used to help the understanding of the lines. On the other side, some unknown values
are stablished for each method, also some formulas are stablished to calculate the
Introducción
yacimientos, con la que se puede definir el volumen original de gas y aceite, la entrada de
agua ocasionada por un acuífero aledaño entre otras. La ecuación puede ser modificada a
correcta.
explicación a la explotación del yacimiento, y que cada una de las afectaciones dentro del sistema
Así, de esta manera se han creado diversos programas en el mercado, para el análisis de los
características específicas de cada método. Se diseñó una plataforma intuitiva, donde sí se conoce
los valores proporcionados del yacimiento se logrará obtener el cálculo de volumen de gas o aceite
esperado.
Yacimientos”, facilita la explicación de estos y ayuda a las iteraciones que son necesarias para cada
Se explica la base teórica de cada método, así como sus fórmulas; se recopiló información con
respecto al leguaje base del código de programación, el código de igual manera se encuentra en el
contenido para su mayor entendimiento; como toda plataforma o programa, tiene errores, sus
CAPÍTULO 1
COMPORTAMIENTO DE YACIMIENTOS
Los fluidos dentro del yacimiento son desplazados por la expansión del sistema y sus
elementos.
Inicialmente la E.B.M. estaba restringida solo al uso por expansión del aceite. Su
ecuación era la
siguiente:
𝑁𝑃 𝐵𝑜 − 𝐵𝑜𝑜𝑜
𝑁 = 𝐵𝑜
No considera ninguna de las variantes que pueden afectar al yacimiento como las
Donde:
de hidrocarburos.
aledaño.
𝐸𝑠 = 𝑉𝑠 𝐶𝑠 ∆𝑃 = 𝑉𝑝𝑜𝑜 𝐶𝑓𝑓 ∆𝑃
Para emplear estas fórmulas es necesario tener valores que nos proporciona el
𝑉𝑜𝑜𝑜 𝑁 𝐵𝑜𝑜 𝑜
𝑉𝑝𝑜𝑜 = =
𝑆𝑜𝑜 (1 − 𝑆𝑤𝑤)
𝑜
Así mismo se calculan los fluidos producidos a presión final con las siguientes
ecuaciones:
en
Vfd:
Esto es igual a:
𝑁𝑝 𝐵𝑜 + 𝑊𝑊𝑝 𝐵𝑤 𝑤 − 𝑊𝑊𝑒
𝑁= 𝐵𝑜𝑜𝑜 𝑐𝑒 ∆𝑃
Expansión del
Entrada = Volumen de fluidos desplazados
aceite, agua y
de Agua (producidos) @c.y.
roca @c.y.
𝑁𝑝 𝐵𝑜 + 𝑊𝑊𝑝 𝐵𝑤𝑤
𝑁= 𝐵𝑜𝑜𝑜 𝑐𝑒 ∆𝑃
𝐵𝑜𝑜𝑜 𝑐𝑒 ∆𝑃
𝑅𝑒𝑐 = 𝐵𝑜
empuje por expansión del sistema y la segunda como empuje por agua.
Su ecuación es la siguiente:
𝑊𝑊𝑒 = ∆𝑊𝑊𝑒 = 𝑊𝑊𝑒2 − 𝑊𝑊𝑒1 ; 𝑊𝑊𝑃 = ∆𝑊𝑊𝑝 = 𝑊𝑊𝑃2 − 𝑊𝑊𝑃1 ; 𝐵𝑜𝑜𝑜 = 𝐵𝑜𝑜𝑜
𝑁1 = 𝑁 − 𝑁𝑃1
(𝑁 − 𝑁𝑃1)𝐵01𝑐𝑒(𝑃1 − 𝑃2)
𝐴= (𝑁𝑃2−𝑁𝑃1)𝐵02
intervención.
grupo de variables, la selección del grupo por el cual se evaluará dependerá del
puntos desviados de la línea recta son los que se evalúan dentro y los cuales
𝑁𝑝 𝐵𝑜 + 𝑊𝑊𝑝 𝐵𝑤
= +𝑁
𝑊𝑊𝑒
𝐵𝑜𝑓𝑓 𝑐𝑒 ∆𝑝 𝐵𝑜𝑓𝑓 𝑐𝑒 ∆𝑝
𝑁𝑝 𝐵𝑜 + 𝑊𝑊𝑝 𝐵𝑤 = 𝑁 𝐵𝑜𝑓𝑓 𝑐𝑒 ∆𝑝
En este tipo de yacimientos se considera que la presión del yacimiento se encuentra por
tiene casquete de gas; en este tipo de yacimientos, el gas incrementará por cada caída
𝑚 𝑁 𝐵𝑜𝑜𝑜
+𝑁𝑅 𝑚 𝑁 𝐵𝑜𝑜𝑜 + 𝑁 𝐵𝑜𝑜𝑜 − (𝑁 − 𝑁𝑃 )𝐵𝑜 − (𝑊𝑊𝑒 − 𝑊𝑊𝑃 𝐵𝑤𝑤 ) +𝑁 𝑅
𝐵𝑔𝑔𝑜𝑜 𝑠𝑜𝑜 = 𝐵𝑔𝑔 + �𝑁 − 𝑁 �𝑅
𝑝 𝑠 𝑝 𝑝
𝑚 𝑁 𝐵 𝐵𝑔𝑔 + 𝑁 𝑅 𝐵 − 𝑚 𝑁𝐵 − 𝑁𝐵 + 𝑁𝐵 − 𝑁𝑅 𝐵
𝑜𝑜𝑜 𝑠𝑜𝑜 𝑔𝑔 𝑜𝑜𝑜 𝑜𝑜𝑜 𝑠 𝑔𝑔
𝐵𝑔𝑔𝑜𝑜
Despejando N se tiene:
grande.
yacimiento.
valores erróneos.
𝑁𝑚𝐵𝑡𝑜𝑜 𝐵𝑔
� − 1� expansión del casquete original de gas.
𝐵𝑔𝑔𝑔
desplazados.
La expansión del casquete de gas es la principal fuerza del yacimiento, por ello
N (𝐵
− ) + 𝑚𝑁𝐵 𝐵𝑔𝑔
𝑚
𝑁 𝐵𝑡𝑜 𝑜 )𝐶 ∆ + 𝑊𝑊 + (𝑁 𝐵𝑡𝑜𝑜 𝑆𝑤𝑤𝑜𝑜𝑜
𝐵 ( −𝑁1)
𝐵𝑡𝑜+ ( +
𝑡 𝑡𝑜𝑜 𝑡𝑜𝑜 𝐵𝑔𝑔𝑜 1− 1 − 𝑆𝑤𝑤𝑜𝑜𝑔 𝑓𝑓 𝑒
1 − 𝑆𝑤𝑤𝑜𝑜𝑜
𝑃
𝑜 𝑆𝑤𝑤𝑜�
�
𝑚𝑁 𝐵𝑡𝑜𝑜 𝑆𝑤𝑤𝑜𝑜𝑔𝑔 �𝐵 + )� + 𝑊𝑊 𝐵
+ )𝐶 ∆
𝑁= (𝑅 𝐵 −
𝑅
1 − 𝑆𝑤𝑤𝑜𝑜𝑔𝑔 𝑤𝑤 𝑃 𝑡 𝑔𝑔 𝑃 𝑠𝑜𝑜 𝑃 𝑤𝑤
𝑃
𝑁 𝐵𝑡𝑔 𝑔 𝑚𝑁 𝐵𝑡𝑔𝑔
𝑦 representan el volumen de poros en la zona de aceite y casquete de
1−𝑆𝑤𝑤𝑔𝑔𝑜 1−𝑆𝑤𝑤𝑔𝑔𝑔
gas.
Despejando N1.
Al sustituir N1 en N, se obtiene:
𝑊𝑊𝑒
𝑁1 = 𝑁 +
(𝐵𝑡 𝐵𝑔𝑔
− 𝐵𝑡𝑜 ) + 𝑚𝐵𝑡𝑜 (𝐵 − 1)
𝑔𝑔𝑜
𝑜
cero. De igual manera se puede calcular la entrada de agua cuando esta se hace
𝑊𝑊𝑒 𝐵𝑔𝑔 − 1)
= (𝑁1 − 𝑁) − 𝐵𝑡𝑜 + 𝑚𝐵𝑡𝑜 ( 𝐵
𝑔𝑔𝑜
[𝐵𝑡
𝑜
A B C
mínimo.
(𝑁 − 𝑁𝑃1) 𝑚1𝐵𝑡1
�(𝐵𝑡2 − 𝐵𝑡𝑜𝑜 ) (𝑅1 − 𝑅𝑠2 )� + ∆𝑊𝑊𝑒 + ∆𝑊𝑊𝑃 𝐵𝑤𝑤
+ �𝐵𝑔𝑔2 − 𝐵𝑔𝑔1 �� = �𝑁𝑃2 − 𝐵𝑔𝑔1 ��𝐵𝑜2 + 𝐵𝑔𝑔2 �
𝐵𝑔𝑔1
Con la formula se pueden determinar los índices de empuje por periodos.
un yacimiento tipo declinado. El método de Tracy ocupa el arreglo para poder hacer el
balance, se emplean iteraciones para obtener los resultados correctos, este método
Tarner sustituyó Bt por Bo + Bg (Rsi-Rs), Bti por Boi, Rp por Gp/Np y de esta
manera se obtiene:
∅𝑛 = 𝐵𝑜 − 𝑅𝑆𝐵𝑔 𝑔
𝐵𝑜− 𝐵𝑜𝑜𝑜 + 𝐵𝑔𝑔 (𝑅𝑠𝑜𝑜 − 𝑅𝑠 )
𝐵𝑔 𝑔
∅𝑛 = 𝐵 𝐵 + 𝐵 (𝑅 − 𝑅 )
𝑜− 𝑜𝑜𝑜 𝑔𝑔 𝑠𝑜𝑜 𝑠
𝑁 = 𝑁𝑃∅𝑛 + 𝐺𝑃∅𝑔𝑔
de yacimientos.
𝑁 =𝑁 𝑅1+𝑅2
+ ∆𝑁 ;𝐺 =
𝐺 + ∆𝐺 ; ∆𝐺 = � � ∆𝑁
𝑃2 𝑃1 𝑃 𝑃2 𝑃1 𝑃 𝑃 𝑃
2
𝑁 = 𝑁𝑃1
∅𝑛2 + 𝐺𝑃1 ∅𝑔𝑔 + ∆𝑁𝑃 �𝑅1 + 𝑅2 ∅ 𝑔𝑔2 + ∅𝑛2 �
2
2
expresa:
1 = 𝑁𝑃1
∅𝑛2 + 𝐺𝑃1 ∅𝑔𝑔 + ∆𝑁𝑃 �𝑅1 + 𝑅2 ∅ 𝑔𝑔 + ∅𝑛2 �
2 2
2
+ ∅𝑛2
hidráulico son fuentes de energía despreciables, así que obtiene su empuje por medio
poroso ocupado por el gas permanece constante durante la vida productiva del
yacimiento.
VOLUMÉTRICO
Inicial Final
NO VOLUMÉTRICO
Inicial Final
1.4.1. Ecuaciones.
𝐴 ℎ ∅ (1 − 𝑆𝑤𝑤𝑜𝑜 )
𝐺 = 43560 𝐵𝑔𝑔𝑜𝑜
𝐴 ℎ ∅ (1 − 𝑆𝑤𝑤𝑜𝑜 )
𝐺 = 43560 𝐵𝑔𝑔
𝐺 = 43560 𝐴 ℎ ∅ (1 − 𝑆 �1 − 1�
𝑤𝑤𝑜𝑜 ) 𝐵𝑔𝑔𝑜 𝐵𝑔𝑔
𝑜
𝐹𝑟𝑔𝑔 = 𝐺𝑃
𝐺
La entrada de fluidos hacia el yacimiento puede ser por diversos factores que
Acuíferos activos.
El yacimiento sufrirá de Saturación residual del gas (Sgr), que es la parte que
El método de Tarner funcionó por medio de prueba y error, ya que conlleva una serie
de iteraciones para tener el valor correcto de Np, de esta manera se tendrán que hacer
una infinidad de iteraciones si el valor es muy lejano del resultado correcto. Se calcula
recuperación.
1.5.1. Consideraciones.
continuación:
Sw congénita.
N = Nb.
1.5.2. Ecuaciones.
Para hacer los cálculos previos a la evaluación se tienen una serie de fórmulas
( )
𝑅𝑃 𝑁𝑝 = 𝐺𝑃 = 𝑁𝑏 𝐵𝑡 − 𝐵𝑡𝑜𝑜 − 𝑁𝑃 (𝐵𝑡 − 𝑅𝑠𝑜𝑜 𝐵𝑔𝑔 )
𝐵𝑔𝑔
𝑁𝑃
(1 − )𝐵𝑜(1 − 𝑆𝑤𝑤)
𝑆𝑜 = 𝑁
𝐵𝑜𝑜𝑜
𝑘 𝜇 𝐵
𝑅 = 𝑅𝑆 + 𝑘𝑟𝑔𝑔 𝜇 𝑜 𝐵𝑜
𝑟𝑜 𝑔𝑔 𝑔𝑔
𝑆𝑜 = (1 − 𝑁𝑃)𝐵𝑜(1 − 𝑆𝑤𝑤)
𝐵𝑜𝑜𝑜
CAPÍTULO 2
Visual Basic es una herramienta para el desarrollo de Software que permite programar
College:
S (Symbolic) (Simbólicas)
I (Instruction) (Instrucciones)
C (Code) (Código)
Surge como una alternativa a los códigos existentes, haciéndolo de manera intuitiva y
fácil de desarrollar.
adecuó conforme a las solicitudes, ampliando las capacidades de código, soporte para
diseño, configuraciones para el trabajo con redes, capacidad de manejo de datos. Visual
Basic lanzó su última actualización en el año 2008, posteriormente modificó las bases
del código y se amplió a más posibilidades dejando obsoleto el antiguo, para esta
nueva etapa el lenguaje fue denominado Visual Basic.NET. Microsoft decidió ampliar
Studio.
ActiveX.
Deployment.
configuración para el desarrollo del programa que se presenta en la tesis; lo que otros
El usuario cuenta con una interfaz que le permite crear el diseño con base a la
necesidad del programa, en el cual puede poner botones, celdas para introducir
cosas más, las cuales son de ayuda para que el manejo del programa sea acorde
con el que lo solicita. Está permitido modificar las dimensiones de todos los
sea lento.
Visual Basic es un código de programación diseñado para ser sencillo y eficaz, el cual
está orientado a eventos u objetos, por lo cual no se activa hasta que se llama como
respuesta a un evento, como lo es selección de una opción, clic en un botón, entre otros
eventos, el programa no se acciona hasta que se le da una tarea que realizar; la única
condición que puedes determinar son acciones de inicio, que cargan junto con el
programa.
La plataforma en la que esta creado el programa es una interfaz gráfica que permite al
botones, cajas de texto, pestañas, tablas entre muchas otras funciones, al diseñar el
CAPÍTULO 3
EJEMPLOS PROGRAMADOS
La E.B.M. se desarrolla dentro del código de programación el cual toma los valores
necesarios ingresados por el usuario para hacer el cálculo de las distintas variables; este
3.1.1. Ejemplo.
Un yacimiento que produce por arriba de la presión de saturación tuvo una presión
inicial de 5,000 psi, a esta presión el factor de volumen del aceite fue de 1.510 bl/bl.
100,000 bls de aceite con un factor de volumen de aceite de 1.520 bl/bl. La saturación
de agua es de 25%, la compresibilidad del agua de 3.2x10-06 psi-1, la porosidad del 16%
17x10-
06
psi-1.
Determinar:
Datos:
Np 1.00E+05 MMB
Sw 0.25
Cw 3.20E-06 PSI-1
Co 1.70E-05 PSI-1
Cf 4.00E-06 PSI-1
P.act.yac. 4600.000 PSI
PIi 5000.000 PSI
Boi 1.52 BL/BL
Bo 1.531 BL/BL
Rsi 142.50 m3/m3 800.08 ft3/ft3
Tabla 3.1.1.1 – Datos para el ejercicio de E.B.M. para Yacimientos de Aceite Bajo Saturado.
Obtener la Ce.
𝐶𝑜𝑆𝑜 + 𝐶𝑤𝑆𝑤 + 𝐶𝑓𝑓
𝐶𝑒 = = 𝟐𝟐. 𝟑𝟑𝟑𝟑𝗑𝟑𝟑𝟑𝟑−𝟓𝟓 𝑝𝑠𝒑𝒑−𝟑𝟑
1 − 𝑆𝑤
𝑁𝑝
𝑁= 𝐵𝑜 = 𝟑𝟑𝟑𝟑. 𝟕𝟕 𝑚𝑚𝑏𝑙𝑠
𝐶𝑒∆𝑃 𝐵𝑜𝑓𝑓
en el aceite.
Calculando Np.
𝐵𝑜𝑓𝑓
𝑁𝑝 = 𝑁 𝐶𝑒∆𝑃 = 𝟑𝟑𝟑𝟑𝟕𝟕, 𝟓𝟓𝟓𝟓𝟏𝟏 𝑏𝑙𝑠
𝐵𝑜
3.1.2. Problemática.
modificando los datos a conveniencia, sin tener que hacer paso por paso; de esta
ocupará dentro de la interfaz, estos valores serán procesados por el programa para
3.2.1. Ejemplo.
Tabla 3.2.1.1 – Datos para el ejercicio de E.B.M. para Yacimientos de Aceite Saturado.
Determinar:
Bt 1.6176 bbl/bbl
𝑧𝑇
𝐵𝑔𝒑𝒑 = 0.02827
𝑃 → 𝐹𝑎𝑐𝑡𝑜𝑟 𝑑𝑒 𝑉𝑜𝑙𝑢𝑚𝑒𝑛 𝑑𝑒 𝐺𝑎𝑠
Bgi 1.11E-03 bbl/ft3
𝐺𝑝
𝘙𝑝 =
𝑁𝑝 → 𝑅𝑒𝑙. 𝐺𝑎𝑠 𝑎𝑐𝑒𝑓𝑓𝑡𝑒 𝑎𝑐𝑢𝑚𝑢𝑙𝑎𝑑𝑎
Rp 989.18 ft3/bl
Índices de Empuje
𝑁(𝐵𝑡 − 𝐵𝑡𝑓𝑓)
𝐷𝐷𝐼 (𝐸𝑚𝑝𝑢𝐸𝐸𝑒 𝑝𝑜𝑟 𝑎𝑔𝑜𝑡𝑎𝑚𝑓𝑓𝑒𝑛𝑡𝑜 𝑛𝑎𝑡𝑢𝑟𝑎𝑙) =
𝐴
𝐵𝑔 − 𝐵𝑔𝑓𝑓
𝑁𝑚𝐵𝑡𝑓𝑓 ( )
𝑆𝐷𝐼 (𝐸𝑚𝑝𝑢𝐸𝐸𝑒 𝑝𝑜𝑟 𝑠𝑒𝑔𝑟𝑒𝑔𝑎𝑐𝑓𝑓ó𝑛) = 𝐵𝑔𝑓𝑓
𝐴
𝑊𝑊𝑒 − 𝑊𝑊𝑝𝐵𝑤
𝑾𝑾𝐷𝐼 (𝐸𝑚𝑝𝑢𝐸𝐸𝑒 ℎ𝑓𝑓𝑑𝑟𝑎𝑢𝑙𝑓𝑓𝑐𝑜 ) =
𝐴
𝐶𝑤𝑆𝑤 + 𝐶𝑓𝑓
𝑁𝐵𝑜𝑓𝑓 (1 + 𝑚 ) ( 1 − 𝑆𝑤 ) ∆𝑃
𝐸𝐷𝐼 (𝐸𝑚𝑝𝑢𝐸𝐸𝑒 𝑝𝑜𝑟 𝑒𝑥𝑝𝑎𝑛𝑠𝑓𝑓𝑜𝑛 𝑟𝑜𝑐𝑎 − 𝑓𝑓𝑙𝑢𝑓𝑓𝑑𝑜 ) =
𝐴
A 2.90E+07
DDI 75%
SDI 19%
WDI 5%
EDI 1%
Fro 18.33%
𝐺𝑝
𝐹𝑟𝑔 =
𝐺 → 𝐹𝑎𝑐𝑡𝑜𝑟 𝑑𝑒 𝑟𝑒𝑐𝑢𝑝𝑒𝑟𝑎𝑐𝒑𝒑ó𝑛 𝑑𝑒𝑙 𝐺𝑎𝑠
Frg 29.87%
3.2.2. Problemática.
fácil aplicación, solo algunas fórmulas conllevan que su aplicación tenga que ser
(N) y los índices de empuje, implica realizar varias operaciones por pasos para
Dentro del programa se generó un lenguaje, que permite que la operación de las
volúmenes de gas y aceite, se pueden modificar los valores de una manera rápida
La E.B.M. aplicada por el método de Tracy genera iteraciones hasta tener solo el 1% de
error al comparar RGp Calculada vs RGp Estimada; el programa hace iteraciones hasta
sustituye en la RGp Estimada, desarrolla una vez más los cálculos obteniendo el
3.3.1. Ejemplo.
N 15 mmbls
Tabla 3.3.1.1 – Datos para el Ejercicio de E.B.M. por el Método de Tracy.
Pi 435 psi Z 2.5469
Pb 4350 psi Y 352.2735
Swi 30% % X 1.8797
PSI Bo Bg Rs RGp* Den Φo Φg
P* 4350 psi µod 74.8110
4350 1.43 0.00069 840
RGp* 840
4150 1.42 0.00071 820 840.0000 0.0042 199.4762 0.1690
Np* 0
3950
Gp* 0 1.395 0.00074 770 820.2099 0.0168 49.1190 0.0440
3750
T 90 1.38 °F 0.00078 730 779.8049 0.0358 22.6425 0.0218
3550 24 1.36
°API 0.00081 680 760.9700 0.0596 13.5772 0.0136
3350 0.023 1.345 cp
µg 0.00084 640 774.2118 0.083 9.7277 0.0101
Tabla 3.3.1.2 – Datos obtenidos y procesados mediante el procedimiento del método de Tracy.
Seleccionar una presión (P) por debajo de la presión en donde se tiene los
𝘙𝐺𝑃(𝑒𝑠𝑡) = 𝟖𝟖𝟐𝟐𝟑𝟑
𝑅𝐺𝑃∗ + 𝑅𝐺𝑃(𝑒𝑠𝑡)
𝘙𝐺𝑃(𝑝𝑟𝑜𝑚) =
= 𝟖𝟖𝟑𝟑𝟑𝟑
2
Calcular el incremento de presión de petróleo acumulado (∆𝑁𝑝).
1 − (𝑁𝑝 ∗ ∅𝑜 + 𝐺𝑝 ∗ ∅𝑔)
∆𝑁𝑝 = ∅𝑜 + ∅𝑔 ∗ 𝑅𝐺𝑃(𝑝𝑟𝑜𝑚) = 𝟑𝟑. 𝟑𝟑𝟑𝟑𝟐𝟐𝟑𝟑
𝑆𝑜4
Calcular la viscosidad del aceite vivo (µob).
RGP (calc) y se establece como nueva RGP (est) se procede a calcular nuevamente
∆𝑁𝑝 𝑦 𝑁𝑝.
Repetir todos los pasos para la siguiente presión así hasta concluir con todas,
tomando en cuenta:
𝑃∗ = 𝑃
(𝑅𝐺𝑃)∗ = 𝑅𝐺𝑃
𝐺𝑝∗ = 𝐺𝑝
𝑁𝑝∗ = 𝑁𝑝
3.3.2. Problemática.
indicado tienes que hacer iteraciones hasta encontrar el valor correcto, esto
quiere decir que para llegar al resultado correcto se pueden hace varias
iteraciones; así mismo se tienen que utilizar valores ya calculados para seguir con
el procedimiento.
error permitido.
necesarios para saber la relación de volumen con respecto a presiones conocidas; esta
proporcionadas por el usuario, son procesadas por la interfaz y manda la evaluación con
3.4.1. Ejemplo.
factor de recuperación.
ϕ 22%
Swi 23%
Sgr 34%
BgiPI 0.0053 ft3/sct @ 3250 psi
Bg 0.0067 ft3/sct @ 2500 psi
BgPA 0.0362 ft3/sct @ 5000 psi
A 150 Acres
h 40 ft
𝐴 ∗ ℎ ∗ ϕ ∗ (1 − 𝑆𝑤𝑓𝑓)
𝐺= 𝐵𝑔𝑓𝑓
𝐺𝑝 = 43560 ∗ 𝐴 ∗ ℎ ∗ 𝜙𝜙 ∗ (1 − 𝑆𝑤𝑓𝑓) ∗ ( 1
1 − )
𝐵𝑔
𝐵𝑔𝑓𝑓
𝐺𝑝
𝐹𝑟𝑔 =
𝐺
Tabla 3.4.1.2 – Resultados del Cálculo de Volumen Original de Gas y Factor de Recuperación.
𝐺𝑝 = 43560 ∗ 𝐴 ∗ ℎ ∗ 𝜙𝜙 ∗ (1 − 𝑆𝑤𝑓𝑓) ∗ ( 1
1 − )
𝐵𝑔𝑃𝐼
𝐵𝑔𝑓𝑓
𝐺𝑝 = 43560 ∗ 𝐴 ∗ ℎ ∗ 𝜙𝜙 ∗ (1 − 𝑆𝑤𝑓𝑓) ∗ ( 1
1 − )
𝐵𝑔
𝐵𝑔𝑓𝑓
𝐺𝑝 = 43560 ∗ 𝐴 ∗ ℎ ∗ 𝜙𝜙 ∗ (1 − 𝑆𝑤𝑓𝑓) ∗ ( 1
1 − )
𝐵𝑔𝑃𝐴
𝐵𝑔𝑓𝑓
3.4.2. Problemática.
La creación del código para este método de evaluación contempla una serie de
hacer iteraciones para nuevos cálculos es más sencillo ya que no se tiene que
borrar todos los datos y hacer cálculo por cálculo, así de esta manera se hace
empuje de gas disuelto liberado solicita datos iniciales para el cálculo dentro de la
interfaz, estos datos son analizados y procesados para los cálculos requeridos por el
usuario; este método implica una infinidad de iteraciones hasta obtener Np.
3.5.1. Ejemplo.
Valores de Np y valores para presión de 160 kg/cm2 para un yacimiento con los
siguientes datos.
P1 190 Kg/cm2
P2 160 Kg/cm2 Valores de Grafica
Pi=Pb 200 Kg/cm2 Bo 1.431
Sw 20.00% Rs 116.4
Boi 1.44 m3/m3 Bg 6.90E-03
Rsi 120 m3/m3 µo/µg 68.5
Bgi 6.50E-03 m3/m3
Np .017
Calcular Gp.
Calcular la
So.
(1 − 𝑁𝑝) ∗ 𝐵𝑜(1 − 𝑆𝑤)
𝑆𝑜 = 𝐵𝑜𝑓𝑓 =. 𝟕𝟕𝟖𝟖𝟑𝟑𝟓𝟓
Calcular SL.
𝑆𝐿 = 𝑆𝑜 + 𝑆𝑤 =. 𝟑𝟑𝟖𝟖𝟑𝟑𝟓𝟓
𝑆𝑜
𝑆𝑜 ∗= ) =. 𝟑𝟑𝟕𝟕𝟏𝟏𝟖𝟖𝟕𝟕𝟓𝟓
1 − 𝑆𝑤
Calcular krg/kro (del método de Tracy).
𝑆𝑜 ∗4
𝟏𝟏𝟖𝟖𝟑𝟑𝟓𝟓𝗑𝟑𝟑𝟑𝟑
Calcular Rs (inst).
𝑘𝑟𝑔 𝜇𝑜𝐵𝑜
𝘙𝑠 𝒑𝒑𝑛𝑠𝑡 = 𝑅𝑠 + ( ∗ ) = 𝟑𝟑𝟑𝟑𝟏𝟏. 𝟖𝟖𝟖𝟖𝟑𝟑𝟑𝟑
𝑘𝑟𝑜 𝜇𝑔𝐵𝑔
Calcular Rs (prom).
𝑅1 + 𝑅2
𝘙𝑠𝑝𝑟𝑜𝑚 = = 𝟑𝟑𝟑𝟑𝟖𝟖. 𝟑𝟑𝟑𝟑𝟑𝟑𝟏𝟏 𝑚𝟑𝟑/𝑚𝟑𝟑
2
Calcular ∆𝐺𝑝.
*El error debe de ser menor al 5% y en este caso se tiene un error de 68.04%.
El valor de ∆𝑁𝑝 = 0.017, no es correcto, así que se debe de suponer otro valor y
3.5.2. Problemática.
medio de una ecuación para tener un valor cercano al resultado, de esta manera lo
margen de error del 1%, esto permite tener la mayor efectividad posible, el
bucles en el programa.
CAPÍTULO 4
COMO USARLO
cajas, cada una de ellas deben contener ordenes exactas para tener una continuidad en
tener una mejor visión de lo que se va a desarrollar, de igual manera se establecen las
fórmulas y condiciones que se tienen que anexar sobre el código, ya que cada
operación tiene que ir complementada de otras más y algunas de ellas establecen que
ecuación.
Software, está diseñado por pestañas en la cual cada una incluye un método
diferente de cálculo; por lo tanto, la secuencia tiene que ser separada para que
por el método deseado. Para facilitar la lectura de los procesos del programa se
diseñó un diagrama sencillo, donde se explica los pasos más importantes como
manera más detallada los procesos del código por los cuales tendrá que pasar
Inicio:
contiene los diferentes métodos por los que puede ser desarrollado el análisis
usuario.
nomenclatura, la cual debe de ser escrita tal cual como lo solicita el programa,
El Software carga todos los valores dentro de cada ventana, siendo cada
Entrada:
los cuales pueden ser borrados y el usuario establezca sus propios valores con
iteraciones.
Proceso:
algunas fórmulas deben de ser desarrolladas paso a paso, para que el conjunto
Salida:
Tracy, es el único que necesita reinicio del programa para poder volver a
usarlo.
Final:
será borrado.
Todo programa debe de tener un manual de usuario para su uso correcto, en este caso
se presenta una guía rápida en este subcapítulo, en la cual se puede ver el uso del
programa, paso a paso, de igual manera se busca dar solución a los posibles errores.
Tabla 4.2.1.1 – Valores solicitados y Resultados generados para la “E.B.M. Bajo Saturado”.
Bti= bl/bl
RRGD
PSI fio So µo
Bo fig Sg (RGp)calc
Rs (RGp)prom Krg/kro Gp
Den Np µob
Bt So R dGp
Gp krg/kro R prom Gp
%error
Esta sección del programa se encarga de hacer conversión de unidades, solo desarrolla
manera ordenada y correcta con base en lo que se necesite, esto dependerá del
manejo adecuado por el usuario y por ende, se deben de seguir los pasos ya
Primer Paso:
Se introducen los valores solicitados por la zona marcada en azul, véase figura
subcapítulo anterior.
Segundo Paso:
Dar clic en el botón “Calcular” el cual hará que el programa funcione para la
Tercer Paso:
Revisar los resultados marcados por las casillas verdes; esto será de ayuda para
Primer Paso:
Se introducen los valores solicitados por la zona marcada en azul, véase figura
subcapítulo anterior.
Segundo Paso:
Dar clic en el botón “Calcular” el cual hará que el programa funcione para la
Tercer Paso:
Revisar los resultados marcados por las casillas verdes; esto será de ayuda para
Primer Paso:
Se introducen los valores solicitados por la zona marcada en azul, véase figura
Dar clic en el botón “Calcular Tracy” el cual hará que el programa funcione
Tercer Paso:
Revisar los resultados marcados por la casilla verde; los resultados son
comportamiento de yacimientos.
Primer Paso:
Se introducen los valores solicitados por la zona marcada en azul, véase figura
subcapítulo anterior.
Segundo Paso:
Dar clic en el botón “Calcular” el cual hará que el programa funcione para un
Tercer Paso:
Revisar los resultados marcados por las casillas verdes; esto será de ayuda para
Primer Paso:
Se introducen los valores solicitados por la zona marcada en azul, véase figura
pueden observar al dar clic sobre los botones Bo, Rs, Bg y µo/µg.
Segundo Paso:
Dar clic en el botón “Calcular” el cual hará que el programa funcione para el
Tercer Paso:
Revisar los resultados marcados por las casillas verdes; este método genera
Se soluciona introduciendo algún valor dentro de cada casilla, sin excepción, los
El Método de Tracy por su complejidad, tiene que trabajar con un número de filas
mismo código se indicó que si no cuenta con algún valor, se asignen 5 filas de
Corregir (RGP)est:
Tracy considero que para tener un valor de (RGp)calc correcto debía de hacer
iteraciones para tener el mínimo error en el cálculo que en este caso es el 1%, este
Tracy”, ya que al ocupar este método se llenan los valores de la tabla, la tabla
contiene un bucle que, si se vuelve a usar, ocuparía los nuevos valores de las
casillas, pero aun conservaría los valores anteriores de la tabla y eso genera un
error de cálculo. Para eliminar ese error es necesario reiniciar el programa dando
Np Encontrada:
CONCLUSIONES Y RECOMENDACIONES
manera más detallada predicciones futuras del mismo; este programa está
casos reales, manejando valores de pozos, al ser programados se hace más fácil
su aplicación.
El diseñar un programa con este tipo de métodos no implica que pueda tener
una gran apertura para anexar datos infinitos, si no, como todo entorno, tiene
resultados, así como la evaluación futura, pero el factor humano casi siempre
Variables.
Dim npb, gpb, wpb, web, swb, cwb, cob, cfb, pab, tyb, bwb, pib, boib, bob, rsib, mb
As Single
Código.
'===========================================================
swb = Text5.Text
cwb = Text6.Text
cob = Text7.Text
cfb = Text8.Text
pab = Text9.Text
tyb = Text10.Text
bwb = Text11.Text
pib = Text12.Text
boib = Text13.Text
bob = Text14.Text
rsib = Text15.Text
mb = Text16.Text
'===========================================================
sob = 1 - swb
nboib = nb * boib
'===========================================================
gb = nb * rsib
'===========================================================
frob = npb / nb
End Sub
Variables.
Dim nps, gps, ts, zs, rsis, rss, bgs, bos, wes, bws, bois, ms, wps, cws, cfs, sws, pis,
Dim bts, bgis, rps, ns, nbois, gs, aas, ddis, sdis, wdis, edis, fros2, frgs2, roas, rras,
Código.
nps = Text37.Text
gps = Text38.Text
ts = Text39.Text
zs = Text40.Text
rsis = Text41.Text
rss = Text42.Text
bgs = Text43.Text
bos = Text44.Text
wes = Text45.Text
bws = Text46.Text
bois = Text47.Text
ms = Text48.Text
wps = Text49.Text
cws = Text50.Text
cfs = Text51.Text
sws = Text52.Text
pis = Text53.Text
pas = Text54.Text
fros = Text55.Text
frgs = Text56.Text
btis = Text97(4).Text
'==========================================================
'Haciendo cálculos
'ns
s1 = (bts - btis)
ns = (nps * (bts + (rps - rsis) * bgs) - (wes - wps * bws)) / (s1 + s2 + (s3 * s4))
'===========================================================
nbois = ns * bois
gs = ns * rsis
edis = (ns * bois * (1 + ms) * ((cws * sws + cfs) / (1 - sws)) * (pis - pas)) / aas
fros2 = nps / ns
frgs2 = gps / gs
'Reservas
roas = ns * fros2
rogds = gs * frgs2
'===========================================================
End Sub
Variables.
Dim nt%, Pit, Pbt, Swit, Pdt, RGPdt, Npdt, Gpdt, Tt, APIt, ugt, zt, yt, xt, uodt, i, Nnt
As Single
Dim psit, Bot, Bgt, Rst, RGPdat%, Dent, fiot, figt, RGPet, RGPpt, dNPt, Npt,
Npdat, Sot, Sgt, Sodt, krgt, uobt, uot, RGPct, Gpt, Gpdat, ert As Single
Código.
'Método de Tracy
'Comprobar #Filas
Text36.Text = 5
End If
'===========================================================
APIt = Text33.Text
Tt = Text32.Text
yt = 10 ^ zt
xt = yt * (Tt ^ -1.163)
uodt = Text35.Text
For i = 1 To 5
Next
'===========================================================
'Nn
Nnt = Text36.Text
'===========================================================
Boit = msf1.TextMatrix(1, 1)
Bgit = msf1.TextMatrix(1, 2)
Rsit = msf1.TextMatrix(1, 3)
'===========================================================
'N - Swi - ug
nt = Text24.Text 'N
'===========================================================
For i = 1 To Nnt
'Calculando Gp
msf1.TextMatrix(i + 1, 4) = RGPdat
'===========================================================
'Calculando Den
Bot = msf1.TextMatrix(i + 1, 1)
Bgt = msf1.TextMatrix(i + 1, 2)
Rst = msf1.TextMatrix(i + 1, 3)
'===========================================================
'Calculando fio
'===========================================================
'Calculando fig
'===========================================================
'Calculando RGPprom
RGPet = msf1.TextMatrix(i + 1, 8)
'===========================================================
'Calculando dNp
'===========================================================
'Calculando Np
'===========================================================
'Calculando So
'===========================================================
'Calculando Sg
'===========================================================
'Calculando So*
'===========================================================
'Calculando krg/kro
'===========================================================
'Calculando uob
uobt = (10.715 * ((Rst + 100) ^ -0.515)) * (uodt ^ (5.44 * ((Rst + 150) ^ -0.338)))
'===========================================================
'Calculando RGPcalc
'===========================================================
'Calculando %error
End If
(RGP)est")
RGPet = RGPct
'===============
RGPet = msf1.TextMatrix(i + 1, 8)
'===============
'===============
End If
Next
ocuparlo")
'===========================================================
End Sub
Variables.
Dim fiy, swiy, sgry, bgiy, bgiyp, bgy, bgyp, bgy2, bgy2p, area, altura As Single
Código.
'===========================================================
bgiy = Text97(8).Text
bgiyp = Text97(13).Text
bgy = Text97(9).Text
bgyp = Text97(14).Text
bgy2 = Text97(10).Text
bgy2p = Text97(15).Text
area = Text97(11).Text
altura = Text97(12).Text
'===========================================================
'===========================================================
'===========================================================
frgy = gpy / gy
'===========================================================
frgy2 = gpy2 / gy
'===========================================================
gpy3 = 43560 * area * altura * fiy * (((1 - swiy) / bgiy) - (sgry / bgy))
frgy3 = gpy3 / gy
'===========================================================
frgy4 = gpy4 / gy
'===========================================================
End Sub
Variables.
Dim p1tt, p2tt, pitt, swtt, boitt, rsitt, bgitt, nptt As Single
Dim bttt, gptt, sott, sostt, krgtt, rtt, rptt, dgptt, gpntt As Single
Código.
For i = 1 To 1000000
'===========================================================
p1tt = Text97(25).Text
p2tt = Text97(26).Text
pitt = Text97(27).Text
boitt = Text97(29).Text
rsitt = Text97(30).Text
bgitt = Text97(31).Text
nptt = Text97(32).Text
bott = Text97(33).Text
rstt = Text97(34).Text
bgtt = Text97(35).Text
uogtt = Text97(36).Text
'Resultados
'Calculando GP nueva
gpntt = dgptt
'===========================================================
'Corregir Gp
gpntt = dgptt
End If
'Calculos anteriores
'===========================================================
gpntt = dgptt
Text97(32).Text = nptt
End If
Next
'===========================================================
End If
Next
End Sub
'===========================================================
End Sub
'===========================================================
End Sub
'===========================================================
End Sub
'===========================================================
End Sub
Nomenclatura
𝑚3𝑜 @ 𝑐. 𝑦.
Bo Factor de volumen del aceite (Bo>1)
𝑚3𝑜 @ 𝑐. 𝑠.
3
Factor de volumen de las dos fases 𝑜 + 𝑔 @ 𝑐. 𝑦.
Bt
𝑚 𝑚3𝑜 @ 𝑐. 𝑠.
𝑚3𝑤 @ 𝑐. 𝑦.
Bw Factor de volumen del agua
𝑚3𝑤 @ 𝑐. 𝑠.
C Constante
c Compresibilidad
cf Compresibilidad de la formación
D Profundidad m
E Expansión m3
Ev Eficiencia volumétrica
h Espesor neto m
k Permeabilidad absoluta
K Constante
m Masa gr
de aceite
m3/ m3
Relación del volumen de poros de la capa de gas
tiempo
M Peso Molecular
n Número de pozos
P Presión
kg/cm2
Pb Presión de burbujeo o saturación
t Tiempo días
tD Tiempo adimensional
T Temperatura °C
Tc Temperatura crítica °k
TR Temperatura reducida
V Volumen
Vp Volumen de poros
Vs Volumen de sólidos
δ Densidad relativa
ϕ Porosidad m3p/m3r
µ Viscosidad Poises
ʎ Movilidad darcys/poises
ρ Densidad gr/cm3
Subíndices
a Atmosférica; aire
b Burbujeo
c Crítica, connata
d Rocío; disuelto
f Fluidos; formación
g Gas
l Lavado, libre
m Segregación
o Aceite
r Reducida; residual
t Total
w Agua
sc Condiciones estándar
y Yacimiento
z Zona
Constantes
R = 82.05 (atm-cm3)/(°k*mol-gr)
R = 10.73 (lb/pg2-ft3)/(°R*mol-lb)
Conversiones
Longitud Volumen
1 pg = 2.54 cm 1 bl = 158.987 lt
Presión 1 bl = 42 gal
Temperatura 1 kg = 2.2046 lb
°F = 1.8°C + 32 Densidad
ÍNDICE DE TABLAS
Tabla 3.1.1.1 – Datos para el ejercicio de E.B.M. para Yacimientos de Aceite Bajo
Saturado….....................................................................................................................36
ÍNDICE DE FIGURAS
Referencias Bibliográficas
2. Hobson, G.D., y Mrosovsky, l.: "Material Balance Above the Bubble Point".
3. Schilthuis, R.J.: "Active Oil and Reservoir Energy". Trans. Al ME. 1936.
4. Katz, D.L.: "Methods of Estimating Oil and Gas Reserves", Trans. AIME. 1936.
5. Pirson, S.J.: "Oil Reservoir Engineering", 2a. ed., McGraw-Hill Book Co., New
York, 1958.
6. Muskat, M.: "Physical Principles of Oil Production". McGraw-Hill Book Co., 1949.
8. Tracy, G.W.: ''Simplified Form of the Material Balance Equations”• Trans. AIME
1955.
9. Schilthuis, R.O.: "Active Oil and Reservoir Energy", Trans. AIME. 1936.
10. Tarner, J.: "How Different Size Gas Caps and Pressure Maintenance Programs
2. Juan José Castañeda León. (2006). Visual Basic Como Debe Ser...!. Biblioteca