1 |
REQUIRE "atoms.a4l"; |
2 |
(* => atoms.a4l, measures.a4l, system.a4l, basemodel.a4l *) |
3 |
PROVIDE "Guthrie_costs.a4l"; |
4 |
|
5 |
(* |
6 |
* Guthrie_costs.a4l |
7 |
* by Arthur W. Westerberg |
8 |
* Part of the ASCEND Library |
9 |
* $Date: 1998/06/17 18:45:39 $ |
10 |
* $Revision: 1.2 $ |
11 |
* $Author: mthomas $ |
12 |
* $Source: /afs/cs.cmu.edu/project/ascend/Repository/models/Guthrie_costs.a4l,v $ |
13 |
* |
14 |
* This file is part of the ASCEND Modeling Library. |
15 |
* |
16 |
* Copyright (C) 1994-1998 Carnegie Mellon University |
17 |
* |
18 |
* The ASCEND Modeling Library is free software; you can redistribute |
19 |
* it and/or modify it under the terms of the GNU General Public |
20 |
* License as published by the Free Software Foundation; either |
21 |
* version 2 of the License, or (at your option) any later version. |
22 |
* |
23 |
* The ASCEND Modeling Library is distributed in hope that it |
24 |
* will be useful, but WITHOUT ANY WARRANTY; without even the implied |
25 |
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
26 |
* See the GNU General Public License for more details. |
27 |
* |
28 |
* You should have received a copy of the GNU General Public License |
29 |
* along with the program; if not, write to the Free Software |
30 |
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139 USA. Check |
31 |
* the file named COPYING. |
32 |
*) |
33 |
|
34 |
|
35 |
MODEL cost_info_pressure_vessel; |
36 |
|
37 |
MandSindex,Fp,Fm,Fc IS_A factor; |
38 |
|
39 |
Fc = Fp*Fm; |
40 |
|
41 |
|
42 |
(* |
43 |
|
44 |
Marshall and Swift FOR May 1994 - 990.8 |
45 |
|
46 |
pressure factor Fp |
47 |
|
48 |
P up to 50psig 100 200 300 400 500 |
49 |
Fp 1.00 1.05 1.15 1.20 1.35 1.45 |
50 |
|
51 |
P 600 700 800 900 1000 |
52 |
Fp 1.60 1.80 1.90 2.30 2.50 |
53 |
|
54 |
|
55 |
material factor Fm |
56 |
|
57 |
material CS SS Monel Titanium |
58 |
Fm,clad 1.00 2.25 3.89 4.25 |
59 |
Fm,solid 1.00 3.67 6.34 7.89 |
60 |
|
61 |
*) |
62 |
|
63 |
|
64 |
METHODS |
65 |
|
66 |
METHOD clear; |
67 |
MandSindex.fixed := FALSE; |
68 |
Fc.fixed := FALSE; |
69 |
Fm.fixed := FALSE; |
70 |
Fp.fixed := FALSE; |
71 |
END clear; |
72 |
|
73 |
METHOD specify; |
74 |
MandSindex.fixed := TRUE; |
75 |
Fm.fixed := TRUE; |
76 |
Fp.fixed := TRUE; |
77 |
END specify; |
78 |
|
79 |
METHOD reset; |
80 |
RUN clear; |
81 |
RUN specify; |
82 |
END reset; |
83 |
|
84 |
END cost_info_pressure_vessel; |
85 |
|
86 |
|
87 |
MODEL Guthrie_cost_pressure_vessel; |
88 |
|
89 |
ci IS_A cost_info_pressure_vessel; |
90 |
installed_cost IS_A monetary_unit; |
91 |
D,H IS_A distance; |
92 |
|
93 |
installed_cost = (ci.MandSindex/280)*101.9{USD}*(D/1{ft})^1.066 |
94 |
*(H/1{ft})^0.802*(2.18+ci.Fc); |
95 |
|
96 |
|
97 |
METHODS |
98 |
METHOD clear; |
99 |
RUN ci.clear; |
100 |
installed_cost.fixed := FALSE; |
101 |
D.fixed := FALSE; |
102 |
H.fixed := FALSE; |
103 |
END clear; |
104 |
|
105 |
METHOD specify; |
106 |
RUN ci.specify; |
107 |
D.fixed := TRUE; |
108 |
H.fixed := TRUE; |
109 |
END specify; |
110 |
|
111 |
METHOD reset; |
112 |
RUN clear; |
113 |
RUN specify; |
114 |
END reset; |
115 |
|
116 |
END Guthrie_cost_pressure_vessel; |
117 |
|
118 |
MODEL simple_pressure_vessel_cost; |
119 |
|
120 |
gc IS_A Guthrie_cost_pressure_vessel; |
121 |
installed_cost IS_A monetary_unit; |
122 |
cc IS_A circle_constant; |
123 |
liq_holdup_time IS_A time; |
124 |
vol_flow IS_A volume_rate; |
125 |
volume IS_A volume; |
126 |
H_to_D IS_A factor; |
127 |
D,H IS_A distance; |
128 |
|
129 |
gc.D,D ARE_THE_SAME; |
130 |
gc.H,H ARE_THE_SAME; |
131 |
gc.installed_cost, |
132 |
installed_cost ARE_THE_SAME; |
133 |
|
134 |
|
135 |
|
136 |
volume = vol_flow*liq_holdup_time; |
137 |
volume = cc*D^2/4.0*H; |
138 |
H = H_to_D*D; |
139 |
|
140 |
METHODS |
141 |
|
142 |
METHOD clear; |
143 |
RUN gc.clear; |
144 |
liq_holdup_time.fixed := FALSE; |
145 |
vol_flow.fixed := FALSE; |
146 |
volume.fixed := FALSE; |
147 |
H_to_D.fixed := FALSE; |
148 |
END clear; |
149 |
|
150 |
METHOD specify; |
151 |
RUN gc.specify; |
152 |
D.fixed := FALSE; |
153 |
H.fixed := FALSE; |
154 |
vol_flow.fixed := TRUE; |
155 |
liq_holdup_time.fixed := TRUE; |
156 |
H_to_D.fixed := TRUE; |
157 |
END specify; |
158 |
|
159 |
METHOD reset; |
160 |
RUN clear; |
161 |
RUN specify; |
162 |
END reset; |
163 |
|
164 |
END simple_pressure_vessel_cost; |