Name: ModelAGLKS Founded: January 2006 Members: Roman Savochenko, Maxim Lysenko Description: The project is devoted to the creation of the full dynamic model of real-time of Anastasievskaja GLKS. Address: Current DB into the SVN-repository, DB in file: AGLKS.tlz. Live execution: Web-access to the model interface |
Anastasievskaya GLKS (AGLKS) is the technological process designed for two-stage gas compression of gas fields. For this purpose GLKS is provided with six centrifugal compressors: three compressor for low and high pressure part, thus providing redundancy and allowing the parallel operation.
To test the control algorithms of GLKS, especially anti surging algorithms the creation of mathematical model of GLKS was required. The model must run on the single board computer with the PCI and communicate with the controller of the technological process control. For development of the model it was used library of technological devices of OpenSCADA. Subsequently, the TP model of the compressor station has grown into an autonomous system which is used in the OpenSCADA project as the demonstration of features and capabilities.
Before creating the GLKS model, it was created the principle circuit of the model of technological process, based on the principle circuit of the real process. The resulting scheme is shown in Figure 1.
To construct the model of technological process on the basis of the available models of tech. devices it was directly used the source principle scheme and block calculator (BlockCalc) of the OpenSCADA system. The technological devices added to the block scheme in accordance to the principle scheme. Several blocks were added as the accessory ones and for the nodes of the flows. The numbers of the nodes' blocks are indicated on the principle scheme near the flows nodes.
The model is implemented as an eight-block schemes of the block calculator. Structure and properties of block schemes are shown in Table 1.
Table 1. Model block scheme
ID | Name | Purpose | Period of execution (ms) | Execution time for Athlon 64 3000+ (ms) |
gen | Mainstation | Contains the model of general part of the compressor station, namely, all that is shown on the principle scheme outside of the gray blocks of individual compressors. | 10 | 0.52 |
gen_cntr | Mainstation (controller) | Contains the model of the control system of the mainstation part | 1000 | 0.033 |
KM101 | The model of ÊÌ101 | Contains the model of the first compressor KÌ101 of low pressure. | 10 | 0.3 |
KM102 | The model of ÊÌ102 | Contains the model of the first compressor KÌ102 of high pressure. | 10 | 0.35 |
KM201 | The model of ÊÌ201 | Contains the model of the second compressor KÌ201 of low pressure. | 10 | 0.3 |
KM202 | The model of ÊÌ202 | Contains the model of the second compressor KÌ202 of high pressure. | 10 | 0.35 |
KM301 | The model of ÊÌ301 | Contains the model of the third compressor KÌ301 of low pressure. | 10 | 0.3 |
KM302 | The model of ÊÌ302 | Contains the model of the third compressor KÌ302 of high pressure. | 10 | 0.35 |
From the characteristics of block schemes can be seen that the capacity of the model as a whole to the CPU Athlon 64 3000+ (2000MHz) is 19.5%.
Table 2. lists the models being used in accordance with the principle scheme.
Table 2. Using of the technological devices model
Technological device model | Technological devices (blocks of the model) |
Ball crane (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èì |
Gas compressor (compressor) | KM*01.KM101_1, KM*01.KM101_2, KM*02.KM102_1, KM*02.KM102_2 |
Air cooler (cooler) | KM*01.AT101_1, KM*01.AT101_2, KM*02.AT102_1, KM*02.AT102_2 |
Diaphragm (diafragma) | gen.PP1, gen.PP3, gen.PP5, gen.PP7, KM*01.PP101, KM*01.PP102, KM*02.PP103, KM*02.PP104 |
Valve (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 (lag) | gen.P_ÊÐÄ2 |
Network (loading) (net) | gen.netGVD, gen.netGlinsk, gen.netFakel, KM*02.net102 |
Pipe 1->1 (pipe1_1) | gen.pipeGlinsk |
Pipe 1->2 (pipe1_2) | gen.node1, gen.node20 |
Pipe 1->3 (pipe1_3) | gen.node1_1, gen.node21, KM*01.node4_1 |
Pipe 1->4 (pipe1_4) | KM*02.node6_1 |
Pipe 3->1 (pipe3_1) | gen.node22, gen.node19, KM*01.node3_1, KM*02.node5_1 |
Noise (2 harmonic + rand) (noise) | gen.noisePP3 |
Separator (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 |
Source (pressure) (src_press) | gen.SrcGas |
Through the using of the library of the models of tech. devices and concepts for building the dynamic models it has been obtained the dynamic model, from which you can get the parameters at any point of the principle scheme as for the study and for testing of the control algorithms.
In the model of the control system of the mainstation part there are three PID: PC_KRD1, PC_KRD2 and PC_KRD3 to regulate the pressure at the input of the CS, between the compressors of low and high pressure, as well as at the output of the CS.
To obtain the information on the technological process the parameters of TP (Table 3) were created, which represent data from individual nodes of the model.
Table 3. Parameters of the technological process
Ñode | Description | Properties | Source |
Mainstation controller BlockCalc.gen | |||
F2, F_PP1 | Gas flow through the diaphragm PP1 | PP1.Fi | |
F3 | The gas flow through a pipe to Glinsk | pipeGlinsk.Fi | |
F4, F_PP5, F5_6 | Gas flow through the diaphragm PP5 | PP5.Fi | |
F7_8 | Gas flow through the diaphragm PP7 | PP7.Fi | |
F_PP3 | Gas flow through the diaphragm PP3 | PP3.Fo | |
KSH1 | The control block of the ball valve KSH1 | ÊØ1èì.com, ÊØ1èì.st_open, ÊØ1èì.st_close | |
KSH2 | The control block of the ball valve KSH2 | ÊØ2èì.com, ÊØ2èì.st_open, ÊØ2èì.st_close | |
KSH5 | The control block of the ball valve KSH5 | ÊØ5èì.com, ÊØ5èì.st_open, ÊØ5èì.st_close | |
KSH6 | The control block of the ball valve KSH6 | ÊØ6èì.com, ÊØ6èì.st_open, ÊØ6èì.st_close | |
KSH7 | The control block of the ball valve KSH7 | ÊØ7èì.com, ÊØ7èì.st_open, ÊØ7èì.st_close | |
KSH21 | The control block of the ball valve KSH21 | ÊØ21èì.com, ÊØ21èì.st_open, ÊØ21èì.st_close | |
KSH22 | The control block of the ball valve KSH22 | ÊØ22èì.com, ÊØ22èì.st_open, ÊØ22èì.st_close | |
L1 | The liquid level in the separator C2 | C2.Læ | |
Ti | The gas temperature at the input of the CS. | ÊØ1.Ti | |
T_PP1 | The gas temperature at the diaphragm PP1 | ÊÐÄ1.To | |
T_PP3 | The gas temperature at the diaphragm PP3 | node19.To | |
T_PP5 | The gas temperature at the diaphragm PP5 | ÊØ21.To | |
Pi | The gas pressure at the input of the CS. | ÊØ1.Pi | |
P_PP1 | Gas pressure at the diaphragm PP1 | PP1.Po | |
P_PP3, PC0601 | Gas pressure at the diaphragm PP3 | PP3.Po | |
P_PP5, P4, PT0404 | Gas pressure at the diaphragm PP5 | PP5.Po | |
PT0804, P3 | The gas pressure in the pipe to Glinsk | pipeGlinsk.Pi | |
PT1606, PT0503 | The gas pressure in the separator Ñ1 | C1.Po | |
PT0406 | Gas pressure at the diaphragm PP7 | PP7.Po | |
PT0605 | The gas pressure before control valve KRD1 | ÊÐÄ1.Pi | |
Virtual controller of the mainstation LogicLev.experiment | |||
F3 | The gas flow through a pipe to Glinsk | Template: base.simleBoard t/h, (0;100), a(10;90), w(35;80) | BlockCalc.Anast1to2node.F3.var |
F4, F_PP5 | Gas flow through the diaphragm PP5 | Template: base.simleBoard t/h, (0;100), a(10;90), w(35;80) | BlockCalc.Anast1to2node.F4.var, BlockCalc.Anast1to2node.F_PP5.var |
F_PP1 | Gas flow through the diaphragm PP1 | Template: base.simleBoard t/h, (0;150) | BlockCalc.Anast1to2node.F_PP1.var |
F_PP3 | Gas flow through the diaphragm PP3 | Template: base.simleBoard t/h, (0;150) | BlockCalc.Anast1to2node.F_PP3.var |
Ti | The gas temperature at the input of the CS. | Template: base.simleBoard deg. Ñ, (-50;50), a(-20;40), w(-10;30) | BlockCalc.Anast1to2node.Ti.var |
T_PP1 | The gas temperature at the diaphragm PP1 | Template: base.simleBoard deg. Ñ, (0;50) | BlockCalc.Anast1to2node.T_PP1.var |
T_PP3 | The gas temperature at the diaphragm PP3 | Template: base.simleBoard deg. Ñ, (0;50) | BlockCalc.Anast1to2node.T_PP3.var |
T_PP5 | The gas temperature at the diaphragm PP5 | Template: base.simleBoard deg. Ñ, (0;50) | BlockCalc.Anast1to2node.T_PP5.var |
Pi | The gas pressure at the input of the CS. | Template: base.simleBoard kgf/cm2, (0;20), a(4;15), w(5;10) | BlockCalc.Anast1to2node.Pi.var |
P3 | The gas pressure in the pipe to Glinsk | Template: base.simleBoard kgf/cm2, (0;100), a(10;90), w(20;80) | BlockCalc.Anast1to2node.P3.var |
P_PP1 | Gas pressure at the diaphragm PP1 | Template: base.simleBoard kgf/cm2, (0;10) | BlockCalc.Anast1to2node.P_PP1.var |
P_PP3 | Gas pressure at the diaphragm PP3 | Template: base.simleBoard kgf/cm2, (0;50) | BlockCalc.Anast1to2node.P_PP3.var |
P_PP5, P4 | Gas pressure at the diaphragm PP5 | Template: base.simleBoard kgf/cm2, (0;50) | BlockCalc.Anast1to2node.P_PP5.var, BlockCalc.Anast1to2node.P4.var |
PT0503 | The gas pressure in the separator Ñ1 | Template: base.simleBoard kgf/cm2, (0;10), a(2;8), w(3;7) | BlockCalc.Anast1to2node.PT0503.var |
KSH6close | Alarm for closing the valve KSH6 | Template: base.digAlarm | BlockCalc.Anast1to2node.ÊØ6.st_open |
gN1 | Account node 1 | Template: base.gasPoint | |
KSH7 | The control block of the ball valve KSH7 | Template: base.digitBlock t=5s | BlockCalc.Anast1to2node.ÊØ7.com, BlockCalc.Anast1to2node.ÊØ7.st_open, BlockCalc.Anast1to2node.ÊØ7.st_close |
The BlockCalc.gen_cntr controller | |||
PC_KRD1 | The pressure regulator at the input of the CS. | at, (0;10) | PCKRD1.* |
PC_KRD2 | The pressure regulator between the compressors of low and high pressure. | at, (0;50) | PC_ÊÐÄ2.* |
PC_KRD3 | Regulator of the pressure at the output of CS. | at, (0;120) | PC_ÊÐÄ3.* |
The BlockCalc.KM*01 controller | |||
KPP101 | Antistall control valve of the compressor | %, (0;100), 0 digits | KPP101.l_kl1 |
FN101 | Flow at the output of compressor | ÊØ104.Fi | |
F101 | Flow on the diaphragm PP101 | t/h, (0;100), 1 digit | PP101.Fi |
F102 | Flow on the diaphragm PP102 | t/h, (0;100), 1 digit | PP102.Fi |
TE1202_1 | Temperature after the first stage of the compressor | K, (273;373), 0 digit | ÊÌ101_1.To |
TE1205_1 | Temperature after the second stage of the compressor | K, (273;433), 0 digit | ÊÌ101_2.To |
TE1313_1 | The temperature at the input of the first stage of the compressor | K, (273;373), 0 digit | node3_1.To |
TE1314_1 | The temperature after the fridge of the first stage of the compressor | K, (273;373), 0 digit | AT101_1.To |
TE1206_1 | The temperature after the fridge of the second stage of the compressor | K, (273;373), 0 digit | AT101_2.To |
AT101_1 | Control block of the fridge after the first stage of the compressor | AT101_1.Ti, AT101_1.To, AT101_1.Wc | |
AT101_2 | Control block of the fridge after the second stage of the compressor | AT101_2.Ti, AT101_2.To, AT101_2.Wc | |
KSH101 | The control block of the ball valve KSH101 | ÊØ101èì.com, ÊØ101èì.st_open, ÊØ101èì.st_close | |
KSH102 | The control block of the ball valve KSH102 | ÊØ102èì.com, ÊØ102èì.st_open, ÊØ102èì.st_close | |
KSH104 | The control block of the ball valve KSH104 | ÊØ104èì.com, ÊØ104èì.st_open, ÊØ104èì.st_close | |
KSH105 | The control block of the ball valve KSH105 | ÊØ105èì.com, ÊØ105èì.st_open, ÊØ105èì.st_close | |
KSH106 | The control block of the ball valve KSH106 | ÊØ106èì.com, ÊØ106èì.st_open, ÊØ106èì.st_close | |
PT0202_1 | Pressure after the first stage of the compressor | at, (0;20), 1 digit | ÊÌ101_1.Po |
PT0204_1 | Pressure after the second stage of the compressor | at, (0;50), 1 digit | ÊÌ101_2.Po |
PT1006_1 | Pressure on the diaphragm PP102 | at, (0;20), 1 digit | PP102.Pi |
P101 | Pressure on the diaphragm PP101 | at, (0;10), 1 digit | PP101.Pi |
ST8612_1 | Rotation speed of the compressor | 1000x rpm, (0;10), 2 digits | ÊÌ101_1.N |
BlockCalc.KM*02 controller | |||
KPP102 | Antistall control valve of the compressor | %, (0;100), 0 digits | KPP102.l_kl1 |
TE1202_4 | Temperature after the first stage of the compressor | K, (273;373), 0 digit | KM102_1.To |
TE1205_4 | Temperature after the second stage of the compressor | K, (273;433), 0 digit | KM102_2.To |
TE1313_4 | The temperature at the input of the first stage of the compressor | K, (273;373), 0 digit | node5_1.To |
TE1314_4 | The temperature after the fridge of the first stage of the compressor | K, (273;373), 0 digit | AT102_1.To |
TE1206_4 | The temperature after the fridge of the second stage of the compressor | K, (273;373), 0 digit | AT102_2.To |
F103 | Flow on the diaphragm PP103 | t/h, (0;100), 1 digit | PP103.Fi |
F104 | Flow on the diaphragm PP104 | t/h, (0;100), 1 digit | PP104.Fi |
PT0202_4 | Pressure after the first stage of the compressor | at, (0;75), 1 çíàê | KM102_1.Po |
PT0204_4 | Pressure after the second stage of the compressor | at, (0;150), 1 çíàê | KM102_2.Po |
PT1006_4 | Pressure on the diaphragm PP104 | at, (0;75), 1 digit | PP104.Pi |
P103 | Pressure on the diaphragm PP103 | at, (0;50), 1 digit | PP103.Pi |
KSH111 | The control block of the ball valve KSH111 | ÊØ111èì.com, ÊØ111èì.st_open, ÊØ111èì.st_close | |
KSH112 | The control block of the ball valve KSH112 | ÊØ112èì.com, ÊØ112èì.st_open, ÊØ112èì.st_close | |
KSH114 | The control block of the ball valve KSH114 | ÊØ114èì.com, ÊØ114èì.st_open, ÊØ114èì.st_close | |
KSH115 | The control block of the ball valve KSH115 | ÊØ115èì.com, ÊØ115èì.st_open, ÊØ115èì.st_close | |
KSH116 | The control block of the ball valve KSH116 | ÊØ116èì.com, ÊØ116èì.st_open, ÊØ116èì.st_close | |
ST8612_4 | Rotation speed of the compressor | 1000x rpm, (0;15), 2 digits | KM102_1.N |
User interface of the model is represented by seven signaling objects (Fig. 2). Six of them contain frames of the compressors KM101, KM201, KM301, KM102, KM202 and KM302. The seventh is common for the entire compressor station and contains mainstation frames. Mainsttion signaling group includes two mnemonic scheme, two groups of graphs, a group of contours, an overview frame and five documents.
The mnemonic schemes of the signaling object "Mainstation" are resented in Figure 3 and Figure 4.
Graphics groups "Mass flows" and "Temperatures" are presented at Fig.5 and Fig.6 respectively.
Contours group "Test group" (Fig. 7) contains the contours of all the regulators and a set of important parameters.
Group of the overview frames "Overview 1"(Fig. 8) contains the frames of main parameters.
The documents "Table of accumulation instantaneous values", "Log of interruptions", "Table of average over hour values", "Table of average over day values" and "Day Report" are presented in Fig.9, Fig.10, Fig.11, Fig.12 and Fig.13 respectively.
Signaling objects of the compressors of low pressure contain mnemonic scheme (Fig.14) and graphics group (Fig.15).
Signaling objects of the high pressure compressors include mnemonic scheme (Fig.16) and graphics group (Fig.17).
To display the dynamics of the entire compressor station the result graphics are provided (Fig.18)
The result of the development is the complete dynamic model of technological process of the compressor station. This model is available in three languages and is included in the distributions of OpenSCADA as the demonstration of features and capabilities.
The model provides for the availability to control the TP on behalf of the operator, including the following operation:
The model was successfully applied for debugging algorithms of antistall protection of the compressors of Anastasievskaja GLKS.
Resource intensity of the model was 70% on the core processor 800 MHz.