source: trunk/BioModel/separators/absorption_tower.mso @ 1008

Last change on this file since 1008 was 1008, checked in by Argimiro Resende Secchi, 21 months ago

Adding BioModel? to the MSO library.

File size: 7.8 KB
Line 
1
2#*-------------------------------------------------------------------
3* Biorrefinaria Petrobras
4*--------------------------------------------------------------------
5* Nome do arquivo: absorption_tower.mso
6* Projeto: Modelo integrado de producao de etanol 1G/2G
7* Conteudo: coluna de absorcao
8*--------------------------------------------------------------------*#
9
10#*-------------------------------------------------------------------
11*
12* Versao 2.2
13* Data:    03/2016
14* Autores:   Anderson R. A. Lino e Gabriel C. Fonseca
15*
16*--------------------------------------------------------------------
17*Descricao: modelo da coluna de absorcao que sera empregado
18*na biorrefinaria
19*--------------------------------------------------------------------
20
21*--------------------------------------------------------------------
22*Notas: Foi feito o flowsheet teste para averiguar o modelo
23*--------------------------------------------------------------------*#
24
25using "main_stream";
26
27Model absorption_tower
28       
29        ATTRIBUTES
30        Pallete         = true;
31        Icon            = "icon/absorptionTower";
32        Brief           = "Model of an Absorption Tower";
33        Info =
34"== GENERAL ==
35        Model of an absorption column.
36       
37== ASSUMPTIONS ==
38* Adiabatic;
39* Only the target compound is transfered between streams;
40* Steady-state.
41       
42== SPECIFY ==
43* The inlet Gas:
44  flow rate
45  temperature
46  pressure
47  stream composition;
48* The inlet Liquid:
49  temperature
50  pressure
51  stream composition;
52* The recovery factor;
53* Slope of Equilibrium Curve;
54* Operating Temperaturre and Operating pressure;
55* Ratio between liquid and gas.
56
57== SET ==
58* Phase of the fluid entering the column;
59* Number of stream components(Ncomp/NcompS);
60* The position of the target compound in the compound vector (Target).
61       
62";
63#*-------------------------------------------------------------------
64#Parametros
65*--------------------------------------------------------------------*#
66
67        PARAMETERS
68outer   PP                      as Plugin               (Brief = "External Physical Properties (Fluid Phase)", Type="PP");
69outer   PPS             as Plugin               (Brief = "External Physical Properties (Solid Phase)", Type="PP");
70outer   NComp           as Integer              (Brief = "Number of Chemical Components for the Fluid Phase", Lower = 1);
71outer   NCompS          as Integer              (Brief = "Number of Chemical Components for the Solid Phase", Lower = 1);
72                Target          as Integer              (Brief = "Position of the Target Compound in the Vector", Lower = 1, Default = 1);
73       
74#*-------------------------------------------------------------------
75* Declaracao de variaveis
76*--------------------------------------------------------------------*#
77       
78        VARIABLES
79in      InletG  as main_stream          (Brief="Inlet Gas Stream", PosX=0.15, PosY=0.85, Protected = false, Symbol="_{inG}");
80in      InletL  as main_stream          (Brief="Inlet Liquid Stream", PosX=0.15, PosY=0.15, Protected = false, Symbol="_{inL}");
81out     OutletG as main_stream_eq       (Brief="Outlet Gas Stream", PosX=0.86, PosY=0.15, Protected = false, Symbol="_{outG}");
82out     OutletL as main_stream_eq       (Brief="Outlet Liquid Stream", PosX=0.86, PosY=0.85, Protected = false, Symbol="_{outL}");
83
84        R       as fraction     (Brief = "Recovery Factor");
85        f       as Real                 (Brief = "Ratio Between Liquid and Gas", Lower = 1);
86        T       as temperature  (Brief = "Operating Temperature");
87        P       as pressure     (Brief = "Operating Pressure");
88        m       as Real                 (Brief = "Slope of Equilibrium Curve");
89       
90        SET
91        OutletG.Phase = "Vapour";
92        OutletL.Phase = "Liquid";
93       
94#*-------------------------------------------------------------------
95* Equacoes do modelo
96*--------------------------------------------------------------------*#
97       
98        EQUATIONS
99        "Split Fraction Between Liquid and Gas for the Target"
100        OutletL.Fluid.F = m * InletG.Fluid.F * f;
101       
102        "Global Molar Balance (Fluid Phase)"
103        InletL.Fluid.F + InletG.Fluid.F = OutletL.Fluid.F + OutletG.Fluid.F;
104       
105        for i in [1:NComp] do
106                if i equal Target then
107                        "Component Molar Balance"
108                        InletL.Fluid.F * InletL.Fluid.z(i) + InletG.Fluid.F * InletG.Fluid.z(i) =
109                        OutletL.Fluid.F * OutletL.Fluid.z(i) + OutletG.Fluid.F * OutletG.Fluid.z(i);
110                       
111                        "Component Molar Balance for the Target Compound"
112                        OutletL.Fluid.F * OutletL.Fluid.z(Target) = R * InletG.Fluid.z(Target) * InletG.Fluid.F;
113                else
114                        "Component Molar Balance (Liquid)"
115                        InletL.Fluid.F * InletL.Fluid.z(i) = OutletL.Fluid.F * OutletL.Fluid.z(i);
116                       
117                        "Component Molar Balance (Gas)"
118                        InletG.Fluid.F * InletG.Fluid.z(i) = OutletG.Fluid.F * OutletG.Fluid.z(i);
119                end
120        end
121       
122        "Sum of Molar Fractions"
123        sum(OutletG.Fluid.z) = sum(OutletL.Fluid.z);
124       
125        "Global Molar Balance (Solid Phase)"
126        OutletL.Solid.F = InletL.Solid.F + InletG.Solid.F;
127       
128        if OutletL.Solid.F < 1e-6 * 'kmol/h' then
129                "Component Molar Balance (Solid Phase)"
130                OutletL.Solid.z = InletL.Solid.z;
131        else
132                "Component Molar Balance (Solid Phase)"
133                OutletL.Solid.z * OutletL.Solid.F = InletL.Solid.F * InletL.Solid.z + InletG.Solid.F * InletG.Solid.z;
134        end
135       
136        "No Solid in the Gas Stream"
137        OutletG.Solid.F = 0 * 'kmol/h';
138       
139        "Component Molar Balance (Solid Phase)"
140        OutletG.Solid.z = OutletL.Solid.z;
141       
142        "Thermal Equilibrium 1"
143        OutletL.T = T;
144       
145        "Thermal Equilibrium 2"
146        OutletG.T = T;
147       
148        "Mechanical Equilibrium 1"
149        OutletL.P = P;
150       
151        "Mechanical Equilibrium 2"
152        OutletG.P = P;
153       
154end
155
156FlowSheet teste_absorption_tower
157       
158#*-------------------------------------------------------------------
159#Parametros
160*--------------------------------------------------------------------*#
161               
162        PARAMETERS
163        PP as Plugin    (Brief = "External Physical Properties",
164                Type="PP",
165                Project = "../Flowsheets/v2_2/Fluid_v2_2.vrtherm"
166        );
167        PPS as Plugin   (Brief = "External Physical Properties",
168                Type="PP",
169                Project = "../Flowsheets/v2_2/Solid_v2_2.vrtherm"
170        );
171       
172        NComp   as Integer (Brief = "Number of chemical components in the fluid phase");
173        NCompS  as Integer (Brief = "Number of chemical components in the solid phase");
174       
175#*-------------------------------------------------------------------
176* Define o valor dos parametros declarados no modelo
177*--------------------------------------------------------------------*#
178       
179        SET
180        NComp = PP.NumberOfComponents();
181        NCompS = PPS.NumberOfComponents();
182        S101.ValidPhases = "Vapour-Only";
183        S102.ValidPhases = "Liquid-Only";
184        E101.Target = 5;
185       
186#*-------------------------------------------------------------------
187* Declaracao de dispositivos (ou blocos contendo o modelo)
188*--------------------------------------------------------------------*#
189       
190        DEVICES
191        S101 as main_sourceR;
192        S102 as main_sourceR;
193        E101 as absorption_tower;
194       
195#*-------------------------------------------------------------------
196* Especifica as conexoes entre os modelos
197*--------------------------------------------------------------------*#
198       
199        CONNECTIONS
200        S101.Outlet to E101.InletL;
201        S102.Outlet to E101.InletG;
202       
203#*-------------------------------------------------------------------
204* Especifica variaveis definidas no modelo
205*--------------------------------------------------------------------*#
206       
207        SPECIFY
208        S102.Fluid.F = 10 * 'kmol/h';
209        S102.Solid.F = 0 * 'kmol/h';
210        S102.CompositionOfFluid(1:10) = [0, 0, 0, 0, 0.001, 0, 0, 0, 0, 0.999];
211        S102.CompositionOfFluid(11:NComp) = 0;
212        S102.CompositionOfSolid = [0.431, 0.252, 0.229, 0.028, 0, 0, 0, 0, 0];
213        S102.T = 303.15 * 'K';
214        S102.P = 1 * 'atm';
215       
216        S101.Solid.F = 0 * 'kmol/h';
217        S101.CompositionOfFluid(1) = 1;
218        S101.CompositionOfFluid(2:NComp) = 0;   
219        S101.CompositionOfSolid = [0.431, 0.252, 0.229, 0.028, 0, 0, 0, 0, 0];
220        S101.T = 303.15 * 'K';
221        S101.P = 1 * 'atm';
222       
223        E101.R = 0.95;
224        E101.f = 1.2;
225        E101.T = 303.15 * 'K';
226        E101.P = 1 * 'atm';
227        E101.m = 0.88;
228       
229#*-------------------------------------------------------------------
230* Condicoes iniciais e opcoes de Solver
231*--------------------------------------------------------------------*#
232
233        OPTIONS
234        Dynamic = false;
235end
Note: See TracBrowser for help on using the repository browser.