/[ascend]/trunk/models/sonic.a4c
ViewVC logotype

Contents of /trunk/models/sonic.a4c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (show annotations) (download) (as text)
Fri Oct 29 20:54:12 2004 UTC (15 years, 5 months ago) by aw0a
File MIME type: text/x-ascend
File size: 4014 byte(s)
Setting up web subdirectory in repository
1 REQUIRE "atoms.a4l";
2 (* => atoms.a4l, measures.a4l, system.a4l, basemodel.a4l *)
3 PROVIDE "sonic.a4c";
4 (*
5 * This file is part of the ASCEND Modeling Library and is released
6 * under the GNU Public License as described at the end of this file.
7 *
8 * Use of this module is demonstrated by the associated script file
9 * sonic.a4s.
10 *)
11
12 (*
13 Ascend model of the Adiabatic compressible flow example presented by
14 Zaher -- Conditional Modeling. Ph.D. Thesis, Carnegie Mellon University,
15 Pittsburgh, PA, 15213. 1995 --. The problem represents the flow of a
16 compressible gas in a circular pipe of constant diameter. There is a
17 disjunctive statement which represents whether the flow is sonic or
18 subsonic. It represent a problem which we can represent as a conditional
19 model and solve with the ascend conditional solver CMSlv.
20
21 This model requires:
22 "system.a4l"
23 "atoms.a4l"
24 *)
25
26 (* ************************************************* *)
27
28 MODEL sonic;
29
30 Pi IS_A pressure;
31 Pf IS_A pressure;
32 Pd IS_A pressure;
33 Ti IS_A temperature;
34 Tf IS_A temperature;
35 Mi IS_A fraction;
36 Mf IS_A fraction;
37 D IS_A distance;
38 F IS_A molar_rate;
39 friction IS_A factor;
40 gamma IS_A factor;
41 mw IS_A molar_mass;
42 L IS_A distance;
43 R IS_A gas_constant;
44 Pifac IS_A factor;
45 sonic_flow IS_A boolean_var;
46
47 (* boundary *)
48 CONDITIONAL
49 cond: (Pd - Pf) * 1.0 {atm^-1} <= Mf - 1.0;
50 END CONDITIONAL;
51
52 sonic_flow == SATISFIED(cond,1e-08);
53
54 (* Variant Equations *)
55
56 not_sonic: Pf = Pd;
57 sonic: Mf = 1.0;
58
59 (* Disjunctive statement *)
60
61 WHEN (sonic_flow)
62 CASE TRUE:
63 USE sonic;
64 CASE FALSE:
65 USE not_sonic;
66 END WHEN;
67
68 (* Invariant Equations *)
69
70 R * F * Ti / Pi = Pifac * (D^2) * Mi/4.0 * (gamma * R *Ti/mw)^(1/2);
71 R * F * Tf / Pf = Pifac * (D^2) * Mf/4.0 * (gamma * R *Tf/mw)^(1/2);
72 Tf/Ti = (1 + 0.5*(gamma-1)*(Mi^2))/(1 + 0.5*(gamma-1)*(Mf^2));
73
74 1/(Mi^2) - 1/(Mf^2) - 4*gamma*friction*L/D = 0.5*(gamma+1)*
75 ln( ((Mf^2)*(1 + 0.5*(gamma-1)*(Mi^2)))/
76 ((Mi^2)*(1 + 0.5*(gamma-1)*(Mf^2))) );
77
78 METHODS
79
80 METHOD default_self;
81 END default_self;
82
83 METHOD specify;
84 friction.fixed := TRUE;
85 gamma.fixed := TRUE;
86 mw.fixed := TRUE;
87 L.fixed := TRUE;
88 Ti.fixed := TRUE;
89 Pi.fixed := TRUE;
90 Pd.fixed := TRUE;
91 D.fixed := TRUE;
92 Pifac.fixed := TRUE;
93 END specify;
94
95 METHOD values;
96 (* fixed values*)
97 friction := 0.01;
98 gamma := 1.292;
99 mw := 16 {g/g_mole};
100 L := 1 {m};
101 Ti := 300.0 {K};
102 Pi := 10.0 {atm};
103 Pd := 5.0 {atm};
104 D := 5.0 {cm}; (* boundary is 4.08844 {cm} *)
105 Pifac := 3.14159;
106 (* initial values *)
107 Mi := 0.5;
108 Mf := 0.5;
109 Tf := 300.0 {K};
110 Pf := 5.0 {atm};
111 F := 200.0 {g_mole/s};
112
113 (* initial boolean value *)
114 sonic_flow := SATISFIED(cond,1e-08);
115 END values;
116
117 END sonic;
118
119
120 (*
121 * sonic.a4c
122 * by Vicente Rico-Ramirez
123 * April 10, 1998
124 * Part of the ASCEND Library
125 * $Date: 1998/06/17 19:15:06 $
126 * $Revision: 1.3 $
127 * $Author: mthomas $
128 * $Source: /afs/cs.cmu.edu/project/ascend/Repository/models/sonic.a4c,v $
129 *
130 * This file is part of the ASCEND Modeling Library.
131 *
132 * Copyright (C) 1998 Carnegie Mellon University
133 *
134 * The ASCEND Modeling Library is free software; you can redistribute
135 * it and/or modify it under the terms of the GNU General Public
136 * License as published by the Free Software Foundation; either
137 * version 2 of the License, or (at your option) any later version.
138 *
139 * The ASCEND Modeling Library is distributed in hope that it will be
140 * useful, but WITHOUT ANY WARRANTY; without even the implied
141 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
142 * See the GNU General Public License for more details.
143 *
144 * You should have received a copy of the GNU General Public License
145 * along with the program; if not, write to the Free Software
146 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139 USA. Check
147 * the file named COPYING.
148 *)

john.pye@anu.edu.au
ViewVC Help
Powered by ViewVC 1.1.22