Динамічна модель реального часу газо-ліфтної компресорної станції
Засновано: Січень 2006
wget http://oscada.org/svn/trunk/OpenSCADA/data/ModelsDB/AGLKS/Model.sql
sqlite3 -init Model.sql Model.db .exit
|
Анастасіївська ГЛКС (АГЛКС) представляє собою технологічний процес, призначений для двох-ступеневого стиснення газу газових родовищ. Для цієї мети ГЛКС має шість відцентрових компресори, по три компресора на низький та високий тиск, забезпечуючи тим самим резервування та допускаючи паралельну роботу з метою підвищення продуктивності.
Contents
1 Призначення
Функціонально, розробка призначена для створення динамічної моделі реального часу газо-ліфтної компресорної станції.
Експлуатаційним призначенням розробки є:
- тестування алгоритмів керування АСУ ТП, особливо антипомпажних алгоритмів;
- тестування адекватності функціювання SCADA-системи;
- навчання технологічного персоналу;
- "жива" демонстрація функцій та приклад проєкту у SCADA-системі OpenSCADA, як фактична, та наразі кінцева, мета.
2 Розробка
Первісно цей проєкт та модель створювалися для тестування алгоритмів керування ГЛКС, в особливості антипомпажних алгоритмів. Передбачалося запуск моделі на одно-платному комп'ютері з ПУО та взаємодія з контролером керування технологічним процесом. У розробці моделі було використано бібліотеку технологічних апаратів OpenSCADA. Надалі модель ТП компресорної станції виросла у автономну систему, котра використовується у проєкті OpenSCADA в якості прикладу, демонстрації функції та можливостей. Текстові значення моделі доступні на трьох мовах: Англійська, Українська та mRussian.
Концептуально, комплексні моделі технологічних процесів поділяються та складаються з трьох чітко-визначених структурних одиниць, які так само чітко окреслені у практичному застосуванні та можуть використовуватися незалежно, після спільного відпрацювання, а саме це (з низу на гору):
- технологічний процес — математична модель реального часу, що описує роботу технологічного процесу у динаміці;
- Програмований Логічний Контролер (ПЛК) — фактично це алгоритми та регулятори, призначені для здійснення контролю за стабільністю технологічного процесу у межах режимів визначених технологічним регламентом, та такі що відтворюються комплексною моделлю;
- Supervisory Control And Data Acquisition (SCADA) — диспетчерська система збору даних, що безпосередньо є вікном до технологічного процесу, отримуючи дані від ПЛК та видаючи керуючі дії.
2.1 Технологічний процес
Перед створенням моделі ГЛКС було сформовано принципову схему моделі її технологічного процесу, засновану на принциповій схемі реального технологічного процесу. Отриману схему зображено на рисунку 1.
2.2 Моделювання
Для побудови моделі технологічного процесу, на основі доступних моделей апаратів, була безпосередньо використана початкова принципова схема та блоковий обчислювач (BlockCalc) OpenSCADA. Моделі апаратів технологічної схеми додавалися до блокової схему відповідно до принципової. Частину блоків було додано для допоміжного обладнання, а також вузлів потоків. Номери блоків вузлів на принциповій схемі вказано номерами біля вузлів потоків.
Модель реалізовано у вигляді вісьмох блокових схем блокового обчислювача. Склад та властивості блокових схем наведено у таблиці 1.
Таблиця 1. Блокові схеми моделі
Ідентифікатор | Ім'я | Призначення | Період виконання, секунди |
---|---|---|---|
gen | Загальностанційка | Містить модель загальної частини компресорної станції, а саме все що зображено на принциповій схемі за межами сірих блоків окремих компресорів. | 0.01 |
gen_cntr | Загальностанційка (контролер) | Містить модель системи керування загальностанційною частиною. | 1 |
CM101 | Модель КМ101 | Містить модель першого компресора низького тиску КМ101. | 0.01 |
CM102 | Модель КМ102 | Містить модель першого компресора високого тиску КМ102. | 0.01 |
CM201 | Модель КМ201 | Містить модель другого компресора низького тиску КМ201. | 0.01 |
CM202 | Модель КМ202 | Містить модель другого компресора високого тиску КМ202. | 0.01 |
CM301 | Модель КМ301 | Містить модель третього компресора низького тиску КМ301. | 0.01 |
CM302 | Модель КМ302 | Містить модель третього компресора високого тиску КМ302. | 0.01 |
У таблиці 2 наведено перелік використаних моделей апаратів, відповідно до принципової схеми.
Таблиця 2. Використані моделі апаратів
Модель апарату | Апарати (блоки моделі) |
---|---|
Кульовий кран (ballCrane) | gen.G_BC1, gen.G_BC2, gen.G_BC5, gen.G_BC6, gen.G_BC7, gen.G_BC21, G_BC22, CM*01.G_BC101, CM*01.G_BC102, CM*01.G_BC104, CM*01.G_BC105, CM*01.G_BC106, CM*02.G_BC111, CM*02.G_BC112, CM*02.G_BC114, CM*02.G_BC115, CM*02.G_BC116 |
Компресор газовий (compressor) | CM*01.CM101_1, CM*01.CM101_2, CM*02.CM102_1, CM*02.CM102_2 |
Повітряний холодильник (cooler) | CM*01.AT101_1, CM*01.AT101_2, CM*02.AT102_1, CM*02.AT102_2 |
Діафрагма (diafragma) | gen.PP1, gen.PP3, gen.PP5, gen.PP7, CM*01.PP101, CM*01.PP102, CM*02.PP103, CM*02.PP104 |
Засувка (klap) | gen.BC1, gen.BC5, gen.BC6, gen.BC21, CM*01.KPP101, CM*01.DR100, CM*01.BC101, CM*01.BC104, CM*01.BC106, CM*02.KPP102, CM*02.DR101, CM*02.BC111, CM*02.BC113, CM*02.BC114, CM*02.BC116 |
Затримка (lag) | gen.P_PCV2 |
Мережа, навантаження (net) | gen.netHPG, gen.netGlinsk, gen.netTorch, CM*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, CM*01.node4_1 |
Труба 1->4 (pipe1_4) | CM*02.node6_1 |
Труба 3->1 (pipe3_1) | gen.node22, gen.node19, CM*01.node3_1, CM*02.node5_1 |
Шум, 2 гарм. + вип. (noise) | gen.noisePP3 |
Сепаратор (separator) | gen.C1, gen.C2, CM*01.C101_1, CM*01.C101_2, CM*01.C101_3, CM*02.С102_1, CM*02.С102_2, CM*02.С102_3 |
Джерело, тиск (src_press) | gen.SrcGas |
Завдяки використанню бібліотеки моделей апаратів та концепції побудови динамічних моделей була отримана динамічна модель, з якої можна взяти параметри у будь-якому місті принципової схеми як для вивчення, так і для відпрацювання алгоритмів керування.
Для отримання інформації про технологічний процес були створені параметри (таблиця 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 | G_BC1.com, G_BC1.st_open, G_BC1.st_close | |
КК2 | Блок керування кульовим краном КК2 | G_BC2.com, G_BC2.st_open, G_BC2.st_close | |
КК5 | Блок керування кульовим краном КК5 | G_BC5.com, G_BC5.st_open, G_BC5.st_close | |
КК6 | Блок керування кульовим краном КК6 | G_BC6.com, G_BC6.st_open, G_BC6.st_close | |
КК7 | Блок керування кульовим краном КК7 | G_BC7.com, G_BC7.st_open, G_BC7.st_close | |
КК21 | Блок керування кульовим краном КК21 | G_BC21.com, G_BC21.st_open, G_BC21.st_close | |
КК22 | Блок керування кульовим краном КК22 | G_BC22.com, G_BC22.st_open, G_BC22.st_close | |
L1 | Рівень рідини у сепараторі C2 | C2.Lж | |
Ti | Температура газу на вході КС | BC1.Ti | |
T_PP1 | Температура газу на діафрагмі PP1 | PCV1.To | |
T_PP3 | Температура газу на діафрагмі PP3 | node19.To | |
T_PP5 | Температура газу на діафрагмі PP5 | BC21.To | |
Pi | Тиск газу на вході КС | BC1.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 | PCV1.Pi | |
Загальностанційка (LogicLev.gen) | |||
F3 | Витрати газу через трубу на Глінск | Шаблон: base.anUnif т/год, (0;100), a(10;90), w(35;80) |
BlockCalc.gen.F3.var |
F4, F_PP5 | Витрати газу через діафрагму PP5 | Шаблон: base.anUnif т/год, (0;100), a(10;90), w(35;80) |
BlockCalc.gen.F4.var, BlockCalc.gen.F_PP5.var |
F_PP1 | Витрати газу через діафрагму PP1 | Шаблон: base.anUnif т/год, (0;150) |
BlockCalc.gen.F_PP1.var |
F_PP3 | Витрати газу через діафрагму PP3 | Шаблон: base.anUnif т/год, (0;150) |
BlockCalc.gen.F_PP3.var |
Ti | Температура газу на вході КС | Шаблон: base.anUnif град. С, (-50;50), a(-20;40), w(-10;30) |
BlockCalc.gen.Ti.var |
T_PP1 | Температура газу на діафрагмі PP1 | Шаблон: base.anUnif град. С, (0;50) |
BlockCalc.gen.T_PP1.var |
T_PP3 | Температура газу на діафрагмі PP3 | Шаблон: base.anUnif град. С, (0;50) |
BlockCalc.gen.T_PP3.var |
T_PP5 | Температура газу на діафрагмі PP5 | Шаблон: base.anUnif град. С, (0;50) |
BlockCalc.gen.T_PP5.var |
Pi | Тиск газу на вході КС | Шаблон: base.anUnif кгс/см2, (0;20), a(4;15), w(5;10) |
BlockCalc.gen.Pi.var |
P3 | Тиск газу у трубі на Глінск | Шаблон: base.anUnif кгс/см2, (0;100), a(10;90), w(20;80) |
BlockCalc.gen.P3.var |
P_PP1 | Тиск газу на діафрагмі PP1 | Шаблон: base.anUnif кгс/см2, (0;10) |
BlockCalc.gen.P_PP1.var |
P_PP3 | Тиск газу на діафрагмі PP3 | Шаблон: base.anUnif кгс/см2, (0;50) |
BlockCalc.gen.P_PP3.var |
P_PP5, P4 | Тиск газу на діафрагмі PP5 | Шаблон: base.anUnif кгс/см2, (0;50) |
BlockCalc.gen.P_PP5.var, BlockCalc.gen.P4.var |
PT0503 | Тиск газу у сепараторі С1 | Шаблон: base.anUnif кгс/см2, (0;10), a(2;8), w(3;7) |
BlockCalc.gen.PT0503.var |
BC6close | Сигналізація по закриттю крана КК6 | Шаблон: base.digAlarm | BlockCalc.gen.BC6.st_open |
gN1 | Вузол обліку діафрагми PP1 | Шаблон: base.gasPoint | |
КК7 | Блок контролю кульовим краном КК7 | Шаблон: base.digitBlock t=5c |
BlockCalc.gen.BC7.com, BlockCalc.gen.BC7.st_open, BlockCalc.gen.BC7.st_close |
Контролер загальностанційки (BlockCalc.gen_cntr) | |||
PC_КРТ1 | Регулятор тиску на вході КС | ат, (0;10) | PC_PCV1.* |
PC_КРТ2 | Регулятор тиску між компресорами низького та високого тиску | ат, (0;50) | PC_PCV2.* |
PC_КРТ3 | Регулятор тиску на виході КС | ат, (0;120) | PC_PCV3.* |
ПомпажКМ101 | Регулятор захисту від помпажу компресору КМ101 | at, (0;2) | SurgeCM101.sp:sp |
ПомпажКМ102 | Регулятор захисту від помпажу компресору КМ102 | at, (0;2) | SurgeCM102.sp:sp |
ПомпажКМ201 | Регулятор захисту від помпажу компресору КМ201 | at, (0;2) | SurgeCM201.sp:sp |
ПомпажКМ202 | Регулятор захисту від помпажу компресору КМ202 | at, (0;2) | SurgeCM202.sp:sp |
ПомпажКМ301 | Регулятор захисту від помпажу компресору КМ301 | at, (0;2) | SurgeCM301.sp:sp |
ПомпажКМ302 | Регулятор захисту від помпажу компресору КМ302 | at, (0;2) | SurgeCM302.sp:sp |
Модель КМ*01 (BlockCalc.CM*01) | |||
KPP101 | Антипомпажний регулюючий клапан компресору | %, (0;100), 0 знаков | KPP101.l_kl1 |
FN101 | Витрати на виході компресора | BC104.Fi | |
F101 | Витрати на діафрагмі PP101 | т/год, (0;100), 1 знак | PP101.Fi |
F102 | Витрати на діафрагмі PP102 | т/год, (0;100), 1 знак | PP102.Fi |
TE1202_1 | Температура після першого ступеня компресору | К, (273;373), 0 знак | CM101_1.To |
TE1205_1 | Температура після другого ступеня компресору | К, (273;433), 0 знак | CM101_2.To |
TE1313_1 | Температура на вході першого ступеня компресору | К, (273;373), 0 знак | node5_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 | G_BC101.com, G_BC101.st_open, G_BC101.st_close | |
КК102 | Блок керування кульовим краном КК102 | G_BC102.com, G_BC102.st_open, G_BC102.st_close | |
КК104 | Блок керування кульовим краном КК104 | G_BC104.com, G_BC104.st_open, G_BC104.st_close | |
КК105 | Блок керування кульовим краном КК105 | G_BC105.com, G_BC105.st_open, G_BC105.st_close | |
КК106 | Блок керування кульовим краном КК106 | G_BC106.com, G_BC106.st_open, G_BC106.st_close | |
PT0202_1 | Тиск після першого ступеня компресору | ат, (0;20), 1 знак | CM101_1.Po |
PT0204_1 | Тиск після другого ступеня компресору | ат, (0;50), 1 знак | CM101_2.Po |
PT1006_1 | Тиск на діафрагмі PP102 | ат, (0;20), 1 знак | PP102.Pi |
P101 | Тиск на діафрагмі PP101 | ат, (0;10), 1 знак | PP101.Pi |
ST8612_1 | Оберти компресору | 1000x об.хвил., (0;10), 2 знака | CM101_1.N |
Модель КМ*02 (BlockCalc.CM*02) | |||
KPP102 | Антипомпажний регулюючий клапан компресору | %, (0;100), 0 знаков | KPP102.l_kl1 |
TE1202_4 | Температура після першого ступеня компресору | К, (273;373), 0 знак | CM102_1.To |
TE1205_4 | Температура після другого ступеня компресору | К, (273;433), 0 знак | CM102_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 знак | CM102_1.Po |
PT0204_4 | Тиск після другого ступеня компресору | ат, (0;150), 1 знак | CM102_2.Po |
PT1006_4 | Тиск на діафрагмі PP104 | ат, (0;75), 1 знак | PP104.Pi |
P103 | Тиск на діафрагмі PP103 | ат, (0;50), 1 знак | PP103.Pi |
КК111 | Блок керування кульовим краном КК111 | G_BC111.com, G_BC111.st_open, G_BC111.st_close | |
КК112 | Блок керування кульовим краном КК112 | G_BC112.com, G_BC112.st_open, G_BC112.st_close | |
КК114 | Блок керування кульовим краном КК114 | G_BC114.com, G_BC114.st_open, G_BC114.st_close | |
КК115 | Блок керування кульовим краном КК115 | G_BC115.com, G_BC115.st_open, G_BC115.st_close | |
КК116 | Блок керування кульовим краном КК116 | G_BC116.com, G_BC116.st_open, G_BC116.st_close | |
ST8612_4 | Оберти компресору | 1000x об.хвил., (0;15), 2 знака | CM102_1.N |
2.3 Регулювання
Сама по собі динамічна модель без регулювання може бути нестійкою, хоча у цьому випадку відсутні незбалансовані інтегральні ланки. З цієї причини, а також для створення самодостатньої моделі, спроможної працювати автономно та без ПЛК у ролі регулятору, було створено об'єкт контролеру регуляторів моделі, де реалізовано три загальних ПІД-регулятори PC_КРТ1, PC_КРТ2 та PC_КРТ3 для регулювання тиску на вході КС, між компресорами низького та високого тиску, а також на виході КС. Також передбачено шість регуляторів антипомпажного захисту SurgeCM*0*, по одному на компресор.
3 Інтерфейс користувача
Користувацький інтерфейс моделі містить сім об'єктів сигналізації (рис.2). Шість з них містять кадри компресорів КМ101, КМ201, КМ301, КМ102, КМ202 та КМ302. Сьомий є загальним для всіх компресорів станції та містить загальностанційні кадри. Загальностанційна група сигналізації містить дві мнемосхеми, дві групи графіків, групу контурів, групу оглядових кадрів та п'ять документів. Також надається одна загальна оглядова група результатних графіків.
Мнемосхеми об'єкту сигналізації "Загальностанційка" представлені на рисунку 3 та 4.
Групи графіків "Загальні" та "Температури" представлені на рисунку 5 та 6, відповідно.
Група контурів "Загальні" (рис.7) містить контури всіх регуляторів та низку важливих параметрів.
Група оглядових кадрів "Загальні" (рис.8) містить кадри основних параметрів.
Документи "Таблиця накопичених миттєвих значень", "Журнал дій", "Середні за годину значення витрато-вимірювального вузла", "Середньодобові значення витрато-вимірювального вузла" та "Добовий звіт" представлені на рисунку 9, 10, 11, 12 та 13, відповідно.
Об'єкти сигналізації компресорів низького тиску містять мнемосхему (рис.14) та групу графіків (рис.15).
Об'єкти сигналізації компресорів високого тиску містять мнемосхему (рис.16) та групу графіків (рис.17).
Для відображення динаміки всієї компресорної станції передбачено групу зведених графіків (рис.18).
4 Результати
Результатом розробки стала повноцінна динамічна модель технологічного процесу компресорної станції. Ця модель наявна на трьох мовах та включена до дистрибутивів OpenSCADA у ролі основної демонстрації функції та можливостей, та на її основі побудовано документ "Швидкий старт".
Модель передбачає можливість керування ТП від особи оператору, включаючи операції:
- керування регуляторами тиску:
- зміна режиму регулятора: "Автомат" або "Ручний";
- встановлення потрібного значення завдання або ручного виходу виконавчого механізму;
- налагодження параметрів ПІД-регулятору.
- керування засувками та кульовими кранами за посередництвом панелі керування та контекстного меню, шляхом закриття або відкриття;
- ручний ввід значень параметрів обертів (ST8612) та положення протипомпажних клапанів (KPPx0x).
У прикладному сенсі модель з успіхом застосовувалася для налагодження алгоритмів протипомпажного захисту компресорів Анастасіївської ГЛКС.
Ресурсомісткість моделі загалом, до центрального процесору Athlon 64 3000+ (2000МГц) складає 22%, до центрального процесору 800 МГц складає 70%.