Presión normalizada y recuperación de aceite para interpretar el comportamiento de un yacimiento
Yacimientos
Python
Visualización
Construye el gráfico de Thakur con datos de presión y producción acumulada. Calcula P/Pi y Np/N en Python y compara la trayectoria del yacimiento con curvas guía de mecanismos de empuje.
Dos yacimientos pueden haber producido la misma fracción de su aceite original y conservar presiones muy diferentes. Esa diferencia ayuda a investigar qué mecanismos aportan energía durante la explotación.
El gráfico de Thakur relaciona la presión del yacimiento, expresada como porcentaje de la presión inicial, con la fracción de aceite recuperado. En este ejemplo construiremos el gráfico en Python y agregaremos cinco curvas guía para interpretar la trayectoria de un yacimiento.
Visita el canal @rigopetrodata
Tutoriales de R, Python y Excel para ingeniería petrolera
En el eje horizontal colocamos la recuperación acumulada:
\[
R\;(\%)=\frac{N_p}{N}\times100
\]
En el eje vertical colocamos la presión normalizada:
\[
P_n\;(\%)=\frac{P}{P_i}\times100
\]
Variable
Significado
Unidad del ejemplo
P
Presión media del yacimiento en cada registro
psia
Pi
Presión inicial del yacimiento
psia
Np
Producción acumulada de aceite a condiciones de tanque
STB
N
Volumen original de aceite a condiciones de tanque, OOIP
STB
Np y N deben estar en las mismas unidades. Para la presión usamos valores absolutos referidos al mismo datum. La presión de fondo fluyendo de un pozo no sustituye directamente a la presión media del yacimiento.
Cada punto representa el par de presión y producción acumulada de una misma etapa de explotación. Al inicio, cuando Np = 0 y P = Pi, el punto se encuentra en (0 %, 100 %).
Datos del ejemplo
Consideramos N = 13.8 MMSTB y Pi = 10,180 psia. El dataset contiene 72 registros, desde el estado inicial hasta una producción acumulada de 4,438,000 STB.
El archivo contiene dos columnas: Presion_psia y Np_STB. Guarda el CSV en la misma carpeta de tu cuaderno de Python. Los datos se encuentran en orden de producción acumulada y conservamos las pequeñas variaciones de presión entre registros.
1. Cargar los datos
Utilizaremos pandas y Matplotlib. Si hace falta instalarlos, ejecuta pip install pandas matplotlib en la terminal. Ejecuta los siguientes fragmentos en orden, dentro de la misma sesión.
Ver código
import pandas as pdimport matplotlib.pyplot as pltdatos = pd.read_csv("datos_yacimiento.csv")N =13.8e6# STBPi =10180# psiadatos.head().round(2)
Presion_psia
Np_STB
0
10180.00
0
1
10176.21
4000
2
10153.53
28000
3
10096.39
100000
4
9956.39
186000
2. Calcular la presión normalizada y la recuperación
Las dos operaciones se aplican a todas las filas. Multiplicamos por 100 porque mostraremos ambos ejes en porcentaje.
Ver código
datos["Recuperacion_pct"] = datos["Np_STB"] / N *100datos["Presion_pct"] = datos["Presion_psia"] / Pi *100datos.tail().round(2)
Así, el yacimiento ha producido el 32.16 % del aceite original y conserva el 66.79 % de su presión inicial. Esta recuperación corresponde al último registro disponible, no a una estimación de la recuperación final.
3. Definir las curvas guía
Usaremos puntos de referencia para representar cinco mecanismos: empuje por agua, gas en solución, capa de gas, expansión de roca y fluidos, y drenaje gravitacional.
Las características generales de los mecanismos se describen en Integrated Petroleum Reservoir Management: A Team Approach, de Satter y Thakur (1994), cuyo gráfico se reproduce en Integrated Waterflood Asset Management, capítulo 1.
Los valores siguientes son una representación aproximada para el ejercicio, no ecuaciones universales ni fronteras de clasificación. Todas las columnas están en porcentaje: la primera contiene P/Pi × 100 y las demás, Np/N × 100 para cada mecanismo.
Los valores None indican que la guía de empuje por agua termina en el 50 % de la presión inicial. No rellenamos esos puntos con ceros ni prolongamos la curva fuera de los datos disponibles.
Graficamos cada mecanismo con una línea discontinua y superponemos los datos del yacimiento en negro. Usamos segmentos rectos entre los puntos guía para mantener el código sencillo.
Figura 1: Presión normalizada frente a recuperación acumulada, con cinco curvas guía de mecanismos de empuje.
Interpretación del ejemplo
La trayectoria del yacimiento termina aproximadamente en (32.16 %, 66.79 %). En la parte final del historial se sitúa por encima de las curvas de empuje por agua y drenaje gravitacional, que son las guías que alcanzan ese intervalo de recuperación. Por ello, no corresponde asignarle un mecanismo simplemente buscando la curva más cercana.
La conservación de presión mientras aumenta Np es compatible con un aporte importante de energía, como el soporte de un acuífero. También debemos revisar si existe inyección o mantenimiento de presión. Con estos dos datos por registro no podemos distinguir esas causas ni cuantificar cuánto aporta cada mecanismo.
Para completar el diagnóstico, conviene contrastar el gráfico con la evolución de la relación gas–aceite, la producción de agua, la presión de burbuja, la presencia de una capa de gas y el historial de inyección. Un balance de materia permite evaluar las contribuciones de energía con mayor detalle.
Cómo usarlo con otro yacimiento
Reemplaza el CSV por tus pares de presión media y producción acumulada, manteniendo los nombres de las columnas. Después actualiza N y Pi y ejecuta los fragmentos en orden.
La estimación de N afecta directamente la posición horizontal de los puntos: un N mayor reduce Np/N para la misma producción. Revisa ese valor antes de interpretar la trayectoria. Las curvas guía ayudan a explorar el comportamiento, pero la conclusión debe considerar los datos de producción y las condiciones del yacimiento.
Referencia
Satter, A. y Thakur, G. C. (1994). Integrated Petroleum Reservoir Management: A Team Approach. PennWell Books. Véase la figura de mecanismos de empuje reproducida en Integrated Waterflood Asset Management, capítulo 1.