Tesis
Tesis
FACULTAD DE INGENIERÍA
TESIS
Que para obtener el título de
Ingeniero Petrolero
PRESENTA
DIRECTOR DE TESIS
A mis padres, Humberto García Cruz y Francisca Guerrero García, por su incondicional apoyo y
ejemplo de vida, gracias por todo lo que me han dado, sin su trabajo y esfuerzo esto no sería
posible.
A mis hermanas Miriam Citlalli y Diana Isabel, todo es mejor si tienes unas inigualables hermanas
con quien compartir. Gracias por su cariño y apoyo.
A Lupita Aguilar, mi corazón, por estar conmigo y siempre brindarme tu apoyo incondicional en
momentos de alegría y tristeza, nunca habrá alguien como tú.
A mi Director de tesis, Dr Néstor Martínez gracias por su apoyo y paciencia y todos los
conocimientos y sabios consejos compartidos a lo largo de muchas clases.
Al Ing. Erick Gallardo por apoyarme y tenerme mucha paciencia, Ing. Oswaldo Espinola, Ing. Juan
Carlos Sabido y al Dr. Iván Guerrero Sarabia, gracias por su apoyo en este trabajo.
A mis viejos amigos y amigas Ossiel, Oliver, Daff, Liz, Hugo, Pamela, Gabriela Ávila, Kenia,
Gabriela Bravo, Dan, Lore, Omar, Carlos, Ale, Rosa y a los muchos nuevos, Kareli, Edgar, Mike,
Fabiola, Fabián, Tere, Piedra y los muchos más que me faltan… Gracias por dejarme conocerlos
y compartir muy buenos momentos con ustedes.
3
CONTENIDO
Contenido
CONTENIDO
Portada ........................................................................................................................................... 1
Agradecimientos ........................................................................................................................... 3
Contenido........................................................................................................................................ I
Introducción.................................................................................................................................. IX
I
CONTENIDO
II
CONTENIDO
III
CONTENIDO
IV
CONTENIDO
Capítulo 5 Aplicación de las hojas de cálculo electrónicas a la ingeniería petrolera ........ 180
V
CONTENIDO
VI
RESUMEN
Resumen
RESUMEN
Este trabajo representa un material de apoyo para los alumnos de ingeniería petrolera. El trabajo
está enfocado a mostrar una alternativa de solución para un problema común durante la carrera,
que es, el programar métodos y procedimientos que representan fenómenos físicos que ocurren
en el yacimiento e instalaciones que se usan en la industria petrolera y que, de no ser
programados, serían complicados de resolver y por lo mismo llevarían mucho tiempo en
solucionarse.
La alternativa propuesta es usar Visual Basic para Aplicaciones (VBA), un complemento que
Excel® tiene integrado y permite aprovechar toda la funcionalidad de las hojas de cálculo junto
con VBA que permite programar procedimientos como se haría en otros lenguajes de
programación.
VII
ABSTRACT
Abstract
ABSTRACT
This work represents a support material for students in petroleum engineering. The work is aimed
to show an alternative solution to a common problem in petroleum engineering, that is program
methods and procedures that represent physical phenomena occurring in reservoirs and facilities
used in petroleum engineering and, if not program them, would very complicated to solve and
therefore would take a long time to resolve.
The alternative approach is to use Visual Basic for Applications (VBA), a supplement that has
integrated Excel® and allows full Functionality of spreadsheets with VBA allows you to program
procedures as you would in other programming languages.
Basic programming concepts are presented in VBA that is a language very similar to Visual Basic
6.0® with common problems in petroleum engineering such as calculating production forecasts and
potential production of oil wells that can be solved by programming in spreadsheets.
VIII
INTRODUCCIÓN
Introducción
INTRODUCCIÓN
El presente trabajo tiene como objetivo ser un material de apoyo para los alumnos de ingeniería
petrolera. El trabajo se enfoca en mostrar como varios de los problemas que se ven a lo largo de
la carrera, pueden ser solucionados mediante su programación en hojas de cálculo, porque los
alumnos están muy familiarizados con su ambiente de trabajo en comparación con otros leguajes
de programación.
El capítulo 1 presenta una introducción a lo que son las hojas de cálculo, su origen y evolución.
El capítulo 2 presenta una guía para poder crear y manejar macros en Excel para automatizar
procesos que resuelven problemas de ingeniería.
En el capítulo 5 se presentan casos prácticos de los métodos presentados en los dos capítulos
anteriores programados en hojas de cálculo y para demostrar que estos problemas entre muchos
otros pueden ser solucionados en las hojas de cálculo que todos los estudiantes tienen a su
disposición.
Es importante señalar que las hojas de cálculo pueden ser aplicadas a todas las áreas de la
ingeniería petrolera, como las áreas de perforación por ejemplo en el cálculo de trayectorias de
pozos direccionales, diseños de pozo, creación de ventanas operativas etc., en el área de
producción y yacimientos algunos ejemplos son los mostrados en este trabajo.
IX
Capítulo 1
ANTECEDENTES
CAPÍTULO 1 ANTECEDENTES
CAPÍTULO 1 Antecedentes
CAPÍTULO I ANTECEDENTES
1.1 Origen de las hojas de cálculo electrónicas
Los programas computarizados de hojas de cálculo parecen haber sido una de las innovaciones
más fundamentales y permanentes en la práctica contable desde principios de la década de los
80.
En la actualidad se conoce muy poco, sobre su verdadero origen, no sólo entre los usuarios, sino
inclusive en círculos académicos de la contabilidad, las ciencias matemáticas, de la información e
ingenieril. Muchas personas creen que esos programas fueron desarrollados inicialmente por
expertos en sistemas computacionales desde finales de la década de los 70. Cuando en realidad
su desarrollo empezó décadas antes. Economistas y contadores académicos la promovieron
mucho antes de que expertos en sistemas computacionales estuviese interesado en las hojas de
cálculo electrónicas.
Una edición posterior del diccionario de Kohler para contadores, se refiere a la hoja de cálculo
como “una hoja de trabajo que proporciona dos formas de análisis o recapitulación de costos u
otros datos contables”, también define a la hoja de cálculo como “una hoja de trabajo que contiene
un análisis de un grupo de cuentas relacionadas, o de clases de cuentas, por ejemplo, las filas
representan débitos, las columnas créditos; las cantidades, si hay alguna, aparecen en una de las
intersecciones”.
En 1970 Pardo y Landaumerecen intentaron patentar los algoritmos con los que suponían
funcionarían las hojas de cálculo electrónicas, la patente no fue aceptada, por ser considerada una
invención puramente matemática.
Dan Bricklin es el inventor aceptado de la hoja de cálculo computarizada. Bricklin contó la historia
de un profesor universitario que hizo una tabla de cálculos en un tablero. Cuando el profesor
2
CAPÍTULO 1 ANTECEDENTES
encontró un error, tuvo que borrar y reescribir una gran cantidad de pasos, impulsando a Bricklin
a pensar que podía replicar el proceso en un ordenador, usando el tablero/hoja de cálculo para ver
los resultados de las fórmulas que usaron en el proceso, su idea se convirtió en VisiCalc la primera
hoja de cálculo electrónica y la aplicación que hizo que la computadora se convirtiera en una
herramienta para los negocios y actualmente para muchas industrias, incluidas las ingenierías.
VisiCalc mostrada en la Figura 1.1 fue la primera aplicación de hoja de cálculo computarizada
disponible en el mercado, su demanda se concentraba principalmente con los entusiastas de los
negocios, ya que fue considerada una herramienta seria de negocios, fue así que se vendieron
más de 700,000 copias en tan solo seis años.
Posteriormente aparecieron otros programas de hojas de cálculo como SuperCalc, Lotus 1-2-3 y
Excel.
VisiCalc Excel 97
(1978) (1997)
3
CAPÍTULO 1 ANTECEDENTES
Excel 95
(1995)
• Multiplan
Multiplan fue el primer programa para hojas de cálculo que Microsoft comercializó en 1982, fue
muy popular en los sistemas CP/M, pero en los sistemas MS-DOS perdió popularidad frente
al Lotus 1-2-3.
• Excel 2
La versión original de Excel para Windows se llamó Excel 2 (en vez de 1) de modo que
correspondería a la versión de Macintosh. Excel 2 apareció por primera vez en 1987, actualmente
está en desuso.
4
CAPÍTULO 1 ANTECEDENTES
• Excel 3
Lanzado a finales de 1990, esta versión cuenta con el lenguaje de macros XLM e igual que la
versión anterior ya no es utilizada.
• Excel 4
Esta versión fue lanzada al mercado a principios de 1992, también utiliza el lenguaje de macros
XLM. Es muy poco utilizada.
• Excel 5
Esta versión salió a principios de 1994. Fue la primera versión en usar VBA, aunque también es
compatible con XML.
• Excel 95
Técnicamente conocido como Excel 7 (no hay Excel 6), esta versión fue lanzada en el verano de
1995, tiene algunas mejoras de VBA y es compatible con el lenguaje XML. Rara vez es utilizada.
• Excel 97
Esta versión fue lanzada en enero de 1997 (también conocido como Excel 8), tiene muchas
mejoras y cuenta con una interfaz de programación de macros VBA. Excel 97 también utiliza un
nuevo formato de archivo (que versiones anteriores de Excel no pueden abrir).
• Excel 2000
Esta versión dio un salto al esquema de cuatro dígitos. Excel 2000 (también conocido como Excel
9) hizo su debut en junio de 1999. Incluye solo unas mejoras desde la perspectiva de un
programador.
• Excel 2002
Esta versión (también conocido como Excel 10 o Excel XP) apareció a finales del 2001. Su principal
característica es la capacidad de recuperar trabajos cuando Excel se bloquea. Aún es utilizada
esta versión.
• Excel 2003
De todas las versiones de Excel, esta es la versión que tiene el menor número de nuevas
características. Fue muy decepcionante para los usuarios de Excel ya que la versión es muy
parecida a la versión de Excel 2002.
• Excel 2007
Excel 2007 marcó el comienzo de una nueva era, quito el viejo menú y la barra de herramientas e
introdujo una nueva barra de opciones. Sin embargo, esta barra de opciones no puede ser
modificada con el uso de VBA. Otra de las mejoras es que tiene un nuevo formato de archivo y
soporte para hojas de trabajo mucho más grandes (más de un millón de filas).
• Excel 2010
Esta versión cuenta con algunas características nuevas, tales como edición de imágenes, tablas
pivote.
5
CAPÍTULO 1 ANTECEDENTES
• Excel 2013
Esta fue la primera versión de Excel que ofrece una interfaz de documento único (SDI), eso
significa que cada libro tiene su propia ventana. Al igual que la versión anterior permite modificar
la cinta de opciones.
• Excel 2016
Excel 2016 versión más reciente, y cuenta con varios gráficos nuevos. Esta versión también está
disponible para teléfonos móviles y en línea, solo que estas versiones no aceptan VBA. Al igual
que la versión anterior permite modificar la cinta de opciones.
La ingeniería petrolera tiene la necesidad de hacer uso de programas de cómputo que faciliten las
tareas cotidianas, y por ello contar con un lenguaje de programación como Visual Basic junto con
el potencial de las hojas de cálculo como Excel, proporciona una herramienta básica para los
profesionales que se desarrollan en el área.
VBA permite manipular toda la aplicación de Excel y brinda una manera más segura y rápida de
realizar actividades y automatizar procedimientos. Algunas de las aplicaciones que se le ha dado
a Excel en esta área son:
En este trabajo las aplicaciones que serán mostradas están orientadas al área de yacimientos y
producción, no obstante, la aplicación de las hojas de cálculo en la ingeniería petrolera es va más
allá de lo mostrado en este trabajo.
6
Capítulo 2
FILOSOFÍA DE USO DE LAS
HOJAS DE CÁLCULO
ELECTRÓNICAS
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Visual Basic para Aplicaciones permite a los usuarios de Excel, entre otras cosas:
8
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
• Crear aplicaciones a gran escala, se pueden crear aplicaciones con una cinta de
opciones personalizada, cuadros de diálogo, ayuda en pantalla entre otras cosas.
Código: Es el que se genera al automatizar instrucciones en VBA se puede crear de dos maneras:
automáticamente mediante la Grabadora de macros y manualmente con un procedimiento en el
editor de Visual Basic.
Usar la grabadora de macros es una opción sencilla, pero limitada, solo puede automatizar
acciones realizadas en Excel como formato de celdas, ordenado de datos, eliminación de datos
etc.
Si lo que se desea es programar acciones específicas por ejemplo una conversión de unidades,
algoritmos de cálculo, llamar a una correlación, interactuar con el usuario, verificar el tipo de datos
que se están trabajando o cualquier operación que haga uso de estructuras de repetición o
estructuras de decisión, la mejor opción es usar el editor de Visual Basic.
Módulo: Estos contienen el código de las macros grabadas, así como los procedimientos y
funciones propias, los módulos se pueden exportar e importar independientemente del libro en el
que se encuentren.
c) Un procedimiento Sub realiza las acciones que estén dentro de las palabras Sub y End
Sub.
d) Un procedimiento Function regresa un valor y pueden ser llamados desde otros
procedimientos.
e) En VBA se manipulan objetos (libros, hojas y celdas) que son los más importantes.
f) Los objetos tienen jerarquías, los libros contienen a las hojas y estas a las celdas.
g) Los objetos del mismo tipo forman colecciones, las hojas forman la colección Worksheets.
h) Podemos hacer referencia a los objetos indicando la jerarquía de estos por ejemplo
Application.Workbooks(“Libro1.xlsx”), se hace referencia al Libro1 de la colección
Workbooks contenida en el objeto Application.
i) Se puede omitir la jerarquía usando el objeto activo.
j) Los objetos tienen propiedades, y estas pueden ser leídas o modificadas.
k) Para hacer referencia a una propiedad es necesario escribir el nombre del objeto y el de la
propiedad separados por un punto, por ejemplo.
Worksheets(“Hoja1”).Range(“A1”).Value.
l) Se pueden asignar valores a las variables, una variable es un elemento que almacena
datos e información.
9
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
m) Los objetos tienen métodos, un método es una acción que Excel realiza sobre un objeto,
por ejemplo, el método ClearContent del objeto Range que elimina el contenido de las
celdas a las que se hace referencia.
n) VBA tiene todas las estructuras como cualquier lenguaje de programación, como variables,
arreglos y estructuras de control.
10
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Grupo XML
• Permite importar y exportar documentos XML.
11
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Barra de menús. La barra de menús de VBE trabaja como cualquier otra barra de menús,
esta contiene comandos que se usan en el editor VBE, también que existen combinaciones
de teclas para poder acceder de manera más rápida a cada uno de estos menús. Se puede
colocar el puntero sobre cualquier menú y se mostrará la combinación de teclas asignada
a este.
Barra de herramientas. Esta barra se encuentra exactamente bajo la barra de menús,
contiene herramientas muy usadas para su fácil acceso.
El explorador de proyectos. En este se puede visualizar un diagrama de árbol que
muestra cada libro abierto en ese momento en Excel, se pueden expandir o contraer
haciendo doble clic en los nombres o seleccionando los iconos y .
Ventana de código. Aquí es donde se escribe el código VBA, todos los objetos en un
proyecto tienen asignada una ventana de código, si se da doble clic en cualquier objeto de
la ventana explorador de proyectos, se pueden ver las diferentes hojas de código que
tienen.
Ventana inmediato. Por primera vez, esta ventana no está visible, si no está visible, se
puede mostrar de siguiente para mostrarla:
Pulsar la combinación de teclas Ctrl + G.
Ir a la barra de menús Ver → Ventana inmediato.
El explorador muestra un nodo de Microsoft Excel Objects este muestra un elemento por cada
objeto que se encuentre en el libro, si el libro contiene macros, también se mostrará un nodo
Módulos en el que se guardan las macros del libro.
12
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Eliminar un módulo
Para eliminar un módulo siga las siguientes
instrucciones:
Figura 2.7 Insertar un nuevo módulo.
Seleccione el módulo que desea remover en
el explorador de proyectos.
De clic derecho → Quitar.
13
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Para exportar un objeto como son módulos y formularios, siga las siguientes instrucciones:
Seleccione el modulo o formulario que desea exportar.
De clic derecho → Exportar archivo…
Seleccione la ubicación y en nombre con el que desea guardar el objeto y seleccione
aceptar.
Los archivos exportados como módulos y formularios tienen extensiones bas y frm como se
muestran en la Figura 2.9.
14
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
15
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
16
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Pestaña Formato del editor (Figura 2.17). Aquí permite editar el color, tipo y tamaño de
la letra para la ventana de código.
Pestaña General (Figura 2.18). Permite mostrar opciones de edición para los controles
que se agreguen a un formulario, como la cuadrícula que ayuda a alinear los controles y
tener una vista más ordenada.
Pestaña Acoplar (Figura 2.19). Ayuda a configurar las ventanas que se muestran en los
márgenes de VBE.
La mayoría de las macros que se escriben en VBA son procedimientos Sub, se puede pensar en
un procedimiento Sub como un comando, ejecuta el comando y algo sucederá dependiendo de lo
que haga el procedimiento Sub.
Para nombrar un procedimiento Sub o Function se deben seguir las siguientes reglas.
Se pueden usar letras, números y algunos signos de puntuación, pero el primer carácter
siempre debe ser una letra.
No se pueden usar espacios o puntos en el nombre.
17
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
1. Sub NombreDeProcedimiento(Argumento1,...)
2. [Instucciones de VBA]
3. End Sub
1. Sub MuestraMensaje()
2. MsgBox "¡Hola!"
3. End Sub
18
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Estas formas de ejecutar una macro se usarán en el capítulo 5, donde se aplica VBA a ejemplos
de ingeniería petrolera.
1. Function NombreDeFuncion()
2. [Instrucciones de VBA]
3. NombreDeFuncion = Resultado
4. End Function
1. Function RaizCuadrada(numero)
2. RaizCuadrada = numero ^ (0.5)
3. End Function
Existe confusión de terminología cuando se hace referencia al código en VBA que son una serie
de órdenes escritas y ejecutadas en Excel, ¿es esto una macro, un procedimiento o un programa?
Microsoft llama macro a los procedimientos desarrollados en VBA.
19
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
El grabador de macros es una herramienta que convierte las acciones realizadas en Excel en
código de VBA. Esta es la forma más fácil de crear una macro. Todo lo que necesitas es activar el
botón Grabar macro, realizar las acciones que quieres que se automaticen y después desactivarlo
cuando hayas finalizado las acciones que quieres grabar, cuando el botón Grabar macro está
activado cada acción que realices (seleccionar una celda, ingresar un número, cambiar el formato
a un rango de celdas) es grabada y trasladada a código VBA.
La mejor manera de aprender a usar las macros, es iniciar el grabador de macros y realizar algunas
acciones para después aprender del código VBA que se genera.
El grabador de macros es una herramienta muy útil, y es bueno tener en cuenta los siguientes
puntos:
Usar el grabador de macros es útil para grabar tareas simples o partes de una macro más
grande.
No todas las acciones que en Excel se realizan pueden ser grabadas.
El grabador de macros no puede grabar acciones que contienen ciclos.
El grabador de macros crea procedimientos Sub, no se pueden crear procedimientos
Function usando el grabador de macros.
Se puede limpiar un poco el código de procedimientos extraños que fueron grabados
accediendo al código de la macro.
El grabador de macros traduce las acciones del mouse y teclado en código VBA, realicemos un
ejemplo. Siga las siguientes instrucciones:
Inicie un libro en blanco en Excel.
Con la pestaña Desarrollador activada, de clic en el icono Visual Basic.
Redimensione las dos ventanas (Excel y Microsoft Visual Basic para aplicaciones) para
que las pueda visualizar el mismo tiempo).
Seleccione una celda y vaya a la ficha Desarrollador, grupo Código y seleccione Grabar
macro, aparecerá un cuadro de diálogo Grabar macro (Figura 2.22), acepte este cuadro.
Después de este ejemplo se muestra a detalle la descripción del cuadro de diálogo.
En la ventana Explorador de proyectos de VBE aparecerá un apartado de Módulos,
seleccione el Módulo1 y maximice la ventana que aparece.
La pantalla deberá ser similar a la mostrada en la Figura 2.20. Puede haber variaciones por la
versión de Excel o la resolución de las pantallas.
20
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
21
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
22
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Aceptar la ventana.
Dar clic a un control. Los controles disponibles en
Excel son se encuentran en la pestaña Desarrollador
→ Controles → Insertar, se mostrarán los controles de
la Figura 2.25. Podemos seleccionar alguno de estos,
existen dos tipos de controles: Controles de formulario
y Controles ActiveX.
23
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Mostremos un ejemplo:
Inicie el grabador de macros.
Seleccione la celda A1 y escriba “Lunes”.
Muévase a la celda B1 y escriba “Martes”, así hasta tener todos los días de la semana.
Seleccione nuevamente la celda A1, y detenga el grabador de macros. La hoja se tiene
que ver como la que se muestra en la Figura 2.27 y el código generado se muestra a
continuación.
Ahora grabemos la misma macro, pero con el icono de Usar referencias relativas activado, se
muestra el código generado por el grabador de macros.
1. Sub Macro2()
2. ActiveCell.FormulaR1C1 = "Lunes"
3. ActiveCell.Offset(0, 1).Range("A1").Select
4. ActiveCell.FormulaR1C1 = "Martes"
5. ActiveCell.Offset(0, 1).Range("A1").Select
6. ActiveCell.FormulaR1C1 = "Miércoles"
7. ActiveCell.Offset(0, 1).Range("A1").Select
8. ActiveCell.FormulaR1C1 = "Jueves"
9. ActiveCell.Offset(0, 1).Range("A1").Select
10. ActiveCell.FormulaR1C1 = "Viernes"
11. ActiveCell.Offset(0, 1).Range("A1").Select
12. ActiveCell.FormulaR1C1 = "Sábado"
13. ActiveCell.Offset(0, 1).Range("A1").Select
14. ActiveCell.FormulaR1C1 = "Domingo"
15. ActiveCell.Offset(0, -6).Range("A1").Select
16. End Sub
24
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Si probamos esta macro, veremos que comenzará a escribir a partir de la celda que se encuentre
seleccionada, esto es una macro con referencias relativas.
Se mostrará una ventana con código como en la Figura 2.28, este es el código de la macro,
encontraras muchas instrucciones que Excel va ejecutando una por una, de arriba hacia abajo.
Más adelante serás capaz de poder entender lo que hace cada línea de código, no desesperes, el
aprendizaje de macros requiere de tiempo imaginación y paciencia.
1. ActiveCell.Font.Bold = True
25
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Si es la primera vez que guarda el libro con macros, y se guarda como comúnmente se hace:
Archivo → Guardar.
Se mostrará el cuadro de
dialogo de Microsoft Excel 2016
en el cual por defecto nos
guardará el libro con una
extensión XLSX (que no está Figura 2.29 Ventana Guardar de Microsoft Excel 2016.
habitada para macros) como se
muestra en la Figura 2.29.
26
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
La configuración de seguridad de las macros permite controlar lo que sucede al abrir un libro que
contiene macros, si se abre un libro que contiene macros, Excel mostrará un mensaje bajo la cinta
de opciones informando que el libro abierto tiene desactivadas las macros como en la Figura 2.33.
Por defecto Excel desactiva todas las macros, si se sabe que el libro es seguro se puede dar clic
en Habilitar contenido y habilitar las macros. Para usar el libro sin habilitar las macros, solo es
necesario hacer clic en la para cerrar la advertencia.
Una vez que aceptas que un libro es seguro, para la próxima vez que se abra, Excel no mostrará
la advertencia de seguridad nuevamente.
Una de las mejores maneras de configurar la seguridad de las macros, es agregar una o más
carpetas como ubicaciones de confianza (trusted locations). Así, todos los libros que se
encuentren guardados en esas carpetas serán abiertos sin las advertencias de seguridad.
Se puede cambiar la configuración de seguridad y agregar una Ubicación de confianza con las
siguientes instrucciones:
Desarrollador → Código → Seguridad de macros
27
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Después de agregar esta ubicación de confianza, todos los libros de Excel que contengan macros
se abrirán con las macros habilitadas.
Al usar VBA el principal objetivo es manipular datos, algunos de estos se almacenan en las celdas
de una hoja de cálculo de Excel, otros de ellos se pueden almacenar en variables que podemos
crear.
Una variable es el nombre que le das a un espacio de memoria en tu computadora y esta es usada
en un programa, es posible nombrar a las variables como deseemos, tratando de que los nombres
de las varíales describan a estas de la mejor manera posible.
Para asignar un valor a una variable usamos el signo de igual “=”, a continuación, se muestran
varios tipos de variables:
1. x = 1
2. Tasa
3. TasaDeclinacion = 0.1
4. Validación = False
5. y = y + 1
6. Usuario = "Luis Pérez"
7. Fecha = #6/25/2016#
8. NuevoNum = ViejoNum * 1.5
28
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Nombres de variables
VBA tiene algunas reglas en cuanto a nombrar variables:
Se pueden usar letras, números y algunos caracteres especiales, pero el primer carácter
debe ser una letra.
VBA no distingue entre mayúsculas y minúsculas.
No se pueden usar espacios, puntos o signos de operación.
No se pueden usar los siguientes caracteres en el nombre de una variable: #, $, %, &, ¡, !.
El nombre no puede exceder los 255 caracteres.
Para que un nombre de una variable sea más fácil de entender se puede usar “-“ o “_” por ejemplo
Nombre-variable o Nombre_variable.
Declarar variables
Cuando se usa una rutina sin declarar variables, VBA las asigna como Variant, que cambia de tipo
de dato dependiendo de las asignaciones que se haga, de igual manera se puede usar para
guardar una cadena de caracteres o para guardar un número, no declararlas reside en que una
variable Variant, ocupe más espacio en la memoria de la computadora.
Una opción que ofrece VBA para obligar al usuario a declarar las variables que usa es: Option
Explicit. Solo con escribir esta instrucción en la parte superior del módulo es suficiente para que
VBA te avise cuando existe una variable que no está declarada.
1. Option Explicit
También se puede activar esta opción desde la ventana opciones como en la Figura 2.16:
29
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
¿Por qué es útil obligar al usuario a usar la instrucción Option Explicit?, imaginemos que se está
usando VBA sin la opción Option Explicit, y en el proceso se usa una variable Compresiblidad
(sin una “i”), pero por algún error se escribe en alguna otra parte del procedimiento
Compresibilidad, VBA la entenderá como una variable diferente y ocasionará un error en nuestro
procedimiento.
Para declarar una variable se usa la palabra Dim, a continuación, se muestran unos ejemplos de
variables declaradas:
1. Dim Nombre As String
2. Dim Inventario As Double
3. Dim Renglon As Long
4. Dim i As Integer
5. Dim Z
Podemos observar que las primeras cuatro variables están declaradas como un tipo específico de
dato, la última no, VBA la entenderá como Variant que puede ser cualquier tipo de dato.
Constantes
Una constante es un dato que nunca cambia dentro de los procedimientos a diferencia de las
30
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Para declarar una constante se hace con la palabra Const como se muestra a continuación:
1. Const pi = 3.1416
2. Const Nombre = "María"
3. Const Gasto As Integer = 100
4. Public Const NombreLibro As String = "Curvas de declinación"
A una constante no se le puede cambiar el valor, si durante algún procedimiento se desea cambiar
el valor de una constante VBA tendrá un error.
Cadenas de caracteres
En VBA el texto se trabaja como cadenas de caracteres, se pueden trabajar dos tipos de cadenas
de caracteres:
Cadenas de caracteres fijas, estas son declaradas con un numero especifico de caracteres.
El número máximo de caracteres que permite una cadena es 65,526.
Cadenas de caracteres variables, este tipo de cadena puede contener más de
2,000,000,000 caracteres.
Cuando se declara una variable del tipo String con la instrucción Dim, se puede especificar el
número máximo de caracteres que contendrá o dejar que el número de caracteres sea dinámico,
dependiendo del número de caracteres que se le asignen a la variable durante el procedimiento,
a continuación, se muestra un ejemplo:
1. Dim CadenaFija As String * 10
2. Dim CadenaDinámica As String
Fechas
Las fechas pueden ser muy útiles dentro de nuestros programas. Para almacenar una fecha se
utiliza el tipo de dato Date, por ejemplo, si se necesita calcular el número de días entre dos fechas
el procedimiento es el siguiente:
1. Sub Dias()
2. Dim Inicio As Date
3. Dim Fin As Date
4. Inicio = #1/1/2016#
5. Fin = Date
6. MsgBox ("Han transcurrido " & Fin - Inicio & " días en este año")
7. End Sub
31
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
En la realidad nunca el valor de x será igual a de x+1. Para VBA y para muchos lenguajes de
programación esto es posible porque lo que VBA realiza primero es incrementar en uno la variable
x y después la asigna a la misma variable “x”, es importante recordar siempre que VBA usa el
signo “=” como un operador no como un signo de igualdad.
2.6.2 Comentarios
Los comentarios son una instrucción diferente en VBA estos son ignorados por Excel y sirven para
ayudar a quien escribe el código a entenderlo, se pueden usar comentarios muy cortos o muy
extensos, de acuerdo a lo que se necesite, es recomendable usar comentarios para que cuando
se desee modificar el código sea más sencillo o te ayude a recordar lo que hacia ese
procedimiento.
En VBA un comentario inicia siempre con un apostrofe (‘). VBA ignorará lo que este después de
este, es posible ingresar comentarios de dos maneras:
Al iniciar una nueva línea de código:
1. Function RaizCuadrada(numero)
2. 'Esta función calcula la raíz cuadrada de la variable "numero"
3. RaizCuadrada = numero ^ (1 / 2)
4. End Function
Existe un caso especial, cuando un apostrofe se encuentra entre comillas, VBA no lo entenderá
como comentario, como se muestra en el siguiente código:
1. Sub MuestraMensaje()
2. MsgBox "¡Hola ' Adios!"
3. End Sub
Cuando se está examinando un código y solo queremos probar una parte de él, lo que se puede
hacer es borrar todo lo demás, pero esto es una pérdida de tiempo, otra opción más viable es
comentar todo lo que no deseamos que se ejecute.
32
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
2.6.3 Operadores
Aritméticos Tabla 2.2 Operadores aritméticos.
Los operadores aritméticos funcionan entre variables
y constantes se muestran en la Tabla 2.2. En el caso Operador Función
del operador “\” por ejemplo si realizamos la + Adición o suma
operación 13\5 el resultado será 2, es decir, solo la - Resta
parte entera y el operador Mod regresará en la misma * Multiplicación
operación Mod(13,5) el número 3, es decir, el residuo / División
de tomar solo la parte entera de la división. ^ Potenciación
\ División entera
Lógicos Mod Residuo de la división entera
Los operadores lógicos se
muestran en la Tabla 2.3, los que Tabla 2.3 Operadores lógicos.
más se usan son: Not, And y Or.
Operador Función
Comparación Not Realiza una negación lógica de una expresión
Los operadores de comparación And Realiza una conjunción de dos expresiones
se muestran en la Tabla 2.4 Estas Or Realiza una disyunción entre dos expresiones
expresiones devuelven dos tipos Xor Realiza una exclusión entre dos expresiones
de respuesta; “True” si la Eqv Realiza una equivalencia entre dos expresiones
comparación se cumple y “False” Imp Realiza una implicación entre dos expresiones
si la comparación no se cumple.
Operador Función
= (Igual) Compara si una expresión es exactamente igual a otra.
<> (Diferente a) Compara si dos expresiones son diferentes.
< (Menor que) Compara si la primera expresión es menor a la segunda expresión.
> (Mayor que) Compara si la primera expresión es mayor a la segunda expresión.
<= (Menor o igual que) Compara si la primera expresión es menor o igual a la segunda
expresión.
>= (Mayor o igual que) Compara si la primera expresión es mayor o igual a la segunda
expresión.
33
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Concatenación
Para concatenar (unir) se usa el carácter “&” se pueden concatenar números o cadenas de
caracteres como se muestra en el siguiente ejemplo donde el código es el siguiente y el resultado
se muestra en la Figura 2.37.
1. Sub Concatenacion()
2. Const A As Integer = 1
3. Const B As Integer = 2
4. Const Nombre As String = "Guadalupe"
5. MsgBox A & B & Nombre
6. End Sub
2.6.4 Arreglos
Figura 2.37 Resultado de concatenación.
Arreglos fijos
En los lenguajes de programación es muy común usar arreglos, un arreglo es un grupo de variables
que comparten el mismo nombre, así cuando queremos saber el valor de una variable en
específico, necesitamos el nombre de la variable y la posición o índice del elemento de ese arreglo,
por ejemplo si tenemos un arreglo de cadenas de caracteres con 7 elementos que corresponden
a los días de la semana y nombramos al arreglo como DiasSemana, nos podemos referir al primer
elemento del arreglo como DiasSemana(1), al segundo como DiasSemana(2) y así
sucesivamente.
El arreglo anterior cuenta con 100 elementos, en el ejemplo siguiente, se define el arreglo de 0 a
100, este arreglo tendrá 101 elementos:
1. Dim Arreglo(0 To 100) As Integer
34
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Arreglos dinámicos
Un arreglo dinámico es aquel que puede cambiar el número de elementos durante algún
procedimiento para esto, al declarar el arreglo, no se tiene que indicar cuantos elementos tendrá,
ya sea un arreglo de una dimensión o multidimensional. A continuación, se ejemplifica la forma de
declarar un arreglo dinámico:
1. Dim Arreglo() As Integer
La instrucción anterior redimensiona el arreglo, pero elimina los elementos que existían antes de
hacer el redimensionamiento, si lo que se quieres es que el arreglo cambie el número de elementos
que contiene, pero sin borrar los elementos anteriores, se puede usar la instrucción Redim
Preserve como lo muestra el ejemplo siguiente:
1. Redim Preserve Arreglo(1 To NumElementos)
Usar la instrucción ElseIf esta se usa cuando se quieren evaluar más de una condición el
siguiente ejemplo ilustra el uso de esta instrucción:
1. Sub Saludar2()
2. If Time < 0.5 Then
3. MsgBox ("Buenos días")
4. ElseIf Time >= 0.5 And Time < 0.75 Then
5. MsgBox ("Buenas tardes")
6. Else
7. MsgBox ("Buenas noches")
35
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
8. End If
9. End Sub
Select Case
Esta estructura de decisión toma una opción dentro de tres o más opciones (también funciona para
dos opciones, que es lo que hace la estructura If-Then). En el siguiente ejemplo se ilustra el
funcionamiento de la estructura Select Case donde dependiendo de la variable Usuario se muestra
un mensaje personalizado:
1. Sub VerificarUsuario()
2. Dim Usuario As String
3. Usuario = InputBox("Escriba su nombre")
4. Select Case Usuario
5. Case "Luis González"
6. MsgBox ("Bienvenido Luis González")
7. Case "Fernanda Martínez"
8. MsgBox ("Bienvenido Fernanda Martínez")
9. Case "José Flores"
10. MsgBox ("Bienvenido José Flores")
11. Case "María Salas"
12. MsgBox ("Bienvenido María Salas")
13. Case Else
14. MsgBox ("Lo siento, usted no tiene acceso a este procedimiento")
15. End Select
16. End Sub
GoTo
Esta instrucción representa la manera más sencilla para cambiar el flujo de un programa, la
instrucción GoTo, transfiere la ejecución del programa a otra instrucción la cual se especifica
mediante una etiqueta. El siguiente ejemplo muestra el uso de la instrucción:
1. Sub VerificarUsuario()
2. Usuario = InputBox("Escriba su nobre")
3. If Nombre <> "Luis González" Then GoTo NombreIncorrecto
4. MsgBox ("Bienvenido Luis")
5. ' ...[ Mas código aquí ]...
6. Exit Sub
7. NombreIncorrecto:
8. MsgBox ("Lo siento, usted no tiene acceso a este precedimiento")
9. End Sub
Este procedimiento usa la instrucción InputBox para obtener el nombre de usuario. Después de
esto toma una decisión si el usuario es diferente a “Luis González” se usará la instrucción GoTo
que nos llevará a la etiqueta NombrerIncorrecto y ejecutará las líneas siguientes, en cambio si el
nombre es igual a “Luis González”, el código se ejecutara normalmente.
Podemos observar que existe una instrucción Exit Sub esta instrucción indica que se tiene que
salir del procedimiento, sin esta instrucción el mensaje después de este se mostraría.
36
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Do While - Loop
Esta estructura realiza una instrucción siempre y cuando la condición establecida sea válida y la
repite hasta que la condición sea falsa.
El siguiente ejemplo usa la estructura Do Loop y realiza una cuenta regresiva del 10 a 1 para
después mostrar el mensaje “¡Hola a todos!”.
1. Sub Hola10()
2. Dim Contador As Integer
3. Contador = 11
4. Do While Contador > 1
5. Contador = Contador - 1
6. MsgBox Contador
7. Loop
8. MsgBox "¡Hola a todos!"
9. End Sub
Do Loop - While
Realiza una vez la instrucción y después pregunta por la sentencia, si esta es verdadera, la repite
hasta que se encuentre con que la sentencia sea falsa.
El ejemplo siguiente realiza una cuenta regresiva del 10 a 1 para después mostrar el mensaje
“¡Hola a todos!”.
1. Sub Hola10()
2. Dim Contador As Integer
3. Contador = 11
4. Do
5. Contador = Contador - 1
6. MsgBox Contador
7. Loop While Contador > 1
8. MsgBox "¡Hola a todos!"
9. End Sub
37
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Do Until - Loop
Esta estructura a diferencia de Do While-Loop realiza una las instrucciones que se encuentren
dentro del ciclo hasta que la sentencia principal sea cierta.
El ejemplo siguiente realiza una cuenta regresiva del 10 a 1 para después mostrar el mensaje
“¡Hola a todos!”.
1. Sub Hola10()
2. Dim Contador As Integer
3. Contador = 11
4. Do Until Contador = 1
5. Contador = Contador - 1
6. MsgBox Contador
7. Loop
8. MsgBox "¡Hola a todos!"
9. End Sub
Do - Loop Until
Esta estructura, realiza la acción y después pregunta por la condición y seguirá realizando las
instrucciones hasta que la instrucción sea verdadera.
El ejemplo siguiente realiza una cuenta regresiva del 10 a 1 para después mostrar el mensaje
“¡Hola a todos!”.
1. Sub Hola10()
2. Dim Contador As Integer
3. Contador = 11
4. Do
5. Contador = Contador - 1
6. MsgBox Contador
7. Loop Until Contador = 1
8. MsgBox "¡Hola a todos!"
9. End Sub
Cuando se necesita moverse a través de una colección de objetos se usa la estructura For Each -
Next. En el siguiente ejemplo se ilustra el uso de esta estructura en el cual se eliminan las hojas
del libro y solo se deja la primera.
1. Sub EliminarHojas()
2. Dim Hoja As Worksheet
3. For Each Hoja In Worksheets
4. If Worksheets.Count = 1 Then Exit For
5. Hoja.Delete
6. Next Hoja
7. End Sub
38
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
El siguiente ejemplo muestra el cambio de formato al tipo de fuente de las celdas seleccionadas:
1. With Selection.Font
2. .Name = “Arial Narrow”
3. .Size = 20
4. .Italic = True
5. .Underline = True
6. End With
39
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Continuación de la instrucción
Cuando se tienen instrucciones o comentarios que no Figura 2.38 Tablero de ajedrez creado
por un procedimiento.
caben en una sola línea, es posible que los escribamos
en varias líneas y VBA lo entenderá como la misma instrucción, o que se necesita es colocar el
carácter “_” al final del renglón y separado por un espacio, con esto podremos continuar la
instrucción en el siguiente renglón, como en el ejemplo siguiente:
1. ' Este procedimiento crea un tablero de ajedrez en la hoja activa _
2. cambiando el ancho de las columnas y renglones además del color del _
3. fondo de las celdas.
Podemos hacer una similitud de estos objetos con los objetos que tienes frente a ti diariamente,
tienes una computadora, una cama, un refrigerador, una mesa, un carro, un lápiz, una libreta etc.,
cada uno de ellos tiene características especiales, como el color el ancho y alto, y tienen diferentes
utilidades, la computadora para trabajar con Excel, la cama para dormir, refrigerador para
conservar alimentos etc.
Cada objeto de Excel tiene sus propiedades y métodos, por ejemplo, una celda es un objeto y tiene
propiedades como su ubicación, el alto de la celda, el color de relleno entre otras, un libro también
es un objeto y tiene métodos como: cuando se abre, cuando se cierra, cuando se agrega una
gráfica etc.
En Excel se trabajará con objetos como workbooks, worksheets y range principalmente, los objetos
40
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
En Excel la aplicación es la que contiene todos los objetos, es como la casa, dentro de la aplicación
de Excel se tienen libros, dentro de los libros hojas, dentro de estas las celdas, estas están en una
estructura jerárquica.
Por ejemplo, si se desea ir a la celda A1 de la Hoja1 del libro de Excel. Podemos usar el siguiente
código:
1. Application.ThisWorkbook.Sheets("Hoja1").Range("A1").Select
2.7.3 Colecciones
Muchos de los objetos de Excel forman colecciones, por ejemplo, una casa está situada en un
vecindario, el vecindario seria la colección de casas.
En un libro, tenemos una colección de hojas que se llama worksheets. Si se quiere referir a un
objeto de una colección, por ejemplo, la hoja 1 de la colección worksheets podemos hacerlo con
la posición en la colección o por el nombre de la hoja como se puede ver a continuación:
1. Worksheets(1).Select
2. Worksheets("Hoja1").Select
2.7.4 Propiedades
Todos los objetos tienen propiedades, y son las características que describen a los objetos, y
determinan como se ven, como se comportan si son visibles o no, en VBA se pueden hacer dos
cosas con las propiedades:
41
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Por ejemplo, las celdas de Excel tienen una propiedad llamada Value, esta propiedad nos dice
que es lo que contiene la celda, si quisiéramos hacer un procedimiento que nos muestre el valor
que contiene una celda, sería como sigue, mostrando el mensaje de la Figura 2.39:
1. Sub MostrarContenido()
2. Contenido = Worksheets("Hoja1").Range("A1").Value
3. MsgBox Contenido
4. End Sub
Este procedimiento Sub cambiará lo que muestra la celda A1 y Figura 2.39 Mensaje que
colocará el número 123. muestra el contenido de una
celda.
Muchos de los objetos de Excel tienen propiedades comunes, aunque no todos, un ejemplo es la
propiedad Visible o la propiedad Name, también hay propiedades que son de solo lectura, es decir
que no podemos cambiarlas mediante un procedimiento.
En el siguiente ejemplo se muestra el método ClearContents del objeto Range y sirve para borrar
lo que contengan las celdas especificadas.
1. Sub Borrar()
2. Range("A1:A10").ClearContents
3. End Sub
Algunos métodos pueden tener uno o más argumentos. Un argumento es un valor que ayuda a
realizar la acción correctamente, en los métodos los argumentos se colocan después del método
y si contiene más de un argumento se separan por una coma.
42
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
De igual manera como para las propiedades, para enlistar los métodos de un objeto se escribe el
nombre del objeto seguido de un punto y se abrirá una lista automática de propiedades y eventos
como la de la Figura 2.40.
Las propiedades se diferencian de los métodos por el ícono que muestran, una propiedad muestra
el ícono y un método el ícono .
2.7.6 Eventos
Este es un tema que es necesario entender claramente. Un objeto puede responder a diferentes
eventos, un evento es básicamente algo que pasa en Excel, por ejemplo, cuando un libro es
abierto, cuando una ventana u hoja se activa o desactiva, cuando se edita el contenido de una
celda, cuando un libro es guardado, cuando una combinación de teclas es presionada, cuando
pasa un lapso de tiempo o cuando un error ocurre.
Podemos hacer que se ejecuten procedimientos cuando un evento ocurre. Excel tiene muchos
eventos, y no todos los objetos responden a todos los eventos, incluso existen objetos que no
responden a ningún evento.
Para acceder a los eventos de un libro y una Hoja es necesario seguir los pasos que se muestran
a continuación:
Ir al Editor de Visual Basic.
En la ventana explorador de proyectos seleccionar
una hoja para el objeto Worksheet o ThisWookbook
para el objeto Workbook.
Hacer clic derecho → Ver código (Figura 2.41).
Para el objeto Worksheet se mostrará la ventana de la Figura 2.41 Ver código de objetos.
Figura 2.43, donde en la parte 2 podemos ver todos los
eventos del objeto:
43
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Ayuda de VBA
La ayuda de VBA muestra la
descripción de cada objeto,
propiedad y método disponible y en
ocasiones muestra un ejemplo de
programación. Esta es una
excelente herramienta para
conocer y obtener ayuda rápida
acerca de VBA.
44
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Listado automático.
Una característica importante y útil de VBE es que muestra automáticamente un listado de las
propiedades y métodos mientras los escribes, este listado se muestra en la Figura 2.45.
Esta característica se
activa al momento de
escribir el nombre del
objeto o colección y
después un punto “.”,
automáticamente se
desplegará esta lista y
con las flechas de
dirección seleccionamos Figura 2.45 Listado automático de propiedades y métodos.
la propiedad deseada,
podemos comenzar a escribir el nombre de la propiedad o método que deseemos y para
seleccionarlo hay que pulsar la tecla Tab.
La función MsgBox puede tener los argumentos Aviso que es el mensaje que se mostrará en la
ventana, Botones que se mostrarán en la ventana, y el Título que tendrá la ventana, la estructura
es como se muestra a continuación:
1. MsgBox Aviso,Botones,Título
2. MsgBox (Aviso,Botones,Título)
El siguiente ejemplo muestra el mensaje “Bienvenido a Excel VBA” con los botones Si, No y
Cancelar y tiene el título “Saludar a usuarios” (Figura 2.46):
1. MsgBox "Bienvenido a Excel VBA", vbYesNoCancel, "Saludar a usuarios"
45
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
El siguiente ejemplo muestra un mensaje “Bienvenido a Excel VBA” con los botones Si y No, tiene
el título “Saludar a usuarios” y además muestra el Icono de información (Figura 2.47).
1. MsgBox "Bienvenido a Excel VBA", 4 + 64, "Saludar a usuarios"
Para obtener una respuesta del usuario la podemos igualar a una variable o usar esa respuesta
directamente.
El siguiente ejemplo muestra un MsgBox donde se pregunta por borrar una celda.
1. Sub Pregunta()
2. Dim Respuesta As Long
3. Respuesta = MsgBox("¿Desea eliminar contenido de la celda?", vbYesNo _
4. + vbQuestion, "Eliminar")
5. Select Case Respuesta
6. Case vbYes
7. ActiveCell.Clear
8. Case vbNo
9. MsgBox "No se eliminó el contenido"
10. End Select
11. End Sub
Los botones e iconos disponibles en un MsgBox son los mostrados en la Tabla 2.5. Las posibles
respuestas se muestran en la Tabla 2.6.
46
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
47
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
8. ValorPorDefecto = 1
9. NumHojas = InputBox(Aviso, Titulo, ValorPorDefecto)
10. If NumHojas = "" Then Exit Sub
11. If IsNumeric(NumHojas) Then
12. If NumHojas > 0 Then Sheets.Add Count:=NumHojas
13. Else
14. MsgBox "Número no aceptado"
15. End If
16. End Sub
Otro tipo de InputBox es el que nos regresa un rango de celdas, pertenece a los métodos del objeto
Application, a continuación, se muestra un ejemplo:
1. Sub ObtenerRango()
2. Dim Rango As Range
3. On Error Resume Next
4. Set Rango = Application.InputBox("Seleccione rango de celdas", Type:=8)
5. If Rango Is Nothing Then Exit Sub
6. MsgBox "El rango seleccionado es " & Rango.Address
7. End Sub
Este procedimiento mostrará la ventana de la Figura 2.51, en esta se puede seleccionar un rango
de celdas y después mostrará un mensaje con las celdas seleccionadas.
48
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
En el ejemplo siguiente se muestra la ventana de la Figura 2.52 y abre el cuadro de dialogo para
abrir cualquier tipo de archivo.
1. Sub NombreArchivo()
2. Dim Nombre As Variant
3. Nombre = Application.GetOpenFilename("All Files (*.*),*.*", 2, "Abrir un archivo”)
4. If Nombre = False Then MsgBox “No se seleccionó archivo”
5. End Sub
2.8.4 GetSaveAsFilename
Este método es similar a GetOpenFileName pero muestra la ventana de guardar, tiene la sintaxis
siguiente:
1. Application.GetSaveAsFilename ([Nombre],[Filtro],[ÍndiceFiltro],[Título])
Donde: Nombre es el nombre por defecto que le coloca como ayuda en donde se escribe el
nombre del archivo; Filtro determina el tipo de extensión del archivo; IndiceFiltro determina cual
extensión será la seleccionada por defecto, y Título es el título que tendrá la ventana.
49
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
50
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
2.9.3 Controles
Cuando se ejecuta un formulario, VBA despliega una ventana flotante con
los controles que se pueden agregar, para agregar controles a un
formulario, usamos el cuadro de herramientas de la Figura 2.57. Si el
cuadro de herramientas no está visible se puede mostrar con las
siguientes instrucciones:
En VBE ir a Ver → Cuadro de herramientas.
En la Tabla 2.7 se muestra una descripción de cada control. Figura 2.57 Cuadro
de herramientas.
Para agregar un control a un formulario se hace lo
siguiente:
Hacer clic en el control que queremos
agregar en el cuadro de herramientas.
Dar clic en el formulario y arrastrar el puntero
para dibujar el control.
51
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Para cambiar o leer el valor de las propiedades es necesario escribir el nombre del objeto seguido
de un punto “.” y el nombre de la propiedad, a continuación, se muestra un ejemplo para cambiar
el color del fondo del formulario:
900. UserForm1.BackColor = vbRed
52
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
En el ejemplo anterior se puede observar la siguiente estructura: el nombre del objeto y el del
evento están separados con el carácter “_”, dentro de los paréntesis se encuentran argumentos
propios del evento que se usan para interpretar los eventos de cada objeto. La forma general de
un evento es la siguiente:
1. Private Sub NombreObjeto_Evento()
[Instrucciones]
End Sub
En la parte 1 de la Figura 2.60 se enlistan Figura 2.60 Ventana código para el control
todos los controles disponibles, y en la CommandButton1.
parte 2 se enlistan los eventos del control
53
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Control CommandButton
Este control es un botón común que se presiona
y realiza una acción, los estos botones pueden
mostrar una imagen como en la Figura 2.63.
Control CheckBox
Un control CheckBox permite hacer una
selección binaria, sí o no, verdadero o falso,
encendido o apagado, en el siguiente ejemplo
(Figura 2.67) se muestra el uso con ayuda de
un botón, al presionar el botón mostrará que
casillas están marcadas. El código se muestra
a continuación:
54
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Control OptionButton
Este control es útil cuando se desea seleccionar una
opción entre varias y se pueden hacer grupos como el
mostrado en la Figura 2.68.
55
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Control Frame
Un objeto frame contiene otros objetos, y es muy útil cuando
un formulario contiene más de un grupo de OptionButtons,
en la Figura 2.70 se muestra el uso del objeto Frame.
56
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Control RefEdit
Este se usa cuando se necesita que el usuario ingrese un
rango de celdas de una hoja de Excel, en la Figura 2.75 se
muestra el uso de este control.
En Excel existen dos tipos de errores: errores de programación y errores en tiempo de ejecución,
estos errores surgen cuando Excel está ejecutando el código que se programó, el siguiente
ejemplo muestra la raíz cuadrada de dos números:
1. Sub Raiz2()
Dim Numero As Double
num = InputBox("Ingrese número")
MsgBox "La raiz es " & Sqr(Numero)
End Sub
En la Figura 2.76 se muestra el resultado de esta macro, aparentemente no podría fallar, pero
esta macro aún no está hecha a prueba de errores.
Ejecutemos la misma macro, pero ingresemos un número negativo, ¡falló!, muestra un error en
tiempo de ejecución (Figura 2.77), calcular la raíz cuadrada de un número no se puede.
57
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Lo que hay que hacer es corregir un poco el código de la siguiente manera para evitar que ocurra
un error:
1. Sub Raiz2()
Dim Numero As Variant
Numero = InputBox("Ingrese número")
If Not IsNumeric(Numero) Then
MsgBox "Debe proporcionar un número"
Exit Sub
End If
If Numero < 0 Then
MsgBox "No puede ingresar números negativos"
Exit Sub
End If
MsgBox "La raiz de " & Numero & " es: " & Sqr(Numero)
End Sub
Para evitar los mensajes de error se puede usar la instrucción On Error, esta instrucción sirve para
que Excel deje pasar los errores y siga con las demás instrucciones. Se puede usar la instrucción
On Error de las siguientes tres formas:
On Error Resume Next, cuando ocurre un error esta instrucción se salta la línea de código
que genero el error y continua en la siguiente:
1. On Error Resume Next
Los errores de programación son muy comunes, y al momento de que ocurre un error es muy
probable que se muestre la ventana de la Figura 2.78.
Podemos dar clic en Depurar y observaremos que VBA nos manda a la línea que está causando
el error (Figura 2.79).
Figura 2.78 Ventana de error. Figura 2.79 VBA muestra la línea que
se está ejecutando con amarillo.
58
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Para Corregir estos errores existen diferentes técnicas, y todas son buenas, depende del estilo de
cada usuario cual elegir:
Examinar el código.
Usar MsgBox para evaluar el código.
Usar la instrucción Print.
Usar las herramientas de depuración de Excel.
Todas las configuraciones listadas anteriormente se hacen desde la ventana Opciones de Excel.
Para acceder a la ventana opciones realice lo siguiente.
59
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Para este ejemplo es necesario que se tengan programadas al menos tres macros, si estas ya se
tienen para crear la pestaña “Mis macros” se hace lo siguiente:
En la ventana Opciones de Excel → Personalizar la
cinta de opciones seleccionamos donde deseemos
insertar la nueva pestaña, en este caso seleccionamos
Insertar en el apartado de pestañas principales y hacemos
clic en Nueva pestaña (Figura 2.83).
Seleccionamos Nueva pestaña (personalizada) en la
lista de la Figura 2.83 y presionamos en Cambiar
nombre, se mostrará la ventana de la Figura 2.84,
escribimos “Mis macros” y presionamos Aceptar.
Figura 2.83 Insertar pestaña
personalizada.
60
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Cambiar la cinta de opciones no es una tarea muy sencilla, para modificarla se necesita escribir
código XML, copiar el archivo XML a la carpeta del libro, editar archivos XML y escribir
procedimientos en VBA para manipular los controles del archivo XML. Todo esto es algo que está
fuera del alcance de este capítulo.
Afortunadamente existe software disponible que permite hacer más fácil la personalización de la
cinta de opciones. Para obtener el software es necesario hacer la descarga e instalarlo, su nombre
es Custom UI Editor For Microsoft Office. Las opciones que se tienen para personalizar la cinta
de opciones en Excel son las mismas que se enlistan en el apartado manualmente.
61
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Ejemplo 1. Para configurar la cinta de opciones como en la Figura 2.87, siga los pasos mostrados:
1. Option Explicit
62
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
El código anterior corresponde al de las macros que queremos agregar a la cinta de opciones,
para este ejemplo solo muestran mensajes con el nombre de la macro.
Guardar el Libro1 con el nombre deseado como Libro de Excel habilitado para macros.
Cerrar el Libro.
Abrir Custom UI Editor For Microsoft Office se mostrará la ventana principal como la de la
Figura 2.88.
1. <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon>
<tabs>
<tab idMso="TabHome" >
<group id="Grupo1" label="Grupo 1" insertAfterMso="GroupEditingExcel" >
<button id="BotonP1" label="Título 1" size="normal" onAction="Macro1"
imageMso="DirectRepliesTo" />
<button id="BotonP2" label="Título 2" size="normal" onAction="Macro2"
63
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
imageMso="AccountMenu" />
<button id="BotonP3" label="Título 3" size="normal" onAction="Macro3"
imageMso="RegionLayoutMenu"/>
<separator id="Separador1" />
<menu id="MenudDeplegable1" label="Mi menú" size="large"
imageMso="TextAlignGallery" >
<button id="BotonP4" label="Título 4" onAction="Macro4"
imageMso="TextAlignGallery" />
<button id="BotonP5" label="Título 5" onAction="Macro5"
imageMso="TextAlignGallery" />
<button id="BotonP6" label="Título 6" onAction="Macro6"
imageMso="TextAlignGallery" />
<button id="BotonP7" label="Título 7" onAction="Macro7"
imageMso="TextAlignGallery" />
<button id="BotonP8" label="Título 8" onAction="Macro8"
imageMso="TextAlignGallery" />
</menu>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
En el código anterior, podemos observar que la estructura es sencilla y podríamos modificarlo para
configurar la cinta de opciones como lo deseemos.
Id. Es el identificador.
Label. Es el título que mostrará el botón.
Size. Es el tamaño del botón.
onAction. Es el nombre de la macro que se ejecutará.
imageMso. Es el nombre de la imagen que se mostrará como icono del botón. Para
encontrar los nombres de estas imágenes podemos buscar en línea Office 2010 Add-In:
Icons Gallery y allí se indican las instrucciones para poder abrir la galería, se mostrará una
imagen como en la Figura 2.91. También es posible colocar iconos personalizados
64
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
65
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
Podemos observar en la Figura 2.90 aparece como icono una imagen, para poder insertarla
podemos hacer lo siguiente.
Ir al menú Insert de Custom UI Editor For Microsoft
Office → Icons…
Seleccionar la imagen en formato png y
seleccionar Aceptar. Se agregará la imagen como
en la Figura 2.92.
Para mostrar esta imagen en el botón que Figura 2.92 Panel de navegación
deseamos cambiamos la instrucción Custom UI Editor For Microsoft
imageMso=NombreImagen” por Office.
image=”NombreImagen”.
Un ejemplo de complemento es Solver, una herramienta de análisis que tiene Excel, aplicado
sobre todo en el mundo empresarial, permite calcular el valor de una celda que depende de
diversos factores o variables donde a la vez existen una serie de restricciones que han de
cumplirse.
Entre las razones por las que es útil crear complementos tenemos las siguientes.
Hacer más difícil el acceso a nuestro código. Cuando se distribuyen macros de Excel como
aplicaciones, los usuarios normales no pueden acceder a las macros de Excel. Esto se
puede hacer con las configuraciones de protección.
Evitar confusión. Si se crean aplicaciones como complementos los usuarios no tendrán la
confusión de tener que trabajar con código, en un complemento esto no es visible.
Proveer fácil acceso a las herramientas. Está claro que si deseamos ejecutar una macro
es más fácil presionar un botón en la cinta de opciones que ir al menú de macros y buscar
66
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
67
CAPÍTULO 2 FILOSOFÍA DE USO DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS
68
Capítulo 3
PRONÓSTICOS DE
PRODUCCIÓN
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Los pronósticos de producción nos permiten realizar una cuantificación teórica de los volúmenes
de hidrocarburo en el yacimiento, lo cual nos sirve para calcular las reservas y determinar la
rentabilidad de la explotación de dicho yacimiento.
Los métodos analíticos utilizan características de yacimientos análogos, que son geográfica o
petrofísicamente similares a la zona o yacimiento objetivo. Los métodos experimentales, miden
propiedades físicas como gastos, presiones o saturaciones en modelos de laboratorio y amplían
estos resultados a todo el yacimiento. Finalmente, los modelos matemáticos utilizan ecuaciones
para predecir el comportamiento del yacimiento.
En este capítulo se abordarán principalmente los modelos matemáticos, por su relación con la
aplicación de las hojas de cálculo electrónicas. Los métodos de pronósticos de producción que se
describen son: analógicos, volumétricos, balance de materia, curvas de declinación y simulación
numérica de yacimientos.
70
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Valoración de prospectos
Curvas de Gastos iniciales
Producción inicial
declinación Historia de producción
Pronósticos de corto plazo
Propiedades de los fluidos
Volumetrías
Valoración de prospectos
Balance de materia Presiones
Pronósticos de corto plazo
Propiedades de la formación
Análisis nodal
Planeación del desarrollo del
campo Descripción del yacimiento
Simulación Proyectos estratégicos Análisis PVT
numérica (incrementales) Propiedades petrofísicas
Optimización Historia de producción
Pronósticos de largo plazo
Np =N×Fr (3.1)
donde:
N: Volumen original de hidrocarburos.
Fr : Es el factor de recuperación estimado.
71
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
𝑉𝜙(1 − 𝑆𝑤 )
𝑁= (3.2)
𝐵𝑜
donde:
V: Volumen de la roca, en que se encuentra el yacimiento.
ϕ: Porosidad.
Sw : Saturación del agua.
Bo : Factor de volumen del aceite.
Volumen de la roca
El volumen de la roca se determina mediante el análisis de mapas geológicos superficiales y la
ayuda de un planímetro (instrumento que ayuda a determinar áreas a partir de mapas geológicos).
En la Figura 3.1 se pueden observar algunos métodos con los que se puede obtener el área,
tomando en cuenta que son formas hipotéticas de representar la estructura en donde se encuentra
el yacimiento (3D) llevando está a un mapa de contornos (2D), donde el resultado es un mapa
geológico, siendo las líneas “isopacas” las que conectan una red de puntos de igual espesor de
formación.
Obteniendo las lecturas de las áreas con el planímetro, se procede a calcular el volumen de la
roca, comúnmente existen dos ecuaciones para determinar el volumen aproximado de la zona
productiva de hidrocarburos, para determinar el volumen de la pirámide de la Figura 3.2 se aplica
la ecuación (3.3), que es la suma de la ecuación para el volumen de una pirámide y una sumatoria
de volúmenes de pirámides truncadas.
72
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Porosidad
La porosidad es el volumen de espacios vacíos que contiene la roca, existen dos tipos de
porosidades.
✓ Porosidad absoluta: Es la relación que existe entre el volumen de poros y el volumen
total de roca.
Existen varios métodos y herramientas que ayudan a determinar la porosidad de la roca, una de
las principales son los registros geofísicos, estos son representaciones gráficas de una propiedad
física de la roca contra la profundidad. Dentro de los registros que nos ayudan a obtener la
porosidad de la roca, se encuentra el registro sónico, el de neutrón, el de densidad y el registro de
resonancia magnética nuclear, estos registros no miden como tal la porosidad, sino que miden una
propiedad física de la roca como es la densidad, el índice de hidrogeno o incluso la velocidad de
una onda sonora y a partir de estas propiedades se realiza una correlación para estimar la
porosidad. La porosidad se mide en porcentaje o fracción.
Otros métodos son aquellos que se desarrollan en laboratorio, mediante el análisis de núcleos,
suelen ser más efectivos ya que son mediciones directas y además es posible calcular la porosidad
efectiva con mayor exactitud.
73
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Saturación de agua
La saturación de agua es el volumen de agua que se encuentra en los poros de la roca.
La parte del volumen poroso ocupado por los hidrocarburos (aceite y/o gas) será la saturación de
hidrocarburos que se designa por SO para el caso en que asuma que solo existe agua y aceite en
el yacimiento.
So = 1 − Sw (3.7)
Las curvas de declinación son métodos para estimar regímenes de producción futuros, están
basados en la suposición de que los pozos permanecerán sin la influencia de controles artificiales;
que se les permite constantemente mantener la producción máxima que son capaces, y de que
siempre producen bajo las mismas condiciones de operación y que todos los factores que
74
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
influenciaron la curva en el pasado, serán los mismos durante la vida productiva futura, estos
factores son los siguientes:
• Cambios en los métodos de producción.
• Reparaciones.
• Tratamientos a pozos.
• Cambios en las condiciones de los aparejos o en las instalaciones superficiales de
producción.
Cabe recalcar que este método es aplicable solo en la etapa de producción de los pozos, ya que
para realizarse se necesitan datos históricos de producción.
Los principales periodos de declinación de un pozo productor son el periodo de flujo transitorio y
en estado pseudoestacionario, dentro del cual se encuentran la declinación exponencial,
hiperbólica y armónica.
Declinación exponencial.
Declinación hiperbólica.
Declinación armónica.
El modelo de declinación
hiperbólico es el más general, los
otros dos modelos son
derivaciones del modelo de
declinación hiperbólico.
1 dq
𝐷=− (3.9)
q dt
75
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Donde D, se define como gasto de declinación y los tres tipos de declinación pueden obtenerse a
partir de la expresión de la ecuación general (3.10).
D q n
=( ) (3.10)
Di qi
D = bqn (3.11)
Di
b= (3.12)
qi n
dq
− = Di q (3.13)
dt
q
Armónica, al sustituir n=1 en la ecuación (3.11) se tiene que D = Di ( ); la caída en la
qi
producción por unidad de tiempo como fracción del gasto es directamente proporcional al
gasto, es decir:
1 dq Di (3.14)
− = q
q dt qi
q n
Hiperbólica, a partir de la ecuación (3.11) se tiene que D = Di ( ) la caída de producción
qi
por unidad de tiempo como una fracción del gasto de producción es proporcional a una
potencia fraccional de gasto de producción, con la potencia, n, variando entre 0 y 1, es
decir:
1 dq Di (3.15)
− = n qn
q dt qi
Estos modelos de declinación son aplicables tanto para aceite como para gas.
76
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Declinación exponencial
Este tipo de declinación ocurre si el valor del exponente de declinación n de la ecuación de Arps
es 0. La declinación exponencial se caracteriza por el hecho de que la caída de gasto de
producción por unidad de tiempo es proporcional a la tasa de producción.
q t
1
∫ dq = − ∫ Di dt (3.16)
qi q 0
q = qi e−Di t (3.17)
La integración de la ecuación (3.17) a través del tiempo provee una expresión para el cálculo de
la producción acumulada a partir del inicio de la declinación y de esta manera obtener el pronóstico
de producción.
t t
Np = ∫ qdt = ∫ qi e−Di t dt (3.18)
0 0
1
Np = (q − q) (3.19)
Di i
q = qi − Di Np (3.21)
77
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Declinación armónica
Este tipo de declinación ocurre si el valor del exponente de declinación n de la ecuación de Arps
es 1. En este caso el valor de la constante declinación Di es proporcional al gasto, q, algunas veces
se presenta cuando la producción es controlada predominantemente por segregación
gravitacional.
q t
1 Di
−∫ 2
dq = ∫ dt (3.22)
qi q 0 qi
qi
q= (3.23)
1 + Di t
Por otra parte, la ecuación de gasto producido (producción acumulada) puede determinarse
integrando la ecuación (3.23), quedando como:
t t
q𝑖
Np = ∫ qdt = ∫ dt (3.24)
0 0 1 + Di t
qi
Np = [ln(q𝑖 ) − ln(q)] (3.25)
Di
Declinación hiperbólica
La declinación hiperbólica es la forma general de la ecuación de Arps, cuando n está entre 0 y 1,
se presenta el mecanismo de empuje de gas en solución, expansión de casquete de gas o empuje
de agua. También se presenta cuando el mecanismo de empuje natural es suplementado por
inyección de gas o de agua. En cualquier caso, la presencia de estos mecanismos de empuje
implica que la compresibilidad total se incremente y la recuperación de hidrocarburos sea mejorada
en comparación con el mecanismo de empuje de expansión del aceite.
Con base a lo anterior, se puede decir que la declinación hiperbólica es la que se presenta con
más frecuencia.
78
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
q t
1 Di
−∫ dq = ∫ dt (3.26)
qi q (𝑛+1)
0 (qi )𝑛
qi
q= 1 (3.27)
(1 + nDi 𝑡)n
Para determinar la ecuación de la producción acumulada se integra la ecuación (3.27) con respecto
al tiempo:
t t
qi
Np = ∫ qdt = ∫ 1 dt (3.28)
0 0 (1 + nDi 𝑡)n
qi (1−𝑛) qi
Np = [1 − (1 + nDi 𝑡) 𝑛 ] = (q 1−n − q1−n ) (3.29)
(1 − n)Di (1 − n)Di i
Identificación de modelos
Los datos de producción pueden ser graficados utilizando diferentes escalas para identificar el
modelo de declinación que más se ajuste a los datos. En la Figura 3.4 se muestran los tres tipos
de declinación utilizando las escalas: cartesiana, semilogarítmica y logarítmica, donde se pueden
identificar los siguientes casos:
Si la gráfica de log(q) contra t muestra una línea recta (línea 1 de la figura B), de acuerdo
a la ecuación (3.20), los datos de declinación muestran una declinación exponencial.
Si la gráfica de q contra Np muestra una línea recta (línea 1 de la figura D), de acuerdo con
la ecuación (3.21), los datos muestran una declinación exponencial.
Si al graficar de Np contra log(q) muestra una línea recta (línea 2 de la figura E), de acuerdo
a la ecuación (3.25), la declinación armónica puede ser usada.
Si ninguna de las gráficas anteriores se ajusta a una línea recta, la declinación hiperbólica
puede ser verificada graficando el gasto de declinación relativo con la ecuación (3.9). En la
Figura 3.5 se observan las declinaciones exponencial, armónica e hiperbólica.
79
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Declinación exponencial. Para este modelo, el valor de Di puede ser estimado tomando en
consideración la pendiente de la línea recta en la gráfica log(q) contra t mediante la
ecuación (3.20).
Asimismo, el valor de Di puede ser determinado, con base en la pendiente de la línea recta
de la gráfica q contra Np, mediante la ecuación (3.21).
80
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Para la estimación de los parámetros del modelo de declinación hiperbólica que es el que más se
presenta en la realidad, se han desarrollado varios métodos entre los que están los métodos
gráficos (Arps, Slider, Fetkovitch), métodos aproximados (Rowland y Lin) que requieren pocos
cálculos, métodos de mínimos cuadrados desarrollados especialmente para las curvas de
declinación (Chatas y Yankie, McCray y Comer, Copal) y métodos generales de mínimos
cuadrados (Locke, Schrider y Romeo).
A continuación, se presenta un método propuesto por Shirman[49] que puede ser aplicado a
cualquier tipo de declinación. Este método está basado en la ecuación (3.9) donde se define un
gasto de declinación, D como:
1 dq
− = bqn = D (3.30)
q dt
dq
bq(n+1) = − (3.31)
dt
dq
ln(b) + (n + 1)ln(q) = ln (− ) (3.32)
dt
La ecuación (3.32) indica que la derivada del gasto con respecto al tiempo mostrará una línea recta
contra el gasto de producción en una escala logarítmica. La pendiente de la línea es n+1 y la
ordenada al origen proporciona el valor de b.
Para poder realizar una gráfica y calcular los parámetros d y n, es necesario calcular las derivadas
de la producción con respecto del tiempo, estas se pueden calcular de diferentes maneras, una de
ellas es una aproximación numérica[12] desarrollada mediante el polinomio de Lagrange, en la
ecuación (3.33) el término de error no es presentado.
m
dq
= ∑ qi Li ′ (t i ) (3.33)
dt
i=1
En la ecuación (3.33) entre más puntos sean usados para calcular la derivada, mejor es la
aproximación. Las fórmulas más comunes son las que involucren tres y cinco puntos para el cálculo
de la derivada, esto es útil cuando los datos están igualmente espaciados.
Para el primer dato, la derivada se calcula con la ecuación (3.34) de tres puntos:
81
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
dq −3q1 + 4q2 − q3
= (3.34)
dt 2(∆t)
dq qi+1 − qi−1
= (3.35)
dt 2(∆t)
Una vez que los parámetros b y d se han calculado, la única incógnita para determinar el gasto de
declinación inicial Di mediante la ecuación (3.12) es el gasto inicial 𝑞𝑖 .
qi
q= 1 (3.36)
(1 + nbqi n t)n
La ecuación anterior significa que el gasto inicial puede ser determinado de cualquier dato
aceptable de gasto y tiempo, j, mediante la ecuación:
1
−
qi j = (qj −n − nbt) n (3.37)
El mejor gasto inicial puede ser determinado como un promedio de todos los valores de gasto
inicial mediante la ecuación (3.38).
m
1 (3.38)
qi = ∑(qi )j
m
j=1
82
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
La EBM puede utilizarse para estimar el volumen de aceite y gas original, estimar el tamaño de la
capa de gas, estimar la presencia, tipo y tamaño del acuífero, predecir el comportamiento de
presión conociendo la historia de producción del yacimiento, estimar las profundidades de los
contactos y predecir el comportamiento futuro de los yacimientos.
83
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Donde m es la relación que existe entre el volumen origina de la capa de gas y el volumen original
de aceite, definido por:
84
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
La ecuación (3.48) describe a la compresibilidad como los cambios de volumen que experimenta
el fluido o material debido a un cambio de presión.
1 ∂V
c=− (3.48)
V ∂p
∆V = Vc∆p (3.49)
El volumen poroso puede obtenerse a partir de la ecuación (3.51) que representa el total del
volumen de hidrocarburos en el sistema:
Volumen de Volumen de la
+ = (Volumen poroso)(1 − Swi ) (3.51)
aceite original capa de gas inicial
NBoi (1 + m)
(Volumen poroso) = (3.52)
(1 − Swi )
NBoi (1 + m)
Expansión del agua connata = S c ∆p (3.53)
(1 − Swi ) wi w
Similarmente, la reducción del volumen poroso debido a la expansión de la roca está dado por:
NBoi (1 + m)
Expansión de la roca = c ∆p (3.54)
(1 − Swi ) f
85
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Combinando las expresiones de la expansión del agua connata y la roca dadas por las ecuaciones
(3.53) y (3.54) se tiene:
Swi cw + cf
Cambio total en el volumen poroso = NBoi (1 + m) ( ) ∆p (3.55)
1 − Swi
Sustituyendo las ecuaciones (3.40), (3.41), (3.43), (3.44), (3.46), (3.47) y (3.55) en la ecuación
(3.39) se tiene la siguiente expresión:
La ecuación (3.56) representa a la ecuación general de balance de materia, EBM. Una forma más
conveniente de la EBM se obtiene al introducir en la ecuación el concepto de factor de volumen
total (dos fases), 𝐵𝑡 , que está definido como:
Bt = Bo + (R si − R s )Bg (3.57)
86
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Havlena y Odeh[34] desarrollaron una técnica para aplicar la EBM y representarla como una línea
recta para determinar las tres incógnitas anteriores, para esto expresaron la ecuación (3.56) como:
87
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Bg
Eg = Boi ( − 1) (3.63)
Bgi
Ef,w representa la expansión del agua connata y la reducción en el volumen poroso debido
a la expansión de la roca:
Swi cw + cf
Ef,w = (1 + m)Boi ( ) ∆p (3.64)
1 − Swi
La utilización de la EBM como una línea recta proporciona datos importantes para determinar las
incógnitas N, m y We además de poder identificar el mecanismo de empuje. A continuación, se
muestra el uso de esta ecuación para diferentes tipos de yacimientos con diferentes tipos de
empuje presentes.
O bien:
F
N= (3.66)
(Eo + Ef,w )
donde:
F = Np Bo + Wp Bw
Eo = (Bo − Boi )
Swi cw +cf
Ef,w = Boi ( ) ∆p
1−Swi
88
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
89
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
En este caso la única incógnita es el volumen de aceite original, N. Suponiendo que el término Ef,w
es despreciable en comparación con el término de la expansión del gas en solución, la ecuación
(3.60) puede simplificarse como sigue:
F = NEo (3.67)
Donde el término de producción de fluidos, F y la expansión del aceite y su gas disuelto, Eo han
sido definidos por las ecuaciones (3.61) y (3.62).
La forma de usar la ecuación (3.68) depende del número de incógnitas que tenga donde existen
tres posibilidades:
No se conoce N y m es conocido.
No se conoce m y N es conocido.
No se conocen N y m.
90
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
F Eg
Al representar un gráfico de ( ) contra ( ) dará como resultado una línea recta cuya ordenada
Eo Eo
al origen es N y la pendiente es mN. Este gráfico se ilustra en la Figura 3.12 donde se puede
calcular m como la pendiente entre la ordenada al origen.
𝐹 𝐸𝑔
Figura 3.12 Gráfico de ( ) contra ( ) [51].
𝐸𝑜 𝐸𝑜
91
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
En la ecuación (3.60) Dake[15] señala que el término Ef,w puede despreciarse en un yacimiento con
entrada de agua, debido a que se pueden despreciar las compresibilidades del agua connata y la
roca y además como la entrada de agua mantiene la presión, el término ∆p es pequeño, por lo
tanto, la ecuación resulta como:
F = NEo + We (3.72)
Cuando se utilizan las dos ecuaciones anteriores, existe una gran incertidumbre en la
determinación de la entrada de agua We . De hecho, el cálculo de We exige un modelo matemático
que se base en el conocimiento de las propiedades del acuífero, las cuales se desconocen y no
son fáciles de determinar.
Para el caso de un yacimiento con entrada de agua y sin capa de gas, la ecuación (3.72) puede
expresarse de la siguiente manera:
F We
( )=N+( ) (3.73)
Eo Eo
A continuación, se presentan algunos modelos de entrada de agua aplicables a la EBM, estos son:
Modelo de acuífero con geometría definida.
Modelo de Schilthuis de flujo continuo.
Modelo de van Everdingen y Hurst.
∆V = cV∆p (3.74)
Donde We es la entrada de agua acumulada, bl; cw , la compresibilidad del agua del acuífero,
lpc −1 ; cf , la compresibilidad de la roca del acuífero, lpc −1 ; Wi , el volumen inicial de agua en el
acuífero, bl; pi , la presión inicial del yacimiento,lpc; y p, la presión actual del yacimiento, lpc.
92
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
El cálculo del volumen inicial de agua en el acuífero requiere conocer las propiedades y
dimensiones de este, las cuales raramente son medidas. Por ello, si se supone que el acuífero
tiene una forma radial, entonces:
π(ra 2 − re 2 )hϕ
Wi = [ ] (3.76)
5.615
donde ra es el radio del acuífero, pies; ry , es el radio del yacimiento, pies; h, es el espesor del
acuífero, pies; ϕ, la porosidad del acuífero.
La ecuación (3.76) sugiere que la entrada del agua al yacimiento es en todas las direcciones. Sin
embargo, no siempre es así, ya que ni el agua entra en todas las direcciones del yacimiento, ni el
yacimiento es circular. Por lo tanto, para tomar en cuenta estos casos, se debe modificar la
ecuación (3.76) de manera que describa el tipo de flujo. La modificación más sencilla consiste en
incluir una fracción del ángulo de entrada como se ilustra en la Figura 3.13, de manera que:
𝜃
f= (3.78)
360
We = KΔp (3.79)
F Δp (3.80)
( ) = N + K( )
Eo Eo
93
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
t
We = C ∫ (pi − p)dt (3.81)
0
F
Al representar gráficamente ( ) en
Eo
t
∫ (pi −p)dt
función de ( 0 ) resulta una línea
Eo
We = B ∑ ΔpWeD (3.83)
94
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
con:
B = 1119ϕct rc 2 hf (3.84)
kt
t D = 6328×10−3 (3.85)
ϕμw ct re 2
ra
rD = (3.86)
re
ct = cw + cf (3.87)
Donde t es el tiempo en días; k, la permeabilidad del acuífero, md; ϕ, la porosodad del acuífero;
μw , la viscosidad del agua en el acuífero, cp; ra , radio del acuífero, pies; re , radio del yacimiento,
pies; y cw , la compresibilidad del agua, lpc1 .
F ∑ ΔpWeD
( ) = N+ B( ) (3.88)
Eo Eo
95
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Figura 3.16 Gráfico de Havlena y Odeh [51][34] para determinar características del acuífero.
La predicción del comportamiento futuro del yacimiento se logra a partir de las siguientes dos
fases:
Fase 1. La predicción de la producción de hidrocarburos como una función de la de la
presión del yacimiento. Esta etapa se lleva a cabo sin considerar:
o El número de pozos.
o Localización de los pozos.
o Gasto de producción de los pozos.
o Tiempo necesario para depresionar el yacimiento.
Fase 2. La segunda etapa de predicción es la relacionada con el tiempo de producción. En
esta fase, los datos del comportamiento de los yacimientos, calculados a partir de la fase
uno, se correlacionan con el tiempo. Es necesario contar con la cantidad de pozos y la
productividad de cada pozo.
96
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
k rg μo Bo
RGA = R s + ( ) ( ) (3.89)
k ro μg Bg
Donde RGA es la relación gas aceite; R s , es la relación de solubilidad del gas en el aceite; k rg , es
la permeabilidad relativa al gas; k ro , es la permeabilidad relativa al aceite; Bo , es el factor de
volumen del aceite; Bg , es el factor de volumen del gas; μo , es la viscosidad del aceite; μg , es la
viscosidad del gas.
Np
Gp = ∫ RGAdNp (3.90)
0
97
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Np2
ΔGp = ∫ RGAdNp (3.91)
Np1 Figura 3.19 Relación entre RGA y 𝑁𝑝
La integral anterior puede ser aproximada por la forma trapezoidal para obtener:
RGA1 − RGA2
ΔGp = [ ] (Np2 − Np1 ) (3.92)
2
Ecuaciones de saturación
La saturación de un fluido (gas, aceite o agua) en el yacimiento está definido como el volumen del
fluido dividido entre el volumen de poros:
volumen de aceite
So = (3.94)
volumen de poros
volumen de agua
Sw = (3.95)
volumen de poros
volumen de gas
Sg = (3.96)
volumen de poros
So + Sw + Sg = 1 (3.97)
Si se considera al yacimiento volumétrico y sin capa de gas que contiene un volumen N de aceite
original en sitio a la presión pi y asumiendo que no hay entrada de agua, se tiene:
98
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
NBoi (3.99)
1 − Swi =
volumen poroso
NBoi
volumen poroso = (3.100)
1 − Swi
(N − Np )Bo
So = (3.102)
NBoi
( )
1 − Swi
O reacomodando términos:
N p Bo
So = (1 − Swi ) (1 − ) (3.103)
N Boi
Sg = 1 − So − Swi (3.104)
Tal vez sea importante señalar como se determinan las permeabilidades relativas
La ecuación (3.103) sugiere que el volumen de aceite remanente estará uniformemente distribuido
en todo el yacimiento. Es importante señalar que, si existe algún mecanismo de empuje como la
entrada de agua o casquete de gas, la saturación debe ser corregida debido al aceite que se queda
atrapado en las zonas invadidas.
Todas las metodologías que han sido desarrolladas para predecir el comportamiento del
yacimiento están esencialmente basadas en el empleo y combinación de las siguientes relaciones:
Ecuación de balance de materia.
Ecuaciones de saturación.
Relación gas aceite, RGA.
Ecuaciones que relacionan R p con la RGA.
99
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Estos métodos generan esencialmente los mismos resultados cuando pequeños intervalos de
presión o tiempo son usados. Los métodos pueden ser usados para predecir el comportamiento
de un yacimiento bajo cualquier mecanismo de producción, incluyendo:
Gas en solución.
Casquete de gas.
Acuífero asociado.
Empuje combinado.
Método de Tracy
A partir de la EBM, ignorando la compresibilidad del agua y de la formación la ecuación (3.56)
puede expresarse como:
Gp = R p N p (3.106)
Bg
Φg = (3.109)
Den
1
Φw = (3.110)
Den
Bg
Den = (Bo − Boi ) + (R si − R s )Bg + mBoi ( − 1) (3.111)
Bgi
100
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Para un yacimiento con empuje por expansión del aceite y gas en solución la ecuación (3.107) y
la ecuación (3.111) se reducen a:
N = N p Φ o + Gp Φ g (3.112)
El método de Tracy[53], se realiza en series de caídas de presión que van de una presión conocida
p∗ a una presión más baja p. Los resultados calculados serán los nuevos valores de p∗ y así
sucesivamente.
Para cada caída de presión de p∗ a p la produccion incremental de aceite y gas son ΔNp y ΔGp y
están expresadas por:
Np = Np ∗ + ΔNp (3.114)
Gp = Gp ∗ + ΔGp (3.115)
RGA∗ + RGA
RGAprom = (3.117)
2
La producción incremental de gas ΔGp puede ser aproximada por la ecuación (3.93) como:
101
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
1 − ( N p ∗ Φ o + Gp ∗ Φ g )
ΔNp = (3.120)
Φo + RGAprom Φg
Bo
So = (1 − Swi )(1 − Np ) (3.121)
Boi
Sg = 1 − So − Swi (3.122)
Np Φo + Gp Φg = 1 ± Tolerancia (3.123)
Método de Muskat
Muskat[41] expresó la ecuación de balance de materia en la siguiente forma diferencial:
So Bg dR s So k rg μo dBo d(1⁄Bg )
+ + (1 − So − Swc )Bg
dSo Bo dp Bo k ro μg dp dp
= (3.124)
dp k
μ rg
1+ o
μg k ro
102
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Bg dR s
X(p) = (3.125)
Bo dp
1 μo dBo
Y(p) = (3.126)
Bo μg dp
d(1⁄Bg )
Z(p) = Bg (3.127)
dp
k rg
ΔSo So X(p) + So Y(p) + (1 − So − Swc )Z(p)
k ro
( )= (3.128)
Δp μ k rg
1+ o
μg k ro
Craft y Hawkins[14] proponen el siguiente procedimiento para resolver la ecuación de Mustak para
una caída de presión Δp = (p∗ − p).
1. Preparar una gráfica de k rg ⁄k ro contra saturación de gas.
2. Graficar R s , Bo y (1⁄Bg ) contra la presión y determinar la pendiente de cada gráfica en las
dRs dBo d(1⁄Bg )
presiones seleccionadas para tener los valores de , , .
dp dp dp
3. Calcular los términos dependientes de la presión X(p), Y(p) y Z(p) con las ecuaciones
(3.125), (3.126) y (3.127) que corresponden a las presiones seleccionadas en el punto 2.
ΔSo
So = So∗ − (p∗ − p) ( ) (3.129)
Δp
103
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
8. Usando So del paso 7 y la presión p, recalcular (ΔSo ⁄Δp) con la ecuación (3.128).
9. Calcular el promedio para (ΔSo ⁄Δp) de los dos valores obtenidos en los pasos 6 y 8 con:
10. Usando (ΔSo ⁄Δp)Prom , resolver para la saturación de aceite So , con la ecuación (3.131).
ΔSo
So = So∗ − (p∗ − p) ( ) (3.131)
Δp Prom
Sg = 1 − Swi − So (3.132)
Boi So
Np = N [1 − ( ) ( )] (3.133)
Bo 1 − swi
13. Calcular la producción acumulada de gas mediante las ecuaciones (3.89) y (3.93).
14. Repetir los pasos anteriores para intervalos de presión sucesivos, hasta la presión de
interés.
Cabe destacar que este método se basa en la suposición de que la saturación de aceite es
uniforme en todo el yacimiento y por lo tanto que la solución será incorrecta cuando exista una
segregación de gas apreciable en la formación. Por tanto, es aplicable sólo cuando las
permeabilidades son relativamente bajas.
Método de Tarner
Tarner[52] propone una técnica alternativa para determinar la producción de aceite acumulado Np
y la produccion acumulada de gas Gp como función de la presión del yacimiento. El método se
basa en resolver la ecuación de balance de materia y la ecuación de RGA de manera simultánea
para una determinada caída de presión de p1 a p2 . Esto haciendo la suposición que la producción
de aceite se incrementa de Np1 y Gp1 a Np2 y Gp2 . Para simplificar la descripción del método, el
procedimiento de cálculo se realiza para un yacimiento volumétrico de aceite saturado. Debe
señalarse que el método de Tarner podría extenderse para predecir el comportamiento volumétrico
de yacimientos bajo diferentes mecanismos de empuje.
1. Seleccionar una presión futura p2 por debajo de la presión inicial (actual) del yacimiento p1
y obtener los datos PVT necesarios. Asumir que la producción de aceite incrementa de
Np1 y Np2 .
2. Estimar o suponer la producción de aceite acumulada Np2 a la presión p2 .
104
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Boi − Bo Bo
Gp2 = N [(R si − R s ) − ] − Np2 [ − R s ] (3.134)
Bg Bg
4. Calcular las saturaciones de gas y de aceite asumiendo como producción acumulada Np2
a la presión p2 mediante las ecuaciones (3.103) y (3.104).
5. Usando los datos de permeabilidad relativa disponibles, determinar la relación de
permeabilidades relativas k rg ⁄k ro que corresponda a la saturación de gas en p2 y calcular
RGA2 a la p2 con la ecuación:
k rg μo Bo
RGA2 = R s + ( )( ) (3.135)
k ro μg Bg
RGA1 + RGA2
Gp2 = Gp1 + [ ] [Np2 − Np1 ] (3.136)
2
El tiempo requerido para la producción, puede ser calculado aplicando el concepto de IPR (inflow
performance relationship) junto con las predicciones de la ecuación de balance de materia.
Vogel[55] expresa la IPR como:
105
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
q Pwf Pwf 2
=1-0.2 ( ) -0.8 ( ) (3.137)
qmáx Pws Pws
(qo )T + (qo )∗ T
(q̅o )T = (3.138)
2 Figura 3.22 IPR futura del yacimiento [51]
∆Np
∆t = (3.139)
(q̅o )T
t = ∑ ∆t (3.140)
106
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
107
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
108
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Los pasos que usualmente se aplican para una simulación de yacimientos son los siguientes:
Establecer los objetivos del estudio de la simulación. El primer paso es definir objetivos
claros. Estos objetivos deben ser alcanzables y compatibles con yacimientos disponibles y
datos de producción.
Recopilar y validar los datos de yacimientos. En este paso se deben obtener datos del
yacimiento y la producción. Los datos que cumplan con los objetivos son incorporados al
simulador.
Diseñar el simulador. Este paso implica las 4 áreas mostradas en la Figura 3.24, la
construcción de un modelo físico conceptual, el desarrollo de modelos matemáticos, y
modelos numéricos y el desarrollo de modelos computacionales.
Validación histórica del simulador. Una vez que el simulador es construido, este debe ser
calibrado con datos disponibles de producción ya que gran parte de los datos de un
simulador típico, necesitan ser verificados.
Hacer predicciones. En la etapa final de la aplicación, se evalúan diversos planes de
desarrollo y producción, llevándose a cabo un análisis de sensibilidad de diversos
parámetros de producción en el yacimiento.
Modelo conceptual
Para poder representar el comportamiento de un yacimiento mediante un modelo matemático se
deben integrar y definir conceptos básicos de ingeniería de yacimientos, propiedades de la roca y
de los fluidos, la ley de conservación de masa y ecuaciones de flujo que describan con
comportamiento de los fluidos dentro del medio poroso para predecir el comportamiento del
yacimiento bajo diferentes esquemas de explotación.
109
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Conservación de la masa
La ecuación de continuidad
es una expresión de un
balance de materia, esta
puede ser derivada a partir
de un volumen de control
como el mostrado en la
Figura 3.25. Que es un
prisma rectangular con
dimensiones ∆x, ∆y y ∆z,
con sus lados paralelos a
los ejes coordenados y
centro en (x, y, z) . Para este
prisma rectangular se
puede escribir una ecuación
de balance de materia para
un solo fluido siguiendo las
direcciones x, y, y z. En la Figura 3.25 Volumen de control en coordenadas cartesianas.
cara x − Δx⁄2 del prisma
rectangular, el gasto y la densidad del fluido son qx−Δx⁄2 y ρx−Δx⁄2 respectivamente, similarmente
en las caras y − Δy⁄2 y z − Δz⁄2 los gastos y densidades del fluido son qy−Δy⁄2 , ρy−Δy⁄2 y qz−Δz⁄2
, ρz−Δz⁄2 respectivamente. De la misma manera para las caras x + Δx⁄2, y + Δy⁄2 y z + Δz⁄2 los
gastos y densidades pueden expresarse por: qx+Δx⁄2 , ρx+Δx⁄2 , qy+Δy⁄2 , ρy+Δy⁄2 y qz+Δz⁄2 , ρz+Δz⁄2 .
110
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Para el volumen de control mostrado en la Figura 3.25, se puede escribir la ecuación de balance
de materia de la siguiente forma:
(mi − mo ) + ms = ma (3.141)
Donde mi es la masa que entra al volumen de control; mo , es la masa que sale del volumen de
control; ms es la masa que entra o sale de una fuente externa, por ejemplo, un pozo; ma , es la
masa acumulada en el volumen de control.
Al multiplicar el gasto q y la densidad ρ se tiene como resultado la masa que entra o sale del
volumen de control por unidad de tiempo porque:
L3 m m
[q ( )] [ρ ( 3 )] = [w ( )] (3.142)
t L t
La Figura 3.25 muestra una flecha que indica una adición de masa que puede ser inyectada o
producida del volumen de control y se representa como:
m
qm ( ) (3.143)
t
Se usará una convención donde el signo positivo indicará una entrada de fluido al volumen de
control y, por el contrario, el signo negativo indicará extracción de fluido del volumen de control.
Con las definiciones anteriores, podemos escribir el siguiente balance de masa por un periodo de
tiempo, Δt.
wx = αc ρux Ax (3.145)
wy = αc ρuy Ay (3.146)
wz = αc ρuz Az (3.147)
En las ecuaciones (3.145), (3.146) y (3.147), Ax , Ay y Az son las áreas transversales a las
direcciones x, y y z respectivamente. Las definiciones de wx , wy y wz pueden ser sustituidas en la
ecuación (3.144) obteniéndose:
111
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Dividiendo la ecuación (3.148) por ΔxΔyΔz y sabiendo que Vb = ΔxΔyΔz es el volumen del volumen
de control se tiene:
112
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Ley de Darcy
La ley de Darcy es una relación empírica que relaciona el flujo de fluidos a través de un medio
poroso con el gradiente de potencial, para un solo fluido y una sola dimensión, esta ley puede
expresarse en una forma diferencial como:
q k x dΦ
= ux = −βc (3.155)
Ax μ dx
Donde βc es un factor de conversión; k, es la permeabilidad absoluta en la dirección del flujo; μ, es
la viscosidad del fluido; ux , es la velocidad del flujo; Φ, es el potencial del fluido.
Con la definición del potencial de flujo[23] la ecuación (3.155) puede expresarse para tres
dimensiones como:
k k
u = −βc ∇Φ = −βc (∇p − γ∇Z) (3.156)
μ μ
Con esto, los términos en ux , uy y uz pueden expresarse como sigue:
k x ∂Φ
ux = −βc (3.157)
μ ∂x
k y ∂Φ
uy = −βc (3.158)
μ ∂y
k z ∂Φ
uz = −βc (3.159)
μ ∂z
Adicionalmente si las velocidades se expresan en términos de la presión en vez del potencial,
ignorando las fuerzas gravitacionales (∇Φ = ∇p) se tiene:
k x ∂p
ux = −βc (3.160)
μ ∂x
k y ∂p
uy = −βc (3.161)
μ ∂y
k z ∂p
uz = −βc (3.162)
μ ∂z
Ecuación de estado
La ecuación de estado relaciona la densidad del fluido con la presión y temperatura. Una manera
de expresar esta relación es mediante el factor de volumen expresado en términos de la densidad
que se expresa como:
ρsc
B= (3.163)
ρ
113
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Ahora sustituyendo las ecuaciones (3.160), (3.161), (3.162), (3.163) y (3.165) en la ecuación
(3.154) se obtiene:
∂ Ax kx ∂p ∂ Ay ky ∂p ∂ Az kz ∂p Vb ∂ ϕ
(βc ) ∆x + (βc ) ∆y + (βc ) ∆z + qsc = ( ) (3.166)
∂x μB ∂x ∂y μB ∂y ∂z μB ∂z αc ∂t B
La ecuación (3.166) es la forma más general del flujo de fluidos a través de un medio poroso y no
se considera el tipo de fluido (incompresible, ligeramente compresible o compresible) o la
dependencia de las propiedades de la roca y los fluidos con la presión, la porosidad se asume
como función de la presión, y el gasto qsc a condiciones de superficie, además se ignoran los
efectos gravitacionales en la dirección vertical.
114
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
∂ ∂p ∂p 2
[1 + c(p − po )] (βc Ax k x ) ∆x + βc Ax k x c ( ) + [1 + c(p −
∂x ∂x ∂x
∂ ∂p ∂p 2 ∂ ∂p
po )] (βc Ay k y ) ∆y + βc Ay k y c ( ) + [1 + c(p − po )] (βc Az k z ) ∆z + (3.171)
∂y ∂y ∂y ∂z ∂z
∂p 2 Vb ϕμc ∂p
βc Az k z c ( ) + B o μqsc =
∂z αc ∂t
Es posible, en muchos casos, asumir que [1 + c(p − po )] ≈ 1 para fluidos ligeramente
compresibles porque c es muy pequeña e ignorando el término del gradiente de presión al
cuadrado por ser muy pequeño, se obtiene:
∂ ∂p ∂ ∂p ∂ ∂p Vb ϕμc ∂p
(βc Ax k x ) ∆x + (βc Ay k y ) ∆y + (βc Az k z ) ∆z + B o μqsc = (3.172)
∂x ∂x ∂y ∂y ∂z ∂z αc ∂t
La ecuación (3.172), representa el flujo de un solo fluido, líquido ligeramente compresible en una
formación heterogénea y anisotrópica. Para una formación homogénea e isotrópica, la ecuación
(3.172) puede ser simplificada a:
∂2 x ∂2 y ∂2 z B o μqsc ϕμc ∂p
+ + + = (3.173)
∂x 2 ∂y 2 ∂z 2 βc kVb βc αc k ∂t
Si en la ecuación (3.173) no se consideran fuentes ni sumideros (pozos) se obtiene:
∂2 p ∂2 p ∂2 p ϕμc ∂p
2
+ 2+ 2 = (3.174)
∂x ∂y ∂z βc αc k ∂t
La ecuación (3.174) es conocida como ecuación de difusión, el coeficiente ϕμc⁄βc αc k es el inverso
de la constante de difusividad hidráulica.
Ahora para considerar cuando la compresibilidad de la formación varia con la presión, no es posible
quitar la porosidad ϕ de la dependencia con la presión, a partir de la ecuación (3.154) se puede
sustituir la definición de B, y conservando ϕ en la derivada, se tiene:
∂ ∂p ∂ ∂p ∂ ∂p
(βc Ax k x ) ∆x + (βc Ay k y ) ∆y + (βc Az k z ) ∆z + B o μqsc
∂x ∂x ∂y ∂y ∂z ∂z
(3.175)
μVb ∂p
= {ϕ[1 + c(p − po )]}
αc ∂t
Ahora concentrándose en el lado derecho de la ecuación:
μVb ∂p μVb ∂ϕ ∂p
{ϕ[1 + c(p − po )]} = {[1 + c(p − po )] + ϕc } (3.176)
αc ∂t αc ∂t ∂t
Usando la regla de la cadena.
∂ϕ ∂ϕ ∂p
= (3.177)
∂t ∂p ∂t
La ecuación que expresa la dependencia de la porosidad con la presión[23] es:
ϕ = ϕo [1 + cr (p − po )] (3.178)
De esto obtenemos:
115
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
∂ϕ
= cr ϕo (3.179)
∂p
Con esto se tiene:
∂ϕ ∂p
= cr ϕo (3.180)
∂t ∂t
El lado derecho de la ecuación (3.176) puede ser expresado como:
μVb ∂p μVb ∂p
{ϕ[1 + c(p − po )]} = {[1 + c(p − po )]cr ϕo + ϕc}
αc ∂t αc ∂t
(3.181)
μVb o o o
∂p
= [c ϕ + ccr ϕ (p − p ) + ϕc]
αc r ∂t
El producto de c y cr es muy pequeño, por esto puede ser despreciado. Por lo tanto, la expresión
final es:
∂ ∂p ∂ ∂p ∂ ∂p Vb ϕμct ∂p
(βc Ax k x ) ∆x + (βc Ay k y ) ∆y + (βc Az k z ) ∆z + B o μqsc = (3.182)
∂x ∂x ∂y ∂y ∂z ∂z αc ∂t
donde ct = c + cr ϕo ⁄ϕ es la compresibilidad total del sistema (fluido y formación).
p(x, y, z) = λ (3.183)
Y para la saturación:
S(x, y, z) = λ (3.184)
Donde λ es una constante o una función que describe la distribución de la presión dentro del
sistema a un tiempo cero.
116
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Para la frontera interna (pozo productor o inyector) puede tener las siguientes condiciones: la
presión de fondo fluyendo es contante o gasto constante.
Las ecuaciones que gobiernan el flujo de fluidos a través de un medio poroso son muy complejas
para ser resueltas analíticamente, son altamente no lineales. Solo en casos ideales de flujo en una
sola fase pueden ser solucionado analíticamente. Por esto se deben usar aproximaciones
numéricas para su solución, estas aproximaciones se aplican a un dominio discreto, en lugar de
uno continuo como lo hacen las soluciones analíticas.
La discretización de una ecuación diferencial puede ser realizada por diferentes métodos, entre
los métodos más comunes se encuentran: método de diferencias finitas, método de volumen finito
o elemento finito, en esta sección se usará el método de diferencias finitas.
El principio básico de la aproximación por diferencias finitas es reemplazar las derivadas parciales
por aproximaciones algebraicas. Las ecuaciones en derivadas parciales son reemplazadas por su
equivalente en diferencias finitas las cuales pueden obtenerse de un polinomio de Taylor truncado.
El polinomio de Taylor para una función de una variable f(x) está dado por:
117
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
(x − x0 ) df (x − x0 )2 d2 f (x − x0 )n dn f
f(x) = f(x0 ) + + + ⋯ + (3.185)
1! dx 2! dx 2 n! dx n
df
Al despejar se la ecuación anterior se tiene:
dx
df f(xi+1 ) − f(xi ) 1 h2 d2 f hn dn f
= − ( + ⋯ + ) (3.187)
dx h h 2! dx 2 n! dx n
Truncando la serie de Taylor después del segundo término se tiene:
df f(xi+1 ) − f(xi )
≈ (3.188)
dx h
Ahora evaluando el polinomio de Taylor en x = xi−1 y asumiendo que x0 = xi se tiene:
h df h2 d2 f hn dn f
f(xi−1 ) = f(xi ) − + − ⋯ + (3.189)
1! dx 2! dx 2 n! dx n
donde h = xi − xi−1
df
Al despejar y truncando en el segundo término se tiene:
dx
df f(xi−1 ) − f(xi )
≈ (3.190)
dx h
Una mejor aproximación de la primera derivada se obtiene restando la expresión (3.189) a la
ecuación (3.186) si los incrementos h en ambas ecuaciones son iguales, se tiene:
2h df 2h3 d2 f 2hn dn f
f(xi+1 ) − f(xi−1 ) = + + ⋯ + (3.191)
1! dx 3! dx 2 n! dx n
df
Despejando de la ecuación anterior y truncando en el segundo término se tiene:
dx
df f(xi+1 ) − f(xi−1 )
≈ (3.192)
dx 2h
Estas tres aproximaciones de las ecuaciones (3.188), (3.190) y (3.192) se conocen como
diferencias finitas hacia adelante, diferencias finitas hacia atrás y diferencias finitas centrales
respectivamente.
118
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
2h2 d2 f 2hn dn f
f(xi+1 ) + f(xi−1 ) = 2f(xi ) + + ⋯ + (3.193)
2! dx 2 n! dx n
d2 f
Despejando de la ecuación anterior y truncando en el segundo término se tiene:
dx2
Discretización
El método de diferencias finitas se emplea superponiendo una malla sobre el yacimiento que se
desea modelar. Dos tipos de mallas son usados generalmente en la simulación de yacimientos:
nodos centrados y nodos distribuidos. Estos son discutidos para coordenadas cartesianas, sin
embargo, pueden ser aplicados para cualquier sistema coordenado.
El propósito de la malla es realizar una división del yacimiento en celdas a las cuales se les pueden
asignar propiedades de la roca, por esto las celdas deben ser pequeñas para poder representar la
heterogeneidad del yacimiento.
Malla de nodos centrados
Una malla de nodos centrados con flujo en una dirección x puede ser construida como en la Figura
3.27.
∑ Δxi = Lx (3.195)
i=1
Una vez que las celdas son definidas, los nodos deben ser colocados, para el sistema rectangular
estos se colocan en el centro de las celdas. Las fronteras de las celdas están indicadas por xi−1 y
2
xi+1 mientras que el centro está indicado por xi .
2
119
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Los nodos son colocados en la Figura 3.29 Nodos distribuidos en una dimensión, las
frontera del yacimiento y las fronteras se encuentran entre los nodos.
fronteras de las celdas están colocadas entre dos nodos. En la Figura 3.30 se muestra una malla
de nodos distribuidos para dos dimensiones.
Figura 3.30 Malla 2D con nodos distribuidos, las áreas sombreadas indican el volumen de las
celdas.
Usando la ecuación (3.197) para aproximar la primera derivada en espacio de la ecuación (3.196)
se tiene:
120
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
1 βc Ax k x ∂p ∂p βc A x k x ∂p Vb ϕct ∂p
[( o ) ( ) 1 − ( o ) ( ) 1 ] ∆x + qsc i = ( ) (3.198)
∆xi B μ ∂x i+ ∂x i+
1 B μ i− ∂x i−
1 αc B o ∂t i
2 2 2 2
∂p ∂p
Ahora usando diferencias finitas para aproximar ( ) y( ) se tiene:
∂x i+1 ∂x i−1
2 2
∂p pi+1 − pi pi+1 − pi
( ) 1= = (3.199)
∂x i+ xi+1 − xi ∆x 1
2 i+
2
∂p pi − pi−1 pi − pi−1
( ) 1= = (3.200)
∂x i− xi − xi−1 ∆x 1
2 i−
2
Sustituyendo las ecuaciones (3.199) y (3.200) en la ecuación (3.198):
βc A x k x βc A x k x Vb ϕct ∂pi
( o ) (pi+1 − pi ) − ( o ) (pi − pi−1 ) + qsc i = ( ) (3.201)
B μ∆x i+ 1 B μ∆x i− 1 αc B o i ∂t
2 2
La ecuación anterior puede reescribirse como:
Vb ϕct ∂pi
Tx (pi+1 − pi ) − Tx (pi − pi−1 ) + qsc i = ( ) (3.202)
i+
1
2
i−
1
2 αc B o i ∂t
Donde los coeficientes Tx 1 y Tx 1 se refieren a las transmisibilidades del medio poroso y están
i+ i−
2 2
definidas por:
βc A x k x
Tx 1 =( o ) (3.203)
i+
2 B μ∆x i+1
2
βc A x k x
Tx 1 =( o ) (3.204)
i−
2 B μ∆x i−1
2
Para el caso de tres dimensiones, se sigue el mismo procedimiento que para una dimensión, para
esto la ecuación (3.182), mediante la aplicación de la aproximación en diferencias finitas centrales
se puede expresar de la siguiente manera:
Ax k x Ax k x
(βc o ) (pi+1,j,k − pi,j,k ) − (βc o ) (p − pi−1,j,k )
μB Δx i+ ,j,k
1 μB Δx i−1,j,k i,j,k
2 2
Ay k y
+ (βc o ) (p − pi,j,k )
μB Δy i,j+1,k i,j+1,k
2
Ay k y
− (βc o ) (p − pi,j−1,k ) (3.205)
μB Δy i,j−1,k i,j,k
2
Az k z
+ (βc ) (p − pi,j,k )
μB o Δz i,j,k+1, i,j,k+1
2
Az k z Vb ϕct ∂pi.j.k
− (βc o ) (pi,j,k − pi,j,k−1 ) + qsci,j,k = ( o
)
μB Δz i,j,k−1, αc B i,j,k ∂t
2
En términos de transmisibilidades:
121
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Aproximación en tiempo
La discretización de la derivada en tiempo de la ecuación (3.196) es similar a la aproximación de
la derivada en espacio, existen tres aproximaciones posibles, diferencias finitas hacia atrás,
diferencias finitas hacia adelante y diferencias finitas centrales. Las aproximaciones en diferencias
finitas hacia atrás y adelante son aproximaciones de primer orden, mientras que la aproximación
en diferencias finitas centrales es de segundo orden y generalmente no es usada [23]. La
aproximación en diferencias finitas hacia atrás es la que generalmente se usa en simulación de
yacimientos.
o Diferencias finitas hacia atrás
A partir de la ecuación (3.188) la aproximación para la derivada temporal de la ecuación (3.196)
tomando como base el tiempo t n+1 puede escribirse como:
∂pi pi n+1 − pi n
= (3.210)
∂t ∆t
Donde el superíndice n representa que es la presión evaluada en el tiempo actual, y n + 1,
representa el tiempo futuro.
122
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Las ecuaciones (3.210) y (3.212) son idénticas, pero los niveles de tiempo base a los que están
evaluadas son diferentes. Sustituyendo la ecuación (3.212) en (3.202) con el tiempo base t n , se
tiene:
Vb ϕct
Tx (pni+1 − pni ) − Tx (pni − pni−1 ) + qsc i = ( ) (p n+1 − pi n ) (3.213)
i+
1
2
i−
1
2 αc B o ∆t i i
La diferencia entre las aproximaciones en diferencias finitas hacia atrás y adelante es el nivel de
tiempo que toman como base, en la aproximación en diferencias finitas hacia adelante, las
presiones en el lado izquierdo de la ecuación están evaluadas al tiempo t n , a diferencia de la
aproximación en diferencias finitas hacia atrás, en el que las presiones están evaluadas al tiempo
t n+1 .
Para un problema de flujo de una sola fase y despreciando los efectos gravitacionales, las
presiones asignadas a cada celda pueden ser escritas como:
pni,j,k = p0 (3.214)
Condiciones de frontera
Las condiciones de frontera son las que delinean el sistema, estas pueden ser internas y externas;
las externas incluyen los límites del yacimiento y las internas pueden ser pozos, roca sin
hidrocarburos o cuerpos impermeables
o Condiciones de frontera externa
En la frontera externa pueden existir condiciones de dos tipos Neumann (gradiente de presión
especifico en la frontera, flujo y no flujo) y Dirichlet (presión especifica en la frontera, presión
contante).
En la Figura 3.31 se muestra un sistema en una dimensión con nodos centrados con el que se
describe el medio poroso por medio de 4 celdas (celdas 1 a 4). Las fronteras se encuentran en los
bordes de la primera y la última celda. La ecuación de flujo en diferencias finitas puede ser escrita
123
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
para cada celda, dando como resultado un sistema de 4 ecuaciones con 6 incógnitas, lo cual no
puede resolverse porque existen más incógnitas que ecuaciones en el sistema. Para el sistema de
la Figura 3.31 las ecuaciones para cada celda pueden ser escritas con la ecuación (3.211) como
sigue:
Para la celda 1:
Vb ϕct
Tx (pn+1 − p1n+1 ) − Tx (p1n+1 − pn+1
0 ) + q sc 1 = ( ) (p n+1 − p1 n ) (3.216)
1+
1
2
2
1−
1
2 αc B o ∆t 1 1
Para la celda 2:
Vb ϕct
Tx (pn+1 − pn+1
2 ) − Tx (pn+1 − p1n+1 ) + qsc 2 = ( ) (p n+1 − p2 n ) (3.217)
2+
1
2
3
2−
1
2
2
αc B o ∆t 2 2
Para la celda 3:
Vb ϕct
Tx (pn+1 − pn+1
3 ) − Tx (pn+1 − pn+1
2 ) + q sc 3 = ( ) (p n+1 − p3 n ) (3.218)
3+
1
2
4
3−
1
2
3
αc B o ∆t 3 3
Para la celda 4:
Vb ϕct
Tx (pn+1 − pn+1
4 ) − Tx (pn+1 − pn+1
3 ) + q sc 4 = ( ) (p n+1 − p4 n ) (3.219)
4+
1
2
5
4−
1
2
4
αc B o ∆t 4 4
La razón por la que existen más incógnitas que ecuaciones es porque en las ecuaciones
correspondientes a las celdas en las fronteras contienen presiones que se encuentran fuera del
yacimiento pn+1
0 y pn+1
5 . Se puede usar la ecuación (3.215) para completar el sistema de
ecuaciones. La aproximación en diferencias finitas centrales para la ecuación (3.215) para la
frontera izquierda (x = x1−1 ) es:
2
∂p p1 − p0
≈ =C (3.220)
∂x x1 − x0
Despejando p0 de la ecuación anterior resulta:
p0 = p1 − C(x1 − x0 ) (3.221)
p5 = p4 − C(x5 − x4 ) (3.222)
Las ecuaciones (3.221) y (3.222) representan las dos ecuaciones necesarias para completar el
sistema para el yacimiento mostrado en la Figura 3.31.
Si se trata de una frontera de no flujo (C = 0), las ecuaciones (3.221) y (3.222) indicarán que la
presión en las celdas fuera del yacimiento (celdas 0 y 5) serán iguales a las presiones en las celdas
que se encuentran en la frontera dentro del yacimiento. Si se sustituyen las ecuaciones para una
frontera de no flujo p0 = p1 y p4 = p5 en las ecuaciones (3.216) y (3.219), los términos en las
fronteras se hacen cero, otra alternativa para representar fronteras de no flujo es hacer el término
124
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
de transmisibilidad en las fronteras igual a cero, esto es, para las fronteras del yacimiento de la
Figura 3.31:
Vb ϕct
Tx (pn+1 − p1n+1 ) + qsc1 = ( ) (p n+1 − p1 n ) (3.223)
1+
1
2
2
αc B o ∆t 1 1
Vb ϕct
−Tx (pn+1 − pn+1
3 ) + q sc 4 = ( ) (p n+1 − p4 n ) (3.224)
4−
1
2
4
αc B o ∆t 4 4
Para el caso en que la presión es específica en la frontera externa la siguiente expresión es
usada:
pi = C (3.225)
Figura 3.31 Malla 2D con nodos distribuidos, las áreas sombreadas indican el volumen de las
celdas.
Las dimensiones de una malla de simulación son por lo general mucho más grandes que las
dimensiones del pozo, por lo que la aproximación de línea fuente puede ser usada para representar
un pozo.
La expresión para una fuente o sumidero puede entonces ser obtenida usando la teoría de pozos
en estado estacionario, el flujo en el pozo puede ser estimado como:
−2πβc k H h 1
qsc i,j,k = (pi,j,k − pwf ) (3.226)
[log e (req ⁄rw ) + s] μB
Donde Peaceman mostro que el radio equivalente req es:
Debido al tiempo base usado para hacer la aproximación en diferencias finitas, la aproximación en
diferencias finitas hacia adelante resultará en un esquema de solución explicito para el nuevo nivel
125
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
de presión, mientras que la aproximación en diferencias finitas hacia atrás resultará en un esquema
de solución implícito para los nuevos niveles de presión.
Método explicito
Este esquema es el más simple, ya que resuelve el problema para una sola incógnita p en el
tiempo futuro (n + 1), valiéndose para
ello de los valores ya conocidos de la
variable p en el tiempo actual n. Este
esquema es representado en la Figura
3.32.
Todos los términos en el lado derecho de la ecuación (3.227) son conocidos, por lo tanto, las
presiones en el nuevo nivel de presión (n + 1) pueden ser obtenidas explícitamente usando esta
ecuación.
Por su sencillez, este esquema presenta limitaciones fuertes de estabilidad, lo que ocasiona tener
que utilizar intervalos de tiempo muy pequeños al avanzar en la solución, lo cual tampoco es muy
conveniente debido al tiempo de computo requerido para efectuar los cálculos.
Método implícito
Este esquema consiste en resolver el problema
para todas las incógnitas en forma simultánea.
Este esquema es representado en la Figura
3.33.
Wi pn+1 n+1
i−1 + Ci pi + Ei pn+1
i+1 = Q i (3.229)
126
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Wi = Tx 1 (3.230)
i−
2
Vb ϕct
Ci = − (Tx + Tx +( )) (3.231)
i−
1
2
i+
1
2 αc B o ∆t i
Ei = Tx 1 (3.232)
i+
2
Vb ϕct
Qi = − ( ) p n − qsc i (3.233)
αc B o ∆t i i
p1n+1 Q1
C1 E1 0 0 0 0
W2 C2 E2 pn+1
0 2 Q20 0
0 W3 C3 pn+1
E33 Q30 0
W4 C4n+1 = Q E4 0
(3.234)
0 0 p4 4
0 0 0 W5 Q5C5 E5
pn+1
5
[0 0 0 0 W6
[Q 6 ] C6 ]
[pn+1
6 ]
Para un yacimiento con N número de celdas el sistema a solucionar es, esquemáticamente como
el mostrado en la Figura 3.35.
Para el caso de un yacimiento en dos dimensiones como el mostrado en la Figura 3.36 la ecuación
que describe el flujo puede obtenerse a partir de la ecuación (3.182) quedando de la siguiente
manera:
∂ βc Ax k x ∂p ∂ βc Ay k y ∂p Vb ϕct ∂p
( o ) ∆x + ( o ) ∆y + qsc = (3.235)
∂x B μ ∂x ∂y B μ ∂y αc B o ∂t
127
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Wi,j = Tx 1 (3.239)
i− ,j
2
Vb ϕct
Ci,j = − [Tyi,j−1⁄ + Tx + Tx + Tyi,j+1⁄ + ( ) ] (3.240)
2
1
i− ,j
2
1
i+ ,j
2 2 αc B o ∆t i,j
Ei,j = Tx 1 (3.241)
i+ ,j
2
Vb ϕct
Q i,j = − ( ) p n − qsc i,j (3.243)
αc B o ∆t i,j i,j
En este caso, cuando el yacimiento
está representado por NxM celdas, se
tiene que solucionar un sistema
pentadiagonal como el mostrado en
forma esquemática en la Figura 3.37.
∂ βc Ax k x ∂p ∂ βc Ay k y ∂p ∂ βc Az k z ∂p Vb ϕct ∂p
( o ) ∆x + ( o ) ∆y + ( o ) ∆z + qsc = (3.244)
∂x B μ ∂x ∂y B μ ∂y ∂z B μ ∂z αc B o ∂t
128
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Bi,j,k = Tz 1 (3.246)
i,j,k−
2
Si,j,k = Ty 1 (3.247)
i,j− ,k
2
Wi,j,k = Tx 1 (3.248)
i− ,j,k
2
Vb ϕct
Ci,j,k = − (Tz + Ty + Txi−1,j,k + Tx + Ty + Tz +( ) ) (3.249)
i,j,k−
1
2
1
i,j− ,k
2
1
i+ ,j,k
2
1
i,j+ ,k
2
i,j,k+
1
2 αc B o ∆t i,j,k
Ei,j,k = Tx 1 (3.250)
i+ ,j,k
2
Ni,j,k = Ty 1 (3.251)
i,j+ ,k
2
Ai,j,k = Tz 1 (3.252)
i,j,k+
2
Vb ϕct
Q i,j,k = − ( ) p n − qsc i,j,k (3.253)
αc B o ∆t i,j,k i,j,k
Para los tres casos (1D, 2D y 3D) se genera un sistema de ecuaciones que puede ser resuelto con
129
CAPÍTULO 3 PRONÓSTICOS DE PRODUCCIÓN
Modelo computacional
El modelo computacional, es un programa de cómputo en el que se tienen programadas las
ecuaciones anteriormente descritas, en el mercado existen diferentes proveedores de software
para hacer simulación de yacimientos.
130
Capítulo 4
POTENCIAL DE PRODUCCIÓN
DE POZOS PETROLEROS
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
La evaluación del potencial debe tomar en cuenta todos los factores desde técnicos, operativos,
ambientales y económicos, desde el punto de vista técnico es necesario evaluar en conjunto el
sistema integral de producción (SIP) donde se busca determinar qué problemas ocasionan que un
pozo tenga baja productividad y así planear las acciones pertinentes para mejorar la explotación.
Las características del yacimiento, las propiedades de los fluidos, las condiciones de presión, la
saturación de los fluidos, permeabilidades relativas, el daño al pozo y las características de la
tubería de producción y la línea de descarga permiten determinar lo que un pozo puede producir.
Los análisis que se hacen al sistema integral de producción permiten conocer el comportamiento
actual y futuro de un pozo, como resultado de estos análisis se puede determinar una mejora en
la eficiencia de flujo y un incremento de la producción.
En este capítulo se presentan los principios de flujo de los fluidos en los componentes del sistema
integral de producción; yacimiento, pozo e instalaciones superficiales para mostrar los
procedimientos que se realizan a un pozo como la técnica del análisis nodal que consiste en
analizar los diferentes componentes del SIP con el propósito de predecir los gastos de producción
y optimizar los diferentes componentes del sistema para que lleven a un incremento de la
producción del yacimiento.
Un sistema integral de producción puede ser simple o puede incluir muchos componentes como
se desee. Los componentes básicos de sistema integral de producción son[31]:
• Yacimiento.
132
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
• Pozo.
• Tubería de descarga.
• Estrangulador.
• Separadores y equipo de proceso.
• Tanque de almacenamiento.
Tubería de descarga. Las tuberías son estructuras de acero, cuya finalidad es transportar el gas,
aceite y en algunos casos agua desde la cabeza del pozo hasta el tanque de almacenamiento. Los
costos específicos en el transporte tanto de aceite como de gas disminuyen cuando la capacidad
de manejo aumenta; esto se logra si el aceite, gas y agua se transportan en tuberías de diámetro
óptimo, para cada capacidad dada.
Estrangulador. Es un aditamento que se instala en los pozos productores con el fin de establecer
una restricción al flujo de fluidos. Es decir, permite obtener un gasto deseado, además de prevenir
la conificación de agua, producción de arena y, sobre todo, ofrece seguridad a las instalaciones
superficiales.
Separadores: Son equipos utilizados para separar la mezcla de aceite y gas, y en algunos casos
aceite, gas y agua que proviene directamente de los pozos. Los separadores pueden clasificarse
por su forma o geometría en horizontales, verticales y esféricos, y por su finalidad, separar dos
fases (gas y líquido) o tres (gas aceite y agua).
133
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
Para el estudio del comportamiento de flujo de fluidos del yacimiento al pozo existen herramientas
analíticas que se presentan en este capítulo y simuladores de yacimientos que requieren de mayor
y mejor calidad y cantidad de información.
Las herramientas analíticas son la evaluación del índice de productividad (J) y la curva de IPR
(Inflow Performance Relationship). El índice de productividad es la relación entre el gasto
producido y la caída de presión en el yacimiento, mientras que el IPR es la relación que existe
entre el gasto producido y la presión de fondo fluyendo.
Para conocer el comportamiento de flujo en el yacimiento, se utiliza una ecuación que relaciona
las dos variables de principal importancia en la optimización de la producción: la presión y el gasto.
La ecuación que relaciona estas dos variables es la ecuación de Darcy.
134
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
k dp
V=- (4.2)
μ dx
La ecuación también se expresa en términos de gasto volumétrico:
k A dp
q=VA=- (4.3)
μ dx
El signo asociado a las ecuaciones (4.2) y (4.3) se debe a que si dx es introducido en la dirección
del flujo, la presión cae mientras x crece. Esta declinación resulta en un valor de dp⁄dx negativo,
por eso para asegurar que la velocidad sea positiva, se incluye el signo negativo.
Henry Darcy fue el primero en realizar trabajos sobre permeabilidad cuando analizó el flujo de agua
a través de filtros y por esta razón, la unidad de permeabilidad en la industria petrolera es el Darcy.
Dado que muchos de los yacimientos tienen una permeabilidad menor a un Darcy, se utiliza con
frecuencia el milidarcy (mD) como unidad.
135
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
La ecuación anterior es aplicable a todos los sistemas porosos, sin embargo, la solución o forma
que adquiera, dependerá de las condiciones iniciales y de frontera (daño, almacenamiento,
fracturas, penetración parcial) así como también de la geometría y tipo de flujo establecidas en el
sistema.
Geometrías de flujo
En el flujo de fluidos del yacimiento hacia el pozo se han observado diferentes geometrías de flujo,
las cuales se indican a continuación:
Flujo cilíndrico/radial.
Flujo convergente.
Flujo lineal.
Flujo elíptico.
Flujo hemisférico.
Flujo esférico.
Los flujos lineal y radial son los más comunes en pozos de aceite y gas.
Periodos de flujo
En el comportamiento de la presión en un pozo que produce a gasto contante, se pueden identificar
los siguientes periodos de flujo:
dp
Estacionario = 0.
dt
dp
Pseudoestacionario = constante.
dt
dp
Transitorio = variable.
dt
136
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
La ecuación del índice de productividad se puede escribir mediante la ecuación (4.6) que es una
línea recta, considerando a J constante así mismo con la presión de fondo estática. Una gráfica de
pwf contra q0 , exhibirá una línea recta, siempre que la presión del yacimiento permanezca por
encima de la presión de saturación, durante un periodo de la vida productora del pozo.
q0
pwf =pws - (4.6)
J
137
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
Para obtener pwf de forma directa, la ecuación de Vogel puede ser modificada conociendo pws , q
y qmáx obteniendo la ecuación (4.9).
138
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
Figura 4.7 Curva de IPR para pozos con EF≠1 de yacimientos con empuje de gas disuelto[50]
139
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
Método de Harrison
En la aplicación de las ecuaciones (4.8) y
(4.11) para bajas presiones de fondo
fluyendo la curva de IPR presenta una
forma similar a la Figura 4.8, esto es
porque el valor de p′wf comienza a ser
negativo, para esto Harrison[11] sugiere el
empleo de la siguiente ecuación, la cual
puede emplearse tanto para valores
positivos como negativos de p′wf . Sin
embargo, los resultados serán menores a
los obtenidos con el método de Vogel[55]
Método de Fetkovich
Fetkovich[26] presenta una ecuación más exacta para el comportamiento de un yacimiento
saturado, no importando altos valores de EF y bajos valores de pwf la ecuación es la siguiente:
n
q=J ' o (p2ws -p2wf ) (4.14)
140
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
Figura 4.10 Grafica log-log de presiones Figura 4.11 Corrección por declinación de
contra gasto. presión.
Figura 4.12 Curvas de afluencia para pozos con EF≠1, de un yacimiento con empuje por gas
disuelto.
futuros de producción, tanto para pozos fluyentes como para pozos con algún sistema artificial de
producción.
141
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
Las curvas de IPR futuras son de gran utilidad cuando se desea determinar el momento adecuado
para instalar un sistema artificial de producción, para la realización de las curvas de IPR futuras se
debe contar con suficiente información. Esta información consta de los cambios de presión en el
fondo del pozo, la historia de producción entre las más importantes.
Método de Fetkovich
Muskat, presento la ecuación (4.15) que relaciona el índice de productividad a un tiempo t1 y a un
tiempo t 2 .
k
( ro )
J1 μo B o 1
= (4.15)
J2 ( k ro )
μo B o 2
De un balance de materia para un yacimiento con empuje de gas disuelto Fetkovich[26] encontró
que el comportamiento de k ro es casi lineal con la presión. Con base en lo anterior escribió la
ecuación (4.16) la cual aproxima el cambio en la permeabilidad al aceite con el abatimiento de
presión.
k o pws pws
= (4.16)
ki pwsi
O bien:
pws
k ro pws = (4.17)
pwsi
donde k ro es tomada con respecto a ki , y
se define en aquel lugar geométrico donde
no existe abatimiento. La Figura 4.13
define el lugar geométrico de los valores de
k ro
pws contra la presión a un abatimiento
μo Bo
cero ∆p = 0. De esta forma:
′
qol = Jo1 (p2ws1 − p2wf )n (4.18)
Si se efectúa una prueba de flujo de tres o cuatro puntos para el tiempo presente, es posible
construir las curvas de IPR para otras presiones estáticas usando la ecuación (4.19).
142
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
Método de Eickmier
Eickmier[22] notó que para valores de n = 1 y pwf = 0 , el resultado del cociente de la ecuación
(4.18) a t1 entre la ecuación (4.19) a t 2 permite determinar qmáx a t 2 :
qmáx1 pws1 3
=( ) (4.20)
qmáx2 pws2
La solución de la ecuación (4.20) requiere una prueba de pozo al tiempo presente t1 , a partir de la
cual se puede obtener qmáx1 . Conociendo qmáx1 y pws1 , se puede resolver qmáx2 a cualquier
presión estática considerada y, como complemento, puede construirse una curva completa de IPR
para t 2 empleando la ecuación (4.8).
Método de Standing
Standing desarrolló un procedimiento que requiere cálculos de balance de materia para determinar
saturaciones futuras de donde se pueden obtener valores de k ro . De su estudio la ecuación (4.8)
toma la siguiente forma:
q0 pwf pwf
= (1 − )(1 + 0.8 ) (4.21)
qmáx pws pws
De la ecuación (4.21) sustituyendo qo = J(pws -pwf ) se obtiene:
qmáx pwf
J= (1 + 0.8 ) (4.22)
pws pws
Si el valor de J se toma cuando pwf = pws la ecuación (4.22) se convierte en:
Dividiendo la ecuación (4.22) entre la ecuación (4.23) entre la ecuación, se tiene que:
Que permite realizar el cálculo de Jp∗ a partir de un valor medido de J . De lo anterior para un valor
futuro de J ∗ (Jf∗ ) se puede calcular a partir de un valor presente Jp∗ , para cualquier pws futura
tomando como base la ecuación (4.15):
k ro k ro
Jf∗ = Jp∗ ( ) /( ) (4.25)
B o μo f μo B o p
Si se sustituye la ecuación (4.23) en la ecuación (4.8), la curva del IPR futura se puede construir a
partir de la ecuación (4.26):
J ∗ pws pwf pwf 2
q= [1 − 0.2 ( ) − 0.8 ( ) ] (4.26)
1.8 pws pws
Donde J ∗ para cualquier tiempo futuro está definido por la ecuación (4.25).
Para poder aplicar la ecuación (4.25) se necesita contar con los valores presentes y futuros de k ro ,
μo y Bo estos se pueden calcular con correlaciones.
143
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
Método de Cuoto
Este procedimiento puede ser usado en la construcción de curvas IPR presentes y futuras, para
esto es necesario conocer la permeabilidad relativa del aceite k ro , la viscosidad del aceite (μo ) y
el factor de volumen (Bo ) a las condiciones de presión y temperatura para las que se quiere
conocer la curva de IPR futura. La ecuación de propuesta por Cuoto[17] es la siguiente:
kh k ro pwf pwf
qo = 3.49(A) p ( ) (EF) (1 − ) [1.8 − 0.8(EF) (1 − )]
0.472re ws μo Bo pws pws (4.28)
ln ( )
rw
donde:
A = Factor de conversión = 0.001127, para (pie, lb/pg 2 , cp, md y bpd)
EF = Eficiencia de flujo
La elección del método para construir las curvas de IPR depende de los datos con los que se
cuente, si se quiere usar el método de Standing o Cuoto, es necesario conocer las propiedades
del sistema roca-fluidos a la presión media del yacimiento para las cuales se desea evaluar la
curva de IPR futura. En cambio, si tenemos pruebas de producción podemos ocupar el método de
Fetkovich, podemos usar también el método de Eickmier si solo contamos con el gasto máximo al
tiempo presente.
Procedimiento de cálculo:
1. Obtener el valor de la pb de un análisis pVT.
2. Determinar la pws del pozo y obtener la pwf
a un gasto medido q. Figura 4.14 Comportamiento de
3. Para datos de pruebas de producción afluencia generalizado.
donde pwf > pb , obtener J, qb , qc y qmáx , en ese orden, empleando las siguientes
expresiones:
144
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
q
J= (4.29)
(pws − pwf )
qb = J(pws − pb ) (4.30)
q b pb
qc = (4.31)
1.8 (pws − pb )
qmáx = qb + qc (4.32)
4. Para datos de prueba de producción donde pws > pb > pwf obtener qc , qb y qmáx con las
siguientes expresiones:
q
qc =
p p p 2 (4.33)
1.8 ( ws ) − 0.8 − 0.2 ( wf ) − 0.8 ( wf )
pb pb pb
qb = J(pws − pb ) (4.34)
qmáx = qb + qc (4.35)
Para construcción de la curva IPR (pwf < pb ), se emplea para calcular q, a diferentes valores de
pwf la ecuación siguiente:
pwf pwf 2
q = qb + [qmáx − qb ] [1 − 0.2 ( ) − 0.8 ( ) ] (4.36)
pws pws
Si la prueba se efectúa a una presión abajo del punto de burbujeo, se debe primero calcular el
valor de J con la siguiente ecuación:
q
J= pb
pws − pb + (4.37)
p p 2
1.8 (1 − 0.2 ( wf ) − 0.8 ( wf ) )
pb pb
Las caídas de presión en el flujo multifásico son diferentes al de una sola fase, ya que en la mayoría
de los casos entre en gas y liquido existe una interface, donde el gas se desliza dejando atrás al
líquido generando diferentes patrones de flujo, lo que ocasiona grandes caídas de presión
comparado con el flujo de una sola fase.
145
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
Dividiendo la ecuación (4.38) por m para obtener la energía asociada por unidad de masa y
reescribiendo en forma diferencial se tiene:
p vdv g
dU + d ( ) + + dZ + dq + dWs = 0 (4.39)
ρ gc gc
De termodinámica:
p
dU = dh − d ( ) (4.40)
ρ
dp
dh = TdS + (4.41)
ρ
dp p
dU = TdS + − d( ) (4.42)
ρ ρ
Donde h, entalpía específica; S, entropía y T, temperatura.
dp p p vdv g
TdS + − d( ) + d( ) + + dZ + dq + dWs = 0 (4.43)
ρ ρ ρ gc gc
Para un proceso irreversible, la desigualdad de Clausius establece que:
146
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
dq
dS ≥ − (4.44)
ρ
Donde dLw son las pérdidas por irreversibilidad, como la fricción. Usando estas relaciones y
asumiendo que no se realiza trabajo en, o por el fluido la ecuación (4.43) se reduce a:
dp vdv g
+ + dZ + dLw = 0 (4.46)
ρ gc gc
Si se considera que la tubería es inclinada en un ángulo θ
desde la horizontal, como en la Figura 4.16 y sabiendo
que dZ = dL sin(θ)
ρ
Multiplicando la ecuación (4.46) por se tiene:
dL
dp ρvdv g dLw
+ + ρ sen(θ) + ρ =0 (4.47)
dL g c dL g c dL Figura 4.16 Geometría de flujo.
Esta ecuación puede ser resuelta para calcular el gradiente de presión, si se considera la caída de
presión positiva en la dirección de flujo:
dp g ρvdv dp
= ρ sen(θ) + +( ) (4.48)
dL g c g c dL dL f
dp dLw
Donde ( ) ≡ ρ , es el gradiente de presión por pérdidas por fricción.
dL f dL
Ecuación de Darcy
Darcy, Weisbach y otros, dedujeron experimentalmente la siguiente ecuación, expresada en
unidades consistentes:
∆p fρv 2
( ) = (4.49)
∆L f 2g c d
147
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
Ecuación de Fanning
Una ecuación parecida a la de Darcy fue establecida por Fanning, quien obtuvo valores de f cuatro
veces menores a los de Darcy. Esta diferencia se debe al uso del radio hidráulico en lugar del
diámetro de la tubería al formar su correlación.
Factor de fricción
El valor del factor de fricción (f) es función de la rugosidad de la tubería (ε) y del número de
Reynolds (NRe ) , esto es:
Para calcular el valor de f es necesario determinar el régimen de flujo. En conductos, los fluidos se
mueven de acuerdo a cualquiera de los siguientes regímenes de flujo: laminar o turbulento. El flujo
laminar ocurre cuando las partículas de fluido se mueven en líneas rectas paralelas al eje del
conducto. A velocidades mayores, las partículas se mueven de una manera caótica, formando
vórtices y remolinos; en este caso el flujo es turbulento. Reynolds estableció experimentalmente
un parámetro para determinar el régimen de flujo en tuberías. A este parámetro mostrado en la
ecuación (4.53) se le conoce como numero de Reynolds. El flujo laminar se presenta cuando NRe <
2300 y el flujo turbulento cuando NRe > 3100 .
148
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
Para flujo laminar de una sola fase, el factor de fricción depende exclusivamente del número de
Reynolds y está dado por:
64
f= (4.54)
NRe
Para flujo turbulento, el factor de fricción está dado por la ecuación de Colebrook y White [11]:
−2
ε 2.514
f = [−2log ( + )] (4.55)
3.715d √f NRe
Se observa que para calcular f, en este caso, se requiere de un proceso iterativo.
Basándose en la ecuación (4.55) Moody preparó un diagrama para determinar el factor de fricción
en tuberías de rugosidad comercial que se muestra en la Figura 4.17 (más adelante). En este
diagrama se puede notar lo siguiente:
• Para NRe < 2300 f depende exclusivamente del número de Reynolds.
• A partir de NRe = 3100, se inicia la zona de transición. Dentro de esta, f depende tanto de
NRe como de ε⁄d (rugosidad relativa).
• La zona francamente turbulenta se inicia a diferentes valores de NRe , dependiendo del valor
de ε⁄d. En esta zona f es independiente de NRe y varia únicamente con la rugosidad
relativa. El valor de f puede obtenerse, para flujo turbulento, con:
• Cuando el flujo es crítico (2300 < NRe < 3100) el factor de fricción se puede aproximar con
la siguiente expresión:
149
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
∆p g
( ) = ρ sen(θ) = Gradiente de presión debido a la elevación.
∆L e gc
∆p ρvdv
( ) = = Gradiente de presión debido a la aceleración.
∆L acc gc dL
∆p fρv2
( ) = = Gradiente de presión por pérdidas de fricción.
∆L f 2gc d
La pérdida de presión de la fase liquida por fricción, en unidades de campo, se obtiene con la
ecuación de Darcy, de la manera siguiente:
fγL q2 L
∆pf = 0.06056 (4.62)
d5
Al sustituir las ecuaciones (4.61) y (4.62) en la ecuación (4.60), se obtiene:
f γL q2 L
ΔpT = 0.433 γL Δh + 0.6056 (4.63)
d5
• Numero de Reynolds
El número de Reynolds para el líquido en unidades de campo está dado por:
q γL
NRe = 92.2 (4.64)
dμ
Eficiencia de flujo
La rugosidad de las tuberías depende del proceso empleado en su fabricación, su grado y tamaño.
Aun las tuberías nuevas y con mayor razón las almacenadas, mostraran valores aleatorios en su
rugosidad. Los efectos de la corrosión, erosión e incrustaciones, que ocurren en las tuberías en
operación, también afectan las condiciones de flujo. Por lo anterior, los gastos calculados mediante
las correlaciones raramente concuerdan con los medidos.
Para compensar esta imprecisión, generalmente se introduce en los cálculos un factor de eficiencia
E. Este factor se define como la fracción (o porcentaje) del gasto total calculado al manejado
1
El desarrollo de las ecuaciones puede ser consultado en la referencia [29].
150
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
151
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
Para calcular el gasto real de una línea, su gasto teórico se multiplica por el factor E. Para corregir
las pérdidas de presión calculadas, estas se dividen por la raíz cuadrada de E. Este procedimiento
tiene el mismo efecto que cambiar el factor de fricción por un nuevo valor de f⁄E 2 .
f γL q2 L
ΔpT = 0.433 γL Δh + 0.06056 (4.65)
E 2 d5
Flujo de gas
• Ecuación general
De la ecuación (4.59), las pérdidas de presión por fricción se expresan en unidades prácticas según
Darcy como:
f po ̅ + 460) L
q2 γg z̅ (T
∆pf = ( )( ) (4.66)
519.98 To + 460 d5 p̅
En la ecuación anterior, la caída de presión por fricción está en función de la presión media p̅ =
(p1 + p2 )/2 y adicionalmente Δpf puede ser definida como Δpf = p1 − p2 , por tanto, haciendo las
sustituciones anteriores en la ecuación (4.66), se obtiene:
f po ̅ + 460)L
q2 γg (T
(p12 − p22 ) = ( 2
) ( ) ( ) (4.67)
4.61.346 (To + 460) d5
Que es la ecuación que permite evaluar las pérdidas de presión por fricción en gasoductos
horizontales.
2.7044 p̅ γg
Δpe = ( ) (4.69)
144 ̅
z̅ (T + 460)
p̅ γg h
p1 − p2 = 0.01878 (4.70)
̅ + 460)
z̅ (T
152
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
La ecuación (4.71) es la que permite calcular exclusivamente las pérdidas de presión por
elevación. Como se observa, a diferencia de la ecuación de pérdidas por fricción, es necesario
suponer un valor de p2 para obtener una p̅ y así calcular las pérdidas de presión por elevación.
Por lo tanto, se necesita de un proceso iterativo hasta alcanzar que la p2 supuesta sea
aproximadamente igual a la p2 calculada.
Sumando las ecuaciones (4.67) y (4.71) se obtiene la ecuación (4.72) para calcular p1 o p2 en
unidades prácticas y bajo las siguientes suposiciones:
• Flujo en régimen permanente.
• Flujo de una sola fase.
• Energía cinética despreciable.
̅(T
qg2 +γg Z ̅ +460)L ̅2 γg ∙h
p
f po
p12 − p22 = ( )( )( ) + 0.03756 ̅(T̅ (4.72)
461.3462 To +460 d5 Z +460)
La ecuación (4.72) puede ser despejada para determinar el gasto dadas las condiciones de presión
en la entrada y la salida, así como el diámetro de la tubería:
K4 2 0.5
qg = 0.5
[p1 − p22 − (0.03756p̅2 γg h/(Z̅(T
̅ + 460)))] d2.5 (4.73)
L
donde:
0.5
T
2( o
+ 460 0.5 1
K 4 = 461.346 ) ( ) (4.74)
po ̅ ̅
f γg Z (T + 460)
0.2
L (4.75)
d = [( ) (1/ (p12 − p22 − (0.03756 p̅2 γg h/(Z̅(T
̅ + 460)))) ) qg2 ]
K4
• Numero de Reynolds
Al igual que para flujo de líquidos por tuberías, es conveniente obtener una ecuación del número
de Reynolds para flujo de gas, en la que sus factores estén en unidades prácticas. La expresión
del número de Reynolds para gas en unidades prácticas es:
153
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
q g γg (4.76)
NRe = 0.0201056
d μg
• Presión media
Como la distribución de presiones en un gasoducto no es lineal, se recomienda el uso de la
siguiente ecuación para obtener la presión media:
2 p1 3 − p2 3 (4.77)
p̅ = [ ]
3 p1 2 − p1 2
• Eficiencia de flujo
De igual manera como para los líquidos, la eficiencia es un factor de ajuste para compensar los
efectos de corrosión, rugosidad e incrustaciones, que no se consideran en la deducción de las
ecuaciones de flujo, por lo tanto, los resultados obtenidos se tienen que corregir y así obtener un
gasto que mejor se aproxime a la realidad.
El estudio del flujo multifásico permite. Por ejemplo, estimar la presión necesaria en el fondo del
pozo para transportar un determinado gasto de producción hasta la superficie.
Los problemas que se presentan en el flujo multifásico pueden ser divididos dentro de cuatro
categorías principales:
• Flujo multifásico vertical.
• Flujo multifásico horizontal.
• Flujo multifásico inclinado.
• Flujo a través de estranguladores y conexiones.
154
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
El flujo multifásico y los problemas asociados a este han sido estudiados detenidamente, y
numerosas ecuaciones y correlaciones han sido presentadas para predecir el comportamiento del
flujo multifásico vertical, así como el horizontal.
Conceptos fundamentales
Patrones de flujo
Al fluir dos fases simultáneamente, pueden hacerlo de distintas formas. Cada una de estas formas
representa una distribución relativa de una fase con respecto a otra, construyendo un patrón de
flujo o tipo de flujo.
En la Figura 4.18 se muestran los patrones de flujo para tuberías horizontales y en la Figura 4.19
los patrones de flujo para tuberías verticales presentadas por Beggs [8] y Orkiszewski[43]
respectivamente en trabajos experimentales.
Colgamiento
Se define como la relación entre el volumen de líquido existente en una sección de tubería a las
condiciones de flujo, y el volumen de la sección aludida. Esta relación de volúmenes depende de
la cantidad de líquido y gas que fluyen simultáneamente en la tubería. Generalmente, la velocidad
con que fluye el gas es diferente a la velocidad con que fluye el líquido, propiciando un
“resbalamiento” entre las fases.
El término “resbalamiento” se usa para describir el fenómeno natural del flujo a mayor velocidad
de una de las dos fases. Las causas de este fenómeno son diversas. La resistencia al flujo por
fricción es mucho menor en la fase gaseosa que en la fase liquida. La diferencia de
compresibilidades entre el gas y líquido, hace que el gas en expansión viaje a mayor velocidad
que el líquido. Cuando el flujo es ascendente o descendente, actúa la segregación gravitacional
155
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
ocasionando que el líquido viaje a menor velocidad que el gas, para el primer caso, y a mayor
velocidad para el segundo caso.
Para calcular las pérdidas de presión por elevación (carga hidrostática), es necesario predecir con
precisión el colgamiento considerado el resbalamiento entre las fases.
C
2 2
Ngv5
HL = exp [(C1 + C2 sin θ + C3 sin θ + C4 NLμ ) C ] (4.78)
NLv6
Donde:
1 0.25
NLμ = 0.15726μL ( ) (4.79)
ρL σ3
ρL 0.25 (4.80)
NLv = 1.938vsL ( )
σ
ρL 0.25 (4.81)
Ngv = 1.938vsg ( )
σ
Hg = 1 − HL (4.82)
Otro concepto que se usa con frecuencia en los cálculos de gradientes para flujo multifásico, es el
colgamiento sin resbalamiento (λ). Se define en la misma forma que HL pero se calcula a partir de
las condiciones de p y T existentes considerando las producciones obtenidas en superficie (q y
RGA), esto es:
qL
λL = (4.83)
qL + qg
λg = 1 − λL (4.84)
156
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
Velocidades superficiales
Es la velocidad que tendría cualquiera de las fases si ocupara toda la tubería. Se define por las
expresiones siguientes:
qL 0.01191(qo Bo + qw Bw )
vsL = = (4.85)
Ap d2
qg 0.002122 qo (RGA − R s ) Bg
vsg = = (4.86)
AP d2
qL + qg
vm = = vsL + vsg (4.87)
AP
Donde Ap es el área de la sección transversal de la tubería.
Velocidad real
Aplicando el concepto de colgamiento, se puede obtener la velocidad real correspondiente a cada
fase.
qL qL vsL
vL = = = (4.92)
A L A p HL HL
qg qg vsg
vg = = = (4.93)
Ag Ap (1 − HL ) (1 − HL )
ρm = ρL HL + ρg (1 − HL ) (4.94)
Algunos autores calculan la densidad de la mezcla si considerar el resbalamiento entre las fases,
esto es:
157
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
ρn = ρL λL + ρg (1 − λL ) (4.95)
M = Mo + Mg + Mw (4.97)
Mo = 350.5 γo (4.98)
Mg = 0.0764 γg R (4.99)
158
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
Gasto de masa
Se define por la siguiente expresión:
lbm de líquido y gas
wm = (4.108)
segundo
Y puede obtenerse con cualquiera de las ecuaciones siguientes:
qo M
wm = (4.109)
86400
wm = wo + ww + wg (4.110)
Donde:
wo = ρo qo Bo / 15388 (4.111)
ww = ρw qw Bw /15388 (4.112)
Viscosidad de la mezcla
Dependiendo del método que se aplique, se usan las siguientes ecuaciones para obtener la
viscosidad de la mezcla de dos fluidos:
μn = μL λL + μg (1−λL ) (4.114)
H
μm = μL L μg (1−HL ) (4.115)
donde:
μL = μo fo + μw fw (4.116)
q o Bo
fo = (4.117)
q w Bw + q o Bo
Bo
fo = (4.118)
Bo + WOR Bw
fw = 1 − fo (4.119)
159
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
σL = σo fo + σw fw (4.120)
ρL = ρo fo + ρw fw (4.121)
Cuando el flujo es vertical las caídas de presión por aceleración son muy pequeñas, por lo que el
gradiente de presión por aceleración se desprecia y la ecuación (4.59) queda de la siguiente forma:
∆p ∆p ∆p
( ) =( ) + ( ) (4.122)
∆L T ∆L e ∆L f
Las diversas correlaciones existentes para el cálculo del gradiente de presión en tuberías con flujo
multifásico, pueden clasificarse en tres tipos[43]:
• Tipo 1. No se considera resbalamiento entre fases ni patrones de flujo.
La densidad de la mezcla se obtiene en función de las propiedades de los fluidos, corregidas por
presión y temperatura. Las pérdidas por fricción y los efectos del colgamiento se expresan por
medio de un factor de fricción correlacionado empíricamente. No se distinguen patrones de flujo.
Dentro de este tipo están incluidos los métodos de Poettman y Carpenter[46], Fancher y Brown[25] y
Baxendell y Thomas[7].
• Tipo 2. Se considera resbalamiento entre las fases no se distinguen patrones de flujo.
La densidad de la mezcla se calcula utilizando el concepto de colgamiento. El factor de fricción se
correlaciona con las combinaciones de las propiedades del gas y del líquido. Se calcula el
gradiente de presión por correlación, sin embargo, no se distinguen regímenes de flujo. Los
métodos de Hagedorn y Brown[33] y Asheim[4] caen dentro de este tipo de correlaciones.
• Tipo 3. Se considera resbalamiento entre fases y patrones de flujo.
160
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
Para flujo horizontal, el gradiente de presión debido al cambio de elevación es igual a cero por lo
que la ecuación (4.59) se reduce a:
Δp Δp Δp
( ) =( ) +( ) (4.123)
ΔL T ΔL e ΔL ac
Que es:
Δp ρv 2 ρ∆(v 2 )
( ) =f + (4.124)
ΔL T 2g c d 2g c ∆L
La mayoría de los investigadores han adoptado la ecuación anterior para evaluar las
características del flujo de dos fases y posteriormente determinar el gradiente de precisión total.
El problema de la variación de las características del fluido se elimina al suponer que la mezcla
gas-líquido es homogénea en un intervalo pequeño de tubería. Así la ecuación (4.124) se puede
escribir como:
Δp ρm vm 2 ρm ∆(vm 2 )
( ) = ftp + (4.125)
ΔL T 2g c d 2g c ∆L
En donde ftp , ρm , y Vm se refieren a la mezcla y son definidos en forma distinta por los autores de
las diferentes correlaciones.
161
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
agua y aire. Para cada tamaño de tubería, los gastos de líquido y gas fueron variados para que
todos los patrones de flujo fueran observados con la tubería horizontal. Después de establecer
gastos de flujo, el ángulo de inclinación fue variado para que el efecto del ángulo en el colgamiento
de líquido y gradiente de presión fuera observado. El colgamiento de líquido y el gradiente de
presión fueron registrados para ángulos de 0, más y menos 5, 10, 15, 20, 35, 55, 75 y 90 grados
desde la horizontal. Las correlaciones fueron desarrolladas a partir de 584 medidas.
162
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
del patrón de flujo, pero dependen del colgamiento. La gráfica del factor de corrección del factor
de fricción como función del colgamiento de líquido se muestra en la Figura 4.23.
Figura 4.22 Mapa de patrones de flujo de Figura 4.23 Factor de fricción de dos
Beggs y Brill[8]. fases[8].
Los límites de cada patrón de flujo se muestran en la Tabla 4.3 (más adelante).
• Calculo del colgamiento de líquido
Cuando el patrón de flujo es de transición el colgamiento de líquido debe ser calculado interpolando
los patrones de flujo segregado e intermitente con la siguiente ecuación:
L3 −NFr
donde A =
L3 −L2
163
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
Donde HL(0) es el colgamiento de líquido que existiría si la tubería fuese horizontal y es calculado
con la siguiente ecuación:
aλL b
HL(0) = (4.133)
NFr c
Donde a, b y c son determinados Tabla 4.4 Coeficientes de la ecuación (4.133)
dependiendo del patrón de flujo de la Tabla para diferentes patones de flujo[8].
4.4 con la restricción de que HL(0) > λL Patrón de
a b c
flujo
El factor de corrección del colgamiento del Segregado 0.98 0.4846 0.0868
líquido por efecto del ángulo de inclinación Intermitente 0.845 0.5351 0.0173
está dado por: Distribuido 1.065 0.5824 0.0609
ψ = 1 + 0.3C (4.135)
Donde d, e, f y g son determinados a partir de la Tabla 4.5. Con la restricción de que C≥0.
164
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
ftp
El factor de fricción normalizado ( ) es función del colgamiento del líquido HL(θ) , y del colgamiento
fn
sin resbalamiento λL y puede obtenerse de la siguiente expresión:
ftp
= es (4.141)
fn
En el cual S e Y se calculan respectivamente con las expresiones
ln(Y)
S= (4.142)
−0.0523 + 3.182 ln(Y) − 0.8725 ln(Y)2 + 0.01853 ln(Y)4
λL
Y= (4.143)
HL(θ) 2
El valor de S se indetermina en el rango de 1<y<1.2 para este intervalo S se calcula de a siguiente
manera:
165
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
166
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
167
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
168
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
En el desarrollo de sus correlaciones los autores han repuesto diversas relaciones de presión
crítica. Establecer un valor fijo para dicha relación implica una simplificación que indudablemente
se reflejara en la exactitud de las predicciones que se obtengan al aplicar las correlaciones
mostradas a continuación. Por lo anterior es recomendable que al desarrollar una correlación se
investiguen las fronteras del flujo crítico y además que las relaciones se cumplan para los casos
extremos, o sea: flujo solo de gas o solo de líquido.
Tomando como base la relación entre las presiones antes y después de un orificio para flujo sónico
de una fase, Gilbert recomendó para tener flujo sónico una relación de 0.588 o menor, entre la
presión promedio en el sistema de recolección (después del estrangulador) y la presión en la boca
del pozo (antes del estrangulador).
Ros[47] orientó su trabajo al flujo de mezclas con alta relación gas-aceite, en las que el gas fue la
fase continua. En su desarrollo llego a una expresión similar a la de Gilbert; pero con coeficientes
diferentes. Aparentemente su expresión la comprobó con datos de campo.
Achong[1] también revisó la ecuación de Gilbert y estableció una expresión que valido
comparándola con más de 100 pruebas de campo.
La forma general de las ecuaciones desarrolladas por los investigadores citados es:
AqL RB
p1 = (4.149)
dCϕ
donde:
p1 = Presión corriente arriba (lb/pg 2 ).
qL =Producción de líquido (bl/día).
R = Relación gas-líquido (pies 3 /bl).
dϕ =Diámetro del estrangulador (64avos de pg).
Tabla 4.6 Constantes de la ecuación (4.149).
A,B,C = Constantes que dependen de la
Correlación A B C
correlación y se toman los valores de la
Gilbert 10.0 0.546 1.89
Tabla 4.6.
Ros 17.40 0.500 2.00
Baxendell 9.56 0.546 1.93
Achong 3.82 0.650 1.88
169
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
La razón por la cual el sistema integral de producción se somete a la técnica del análisis nodal, es
porque este involucra en sus cálculos todos los elementos del sistema y permite determinar el
efecto de su variación en la capacidad de transporte y tener una imagen en conjunto del
comportamiento del pozo para estimar su potencial. Desde la perspectiva de evaluación esto es
posible, sin embargo, en condiciones de diseño (sin restricciones económicas) es factible
dimensionar el SIP en su conjunto para obtener la capacidad de transporte requerida, o bien, la
capacidad de transporte idónea, teniendo como límite tan solo la capacidad de afluencia del
yacimiento.
El análisis nodal se puede aplicar a pozos fluyentes, inyectores o productores mediante un sistema
artificial de producción. Por otra parte, del análisis del comportamiento del sistema se pueden
identificar las posibles restricciones que modifiquen negativamente la capacidad de transporte del
mismo. Asimismo, es posible estudiar y comprender con relativa facilidad el comportamiento de
estranguladores, válvulas de seguridad, etc.
Las principales pérdidas de presión en el sistema integral de producción son las siguientes:
• Pérdidas de presión en el medio poroso. Representan ente el 10 y el 50% de las pérdidas
totales.
• Pérdidas de presión en la tubería vertical. Representan entre el 30 y el 80% de las pérdidas
totales.
• Pérdidas de presión en la línea de descarga. Representan entre el 5 y 30% de las pérdidas
totales.
El procedimiento que se debe seguir para realizar el análisis nodal a un sistema integral de
producción, requiere de la selección de un nodo y después suponer diferentes gastos de
producción y calcular la presión en este corriente abajo y corriente arriba, empezando con las
presiones constantes que son usualmente pws y psep , finalmente se grafican dos curvas, una de
inflow y otra de outflow (curvas de oferta y demanda respectivamente), y la intersección de estas
curvas es la solución del sistema.
En la Figura 4.26 se muestra un sistema de producción, en el que aparecen las posibles pérdidas
de presión desde el yacimiento hasta el separador. Este sistema es común en instalaciones
marinas, sin embargo, para efectos de estudio de este capítulo se utilizará un sistema de
producción como el mostrado en la Figura 4.27. Una vez delineado el procedimiento general de
manera sencilla, pueden enfrentarse con éxito problemas más complejos.
170
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
En general las expresiones para el cálculo de la presión en el nodo pueden expresarse de acuerdo
a las ecuaciones (4.150) y (4.151).
Inflow
Outflow
171
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
Inflow
Outflow
Procedimiento de solución:
1. Partiendo de la presión media del yacimiento (teniendo en cuenta que pr es un valor
contante y no varía con el gasto), asumir varios gastos de producción y construir la curva
de IP o IPR.
2. A partir de la presión del separador (teniendo en cuenta que ps es un valor constante y no
varía con el gasto), asumir varios gastos de producción y obtener la presión en la cabeza
del pozo pwh necesaria para mover los fluidos a través de la línea de descarga (L.D.) al
separador. Utilizando una correlación de flujo multifásico en tubería horizontal o curvas de
gradiente de presión.
3. Usando los mismos gastos del punto 2, y las presiones en la cabeza del pozo, determinar
la presión de fondo fluyendo, pwf necesaria para mover los fluids a través de la tubería de
producción (T.P.) hasta la cabeza del pozo, utilizando una correlación de flujo multifásico
vertical o las curvas de gradiente de presión.
4. Graficar la curva de IP o IPR calculada en el primer paso (curva de inflow). Sobre la misma
grafica se grafican los gastos y presiones de fondo fluyendo obtenidas en el tercer paso
(curva de outflow).
La intersección de las curvas será como se muestra en la Figura 4.28, mostrará el gasto posible
para este sistema, este gasto no es el gasto máximo u optimo del sistema, pero es el gasto al cual
172
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
Inflow
Outflow
173
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
Procedimiento de solución
1. Partiendo de la presión media del
yacimiento (tomando en cuenta que pr
es un valor constante y no varía con el
gasto), asumir varios gastos de
producción y calcular la presión de fondo Figura 4.31 Cabeza del pozo como nodo
solución.
fluyendo (pwf ) para dichos gastos
utilizxando la ecuación que mejor describa el comportamiento de flujo en el yacimiento.
2. Utilizando los mismos gastos y las presiones de fondo fluyendo (pwf ) obtenidas en el
primer paso, determinar las presiones en la cabeza del pozo (pwh ) necesarias para mover
los fluidos a través de la tubería de producción (T.P.) hasta la cabeza del pozo, utilizando
una correlación de flujo multifásico o curvas de gradiente de presión.
3. Partiendo de la presión del separador (teniendo en cuenta que ps es un valor constante y
no varía con el gasto), asumir varios gastos de producción y obtener la presión en la cabeza
del pozo (pwh ) necesaria par mover los fluidos a través de la línea de descarga (L.D.) hasta
el separador, utilizando una correlación de flujo multifásico en tubería horizontal o curvas
de gradiente de presión.
4. Graficar los gastos y las presiones en la cabeza del pozo, obtenidas en el paso 2 (curva de
inflow). Sobre esta misma gráfica, graficar los gastos y las presiones en la cabeza del pozo,
obtenidas en el paso 3 (curva de outflow). La intersección mostrará el gasto al cual el pozo
producirá para las condiciones dadas del yacimiento y del sistema total de tuberías que
está instalado.
Al considerar como nodo solución la cabeza del pozo, la línea de descarga se aísla y de esta forma
es fácil mostrar el efecto que el cambio de su diámetro tiene sobe el gasto. Esto se observa en la
Figura 4.32 y Figura 4.33.
Figura 4.32 Cabeza del pozo como nodo Figura 4.33 Influencia del cambio de
solución. diámetro de una línea de escurrimiento.
174
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
Las expresiones para las curvas de Inflow y Outflow son las siguientes:
Inflow
Outflow
Procedimiento de solución
1. Partiendo de la presión media del yacimiento, asumir varios gastos de producción y calcular
la presión de fondo fluyendo (pwf ) para dichos gastos utilizando la ecuación que mejor
describa el comportamiento de flujo en el yacimiento.
2. Utilizando los mismos gastos y las presiones de fondo fluyendo (pwf ) obtenidas en el primer
paso, determinar las presiones en la cabeza del pozo (pwh ) necesarias para mover los
fluidos a través de la tubería de producción hasta la cabeza del pozo, utilizando una
correlación de flujo multifásico o curvas de gradiente de presión.
3. Utilizando los mismos gastos y las presiones
en la cabeza del pozo (pwh ) obtenidas en el
paso anterior, se deerminan las presiones al
final de la línea de descarga (L.D.), las cuales
serán las presiones a la entrada del
separador, utilizando una correlación de flujo
multifásico en tuberías horizontales o curvas
de gradiente de presión.
4. Graficar los gastos y las presiones a la
entrada del separador, obtenidas en el paso
3 (curva inflow). Sobre esa misma gráfica,
graficar la presión del separador la cual es
independiente del gasto y depende de otros
factores (curva de outflow) como se muestra Figura 4.34 Efecto de la presión de
en la Figura 4.34. La intersección de las separación sobre el gasto máximo del
sistema.
curvas mostrará el gasto posible para este
sistema, este gasto no es el gasto máximo u óptimo del sistema, pero es el gasto al cual el
175
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
pozo producirá para las condiciones dadas del yacimiento y del sistema total de tuberías
que está instalado.
Las expresiones para las curvas de Inflow y Outflow son las siguientes:
Inflow
Outflow
Procedimiento de solución:
5. A partir de ps , obtener la pwh , para diferentes
gastos supuestos.
6. Obtener la pwf para los gastos supuestos, y a
partir de los valores de pwh calculados, aplicar
el método seleccionado de flujo multifásico para
la T.P. o de curvas de gradiente de presión.
7. Determinar, con los valores de las pwf anteriores
las correspondientes pws para cada gasto
supuesto.
8. Graficar los valores de pws contra el gasto e Figura 4.35 Yacimiento como nodo
incluir ahí la línea que represente la pws actual. solución.
Como en la Figura 4.35.
176
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
Las expresiones para las curvas de inflow y outflow son las siguientes:
Inflow
Outflow
Para un estrangulador localizado en la cabeza del pozo en el cual exista flujo crítico se obtiene las
siguientes relaciones para encontrar la presión del nodo.
a) Relación de presiones Pd /Pe = 0.5
(
2(Psep − ∆PL.D. ) = Pnodo
4.167)
Para un estrangulador localizado en el separador, la presión a la entrada del estrangulador, es la
presión al final de la línea de descarga (L.D.) por lo tanto se obtiene las siguientes expresiones:
b) Relación de presiones Pd /Pe = 0.5
(
2Psep − ∆PL.D. = Pnodo
4.168)
La elección del nodo dos como nodo de solución, responde a lo indicado en el apartado de la
cabeza del pozo como nodo de solución. En el procedimiento de solución se agrega un paso más,
en el que se incluye el efecto del cambio del diámetro del estrangulador.
Procedimiento de solución
1) Partiendo de la presión media del yacimiento (recordando que la Pr es n valor constante,
no varía con el gasto), asumir varios gastos de producción y calcular la presión de fondo
fluyendo (Pwf ) para dichos gastos de producción, utilizando la ecuación que mejor describa
el comportamiento de flujo en el yacimiento.
2) Utilizando los mismos gatos y las presiones de fondo fluyendo (Pwf ) obtenidas en el paso
1, se determinan las presiones en la cabeza del pozo (Pwh ) necesarias para mover los
fluidos a través de la tubería de producción (T.P.) hasta la cabeza del pozo, utilizando
correlaciones de flujo multifásico para tubería vertical.
3) Partiendo de la presión del separador (dado que Psep es constante, no varía con el gasto),
asumir varios gastos de producción y dependiendo del lugar donde se encuentre el
estrangulador y del tipo de fluido transportado (flujo de agua o multifásico) se elige alguna
de las ecuaciones anterior y, se obtiene la presión en la cabeza del pozo (Pwh = Pnodo )
necearía para mover los fluidos a través del estrangulador y de la línea de descarga (L.D.)
hasta el separador, utilizando una correlación de flujo multifásico en tubería horizontal.
177
CAPÍTULO 4 POTENCIAL DE PRODUCCIÓN DE POZOS PETROLEROS
4) Graficar los gastos y las presiones en la cabeza del pozo (Pwh = Pnodo ) obtenidas en el
paso 2 (curva de inflow). Sobre esa misma gráfica, se grafican los gastos y las presiones
178
Capítulo 5
APLICACIÓN DE LAS HOJAS
DE CÁLCULO ELECTRÓNICAS A
LA INGENIERÍA PETROLERA
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
Una nueva pestaña llamada Ingeniería Petrolera se desarrolla como parte de este trabajo, la
pestaña se muestra en la Figura 5.1.
En la figura anterior se pueden distinguir cuatro grupos de botones, el primero corresponde a las
curvas de declinación, el segundo a balance de materia y el tercer grupo a simulación numérica
de yacimientos, estos tres grupos corresponden a la elaboración de pronósticos de producción. El
cuarto grupo corresponde al análisis nodal.
180
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
La realización de un pronóstico mediante curvas de declinación se lleva a cabo con los botones
del grupo Curvas de declinación de la pestaña Ingeniería petrolera mostrado en la Figura 5.2
el cual se describe a continuación:
1. Botón Identificar modelo: Muestra el formulario
FIDENDEC de la Figura 5.3. El apartado Datos
permite pedir al usuario datos de tiempo y gasto que
son la base para las curvas de declinación, el apartado
Seleccionar gráfica permite cambiar entre los gráficos Figura 5.2 Grupo Curvas de
característicos de las curvas de declinación, las declinación de la pestaña
opciones disponibles son las mostradas en la Figura Ingeniería petrolera.
3.4 y Figura 3.5.
En la parte inferior izquierda se encuentra el apartado Realizar pronóstico, el cual permite calcular
los parámetros Di, n y qi para los datos seleccionados e insertar los parámetros para realizar el
pronóstico al presionar el botón Aceptar.
181
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
Los resultados se muestran en una hoja de Excel como en la Figura 5.4 donde se colocan los
datos de entrada, los gastos calculados, producción acumulada, los parámetros importantes del
modelo y dos gráficas, una de gasto contra tiempo y la otra de producción acumulada contra
tiempo.
Figura 5.4 Hoja de resultados para los pronósticos de producción mediante curvas de
declinación.
2. Botón Exponencial: Muestra el formulario de la Figura 5.5 para ingresar los datos de
tiempo y gasto, posteriormente calcula los parámetros de la declinación con el modelo
Exponencial y pregunta al usuario los parámetros para realizar el pronóstico al presionar
Aceptar. Finalmente inserta los resultados como en la Figura 5.4.
182
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
Figura 5.6 Opciones de gráficas Figura 5.7 Gráfica de gasto vs tiempo en una
disponibles en curvas de declinación. declinación exponencial.
183
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
184
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
Tiempo (años) Gasto (BPD) Tiempo (años) Gasto (BPD) Tiempo (a) Gasto (BPD)
0 10 1.4 6.53 2.7 4.94
0.2 9.29 1.5 6.37 2.8 4.84
0.3 8.98 1.6 6.22 2.9 4.76
0.4 8.68 1.7 6.08 3.0 4.67
0.5 8.4 1.8 5.94 3.1 4.59
0.6 8.14 1.9 5.81 3.2 4.51
0.7 7.9 2.0 5.68 3.3 4.44
0.8 7.67 2.1 5.56 3.4 4.36
0.9 7.45 2.2 5.45 3.5 4.29
1.0 7.25 2.3 5.34 3.6 4.22
1.1 7.05 2.4 5.23 3.7 4.16
1.2 6.87 2.5 5.13 3.8 4.09
1.3 6.69 2.6 5.03 3.9 4.03
185
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
186
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
Tiempo (años) Gasto (BPD) Tiempo (años) Gasto (BPD) Tiempo (a) Gasto (BPD)
0 9.63 1.5 6.1 2.9 4.25
0.2 9.28 1.6 5.93 3.0 4.15
0.3 8.95 1.7 5.77 3.1 4.06
0.4 8.64 1.8 5.61 3.2 3.97
0.5 8.35 1.9 5.46 3.3 3.88
0.6 8.07 2.0 5.32 3.4 3.8
0.7 7.81 2.1 5.18 3.5 3.71
0.8 7.55 2.2 5.05 3.6 3.64
0.9 7.32 2.3 4.92 3.7 3.56
1.0 7.09 2.4 4.8 3.8 3.49
1.1 6.87 2.5 4.68 3.9 3.41
1.2 6.67 2.6 4.57 4.0 3.34
1.3 6.47 2.7 4.46
1.4 6.28 2.8 4.35
187
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
2. Botón Método de Muskat: Muestra el formulario FEBM para introducir los datos necesarios
para la realización del pronóstico como en la Figura 5.18. Al presionar aceptar se llama a
la subrutina EBMMuskat y realiza el pronóstico de producción.
Finalmente muestra los resultados en una nueva hoja como en la Figura 5.19.
188
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
189
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
Sg krg/kro Sg krg/kro
0.0750 0.0010 0.2792 0.1604
0.0800 0.0015 0.3076 0.2244
0.0894 0.0035 0.3527 0.3848
0.0938 0.0058 0.4050 0.7178
0.1011 0.0102 0.4552 1.2761
0.1098 0.0151 0.4945 2.0367
0.1200 0.0192 0.5447 3.4931
0.1353 0.0253 0.5999 7.0011
0.1636 0.0363 0.6465 13.2157
0.1942 0.0548 0.6734 21.8649
0.2392 0.0966 0.6967 38.4656
0.2451 0.1042
Ejemplo 1 Método de Tracy
1. Seleccionar el botón Método de Tracy y seleccionar los datos como en la Figura 5.20.
190
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
Figura 5.21 Resultados del pronóstico de producción con la EBM método de Tracy.
Ejemplo 2 Método de Muskat
1. Seleccionar el botón Método de Muskat y seleccionar los datos como en la Figura 5.20.
2. Presionar aceptar y colocar el nombre de la hoja de resultados, los resultados se mostrarán
en una nueva hoja como lo muestra la Figura 5.22.
191
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
Figura 5.22 Resultados del pronóstico de producción con la EBM método de Muskat.
Ejemplo 3 Método de Tarner
3. Seleccionar el botón Método de Tarner y seleccionar los datos como en la Figura 5.20.
4. Presionar aceptar y colocar el nombre de la hoja de resultados, los resultados se mostrarán
en una nueva hoja como lo muestra la Figura 5.23
Figura 5.23 Resultados del pronóstico de producción con la EBM método de Tarner.
192
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
193
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
194
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
El yacimiento cuenta con un pozo productor de 150 BPD en la cuarta celda como lo muestra la
Figura 5.33.
195
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
Proceso de solución:
1. Insertar los datos del yacimiento presionando
el botón Propiedades del yacimiento y llenando
los datos requeridos por el formulario de la
Figura 5.25.
2. Presionar el botón Propiedades del fluido e
Figura 5.33 Representación del
insertar los datos necesarios en el formulario
yacimiento en una dimensión.
de la Figura 5.27.
3. Presionar el botón Crear modelo, se creará un modelo similar al mostrado en la Figura
5.26.
4. Elegir Insertar pozo productor e insertar el gasto del pozo y la ubicación como en la Figura
5.33.
5. Presionar el botón Condiciones iniciales y llenar los campos requeridos.
6. Presionar el botón Simular y escribir al nombre de la hoja donde se insertarán los
resultados, la tabla con los resultados finales se muestra en la Figura 5.34 puede
observarse que la presión más baja corresponde a la cuarta celda, donde se encuentra el
pozo productor y se ha alcanzado la presión de burbuja.
196
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
El yacimiento cuenta con un pozo productor de 200 BPD en la celda 61 como lo muestra la Figura
5.35.
Figura 5.35 Representación del yacimiento en dos dimensiones con un pozo productor.
197
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
198
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
Figura 5.39 Representación del yacimiento en dos dimensiones con un pozo productor.
199
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
200
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
Figura 5.45 Formulario FDATOSNODAL mostrado al hacer clic en el botón Datos análisis
nodal de la pestaña Ingeniería petrolera.
201
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
202
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
Figura 5.51 Gráfica de resultado del análisis nodal eligiendo el separador como nodo solución.
203
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
La elección del separador como nodo solución hace más fácil visualizar el efecto de la presión de
separación en el gasto, si se varía la presión de separación en 150 y 50 psia, el efecto puede
visualizarse en la Figura 5.51.
Figura 5.53 Gráfica de resultado del análisis nodal eligiendo la cabeza de pozo como nodo
solución.
Al elegir la cabeza de pozo como nodo solución la línea de descarga es aislada y es fácil ver el
efecto de cambiar el diámetro de esta. La Figura 5.54 muestra el efecto de cambiar el diámetro de
la línea de descarga a 3” donde el gasto obtenido es 764 BPD comparado con la línea de descarga
de 2” donde se obtenía un gasto de 633 BPD.
204
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
Figura 5.56 Gráfica de resultado del análisis nodal eligiendo el fondo de pozo como nodo
solución.
205
CAPÍTULO 5 APLICACIÓN DE LAS HOJAS DE CÁLCULO ELECTRÓNICAS A LA INGENIERÍA PETROLERA
Figura 5.57 Gráfica de resultado del análisis nodal eligiendo el fondo de pozo como nodo
solución.
206
CONCLUSIONES Y RECOMENDACIONES
CONCLUSIONES Y RECOMENDACIONES
Conclusiones y recomendaciones
• Las hojas de cálculo son una herramienta poderosa para la ingeniería, y es de suma
importancia que los ingenieros petroleros sepan usarlas adecuadamente para poder
mejorar su desempeño profesional.
• La importancia de que los alumnos conozcan un lenguaje de programación les permite
tener una amplia comprensión de los problemas analizados, ya que en ocasiones el sentido
y objetivo principal de los temas es hecho a un lado porque que no se conocen las
herramientas para solucionarlos.
• La programación en hojas de cálculo es muy similar a otros lenguajes de programación y
representa una opción de programación simple y accesible ya que la mayoría de los
alumnos conoce el funcionamiento de las hojas de cálculo como es Excel.
• La programación en Excel es interactiva y sencilla de entender, porque es posible grabar
las acciones que queremos realizar y después analizar el código del procedimiento
generado.
• Es muy recomendable conocer la programación en hojas de cálculo para automatizar
procedimientos usados en la ingeniería que normalmente tomarían tiempo para realizarse.
• Los problemas presentados pueden desarrollarse ampliamente en las hojas de cálculo y
conformar robustos libros de Excel que pueden usarse con toda seguridad en la ingeniería
petrolera.
• Los pronósticos de producción son una herramienta muy importante para la ingeniería al
igual que el análisis de la producción y es útil poderlos automatizar en algún lenguaje de
programación para evaluar el potencial de producción de un pozo petrolero.
• La guía presentada es compacta y si los usuarios necesitan profundizar en el conocimiento
de las hojas de cálculo se pueden consultar los libros presentados en la bibliografía.
207
REFERENCIAS
Referencias
REFERENCIAS
[1] Achong, I. (1961). Revised Beam Performance Formula For Lake Maracaibo. Well
International Report.
[2] Amelot, M. (2013). VBA Excel 3013, programación en Excel Macros y lenguaje VBA .
Barcelona: Ediciones ENI.
[3] Arps, J. (1945). Analysis of Decline Curves. Trans. AIME, 160(1), 228-247. Society of
Petroleum Engineers. doi:10.2118/945228-G
[4] Asheim, H. (1986). MONA, An Accurate Two-Phase Well Flow Model Based on Phase
Slippage. SPE Production Engineering, 1(3). Society of Petroleum Engineers.
doi:10.2118/12989-PA
[5] Aziz, K., Govier, G., & Fogarasi, M. (1972). Pressure Drop In Wells Producing Oil And
Gas. Journal of Canadian Petroleum Technology, 11(3). Petroleum Society of Canada.
doi:10.2118/72-03-04
[6] Baxendell, P. (1957). Bean performance--Lake Maracaibo wells. Houston, Texas:
Internalreport, Shell Oil Company.
[7] Baxendell, P., & Thomas, R. (1961). The Calculation of Pressure Gradients In High-
Rate Flowing Wells. Journal of Petroleum Technology, 13(10). Society of Petroleum
Engineers. doi:10.2118/2-PA
[8] Beggs, D., & Brill, J. (1973). A Study of Two-Phase Flow In Inclined Pipes. Journal of
Petroleum Technology, 25(5). Society of Petroleum Engineers. doi:10.2118/4007-PA
[9] Bertuzzi, A., Tek, M., & Poettman, F. (1956). Simultaneous Flow of Liquid and Gas
Through Horizontal Pipe. Society of Petroleum Engineers.
[10] Boyund, G., Lyons, W., & Ghalambor, A. (2007). Petroleum Production Engineering,
A Computer-Assisted Approach. Oxford, United Kingdom: Elsevier Science &
Technology Books.
[11] Brown, K. E. (1984). The Technology of Artificial Lift Methods. 4. Tulsa: Pennwell
Books.
[12] Burden, R., & Faires, J. (2011). Numerical differentiation. En Numerical Analysis (9
ed., págs. 174-180). Boston, MA: Brooks Cole Pub.
[13] Chierici, G., Ciucci, G., & Sclocchi, G. (1974). Two-Phase Vertical Flow In Oil Wells -
Prediction of Pressure Drop. Journal of Petroleum Technology, 26(8). Society of
Petroleum Engineers. doi:10.2118/4316-PA.
208
REFERENCIAS
[14] Craft, B. C., & Hawkins, M. (1991). Applied Petroleum Reservoir Engineering (2 ed.).
Upper Saddle River, United States: Prentice Hall.
[15] Dake, L. (1994). The Practice of Reservoir Engineering. Developments in Petroleum
Science, 26. Amsterdan: Elsevier Science & Technology.
[16] Darcy, H. (1856). Les fontaines publiques de la ville de Dijon. Paris: Victor Dalmont
Éditeur.
[17] Dias-Couto, L. (1982). General Inflow Performance Relationship for Solution-Gas
Reservoir Wells. Journal of Petroleum Technology, 34(2), 285-288. Society of
Petroleum Engineers. doi:10.2118/9765-PA
[18] Dukler, A. E., Wicks, M., & Cleveland, R. G. (1964). Frictional pressure drop in two-
phase flow: A. A comparison of existing correlations for pressure loss and holdup. 10.
AIChE J. doi:10.1002/aic.690100117
[19] Duns, H., & Ros, N. (1963). Vertical flow of gas and liquid mixtures in wells. 6th World
Petroleum Congress, 19-26 June, Frankfurt am Main, Germany. Frankfurt am Main,
Germany: World Petroleum Congress.
[20] Eaton, B., Andrews, D., & Knowles, C. (1967). The Prediction of Flow Patterns, Liquid
Holdup and Pressure Losses Occurring During Continuous Two-Phase Flow in
Horizontal Pipelines. Journal of Petroleum Technology, 19(6). Society of Petroleum
Engineers. doi:10.2118/1525-PA
[21] Economides, M., Hill, D., & Ehlig-Economides, C. (1994). Petroleum Productions
Systems. Upper Saddle River, United States: Prentice Hall.
[22] Eickmier, J. (1968). How to Accurately Predict Future Well Productivities. World Oil.
[23] Ertekin, T., Abou-Kassem, J., & King, G. (2001). Basic Applied Reservoir Simulation.
Richardson, Texas: Society of Petroleum Engineers.
[24] Escobar, F. (2008). Fundamentos de ingeniería de yacimientos. Colombia: Editorial
Universidad Surcolombiana.
[25] Fancher, G., & Brown, K. (1963). Prediction of Pressure Gradients For Multiphase
Flow In Tubing. Society of Petroleum Engineers Journal, 3(1). Society of Petroleum
Engineers. doi:10.2118/440-PA
[26] Fetkovich, M. (1973). The Isochronal Testing of Oil Wells. Society of Petroleum
Engineers of AIME. doi:10.2118/4529-MS
[27] Fetkovich, M. (1980). Decline Curve Analysis Using Type Curves. JPT, 32(06). Society
of Petroleum Engineers. doi:10.2118/4629-PA
[28] Flanigan, O. (1958). Effect of Uphill Flow On Pressure Drop In Design of Two-Phase
Gathering Systems. Oil and Gas Journal .
209
REFERENCIAS
[29] Garaicochea, F., Huicochea, C., & López, O. (1991). Transporte de hidrocarburos por
ductos. México: Colegio de Ingenieros Petroleros de México A.C.
[30] Gilbert, W. (1954). Flowing and Gas-lift well Performance. Drilling and Production
Practice. New York, New York: American Petroleum Institute.
[31] Golan, M., & Whitson, C. H. (1986). Well performance. Boston: International Human
Resources Development Corp, Dordrecht.
[32] Gould, T., & Tek, M. (1974). Two-Phase Flow Through Vertical, Inclined, Or Curved
Pipe. Journal of Petroleum Technology, 26(8). Society of Petroleum Engineers.
doi:10.2118/4487-PA
[33] Hagedorn, A., & Brown, K. (1965). Experimental Study of Pressure Gradients
Occurring During Continuous Two-Phase Flow in Small-Diameter Vertical Conduits.
Journal of Petroleum Technology, 17(04). Society of Petroleum Engineers.
doi:10.2118/940-PA
[34] Havlena, D., & Odeh, A. (1963). The Material Balance as an Equation of a Straight
Line. Journal of Petroleum Technology, 15(18). Society of Petroleum Engineers.
doi:10.2118/559-PA
[35] Ikoku, C. U. (1984). Natural Gas Production Engineering. NY: John Wiley and Sons.
[36] Jelen, B. (2015). Excel 2016 VBA and Macros. Estados Unidos, Estados Unidos:
Pearson Educarion, Inc.
[37] Le Guen, F. (2012). Macros y Lenguaje VBA, aprender a programar en excel.
Barcelona: Ediciones ENI.
[38] Lockhart, R., & Martinelli, R. (1949). Proposed correlation of data for isothermal two-
phase, two-component flow in pipes. Chemical Engineering Progress, 45, 39-48.
[39] Mukherjee, H., & Brill, J. (1983). Liquid Holdup Correlations for Inclined Two-Phase
Flow. Journal of Petroleum Technology, 35(5). Society of Petroleum Engineers.
doi:10.2118/10923-PA
[40] Mukherjee, H., & Brill, J. (1985). Pressure Drop Correlations for Inclined Two-Phase
Flow. Journal of Energy Resources Technology, 107(4). Petroleum Fluid Mechanics.
doi:10.1115/1.3231233
[41] Muskat, M. (1945). The Production Histories of Oil Producing Gas-Drive Reservoirs.
Journal of Applied Physics, 16, 147-169. doi:10.1063/1.1707566
[42] Muskat, M., & Meres, M. W. (1936). The Flow of Heterogeneous Fluids Through
Porous Media. Journal of Applied Physics, 7, 346. doi:10.1063/1.1745403
[43] Orkiszewski, J. (1967). Predicting Two-Phase Pressure Drops in Vertical Pipe. Journal
of Petroleum Technology, 19(6). Society of Petroleum Engineers. doi:10.2118/1546-PA
210
REFERENCIAS
211
NOMENCLATURA
Nomenclatura
NOMENCLATURA
Símbolo Significado Unidades
𝐴 Área (pies2)
𝐴𝑝 Área de la sección transversal (pies2)
𝐴𝑥 Área transversal a la dirección X (pies2)
𝐴𝑦 Área transversal a la dirección Y (pies2)
𝐴𝑧 Área transversal a la dirección Z (pies2)
𝐵 Constante de intrusión de agua
𝐵 Factor de volumen de formación (bl@cy/bl@ce)
𝐵° Factor de volumen a la presión 𝑝0 (bl@cy/bl@ce)
𝐵𝑔 Factor de volumen del gas (bl@cy/pie3@ce)
𝐵𝑔 Factor de volumen del gas inicial (bl@cy/pie3@ce)
𝑖
𝐵𝑜 Factor de volumen del aceite (pie3@cy/pie3@ce)
𝐵𝑜 𝑖 Factor de volumen del aceite inicial (bl@cy/bl@ce)
𝐵𝑡 Factor de volumen total (bl@cy/bl@ce)
𝐵𝑤 Factor de volumen del agua (bl@cy/bl@ce)
𝑐 Compresibilidad (lpc-1)
𝑐𝑓 Compresibilidad de la formación (lpc-1)
𝑐𝑟 Compresibilidad de la roca (lpc-1)
𝑐𝑡 Compresibilidad total (lpc-1)
𝑐𝑤 Compresibilidad del agua (lpc-1)
𝐶 Constante de intrusión de agua
𝑑 Diámetro (pies)
𝐷 Tasa de declinación nominal (años-1, meses-1)
𝐷𝑖 Tasa de declinación nominal inicial (años-1, meses-1)
𝑑𝜙 Diámetro del estrangulador 64avos de pg.
𝐸 Eficiencia de flujo
𝐸𝐵𝑀 Ecuación de balance de materia
𝐸𝐹 Eficiencia de flujo (fracción)
𝐸𝑓,𝑤 En la EBM toma expansión del agua connata y formación (bl@cy/bl@ce)
𝐸𝑔 En la EBM toma en cuenta la expansión de la capa de gas (bl@cy/bl@ce)
𝐸𝑜 En la EBM expansión del aceite y gas disuelto (bl@cy/bl@ce)
𝑓 Función de ángulo
𝑓 Factor de fricción
𝑓 Fracción
𝐹 Término de producción en la EBM (bl@cy)
𝐹𝑟 Factor de recuperación (fracción)
212
NOMENCLATURA
213
NOMENCLATURA
214
NOMENCLATURA
215
NOMENCLATURA
Superíndices
° Referencia
𝑛 Tiempo actual
𝑛+1 Tiempo futuro
𝑛−1 Tiempo pasado
𝑖, 𝑗, 𝑘 posición
216
APÉNDICES
APÉNDICE A
Apéndice A
APÉNDICE A
Contenido del apéndice:
218
APÉNDICE A
219
APÉNDICE A
220
APÉNDICE A
50. Call GRAFICABASE(C, 6, 2, 2, "Log Prod. acumulada (Np)", "Log Gasto (q)")
51. Call GRAFICATOIMAGEN(C, Image1)
52. Case 6 '(-dq/qdt) vs Gasto (q)
53. Call CALCULAD(VecT, VecQ, DerDec, Ele - 1)
54. For I = 1 To Ele - 1
55. DerDec(I) = (-1 / VecQ(I)) * DerDec(I)
56. Next I
57. ReDim Preserve VecQ(1 To Ele)
58. Call GRADECLINACION(C, VecQ, DerDec, 1, 1, "Gasto (q) vs D", _
59. "Gasto (q)", "D (-dq/qdt)")
60. Call GRAFICATOIMAGEN(C, Image2)
61. Call GRAFICABASE(C, 7, 1, 1, "Gasto (q)", "D (-dq/qdt)")
62. Call GRAFICATOIMAGEN(C, Image1)
63. End Select
64. Else
65. ComboBox3.Value = "Seleccionar gráfica"
66. End If
67. FIDENDEC.Repaint
68. End Sub
69.
70. Private Sub ComboBox4_Click()
71. Call VERIFICARDATOS
72. If Status = "Si" Then
73. Select Case ComboBox4.ListIndex
74. Case 0
75. Call PARAMETROSEXPONENCIAL(VecT, VecQ, DI, N, qi, Ele)
76. Case 1
77. Call PARAMETROSARMONICA(VecT, VecQ, DI, N, qi, Ele)
78. Case 2
79. Call PARAMETROSSHIRMAN(VecT, VecQ, DI, N, qi, Ele)
80. End Select
81. Label8.Caption = "Di= " & FormatNumber(DI, 4, vbTrue) & ", n= " & _
82. FormatNumber(N, 4, vbTrue) & ", qi = " & FormatNumber(qi, 4, vbTrue)
83. Else
84. ComboBox4.Text = "Elegir modelo"
85. End If
86. End Sub
87.
87. Private Sub CommandButton1_Click()
88. Unload FIDENDEC
89. End Sub
90.
91. Private Sub CommandButton2_Click()
92. Call VERIFICARDATOS
93. If Status = "Si" Then
94. Select Case ComboBox4.ListIndex
95. Case 0
96. Call PARAMETROSEXPONENCIAL(VecT, VecQ, DI, N, qi, Ele)
97. Case 1
98. Call PARAMETROSARMONICA(VecT, VecQ, DI, N, qi, Ele)
99. Case 2
100. Call PARAMETROSSHIRMAN(VecT, VecQ, DI, N, qi, Ele)
101. Case Else
102. MsgBox "No se ha elegido método de declinación", vbInformation, "Error"
103. Exit Sub
104. End Select
105. Label8.Caption = "Di= " & FormatNumber(DI, 4, vbTrue) & ", n= " & _
106. FormatNumber(N, 4, vbTrue) & ", qi = " & FormatNumber(qi, 4, vbTrue)
107. Call RDECLINACION
108. Unload FIDENDEC
221
APÉNDICE A
109. End If
110. End Sub
111.
112. Private Sub UserForm_Initialize()
113. ComboBox1.AddItem "Meses"
114. ComboBox1.AddItem "Años"
115. ComboBox1.ListIndex = 0
116. ComboBox2.AddItem "BPD"
117. ComboBox2.AddItem "MBPD"
118. ComboBox2.ListIndex = 0
119. ComboBox3.AddItem "Gasto (q) vs Tiempo (t)"
120. ComboBox3.AddItem "Log Gasto (q) vs Tiempo (t)"
121. ComboBox3.AddItem "Log Gasto (q) vs Log Tiempo (t)"
122. ComboBox3.AddItem "Gasto (q) vs Producción acumulada (Np)"
123. ComboBox3.AddItem "Log Gasto (q) vs Producción acumulada (Np)"
124. ComboBox3.AddItem "Log Gasto (q) vs Log Producción acumulada (Np)"
125. ComboBox3.AddItem "(-dq/qdt) vs Gasto (q)"
126. ComboBox4.AddItem "Exponencial"
127. ComboBox4.AddItem "Armónico"
128. ComboBox4.AddItem "Hiperbólico"
129. ComboBox5.AddItem "Gasto"
130. ComboBox5.AddItem "Tiempo"
131. ComboBox5.ListIndex = 0
132. End Sub
222
APÉNDICE A
223
APÉNDICE A
7. End Sub
10. Subrutina del botón gráfica Log Gasto (q) vs Log Tiempo (t).
1. Sub BOTON_GRA3()
2. 'Gráfica Log Gasto (q) vs Log Tiempo (t)
3. If Status = "No" Then Exit Sub
4. Call GRADECLINACION(C, RTiempo, RGasto, 2, 2, "Gasto (q) vs Tiempo (t)", _
5. "Log Tiempo (t)", "Log Gasto (q)")
6. Status = "No"
7. End Sub
11. Subrutina del botón gráfica Gasto (q) vs Producción acumulada (Np).
1. Sub BOTON_GRA4()
2. 'Gráfica Gasto (q) vs Producción acumulada (Np)
3. If Status = "No" Then Exit Sub
4. Call GRADECLINACION(C, RNp, RGasto, 1, 1, "Gasto (q) vs Prod. acumulada (Np)", _
5. "Prod. acumulada (Np)", "Gasto (q)")
6. Status = "No"
7. End Sub
12. Subrutina del botón gráfica Log Gasto (q) vs Producción acumulada (Np).
1. Sub BOTON_GRA5()
2. 'Gráfica Log Gasto (q) vs Producción acumulada (Np)
3. If Status = "No" Then Exit Sub
4. Call GRADECLINACION(C, RNp, RGasto, 1, 2, "Gasto (q) vs Prod. acumulada (Np)", _
5. "Prod. acumulada (Np)", "Log Gasto (q)")
6. Status = "No"
7. End Sub
13. Subrutina del botón gráfica Log Gasto (q) vs Log Producción acumulada (Np).
1. Sub BOTON_GRA6()
2. 'Gráfica Log Gasto (q) vs Log Producción acumulada (Np)
3. If Status = "No" Then Exit Sub
4. Call GRADECLINACION(C, RNp, RGasto, 2, 2, "Gasto (q) vs Prod. acumulada (Np)", _
5. "Log Prod. acumulada (Np)", "Log Gasto (q)")
6. Status = "No"
7. End Sub
224
APÉNDICE A
225
APÉNDICE A
226
APÉNDICE A
7. Hoja.Name = "Resultados declinación " & Format(Time, "HH") & ";" & Format(Time, "MM")
8. _
9. & ";" & Format(Time, "SS")
10. With Hoja
11. 'CONTENIDO
12. .Cells(1, 1) = "Datos"
13. .Cells(1, 4) = "Resultados"
14. If FIDENDEC.ComboBox1.ListIndex = 0 Then .Cells(2, 1) = "Tiempo (meses)"
15. If FIDENDEC.ComboBox1.ListIndex = 1 Then .Cells(2, 1) = "Tiempo (años)"
16. If FIDENDEC.ComboBox2.ListIndex = 0 Then .Cells(2, 2) = "Gasto (BPD)"
17. If FIDENDEC.ComboBox2.ListIndex = 1 Then .Cells(2, 2) = "Gasto (MBPD)"
18. If FIDENDEC.ComboBox1.ListIndex = 0 Then .Cells(2, 4) = "Tiempo (m) pronóstico"
19. If FIDENDEC.ComboBox1.ListIndex = 1 Then .Cells(2, 4) = "Tiempo (a) pronóstico"
20. If FIDENDEC.ComboBox2.ListIndex = 0 Then .Cells(2, 5) = "Gasto (BPD) pronóstico"
21. If FIDENDEC.ComboBox2.ListIndex = 1 Then .Cells(2, 5) = "Gasto (MBPD) pronóstico"
22. If FIDENDEC.ComboBox2.ListIndex = 0 Then .Cells(2, 6) = "Np (B) pronóstico"
23. If FIDENDEC.ComboBox2.ListIndex = 1 Then .Cells(2, 6) = "Np (MB) pronóstico"
24. .Cells(2, 7) = "Parámetros declinación"
25. .Cells(2, 9) = "Gráficas"
26. If FIDENDEC.ComboBox1.ListIndex = 0 Then .Cells(3, 7) = "Di (mes-1):"
27. If FIDENDEC.ComboBox1.ListIndex = 1 Then .Cells(3, 7) = "Di (años-1):"
28. .Cells(4, 7) = "n:"
29. If FIDENDEC.ComboBox2.ListIndex = 0 Then .Cells(5, 7) = "qi (BPD):"
30. If FIDENDEC.ComboBox2.ListIndex = 1 Then .Cells(5, 7) = "qi (MBPD):"
31. If FIDENDEC.ComboBox2.ListIndex = 0 Then .Cells(6, 7) = "qf (BPD):"
32. If FIDENDEC.ComboBox2.ListIndex = 1 Then .Cells(6, 7) = "qf (MBPD):"
33. If FIDENDEC.ComboBox1.ListIndex = 0 Then .Cells(7, 7) = "Tiempo inicial (mes):"
34. If FIDENDEC.ComboBox1.ListIndex = 1 Then .Cells(7, 7) = "Tiempo inicial (año):"
35. If FIDENDEC.ComboBox1.ListIndex = 0 Then .Cells(8, 7) = "Tiempo final (mes):"
36. If FIDENDEC.ComboBox1.ListIndex = 1 Then .Cells(8, 7) = "Tiempo final (año):"
37. .Cells(9, 7) = "Producción acumulada:"
38. .Cells(10, 7) = "Ponóstico finalizado por:"
39. .Cells(3, 8) = DI
40. .Cells(4, 8) = N
41. .Cells(5, 8) = qi
42. If FIDENDEC.ComboBox5.ListIndex = 0 Then .Cells(10, 8) = "Gasto"
43. If FIDENDEC.ComboBox5.ListIndex = 1 Then .Cells(10, 8) = "Tiempo"
44. 'TAMAÑO
45. .Rows(2).RowHeight = 6 * 5.66
46. .Columns(3).ColumnWidth = 1
47. .Columns(7).ColumnWidth = 25
48. .Columns(9).ColumnWidth = 70
49. 'ALINEACIÓN, COMBINADO Y COLOR
50. .Range(.Cells(1, 1), .Cells(2, 9)).VerticalAlignment = xlCenter
51. .Range(.Cells(1, 1), .Cells(2, 9)).HorizontalAlignment = xlCenter
52. .Range(.Cells(1, 1), .Cells(2, 9)).WrapText = True
53. .Range(.Cells(1, 1), .Cells(1, 2)).Merge
54. .Range(.Cells(1, 4), .Cells(1, 8)).Merge
55. .Range(.Cells(2, 7), .Cells(2, 8)).Merge
56. .Range(.Cells(2, 1), .Cells(2, 2)).Interior.Color = RGB(192, 192, 192)
57. .Range(.Cells(2, 4), .Cells(2, 9)).Interior.Color = RGB(192, 192, 192)
58. .Range(.Cells(3, 6), .Cells(11, 7)).HorizontalAlignment = xlRight
59. .Range(.Cells(2, 1), .Cells(2, 2)).Borders(xlEdgeTop).LineStyle = xlContinuous
60. .Range(.Cells(2, 1), .Cells(2, 2)).Borders(xlEdgeBottom).LineStyle = xlContinuous
61. .Range(.Cells(2, 4), .Cells(2, 9)).Borders(xlEdgeTop).LineStyle = xlContinuous
62. .Range(.Cells(2, 4), .Cells(2, 9)).Borders(xlEdgeBottom).LineStyle = xlContinuous
63. For I = 1 To UBound(VecT)
64. .Cells(2 + I, 1) = VecT(I)
65. .Cells(2 + I, 2) = VecQ(I)
66. Next I
227
APÉNDICE A
67. I = 0
68. If N = 0 Then FIDENDEC.ComboBox4.ListIndex = 0
69. If N = 1 Then FIDENDEC.ComboBox4.ListIndex = 1
70. If FIDENDEC.ComboBox1.ListIndex = 0 Then AUX1 = (365 / 12)
71. If FIDENDEC.ComboBox1.ListIndex = 1 Then AUX1 = 365
72. Select Case FIDENDEC.ComboBox4.ListIndex
73. Case 0
74. If FIDENDEC.ComboBox5.ListIndex = 0 Then 'gasto
75. Do
76. I = I + 1
77. .Cells(2 + I, 4) = Val(FIDENDEC.TextBox2.Text) * I
78. .Range(.Cells(2 + I, 5), .Cells(2 + I, 5)).FormulaLocal = _
79. "=qExponencial($H$5;$H$3;" & .Cells(2 + I, 4).Address & ")"
80. .Range(.Cells(2 + I, 6), .Cells(2 + I, 6)).FormulaLocal = _
81. "=NpExponencial($H$5;$H$3;" & .Cells(2 + I, 5).Address & ")*" & _
82. CStr(AUX1)
83. Loop While .Cells(2 + I, 5) > Val(FIDENDEC.TextBox1.Text)
84. Else 'TIEMPO
85. Do
86. I = I + 1
87. .Cells(2 + I, 4) = Val(FIDENDEC.TextBox2.Text) * I
88. .Range(.Cells(2 + I, 5), .Cells(2 + I, 5)).FormulaLocal = _
89. "=qExponencial($H$5;$H$3;" & Val(FIDENDEC.TextBox2.Text) * I & ")"
90. .Range(.Cells(2 + I, 6), .Cells(2 + I, 6)).FormulaLocal = _
91. "=NpExponencial($H$5;$H$3;" & .Cells(2 + I, 5).Address & ")*" & _
92. CStr(AUX1)
93. Loop While Val(FIDENDEC.TextBox2.Text) * I < Val(FIDENDEC.TextBox1.Text)
94. End If
95. Case 1
96. If FIDENDEC.ComboBox5.ListIndex = 0 Then 'gasto
97. Do
98. I = I + 1
99. .Cells(2 + I, 4) = Val(FIDENDEC.TextBox2.Text) * I
100. .Range(.Cells(2 + I, 5), .Cells(2 + I, 5)).FormulaLocal = _
101. "=qArmonica($H$5;$H$3;" & .Cells(2 + I, 4).Address & ")"
102. .Range(.Cells(2 + I, 6), .Cells(2 + I, 6)).FormulaLocal = _
103. "=NpArmonica($H$5;$H$3;" & .Cells(2 + I, 5).Address & ")*" & CStr(AUX1)
104. Loop While .Cells(2 + I, 5) > Val(FIDENDEC.TextBox1.Text)
105. Else 'TIEMPO
106. Do
107. I = I + 1
108. .Cells(2 + I, 4) = Val(FIDENDEC.TextBox2.Text) * I
109. .Range(.Cells(2 + I, 5), .Cells(2 + I, 5)).FormulaLocal = _
110. "=qArmonica($H$5;$H$3;" & Val(FIDENDEC.TextBox2.Text) * I & ")"
111. .Range(.Cells(2 + I, 6), .Cells(2 + I, 6)).FormulaLocal = _
112. "=NpArmonica($H$5;$H$3;" & .Cells(2 + I, 5).Address & ")*" & CStr(AUX1)
113. Loop While Val(FIDENDEC.TextBox2.Text) * I < Val(FIDENDEC.TextBox1.Text)
114. End If
115. Case 2
116. If FIDENDEC.ComboBox5.ListIndex = 0 Then 'gasto
117. Do
118. I = I + 1
119. .Cells(2 + I, 4) = Val(FIDENDEC.TextBox2.Text) * I
120. .Range(.Cells(2 + I, 5), .Cells(2 + I, 5)).FormulaLocal = _
121. "=qHiperbolica($H$5;$H$3;$H$4;" & .Cells(2 + I, 4).Address & ")"
122. .Range(.Cells(2 + I, 6), .Cells(2 + I, 6)).FormulaLocal = _
123. "=NpHiperbolica($H$5;$H$3;$H$4;" & .Cells(2 + I, 5).Address & ")*" & _
124. CStr(AUX1)
125. Loop While .Cells(2 + I, 5) > Val(FIDENDEC.TextBox1.Text)
126. Else 'TIEMPO
228
APÉNDICE A
127. Do
128. I = I + 1
129. .Cells(2 + I, 4) = Val(FIDENDEC.TextBox2.Text) * I
130. .Range(.Cells(2 + I, 5), .Cells(2 + I, 5)).FormulaLocal = _
131. "=qHiperbolica($H$5;$H$3;$H$4;" & Val(FIDENDEC.TextBox2.Text) * I & ")"
132. .Range(.Cells(2 + I, 6), .Cells(2 + I, 6)).FormulaLocal = _
133. "=NpHiperbolica($H$5;$H$3;$H$4;" & .Cells(2 + I, 5).Address & ")*" & _
134. CStr(AUX1)
135. Loop While Val(FIDENDEC.TextBox2.Text) * I < Val(FIDENDEC.TextBox1.Text)
136. End If
137. End Select
138. .Cells(6, 8) = .Cells(2 + I, 5)
139. .Cells(7, 8) = .Cells(2 + 1, 4)
140. .Cells(8, 8) = .Cells(2 + I, 4)
141. .Cells(9, 8) = .Cells(2 + I, 6)
142. Set RTiempo = .Range(.Cells(3, 4), .Cells(2 + I, 4))
143. Set RGasto = .Range(.Cells(3, 5), .Cells(2 + I, 5))
144. Call GRADECLINACION(C, _
145. "='" & Hoja.Name & "'!" & .Range(.Cells(3, 4), .Cells(2 + I, 4)).Address _
146. , "='" & Hoja.Name & "'!" & .Range(.Cells(3, 5), .Cells(2 + I, 5)).Address _
147. , 1, 1, "Gasto (q) vs Tiempo (t)", "Tiempo (t)", "Gasto (q)")
148. ActiveChart.Parent.Left = Range("I3").Left + 5
149. ActiveChart.Parent.Top = Range("I3").Top + 5
150. Call GRADECLINACION(C, _
151. "='" & Hoja.Name & "'!" & .Range(.Cells(3, 5), .Cells(2 + I, 5)).Address _
152. , "='" & Hoja.Name & "'!" & .Range(.Cells(3, 6), .Cells(2 + I, 6)).Address _
153. , 1, 1, "Gasto (q) vs Prod. acumulada (Np)", _
154. "Prod. acumulada (Np)", "Gasto (q)")
155. ActiveChart.Parent.Left = Range("I18").Left + 5
156. ActiveChart.Parent.Top = Range("I18").Top + 5
157. End WithEnd Sub
229
APÉNDICE A
28. C.ChartTitle.Font.Size = 12
29. C.ChartTitle.Font.Color = RGB(250, 0, 0)
30. C.ChartTitle.Characters.Text = TITULO
31. C.Axes(xlCategory).Format.Line.ForeColor.RGB = RGB(0, 0, 0)
32. C.Axes(xlCategory).MajorGridlines.Format.Line.ForeColor.RGB = RGB(0, 0, 0)
33. C.Axes(xlCategory).TickLabels.Font.Color = RGB(0, 0, 0)
34. C.Axes(xlCategory).TickLabels.Font.name = "Arial"
35. C.Axes(xlCategory).HasTitle = True
36. C.Axes(xlCategory).AxisTitle.Characters.Text = TEJEX '"Eje x"
37. C.Axes(xlCategory).AxisTitle.Font.name = "Arial"
38. C.Axes(xlCategory).AxisTitle.Font.Color = RGB(0, 0, 0)
39. If esX = 2 Then C.Axes(xlCategory).ScaleType = xlScaleLogarithmic
40. C.Axes(xlValue).Format.Line.ForeColor.RGB = RGB(0, 0, 0)
41. C.Axes(xlValue).MajorGridlines.Format.Line.ForeColor.RGB = RGB(0, 0, 0)
42. C.Axes(xlValue).TickLabels.Font.Color = RGB(0, 0, 0)
43. C.Axes(xlValue).TickLabels.Font.name = "Arial"
44. C.Axes(xlValue).HasTitle = True
45. C.Axes(xlValue).AxisTitle.Characters.Text = TEJEY '"Eje 7"
46. C.Axes(xlValue).AxisTitle.Font.name = "Arial"
47. C.Axes(xlValue).AxisTitle.Font.Color = RGB(0, 0, 0)
48. If esY = 2 Then C.Axes(xlValue).ScaleType = xlScaleLogarithmic
49. C.PlotArea.Width = 300: C.PlotArea.Height = 170: C.PlotArea.Left = 30
50. C.PlotArea.Top = 20
51. C.HasLegend = False
52. C.Refresh
53. Application.DisplayAlerts = TrueEnd Sub
230
APÉNDICE A
231
APÉNDICE A
232
APÉNDICE A
6. Next I
7. End Sub
233
APÉNDICE B
Apéndice B
APÉNDICE B
Contenido del apéndice:
234
APÉNDICE B
235
APÉNDICE B
36.
37. Private Sub CommandButton2_Click()
38. AUX1 = 0
39. Unload Me
40. End Sub
236
APÉNDICE B
7. Subrutina EBMTRACY.
1. Sub EBMTRACY(P() As Double, BO() As Double, BG() As Double, RS() As Double, _
2. MoMg() As Double, VecSg() As Double, VecKrgKro() As Double, N#, Swi#)
3. 'CALCULA LA PRODUCCIÓN ACUMULADA Y GAS ACUMULADO POR MEDIO DE LA ECUACIÓN DE _
4. BALANCE DE MATERIA CON EL MÉTODO DE TRACY.
5. Dim RGA1#, KrgKroint#, DEN#, FiO#, FiG#, dNp#
6. AUX1 = Ubound(P) + Ubound(BO) + Ubound(BG) + Ubound(RS) + Ubound(MoMg)
7. Ele = Ubound(P)
8. If (AUX1 / 5) <> Ele Then
9. MsgBox "No coinciden los datos", vbCritical, "Error"
10. Exit Sub
11. Else
12. Redim Np(Ele): Redim Gp(Ele): Redim RGA(Ele): Redim So(Ele): Redim Sg(Ele)
13. So(1) = 1 - Swi: Sg(1) = 0: RGA(1) = RS(1): Np(1) = 0: Gp(1) = 0
14. For I = 2 To Ubound(P)
15. DEN = (BO(I) - BO(1)) + (RS(1) - RS(I)) * BG(I)
16. FiO = (BO(I) - RS(I) * BG(I)) / DEN
17. FiG = BG(I) / DEN
18. RGA(I) = RS(I)
19. Do
20. RGA1 = RGA(I)
21. dNp = (1 - (Np(I - 1) * FiO + Gp(I - 1) * FiG)) / (FiO + RGA1 * FiG)
22. Np(I) = Np(I - 1) + dNp
23. So(I) = (1 - Swi) * (1 - Np(I)) * (BO(I) / BO(1))
24. Sg(I) = 1 - So(I) - Swi
25. KrgKroint = INTERPOLA(VecSg, VecKrgKro, Sg(I))
26. RGA(I) = RS(I) + (KrgKroint * MoMg(I) * BO(I) / BG(I))
27. Loop While Abs((RGA(I) - RGA1) / RGA(I)) > 0.01
28. Gp(I) = Gp(I - 1) + RGA(I) * dNp
29. Next I
30. Call MOSTRARRESULTADOS(P, So, Sg, RGA, Np, Gp, N)
31. End If
32. End Sub
8. Subrutina EBMMUSKAT.
1. Sub EBMMUSKAT(P() As Double, BO() As Double, BG() As Double, RS() As Double, _
2. MoMg() As Double, VecSg() As Double, VecKrgKro() As Double, N#, Swi#)
3. 'CALCULA LA PRODUCCIÓN ACUMULADA Y GAS ACUMULADO POR MEDIO DE LA ECUACIÓN DE _
4. BALANCE DE MATERIA CON EL MÉTODO DE MUSKAT.
5. Dim dRs#, dBo#, d1Bg#, dSo#, dSo1#, dSo2#, KrgKroint#, Xp#, Yp#, Zp#
6. AUX1 = Ubound(P) + Ubound(BO) + Ubound(BG) + Ubound(RS) + Ubound(MoMg)
7. Ele = Ubound(P)
8. If (AUX1 / 5) <> Ele Then
9. MsgBox "No coinciden los datos", vbCritical, "Error"
10. Exit Sub
11. Else
12. Redim Np(Ele): Redim Gp(Ele): Redim RGA(Ele): Redim So(Ele): Redim Sg(Ele)
13. Redim InvBg(Ele)
14. For I = 1 To Ele
15. InvBg(I) = 1 / BG(I)
16. Next I
17. Call Regresion(P, BO, dBo, AUX1, Ele)
18. Call Regresion(P, RS, dRs, AUX1, Ele)
19. Call Regresion(P, InvBg, d1Bg, AUX1, Ele)
20. So(1) = 1 - Swi: Sg(1) = 0: RGA(1) = RS(1): Np(1) = 0: Gp(1) = 0
21. For I = 2 To Ele
22. If I = 2 Then
23. dSo1 = (1 - Swi) * (BG(1) / BO(1)) * dRs
24. Else
25. dSo1 = (So(I - 1) * Xp + So(I - 1) * KrgKroint * Yp + Sg(I - 1) * Zp) / _
237
APÉNDICE B
9. Subrutina EBMTARNER.
1. Sub EBMTARNER(P() As Double, BO() As Double, BG() As Double, RS() As Double, _
2. MoMg() As Double, VecSg() As Double, VecKrgKro() As Double, N#, Swi#)
3. 'CALCULA LA PRODUCCIÓN ACUMULADA Y GAS ACUMULADO POR MEDIO DE LA ECUACIÓN DE _
4. BALANCE DE MATERIA CON EL MÉTODO DE TARNER.
5. Dim Gp2m#, Gp2r#, KrgKroint#
6. AUX1 = Ubound(P) + Ubound(BO) + Ubound(BG) + Ubound(RS) + Ubound(MoMg)
7. Ele = Ubound(P)
8. If (AUX1 / 5) <> Ele Then
9. MsgBox "No coinciden los datos", vbCritical, "Error"
10. Exit Sub
11. Else
12. Redim Np(Ele): Redim Gp(Ele): Redim RGA(Ele): Redim So(Ele): Redim Sg(Ele)
13. So(1) = 1 - Swi: Sg(1) = 0: RGA(1) = RS(1): Np(1) = 0: Gp(1) = 0
14. Np(2) = 0.01
15. For I = 2 To Ele
16. If I > 2 Then Np(I) = Np(I - 1)
17. Do
18. Gp2m = ((RS(1) - RS(I)) - ((BO(1) - BO(I)) / BG(I))) - _
19. Np(I) * ((BO(I) / BG(I)) - RS(I))
20. For J = 1 To I - 1
21. Gp2m = Gp2m - Gp(J)
22. Next J
23. So(I) = (1 - Swi) * (1 - (Np(I) / 1)) * (BO(I) / BO(1))
24. Sg(I) = 1 - So(I) - Swi
25. KrgKroint = INTERPOLA(VecSg, VecKrgKro, Sg(I))
26. RGA(I) = RS(I) + KrgKroint * MoMg(I) * (BO(I) / BG(I))
27. Gp2r = ((RGA(I - 1) + RGA(I)) / 2) * (Np(I) - Np(I - 1))
28. Np(I) = Np(I) + ((Gp2m - Gp2r) / Abs(Gp2m - Gp2r)) * 0.0001
29. Loop While Abs((Gp2m - Gp2r) / Gp2m) > 0.01
30. Gp(I) = Gp2m
31. Next I
32. Call MOSTRARRESULTADOS(P, So, Sg, RGA, Np, Gp, N)
33. End If
34. End Sub
238
APÉNDICE B
2. 'FUNCION QUE INTERPOLA LINEALMENTE ENTRE LOS VECTORES X E Y PARA UN VALOR DE XI.
3. J = 1
4. Do While Xi > x(J) And J < Ubound(x) - 1
5. J = J + 1
6. Loop
7. If J > 1 Then
8. INTERPOLA = ((y(J + 1) - y(J)) / (x(J + 1) - x(J))) * (Xi - x(J)) + y(J)
9. Else
10. INTERPOLA = ((y(J) - y(J - 1)) / (x(J) - x(J - 1))) * (Xi - x(J - 1)) + y(J - 1)
11. End If
12. End Function
239
APÉNDICE B
240
APÉNDICE B
108. Next
109. Next
110. With ActiveChart
111. .PlotArea.Format.Line.ForeColor.RGB = RGB(0, 0, 0)
112. .PlotArea.Format.Line.Weight = 2
113. .HasTitle = False: .HasTitle = True
114. .SetElement (msoElementChartTitleAboveChart)
115. .ChartTitle.Font.Name = "Arial": .ChartTitle.Font.Size = 12
116. .ChartTitle.Font.Color = RGB(250, 0, 0)
117. .ChartTitle.Characters.Text = "Producción acumulada (Gas)"
118.
119. .Axes(xlCategory).Format.Line.ForeColor.RGB = RGB(0, 0, 0)
120. .Axes(xlCategory).MajorGridlines.Format.Line.ForeColor.RGB = RGB(0, 0, 0)
121. .Axes(xlCategory).TickLabels.Font.Color = RGB(0, 0, 0)
122. .Axes(xlCategory).TickLabels.Font.Name = "Arial"
123. .Axes(xlCategory).HasTitle = True
124. .Axes(xlCategory).AxisTitle.Characters.Text = "Presión (lpc)" '"Eje X"
125. .Axes(xlCategory).AxisTitle.Font.Name = "Arial"
126. .Axes(xlCategory).AxisTitle.Font.Color = RGB(0, 0, 0)
127. .Axes(xlCategory).Crosses = xlMaximum
128. .Axes(xlCategory).ReversePlotOrder = True
129.
130. .Axes(xlValue).Format.Line.ForeColor.RGB = RGB(0, 0, 0)
131. .Axes(xlValue).MajorGridlines.Format.Line.ForeColor.RGB = RGB(0, 0, 0)
132. .Axes(xlValue).TickLabels.Font.Color = RGB(0, 0, 0)
133. .Axes(xlValue).TickLabels.Font.Name = "Arial"
134. .Axes(xlValue).HasTitle = True
135. .Axes(xlValue).AxisTitle.Characters.Text = "Gp (Pie3)" '"Eje Y"
136. .Axes(xlValue).AxisTitle.Font.Name = "Arial"
137. .Axes(xlValue).AxisTitle.Font.Color = RGB(0, 0, 0)
138.
139. .PlotArea.Width = 300: .PlotArea.Height = 170: .PlotArea.Left = 30:
140. .PlotArea.Top = 20
141. .HasLegend = False
142. .Parent.Left = Range("G18").Left + 5
143. .Parent.Top = Range("G18").Top + 5
144.
145. .Refresh
146. End With
147. End Sub
241
APÉNDICE B
242
APÉNDICE C
Apéndice C
APÉNDICE C
Contenido del apéndice:
243
APÉNDICE C
244
APÉNDICE C
7. H = VALOR(RefEditH.Value)
8. kx = VALOR(RefEditKX.Value)
9. ky = VALOR(RefEditKY.Value)
10. Cf = VALOR(RefEditCFORM.Value)
11. Poro = VALOR(RefEdiToORO.Value)
12. kx = kx / 1000
13. ky = ky / 1000
14. Redim Presion(Nx * Ny)
15. Redim qsc(Nx * Ny)
16. Unload Me
17. End Sub
18.
19. Private Sub CommandButton2_Click()
20. Unload Me
21. End Sub
245
APÉNDICE C
246
APÉNDICE C
247
APÉNDICE C
248
APÉNDICE C
249
APÉNDICE C
1. Sub BOTON_PPROD()
2. 'MUESTRA EL FORMULARIO FPOZO PARA INSERTAR UN POZO PRODUCTOR (SIGNO NEGATIVO)
3. Pozo = -1
4. FPOZO.Show
5. End Sub
250
APÉNDICE C
251
APÉNDICE C
252
APÉNDICE C
253
APÉNDICE C
254
APÉNDICE C
255
APÉNDICE C
25. C.PlotArea.Height = 90
26. C.Axes(xlCategory).AxisTitle.Format.TextFrame2.TextRange.Font.Size = 12
27. C.HasTitle = True
28. C.ChartTitle.Format.Fill.Solid
29. C.ChartTitle.Format.Fill.ForeColor.RGB = RGB(255, 255, 255)
30. C.FullSeriesCollection(1).Points(1).Format.Fill.ForeColor.RGB = RGB(255, 255, 51)
31. If Nx = 1 Then Ele = Ny
32. If Ny = 1 Then Ele = Nx
33. Call COLORESRGB
34. Dim incremento As Single
35. incremento = (Pi - PBB) / 25
36. vecEscala(1) = PBB
37. For I = 2 To 26
38. vecEscala(I) = vecEscala(I - 1) + incremento
39. Next I
40. For I = 1 To Ele 'VR(celda,tiempo)
41. For J = 1 To 26
42. If VR(I, Ubound(VR, 2)) < vecEscala(J) Then Exit For
43. Next J
44. C.FullSeriesCollection(1).Points(I).Format.Fill.ForeColor.RGB = _
45. RGB(vecRGB(1, J), vecRGB(2, J), vecRGB(3, J))
46. Next I
47. Call ESCALA(Pi, PBB, 1)
48. End Sub
256
APÉNDICE C
257
APÉNDICE C
258
APÉNDICE C
259
APÉNDICE C
260
APÉNDICE C
261
APÉNDICE C
262
APÉNDICE D
Apéndice D
APÉNDICE D
Contenido del apéndice:
263
APÉNDICE D
264
APÉNDICE D
265
APÉNDICE D
4. "Nodo solución"
5. NODSOL = 2
6. End Sub
266
APÉNDICE D
267
APÉNDICE D
268
APÉNDICE D
269
APÉNDICE D
270
APÉNDICE D
271
APÉNDICE D
245. .ConvertToShape.Select
246. End With
247. Selection.ShapeRange.Fill.Patterned msoPattern20Percent
248. Selection.ShapeRange.Fill.ForeColor.RGB = RGB(0, 0, 0)
249. Selection.ShapeRange.Line.ForeColor.RGB = RGB(0, 0, 0)
250.
251.
252.
253. With ActiveChart.Shapes.BuildFreeform(msoEditingAuto, 50, 170)
254. .AddNodes msoSegmentLine, msoEditingAuto, 70, 170
255.
256. .AddNodes msoSegmentLine, msoEditingAuto, 70, 185
257. .AddNodes msoSegmentLine, msoEditingAuto, 75, 186
258. .AddNodes msoSegmentLine, msoEditingAuto, 70, 187
259.
260. .AddNodes msoSegmentLine, msoEditingAuto, 70, 189
261. .AddNodes msoSegmentLine, msoEditingAuto, 75, 190
262. .AddNodes msoSegmentLine, msoEditingAuto, 70, 191
263.
264. .AddNodes msoSegmentLine, msoEditingAuto, 70, 193
265. .AddNodes msoSegmentLine, msoEditingAuto, 75, 194
266. .AddNodes msoSegmentLine, msoEditingAuto, 70, 195
267.
268. .AddNodes msoSegmentLine, msoEditingAuto, 70, 200
269. .AddNodes msoSegmentLine, msoEditingAuto, 50, 200
270.
271. .AddNodes msoSegmentLine, msoEditingAuto, 50, 195
272. .AddNodes msoSegmentLine, msoEditingAuto, 45, 194
273. .AddNodes msoSegmentLine, msoEditingAuto, 50, 193
274.
275. .AddNodes msoSegmentLine, msoEditingAuto, 50, 191
276. .AddNodes msoSegmentLine, msoEditingAuto, 45, 190
277. .AddNodes msoSegmentLine, msoEditingAuto, 50, 189
278.
279. .AddNodes msoSegmentLine, msoEditingAuto, 50, 187
280. .AddNodes msoSegmentLine, msoEditingAuto, 45, 186
281. .AddNodes msoSegmentLine, msoEditingAuto, 50, 185
282.
283. .AddNodes msoSegmentLine, msoEditingAuto, 50, 170
284. .ConvertToShape.Select
285. End With
286. 'Selection.ShapeRange.Fill.Patterned msoPattern20Percent
287. Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 255)
288. Selection.ShapeRange.Line.ForeColor.RGB = RGB(0, 0, 0)
289.
290. 'Empacadores
291. With ActiveChart.Shapes.BuildFreeform(msoEditingAuto, 50, 165)
292. .AddNodes msoSegmentLine, msoEditingAuto, 70, 165
293. .AddNodes msoSegmentLine, msoEditingAuto, 70, 170
294. .AddNodes msoSegmentLine, msoEditingAuto, 50, 170
295. .AddNodes msoSegmentLine, msoEditingAuto, 50, 165
296. .ConvertToShape.Select
297. End With
298. 'Selection.ShapeRange.Fill.Patterned msoPattern20Percent
299. Selection.ShapeRange.Fill.ForeColor.RGB = RGB(0, 0, 0)
300. Selection.ShapeRange.Line.ForeColor.RGB = RGB(0, 0, 0)
301.
302. 'Pozo
303. With ActiveChart.Shapes.BuildFreeform(msoEditingAuto, 50, 45)
304. .AddNodes msoSegmentLine, msoEditingAuto, 70, 45
272
APÉNDICE D
273
APÉNDICE D
365. Case 4
366. Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = _
367. "Nodo seleccionado: Yacimiento"
368. End Select
369.
370. Selection.ShapeRange.TextFrame2.TextRange.ParagraphFormat.Alignment = _
371. msoAlignCenter
372. Selection.ShapeRange.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = _
373. RGB(255, 0, 0)
374.
375. Select Case NODSOL
376. Case 1
377. ActiveChart.Shapes.AddShape(msoShapeOval, 145.5, 17, 30, 30).Select
378. Case 2
379. ActiveChart.Shapes.AddShape(msoShapeOval, 46, 17, 30, 30).Select
380. Case 3
381. ActiveChart.Shapes.AddShape(msoShapeOval, 46, 176, 30, 30).Select
382. Case 4
383. ActiveChart.Shapes.AddShape(msoShapeOval, 131, 176, 30, 30).Select
384. End Select
385. Selection.ShapeRange.Line.ForeColor.RGB = RGB(255, 0, 0)
386. Selection.ShapeRange.Fill.Visible = msoFalse
387. Selection.ShapeRange.Line.Weight = 1.5
388. Selection.ShapeRange.Line.DashStyle = msoLineDash 'CREAR LA GRÁFICA, LAS SIGUIENTES
389. INSTRUCCIONES CREAN UNA GRÁFICA SIMILAR A _
390. LAS MOSTRADAS EN EL CAPÍTULO 5, EL FORMATO ES LIBRE Y PUEDE OMITIRSE DE _
391. SER NECESARIO.
392. ActiveSheet.Shapes.AddChart.Select
393. Set C = ActiveChart
394. C.ChartType = xlXYScatterSmooth
395. C.Axes(xlValue).MinimumScale = 0
396. 'FORMATO DE LÍNEA Y DATOS DE LA SERIE 1 (CURVA DE INFLOW)
397. If C.SeriesCollection.Count = 0 Then C.SeriesCollection.NewSeries
398. With C.FullSeriesCollection(1) 'SERIE 1 CURVA INFLOW
399. .name = "Inflow"
400. .XValues = VECQ 'DATOS EJE X
401. .Values = PINFLOW 'DATOS EJE Y
402. .MarkerStyle = xlMarkerStyleNone
403. .Format.Line.ForeColor.RGB = RGB(255, 0, 0)
404. .Format.Line.Weight = 2
405. .Format.Line.DashStyle = msoLineSysDash
406. End With
407. 'FORMATO DE LÍNEA Y DATOS DE LA SERIE 2 (CURVA DE OUTFLOW)
408. C.SeriesCollection.NewSeries
409. With C.FullSeriesCollection(2) 'SERIE 2 CURVA OUTFLOW
410. .name = "Outflow"
411. .XValues = VECQ 'DATOS EJE X
412. .Values = POUTFLOW 'DATOS EJE Y
413. .MarkerStyle = xlMarkerStyleNone
414. .Format.Line.ForeColor.RGB = RGB(255, 0, 0)
415. .Format.Line.Weight = 2
416. End With
417. 'FORMATO DE LÍNEA Y DATOS DE LA SERIE 3 (INTERSECCIÓN)
418. C.SeriesCollection.NewSeries
419. With C.FullSeriesCollection(3) 'SERIE 3 INTERSECCIÓN DE LAS CURVAS
420. .name = "Solución"
421. .XValues = INTQ 'DATOS EJE X
422. .Values = INTO 'DATOS EJE Y
423. .MarkerStyle = xlMarkerStyleCircle
424. .MarkerSize = 5
274
APÉNDICE D
275
APÉNDICE D
14. ITER = 0
15. Do
16. ITER = ITER + 1
17. DPE = DPC
18. If FLUJO = 1 Then PPROM = P1 - DPE / 2
19. If FLUJO = 2 Then PPROM = P1 + DPE / 2
20. Call VELOCITY(PPROM, T, PSEP, TSEP, QO, QW, GOR, API, SGPG, DI, SGPW, _
21. RS, RSW, SGDG, SGFG, SG100, Pb, CO, BO, BW, VSL, VSG, VM, HLNS, _
22. FO, QOPT, QWPT, QGPT, Z, SURO, SURW, SURL, VISO, VISW, VISL, _
23. GVIS, DENO, DENW, DENL, BG, DENG, XNLV, XNGV, XNL, XND)
24. Call BEGBR(ANG, DI, ED, PPROM, VM, HLNS, DENG, DENL, GVIS, VISL, _
25. XNLV, HL, FRGR, ELGR, ACCGR, DPDL, IREG, ICRIT)
26. DPC = DL * DPDL
27. Loop While Abs(DPE - DPC) > 0.00001 And ITER < 50
28. L1 = L1 + DL
29. If FLUJO = 1 Then P1 = P1 - DPC
30. If FLUJO = 2 Then P1 = P1 + DPC
31. Loop Until L1 >= LT
32. DPBEGBR = P1
33. End Function
276
APÉNDICE D
277
APÉNDICE D
278
APÉNDICE D
279
APÉNDICE D
280
APÉNDICE D
281
APÉNDICE D
20. FRFAC = FF
21. End Function
282
APÉNDICE D
283
APÉNDICE D
284