Generating IPR curve for two-phase reservoirs: Voguel Method
At pressures less than the bubble point pressure, oil flow decreases due to oil relative permeability is reduced because solutions gas escapes and become free gas, increasing oil viscosity also. Because of that IPR curve deviates from linear behavior at pressure less than the bubble-point pressure.
Vogel offered a simplified solution for two-phase flow problem, defined the following equation:
q=qmax[1−0.2(PwfP)−0.8(PwfP)2] (1)
or
pwf=0.125p[√81−80(qqmax)−1] (2)
where qmax is defined as the absolute open flow (AOF), the maximum possible reservoir deliverability, and its equation is
qmax=J∗p1.8 (3)
Example. Calculate and graph the IPR for a vertical well in a saturated oil reservoir using Vogel’s equation
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
First, calculate Productivity index using pseudo-steady state PI equation
py <- 5651
pb <- 5651
k <- 8.2
h <- 53
Bo <- 1.1
viso <- 1.7
re <- 2980
rw <- 0.328
S <- 0
#Productivity index
J = (k*h)/(141.2*Bo*viso*(log(re/rw)-3/4+S))
print(J)
[1] 0.1967785
Now, we can estimate AOF and then oil rates using a flowing botton-hole pressure vector to generate the IPR curve
qmax <- (J*py)/1.8
qmax
[1] 617.7751
#create a pressure vector from reservoir pressure to zero
pwf <- seq(0,py, length.out = 10)
#Using equation 1 and Productivity index value, calculate Qo
qo <- qmax*(1-0.2*(pwf/py)-0.8*(pwf/py)^2)
#Using Pwf and Qo vector we cna create a dataframe
IPR <- data.frame(Pwf = pwf, Qo = qo)
print(IPR)
Pwf Qo
1 0.0000 617.7751
2 627.8889 597.9452
3 1255.7778 565.9125
4 1883.6667 521.6767
5 2511.5556 465.2380
6 3139.4444 396.5963
7 3767.3333 315.7517
8 4395.2222 222.7041
9 5023.1111 117.4535
10 5651.0000 0.0000
Now we can plot IPR with ggplot2
When reservoir pressure is greater than the bubble-point pressure and the flowing bottom-hole pressure can be less than the bubble-point pressure in some conditions, the model have to combine the straight-line IPR for single-phase flow and the Vogel’s IPR model for two-phase flow.
The flow rate at the bubble-point pressure using the linar IPR model is
qb=J(ˉp−pb)
The total flow rate, considering the additional q_b rate and using the Vogel’s IPR model at a given bottom-hole pressure less than the Pb is expressed as
q=J(ˉp−pb)+J∗p1.8[1−0.2(PwfP)−0.8(PwfP)2]
where
J∗p1.8=qv (3)
Example. Calculate and graph the IPR for a vertical well in an undersaturated oil reservoir using Vogel’s equation
Porosity=0.19
Permeability:k=8.2 md
Pay zone thickness:h=53 ft
Reservoir pressure:Pe=5651 psi
Bubble−point pressure:pb=3000 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
First, calculate Productivity index using pseudo-steady state PI equation
py <- 5651
pb <- 3000
k <- 8.2
h <- 53
Bo <- 1.1
viso <- 1.7
re <- 2980
rw <- 0.328
S <- 0
#Productivity index
J = (k*h)/(141.2*Bo*viso*(log(re/rw)-3/4+S))
print(J)
[1] 0.1967785
Now, we can estimate qb and qv, then oil rates using a flowing botton-hole pressure vector to generate the IPR curve, in this using ifelse() function to evaluate if pwf is less or grater than pb
qb <- (J)*(py-pb)
qb
[1] 521.6597
qv <- J*pb/1.8
qv
[1] 327.9641
#create a pressure vector from reservoir pressure to zero
pwf <- seq(0,py, length.out = 10)
#Using equation 1 and Productivity index value, calculate Qo
qo <- ifelse(pwf >= pb, J*(py-pwf), qb + qv*(1-0.2*(pwf/pb)-0.8*(pwf/pb)^2))
#Using Pwf and Qo vector we cna create a dataframe
IPR <- data.frame(Pwf = pwf, Qo = qo)
print(IPR)
Pwf Qo
1 0.0000 849.6238
2 627.8889 824.4023
3 1255.7778 776.1945
4 1883.6667 705.0004
5 2511.5556 610.8200
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
Now we can plot IPR with ggplot2
References
Guo, Boyun (2008) Well productivity handbook
For attribution, please cite this work as
Vazquez (2022, Feb. 18). Chato Solutions: Inflow performance relationship: Part 2. Retrieved from https://www.chatosolutions.com/posts/2022-02-18-pi2/
BibTeX citation
@misc{vazquez2022inflow, author = {Vazquez, Rigoberto Chandomi}, title = {Chato Solutions: Inflow performance relationship: Part 2}, url = {https://www.chatosolutions.com/posts/2022-02-18-pi2/}, year = {2022} }