Genera la curva de IPR con el método de Darcy.
La curva IPR es una representación gráfica de la relación entre la presión en el fondo del pozo y el gasto de producción de líquido. La magnitud de la pendiente de la curva IPR se denomina índice de productividad (PI or J), expresado como:
J=qPe−Pwf (1)
Para yacimientos de petróleo bajosaturados o regiones de yacimientos donde la presión es mayor que la presión del punto de burbuja podemos utilizar las siguientes ecuaciones
““Flujo radial transitorio en un pozo vertical”” J∗=q(Pe−Pwf)=kh162.6Boμo(logt+logkϕμoctr2w−3.23+0.87S)
Example in R
Usando los siguientes datos podemos calcular y graficar el IPR para un pozo vertical de un yacimiento de aceite considerando flujo pseudo-estacionario.
Porosity=0.19
Permeability:k=8.2 md
Pay zone thickness:h=53 ft
Reservoir pressure:Pe=5651 psi
Bubble−point pressure:pb=5651 psia
Oil formation volume factor:Bo=1.1
Oil viscosity:μo=1.7 cp
Totalcompressibility:ct=0.0000129 psi−1
Drainage area:A=640 acres (re=2980 ft)
Wellbore radius:rw=0.328 ft
Skin factor:S=0
py <- 5651
k <- 8.2
h <- 53
Bo <- 1.1
viso <- 1.7
re <- 2980
rw <- 0.328
S <- 0
#Indice de productividad
J = (k*h)/(141.2*Bo*viso*(log(re/rw)-3/4+S))
print(J)
[1] 0.1967785
Los puntos de la curva IPR puede calcularse de la siguiente manera
#Se crea un vector de presión desde la presion de yacimiento a 0
pwf <- seq(0,py, length.out = 10)
#Usando la ecuacion 1 y el valor de indice de productividad calculamos gasto de aceite (QO)
qo <- J*(py-pwf)
#Usando los vector de Pwf y Qo creamos un dataframe
IPR <- data.frame(Pwf = pwf, Qo = qo)
print(IPR)
Pwf Qo
1 0.0000 1111.9951
2 627.8889 988.4401
3 1255.7778 864.8851
4 1883.6667 741.3301
5 2511.5556 617.7751
6 3139.4444 494.2201
7 3767.3333 370.6650
8 4395.2222 247.1100
9 5023.1111 123.5550
10 5651.0000 0.0000
Usando ggplot2 graficamos la curva IPR
Usando el código anterior podemos definir una función para agilizar los caculos.
Darcy_PSS <- function(py,k,h,Bo,viso,re,rw,S){
J = (k*h)/(141.2*Bo*viso*(log(re/rw)-3/4+S))
pwf <- seq(0,py, length.out = 10)
qo <- J*(py-pwf)
IPR <- data.frame(Pwf = pwf, Qo = qo)
return(IPR)
}
IPR <- Darcy_PSS(4500, 8.2,53,1.1,1.7,2980,0.328,0)
print(IPR)
Pwf Qo
1 0 885.50310
2 500 787.11387
3 1000 688.72464
4 1500 590.33540
5 2000 491.94617
6 2500 393.55693
7 3000 295.16770
8 3500 196.77847
9 4000 98.38923
10 4500 0.00000
Ahora podemos comparar facilmente el IPR con y sin factor de daño
IPR_nS <- Darcy_PSS(5000, 8.2,53,1.1,1.7,2980,0.328,0)
IPR_S <- Darcy_PSS(5000, 8.2,53,1.1,1.7,2980,0.328,2)
ggplot() +
geom_point(data = IPR_nS, aes(x = Qo, y = Pwf), color = "red") +
geom_line(data = IPR_nS, aes(x = Qo, y = Pwf), color = "red")+
geom_point(data = IPR_S, aes(x = Qo, y = Pwf), color = "green") +
geom_line(data = IPR_S, aes(x = Qo, y = Pwf), color = "green")
Referencias:
Guo, Boyun (2008) Well productivity handbook