Программирование в Pipesim с использованием OpenLink

Последнее сообщение
RKV 3 11
Июн 13

Люди, добрый привет! Если есть, кто использовал OpenLink для написания программ в Pipesim - ОТЗОВИТЕСЬ! )
Нужно написать в экселевском VBA программу, которая будет обмениваться данными между эклипсом и пайпсимом и отправлять на расчет, знаю, что это можно сделать при помощи OpenLink. По сути, нужно написать мини-авосет, который, в идеале, умел бы решать оптимизационную задачу. Если у кого-то есть уроки, примеры, советы, все что угодно по этой теме - просьба написать или скинуть!

WadiAra 162 12
Июн 13 #1

Для начала VBA меняем на Visual Studio 2010 Express, это бесплатно (надо только зарегистрироваться), на порядок удобней и функциональней.
Потом определяем, как мы будем считывать данные из eclipse, будем считывать из бинарных файлов или из текстовых. Первое сложнее, но универсальной, описание, что где в нем расположено есть в мануале, второе проще, но в зависимости от того под какую ос работает симулятор и его версии формат файлов несколько меняется и придется писать много регулярных выражений чтобы считывать данные из всех вариантов файлов. Также если пользоваться только текстовыми файлами, очень велика вероятность, что с выходом новой версии результаты расчета считаны, не будут.
Далее следует продумать, какой параметр будет связывать эти расчеты. Будет интеграция взаимодополняющей или в расчетах будут общие функции. Возможные варианты интеграции моделей PS и eclipse:
1. Из eclipse в PS передаются только пластовые давления и состав флюида. Можно делать финт ушами в PS использовать композитную модель в eclipse модель Black Oil и наоборот, пример необходимости использования первого варианта финта - расчет гидратообразования. В модели PS продуктивные характеристики скважин IPR (а и б, вогель, феткович и т.п.) обновляются на основании ГДИС, расчет коэффициентов производится в IPR module. В этом методе недостатков не найдено.
2. Этот метод похож на первый только используется модель притока скважины transient, её параметры заполняются по данным гидродинамической модели, возможна настройка на ГДИС. С помощью него можно прогнозировать работу отремонтированных и новых скважин
3. В сетевой модели PS скважины превращаются в источники газа, жидкости или массы, отборы и состава флюида по скважине берется из eclipse. Малополезный метод, если его использовать моделирование подъемника в PS не производится.
4. Похож на предыдущий только источник у нас будет на забое скважины, после источника ставим ответвление, в котором flowline меняем на tubing (НКТ), в него загоняем данные НКТ скважины.
5. В PS считаются VFP кривые для элементов сети сбора и скважин (тут можно использовать VFPi). Гидродинамическая модель рассчитывается, с опцией нетворк и полученными в PS таблицами кривых VFP.
6. Вместо вертикального или горизонтального закачивания в модели скважины ставим источник, в нем задаем забойное давление из eclipse. После расчета считываем расход газа из модели PS передаем этот расход в модель eclipse, считаем гидродинамику и снова закидываем давление в PS. Повторяем до какой-то погрешности. Неэффективно и ненужно, но сам процесс…. :-)
Варианты интеграции можно комбинировать, например, в модели PS использовать 1 и 2 вариант или до прогнозной даты считать по варианту 5, а конкретный день моделируем по 1 му варианту, все зависит от вашего желания и задачи.
Пара слов о работе с OpenLink. Все API сервера автоматизации описаны в файле open_link_reference_manual.pdf который идет вместе с PS. Также вместе с PS идут примеры работы с OL, в моем случае они лежат в каталоге «C:\Program Files (x86)\Schlumberger\PIPESIM\Case Studies\Open Link». Примеров достаточно для того чтобы создать свою автоматизацию. Модели PS не должны в своем имени и пути содержать русские символы, также не стоит создавать очень длинный путь к модели. В OpenLink нет «человеческого» создания и редактирования модели сети, для простоты можно создавать модель самому, а потом уже обновлять в ней данные. Пример создания модели через OL могу кинуть.
Работу с моделями через OL я разбиваю на следующие этапы:
1. Открытие модели.
2. Занесение параметров
• Если надо обновляем параметры окружающей среды (температуру, скорость ветра).
• Если надо обновление коэффициентов продуктивности скважины.
• Занесение пластового давления.
• Если есть штуцируемые скважины, то заносим параметры зажатия.
• Если необходимо заносим параметры нагнетания.
• Для расчета задачи предотвращения гидратообразования передаем в модель параметры подачи ингибитора.
• Занесение параметров модели флюида, для каждой скважины или для всей модели в целом.
• При необходимости обновление конструкция скважины (НКТ, инклинометрия).
• Деактивация бездействующего фонда.
• Задаем параметры стока.
3. Запускаем модель на расчет, ждем завершения расчета.
4. Считываем результаты моделирования, для этого либо используем OL и его COM объекты PNSReader и PltReaderObj, либо пишем регулярное выражение и парсим plt, pns, pnsx, sum файлы.
Немного советов по организации моделирования.
• Очень неплохо у себя иметь нормальную БД в которой хранятся рабочие параметры моделируемой установки и конструкция скважин и сети сбора. Хранить эти данные в excel не есть хорошо.
• Модели установки лучше всего делить на модели шлейфов.
• Для ускорения вычисления, расчеты можно запускать несколькими потоками одновременно, но это должны быть разные модели (смотри предыдущий пункт). Количество потов должно быть не больше количества ядер и процессоров, HT необходимо отключить
• Для повышения скорости вычисления расчеты можно перенести на Ram диск.
Для более конкретных ответов, вопрос тоже должен быть конкретизирован.

