Расчет скважины с трещиной бесконечной проводимости
Продолжим исследовать приток флюида к плоскости трещины.
Функция мгновенного точечного источника, расположенного в точке ,
Представим трещину как объединение точечных источников вдоль оси , где под
будем понимать теперь полудлину трещины,
Получим,
Трещину разместим в начале координат () и давление будет определяться только вдоль оси
, там где
, поэтому
Разделим время на произвольных интервалов, в течение которых дебит равен некоторому среднему дебиту. Тогда к моменту
, изменение давления согласно принципу суперпозиции, будет складываться из суммы,
Здесь предполагается, что приток жидкости равномерен по всей плоскости (uniform flux), поэтому дебит скважины выносится за знак интеграла,
Внутренний интеграл можно разложить на положительное и отрицательное направление трещины,
Распишем сумму к моменту времени ,
Обозначим коэффициентом множитель после дебита,
Для всех временных шагов можно составить матрицу,
Матрица удовлетворяет принципу причинности, где будущие шаги не влияют на прошлые. Это позволяет выделить текущий временной шаг и определить его через известные дебиты
И так шаг за шагом получить решение системы.
***
Поделим одно крыло трещины на сегментов.
Длина одного сегмента составит . Каждый сегмент работает со своим равномерно распределенным дебитом
где
. Первый сегмент располагается от
до
, второй сегмент от
до
, последний сегмент от
до
.
Здесь дебит всей скважины на временном шаге дискретно распределяется между отдельными сегментами трещины. Для замыкания системы уравнений необходимо ввести условие постоянства суммарного дебита,
Из последнего выражения записывается уравнение связывающее удельные дебиты сегментов с дебитом скважины,
Дебит скважины связан с удельным дебитом,
Удобней перейти к отношению дебита сегмента к дебиту трещины,
Введем следующие безразмерные параметры,
Что позволит записать,
Напоследок введем ещё одно обозначение: .
***
Пришло время разобрать внутренний интеграл по расстоянию,
Здесь нам поможет следующее решение,
Для произвольного сегмента , центр сегмента имеет координату
,
Можно немного внести косметических изменений и вынести перед
,
Сделаем следующие замены,
Здесь напрашивается безразмерное давление,
Получим промежуточный результат изменения давления в середине произвольного сегмента,
***
Разберем внутренний интеграл по времени, при помощи такого вот решения,
Получим,
Введем два крупных комплекса величин,
Итоговая формула определения падения давления в центре сегмента трещины,
Разложение трещины на сегменты утяжеляет итоговую расчетную матрицу,
Для текущего временного шага,
Сумму предыдущих известных шагов обозначим матрицей ,
Решение задачи строится на добавлении замыкающего уравнения,
Отсутствие потерь давления при течении жидкости внутри трещины, при переходе от элемента к элементу, позволяет заменить собственные падения давления на одно, общее падение,
Теперь можно расширить матрицу до ,
Сравнение для случая с данными опубликованными в 1974 показывает хорошее совпадение,

Распределение дебита вдоль полуоси трещины при ,

Сравнение притока к трещине бесконечной проводимости и равномерного притока,

И реализация в коде,
public void Calculate()
{
const int M = 100;
double[,] qD = new double[tD.Length, M];
double[] pD = new double[tD.Length];
int tindex = 1;
double[,] A = new double[M + 1, M + 1];
double[] B = new double[M + 1];
while (tindex < tD.Length)
{
// Заполнение матрицы A текущего шага
for (int j = 1; j <= M; j++)
for (int m = 1; m <= M; m++)
{
double Xj = X(tD[tindex], tD[tindex - 1], j, m, M);
double Yj = Y(tD[tindex], tD[tindex - 1], j, m, M);
A[j - 1, m - 1] = Math.Sqrt(Math.PI) / 4.0 * (Xj + Yj);
}
// Заполнение исторической матрицы B
for (int j = 1; j <= M; j++)
{
double Bi = 0;
for (int it = 1; it < tindex; ++it)
{
for (int m = 1; m <= M; m++)
{
double Xj = X(tD[tindex], tD[it - 1], j, m, M) - X(tD[tindex], tD[it], j, m, M);
double Yj = Y(tD[tindex], tD[it - 1], j, m, M) - Y(tD[tindex], tD[it], j, m, M);
Bi = Bi + qD[it, m - 1] * (Xj + Yj);
}
}
B[j - 1] = -Bi * Math.Sqrt(Math.PI) / 4.0;
}
// Заполнение матрицы для расчета изменения дебита
for (int i = 0; i < M; i++)
{
A[M, i] = +1; A[i, M] = -1;
}
A[M, M] = 0; B[M] = M;
var Am = MathNet.Numerics.LinearAlgebra.Matrix.Build.DenseOfArray(A);
var Bm = MathNet.Numerics.LinearAlgebra.Vector .Build.Dense(B);
var Cm = Am.Solve(Bm);
for (int m = 1; m <= M; m++)
{
qD[tindex, m - 1] = Cm[m - 1];
}
pD[tindex] = Cm[M];
tindex++;
}
}
}
***
Восстановление порядка вывода итоговой формулы стало возможным благодаря изданным позже следующим статьям,
SPE-4051 «Unsteady-State pressure distribution created by a well with a single infinty-conductivity vertical fracture» (Aug 1974).
SPE-8281-PA «Non-Darcy Flow in Wells With Finite-Conductivity Vertical Fractures» 1982
SPE-9344-PA «Effect of Non-Darcy Flow on the Constant-Pressure Production of Fractured Wells» 1981
SPE-104004-MS «Effect of Pressure in a Well With a Vertical Fracture With Variable Conductivity and Skin Fracture» 2006