1 |
REQUIRE "johnpye/iapws95.a4c"; |
2 |
REQUIRE "johnpye/iapws_sat_curves.a4c"; |
3 |
|
4 |
MODEL absorber; |
5 |
(* assumptions: |
6 |
outlet is saturated steam |
7 |
inlet is saturated water at the specified pressure |
8 |
no pressure drop |
9 |
no temperature change |
10 |
all Q is absorbed by water |
11 |
steam generation is constant along length as mass rate, so x rises linearly. |
12 |
*) |
13 |
S_out IS_A iapws95_2phase; (* outlet steam state *) |
14 |
sat IS_A iapws_sat_density; |
15 |
T ALIASES S_out.T; |
16 |
T,sat.T ARE_THE_SAME; |
17 |
rho_gas ALIASES S_out.rho; |
18 |
rho_gas, sat.rhog ARE_THE_SAME; |
19 |
|
20 |
p ALIASES S_out.p; |
21 |
|
22 |
mdot_water_in IS_A mass_rate; |
23 |
mdot_water_out IS_A mass_rate; |
24 |
mdot_gas_out IS_A mass_rate; |
25 |
Vdot_gas_out IS_A volume_rate; |
26 |
|
27 |
m_water IS_A mass; |
28 |
m_gas IS_A mass; |
29 |
|
30 |
Q IS_A energy_rate; (* heat absorbed *) |
31 |
|
32 |
(* assume saturated water at inlet, so any heat added immediately creates some steam *) |
33 |
Hdot_in IS_A energy_rate; |
34 |
Hdot_out IS_A energy_rate; |
35 |
h_water IS_A specific_enthalpy; |
36 |
z01: h_water = 400 {kJ/kg} + p / (1000 {kg/m^3}); |
37 |
|
38 |
z02: Hdot_in = mdot_water_in * h_water; |
39 |
z03: Hdot_out = mdot_water_out * h_water + mdot_gas_out * S_out.h; |
40 |
|
41 |
(* 1st law thermo *) |
42 |
z04: Q = Hdot_out - Hdot_in; |
43 |
|
44 |
(* mass conservation *) |
45 |
z05: mdot_water_in = mdot_water_out + mdot_gas_out; |
46 |
|
47 |
x_exit IS_A fraction; |
48 |
z06: x_exit * mdot_water_in = mdot_gas_out; |
49 |
|
50 |
(* assume that steam evolves linearly along length, so average x allow mass of water to be calculated *) |
51 |
x IS_A fraction; |
52 |
z07: x = (0 + x_exit)/2; |
53 |
|
54 |
(* assuming a slip-ratio of 1, we can get the average void ratio, eq 2.13 from Behnia *) |
55 |
alpha IS_A fraction; |
56 |
z08: alpha * S_out.rho * (1-x) = 1000{kg/m^3} * x * (1-alpha); |
57 |
|
58 |
z09: m_water = 1000{kg/m^3} * (1-alpha)*V_total; |
59 |
z10: m_gas = S_out.rho * alpha*V_total; |
60 |
|
61 |
z11: Vdot_gas_out = mdot_gas_out / rho_gas; |
62 |
V_total IS_A volume; |
63 |
|
64 |
METHODS |
65 |
METHOD default_self; |
66 |
RUN reset; |
67 |
RUN values; |
68 |
END default_self; |
69 |
METHOD specify; |
70 |
FIX V_total, mdot_water_in, Q, p; |
71 |
END specify; |
72 |
METHOD values; |
73 |
V_total := 300{m} * 16 * 1{PI}*( 40{mm} )^2; |
74 |
mdot_water_in := 0.4 {kg/s}; |
75 |
Q := 1000 {W/m^2} * 27(*concentration*) * 500{mm} * 60{m}; |
76 |
p := 5 {bar}; |
77 |
END values; |
78 |
|
79 |
END absorber; |