Application laplace transformation to flow problems in reservoirs (1949)
В 1949 году выходит статья «О применении преобразования Лапласа для решения задач течения флюида в пластах» за авторством A. F. Van Everdingen (Shell) и W. Hurst, которая демонстрирует технику применения операционного исчисления для решения уравнения диффузии.
Статья ссылается на фундаментальную книгу «Conduction of Heat in Solids» H.S.Carslaw и J.C.Jaeger (1947), посвященную решению задач теплопроводности твердых тел. Как упоминается в книге, дифференциальное уравнение течения сжимаемой жидкости через пористую среду полностью соответствует уравнению теплопроводности, поэтому неудивительно, что методы решения были перенесены и на задачи, возникающие при разработке месторождений.
Раздел посвященный переходу к безразмерным координатам выписан из приложения книги «Pressure Transient Testing», J.Lee, J.B. Rollins и J.P.Spivey, также для операции с функциями Бесселя, как и у авторов, используется книга «Mathematical Methods in Engineering», T.Karman и M.A.Biot, а также «Treatise on the theory of bessel functions», G.N.Watson (1945).
Выполняя обещание в один день понять её содержание, публикую здесь свой вольный пересказ.
***
Родственные теплопроводности дифференциальные уравнения обобщено называют уравнением диффузии, которые в цилиндрических (радиальных) координатах записываются в виде,
где коэффициент диффузии,
Уравнение диффузии традиционно решается при помощи рядов Фурье-Бесселя, однако используя преобразование Лапласа можно получить более элегантное решение. Умножив обе части уравнения на и проинтегрировав по
, получим изображение уравнения диффузии,
Правая часть уравнения представляет собой преобразование производной функции,
которое приводит к появлению неудобного значения начального пластового давления избавиться от которого можно следующим образом.
Рассмотрим перепад давления и его частные производные,
Заменяя в уравнении диффузии давление на величину перепада давления, получим такое же по форме уравнение диффузии,
Применяя подобные преобразования стараются перейти к удобным для вычислений значениям в новых переменных. Например, заменив давление на перепад давления и учитывая, что давление в нулевой момент времени равняется начальному пластовому давлению , получим что,
Далее знак дельты будет опускаться и под давлением всегда понимается разница текущего давления от начального пластового.
Также нам понадобится масштабный множитель для радиуса, который выбирается так, чтобы при безразмерное расстояние равнялось единице,
Множитель справа, перед производной по времени, будет мешать в дальнейшем получить уравнение Бесселя, поэтому спрячем его под производную давления,
Делая таким образом переход к безразмерному времени,
Уравнение диффузии с двумя новыми безразмерными переменными примет следующий вид,
Для левой части изображения уравнения диффузии вспомним формулу Лейбница,
По определению, изображение функции давления,
Первая производная запишется как,
Вторая производная,
Преобразование Лапласа свело дифференциальное уравнение диффузии с частными производными к обыкновенному дифференциальному уравнению, которое называется вспомогательным уравнением,
Совершая очередную замену,
Получим модифицированное уравнение Бесселя нулевого порядка,
Решение которого записывается в виде
Для определения коэффициентов и
, потребуется два граничных условия, заданных на забое скважины или на контуре питания.
Решение для бесконечного пласта
Известно, что для модифицированных функций Бесселя при стремлении аргумента , значение
становится очень большим, а значение
стремится к нулю. В начальный момент времени во всех точках пласта перепад давления равен нулю и изображение перепада давления также равно нулю, поэтому при любых
должно выполнятся,
Равенство нулю возможно только при , поэтому в общем виде решение для бесконечного пласта следующее,
Конкретный вид будет зависеть уже от условия на забое скважины, при .
Первым рассмотрим режим поддержания постоянного дебита скважины.
Внутреннее граничное условие должно быть определено в терминах давления, поэтому уравнение Дюпюи запишем в дифференциальной форме,
Вспоминая, что в уравнении диффузии мы перешли от давления к перепаду давлений,
Запишем уравнение Дюпюи иначе,
из которого заданный дебит скважины можно представить в форме давления,
Здесь безразмерный радиус помогает избавится от радиуса скважины,
Перейдем к изображениям левой и правой части,
Найдем производную общего решения, используя свойство,
Зная, чему равно значение производной из заданного дебита скважины при ,
Подставляя найденный коэффициент в общее решение, получим изображение изменения перепада давления при постоянном дебите для бесконечного пласта,
Для изображения перепада давления на забое скважины,
можно заметить, что форма решения не зависит от свойств пласта и с каким дебитом работает скважина. Поэтому разумно получить единственное общее решение в виде,
Ещё раз вспоминая определение преобразования Лапласа,
Учтем множитель, сформировав новую безразмерную переменную,
Уравнение диффузии теперь с учетом трех безразмерных переменных принимает свою самую известную форму,
Внутреннее граничное условие упрощается,
Решение для бесконечного пласта при режиме поддержания постоянного дебита скважины,
В этой заметке для получения обратного преобразования Лапласа мы будем использовать несложный в реализации численный алгоритм Stehfest.
Полученное решение представляет скважину как полый цилиндр, на границе которого создается забойное давление. Известно также решение уравнении диффузии методом точечного источника, при котором скважина представлена бесконечно тонкой линией нулевого радиуса (line-source well) .
Сравнение цилиндрического решения и точечного источника, показывает сильное влияние допущения о нулевом радиусе скважины для малых безразмерных времен.

