Production System Modelling

Your Progress in this Chapter

0%

0 / 26 units completed

Chapter Overview

Decline Curve Analysis

Section 11.6 of 625 min9 code examples

Definition: Decline Curve Analysis involves fitting a mathematical function to historical production rate data over time. The three standard models defined by Arps are Exponential, Hyperbolic, and Harmonic decline.

The General Equation

All three decline types are derived from the general equation:

q(t)=qi(1+bDit)1/bq(t) = \frac{q_i}{(1 + b D_i t)^{1/b}}

Where:

  • q(t) = production rate at time t
  • q_i = initial production rate
  • D_i = initial nominal decline rate (1/time)
  • b = decline exponent (0 for exponential, 1 for harmonic)

Exponential Decline (:math:`b = 0`)

Used when the decline rate is constant. This is common in highly undersaturated oil reservoirs or wells with constant pressure boundaries.

q(t)=qieDtq(t) = q_i e^{-D t}

Numerical Example:

Given:

  • q_i = 1000 \, \text{STB/day}
  • D = 0.05 \, \text{per month}
  • Find rate after 12 months:
q(12)=1000e(0.0512)=10000.5488=548.8,STB/dayq(12) = 1000 \cdot e^{-(0.05 \cdot 12)} = 1000 \cdot 0.5488 = 548.8 , \text{STB/day}

Example 1C#

1
2
3
4
5
Code is ready to run
OutputFrom the book
Rate after 12 months = 548.81 STB/day

Linearization for Exponential Decline

The exponential equation q = q_i e^{-Dt} can be linearized by taking the natural logarithm of both sides:

ln(q)=ln(qi)Dt\ln(q) = \ln(q_i) - D \cdot t

By plotting \ln(q) vs. t, the slope is -D and the intercept is \ln(q_i).

Practical Example:

Example 2C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Code is ready to run
OutputFrom the book
D = 0.049296673326352236 per month
q_i = 998.1220221050729 STB/day
Exponential_Fit.png

Linearization for Harmonic Decline (:math:`b=1`)

The harmonic equation q = q_i / (1 + D_i t) is linearized by taking the reciprocal of the rate:

1q=1qi+(Diqi)t\frac{1}{q} = \frac{1}{q_i} + \left(\frac{D_i}{q_i}\right) \cdot t

By plotting 1/q vs. t, the slope is D_i/q_i and the intercept is 1/q_i.

Practical Example:

Example 3C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Code is ready to run
OutputFrom the book
D = 0.11128058359645096 per month
q_i = 1111.2494708361232 STB/day
Harmonic_Fit.png

Hyperbolic Decline (:math:`0 < b < 1`)

The most common decline type. The decline rate itself decreases over time.

Numerical Example:

Given:

  • q_i = 1500 \, \text{Mscf/day}
  • D_i = 0.10 \, \text{per month}
  • b = 0.5
q(t)=1500(1+0.50.112)1/0.5=1500(1.6)2=585.9Mscf/dayq(t) = \frac{1500}{(1 + 0.5 \cdot 0.1 \cdot 12)^{1/0.5}} = \frac{1500}{(1.6)^2} = 585.9 \, \text{Mscf/day}

Example 4C#

1
2
3
4
5
6
Code is ready to run
OutputFrom the book
Hyperbolic Rate = 585.94 Mscf/day

Linearization for Hyperbolic Decline

Hyperbolic decline (0 < b < 1) cannot be fully linearized with simple variables because of the b exponent. Instead, we linearize the Loss Ratio (1/D), defined as a = q / (dq/dt):

qdq/dt=1Di+bt\frac{q}{dq/dt} = \frac{1}{D_i} + b \cdot t

To solve this, we compute the derivative of production over time, plot the loss ratio vs. t, and find b (slope) and 1/D_i (intercept).

Practical Example:

Example 5C#

1
2
3
Code is ready to run

Cumulative Production and EUR

To calculate the Estimated Ultimate Recovery (EUR), we integrate the rate over time until a limit rate (q_{limit}) is reached.

For Exponential Decline:

Gp=qiq(t)DG_p = \frac{q_i - q(t)}{D}

Example 6C#

1
2
3
4
5
Code is ready to run
OutputFrom the book
EUR (Exponential) = 19000.00 STB

Computing the Exponential Model Decline Rate

Using the given data

Example 7C#

1
2
Code is ready to run

Solution - 1. Compute the commulative production Np - 2. Plot qt versus Np and measure the slope and intercept - 3. intercept is the q_i and slope is the D

Example 8C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Code is ready to run
OutputFrom the book
D = -0.0010050369357366175
q_i = 999.9999607852839
Decline_Curve_Fitting.png

Data with Shutdown

Given this production history with shutdown

Example 9C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Code is ready to run
OutputFrom the book
⚠️ Runtime Error: Index was outside the bounds of the array.
Decline_Curve_Fitting.png

Assuming an exponential decline model

  • 1. Plot the t vs Q
  • 2. delete the zeros and the corresponding times and adjust the time to delete the shutdown time
  • 3. using exponential fit, estimate the intial rate and the decline rate.

Using the second approach of cumulative versus rate

  • 4. Compute Cummulative production
  • 5. Plot the production rate versus cumulative production
  • 6. Delete the zero rates and the corresponding cumulative production
  • 7. using linear fit. estimete the initial rate and the decline rate.