Category:

Расчет объема промывки клапанов насоса (ШГН) и объема для промывки скважины горячей водой на VBA

Здесь я излагаю своё личное видение ситуации и данный проект является моим экспериментом в области программирования на VBA в MS Excel для упрощения своих повседневных задач. В дальнейшем могут быть необходимые изменения, дополнения и корректировки.
Условия: для расчёта промывки клапанов насоса считаем, сколько воды нужно прокачать в скважину, чтобы заполнить кольцевое пространство от динамического уровня и до устья и прокачать ещё двойной объём НКТ. Для расчёта же объёма промывки скважины горячей водой будем считать, что нужно прокачать объём кольцевого пространства до глубины спуска насоса, а потом двойной объём НКТ. Все эти параметры и условия можно менять под свои конкретные нужды, немного изменив исходный код. Для начала нужно сделать таблицу, в которую будут вноситься исходные данные и будет она выглядеть так:

Назовём лист «Расчёт объёма промывки»:

Данные, содержащиеся в столбце «С», вносятся вручную. Все расчёты производятся после нажатия на соответствующую кнопку, в зависимости от того, что нам нужно подсчитать: либо промывку горячей водой, либо промывку клапанов насоса. Для начала создадим модуль и будем писать код в нём. Опишем переменные трёхсекционной эксплуатационной колонны и присвоим им значения, находящиеся в определённых ячейках построенной таблицы. В самом же начале модуля опишем переменную ПИ и переменную подвески НКТ:


И проделываем тоже самое с переменными НКТ:


Присваиваем переменной PolnayaDlinaNKT значение суммы первой и второй секций НКТ, находящихся в ячейках «С15» и «С18».

Производим, по внесённым данным, расчёты всех секций эксплуатационной колонны и НКТ и присваиваем эти значения соотвествующим переменным:

После этого считаем двойной объём спущенных НКТ и вносим полученное значение в объединённые ячейки «G21:H21». Производим Расчёт объёма ПГВ с учётом полного заполнения эксплуатационной колонны до башмака НКТ (насоса)+один объём НКТ. Полученный объём показывает объём промывки с учётом двойного объёма НКТ. Здесь нужно использовать конструкцию If….ElseIf. Происходит выбор из нескольких условий: если полная длина НКТ меньше либо равна длине первой секции эксплуатационной колонны, то рассчитываем внутренний объём эксплуатационной колонны длиной спуска НКТ и прибавляем к нему ещё внутренний объём НКТ:

Если же длина НКТ больше длины 1-ой секции эксплуатационной колонны (насос находится во второй секции), то в этом случае берём объём полностью первой секции эксколонны и прибавляем к ней объём второй секции эксколонны длиной равной «полной длине НКТ минус длина 1-ой секции эксплуатационной колонны» и прибавляем внутренний объём НКТ. Если же глубина спуска НКТ будет в пределах 3-ей секции эксплуатационной колонны, то поступаем примерно также, но ещё и с учётом полного объёма 2-ой секции эксплуатационной колонны:

Теперь рассчитаем необходимый объём воды для промывки ШГН. Вводим переменные эксплуатационной колонны:

И переменные НКТ:

Считаем двойной объём НКТ:


Рассчитываем объём НКТ до динамического уровня (от устья):



Расчёт промывки производится исходя из объёма кольцевого пространства скважины до динамического уровня, т.е. (объём эксплуатационной колонны от устья до динамического уровня минус объём НКТ от устья до динамического уровня)+ двойной объём подвески НКТ.