/[ascend]/trunk/models/johnpye/rankine.a4c
ViewVC logotype

Contents of /trunk/models/johnpye/rankine.a4c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1775 - (show annotations) (download) (as text)
Wed May 21 09:51:59 2008 UTC (14 years, 4 months ago) by jpye
File MIME type: text/x-ascend
File size: 15471 byte(s)
Silenced som runtime debug output for datareader and solver.
Added first shot at canvas gui code using Gaphas.
1 REQUIRE "atoms.a4l";
2 REQUIRE "johnpye/thermo_types.a4c";
3
4 IMPORT "freesteam";
5
6 (* Model of simple Rankine cycle with boiler, turbine, condenser, pump *)
7
8 (*------------------------------------------------------------------------------
9 BACKGROUND STUFF
10 *)
11
12 (*
13 Thermo properties -- IAPWS-IF97
14 *)
15 MODEL steam_state;
16 p IS_A pressure;
17 h IS_A specific_enthalpy;
18 u IS_A specific_energy;
19 v IS_A specific_volume;
20 T IS_A temperature;
21 x IS_A fraction;
22 s IS_A specific_entropy;
23 mu IS_A viscosity;
24
25 props: iapws97_uvTxsmu_ph(
26 p,h : INPUT;
27 u,v,T,x,s,mu : OUTPUT
28 );
29 METHODS
30 METHOD default;
31 p := 10{bar};
32 p.nominal := 42 {bar};
33 v.nominal := 10 {L/kg};
34 u := 2000 {kJ/kg};
35 T := 400 {K};
36 x := 0.8;
37 END default;
38 METHOD solve;
39 EXTERNAL do_solve(SELF);
40 END solve;
41 METHOD on_load;
42 RUN default_all;
43 FIX p, h;
44 END on_load;
45 END steam_state;
46
47 (* a simple connector that includes calculation of steam properties *)
48 MODEL steam_node;
49 state IS_A steam_state;
50 p ALIASES state.p;
51 h ALIASES state.h;
52 u ALIASES state.u;
53 v ALIASES state.v;
54 T ALIASES state.T;
55 x ALIASES state.x;
56 s ALIASES state.s;
57 mu ALIASES state.mu;
58 mdot IS_A mass_rate;
59 METHODS
60 METHOD default;
61 mdot.nominal := 2 {kg/s};
62 END default;
63 METHOD solve;
64 EXTERNAL do_solve(SELF);
65 END solve;
66 METHOD on_load;
67 RUN default_all; RUN reset; RUN values;
68 FIX p,h;
69 END on_load;
70 END steam_node;
71
72 MODEL steam_equipment;
73 inlet IS_A steam_node;
74 outlet IS_A steam_node;
75
76 inlet.mdot, outlet.mdot ARE_THE_SAME;
77 mdot ALIASES inlet.mdot;
78 END steam_equipment;
79
80 (*------------------------------------------------------------------------------
81 PUMP COMPONENT
82 *)
83
84 MODEL pump_simple REFINES steam_equipment;
85
86 dp IS_A delta_pressure;
87 inlet.p + dp = outlet.p;
88
89 outlet_is IS_A steam_state;
90 outlet_is.p, outlet.p ARE_THE_SAME;
91
92 outlet_is.s, inlet.s ARE_THE_SAME;
93 eta IS_A fraction;
94
95 eta_eq:eta * (inlet.h - outlet.h) = (inlet.h - outlet_is.h);
96
97 (* work done on the environment, will be negative *)
98 Wdot IS_A energy_rate;
99 Wdot_eq:Wdot = eta * mdot * (inlet.h - outlet.h);
100
101 w IS_A specific_energy;
102 w_eq:w = eta * (outlet.h - inlet.h);
103
104 END pump_simple;
105
106 MODEL pump_simple_test REFINES pump_simple;
107 (* no equations here *)
108 METHODS
109 METHOD on_load;
110 FIX inlet.p;
111 FIX inlet.h;
112 FIX outlet.p;
113 FIX eta;
114 FIX mdot;
115
116 inlet.p := 5 {bar};
117 inlet.h := 400 {kJ/kg};
118 outlet.p := 100 {bar};
119 eta := 0.65;
120 mdot := 900 {t/d};
121 END on_load;
122 END pump_simple_test;
123
124 (*------------------------------------------------------------------------------
125 TURBINE COMPONENT
126 *)
127
128 MODEL turbine_simple REFINES steam_equipment;
129
130 dp IS_A delta_pressure;
131 inlet.p + dp = outlet.p;
132
133 outlet_is IS_A steam_state;
134 outlet_is.p, outlet.p ARE_THE_SAME;
135 outlet_is.s, inlet.s ARE_THE_SAME;
136
137 eta IS_A fraction;
138 eta_eq:eta * (inlet.h - outlet_is.h) = (inlet.h - outlet.h);
139
140 (* work done on the environment, will be positive *)
141 Wdot IS_A energy_rate;
142 Wedot_eq:Wdot = eta * mdot * (inlet.h - outlet.h);
143
144 w IS_A specific_energy;
145 w_eq:w = inlet.h - outlet.h;
146
147 END turbine_simple;
148
149 MODEL turbine_simple_test REFINES turbine_simple;
150 (* no equations here *)
151 METHODS
152 METHOD on_load;
153 FIX inlet.p;
154 FIX inlet.h;
155 FIX outlet.p;
156 FIX eta;
157 FIX mdot;
158
159 inlet.p := 100 {bar};
160 inlet.h := 3000 {kJ/kg};
161 outlet.p := 5 {bar};
162 eta := 0.85;
163 mdot := 900 {t/d};
164 END on_load;
165 END turbine_simple_test;
166
167 (*------------------------------------------------------------------------------
168 BOILER COMPONENT
169 *)
170
171 (*
172 simple model assumes no pressure drop, but heating losses due to
173 flue gas temperature
174 *)
175 MODEL boiler_simple REFINES steam_equipment;
176
177 inlet.p, outlet.p ARE_THE_SAME;
178 Qdot_fuel IS_A energy_rate;
179 Qdot IS_A energy_rate;
180
181 Qdot = mdot * (outlet.h - inlet.h);
182
183 eta IS_A fraction;
184 Qdot = eta * Qdot_fuel;
185 END boiler_simple;
186
187 MODEL boiler_simple_test REFINES boiler_simple;
188 (* nothing here *)
189 METHODS
190 METHOD on_load;
191 FIX inlet.p;
192 FIX inlet.h;
193 FIX eta;
194 FIX outlet.h;
195 FIX mdot;
196
197 inlet.p := 100 {bar};
198 inlet.h := 500 {kJ/kg};
199
200 eta := 0.8;
201 outlet.h := 3000 {kJ/kg};
202 mdot := 900 {t/d};
203 END on_load;
204 END boiler_simple_test;
205
206 (*------------------------------------------------------------------------------
207 CONDENSER COMPONENT
208 *)
209
210 (*
211 this is really simple (fluid props permitting): just work out the heat
212 that must be expelled to get the water down to a certain state
213 *)
214 MODEL condenser_simple REFINES steam_equipment;
215
216 inlet.p, outlet.p ARE_THE_SAME;
217 Qdot IS_A energy_rate;
218
219 Qdot = mdot * (outlet.h - inlet.h);
220
221 END condenser_simple;
222
223 MODEL condenser_simple_test REFINES condenser_simple;
224 (* nothing here *)
225 METHODS
226 METHOD on_load;
227 FIX inlet.p, inlet.x;
228 FIX outlet.h;
229 FIX mdot;
230
231 inlet.p := 5 {bar};
232 inlet.x := 0.95;
233 outlet.h := 500 {kJ/kg};
234 mdot := 900 {t/d};
235 END on_load;
236 END condenser_simple_test;
237
238 (*------------------------------------------------------------------------------
239 FEEDWATER HEATER
240 *)
241
242 (*
243 open heater does not have inlet.mdot==outlet.mdot, so not a refinement
244 of 'steam_equipment'.
245 *)
246 MODEL heater_open;
247
248 inlet IS_A steam_node;
249 inlet_heat IS_A steam_node;
250 outlet IS_A steam_node;
251
252 inlet_heat.p, inlet.p, outlet.p ARE_THE_SAME;
253
254 (* cons. mass *)
255 cons_mass: inlet.mdot + inlet_heat.mdot = outlet.mdot;
256
257 (* cons. energy *)
258 cons_en: inlet.mdot * inlet.h + inlet_heat.mdot * inlet_heat.h = outlet.mdot * outlet.h;
259
260 END heater_open;
261
262 MODEL heater_open_test REFINES heater_open;
263 (* nothing here *)
264 METHODS
265 METHOD on_load;
266 FIX inlet.p, inlet.h;
267 inlet.p := 40 {bar};
268 inlet.h := 634 {kJ/kg};
269 FIX inlet_heat.h;
270 inlet_heat.h := 2960 {kJ/kg};
271
272 FIX outlet.mdot;
273 outlet.mdot := 900 {t/d};
274
275 FIX inlet.mdot;
276 inlet.mdot := 700 {t/d};
277 END on_load;
278 END heater_open_test;
279
280 (*------------------------------------------------------------------------------
281 TEE PIECE
282 *)
283
284 (*
285 it's not a car :-)
286 *)
287 MODEL tee;
288 inlet IS_A steam_node;
289 outlet IS_A steam_node;
290 outlet_branch IS_A steam_node;
291
292
293 inlet.p, outlet.p, outlet_branch.p ARE_THE_SAME;
294 inlet.h, outlet.h, outlet_branch.h ARE_THE_SAME;
295
296 (* cons. mass *)
297 cons_mass: inlet.mdot = outlet.mdot + outlet_branch.mdot;
298
299 phi IS_A fraction;
300 phi_eq: phi * inlet.mdot = outlet_branch.mdot;
301
302 END tee;
303
304 (*------------------------------------------------------------------------------
305 OVERALL CYCLE
306 *)
307
308 (*
309 simplest possible rankine cycle
310 *)
311 MODEL rankine;
312
313 BO IS_A boiler_simple;
314 TU IS_A turbine_simple;
315 CO IS_A condenser_simple;
316 PU IS_A pump_simple;
317
318 BO.outlet, TU.inlet ARE_THE_SAME;
319 TU.outlet, CO.inlet ARE_THE_SAME;
320 CO.outlet, PU.inlet ARE_THE_SAME;
321 PU.outlet, BO.inlet ARE_THE_SAME;
322
323 Qdot_loss ALIASES CO.Qdot;
324
325 T_H ALIASES BO.outlet.T;
326 T_C ALIASES CO.outlet.T;
327
328 eta IS_A fraction;
329 eta * (BO.Qdot_fuel - PU.Wdot) = TU.Wdot;
330
331 eta_carnot IS_A fraction;
332 eta_carnot = 1 - T_C / T_H;
333
334 mdot ALIASES TU.mdot;
335 x_turb_out ALIASES TU.outlet.x;
336 METHODS
337 (* first test case: just some plausible values *)
338 METHOD specify_1;
339 RUN ClearAll;
340 FIX PU.inlet.p;
341 FIX PU.inlet.h;
342 FIX PU.outlet.p;
343 FIX BO.outlet.h;
344 FIX TU.eta;
345 FIX PU.eta;
346 FIX BO.eta;
347 FIX mdot;
348 END specify_1;
349 METHOD values_1;
350 PU.inlet.p := 1 {bar};
351 PU.inlet.h := 104.9 {kJ/kg};
352 PU.outlet.p := 250 {bar};
353 BO.outlet.h := 3772 {kJ/kg};
354 TU.eta := 0.85;
355 PU.eta := 0.65;
356 BO.eta := 0.9;
357 mdot := 900 {t/d};
358 END values_1;
359 (*
360 second test case: numbers from Example 2.1, K Weston, 'Energy Conversion',
361 1992, http://www.personal.utulsa.edu/~kenneth-weston/
362 *)
363 METHOD specify;
364 RUN ClearAll;
365 FIX PU.outlet.p;
366 FIX BO.outlet.T;
367 FIX PU.inlet.p;
368 FIX PU.inlet.h;
369 FIX TU.eta;
370 FIX PU.eta;
371 FIX BO.eta;
372 FIX mdot;
373 END specify;
374 METHOD values;
375 PU.outlet.p := 2000 {psi};
376 BO.outlet.T := 1460 {R}; BO.outlet.h := 3400 {kJ/kg};
377 PU.inlet.p := 1 {psi};
378 PU.inlet.h := 69.73 {btu/lbm};
379 TU.eta := 1.0;
380 PU.eta := 1.0;
381 BO.eta := 1.0;
382 mdot := 900 {t/d};
383 END values;
384 METHOD on_load;
385 RUN specify;
386 RUN values;
387 END on_load;
388 METHOD self_test;
389 (* check the results against those from K Weston's book *)
390 (* note that we have NOT neglected pump work in this case! *)
391 ASSERT abs(eta - 0.4294) < 0.0005;
392 ASSERT abs(eta_carnot - 0.6152) < 0.0005;
393 ASSERT abs(TU.outlet.x - 0.7736) < 0.0005;
394 END self_test;
395 END rankine;
396
397 (*------------------------------------------------------------------------------
398 REHEAT RANKINE CYCLE
399 *)
400 MODEL rankine_reheat;
401
402 BO1 IS_A boiler_simple;
403 BO2 IS_A boiler_simple;
404 TU1 IS_A turbine_simple;
405 TU2 IS_A turbine_simple;
406 CO IS_A condenser_simple;
407 PU IS_A pump_simple;
408
409 BO1.outlet, TU1.inlet ARE_THE_SAME;
410 TU1.outlet, BO2.inlet ARE_THE_SAME;
411 BO2.outlet, TU2.inlet ARE_THE_SAME;
412 TU2.outlet, CO.inlet ARE_THE_SAME;
413 CO.outlet, PU.inlet ARE_THE_SAME;
414 PU.outlet, BO1.inlet ARE_THE_SAME;
415
416 BO1.eta, BO2.eta ARE_THE_SAME;
417
418 (* boiler peak temperature is reached for both main and reheat... *)
419 BO1.outlet.T, BO2.outlet.T ARE_THE_SAME;
420
421 mdot ALIASES PU.mdot;
422
423 T_H ALIASES BO1.outlet.T;
424 T_C ALIASES CO.outlet.T;
425
426 eta IS_A fraction;
427 eta * (BO1.Qdot_fuel + BO2.Qdot_fuel - PU.Wdot) = TU1.Wdot + TU2.Wdot;
428
429 eta_carnot IS_A fraction;
430 eta_carnot = 1 - T_C / T_H;
431
432 METHODS
433 (*
434 The on_load scenario reproduces the same calculation from
435 K Weston, op. cit., Example 2.5, p. 51.
436 *)
437 METHOD on_load;
438 FIX BO1.eta;
439 BO1.eta := 1.0;
440 FIX TU1.eta, TU2.eta;
441 TU1.eta := 1.0;
442 TU2.eta := 1.0;
443 FIX PU.eta;
444 PU.eta := 1.0;
445 FIX PU.inlet.p;
446 PU.inlet.p := 1 {psi};
447 FIX PU.inlet.h;
448 PU.inlet.h := 69.73 {btu/lbm};
449 FIX BO1.outlet.T;
450 BO1.outlet.T := 1460 {R};
451 BO1.outlet.h := 3000 {kJ/kg}; (* guess *)
452 TU1.outlet.h := 3000 {kJ/kg}; (* guess *)
453 FIX PU.outlet.p;
454 PU.outlet.p := 2000 {psi};
455 FIX mdot;
456 mdot := 900 {t/d};
457
458 (* this value here is what defines the intermediate pressure *)
459 FIX TU1.outlet.T;
460 TU1.outlet.T := 860 {R};
461
462 TU2.inlet.h := 3000 {kJ/kg}; (* guess *)
463 END on_load;
464 METHOD self_test;
465 ASSERT abs(eta - 0.443) < 0.0005;
466 ASSERT abs(TU2.outlet.x - 0.926) < 0.0015;
467 ASSERT abs(TU1.w + TU2.w) - 763.1 {btu/lbm} < 1 {btu/lbm};
468 END self_test;
469 END rankine_reheat;
470
471 (*------------------------------------------------------------------------------
472 REGENERATIVE RANKINE CYCLE
473 *)
474 (*
475 Add a boiler feedwater heater and two-stage turbine
476 *)
477 MODEL rankine_regen;
478
479 BO IS_A boiler_simple;
480 TU1 IS_A turbine_simple;
481 BL IS_A tee; (* bleed *)
482 TU2 IS_A turbine_simple;
483 CO IS_A condenser_simple;
484 HE IS_A heater_open;
485 PU1 IS_A pump_simple;
486 PU2 IS_A pump_simple;
487
488 (* main loop *)
489 BO.outlet, TU1.inlet ARE_THE_SAME;
490 TU1.outlet, BL.inlet ARE_THE_SAME;
491 BL.outlet, TU2.inlet ARE_THE_SAME;
492 TU2.outlet, CO.inlet ARE_THE_SAME;
493 CO.outlet, PU1.inlet ARE_THE_SAME;
494 PU1.outlet, HE.inlet ARE_THE_SAME;
495 HE.outlet, PU2.inlet ARE_THE_SAME;
496 PU2.outlet, BO.inlet ARE_THE_SAME;
497
498 (* bleed stream *)
499 BL.outlet_branch, HE.inlet_heat ARE_THE_SAME;
500 phi ALIASES BL.phi;
501 p_bleed ALIASES TU1.outlet.p;
502
503 mdot ALIASES BO.mdot;
504
505 T_H ALIASES BO.outlet.T;
506 T_C ALIASES CO.outlet.T;
507
508 eta IS_A fraction;
509 eta_eq:eta * (BO.Qdot_fuel) = TU1.Wdot + TU2.Wdot + PU1.Wdot + PU2.Wdot;
510
511 Wdot_TU1 ALIASES TU1.Wdot;
512 Wdot_TU2 ALIASES TU2.Wdot;
513 Wdot_PU1 ALIASES PU1.Wdot;
514 Wdot_PU2 ALIASES PU2.Wdot;
515 Qdot_fuel ALIASES BO.Qdot_fuel;
516
517 eta_carnot IS_A fraction;
518 eta_carnot = 1 - T_C / T_H;
519
520 (* some checking output... *)
521
522 phi_weston IS_A fraction;
523 phi_weston_eq:phi_weston * (TU1.outlet.h - PU1.outlet.h) = (PU2.inlet.h - PU1.outlet.h);
524 phi_eq:phi_weston = phi;
525
526 w_net IS_A specific_energy;
527 w_net_eq: TU1.mdot * w_net = TU1.mdot * (TU1.inlet.h - TU1.outlet.h) + TU2.mdot * (TU2.inlet.h - TU2.outlet.h);
528
529 q_a IS_A specific_energy;
530 q_a = TU1.inlet.h - PU2.outlet.h;
531
532 Wdot IS_A energy_rate;
533 Wdot = TU1.Wdot + TU2.Wdot + PU1.Wdot + PU2.Wdot;
534
535 cons_en: HE.inlet.mdot * HE.inlet.h + HE.inlet_heat.mdot * HE.inlet_heat.h = HE.outlet.mdot * HE.outlet.h;
536
537 METHODS
538 METHOD moran_ex_8_5;
539 (*
540 This is Example 8.5 from Moran and Shapiro, 'Fundamentals of
541 Engineering Thermodynamics', 4th Ed.
542 *)
543 RUN ClearAll;
544 (* component efficiencies *)
545 FIX BO.eta; BO.eta := 1.0;
546 FIX TU1.eta; TU1.eta := 0.85;
547 FIX TU2.eta; TU2.eta := 0.85;
548 FIX PU1.eta; PU1.eta := 1.0;
549 FIX PU2.eta; PU2.eta := 1.0;
550 (* turbine conditions *)
551 FIX TU1.inlet.p; TU1.inlet.p := 8. {MPa};
552 FIX TU1.inlet.T; TU1.inlet.T := 480 {K} + 273.15 {K};
553 FIX TU1.outlet.p; TU1.outlet.p := 0.7 {MPa};
554 FIX TU2.outlet.p; TU2.outlet.p := 0.008 {MPa};
555 (* heater conditions *)
556 FIX HE.outlet.p; HE.outlet.p := 0.7 {MPa};
557 FIX HE.outlet.x; HE.outlet.x := 0.001;
558 FIX Wdot; Wdot := 100 {MW};
559 END moran_ex_8_5;
560 METHOD weston_ex_2_6;
561 (*
562 The scenario here is example 2.6 from K Weston (op. cit.), p. 55.
563 *)
564 RUN ClearAll;
565
566 (* all ideal components *)
567 FIX BO.eta; BO.eta := 1.0;
568 FIX TU1.eta; TU1.eta := 1.0;
569 FIX TU2.eta; TU2.eta := 1.0;
570 FIX PU1.eta; PU1.eta := 1.0;
571 FIX PU2.eta; PU2.eta := 1.0;
572
573 (* mass flow rate is arbitrary *)
574 FIX mdot;
575 mdot := 10 {kg/s};
576
577 (* max pressure constraint *)
578 FIX PU2.outlet.p;
579 PU2.outlet.p := 2000 {psi};
580 PU2.outlet.h := 1400 {btu/lbm}; (* guess *)
581
582 (* boiler max temp *)
583 FIX BO.outlet.T;
584 BO.outlet.T := 1460 {R};
585 BO.outlet.h := 1400 {btu/lbm}; (* guess *)
586
587 (* intermediate temperature setting *)
588 FIX TU1.outlet.p;
589 TU1.outlet.p := 200 {psi};
590 (* FIX TU1.outlet.T;
591 TU1.outlet.T := 860 {R}; (* 400 °F *)
592 TU1.outlet.h := 3000 {kJ/kg}; (* guess *) *)
593
594 (* minimum pressure constraint *)
595 FIX CO.outlet.p;
596 CO.outlet.p := 1 {psi};
597
598 (* condenser outlet is saturated liquid *)
599 FIX CO.outlet.h;
600 CO.outlet.h := 69.73 {btu/lbm};
601
602 (* remove the redundant balance equations *)
603 HE.cons_mass.included := TRUE;
604 HE.cons_en.included := TRUE;
605 BL.cons_mass.included := FALSE;
606 phi_weston_eq.included := TRUE;
607 phi_eq.included := FALSE;
608 cons_en.included := FALSE;
609
610 (* fix the bleed ratio *)
611 FIX BL.phi;
612 BL.phi := 0.251;
613
614 (* FIX BL.outlet.h;
615 BL.outlet.h := 355.5 {btu/lbm}; *)
616
617 END weston_ex_2_6;
618 METHOD self_test;
619 ASSERT abs(TU1.inlet.s - 1.5603 {btu/lbm/R}) < 0.01 {btu/lbm/R};
620 ASSERT abs(TU1.outlet.s - 1.5603 {btu/lbm/R}) < 0.01 {btu/lbm/R};
621 ASSERT abs(TU2.outlet.s - 1.5603 {btu/lbm/R}) < 0.01 {btu/lbm/R};
622 ASSERT abs(PU1.inlet.s - 0.1326 {btu/lbm/R}) < 0.001 {btu/lbm/R};
623 ASSERT abs(PU1.outlet.s - 0.1326 {btu/lbm/R}) < 0.002 {btu/lbm/R};
624 ASSERT abs(PU2.inlet.s - 0.5438 {btu/lbm/R}) < 0.002 {btu/lbm/R};
625 ASSERT abs(PU2.outlet.s - 0.5438 {btu/lbm/R}) < 0.002 {btu/lbm/R};
626
627 ASSERT abs(TU1.inlet.h - 1474.1 {btu/lbm}) < 1.5 {btu/lbm};
628 ASSERT abs(TU1.outlet.h - 1210.0 {btu/lbm}) < 1.5 {btu/lbm};
629 ASSERT abs(TU2.outlet.h - 871.0 {btu/lbm}) < 1.5 {btu/lbm};
630 ASSERT abs(PU1.inlet.h - 69.73 {btu/lbm}) < 0.001 {btu/lbm};
631 ASSERT abs(PU1.outlet.h - 69.73 {btu/lbm}) < 1.0 {btu/lbm};
632 ASSERT abs(PU2.inlet.h - 355.5 {btu/lbm}) < 1.5 {btu/lbm};
633 ASSERT abs(PU2.outlet.h - 355.5 {btu/lbm}) < 8 {btu/lbm};
634
635 ASSERT abs(w_net - 518.1 {btu/lbm}) < 0.3 {btu/lbm};
636
637 ASSERT abs(w_net * mdot - (TU1.Wdot + TU2.Wdot)) < 1 {W};
638
639 ASSERT abs(q_a - 1118.6 {btu/lbm}) < 7 {btu/lbm};
640
641 ASSERT abs(eta - 0.463) < 0.003;
642
643 ASSERT abs(phi - 0.251) < 0.001;
644 END self_test;
645 END rankine_regen;
646
647 MODEL rankine_compare;
648 simple IS_A rankine;
649 regen IS_A rankine_regen;
650 simple.BO.inlet.p, regen.BO.inlet.p ARE_THE_SAME;
651 simple.BO.inlet.h, regen.BO.inlet.h ARE_THE_SAME;
652 simple.BO.Qdot_fuel, regen.BO.Qdot_fuel ARE_THE_SAME;
653 simple.CO.outlet.T, regen.CO.outlet.T ARE_THE_SAME;
654 simple.BO.eta, regen.BO.eta ARE_THE_SAME;
655 simple.TU.eta, regen.TU1.eta, regen.TU2.eta ARE_THE_SAME;
656 simple.PU.eta, regen.PU1.eta, regen.PU2.eta ARE_THE_SAME;
657 simple.mdot, regen.mdot ARE_THE_SAME;
658 METHODS
659 METHOD on_load;
660 RUN ClearAll;
661 RUN regen.on_load;
662 END on_load;
663 END rankine_compare;

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