The use of heat exchanger #400
-
Dear Francesco, Right now, I'm simulating a supercritical carbon dioxide power cycle, and the problem I have is I want to set the temperature of the cooling water in the cooler. I imagine that in the cycle the CO2 goes into the cooler and be cooled down by the ambient fluid(water) and the temperature of water is alao what I want to set. I have seen that in the heatexchanger module there are two kinds: simplified heatexchanger and condenser. I don't know how to choose, because I have seen that Tamb is a parameter in the simplified heat exchanger, can I use the temperature of water as the ambient temperature, or do I use the cooler as the condenser? I see your example Supercritical CO2 power cycle:. In your code,source and sink are set, but they are not used between connections. In addition, the icon of the cooler in the cycle diagram is condenser, but the cooler is set as a simplified heat exchanger when setting components, which I do not understand. I tried to set the condenser component in the power cycle code, but errors were reported all the time. The codes and errors were as follows, I was very upset. nw = Network(fluids=['CO2','water'])
nw.set_attr(
T_unit='K', p_unit='MPa', h_unit='kJ / kg', m_unit='kg / s',
s_unit="kJ / kgK")
water_in = Source('Water source')
water_out = Sink('Water sink')
closer = CycleCloser('Cycle closer')
cp1 = Compressor('Compressor 1', fkt_group='CMP')
rec1 = HeatExchanger('Recuperator 1', fkt_group='REC')
cooler = Condenser('Water cooler')
heater = HeatExchangerSimple('Heater')
turb = Turbine('Turbine')
c1 = Connection(cooler, 'out1', cp1, 'in1', label='1')
c2 = Connection(cp1, 'out1', rec1, 'in2', label='2')
c3 = Connection(rec1, 'out2', heater, 'in1', label='3')
c0 = Connection(heater, 'out1', closer, 'in1', label='0')
c4 = Connection(closer, 'out1', turb, 'in1', label='4')
c5 = Connection(turb, 'out1', rec1, 'in1', label='5')
c6 = Connection(rec1, 'out1', cooler, 'in1', label='6')
c7 = Connection(water_in, 'out1', cooler, 'in2', label='7')
c8 = Connection(cooler, 'out2', water_out, 'in1', label='8')
nw.add_conns(c0, c1, c2, c3, c4, c5, c6, c7, c8)
global power, heat_input_bus
power = Bus('total output power')
power.add_comps({'comp': turb, 'char': 1, 'base': 'component'},
{'comp': cp1, 'char': 1, 'base': 'bus'})
heat_input_bus = Bus('heat input')
heat_input_bus.add_comps({'comp': heater, 'base': 'bus'})
nw.add_busses(power, heat_input_bus)
power.set_attr(P=-6.0e6)
c1.set_attr(p=7.7, T=307.15, fluid={'CO2': 1, 'water': 0})
c4.set_attr(p=20, T=530 + 273.15)
cp1.set_attr(eta_s=0.86)
rec1.set_attr(ttd_l=10, pr1=0.97, pr2=0.97)
heater.set_attr(pr=0.97)
cooler.set_attr(pr1=0.97, pr2=0.999)
c7.set_attr(p=0.1, T=20+273.15, fluid={'water': 1, 'CO2': 0})
turb.set_attr(eta_s=0.89)
nw.solve(mode='design')
nw.print_results()
|
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 4 replies
-
I’d like to invite you for tomorrow’s user meeting, 17:00 CET. We can discuss your questions there :). best |
Beta Was this translation helpful? Give feedback.
Well, a couple of remarks to your script then:
1: A condenser does not make sense there, since you do not want to condensate the CO2, do you (it is supercritical anyways). Using a
HeatExchangerSimple
will just dissipate the heat to get back to the target temperature ofc1
. TheTamb
specification is only required, if you want to take hypothetical heat transfer to a constant temperature heat sink into account. If you want to model the water side, you need to take aHeatExchanger
instead. That said, with the water outlet temperature your are good to go: