source: trunk/sample/processes/Sample_Process.mso @ 632

Last change on this file since 632 was 632, checked in by gerson bicca, 14 years ago

updates

  • Property svn:executable set to *
File size: 3.5 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", "acetic anhydride", "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_source; # Cold Supplied
59SET
60
61        NComp                                   = PP.NumberOfComponents;
62        Mheater.Nhot            = 1;
63    Mheater.Ncold               = 1;
64        Heater.Kvalues                  = "no";# Faster convergence
65        Cooler.Kvalues                  = "no";# Faster convergence
66        Mheater.FlowDirection   = "counter";
67       
68        Reac.NDisc      = 10;
69        Reac.Across = 0.7 * 'in^2';
70        Reac.L          = 2.28 * 'm';
71        Reac.NReac      = 1;
72
73# Reaction 1: A -> B + C
74        Reac.stoic(:,1) = [-1, 1, 1];
75
76EQUATIONS
77
78for z in [1:Reac.NDisc]
79       
80"Reaction Rate = k*C(1)"
81        Reac.r(1,z)  = exp(34.34 - (34222 * 'K') / Reac.str(z).T)*'1/s' * Reac.C(1,z);
82
83"Heat of reaction"
84        Reac.Hr(1,z) = -80.77 * 'kJ/mol';
85
86"Pressure Drop (no pressure drop)"
87        Reac.str(z+1).P = Reac.str(z).P;
88
89end
90
91SPECIFY
92
93        Feed.F = 1 * 'kmol/h';
94        Feed.T = 350 * 'K';
95        Feed.P = 1.6  * 'atm';
96        Feed.MolarComposition = [1, 0, 0];
97
98        Mheater.Method.Fc               = 1;
99        Mheater.OutletCold(1).T         = 400*'K';
100       
101        Mheater.OutletHot(1).P          = 1.5 * 'atm';
102        Mheater.OutletCold(1).P         = 1.6 * 'atm';
103
104        Heater.Outlet.T         = 1035*'K';
105        Heater.Outlet.P         =  1.6 * 'atm';
106       
107        Cooler.Outlet.T         = 400*'K';
108        Cooler.Outlet.P         =  1.5 * 'atm';
109
110        Reac.q                  = 0     * 'J/s';
111
112CONNECTIONS
113
114        Feed.Outlet                             to  Mheater.InletCold(1);
115        Mheater.OutletCold(1)           to  Heater.Inlet;
116        Heater.Outlet                           to  Reac.Inlet;
117        Reac.Outlet                             to  Mheater.InletHot(1);
118        Mheater.OutletHot(1)            to  Cooler.Inlet;
119        Cooler.Outlet                           to  Product.Inlet;
120        Heat_1.OutletQ.Q                                to Heater.Heat.Q;
121        Cold_2.OutletQ.Q                                to Cooler.Heat.Q;
122
123INITIAL
124
125for z in [2:Reac.NDisc+1]
126       
127        Reac.str(z).T = Reac.Inlet.T;
128        Reac.str(z).z(1:NComp-1) = Reac.Inlet.z(1:NComp-1);
129
130end
131
132OPTIONS
133        TimeStep        = 0.05;
134        TimeEnd         = 10;
135        Dynamic = true;
136        DAESolver(
137                File = "dasslc",
138                RelativeAccuracy = 1e-4
139        );
140end
Note: See TracBrowser for help on using the repository browser.