Comportamiento de afluencia IPR - Parte 1

Genera la curva de IPR con el método de Darcy.


Author

Affiliation

Rigoberto Chandomi

 

Published

Nov. 20, 2023

DOI


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=qPePwf  (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(PePwf)=kh162.6Boμo(logt+logkϕμoctr2w3.23+0.87S)

““Flujo radial estacionario en un pozo vertical”” J=q(PePwf)=kh141.2Boμo(Inrerw+S)
““Flujo radial pseudo-estacionario en un pozo vertical”” J=kh141.2Boμo(Inrerw34+S)J=q(PPwf)=kh141.2Boμo(12In4AγCAr2w+S)
““Flujo pseudo-estacionario en un pozo fracturado”” J=q(PePwf)=kh141.2Boμo(Inrerw+Sf)
““Flujo pseudo-estacionario en un pozo horizontal”” j=q(PePwf)=kHh141.2Boμo[In[a+a2(L/2)2L/2]+1anihLIn[1anihrw(1ani+1)]]

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

Bubblepoint pressure:pb=5651 psia

Oil formation volume factor:Bo=1.1

Oil viscosity:μo=1.7 cp

Totalcompressibility:ct=0.0000129 psi1

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

library(ggplot2)

ggplot(IPR, aes(x = Qo, y = Pwf)) + 
  geom_point() + geom_line()

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