scorp 10 16
Мар 14 #2

Хотел освежить тему. Вопрос каксательно п.6 , где доставляет сам процесс :) Очевидно, что балансировать модели Eclipse и Pipesim можно не только упомянутым здесь методом последовательных итераций, но и другими, более быстросходящимися. Есть у кого-нибудь их описание? Может быть ссылки?

WadiAra 162 12
Мар 14 #3

scorp Можно сделать, так как делает METTE вместе с Tempest/Eclipse или TIMEZYX вместе с pipeflow. Гидродинамический симулятор выдает характеристики притока и параметры BlackOil, ты их считываешь из его out файлов, заносишь параметры в модель PipeSIM, рассчитываешь её с заданными тобой параметрами, отборы по скважинам потом передаешь в ГД модель, запускаешь ГД модель, все это вместе будет один шаг. Можно делать шаги по одному дню, месяцу, какие хочешь, занося соответствующие отборы в ГД модель. Тут один нюанс, надо настроить приток скважины в ГД модели.

scorp 10 16
Мар 14 #4

WadiAra. Вопрос как раз в характеристике притока, точнее, как ее из симулятора получить. По-хорошему, надо бы несколько режимов на скважине прогнать (с разными забойными давлениями), чтобы ее получить, но это увеличит время расчета в количество_точек_на_характеристике раз (как минимум), насколько я понимаю 

Касательно настройки притока - D - факторы настроены, точнее получены по зависимости от свойств пласта(скважины - проектные). Теоритически их можно пересчитать в какие-нибудь A и B, чтобы в Pipesim отправить, но в такой характеристике не будет учитываться изменяющаяся фазовая проницаемость по газу. 

Про METTE ничего сказать не могу, я думал, что он интегрируется на уровне численных схем, чуть ли не общая система уравнений решается. 

Если есть какие-либо руководства по известным программам интеграторам (Avocet, METTE, и т.п.), поделитесь, пожалуйста, через личку, если что.

WadiAra 162 12
Мар 14 #5

Из eclipse характеристику можно получить в секции Summary мнемоника WPI.

METTE берет из ГД симулятора WGR, ORG, PI, а вот калибровочные таблицы флюида для неё уже нужно генерировать самому в PVTSim, PVTx, PVTi и т.п.

scorp 10 16
Апр 14 #6

WPI - мнемоника для вывода коэффициента продуктивности, насколько я понял. Не совсем понял, как он нам поможет для понимания характеристики притока из пласта в газовую скважину. Она ведь вовсе нелинейная.

harakteristiki.jpg

Во многих статьях пишут об IPR-таблицах, получаемых из гидродин. симуляторов. Подскажите, пожалуйста, кто знает, каким образом их можно получить? Просто каждая точка в такой таблице - это расчетное время. Может есть более хитрые способы получения таких таблиц, нежели каждый режим просчитывать?

WadiAra 162 12
Апр 14 #7

PI для газа нелинейная в хелпе пипесима смотрим в  Technical Description -> Flow Modeling -> Inflow performace relationships (IPRs) -> Vertical Completions -> PI. Способ есть, попробую на днях закинуть описание для METTE и Avoсet IAM.

scorp 10 16
Апр 14 #9

Спасибо! 

По Avocet только это RM - Reference Manual, типа помощь. Я ищу TD - Technical Description. Должен быть что-то типа avocet_td.pdf. Обычно в той же папке лежит.  Посмотри, пожалуйста. Эта штука самая нужная!

По METTE: сменил расширение на просто *.rar, извлек, говорит, что с ошибкой. Многие формулы не отобразились в извлеченном *.chm файле

Максим Шинкарёв 2 8
Мар 16 #10

Коллеги, есть вопрос по использованию Engine Keyword Tool в линейной (single branch) модели.
Проблема - содержимое узла никак не могу увидеть/изменить - узел вижу, его содержимое - нет. Есть вариант использовать Engine Keywords, которые в настройках движка, но они всегда пишутся в начало файла модели.
Есть у кого опыт?

VisualPVT 48 10
Мар 16 #11

scorp пишет:

По METTE: сменил расширение на просто *.rar, извлек, говорит, что с ошибкой. Многие формулы не отобразились в извлеченном *.chm файле

7zip тоже не распаковал, а вот TotalCommander через Alt+F6 смог

Go to top