source: trunk/sample/estimation/BatchReactor.mso @ 1004

Last change on this file since 1004 was 456, checked in by Argimiro Resende Secchi, 15 years ago

Adding new samples for estimation (Tiago).

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 2.2 KB
Line 
1
2using "types";
3
4#*
5* Batch Reactor model based on gPROMS sample
6*#
7Model BatchReactor
8        PARAMETERS
9        Density(4) as dens_mol(Brief="Component Densities");
10        Ac(4) as Real(Brief="Specific enthalpy coeficient A", Unit='J/mol/K');
11        Bc(4) as Real(Brief="Specific enthalpy coeficient B", Unit='J/mol/K/K');
12       
13        k0 as Real(Brief="Arrenius constant", Unit='m^3/s/mol');
14        Ea as Real(Brief="Activation energy", Unit='J/mol');
15        Hr as Real(Brief="Reaction enthalpy", Unit='J/mol');
16       
17        Nu(4) as Real(Brief="Stoichiometric coefficients");
18        R as Real(Brief="Ideal gas constant", Default=8.314, Unit='J/K/mol');
19        Tref as temperature(Brief="Reference temperature", Default=298);
20
21        VARIABLES
22        Holdup(4) as mol;
23        C(4) as conc_mol;
24        TotalVolume as volume;
25        ReactionRate as Real(Unit='mol/m^3/s');
26        ReactionConstant as Real(Unit='m^3/s/mol');
27        TotalH as energy;
28        H(4) as energy_mol;
29        T as temperature;
30        Q as power;
31
32        EQUATIONS
33        "Mass balance"
34        diff(Holdup) = Nu*ReactionRate*TotalVolume;
35
36        "Energy balance"
37        diff(TotalH) = ReactionRate*TotalVolume*(-Hr) + Q;
38
39        "Reaction rate"
40        ReactionRate = ReactionConstant*C(1)*C(2);
41       
42        "Reaction constant"
43        ReactionConstant = k0 * exp(-Ea/(R*T));
44
45        "Concentrations"
46        Holdup = C * TotalVolume ;
47        TotalVolume = sum(Holdup/Density) ;
48        "Reactor energy content"
49        TotalH = sum(Holdup*H) ;
50        H = Ac * ( T - Tref ) + Bc * ( T^2 - Tref^2 ) / 2 ;
51end
52
53FlowSheet BatchProcess as BatchReactor
54        SET
55        Density = [ 10.0E3, 8.0E3, 11.0E3, 11.0E3 ] * 'mol/m^3' ;
56        Ac = [ 150.0, 175.0, 200.0, 175.0 ] * 'J/mol/K';
57        Bc = [ 0.0, 0.0, 0.0, 0.0 ] * 'J/mol/K/K' ;
58        Nu = [ -1, -1, +1, +1 ] ;
59       
60        k0 = 5E-4 * 'm^3/s/mol';
61        Ea = 15000.0 * 'J/mol';
62        Hr = 55000.0 * 'J/mol';
63       
64        SPECIFY
65        Q = 505e3 * 'W';
66       
67        INITIAL
68    Holdup = [100.0, 100.0, 1.0, 1.0 ] * 'mol';
69    T = 293.0 * 'K';
70       
71end
72
73Estimation BatchEst as BatchProcess
74        ESTIMATE
75        # PARAMETER  START     LOWER     UPPER     UNIT
76        k0           0.0008    0.0001    0.0010    'm^3/s/mol';
77        Ea           12000     10000     20000     'J/mol';
78        Hr           50000     35000     75000     'J/mol';
79
80        EXPERIMENTS
81        # DATA FILE             WEIGTH
82        "BatchReactor.dat"      1;
83       
84        OPTIONS
85       
86        NLPSolver(
87                MaxIterations = 1000,
88                File = "complex"
89                #File = "ipopt_emso"
90        );
91end
Note: See TracBrowser for help on using the repository browser.