Трюки Eclipse: UDQ/ACTIONX

Трюки Eclipse: UDQ/ACTIONX

Не знаю, как часто инженерам, работающим с моделями в Eclipse приходится использовать пользовательскими переменными (UDQ), а также событиями (ACTION*). Думаю, что не очень часто, но тем не менее, считаю, что некоторым информация, о которой я напишу ниже пригодится.

Итак, есть задачка: Смоделировать в Эклипс ситуацию, когда необходимо, чтобы в первые месяцы (годы) после начала закачки на нагнетательных скважинах, предварительно отработавших на нефть от полугода до полутора, забойное давление не превышало давление гидроразрыва. Дело в том, что во время отработки, в отсутствие закачки, достаточно сильно проседает пластовое давление и происходит переориентация стрессов. В нашем случае в период добычи нагнетательных скважин максимальный стресс начинал разворачиваться перепендикулярно к стволу горизонтальной скважины, что в случае гидроразрыва негативно сказывалось бы на эффективности заводнения. После начала закачки пластовое давление постепенно возрастает и стрессы снова начинают ориентироваться в нужном направлении. В тот момент, когда это произойдет эффективнее закачивать воду при давлении выше давления разрыва.

В общем эту ситуацию и нужно было замоделировать в Эклипс.

Что было сделано.

1. Добавляем грид с дополнительнымы регионами, окружающие нагнетательные скважины с некоторым радиусом, и назовем его скажем – FIPWEL. Это свойство понадобится для получения средних давлений в районе конкретной скважины. В принципе можно сделать проще с помощью WP9. Но нам надо было взять несколько большую зону чем 9 ячеек вокруг скважины. Ссылку на это свойство описываем в секции REGIONS. FIPWEL будет дополнительным регионом к стандартному FIPNUM.

2. В секции RUNSPECS ключевыми словами UDQDIMS и UDADIMS описываем сколько пользовательских переменных будет использовано в расчете.

-- USER DEFINED QUANTITIES DIMENSIONS
UDQDIMS
 -- MAXFUNC MAXITEMS MAXC MAXF MAXG MAXR MAXS MAXW MAXA MAXB
 16 16 0 1 1 1 0 5 0 1 /
UDADIMS
 3 /

3. Затем в секции SCHEDULE задаем эти самые переменные и события устанавливающие режим

UDQ
 DEFINE WUPR1 RPR__WEL 2 / -- пластовое давление в районе скважины
 UNITS WUPR1 PSIA /
 UPDATE WUPR1 ON /
 ASSIGN FUBOOL 0 / -- пока 0 не рвем пласт
 DEFINE WUMXP1 (WUPR1/14.5*0.725+162-69/4)*14.5 / -- расчет давления разрыва
 UNITS WUMXP1 PSIA /
 UPDATE WUMXP1 ON /
/
-----------------------
ACTIONX
 ACT1 10000 / 
 WUMXP1 'INJ1' <= 7000 AND / -- условие после которого можно рвать пласт
 FUBOOL = 0 /
 /
--CONVERT INJ1 INTO INJECTOR
WCONINJE
'INJ1' WATER OPEN RATE 10000 1* WUMXP1 1* / -- ограничение на максим. давление
/
ENDACTIO
-------------------------
ACTIONX
ACT2 1 /
WUMXP1 'INJ1' > 7000 / 
/
UDQ
ASSIGN FUBOOL 1 /
/
WCONINJE
'INJ1' WATER OPEN RATE 6000 1* 8000 1* / -- 
/
ENDACTIO

Ну в общем, как-то так. Часть формул я упростил, чтобы чересчур не загружать.

Share

Leave a Reply

Your email address will not be published. Required fields are marked *