Ver código
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
datos = pd.read_csv("datos_conificacion.csv")
datos[["caso", "b_m", "kv_kh"]]| caso | b_m | kv_kh | |
|---|---|---|---|
| 0 | 1 | 6 | 1.0 |
| 1 | 2 | 18 | 1.0 |
| 2 | 3 | 6 | 0.1 |
| 3 | 4 | 18 | 0.1 |
Un ejemplo con cuatro combinaciones de intervalo abierto y anisotropía
3 de octubre de 2026
Cuando un pozo produce aceite sobre un acuífero, el gradiente de presión cerca del pozo puede elevar localmente el contacto agua–aceite. Esa deformación se conoce como conificación de agua.
El caudal crítico es el límite que, bajo los supuestos del modelo, permite mantener un cono estable sin que el agua alcance el intervalo productor. Un cono puede existir incluso por debajo de ese caudal: lo que se busca evitar es su llegada al pozo.
Calcularemos este límite con el procedimiento del capítulo 12 de Principles of Petroleum Reservoir Engineering, volumen 2, de Gian Luigi Chierici. Usaremos los datos del ejercicio 12.6 y compararemos intervalos abiertos de 6 y 18 m, con relaciones kv/kh de 1 y 0.1.
Un pozo drena un área de 80 acres. La formación tiene 50 m de espesor total: los 30 m superiores contienen aceite y los 20 m inferiores corresponden al acuífero local. El intervalo abierto comienza en el techo de la zona de aceite.
| Dato utilizado | Valor | Unidad |
|---|---|---|
| Área de drenaje | 80 | acres |
| Espesor de la columna de aceite, ho | 30 | m |
| Permeabilidad horizontal, kh | 500 | mD |
| Permeabilidad relativa al aceite a Swi, kro | 0.90 | fracción |
| Factor de volumen del aceite, Bo | 1.25 | m³ de yacimiento/m³ de superficie |
| Viscosidad del aceite, μo | 2.0 | cP |
| Densidad del aceite, ρo | 780 | kg/m³ |
| Densidad del agua, ρw | 1030 | kg/m³ |
| Longitud del intervalo abierto, b | 6 y 18 | m |
| Relación de permeabilidades, kv/kh | 1 y 0.1 | adimensional |
La distancia inicial entre el fondo del intervalo abierto y el contacto es ho − b: 24 m para la apertura de 6 m y 12 m para la de 18 m. En las ecuaciones usamos ho = 30 m, no el espesor total de 50 m.
Descargar el dataset del ejemplo
El CSV contiene cuatro filas, una por combinación de b_m y kv_kh. Las propiedades comunes se repiten para conservar todas las entradas en un solo archivo.
Guárdalo junto a tu notebook y ejecuta los fragmentos en orden. Necesitamos NumPy, pandas y Matplotlib; puedes instalarlos con pip install numpy pandas matplotlib.
Aproximamos el área de drenaje mediante un círculo:
\[ r_e=\sqrt{\frac{A}{\pi}} \]
Usamos 1 acre = 4046.856 m². Como las propiedades comunes son iguales en las cuatro filas, las tomamos de la primera.
Radio de drenaje: 321.02 m
Obtenemos un radio de aproximadamente 321.02 m.
La penetración es la fracción de la columna de aceite abierta a producción:
\[ b_D=\frac{b}{h_o} \]
La anisotropía entra mediante el radio adimensional:
\[ r_{De}=\frac{r_e}{h_o}\sqrt{\frac{k_v}{k_h}} \]
Aquí \(k_h\) corresponde a la permeabilidad radial \(k_r\) de la formulación del libro, suponiendo isotropía en el plano horizontal.
| b_m | kv_kh | b_D | r_De | |
|---|---|---|---|---|
| 0 | 6 | 1.0 | 0.2 | 10.701 |
| 1 | 18 | 1.0 | 0.6 | 10.701 |
| 2 | 6 | 0.1 | 0.2 | 3.384 |
| 3 | 18 | 0.1 | 0.6 | 3.384 |
Las penetraciones son 0.2 y 0.6. El radio adimensional es aproximadamente 10.701 para kv/kh = 1 y 3.384 para kv/kh = 0.1.
El capítulo indica 5 ≤ rDe ≤ 80 y 0.1 ≤ bD ≤ 0.75 para los modelos con los que se obtuvo la función. Las dos penetraciones están dentro del rango, pero el caso kv/kh = 0.1 del propio ejercicio tiene rDe ≈ 3.384. Lo calcularemos como extrapolación, señalada en la tabla y en las gráficas.
La función geométrica se expresa como:
\[ \Omega(r_{De},b_D)=\frac{A(b_D)}{B(b_D)+C(b_D)\ln(r_{De})} \]
con:
\[ A(b_D)=0.993+\frac{0.00119}{0.769-b_D} \]
\[ B(b_D)=\frac{1}{0.302-0.053b_D-0.336b_D^2} \]
\[ C(b_D)=1.459\exp\left[0.803b_D^2\ln\left(5.664b_D^{2.85}+9\right)\right] \]
En Python basta una función corta. np.log representa el logaritmo natural.
El caudal crítico se obtiene mediante:
\[ q_{o,\mathrm{crit}}= 5.256\times10^{-6}h_o^2(\rho_w-\rho_o) \frac{k_h k_{ro}}{B_o\mu_o}\,\Omega(r_{De},b_D) \]
Con ho en m, densidades en kg/m³, kh en mD, μo en cP y Bo en m³/m³, el resultado es m³/d de aceite a condiciones de superficie. kro es la permeabilidad relativa al aceite a la saturación inicial de agua, por lo que \(k_h k_{ro}\) representa la permeabilidad efectiva al aceite usada en este ejemplo.
factor = 5.256e-6 * ho**2 * (rho_w - rho_o) * kh * kro / (Bo * mu_o)
datos["Omega"] = omega(datos["b_D"], datos["r_De"])
datos["qcrit_m3_d"] = factor * datos["Omega"]
en_rango = datos["r_De"].between(5, 80) & datos["b_D"].between(0.1, 0.75)
datos["Uso"] = np.where(en_rango, "Dentro del rango", "Extrapolación")
datos[["b_m", "kv_kh", "b_D", "r_De", "qcrit_m3_d", "Uso"]].round(2)| b_m | kv_kh | b_D | r_De | qcrit_m3_d | Uso | |
|---|---|---|---|---|---|---|
| 0 | 6 | 1.0 | 0.2 | 10.70 | 28.98 | Dentro del rango |
| 1 | 18 | 1.0 | 0.6 | 10.70 | 15.78 | Dentro del rango |
| 2 | 6 | 0.1 | 0.2 | 3.38 | 38.47 | Extrapolación |
| 3 | 18 | 0.1 | 0.6 | 3.38 | 20.88 | Extrapolación |
Redondeando a una cifra decimal, los cuatro caudales son:
| Intervalo abierto, b (m) | kv/kh | Caudal crítico (m³/d) | Uso de la correlación |
|---|---|---|---|
| 6 | 1.0 | 29.0 | Dentro del rango |
| 18 | 1.0 | 15.8 | Dentro del rango |
| 6 | 0.1 | 38.5 | Extrapolación |
| 18 | 0.1 | 20.9 | Extrapolación |
Estos valores coinciden, al redondeo mostrado, con los del ejercicio 12.6. Conservamos la precisión completa durante el cálculo y redondeamos únicamente al presentar los resultados.
Una tabla dinámica permite construir un gráfico de barras con pocas líneas. El símbolo (*) identifica la extrapolación.
tabla = datos.pivot(index="b_m", columns="kv_kh", values="qcrit_m3_d")
tabla = tabla[[1.0, 0.1]]
tabla.columns = ["kv/kh = 1", "kv/kh = 0.1 (*)"]
tabla.plot.bar(rot=0, figsize=(8, 5))
plt.xlabel("Longitud del intervalo abierto, b (m)")
plt.ylabel("Caudal crítico de aceite (m³/d, superficie)")
plt.legend(title="")
plt.tight_layout()
plt.show()Al aumentar la apertura de 6 a 18 m, el fondo del intervalo productor queda más cerca del agua y el caudal crítico disminuye. Un intervalo abierto más largo no implica un mayor caudal libre de agua por conificación.
La menor permeabilidad vertical produce aquí un caudal crítico calculado mayor. Esta tendencia es consistente con una menor facilidad de flujo vertical; los valores para kv/kh = 0.1 mantienen la limitación de extrapolación indicada.
Ahora mantenemos las propiedades del ejemplo y variamos bD de 0.1 a 0.75, equivalente a aperturas de 3 a 22.5 m. Esta sensibilidad amplía los cuatro casos iniciales.
Reutilizamos la misma función y representamos cada anisotropía con una línea. La línea discontinua corresponde al radio adimensional fuera del rango.
b_D = np.linspace(0.1, 0.75, 100)
plt.figure(figsize=(8, 5))
for relacion, estilo in [(1.0, "-"), (0.1, "--")]:
r_De = re / ho * np.sqrt(relacion)
qcrit = factor * omega(b_D, r_De)
plt.plot(b_D, qcrit, estilo, label=f"kv/kh = {relacion:g}")
plt.xlabel("Penetración, bD = b/ho")
plt.ylabel("Caudal crítico de aceite (m³/d, superficie)")
plt.legend()
plt.grid(alpha=0.3)
plt.tight_layout()
plt.show()La posición del intervalo abierto respecto al contacto y la relación entre permeabilidad vertical y horizontal influyen en el caudal crítico. Para esta geometría, abrir una mayor fracción de la columna de aceite reduce el margen frente a la llegada de agua por conificación.
El modelo considera un pozo vertical parcialmente penetrante, abierto desde el techo de una formación homogénea con anisotropía uniforme, sobre agua de fondo. Usa un cono estabilizado y desprecia efectos capilares y de compresibilidad en su formulación. No representa barreras internas ni canalización por fracturas.
El caudal crítico es una estimación bajo esos supuestos, no una garantía de producción sin agua. El contacto puede moverse y también puede existir agua producida por otros mecanismos. La porosidad, viscosidad del agua y krw no intervienen en esta ecuación de caudal crítico; sí pueden intervenir al estudiar el tiempo de llegada y la evolución posterior del corte de agua.
Chierici, G. L. (1995). Principles of Petroleum Reservoir Engineering, volumen 2. Springer. Capítulo 12, sección 12.6.1: Calculation of the Critical Flow Rate for Water Coning, páginas impresas 77–81; ecuaciones 12.45c, 12.48a–d y 12.49. Ejercicio 12.6, páginas impresas 118–119.