Для безразмерного времени , решения дают одинаковые результаты.
Режим поддержания постоянного дебита наиболее востребован при интерпретации результатов исследования скважин и основная масса статьей цитирует приведенное выше решение. В оригинальной статье приводится также и решение для может быть более интересного для разработчиков режима поддержания постоянного забойного давления.
Для режима поддержания постоянного забойного давления, перепад давления на забое скважины равен . Найдем преобразование Лапласа,
Теперь можно выразить коэффициент ,
и получить преобразование Лапласа для распределения давления по всему пласту при поддержании ,
В дальнейшем нам понадобится найти производную,
Повторяя размышления о безразмерном давлении, постоянная разница давлений вносится под интеграл преобразования Лапласа. В итоге безразмерное давление записывается как,
Уравнение диффузии с тремя безразмерными параметрами записывается также как и раньше,
Внутреннее граничное условие упрощается,
В статье дается выражение для накопленной добычи, однако используя тот же подход не сложно получить выражение для текущего дебита. Вернемся к уравнению Дюпюи,
Найдем производную безразмерного давления,
Следовательно,
Сформируем комплекс безразмерного дебита скважины,
Найдем изображение безразмерного дебита,
Численное решение обратного преобразования Лапласа позволяет найти изменение безразмерного дебита скважины,

Таким образом при сохранении постоянного забойного давления, темпы падения дебита в безразмерных координатах имеют единый вид для всех вертикальных скважин .
Выразим накопленную добычу,
Сформируем комплекс безразмерной накопленной добычи,
Найдем преобразование Лапласа,
применим метод интегрирования по частям,
левый интеграл при границе равен нулю, а при
накопленная добыча в нулевой момент равен нулю, поэтому
Подставляя вместо градиента давления, производную как в случае с дебитом, получим
Построим график изменения накопленной добычи от безразмерного времени,

Далее приводятся решения для различных условий на внешней границе, которые опираются уже на сформированные ранее безразмерные комплексы.
Решение для замкнутого пласта
Замкнутый пласт представлен условием на внешней границе как отсутствие притока,
Из общего решения,
используя свойство и
найдем производную по расстоянию,
в которую подставим два преобразованных граничных условия. Первое это условие поддержания постоянного дебита на скважине, второе это условие отсутствия притока на внешней границе,
которые позволяют выразить коэффициенты и
и записать общий вид уравнения,
Получим серию решений для различных значений безразмерного радиуса ограниченной залежи ,

