source: trunk/BioModel/separators/decanter.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: 16.4 KB
Line 
1#*-------------------------------------------------------------------
2* Biorrefinaria Petrobras
3*--------------------------------------------------------------------
4* Nome do arquivo: decanter.mso
5* Projeto: Modelo integrado de producao de etanol 1G/2G
6* Conteudo: decantador
7*--------------------------------------------------------------------*#
8
9#*-------------------------------------------------------------------
10*
11* Versao 2.2
12* Data:    03/2016
13* Autores:   Anderson R. A. Lino e Gabriel C. Fonseca
14*
15*--------------------------------------------------------------------
16*Descricao: modelo do decantador que sera empregado
17*na biorrefinaria
18*--------------------------------------------------------------------
19
20*--------------------------------------------------------------------
21*Notas: Foram feitos 2 flowsheets para averiguar os modelos
22*--------------------------------------------------------------------*#
23
24using "main_stream";
25using "assumptions";
26
27Model decanter
28       
29        ATTRIBUTES
30        Pallete         = true;
31        Icon            = "icon/decanter";
32        Brief           = "Model of a Decanter";
33        Info =
34"== GENERAL ==
35        Model of a simplified Decanter consisting of a split fraction
36        between the solid and the fluid phases.
37       
38== ASSUMPTIONS ==
39* Steady-state;
40
41== SPECIFY ==
42* The inlet stream;
43  flow rate
44  temperature
45  pressure;
46  stream composition;
47* The split fractions for the fluid and solid phases;
48* The Heat Lost;
49* Reaction Space-time.
50
51== SET ==
52* Basic composition (mass or molar);
53* Number of stream components(Ncomp/NcompS);
54* The compounds that participate in the Brix calculation
55        (1 if participates, 0 if not).
56";
57
58#*-------------------------------------------------------------------
59* Declaracao de variaveis
60*--------------------------------------------------------------------*#
61       
62        VARIABLES
63in      Inlet                   as main_stream          (Brief = "Inlet Stream", PosX=0.0, PosY=0.0, Symbol="_{in}", Protected = false);
64out     Sludge                  as main_stream_eq       (Brief = "Sludge Stream", PosX=1.0, PosY=0.3027, Symbol="_{Sludge}", Protected = false);
65out     Clarified               as main_stream_eq       (Brief = "Clarified Stream", PosX=0.507, PosY=1.0, Symbol="_{Clarified}", Protected = false );
66        frac_sol                as fraction                     (Brief = "Solids Separation Efficiency", Symbol = "f_{sol}");
67        frac_liq                as fraction                     (Brief = "Liquid Separation Efficiency", Symbol = "f_{liq}");
68        V                               as volume                       (Brief = "Effective Reactor Volume", Upper = 1e6);
69        reac_time               as positive                     (Brief = "Reaction Space-time or Total Batch Time", Unit = 'h', Lower = 0, Upper = 1e6, Symbol = "\tau");
70        humidity                as fraction                     (Brief = "Fraction of Water in the Sludge");
71        impurity                as fraction                     (Brief = "Fraction of Solids in the Filtrate");
72        Outlet_Brix     as fraction                     (Brief = "Total Soluble Solids", Symbol = "Brix_{out}");
73        Q                               as heat_rate            (Brief = "Heat Lost");
74       
75        SET
76        Sludge.Phase = "Liquid";
77        Clarified.Phase = "Liquid";
78       
79#*-------------------------------------------------------------------
80#Parametros
81*--------------------------------------------------------------------*#
82
83        PARAMETERS
84       
85outer   PP                      as Plugin               (Brief = "External Physical Properties (Fluid Phase)", Type="PP");
86outer   PPS             as Plugin               (Brief = "External Physical Properties (Solid Phase)", Type="PP");
87outer   NComp           as Integer              (Brief = "Number of Chemical Components for the Fluid Phase", Lower = 1);
88outer   NCompS          as Integer              (Brief = "Number of Chemical Components for the Solid Phase", Lower = 1);
89                M(NComp)        as molweight    (Brief = "Component Mol Weight (Fluid Phase), Vector Size = NComp", Protected=true);
90                MS(NCompS)  as molweight        (Brief = "Component Mol Weight (Solid Phase), Vector Size = NCompS", Protected=true);
91outer   flu as ConstituentFluid(Symbol = " ", Protected = true);               
92                Brix(NComp)     as Integer              (Brief = "Flag for the Compound that Enters the Brix Calculation");
93                Density         as dens_mass    (Brief = "Mixture/Solution density");           
94       
95#*-------------------------------------------------------------------
96* Define o valor dos parametros declarados no modelo
97*--------------------------------------------------------------------*#
98
99        SET
100       
101        M   = PP.MolecularWeight();
102        MS   = PPS.MolecularWeight();
103       
104#*-------------------------------------------------------------------
105* Equacoes do modelo
106*--------------------------------------------------------------------*#
107       
108        EQUATIONS
109        "Global Molar Balance (Fluid Phase)"
110        Inlet.Fluid.F = Sludge.Fluid.F + Clarified.Fluid.F;
111       
112        "Partition Factor (Fluid Phase)"
113        Clarified.Fluid.F = Inlet.Fluid.F * frac_liq;
114       
115        "Clarified Stream Composition (Fluid Phase)"
116        Clarified.Fluid.z = Inlet.Fluid.z;
117       
118        "Sludge Stream Composition (Fluid Phase)"
119        Sludge.Fluid.z = Inlet.Fluid.z;
120       
121        "Global Molar Balance (Solid Phase)"
122        Inlet.Solid.F = Sludge.Solid.F + Clarified.Solid.F;
123       
124        "Partition Factor (Solid Phase)"
125        Sludge.Solid.F = Inlet.Solid.F * frac_sol;
126       
127        "Sludge Stream Composition (Solid Phase)"
128        Sludge.Solid.z = Inlet.Solid.z;
129       
130        "Clarified Stream Composition (Solid Phase)"
131        Clarified.Solid.z = Inlet.Solid.z;
132       
133        "Sludge Humidty"
134        Sludge.Total.zw(flu.Water) = humidity;
135       
136        "Liquid Stream Impurities"
137        Clarified.Solid.Fw = impurity * (Clarified.Fluid.Fw + Clarified.Solid.Fw);
138       
139        "Total Soluble Solids"
140        Outlet_Brix = sum(Clarified.Fluid.zw * Brix);
141       
142        "Energy Balance"
143        Sludge.Fluid.F * Sludge.Fluid.h + Sludge.Solid.F * Sludge.Solid.h + Clarified.Fluid.F * Clarified.Fluid.h +
144        Clarified.Solid.F * Clarified.Solid.h + Q = Inlet.Fluid.F * Inlet.Fluid.h + Inlet.Solid.F * Inlet.Solid.h;
145       
146        "Outlet Temperatures"
147        Clarified.T = Sludge.T;
148       
149        "Mechanical Equilibrium 1"
150        Sludge.P = Inlet.P;
151       
152        "Mechanical Equilibrium 2"
153        Clarified.P = Inlet.P;
154       
155        "Reactor Volume"
156        V = Inlet.Total.Fw * reac_time / Density;
157end
158
159
160Model decanter3
161       
162        ATTRIBUTES
163        Pallete         = true;
164        Icon            = "icon/decanter";
165        Brief           = "Model of a Decanter";
166        Info =
167"== GENERAL ==
168        Decanter model used in sugar production, consisting of a
169        fraction divided between the solid and fluid phases and accounting for
170        the sugar lost in the clarified.
171       
172== ASSUMPTIONS ==
173* Steady-state;
174
175== SPECIFY ==
176The inlet stream;
177  flow rate
178  temperature
179  pressure;
180  stream composition;
181* The split fractions for the fluid, water and solid phases;
182* The Heat Lost;
183* Reaction Space-time.
184
185== SET ==
186* Basic composition (mass or molar);
187* Number of stream components(Ncomp/NcompS);
188* The compounds that participate in the Brix calculation
189        (1 if participates, 0 if not).
190";
191
192#*-------------------------------------------------------------------
193* Declaracao de variaveis
194*--------------------------------------------------------------------*#
195       
196        VARIABLES
197in      Inlet                   as main_stream          (Brief = "Inlet Stream", PosX=0.0, PosY=0.0, Symbol="_{in}", Protected = false);
198out     Sludge                  as main_stream          (Brief = "Sludge Stream", PosX=1.0, PosY=0.3027, Symbol="_{Sludge}", Protected = false);
199out     Clarified               as main_stream          (Brief = "Clarified Stream", PosX=0.507, PosY=1.0, Symbol="_{Clarified}", Protected = false );
200        frac_insol              as fraction                     (Brief = "Insoluble Solids Separation Efficiency", Symbol = "f_{insol}");
201        frac_water              as fraction                     (Brief = "Water Separation Efficiency", Symbol = "f_{water}");
202        frac_dec                as fraction                     (Brief = "Other fluid components Separation Efficiency", Symbol = "f_{sol}");
203        V                               as volume                       (Brief = "Effective Reactor Volume", Upper = 1e6);
204        reac_time               as positive                     (Brief = "Reaction Space-time or Total Batch Time", Unit = 'h', Lower = 0, Upper = 1e6, Symbol = "\tau");
205        humidity                as fraction                     (Brief = "Fraction of Water in the Sludge");
206        impurity                as fraction                     (Brief = "Fraction of Solids in the Filtrate");
207        Outlet_Brix     as fraction                     (Brief = "Total Soluble Solids", Symbol = "Brix_{out}");
208        Q                               as heat_rate            (Brief = "Heat Lost");
209       
210#*-------------------------------------------------------------------
211#Parametros
212*--------------------------------------------------------------------*#
213
214        PARAMETERS
215       
216outer   PP                      as Plugin               (Brief = "External Physical Properties (Fluid Phase)", Type="PP");
217outer   PPS             as Plugin               (Brief = "External Physical Properties (Solid Phase)", Type="PP");
218outer   NComp           as Integer              (Brief = "Number of Chemical Components for the Fluid Phase", Lower = 1);
219outer   NCompS          as Integer              (Brief = "Number of Chemical Components for the Solid Phase", Lower = 1);
220                M(NComp)        as molweight    (Brief = "Component Mol Weight (Fluid Phase), Vector Size = NComp", Protected=true);
221                MS(NCompS)  as molweight        (Brief = "Component Mol Weight (Solid Phase), Vector Size = NCompS", Protected=true);
222outer   flu as ConstituentFluid(Symbol = " ", Protected = true);               
223                Brix(NComp)     as Integer              (Brief = "Flag for the Compound that Enters the Brix Calculation");
224                Density         as dens_mass    (Brief = "Mixture/Solution density");           
225       
226#*-------------------------------------------------------------------
227* Define o valor dos parametros declarados no modelo
228*--------------------------------------------------------------------*#
229
230        SET
231       
232        M   = PP.MolecularWeight();
233        MS   = PPS.MolecularWeight();
234       
235#*-------------------------------------------------------------------
236* Equacoes do modelo
237*--------------------------------------------------------------------*#
238       
239        EQUATIONS
240        "Global Molar Balance (Fluid Phase)"
241        Inlet.Fluid.F = Sludge.Fluid.F + Clarified.Fluid.F;
242       
243        for i in [1:NComp] do
244                if i equal flu.Water then
245                        "Component Molar Balance (Fluid Phase)"
246                        Clarified.Fluid.F * Clarified.Fluid.z(i) = Inlet.Fluid.F * Inlet.Fluid.z(i) * frac_water;
247                       
248                        "Component Molar Balance (Fluid Phase)"
249                        Sludge.Fluid.F * Sludge.Fluid.z(i) = Inlet.Fluid.F * Inlet.Fluid.z(i) * (1 - frac_water);
250                else
251                        "Component Molar Balance (Fluid Phase)"
252                        Clarified.Fluid.F * Clarified.Fluid.z(i) = Inlet.Fluid.F * Inlet.Fluid.z(i) * frac_dec;
253                       
254                        "Component Molar Balance (Fluid Phase)"
255                        Sludge.Fluid.F * Sludge.Fluid.z(i) = Inlet.Fluid.F * Inlet.Fluid.z(i) * (1 - frac_dec);
256                end
257        end
258       
259        "Sum of Molar Fractions (Fluid Phase)"
260        sum(Sludge.Fluid.z) = sum(Clarified.Fluid.z);
261       
262        "Global Molar Balance (Solid Phase)"
263        Inlet.Solid.F = Sludge.Solid.F + Clarified.Solid.F;
264       
265        "Solid Separation Efficiency"
266        Sludge.Solid.F = Inlet.Solid.F * frac_insol;
267       
268        "Sludge Stream Composition (Solid Phase)"
269        Sludge.Solid.z = Inlet.Solid.z;
270       
271        "Clarified Stream Composition (Solid Phase)"
272        Clarified.Solid.z = Inlet.Solid.z;
273       
274        "Sludge Molar Enthalpy (Fluid Phase)"
275        Sludge.Fluid.h = PP.LiquidEnthalpy(Sludge.T, Sludge.P, Sludge.Fluid.z);
276       
277        "Clarified Molar Enthalpy (Fluid Phase)"
278        Clarified.Fluid.h = PP.LiquidEnthalpy(Clarified.T, Clarified.P, Clarified.Fluid.z);
279       
280        "Sludge Molar Enthalpy (Solid Phase)"
281        Sludge.Solid.h = PPS.VapourEnthalpy(Sludge.T, Sludge.P, Sludge.Solid.z);
282       
283        "Clarified Molar Enthalpy (Solid Phase)"
284        Clarified.Solid.h = PPS.VapourEnthalpy(Clarified.T, Clarified.P, Clarified.Solid.z);
285       
286        "Energy Balance"
287        Sludge.Fluid.F * Sludge.Fluid.h + Sludge.Solid.F * Sludge.Solid.h + Clarified.Fluid.F * Clarified.Fluid.h +
288        Clarified.Solid.F * Clarified.Solid.h + Q = Inlet.Fluid.F * Inlet.Fluid.h + Inlet.Solid.F * Inlet.Solid.h;
289       
290        "Thermal Equilibrium"
291        Clarified.T = Sludge.T;
292       
293        "FilterCake Vapour Fraction"
294        Sludge.v = Inlet.v;
295       
296        "Filtrate Vapour Fraction"
297        Clarified.v = Inlet.v;
298       
299        "Mechanical Equilibrium 1"
300        Sludge.P = Inlet.P;
301       
302        "Mechanical Equilibrium 2"
303        Clarified.P = Inlet.P;
304       
305        "Sludge Humidty"
306        Sludge.Total.zw(flu.Water) = humidity;
307       
308        "Liquid Stream Impurities"
309        Clarified.Solid.Fw = impurity * (Clarified.Fluid.Fw + Clarified.Solid.Fw);
310       
311        "Total Soluble Solids"
312        Outlet_Brix = sum(Clarified.Fluid.zw * Brix);
313       
314        "Reactor Volume"
315        V = Inlet.Total.Fw * reac_time / Density;
316end
317
318FlowSheet teste_decanter
319       
320#*-------------------------------------------------------------------
321* Declaracao de dispositivos (ou blocos contendo o modelo)
322*--------------------------------------------------------------------*#
323       
324        DEVICES
325        D101 as decanter;
326        S101 as main_sourceR;
327       
328#*-------------------------------------------------------------------
329* Especifica as conexoes entre os modelos
330*--------------------------------------------------------------------*#
331       
332        CONNECTIONS
333        S101.Outlet to D101.Inlet;
334       
335#*-------------------------------------------------------------------
336#Parametros
337*--------------------------------------------------------------------*#
338       
339        PARAMETERS
340        PP as Plugin    (Brief = "External Physical Properties",
341                Type="PP",
342                Project = "../Flowsheets/v2_2/Fluid_v2_2.vrtherm"
343        );
344        PPS as Plugin   (Brief = "External Physical Properties",
345                Type="PP",
346                Project = "../Flowsheets/v2_2/Solid_v2_2.vrtherm"
347        );
348       
349        NComp   as Integer (Brief = "Number of chemical components in the fluid phase");
350        NCompS  as Integer (Brief = "Number of chemical components in the solid phase");
351        flu as ConstituentFluid(Symbol = " ", Protected = true);
352       
353#*-------------------------------------------------------------------
354* Especifica variaveis definidas no modelo
355*--------------------------------------------------------------------*#
356
357        SPECIFY
358        S101.CompositionOfFluid = [0.8, 0.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
359        S101.CompositionOfSolid = [0.4, 0.3, 0.28, 0.02, 0, 0, 0, 0, 0];
360        S101.Fluid.Fw = 50 * 'kg/h';
361        S101.Solid.Fw = 5 * 'kg/h';
362        S101.T = 300.318 * 'K';
363        S101.P = 1 * 'atm';
364       
365        D101.Q = 70 * 'W';
366       
367        D101.frac_sol = 0.6;
368        D101.frac_liq = 0.6;
369        D101.reac_time = 0.1 * 'h';     
370#*-------------------------------------------------------------------
371* Define o valor dos parametros declarados no modelo
372*--------------------------------------------------------------------*#
373
374        SET
375        NComp = PP.NumberOfComponents();
376        NCompS = PPS.NumberOfComponents();
377        S101.CompositionBasis = "Mass";
378       
379        D101.Brix = [0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
380       
381#*-------------------------------------------------------------------
382* Condicoes iniciais e opcoes de Solver
383*--------------------------------------------------------------------*#
384       
385        OPTIONS
386        Dynamic = false;
387
388end
389
390
391FlowSheet teste_decanter3
392       
393#*-------------------------------------------------------------------
394* Declaracao de dispositivos (ou blocos contendo o modelo)
395*--------------------------------------------------------------------*#
396       
397        DEVICES
398        D101 as decanter3;
399        S101 as main_sourceR;
400       
401#*-------------------------------------------------------------------
402* Especifica as conexoes entre os modelos
403*--------------------------------------------------------------------*#
404       
405        CONNECTIONS
406        S101.Outlet to D101.Inlet;
407       
408#*-------------------------------------------------------------------
409#Parametros
410*--------------------------------------------------------------------*#
411       
412        PARAMETERS
413        PP as Plugin    (Brief = "External Physical Properties",
414                Type="PP",
415                Project = "../Flowsheets/v2_2/Fluid_v2_2.vrtherm"
416        );
417        PPS as Plugin   (Brief = "External Physical Properties",
418                Type="PP",
419                Project = "../Flowsheets/v2_2/Solid_v2_2.vrtherm"
420        );
421       
422        NComp   as Integer (Brief = "Number of chemical components in the fluid phase");
423        NCompS  as Integer (Brief = "Number of chemical components in the solid phase");
424        flu as ConstituentFluid(Symbol = " ", Protected = true);
425       
426#*-------------------------------------------------------------------
427* Especifica variaveis definidas no modelo
428*--------------------------------------------------------------------*#
429
430        SPECIFY
431        S101.CompositionOfFluid = [0.8, 0.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
432        S101.CompositionOfSolid = [0.4, 0.3, 0.28, 0.02, 0, 0, 0, 0, 0];
433        S101.Fluid.Fw = 50 * 'kg/h';
434        S101.Solid.Fw = 5 * 'kg/h';
435        S101.T = 300.318 * 'K';
436        S101.P = 1 * 'atm';
437       
438        D101.Q = 70 * 'W';
439       
440        D101.frac_dec = 0.9;
441        D101.frac_insol = 0.9;
442        D101.frac_water = 0.9;
443        #D101.impurity = 0;
444        D101.reac_time = 0.1 * 'h';     
445#*-------------------------------------------------------------------
446* Define o valor dos parametros declarados no modelo
447*--------------------------------------------------------------------*#
448
449        SET
450        NComp = PP.NumberOfComponents();
451        NCompS = PPS.NumberOfComponents();
452        S101.CompositionBasis = "Mass";
453       
454        D101.Brix = [0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
455       
456#*-------------------------------------------------------------------
457* Condicoes iniciais e opcoes de Solver
458*--------------------------------------------------------------------*#
459       
460        OPTIONS
461        Dynamic = false;
462
463end
Note: See TracBrowser for help on using the repository browser.