119 |
(* turbine conditions *) |
(* turbine conditions *) |
120 |
FIX TU1.inlet.p; TU1.inlet.p := 150 {bar}; |
FIX TU1.inlet.p; TU1.inlet.p := 150 {bar}; |
121 |
FIX TU1.inlet.T; TU1.inlet.T := 580 {K} + 273.15 {K}; |
FIX TU1.inlet.T; TU1.inlet.T := 580 {K} + 273.15 {K}; |
122 |
FIX TU1.outlet.p; TU1.outlet.p := 7 {bar}; |
FIX TU1.outlet.p; TU1.outlet.p := 10.3 {bar}; |
123 |
FIX CO.outlet.T; CO.outlet.T := 40 {K} + 273.15 {K}; |
FIX CO.outlet.T; CO.outlet.T := 40 {K} + 273.15 {K}; |
124 |
(* heater conditions *) |
(* heater conditions *) |
125 |
TU2.outlet.p := 10 {kPa}; |
TU2.outlet.p := 10 {kPa}; |
136 |
OPTION convopt 'RELNOM_SCALE'; |
OPTION convopt 'RELNOM_SCALE'; |
137 |
OPTION iterationlimit 400; |
OPTION iterationlimit 400; |
138 |
END on_load; |
END on_load; |
139 |
METHOD set_x_limit; |
METHOD set_x_limit_correct_turb; |
140 |
FREE PU2.outlet.p; |
FREE PU2.outlet.p; |
141 |
PU2.outlet.p.upper_bound := 150 {bar}; |
PU2.outlet.p.upper_bound := 150 {bar}; |
142 |
FIX TU2.outlet.x; TU2.outlet.x := 0.9; |
FIX TU2.outlet.x; TU2.outlet.x := 0.9; |
143 |
|
(* a little corrctn to ensure we're comparing the same *overall* turbine eff *) |
144 |
|
FREE TU1.eta; |
145 |
|
TU2.eta := 0.823; |
146 |
|
FIX eta_turb_tot; eta_turb_tot := 0.85; |
147 |
END set_x_limit; |
END set_x_limit; |
148 |
METHOD cycle_plot; |
METHOD cycle_plot; |
149 |
EXTERNAL cycle_plot_rankine_regen2(SELF); |
EXTERNAL cycle_plot_rankine_regen2(SELF); |
302 |
Wdot IS_A energy_rate; |
Wdot IS_A energy_rate; |
303 |
Wdot_eq: Wdot = TU.Wdot + PU.Wdot; |
Wdot_eq: Wdot = TU.Wdot + PU.Wdot; |
304 |
|
|
305 |
|
T_ci ALIASES HE.inlet.T; |
306 |
|
T_co ALIASES HE.outlet.T; |
307 |
|
T_hi ALIASES HE.inlet_heat.T; |
308 |
|
T_ho ALIASES HE.outlet_heat.T; |
309 |
|
|
310 |
DE_cycle "cycle energy balance, should be zero" IS_A energy_rate; |
DE_cycle "cycle energy balance, should be zero" IS_A energy_rate; |
311 |
DE_cycle = BO.Qdot + CO.Qdot - TU.Wdot - PU.Wdot; |
DE_cycle = BO.Qdot + CO.Qdot - TU.Wdot - PU.Wdot; |
312 |
|
|
324 |
METHOD cycle_plot; |
METHOD cycle_plot; |
325 |
EXTERNAL cycle_plot_rankine_regen1(SELF); |
EXTERNAL cycle_plot_rankine_regen1(SELF); |
326 |
END cycle_plot; |
END cycle_plot; |
327 |
|
METHOD heater_plot; |
328 |
|
EXTERNAL heater_closed_plot(SELF); |
329 |
|
END cycle_plot; |
330 |
END rankine_regen_common; |
END rankine_regen_common; |
331 |
|
|
332 |
|
|
333 |
MODEL rankine_regen_toluene REFINES rankine_regen_common; |
MODEL rankine_regen_toluene REFINES rankine_regen_common; |
|
|
|
334 |
BO.cd.component :== 'toluene'; |
BO.cd.component :== 'toluene'; |
|
|
|
335 |
METHODS |
METHODS |
336 |
METHOD on_load; |
METHOD on_load; |
337 |
FIX BO.outlet.T; BO.outlet.T := 580 {K} + 273.15 {K}; |
FIX BO.outlet.T; BO.outlet.T := 580 {K} + 273.15 {K}; |
338 |
FIX PU.outlet.p; PU.outlet.p := 150 {bar}; |
FIX PU.outlet.p; PU.outlet.p := 150 {bar}; |
339 |
FIX CO.outlet.T; CO.outlet.T := 40 {K} + 273.15 {K}; |
FIX CO.outlet.T; CO.outlet.T := 40 {K} + 273.15 {K}; |
340 |
FIX CO.outlet.x; CO.outlet.x := 1e-6; |
FIX CO.outlet.x; CO.outlet.x := 1e-6; |
341 |
FIX HE.outlet.T; HE.outlet.T := 300 {K} + 273.15 {K}; |
FIX HE.outlet.T; HE.outlet.T := 307 {K} + 273.15 {K}; |
342 |
|
|
343 |
FIX BO.eta; BO.eta := 1.0; |
FIX BO.eta; BO.eta := 1.0; |
344 |
FIX TU.eta; TU.eta := 0.85; |
FIX TU.eta; TU.eta := 0.85; |
358 |
END rankine_regen_toluene; |
END rankine_regen_toluene; |
359 |
|
|
360 |
|
|
361 |
|
MODEL rankine_regen_ammonia REFINES rankine_regen_common; |
362 |
|
BO.cd.component :== 'ammonia'; |
363 |
|
METHODS |
364 |
|
METHOD on_load; |
365 |
|
FIX BO.outlet.T; BO.outlet.T := 580 {K} + 273.15 {K}; |
366 |
|
FIX PU.outlet.p; PU.outlet.p := 150 {bar}; |
367 |
|
FIX CO.outlet.T; CO.outlet.T := 40 {K} + 273.15 {K}; |
368 |
|
FIX CO.outlet.x; CO.outlet.x := 1e-6; |
369 |
|
FIX HE.outlet.T; HE.outlet.T := 150.1 {K} + 273.15 {K}; |
370 |
|
|
371 |
|
FIX BO.eta; BO.eta := 1.0; |
372 |
|
FIX TU.eta; TU.eta := 0.85; |
373 |
|
FIX PU.eta; PU.eta := 0.8; |
374 |
|
|
375 |
|
SOLVER QRSlv; |
376 |
|
OPTION convopt 'RELNOM_SCALE'; |
377 |
|
OPTION iterationlimit 200; |
378 |
|
END on_load; |
379 |
|
METHOD default_self; |
380 |
|
RUN rankine_regen_common::default_self; |
381 |
|
PU.inlet.h := 400 {kJ/kg}; |
382 |
|
BO.outlet.h := 400 {kJ/kg}; |
383 |
|
CO.outlet.h := 400 {kJ/kg}; |
384 |
|
CO.outlet.p := 10 {kPa}; |
385 |
|
END default_self; |
386 |
|
END rankine_regen_ammonia; |
387 |
|
|
388 |
|
|
389 |
|
|