Для режима поддержания постоянного забойного давления, безразмерный постоянный перепад давления на скважине равен единице,
На внешней границе,
Из общего решения,
можно записать систему из двух уравнений,
используя свойство и
Получим следующее общее решение,
Чтобы найти безразмерный дебит и накопленную добычу, найдем производную давления,
Ранее мы использовали переход от производной давления,
Получим серию решений для различных значений безразмерного радиуса ограниченной залежи ,


Решение для поддержания начального пластового давления на границе контура
Поддержание постоянного пластового давления на границе представляется как отсутствие перепада давления на внешней границе,
Из общего решения,
получим,
Повторяя ход рассуждений из прошлых случаев, для режима поддержания постоянного дебита выразим,

После некоторого времени после запуска скважины наступает стационарное течение, при котором стабилизируется перепад давления между контуром и скважиной. Перепад давления, после выхода на режим, определяется из уравнения Дюпюи,
Для режима поддержания постоянного забойного давления, получим два уравнения
Подставляя коэффициенты в производную давления, получим динамики изменения дебита скважины для разных размеров пласта,

Накопленная добыча нефти,

Исходные данные для графиков приведены в файле VanEverdingen
Алгоритм Stehfest
В 1970 году в ежемесячном журнале ассоциации вычислительной техники (ACM) под номером 368 опубликован алгоритм, позволяющий найти обратное преобразование Лапласа любой функции. Реализация на C++(Qt) получилась такой,
double factorial(int N) // factorial
{
double x = 1.0;
for (int i = 2; i <= N; i++) {
x = x * i;
}
return x;
}
QList StehfestCoefficients(int N)
{
int N2 = static_cast(N / 2);
int NV = 2 * N2;
QList H(NV);
int sign = 1;
if ((N2 % 2) != 0) {
sign = -1;
}
for (int i = 0; i < NV; ++i)
{
int kmin = (int) ((i + 2) / 2);
int kmax = i + 1;
if (kmax > N2) {
kmax = N2;
}
H[i] = 0;
sign = -sign;
for (int k = kmin; k <= kmax; ++k) {
H[i] += (pow(k, N2) / factorial(k)) * (factorial(2 * k) / factorial(2 * k - i - 1))
/ factorial(N2 - k) / factorial(k - 1) / factorial(i + 1 - k);
}
H[i] *= sign;
}
return H;
}
double StehfestAlgorithm(double t, double (*func)(double))
{
const double ln2 = 0.69314718056;
const int stehfest_steps = 18;
double ln2t = ln2 / t;
QList stehfest_coeff = StehfestCoefficients(stehfest_steps);
double s = 0.0;
double y = 0.0;
for (double c : stehfest_coeff) {
s += ln2t;
y += c * func(s);
}
return ln2t * y;
}
Для примера решим задачу определения безразмерного давления для ограниченного пласта при . Сначала определим функцию изображения,
double Fs5(double s) // Ограниченный пласт, постоянный дебит скважины
{
double R = 30;
double sqs = sqrt(s);
return (1 / pow(s, 3.0 / 2.0))
* (std::cyl_bessel_k(1, sqs * R) * std::cyl_bessel_i(0, sqs)
+ std::cyl_bessel_i(1, sqs * R) * std::cyl_bessel_k(0, sqs))
/ (std::cyl_bessel_i(1, sqs * R) * std::cyl_bessel_k(1, sqs)
- std::cyl_bessel_i(1, sqs) * std::cyl_bessel_k(1, sqs * R));
}
Затем для заданных найдем обратные преобразования,
int main(int argc, char *argv[])
{
double scale = 0.01;
for (int M = 1; M < 7; M++) {
for (int T = 1; T <= 9; T++) {
qInfo() << "T = " << T * scale << " F(t)=" << StehfestAlgorithm(T * scale, Fs5);
}
scale = scale * 10;
}
return 0;
}