Разрабатывается ПО DataFlow 2.0. И, грубо говоря, оно состоит из 2 частей: Подземная и наземная. Само ПО предназначено для расчета подземной части. А для наземной части используется API РН-СИМТЕП. В БД и расчетах используются псевдодавления. Однако СИМТЕП принимает только квадраты давлений. Поэтому необходимо было использовать алгоритм, который аппроксимирует индикаторную диаграмму псевдодавлений квадратами давлений.
API – это, если коротко, то интерфейс взаимодействия с приложением. Если представить приложение как черный ящик, то у нас там имеются входы (это отправляемая часть данных в API) и выходы (получаемая часть данных). Мы досконально не знаем, что там внутри происходит, однако можем иметь примерное представление о том, что будет на выходе в зависимости от входных данных.
Что дается на входе: дается таблица псевдодавлений и соответствующих им дебитам по каждому пласту скважины
Изначально задача была поставлена как «Найти показатели индикаторной диаграммы квадратов давлений эквивалентного пласта для скважин, работающих на несколько пластов, изначально данные в псевдодавлениях». В таком виде задача сводится к следующему: найти показатели A и B для эквивалентного пласта такие, чтобы \sum_{i=1}^{n} (Q_{i calc} - Q_{i sum})^2 \arrow min. Для решения этой задачи были использованы численные методы. Были проведены исследования возможности аппроксимации различных численных методов.
Метод Ньютона – достаточно быстро сходится, однако не является стабильным
Метод Левенберга-Марквардта – достаточно стабилен, однако медлителен
Градиентный спуск – стабилен, но крайне медлителен
Метод Гаусса-Ньютона – достаточно быстро сходится, однако качество подобного вычисления достаточно низкое (под качеством вычисления подразумевается невязка между фактическими и вычисленными значениями индикаторной диаграммы. Чем меньше невязка, тем выше качество аппроксимации)
Также был использован метод, который, по сути, похож на Левенберга-Марквардта, однако более жестко выбирает на каждой итерации, каким образом сделать шаг – с помощью градиентного спуска или с помощью метода Ньютона. В методе Левенберга-Марквардта есть коэффициент, который, можно сказать, регулирует значимость между методом Ньютона и градиентным спуском. То есть, грубо говоря, мы должны это все дело достаточно долго высчитывать, что по факту и наблюдается – метод Левенберга-Марквардта, хоть и показывает достаточно хорошую сходимость, довольно значительно отстает в производительности. А в модифицированном методе Ньютона шаги градиентного спуска применяются строго тогда, когда невозможно найти невырожденный гессиан.