def test_ExpBasic_run(self): flowIn = mc.FlowState("water", "HEOS", None, 10., CP.PT_INPUTS, 3.e6, mc.degC2K(500)) exp = mc.ExpBasic(6, 0.8, flowIn) exp.run() self.assertAlmostEqual(exp.flowOut.T, 563.74, 2) self.assertAlmostEqual(exp.P_out / 1000, 4121.11, 2)
def test_ExpBasic_size_pRatio(self): flowIn = mc.FlowState("water", -1, mc.PT_INPUTS, 2.e6, mc.degC2K(350)) flowOut = mc.FlowState("water", -1, mc.PQ_INPUTS, 50000., 1) exp = mc.ExpBasic(-1, 0.686, flowIn, flowOut) exp.update({'m': 1.}) exp.size() # defaults to sizeAttr=pRatio,sizeBounds=[1,50] self.assertAlmostEqual(exp.pRatio, 40.0, 5)
def test_ExpBasic_size_pRatio(self): flowIn = mc.FlowState("water", "HEOS", None, None, CP.PT_INPUTS, 2.e6, mc.degC2K(350)) flowOut = mc.FlowState("water", "HEOS", None, None, CP.PQ_INPUTS, 50000., 1) exp = mc.ExpBasic(None, 0.686, flowIn, flowOut, m=1.0) exp.size() # defaults to sizeAttr=pRatio,sizeBracket=[1,50] self.assertAlmostEqual(exp.pRatio, 40.0, 5)
def test_ExpBasic_size_effIsentropic(self): flowIn = mc.FlowState("water", "HEOS", None, None, CP.PT_INPUTS, 2.e6, mc.degC2K(350)) flowOut = mc.FlowState("water", "HEOS", None, None, CP.PQ_INPUTS, 50000., 1) exp = mc.ExpBasic(40, 1.0, flowIn, flowOut, m=1.0) exp.size("effIsentropic", [0.5, 0.8]) self.assertAlmostEqual(exp.effIsentropic, 0.686, 3)
def test_ExpBasic_size_efficiencyIsentropic(self): flowIn = mc.FlowState("water", -1, mc.PT_INPUTS, 2.e6, mc.degC2K(350)) flowOut = mc.FlowState("water", -1, mc.PQ_INPUTS, 50000., 1) exp = mc.ExpBasic(40, 1.0, flowIn, flowOut) exp.update({ 'm': 1., 'sizeAttr': "efficiencyIsentropic", 'sizeBounds': [0.5, 0.8] }) exp.size() self.assertAlmostEqual(exp.efficiencyIsentropic, 0.686, 3)
exp = mc.ExpBasic(pRatio=1, efficiencyIsentropic=0.9, sizeAttr="pRatio") print(" - created expander") cond = mc.ClrBasic(constraint=mc.CONSTANT_P, QCool=1, efficiencyThermal=1.0, sizeAttr="Q") print(" - created condenser") comp = mc.CompBasic(pRatio=1, efficiencyIsentropic=0.85, sizeAttr="pRatio") print(" - created compressor") evap = mc.HtrBasic(constraint=mc.CONSTANT_P, QHeat=1, efficiencyThermal=1.0, sizeAttr="Q") print(" - created evaporator") config = mc.Config() print(" - created configuration object") cycle = mc.RankineBasic( wf=wf, evap=evap, exp=exp, cond=cond, comp=comp, config=config) cycle.update({ "pEvap": mc.bar2Pa(10), "superheat": 10., "TCond": mc.degC2K(25), "subcool": 5. }) print(" - created cycle") print("setup done.") @mc.timer def plot_cycle(): cycle.sizeSetup(unitiseEvap=False, unitiseCond=False) cycle.plot( graph='Ts', # either 'Ts' or 'ph' title='Quick start RankineBasic plot', # graph title satCurve=True, # display saturation curve newFig=True, # create a new figure show=False, # show the figure