Ім'я: ModelAGLKS Засновано: Січень 2006р Учасники: Роман Савоченко Опис: Проект присвячено створенню повної моделі Анастасіївської газо-ліфтної компресорної станції (ГЛКС). Адреса: Поточна БД у SVN-репозиторії, БД у файлі: AGLKS.tlz. Живе виконання: Web-доступ до інтерфейсу моделі |
Анастасіївська ГЛКС (АГЛКС) представляє собою технологічний процес, призначений для двох-ступеневого стиснення газу газових родовищ. Для цієї мети ГЛКС має шість відцентрових компресори, по три компресора на низький та високий тиск, забезпечуючи тим самим резервування та допускаючи паралельну роботу з метою підвищення продуктивності.
Для тестування алгоритмів керування ГЛКС, в особливості антипомпажних алгоритмів, знадобилося створення моделі ГЛКС. Передбачувався запуск моделі на одно-платному комп'ютері з УПО та взаємодія з контролером керування технологічним процесом. Для розробки моделі було використано бібліотеку технологічних апаратів системи 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 МГц.