Авторитетность издания
Добавить в закладки
Следующий номер на сайте
Программная реализация модуля гидравлических расчетов двухфазных газожидкостных потоков
Аннотация:Статья посвящена программной реализации основных подходов гидравлического расчета двухфазных газожид-костных потоков в трубопроводах, предложенных авторами ранее в [1, 2]. Рассматривается внутреннее устройство созданного программного модуля (основные классы, иерархии, алгоритмы расчета). Показано, как за счет выбранной архитектуры программного модуля достигаются универсальность и открытость. Описана интеграция с известными отечественными программными комплексами «Гидросистема» и «Предклапан» (разработчик – ООО «НТП Трубо-провод», г. Москва), позволившая проводить в этих программах следующие виды расчетов трубопроводов, перека-чивающих двухфазные продукты: автоматическое определение режимов течения, выбор (в том числе и автоматиче-ский) методик расчета режимов течения, объемного газосодержания, потерь на трение, потерь в местных сопротив-лениях, учет кипения или конденсации с применением разработанного алгоритма поиска точек фазовых переходов, учет теплообмена с окружающей средой (в том числе в трубопроводах с тепловой изоляцией), расчет потокораспре-деления (трубопроводы сложной топологии).
Abstract:The article is dedicated to software implementation of the basic approaches in analyzing two-phase gas-liquid flows in pipelines [1, 2]. The paper examines the internal structure of the developed software module (main classes, their hierarchy and calculation algorithm). It is shown how the software architecture of the module provides flexibility and openness of the product. The integration with well-known Russian software systems «Hydrosystem» and «Safety Valve» (developed by «NTP Truboprovod», Moscow) is also described. This integration has enriched the list of features of these programs by the following two-phase flow calculations: automatic prediction of flow pattern, the (automatical) selection of methods for calculating flow patterns, volumetric gas content, friction losses, local losses, calculating boiling and condensation parameters using a phase transitions search algorithm, calculating heat exchange with the environment (including pipes with thermal insulation), the calculation of flow distribution (for complex network pipelines).
Расчет многофазных течений – один из самых сложных и быстроразвивающихся разделов гидравлики трубопроводных систем. Необходимость теплового и гидравлического расчетов трубопроводов, транспортирующих многофазные продукты, возникает в самых разнообразных отраслях и видах трубопроводов: технологических (например, так называемых трансферных трубопроводов от печей к ректификационным колоннам), трубопроводов систем аварийного сброса, трубопроводов обвязки нефтегазовых месторождений, систем обогрева и охлаждения оборудования и трубопроводов. В работе [1] авторами была предложена схема иерархии задач при расчете трубопроводов, перекачивающих двухфазные газожидкостные продукты (рис. 1). На верхнем уровне иерархии находится проектный расчет трубопровода. Для решения проектных задач необходим алгоритм оценочного расчета трубопровода сложной топологии (задача потокораспределения). Трубопровод состоит из ветвей – неразветвленных частей с постоянным расходом – следовательно, для расчета трубопровода необходим алгоритм расчета ветвей. Ветви состоят из участков (трубы, отводы, диафрагмы, входы/выходы из трубы, трубопроводная арматура и т.д.), поэтому на нижнем уровне иерархии лежит задача расчета участков ветвей трубопровода. Далее описываются программная реализация основных методик и алгоритмов, предложенных в [1, 2], программная реализация, структура модуля, его интеграция и применение. Программная реализация Модуль гидравлических расчетов написан на языке программирования C++ в соответствии с основными принципами объектно-ориентированного и структурного программирования и представляет собой динамически подключаемую библиотеку (dynamic link library, сокр. dll), состоящую из множества классов. В разработанных в НТП Трубопровод программах «Гидросистема», «Предклапан» и «Изоляция» существует система базовых классов, полностью покрывающая множество объектов всех трех программ – проектов, трубопроводов, компонентов продуктов и т.д. [3]. Классы содержат не только характеристики этих объектов, но и функции, с помощью которых можно определить связи между ними. Все эти классы являются производными от класса CBaseObj (рис. 2). Опишем некоторые из них подробнее: – CProjectObj содержит данные о проекте в целом (наименование, климатические данные и т.д.); – CPipelineObj содержит данные, общие для всего трубопровода (единицы измерения расхода, значение шероховатости, ограничения по скорости потоков и т.д.); – CProductObj отвечает за задание перекачиваемого трубопроводом продукта, хранит данные о типе используемых библиотек расчета свойств продукта, фазовом состоянии, способе задания состава и т.д.; – CComponentObj содержит данные каждого из компонентов продукта (тип компонента, код вещества, %-ное содержание в продукте и т.д.); – CNodeObj содержит данные об узлах (номер узла, давление в узле, величина притока/оттока и т.д.); – CBranchObj содержит данные ветвей трубопровода – неразветвленных частей с постоянным расходом (номера начальных и конечных узлов – CNodeObj, начальные диаметры, расход, температуру и т.д.); – CResistanseObj – базовый класс для классов, хранящих информацию о различных участках (сопротивлениях), из которых состоит ветвь: CApparutusObj – класс аппарата (насос, аппарат с известным коэффициентом гидравлического сопротивления и др.); CArmatureObj – класс арматуры (задвижка, кран и др.); CBendObj – класс отвода (крутоизогнутый, секционный и др.); CKneeObj – класс колена (с острой кромкой, Z-образное и др.); CCompensatorObj – класс компенсатора (П-образный, волнистый/линзовый); CDiaphragmObj – класс диафрагмы; CEntranceObj – класс входа/выхода из трубы; CHeigthObj – класс перепада высот; CPipeObj – класс прямого участка трубы; CTransObj – класс перехода (конфузор, диффузор, внезапное сужение/расширение). Стоит обратить внимание и на класс CBaseInsulatedObj, производные от которого получают возможность хранить данные о свойствах окружающей среды и тепловой изоляции, что особенно важно при проведении тепловых расчетов. Иерархия наследования этих классов представлена на рисунке 3. Проект может включать в себя несколько трубопроводов, которые состоят из ветвей, а те, в свою очередь, из сопротивлений. Каждый трубопровод содержит один или два продукта (в случае замороженного течения условно задаются два продукта, каждый из них отвечает за состав соответствующей фазы), которые могут состоять из отдельных компонент либо задаваться свойствами. В качестве исходных данных для модуля гидравлического расчета выступает указатель на объект класса CPipelineObj. Используя функции связи между базовыми классами, модуль получает доступ ко всем остальным объектам трубопровода. Для последующей интеграции модуля с другими программами через CAPE Open (стандарт прямого взаимодействия независимых программ, основанный на COM-интерфейсе [4]) была создана еще одна иерархия базовых классов, унаследованная от класса CBaseElement (рис. 4). Данные классы используются при проведении тепловых и гидравлических расчетов трубопровода и содержат ссылки на объекты классов-потомков CBaseObj. Они включают данные и методы, необходимые именно для этого типа расчетов: – CNode – класс, предназначенный для пересчета параметров в узле; – CUnit – базовый класс, содержащий общие данные: CAppResUnit (класс расчета аппарата), CArmatureUnit (класс расчета арматуры), CBendUnit (класс расчета отвода), CDiaphragmUnit (класс расчета диафрагмы), CKneeUnit (класс расчета колена), CMainUnit (класс расчета ветви), CManifoldUnit (класс расчета трубопровода), COpenEndUnit (класс расчета выхода/входа), CPipeUnit (класс расчета прямого участка трубы), CPumpUnit (класс расчета насоса), CTransUnit (класс расчета перехода). Связующее звено между вышеперечисленными иерархиями – класс CSolverManager. Расчет трубопровода начинается с обращения к его функции: int Solve(CPipelineObj* pPipelineObj, int nCalcTy- pe), где pPipelineObj – указатель на объект трубопровода; nCalcType – тип расчета (тепловой, гидравлический, проектный). Собственно расчет осуществляется классом CSolver и в настоящее время реализован в двух вариантах: – прямой расчет, который применяется в случае неразветвленного трубопровода, состоящего из одной ветви; – расчет с использованием метода глобального градиента (Global Gradient Algorithm) [5–7], применяющийся в случае разветвленного трубопровода, состоящего из двух и более ветвей. В обоих видах расчета ключевым является прямой или обратный расчет ветви. Под расчетом ветви подразумевается последовательный расчет сопротивлений в прямом или обратном потоку направлении. За это отвечают функции класса CMainUnit. Остановимся подробнее на реализации двухфазного расчета. Авторами был разработан специальный класс для проведения двухфазного расчета участков трубопровода – CTPCalculator (Two Phase Calculator). В этот класс были заложены все алгоритмы и методики двухфазного расчета, описанные авторами в [1]. Рассмотрим схему расчета ветви, состоящую из последовательно соединенных участков: входа в трубу, прямого участка, отвода, прямого участка, арматуры, прямого участка, выхода из трубы (рис. 5). Основная задача расчета ветви заключается в нахождении p, T, x (давления, температуры и газосодержания) в конце ветви по заданным исходным данным в начале ветви (прямой расчет) или наоборот (обратный расчет). На рисунке 6 показано, как происходит прямой расчет ветви, изображенной на рисунке 5. Первым участком ветви является вход в трубу. На первом шаге p, T, x объекта COpenEndUnit (вход в трубу) задаются равными соответствующим параметрам в начале ветви. Далее создается объект класса CTPCalculator, в который передаются объект COpenEndUnit и тип расчета. В данном случае это DIRECT (прямой), так как необходимо посчитать конечные параметры p, T, x по начальным. Далее запускается функция CTPCalculator::Calc(), которая выполняет расчет, используя заложенные методики. В процессе расчета CTPCalculator обращается к выбранным пользователем правилам выбора методик расчета, описанных в XML-файле, а также к библиотекам расчета свойств веществ и фазовых равновесий. Подробнее механизм правил выбора методик расчета описан в [1, 8]. По завершении расчета конечные p, T, x передаются следующему объекту – CPipeUnit (прямому участку трубы). Опять создается объект класса CTPCalculator, в который передаются CPipeUnit и параметр DIRECT, и так продолжается, пока все сопротивления не будут посчитаны. Затем рассчитанные конечные p, T, x последнего элемента присваиваются конечным параметрам ветви. При обратном расчете все происходит с точностью до наоборот – начиная с последнего и заканчивая первым в CTPCalculator передаются объекты вместе с параметром REVERSE (обратный). Основными достоинствами данной програм- мной реализации гидравлических расчетов являются модульность и продуманная архитектура. Преимущества подобной архитектуры в простоте добавления новых видов элементов (в ближайших планах разработчиков добавление теплообменников, компрессоров), а также новых алгоритмов и методик расчетов (в том числе двухфазных). Интеграция Гидравлические расчеты (особенно двухфазные) не имеют смысла без мощного инструмента расчетов теплофизических свойств и фазовых равновесий разнообразных веществ и смесей, перекачиваемых трубопроводами. Для обеспечения таких расчетов разработанный модуль интегрирован с тремя библиотеками теплофизических свойств (рис. 7): – Simulis Thermodynamics [9] – мощная универсальная библиотека термодинамических расчетов компании ProSim [10]; – WaterSteamPro [11] – библиотека расчета свойств воды и водяного пара, основанная на уравнениях Международной ассоциации по свойствам воды и водяного пара и рекомендованная РАО «ЕЭС России» для использования в энергетике; – СТАРС [12] – разработанная в НТП Трубопровод термодинамическая библиотека, ориентированная в основном на нефтепереработку и нефтехимию. Для работы с различными термодинамическими библиотеками была создана библиотека-посредник Inter444.dll (рис. 7). Это своего рода промежуточное звено между модулем расчета гидравлики и сторонними термодинамическими библиотеками. Такой подход позволяет унифицировать вызов расчета теплофизических свойств, что облегчает разработку модуля гидравлических расчетов и упрощает возможность подключения иных термодинамических библиотек. Также модулем используются целый ряд БД (климатических данных, материалов труб, изоляционных материалов, грунтов) и генератор отчетов List & Label [13]. Разработанный расчетный модуль был успешно интегрирован с известными российскими программами, предназначенными для гидравлических расчетов и для расчетов систем аварийного сброса – «Гидросистема» и «Предклапан», что позволило дополнить их функционал современными методами расчета трубопроводов, перекачивающих двухфазные продукты. Интеграция обеих программ осуществляется по схожему принципу. В интерфейсе программ задается дерево элементов, для каждого элемента дерева создается соответствующий элемент, производный от CBaseObj. При задании данных в интерфейсе все данные передаются в соответствующие объекты CBaseObj. После запуска расчета указатель на объект класса трубопровода (CPipelineObj) передается объекту класса CSolverManager, который производит расчет и сохраняет результаты в объектах CBaseObj, а через них интерфейс получает доступ к результатам. Подытоживая, можно сделать следующие выводы. На основе современных методик и алгоритмов создан эффективный модуль гидравлического расчета трубопроводов, перекачивающих двухфазные продукты. Научная новизна реализации программного модуля заключается в поддержке автоматического выбора методик расчета из числа заложенных методик (на основе настраиваемых правил выбора), а также в универсальности и открытой архитектуре, позволяющих добавлять новые методики расчетов и типы элементов трубопроводов (аппараты, местные сопротивления и пр.). Созданный модуль интегрирован в программы «Гидросистема» и «Предклапан», что позволило проводить следующие виды расчетов трубопроводов, перекачивающих двухфазные продукты [1, 2]: – автоматическое определение режимов течения; – выбор (в том числе и автоматический) методик расчета режимов течения, объемного газосодержания, потерь на трение, потерь в местных сопротивлениях; – учет кипения или конденсации с применением разработанного алгоритма поиска местоположения фазовых переходов; – учет теплообмена с окружающей средой (в том числе в трубопроводах с тепловой изоляцией); – расчет потокораспределения (трубопроводы сложной топологии). Развитие модуля гидравлических расчетов предполагает добавление новых типов аппаратов (теплообменники, компрессоры), а также совершенствование существующих и добавление новых алгоритмов и методов расчета (в том числе двухфазного и трехфазного жидкость–жидкость–газ). Кроме того, планируется дальнейшее увеличение возможностей интеграции путем реализации следующих интерфейсов обмена данными CAPE Open [4]: Thermo – интерфейс обмена термодинамическими данными (обеспечит возможность подключения любых термодинамических библиотек, поддерживающих данный стандарт); Unit – интерфейс обмена математическими моделями аппаратов (позволит добавлять модели элементов и аппаратов, разработанные сторонними компаниями); HPM – новейший протокол обмена данными по двухфазным расчетам (позволит подключать реализованные сторонними компаниями современные модули расчета режимов и локальных характеристик многофазного течения). Литература 1. Бабенко А.В., Корельштейн Л.Б., Гартман Т.Н. Математическое моделирование установившегося течения двухфазных газожидкостных потоков в промышленных трубопроводах. Расчет ветвей // Химическая технология. № 7. 2012. С. 429–440. 2. Бабенко А.В., Гартман Т.Н., Корельштейн Л.Б. Расчет потокораспределения для двухфазного газожидкостного течения в промышленных разветвленных трубопроводах // Технологии нефти и газа. 2012. № 3. С. 29–33. 3. Юдовина Е.Ф., Пашенкова Е.С., Корельштейн Л.Б. Программный комплекс «Гидросистема» и его использование для гидравлических расчетов трубопроводных систем // Математические модели и методы анализа и оптимального синтеза развивающихся трубопроводных и гидравлических систем: тр. XII Всеросс. науч. семинара с междунар. участием. Иркутск, ИСЭМ СО РАН, 2010. С. 475–485. 4. URL: http://www.co-lan.org/ (дата обращения: 01.11.2012). 5. Todini E., Pilati S., Computer Applications in Water Supply, London, John Wiley & Sons, 1988. Vol. 1, pp. 1–20. 6. Salgado R., Todini E., O'Connell P.E., Computer Applications in Water Supply, London, John Wiley & Sons, 1988, Vol. 1, pp. 38–62. 7. Todini E., Computing and Control for the Water Industry, Research Studies Press Ltd., Baldock, UK, 1999, pp. 63–80. 8. Юдовина Е.Ф., Бабенко А.В. Автоматизация выбора методик двухфазного расчета // CADmaster. 2011. № 3. С. 82. 9. Корельштейн Л.Б., Лисин С.Ю. Simulis Thermodynamics. Инструмент технолога, который всегда под рукой // CADmaster. 2011. № 3. С. 94–101. 10. URL: http://www.prosim.net/ (дата обращения: 01.11.2012). 11. URL: http://www.wsp.ru/ (дата обращения: 01.11.2012). 12. Лисман В.Ф., Степанов А.Ф. Система теплофизических автоматизированных расчетов свойств веществ и фазовых равновесий (СТАРС) // CADmaster. 2003. № 3. С. 40–42. 13. URL: http://www.combit.net/ (дата обращения: 01.11.2012). |
Постоянный адрес статьи: http://swsys.ru/index.php?id=3402&page=article |
Версия для печати Выпуск в формате PDF (5.29Мб) Скачать обложку в формате PDF (1.21Мб) |
Статья опубликована в выпуске журнала № 1 за 2013 год. [ на стр. 141-146 ] |
Назад, к списку статей