Имя: ModelAGLKS Основан: январь 2006г Версия: 0.9.0 Статус: GPL Участники: Роман Савоченко Описание: Проект посвящён созданию полной модели Анастасиевской газо-лифтной компрессорной станции (ГЛКС). Адрес: БД в файле: file:aglks.tlz. |
Анастасиевская ГЛКС (АГЛКС) представляет собой технологический процесс, предназначенный для двухступенчатого компремирования газа газовых месторождений. Для этой цели ГЛКС снабжена шестью центробежными компрессорами, по три компрессора на низкое и высокое давление, обеспечивая тем самым резервирование и допуская параллельную работу с целью повышения производительности.
Для тестирования алгоритмов управления ГЛКС, в особенности антипомпажных алгоритмов, понадобилось создание модели ГЛКС. Предполагался запуск модели на одно-платном компьютере с УСО и взаимодействие с контроллером управления технологическим процессом. Для разработки модели была использована библиотека технологических аппаратов системы OpenSCADA. Впоследствии модель ТП компрессорной станции выросла в автономную систему, которая используется в проекте OpenSCADA в качестве демонстрации функций и возможностей. Текстовые значения модели доступны на трёх языках: Английский, Русский и Украинский.
Перед созданием модели ГЛКС была создана принципиальная схема модели технологического процесса, основанная на принципиальной схеме реального технологического процесса. Полученная схема изображена на рис.1.
Для построения модели технологического процесса на основе доступных моделей аппаратов была непосредственно использована исходная принципиальная схема и блочный вычислитель (BlockCalc) системы OpenSCADA. Модели аппаратов технологической схемы добавлялись в блочную схему в соответствии с принципиальной схемой. Часть блоков была добавлена для вспомогательного оборудования, а также узлов потоков. Номера блоков узлов указаны на принципиальной схеме номерами около узлов потоков.
Модель реализована в виде восьми блочных схем блочного вычислителя. Состав и свойства блочных схем приведены в таблице 1.
Таблица 1. Блочные схемы модели
ID | Имя | Назначение | Период исполнения (мс) | Время исполнения на Athlon 64 3000+ (мс) |
gen | Общестанционка | Содержит модель общей части компрессорной станции, а именно всё что изображено на принципиальной схеме за пределами серых блоков отдельных компрессоров. | 10 | 0.52 |
gen_cntr | Общестанционка (контроллер) | Содержит модель системы управления общестанционной частью. | 1000 | 0.033 |
KM101 | Модель КМ101 | Содержит модель первого компрессора низкого давления КМ101. | 10 | 0.3 |
KM102 | Модель КМ102 | Содержит модель первого компрессора высокого давления КМ102. | 10 | 0.35 |
KM201 | Модель КМ201 | Содержит модель второго компрессора низкого давления КМ201. | 10 | 0.3 |
KM202 | Модель КМ202 | Содержит модель второго компрессора высокого давления КМ202. | 10 | 0.35 |
KM301 | Модель КМ301 | Содержит модель третьего компрессора низкого давления КМ301. | 10 | 0.3 |
KM302 | Модель КМ302 | Содержит модель третьего компрессора высокого давления КМ302. | 10 | 0.35 |
Из характеристик блочных схем можно видеть, что ресурсоёмкость модели в целом к центральному процессору Athlon 64 3000+ (2000МГц) составляет 19.5%.
В таблице 2 приведен перечень использованных моделей аппаратов в соответствии с принципиальной схемой.
Таблица 2. Использованные модели аппаратов
Модель аппарата | Аппараты (блоки модели) |
Шаровой кран (ballCrane) | gen.КШ1им, gen.КШ2им, gen.КШ5им, gen.КШ7им, gen.КШ21им, gen.КШ22им, KM*01.КШ101им, KM*01.КШ102им, KM*01.КШ104им, KM*01.КШ105им, KM*01.КШ106им, KM*02.КШ111им, KM*02.КШ112им, KM*02.КШ114им, KM*02.КШ115им, KM*02.КШ116им |
Компрессор газовый (compressor) | KM*01.КМ101_1, KM*01.КМ101_2, KM*02.KM102_1, KM*02.KM102_2 |
Возд. холодильник (cooler) | KM*01.AT101_1, KM*01.AT101_2, KM*02.AT102_1, KM*02.AT102_2 |
Диафрагма (diafragma) | gen.PP1, gen.PP3, gen.PP5, gen.PP7, KM*01.PP101, KM*01.PP102, KM*02.PP103, KM*02.PP104 |
Клапан (klap) | gen.КШ1, gen.КШ5, gen.КШ6, gen.КШ21, KM*01.KPP101, KM*01.DR100, KM*01.КШ101, KM*01.КШ104, KM*01.КШ106, KM*02.KPP102, KM*02.DR101, KM*02.КШ111, KM*02.КШ113, KM*02.КШ114, KM*02.КШ116 |
Запаздывание (lag) | gen.P_КРД2 |
Сеть (нагрузка) (net) | gen.netGVD, gen.netGlinsk, gen.netFakel, KM*02.net102 |
Труба 1->1 (pipe1_1) | gen.pipeGlinsk |
Труба 1->2 (pipe1_2) | gen.node1, gen.node20 |
Труба 1->3 (pipe1_3) | gen.node1_1, gen.node21, KM*01.node4_1 |
Труба 1->4 (pipe1_4) | KM*02.node6_1 |
Труба 3->1 (pipe3_1) | gen.node22, gen.node19, KM*01.node3_1, KM*02.node5_1 |
Шум (2 гарм. + случ) (noise) | gen.noisePP3 |
Сепаратор (separator) | gen.C1, gen.C2, KM*01.C101_1, KM*01.C101_2, KM*01.C101_3, KM*02.С102_1, KM*02.С102_2, KM*02.С102_3 |
Источник-давление (src_press) | gen.SrcGas |
Благодаря использованию библиотеки моделей аппаратов и концепции построения динамических моделей была получена динамическая модель, из которой можно получить параметры в любой точке принципиальной схемы как для изучения, так и для отработки алгоритмов управления.
В модели системы управления общестанционной части реализованы три ПИД-регулятора PC_КРД1, PC_КРД2 и PC_КРД3 для регулирования давления на входе КС, между компрессорами низкого и высокого давления, а также на выходе КС.
Для получения информации о технологическом процессе были созданы параметры ТП (таблица 3), которые представляют данные из отдельных узлов модели.
Таблица 3. Параметры технологического процесса
Шифр | Описание | Свойства | Источник |
Контроллер общестанционки BlockCalc.gen | |||
F2, F_PP1 | Расход газа через диафрагму PP1 | PP1.Fi | |
F3 | Расход газа через трубу на Глинск | pipeGlinsk.Fi | |
F4, F_PP5, F5_6 | Расход газа через диафрагму PP5 | PP5.Fi | |
F7_8 | Расход газа через диафрагму PP7 | PP7.Fi | |
F_PP3 | Расход газа через диафрагму PP3 | PP3.Fo | |
КШ1 | Блок управления шарового крана КШ1 | КШ1им.com, КШ1им.st_open, КШ1им.st_close | |
КШ2 | Блок управления шарового крана КШ2 | КШ2им.com, КШ2им.st_open, КШ2им.st_close | |
КШ5 | Блок управления шарового крана КШ5 | КШ5им.com, КШ5им.st_open, КШ5им.st_close | |
КШ6 | Блок управления шарового крана КШ6 | КШ6им.com, КШ6им.st_open, КШ6им.st_close | |
КШ7 | Блок управления шарового крана КШ7 | КШ7им.com, КШ7им.st_open, КШ7им.st_close | |
КШ21 | Блок управления шарового крана КШ21 | КШ21им.com, КШ21им.st_open, КШ21им.st_close | |
КШ22 | Блок управления шарового крана КШ22 | КШ22им.com, КШ22им.st_open, КШ22им.st_close | |
L1 | Уровень жидкости в сепараторе C2 | C2.Lж | |
Ti | Температура газа на входе КС. | КШ1.Ti | |
T_PP1 | Температура газа на диафрагме PP1 | КРД1.To | |
T_PP3 | Температура газа на диафрагме PP3 | node19.To | |
T_PP5 | Температура газа на диафрагме PP5 | КШ21.To | |
Pi | Давление газа на входе КС. | КШ1.Pi | |
P_PP1 | Давление газа на диафрагме PP1 | PP1.Po | |
P_PP3, PC0601 | Давление газа на диафрагме PP3 | PP3.Po | |
P_PP5, P4, PT0404 | Давление газа на диафрагме PP5 | PP5.Po | |
PT0804, P3 | Давление газа в трубе на Глинск | pipeGlinsk.Pi | |
PT1606, PT0503 | Давление газа в сепараторе С1 | C1.Po | |
PT0406 | Давление газа на диафрагме PP7 | PP7.Po | |
PT0605 | Давление газа перед регулирующим клапаном КРД1 | КРД1.Pi | |
Виртуальный контроллер общестанционки LogicLev.experiment | |||
F3 | Расход газа через трубу на Глинск | Шаблон: base.simleBoard т/ч, (0;100), a(10;90), w(35;80) | BlockCalc.Anast1to2node.F3.var |
F4, F_PP5 | Расход газа через диафрагму PP5 | Шаблон: base.simleBoard т/ч, (0;100), a(10;90), w(35;80) | BlockCalc.Anast1to2node.F4.var, BlockCalc.Anast1to2node.F_PP5.var |
F_PP1 | Расход газа через диафрагму PP1 | Шаблон: base.simleBoard т/ч, (0;150) | BlockCalc.Anast1to2node.F_PP1.var |
F_PP3 | Расход газа через диафрагму PP3 | Шаблон: base.simleBoard т/ч, (0;150) | BlockCalc.Anast1to2node.F_PP3.var |
Ti | Температура газа на входе КС. | Шаблон: base.simleBoard град. С, (-50;50), a(-20;40), w(-10;30) | BlockCalc.Anast1to2node.Ti.var |
T_PP1 | Температура газа на диафрагме PP1 | Шаблон: base.simleBoard град. С, (0;50) | BlockCalc.Anast1to2node.T_PP1.var |
T_PP3 | Температура газа на диафрагме PP3 | Шаблон: base.simleBoard град. С, (0;50) | BlockCalc.Anast1to2node.T_PP3.var |
T_PP5 | Температура газа на диафрагме PP5 | Шаблон: base.simleBoard град. С, (0;50) | BlockCalc.Anast1to2node.T_PP5.var |
Pi | Давление газа на входе КС. | Шаблон: base.simleBoard кгс/см2, (0;20), a(4;15), w(5;10) | BlockCalc.Anast1to2node.Pi.var |
P3 | Давление газа в трубе на Глинск | Шаблон: base.simleBoard кгс/см2, (0;100), a(10;90), w(20;80) | BlockCalc.Anast1to2node.P3.var |
P_PP1 | Давление газа на диафрагме PP1 | Шаблон: base.simleBoard кгс/см2, (0;10) | BlockCalc.Anast1to2node.P_PP1.var |
P_PP3 | Давление газа на диафрагме PP3 | Шаблон: base.simleBoard кгс/см2, (0;50) | BlockCalc.Anast1to2node.P_PP3.var |
P_PP5, P4 | Давление газа на диафрагме PP5 | Шаблон: base.simleBoard кгс/см2, (0;50) | BlockCalc.Anast1to2node.P_PP5.var, BlockCalc.Anast1to2node.P4.var |
PT0503 | Давление газа в сепараторе С1 | Шаблон: base.simleBoard кгс/см2, (0;10), a(2;8), w(3;7) | BlockCalc.Anast1to2node.PT0503.var |
КШ6close | Сигнализация по закрытию крана КШ6 | Шаблон: base.digAlarm | BlockCalc.Anast1to2node.КШ6.st_open |
gN1 | Узел учёта 1 | Шаблон: base.gasPoint | |
КШ7 | Блок управления шарового крана КШ7 | Шаблон: base.digitBlock t=5c | BlockCalc.Anast1to2node.КШ7.com, BlockCalc.Anast1to2node.КШ7.st_open, BlockCalc.Anast1to2node.КШ7.st_close |
Контроллер BlockCalc.gen_cntr | |||
PC_КРД1 | Регулятор давления на входе КС. | ат, (0;10) | PCKRD1.* |
PC_КРД2 | Регулятор давления между комрессорами низкого и высокого давлений. | ат, (0;50) | PC_КРД2.* |
PC_КРД3 | Регулятор давления на выходе КС. | ат, (0;120) | PC_КРД3.* |
Контроллер BlockCalc.KM*01 | |||
KPP101 | Антипомпажный регулирующий клапан компрессора | %, (0;100), 0 знаков | KPP101.l_kl1 |
FN101 | Расход на выходе компрессора | КШ104.Fi | |
F101 | Расход на диафрагме PP101 | т/ч, (0;100), 1 знак | PP101.Fi |
F102 | Расход на диафрагме PP102 | т/ч, (0;100), 1 знак | PP102.Fi |
TE1202_1 | Температура после первой ступени компрессора | К, (273;373), 0 знак | КМ101_1.To |
TE1205_1 | Температура после второй ступени компрессора | К, (273;433), 0 знак | КМ101_2.To |
TE1313_1 | Температура на входе первой ступени компрессора | К, (273;373), 0 знак | node3_1.To |
TE1314_1 | Температура после холодильника первой ступени компрессора | К, (273;373), 0 знак | AT101_1.To |
TE1206_1 | Температура после холодильника второй ступени компрессора | К, (273;373), 0 знак | AT101_2.To |
AT101_1 | Блок контроля холодильника после первой ступени компрессора | AT101_1.Ti, AT101_1.To, AT101_1.Wc | |
AT101_2 | Блок контроля холодильника после второй ступени компрессора | AT101_2.Ti, AT101_2.To, AT101_2.Wc | |
КШ101 | Блок управления шарового крана КШ101 | КШ101им.com, КШ101им.st_open, КШ101им.st_close | |
КШ102 | Блок управления шарового крана КШ102 | КШ102им.com, КШ102им.st_open, КШ102им.st_close | |
КШ104 | Блок управления шарового крана КШ104 | КШ104им.com, КШ104им.st_open, КШ104им.st_close | |
КШ105 | Блок управления шарового крана КШ105 | КШ105им.com, КШ105им.st_open, КШ105им.st_close | |
КШ106 | Блок управления шарового крана КШ106 | КШ106им.com, КШ106им.st_open, КШ106им.st_close | |
PT0202_1 | Давление после первой ступени компрессора | ат, (0;20), 1 знак | КМ101_1.Po |
PT0204_1 | Давление после второй ступени компрессора | ат, (0;50), 1 знак | КМ101_2.Po |
PT1006_1 | Давление на диафрагме PP102 | ат, (0;20), 1 знак | PP102.Pi |
P101 | Давление на диафрагме PP101 | ат, (0;10), 1 знак | PP101.Pi |
ST8612_1 | Обороты вращения компрессора | 1000x об.мин., (0;10), 2 знака | КМ101_1.N |
Контроллер BlockCalc.KM*02 | |||
KPP102 | Антипомпажный регулирующий клапан компрессора | %, (0;100), 0 знаков | KPP102.l_kl1 |
TE1202_4 | Температура после первой ступени компрессора | К, (273;373), 0 знак | KM102_1.To |
TE1205_4 | Температура после второй ступени компрессора | К, (273;433), 0 знак | KM102_2.To |
TE1313_4 | Температура на входе первой ступени компрессора | К, (273;373), 0 знак | node5_1.To |
TE1314_4 | Температура после холодильника первой ступени компрессора | К, (273;373), 0 знак | AT102_1.To |
TE1206_4 | Температура после холодильника второй ступени компрессора | К, (273;373), 0 знак | AT102_2.To |
F103 | Расход на диафрагме PP103 | т/ч, (0;100), 1 знак | PP103.Fi |
F104 | Расход на диафрагме PP104 | т/ч, (0;100), 1 знак | PP104.Fi |
PT0202_4 | Давление после первой ступени компрессора | ат, (0;75), 1 знак | KM102_1.Po |
PT0204_4 | Давление после второй ступени компрессора | ат, (0;150), 1 знак | KM102_2.Po |
PT1006_4 | Давление на диафрагме PP104 | ат, (0;75), 1 знак | PP104.Pi |
P103 | Давление на диафрагме PP103 | ат, (0;50), 1 знак | PP103.Pi |
КШ111 | Блок управления шарового крана КШ111 | КШ111им.com, КШ111им.st_open, КШ111им.st_close | |
КШ112 | Блок управления шарового крана КШ112 | КШ112им.com, КШ112им.st_open, КШ112им.st_close | |
КШ114 | Блок управления шарового крана КШ114 | КШ114им.com, КШ114им.st_open, КШ114им.st_close | |
КШ115 | Блок управления шарового крана КШ115 | КШ115им.com, КШ115им.st_open, КШ115им.st_close | |
КШ116 | Блок управления шарового крана КШ116 | КШ116им.com, КШ116им.st_open, КШ116им.st_close | |
ST8612_4 | Обороты вращения компрессора | 1000x об.мин., (0;15), 2 знака | KM102_1.N |
Пользовательский интерфейс модели представлен семью объектами сигнализаций (рис.2). Шесть из них содержат кадры компрессоров КМ101, КМ201, КМ301, КМ102, КМ202 и КМ302. Седьмой же является общим для всей компрессорной станции и содержит общестанционные кадры. Общестанционная группа сигнализации содержит две мнемосхемы, две группы графиков, группу контуров, группу обзорных кадров и пять документов.
Мнемосхемы объекта сигнализации "Общестанционка" представлены на рис.3 и рис.4.
Группы графиков "Общие" и "Температуры" представлены на рис.5 и рис.6 соответственно.
Группа контуров "Тестовая группа" (рис.7) содержит контура всех регуляторов и ряд важных параметров.
Группа обзорных кадров "Обзор 1" (рис.8) содержит кадры основных параметров.
Документы "Таблица накопленных мгновенных значений", "Журнал вмешательств", "Таблица среднечасовых значений", "Таблица среднесуточных значений" и "Суточный отчёт" представлены на рис.9, рис.10, рис.11, рис.12 и рис.13 соответственно.
Объекты сигнализации компрессоров низкого давления содержат мнемосхему рис.14 и группу графиков рис.15.
Объекты сигнализации компрессоров высокого давления содержат мнемосхему рис.16 и группу графиков рис.17.
Для отображения динамики всей компрессорной станции предусмотрена группа сводных графиков (рис.18)
Результатом разработки стала полноценная динамическая модель технологического процесса компрессорной станции. Данная модель доступна на трёх языках и включена в дистрибутивы системы OpenSCADA в роли демонстрации функций и возможностей.
Модель предусматривает возможность управления ТП от лица оператора, включая операции:
В прикладном смысле модель с успехом применялась для отладки алгоритмов противопомпажной защиты компрессоров Анастасиевской ГЛКС.
Ресурсоёмкость модели составила 70% на ядре процессора 800 МГц.