Example #1
0
 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)
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
    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)
Example #6
0
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