Нефтянка для инженеров, программистов, математиков и широких масс трудящихся, часть 4
Это четвертая часть из серии статей для будущих математиков-программистов, которым предстоит решать задачи, связанные с моделированием нефтедобычи и разработкой инженерного ПО в области сопровождения нефтедобычи.
Сегодня мы расскажем о том, зачем нужны модели месторождений, и как их строить. Модель – это план действий, который обязательно должен быть, а кроме этого – предполагаемый и ожидаемый результат этих действий.
Моделирование, прогноз, неопределённость
Все перечисленные в предыдущих статьях (раз, два, три) физические эффекты важно понимать не просто для того, чтобы знать, как устроен мир. Скорее всего их придётся учитывать при построении модели, которая умеет правильно предсказывать будущее. Зачем нам уметь предсказывать будущее в нефтедобыче, если цену нефти и коронавирус всё равно не предсказать? Да затем же, зачем и везде: чтобы принимать правильные решения.
В случае с месторождением мы не можем непосредственно наблюдать, что происходит под землёй между скважинами. Почти всё, что нам доступно, привязано к скважинам, то есть к редким точкам на необъятных просторах болот (все что мы можем измерить заключено примерно в 0.5% породы, о свойствах остальных 99.5% мы можем только “догадываться”). Это проведённые измерения на скважинах тогда, когда скважина строилась. Это показания приборов, которые на скважинах установлены (давление на забое, доля нефти воды и газа в получаемой продукции). И это измеряемые и задаваемые параметры работы скважин – когда включать, когда выключать, с какой скоростью качать.
Правильная модель – это такая модель, которая правильно предсказывает будущее. Но так как будущее ещё не наступило, а понять, хороша ли модель, хочется уже сейчас, то поступают так: вкладывают в модель всю имеющуюся фактическую информацию о месторождении, в соответствии с предположениями добавляют свои догадки о неизвестной информации (крылатая фраза “два геолога – три мнения” как раз об этих догадках) и выполняют симуляцию происходивших под землей процессов фильтрации, перераспределения давления и так далее. Модель выдаёт, какие должны были наблюдаться показатели работы скважин, и они сравниваются с реально наблюдавшимися показателями. Другими словами, мы пытаемся построить такую модель, которая воспроизводит историю.
Вообще-то, можно схитрить и просто потребовать от модели, чтобы она выдавала такие данные, какие надо. Но, во-первых, так делать нельзя, а во-вторых, всё равно заметят (эксперты в тех самых гос.органах, куда модель нужно сдавать).
Если модель не может воспроизвести историю, необходимо менять её входные данные, но какие? Фактические данные менять нельзя: это результат наблюдения и измерения реальности – данные с приборов. Приборы, конечно, имеют свою погрешность, да и используются приборы людьми, которые тоже могут и накосячить, и приврать, но неопределённость фактических данных в модели, как правило, мала. Менять можно и нужно то, что имеет наибольшую неопределённость: наши предположения о том, что происходит между скважинами. В этом смысле построение модели – это попытка уменьшить неопределённость в наших знаниях о реальности (в математике этот процесс известен как решение обратной задачи, и обратных задач в нашей области — как велосипедов в Пекине!).
Если модель достаточно корректно воспроизводит историю, у нас есть надежда, что наши знания о реальности, вложенные в модель, не сильно от этой самой реальности отличаются. Тогда и только тогда мы можем такую модель запустить на прогноз, в будущее, и такому прогнозу у нас будет больше оснований верить.
Что если удалось сделать не одну, а несколько разных моделей, которые все достаточно хорошо воспроизводят историю, но при этом дают разный прогноз? Нам ничего не остаётся, как жить с этой неопределённостью, принимать решения, имея её в виду. Более того, имея несколько моделей, дающих спектр возможных прогнозов, мы можем попытаться количественно оценить риски принятия того или иного решения, тогда как имея одну модель, мы будем пребывать в неоправданной уверенности в том, что всё будет так, как модель предсказывает.
Модели в жизни месторождения
Для того, чтобы принимать решения в процессе разработки месторождения, нужна целостная модель всего месторождения. Более того, сейчас без такой модели разрабатывать месторождение вообще нельзя: такую модель требуют государственные органы РФ.
Всё начинается с сейсмической модели, которая создаётся по результатам сейсморазведки. Такая модель позволяет “увидеть” под землей трехмерные поверхности – специфические слои, от которых хорошо отражаются сейсмические волны. Она не даёт почти никакой информации о нужных нам свойствах (пористости, проницаемости, насыщении, и т. д.), но зато показывает, как изгибаются в пространстве некоторые слои. Если вы сделали многослойный бутерброд, а потом как-то его изогнули (ну или кто-то на него сел), то у вас есть все основания считать, что все слои изогнулись примерно одинаково. Поэтому мы можем понять, как изогнулся слоёный пирог из различных нападавших на дно океана осадков, даже если на сейсмической модели увидим только один из слоёв, по счастливой случайности хорошо отражающий сейсмические волны. На этом месте дата-сайнс инженеры оживились, потому что автоматическое выделение таких отражающих горизонтов в кубе, чем и занимались участники одного из наших хакатонов, – классическая задача распознавания образов.
Затем начинается разведочное бурение, и по мере бурения скважин в них спускают на кабеле приборы, измеряющие всякие разные показатели вдоль ствола скважины, то есть проводят ГИС (геофизические исследования скважин). Результат такого исследования – каротаж ГИС, то есть кривая определённой физической величины, измеренная с определённым шагом вдоль всего ствола скважины. Разные приборы измеряют разные величины, а обученные инженеры затем проводят интерпретацию этих кривых, получая значимую информацию. Один прибор измеряет естественную гамма-радиоактивность породы. Глины “фонят” сильнее, песчаник “фонит” слабее – это знает любой инженер-интерпретатор и выделяет на каротажной кривой: тут глины, тут слой песчаника, тут что-то среднее. Другой прибор измеряет естественный электрический потенциал между соседними точками, возникающий при проникновении в породу бурового раствора. Высокий потенциал показывает наличие фильтрационной связи между точками пласта, знает инженер и подтверждает наличие проницаемой породы. Третий прибор измеряет сопротивление насыщающего породу флюида: солёная вода ток пропускает, нефть ток не пропускает – и позволяет отделить нефтенасыщенные породы от водонасыщенных и так далее.
На этом месте дата-сайнс инженеры снова оживились, потому что входные данные у этой задачи – это простые численные кривые, а заменить инженера-интерпретатора какой-нибудь ML-моделью, умеющей вместо инженера по форме кривой сделать вывод о свойствах породы – это значит решить классическую задачу классификации. Это только потом у дата-сайнс инженеров начинает дергаться глаз, когда выясняется, что часть этих накопленных кривых со старых скважин есть только в виде длинных бумажных портянок.
Кроме этого, при бурении из скважины достают керн – образцы более или менее целой (если повезло) и неразрушенной при бурении породы. Эти образцы отправляют в лабораторию, где определят их пористость, проницаемость, насыщение и всякие разные механические свойства. Если известно (а при правильном проведении это должно быть известно), с какой глубины был поднят конкретный образец керна, то когда придут данные из лаборатории, можно будет сопоставить, какие значения на этой глубине показывали все геофизические приборы, и какие значения пористости, проницаемости и насыщенности имела порода на этой глубине по данным лабораторных исследований керна. Таким образом можно “пристрелять” показания геофизических приборов и затем только по их данным, не имея керна, делать вывод о таких нужных нам для построения модели свойствах породы. Весь дьявол – в деталях: приборы замеряют не совсем то, что определяют в лаборатории, но это уже совсем другая история.
Таким образом, пробурив несколько скважин и проведя исследования, мы можем достаточно уверенно утверждать, какая порода и с какими свойствами находится там, где эти скважины были пробурены. Проблема в том, что мы не знаем, что происходит между скважинами. И вот тут нам на помощь приходит сейсмическая модель.
На скважинах мы точно знаем, какие свойства имеет порода на какой глубине, но не знаем, как слои породы, наблюдаемые на скважинах, распространяются и изгибаются между ними. Сейсмическая модель не позволяет точно определить, какой слой на какой глубине расположен, но зато уверенно показывает характер распространения и изгиба всех сразу слоёв, характер напластования. Тогда инженеры отмечают на скважинах определённые характерные точки, ставя на определённой глубине маркеры: на этой скважине на этой глубине – кровля пласта, на этой глубине – подошва. А поверхность кровли и подошвы между скважинами, грубо говоря, рисуют параллельно той поверхности, которую видят в сейсмической модели. В итоге получается набор трёхмерных поверхностей, которые охватывают в пространстве интересующие нас, а нас интересуют, конечно же, пласты, содержащие нефть. То, что получилось, называется структурной моделью, потому что она описывает структуру пласта, но не его внутреннее содержание. О пористости и проницаемости, насыщении и давлении внутри пласта структурная модель не говорит ничего.
Затем наступает этап дискретизации, при котором область пространства, занимаемая месторождением, разбивается на такой изогнутый в соответствии с залеганием слоёв (характер которого виден ещё на сейсмической модели!) параллелепипед из ячеек. Каждая ячейка этого изогнутого параллелепипеда однозначно определяется тремя номерами, I, J и K. Все слои этого изогнутого параллелепипеда лежат согласно распространению слоёв, а количество слоёв по K и количество ячеек по I и J определяется детальностью, которую мы можем себе позволить.
Насколько детальная информация о породе у нас есть вдоль ствола скважины, то есть по вертикали? Настолько детальная, насколько часто делал замеры своей величины геофизический прибор при движении по стволу скважины, то есть, как правило, каждые 20-40 см, поэтому каждый слой может быть и 40 см, и 1 м.
Насколько детальная у нас есть информация по латерали, то есть в сторону от скважины? Ни насколько: в сторону от скважины у нас информации нет, поэтому смысла разбивать на очень маленькие ячейки по I и J, как правило, нет, и чаще всего они бывают по 50 или 100 м по обеим координатам. Выбор размера этих ячеек является одной из важных инженерных задач.
После того, как вся область пространства разбита на ячейки, делается ожидаемое упрощение: в пределах каждой ячейки значение любого из параметров (пористость, проницаемость, давление, насыщенность и т. д.) считается постоянным. Конечно в реальности это не так, но раз мы знаем, что напластование осадков на дно моря шло слоями, то свойства породы будут гораздо сильнее меняться по вертикали, чем по горизонтали.
Итак, у нас есть сетка ячеек, в каждой ячейке своё (неизвестное нам) значение каждого из важных параметров, описывающих как породу, так и её насыщение. Пока эта сетка пустая, но через некоторые ячейки проходят скважины, в которых мы прошли прибором и получили значения кривых геофизических параметров. Инженеры-интерпретаторы с помощью лабораторных исследований керна, корреляций, опыта и такой-то матери, значения кривых геофизических параметров переводят в значения нужных нам характеристик породы и насыщающего флюида, и переносят эти значения со скважины на ячейки сетки, через которые эта скважина проходит. Получается сетка, у которой в некоторых местах в ячейках есть значения, а в большинстве ячеек значений всё ещё нет. Значения во всех остальных ячейках придётся воображать с помощью интерполяции и экстраполяции. Опыт геолога, его знания о том, как свойства породы распространяются обычно, позволяют выбрать правильные алгоритмы интерполяции и правильно заполнить их параметры. Но в любом случае приходится помнить, что всё это – догадки о неизвестности, которая лежит между скважинами, и не зря говорят, ещё раз эту прописную истину напомню, что у двух геологов по поводу одной и той же залежи будет три разных мнения.
Результатом этой работы будет геологическая модель – трёхмерный изогнутый параллелепипед, разбитый на ячейки, описывающий структуру месторождения и несколько трёхмерных массивов свойств в этих ячейках: чаще всего это массивы пористости, проницаемости, насыщения и признака “песчаник”-”глина”.
Затем за работу берутся специалисты-гидродинамики. Они могут укрупнить геологическую модель, объединив несколько слоёв по вертикали и пересчитав свойства породы (это называется “апскейлинг”, и представляет собой отдельную непростую задачу). Потом они добавляют остальные нужные свойства для того, чтобы гидродинамический симулятор мог моделировать, что куда будет перетекать: кроме пористости, проницаемости, нефте-, водо-, газонасыщенности, это будут давление, газосодержание и так далее. Они добавят в модель скважины и внесут по ним информацию о том, когда и в каком режиме они работали. Вы ещё не забыли, что мы пытаемся воспроизвести историю, чтобы иметь надежду на корректный прогноз? Гидродинамики возьмут отчёты из лаборатории и добавят в модель физико-химические свойства нефти, воды, газа и породы, всяческие зависимости их (чаще всего от давления) и всё, что получилось, а это будет гидродинамическая модель, отправят в гидродинамический симулятор. Тот честно рассчитает, из какой ячейки в какую всё будет в какой момент времени перетекать, выдаст графики технологических показателей на каждой скважине и скрупулёзно сравнит их с реальными историческими данными. Гидродинамик вздохнёт, глядя на их расхождение, и пойдёт изменять всё неопределённые параметры, которые он пытается угадать так, чтобы при следующем запуске симулятора получить что-то близкое к реально наблюдавшимся данным. А может при следующем запуске. А может при следующем и так далее.
Инженер, готовящий модель поверхностного обустройства, возьмёт те дебиты, которые месторождение по результатам моделирования будет выдавать, и поместит их уже в свою модель, которая рассчитает, в каком трубопроводе будет какое давление и сможет ли имеющаяся система трубопроводов “переварить” добычу месторождения: очистить добытую нефть, подготовить нужный объём закачиваемой воды и так далее.
И наконец, на самом верхнем уровне, на уровне экономической модели, экономист рассчитает поток расходов на строительство и обслуживание скважин, электроэнергию на работу насосов и трубопроводов и поток дохода от сдачи добытой нефти в систему трубопроводов, умножит на нужную степень коэффициента дисконтирования и получит суммарный NPV от готового проекта разработки месторождения.
Подготовка всех этих моделей, разумеется, требует активного использования баз данных для хранения информации, специализированного инженерного программного обеспечения, реализующего обработку всей входной информации и собственно моделирования, то есть предсказания будущего по прошлому.
Для построения каждой из перечисленных выше моделей используется свой отдельный программный продукт, чаще всего буржуйский, часто практически безальтернативный и поэтому очень дорогой. Такие продукты развиваются десятилетиями, и повторить их путь силами небольшого института – дело непростое. Но ведь и динозавров съели не другие динозавры, а маленькие, голодные, целеустремлённые хорьки. Важно то, что, как в случае экселя – для ежедневной работы нужны только 10% функциональности, и наши дубли, как у Стругацких, будут “только и умеющие, что … – но зато уж умеющие это делать хорошо” как раз эти 10%. В общем, мы полны надежд, для которых определённые основания уже есть.
В этой статье описан только один, столбовой путь жизненного цикла модели всего месторождения, и уже тут есть, где разгуляться разработчикам ПО, а с текущими моделями ценообразования у конкурентов работы хватит надолго. В следующей статье будет spin-off
Вся серия: