source: branches/gui/sample/processes/Sample_Process.mso @ 941

Last change on this file since 941 was 941, checked in by mamuller, 11 years ago

updated samples

  • Property svn:executable set to *
File size: 3.6 KB
Line 
1#*-------------------------------------------------------------------
2* EMSO Model Library (EML) Copyright (C) 2004 - 2007 ALSOC.
3*
4* This LIBRARY is free software; you can distribute it and/or modify
5* it under the therms of the ALSOC FREE LICENSE as available at
6* http://www.enq.ufrgs.br/alsoc.
7*
8* EMSO Copyright (C) 2004 - 2007 ALSOC, original code
9* from http://www.rps.eng.br Copyright (C) 2002-2004.
10* All rights reserved.
11*
12* EMSO is distributed under the therms of the ALSOC LICENSE as
13* available at http://www.enq.ufrgs.br/alsoc.
14*
15*--------------------------------------------------------------------
16* EMSO Sample file showing an Adiabatic Production of Acetic Anhydride with a PFR and recycle
17*
18*
19* Based on Example 8-6 of Elements of Chemical Reaction Engineering
20* Second Edition H. Scott Fogler
21*
22*
23*--------------------------------------------------------------------
24*
25* This sample file needs VRTherm (www.vrtech.com.br) to run.
26*
27*----------------------------------------------------------------------
28* Author: Rafael de P. Soares
29*         Paula B. Staudt
30*               Gerson B. Bicca
31* $Id: sample_process.mso 213 2007-03-15 19:40:55Z rafael $
32*--------------------------------------------------------------------*#
33using "heat_exchangers/heater";
34using "heat_exchangers/Mheatex";
35using "reactors/pfr";
36
37FlowSheet AceticAnhydride_Process
38       
39PARAMETERS
40
41        PP              as Plugin (Brief="Physical Properties",
42                Type = "PP",
43                Components = ["acetone", "ketene", "methane"],
44                LiquidModel = "PR",
45                VapourModel = "PR"
46        );
47        NComp   as Integer;
48
49DEVICES
50
51        Feed                    as simple_source;               # A Feed Stream
52        Mheater                 as Mheatex;     # A Multi-stream Heat Exchanger
53        Cooler                  as cooler;              # A Cooler
54        Heater                  as heater;              # A heater
55        Reac                    as pfr;                         # A PFR Reactor
56        Product                 as sink;                        # Product
57        Heat_1                  as energy_source; # Heat Supplied
58        Cold_2                  as energy_sink; # Cold Supplied
59SET
60
61        NComp                                   = PP.NumberOfComponents;
62        Mheater.Nhot            = 1;
63    Mheater.Ncold               = 1;
64       
65        Heater.Kvalues                  = "no";# Faster convergence
66        Cooler.Kvalues                  = "no";# Faster convergence
67        Mheater.FlowDirection   = "counter";
68       
69        Reac.NDisc      = 10;
70        Reac.Across = 0.56 * 'm^2';
71        Reac.L          = 2.28 * 'm';
72        Reac.NReac      = 1;
73
74# Reaction 1: A -> B + C
75        Reac.stoic(:,1) = [-1, 1, 1];
76
77EQUATIONS
78
79for z in [1:Reac.NDisc] do
80       
81"Reaction Rate = k*C(1)"
82        Reac.r(1,z)  = exp(34.34 - (34222 * 'K') / Reac.str(z).T)*'1/s' * Reac.C(1,z);
83
84"Heat of reaction"
85        Reac.Hr(1,z) = -80.77 * 'kJ/mol';
86
87"Pressure Drop (no pressure drop)"
88        Reac.str(z+1).P = Reac.str(z).P;
89
90end
91
92SPECIFY
93
94        Feed.F = 137.9 * 'kmol/h';
95        Feed.T = 350 * 'K';
96        Feed.P = 1.6  * 'atm';
97        Feed.MolarComposition = [1, 0, 0];
98
99        Mheater.Method.Fc               = 1;
100        Mheater.OutletCold(1).T         = 400*'K';
101       
102        Mheater.OutletHot(1).P          = 1.5 * 'atm';
103        Mheater.OutletCold(1).P         = 1.6 * 'atm';
104
105        Heater.Outlet.T         = 1035*'K';
106        Heater.Outlet.P         =  1.6 * 'atm';
107       
108        Cooler.Outlet.T         = 400*'K';
109        Cooler.Outlet.P         =  1.5 * 'atm';
110
111        Reac.q                  = 0     * 'J/s';
112
113CONNECTIONS
114
115        Feed.Outlet                             to  Mheater.InletCold(1);
116        Mheater.OutletCold(1)           to  Heater.Inlet;
117        Heater.Outlet                           to  Reac.Inlet;
118        Reac.Outlet                             to  Mheater.InletHot(1);
119        Mheater.OutletHot(1)            to  Cooler.Inlet;
120        Cooler.Outlet                           to  Product.Inlet;
121        Heat_1.OutletQ                          to Heater.Heat;
122        Cooler.Heat                                     to Cold_2.InletQ;
123
124INITIAL
125
126for z in [2:Reac.NDisc+1] do
127       
128        Reac.str(z).T = Reac.Inlet.T;
129        Reac.str(z).z(1:NComp) = Reac.Inlet.z(1:NComp);
130
131end
132
133OPTIONS
134        TimeStep        = 0.01;
135        TimeEnd         = 1;
136        Dynamic = true;
137        DAESolver(
138                File = "dasslc",
139                RelativeAccuracy = 1e-4
140        );
141end
Note: See TracBrowser for help on using the repository browser.