Given:
- a function
LaTeX Math Inline |
---|
body | --uriencoded--q%5e*(t, %7B\bf p%7D) |
---|
|
of real-value argument and set of model parameters LaTeX Math Inline |
---|
body | --uriencoded--%7B\bf p%7D = \%7B q%5e*_0, \, \tau_0, \, b \%7D |
---|
|
- a training data set:
LaTeX Math Inline |
---|
body | --uriencoded--\%7B (t_k, q_k)\%7D_%7Bk = 1..N%7D = \%7B (t_0, q_0), |
---|
|
...
(t_1, q_1), ..., (t_N, q_N) |
|
...
the matching procedure assumes searching for thee specific set of model parameters to the production forecasts in future time moments
LaTeX Math Inline |
---|
body | --uriencoded--[(t_%7BN+1%7D,q_%7BN+1%7D), ...] |
---|
|
one may wish to constrain the model by firm matching the production at the last historical moment which leads to the following form of Arp's model: to minimize the goal function: LaTeX Math Block |
---|
|
G({\bf p}) = \sum_{k=1}^N \, \Psi \left( q^*(t_k) - q_k \right) \rightarrow \textrm{min} |
where
is the discrepancy distance function.Most popular choices are
LaTeX Math Inline |
---|
body | --uriencoded--\Psi(z) = z%5e2 |
---|
|
and LaTeX Math Inline |
---|
body | --uriencoded--\Psi(z) = %7Cz%7C |
---|
|
.
There are few approaches to match the Arps decline to the historical data (or a training dataset within):
- Unconstrained matching
- Constrained matching:
The constrained matching is used to one may wish to ensure the smooth transition from the training dataset to future model predictions.
Anchor |
---|
| Unconstrained |
---|
| Unconstrained |
---|
|
Unconstrained matching
...
All three model parameters LaTeX Math Inline |
---|
body | --uriencoded--\%7B q%5e*_0, \, \tau_0, \, b \%7D |
---|
|
are being varied to achieve the best fit to the training dataset.
The best-fit model may not match:
- the initial production rate
LaTeX Math Inline |
---|
body | --uriencoded--q%5e*(t=0) \neq q_0 |
---|
|
- the current production rate
LaTeX Math Inline |
---|
body | --uriencoded--q%5e*(t=t_N) \neq q_N |
---|
|
- the current cumulative production
LaTeX Math Inline |
---|
body | --uriencoded--Q%5e*(t=t_N) \neq Q_N |
---|
|
Match the value of the initial rate LaTeX Math Inline |
---|
body | --uriencoded--q%5e*(t=0) = q_0 |
---|
|
...
The value of the model rate at the initial time moment is set to training dataset: LaTeX Math Inline |
---|
body | --uriencoded--q%5e*(t=0) = q%5e*_0 = q_0 |
---|
|
and the two other model properties LaTeX Math Inline |
---|
body | --uriencoded--\%7B \tau_0, \, b \%7D |
---|
|
are being varied to achieve the best fit to the training dataset.
The best-fit model may not match:
- the current production rate
LaTeX Math Inline |
---|
body | --uriencoded--q%5e*(t=t_N) \neq q_N |
---|
|
- the current cumulative production
LaTeX Math Inline |
---|
body | --uriencoded--Q%5e*(t=t_N) \neq Q_N |
---|
|
Match the value of the current rate LaTeX Math Inline |
---|
body | --uriencoded--q%5e*(t=t_N) = q_N |
---|
|
...
The value of the model rate at the current time moment is set to training dataset: LaTeX Math Inline |
---|
body | --uriencoded--q%5e*(t=t_N) = q_N |
---|
|
and the two other model properties LaTeX Math Inline |
---|
body | --uriencoded--\%7B \tau_0, \, b \%7D |
---|
|
are being varied to achieve the best fit to the training dataset.
This ensures the smooth transition from historical data LaTeX Math Inline |
---|
body | [(t_1,q_1)... (t_N, q_N)] |
---|
|
to the production forecasts in future time moments LaTeX Math Inline |
---|
body | --uriencoded--[(t_%7BN+1%7D,q_%7BN+1%7D), ...] |
---|
|
.
The best-fit model may not match:
- the initial production rate
LaTeX Math Inline |
---|
body | --uriencoded--q%5e*(t=0) \neq q_0 |
---|
|
- the current cumulative production
LaTeX Math Inline |
---|
body | --uriencoded--Q%5e*(t=t_N) \neq Q_N |
---|
|
Anchor |
---|
| Current_cumulative |
---|
| Current_cumulative |
---|
|
Match the value of the current cumulative LaTeX Math Inline |
---|
body | --uriencoded--Q%5e*(t=t_N) = Q_N |
---|
|
...
The value of the model rate at the initial time moment LaTeX Math Inline |
---|
body | --uriencoded--q%5e*(t=0) = q%5e*_0 |
---|
|
is set to achieve the match between the values of current cumulative from model prediction and training dataset LaTeX Math Inline |
---|
body | --uriencoded--Q%5e*(t=t_N) = Q_N |
---|
|
:
Exponential Production Decline | Hyperbolic Production Decline | Harmonic Production Decline |
---|
| | |
LaTeX Math Block |
---|
| Qq(t) -= \frac{Q_N/\tau_0}{1-\exp(-t_N/\tau_0)} = [ q_N - q(t)] \, \tau_0\cdot \exp(-t/\tau_0) |
| LaTeX Math Block |
---|
| q(t) = \frac{(1-b) \cdot Q_N/\tau_0}{ 1 - \left( 1 + b \, t_N/\tau_0 \right) ^{-b/(1-b)}} \cdot \frac{1}{\left(1 + b\, t/\tau_0 \right)^{1/b}} |
| LaTeX Math Block |
---|
| q(t)=\frac{Q_N/\tau_0}{\ln (1+ t_N/\tau_0)} \cdot - Q_N\frac{1}{1+t/\tau_0} |
|
The best-fit model may not match:
- the initial production rate
LaTeX Math Inline |
---|
body | --uriencoded--q%5e*(t=0) \neq q_0 |
---|
|
- the current production rate
LaTeX Math Inline |
---|
body | --uriencoded--q%5e*(t=t_N) \neq q_N |
---|
|
Anchor |
---|
| Current_rate_cumulative |
---|
| Current_rate_cumulative |
---|
|
Match the value of the current rate and cumulative LaTeX Math Inline |
---|
body | --uriencoded--q%5e*(t=t_N) = q_N |
---|
|
, LaTeX Math Inline |
---|
body | --uriencoded--Q%5e*(t=t_N) = Q_N |
---|
|
...
The value of the model rate at the current time moment and decline pace are set to match both current rate LaTeX Math Inline |
---|
body | --uriencoded--q%5e*(t=t_N) = q_N |
---|
|
and current cumulative LaTeX Math Inline |
---|
body | --uriencoded--Q%5e*(t=t_N) = Q_N |
---|
|
.
This makes Exponential Production Decline and Harmonic Production Decline are fully set while Hyperbolic Production Decline has opportunity to vary one model parameter LaTeX Math Inline |
---|
body | --uriencoded--\%7B b \%7D |
---|
|
to achieve the best fit to the training dataset.
Exponential Production Decline | Hyperbolic Production Decline | Harmonic Production Decline |
---|
| | |
LaTeX Math Block |
---|
| q(t) = \frac{Q_N/\tau_0}{1-\exp(-t_N/\tau_0)} \cdot \exp(-t/\tau_0) |
| LaTeX Math Block |
---|
| q(t) = \frac{(1-b) \cdot Q_N/\tau_0}{ 1 - \left( 1 + b \, t_N/\tau_0 \right) ^{-b/(1-b)}} \cdot \frac{1}{\left(1 + b\, t/\tau_0 \right)^{1/b}}q_N^b \, (\tau_0 + b \, t_N)}{1-b} \left[ q_N^{1-b} - q^{1-b}(t) \right] |
| LaTeX Math Block |
---|
| Qq(t) - =\frac{Q_N = q_N \, (\/\tau_0}{\ln (1+ t_N/\tau_0)} \cdot \ln \frac{q_N}{q(t)}1}{1+t/\tau_0} |
|
The best-fit model may not match:
- the initial production rate
LaTeX Math Inline |
---|
body | --uriencoded--q%5e*(t=0) \neq q_0 |
---|
|
See Also
...
Petroleum Industry / Upstream / Production / Subsurface Production / Field Study & Modelling / Production Analysis / Decline Curve Analysis / DCA Arps @model
...