def testIsentropic(self):
     inlet = State("Water", Q=1, P=10 * 10 ** 6)
     outlet = State("Water", P=10 * 10 ** 3)
     inlet.define()
     turb = Turbine(inlet, outlet)
     turb.isentropic(0.9)
     self.assertEquals(True, outlet.defined)
     self.assertEquals(abs(outlet.properties["h"] * 10 ** (-3) - 1870) < 10, True)
    def testExergyBalance(self):
        inlet = State("Water", Q=1, P=10 * 10 ** 6)
        outlet = State("Water", P=10 * 10 ** 3)
        inlet.define()
        turb = Turbine(inlet, outlet)
        turb.isentropic(0.9)
        turb.exergyBalance(300, 100 * 10 ** 3)
        import IPython

        IPython.embed()
Пример #3
0
class ReheatedRankine(object):
    """
    This is a very specific use of the base state and component functions
    that I need for a project in my Thermo class. Once I am done with the project
    I plan on introducing a much more generica way of developing a cycle
    """
    def __init__(self, p_1, t_1, p_2, p_cond, eta_t, eta_p,t_3, t0, p0, TL, TH):
        self._one = State('Water', P=p_1, T=t_1)
        self._one.define()
        self._two = State('Water', P=p_2)
        self.turb_one = Turbine(self._one, self._two)
        self.turb_one.isentropic(eta_t)
        self.turb_one.exergyBalance(t0, p0)
        self._three = State('Water', P=p_2, T=t_3)
        self._three.define()
        self.reheater = Reheater(self._two, self._three)
        self._four = State('Water', P=p_cond)
        self.turb_two = Turbine(self._three, self._four)
        self.turb_two.isentropic(eta_t)
        self.turb_two.exergyBalance(t0, p0)
        self._five = State('Water')
        self.condensor = Condensor(p_cond, self._four, self._five)
        self._six = State('Water', P=p_1)
        self.pump = Pump(self._five, self._six)
        self.pump.isentropic(eta_p)
        self.pump.exergyBalance(t0, p0)
        self.superHeater = Reheater(self._six, self._one)
        self.eta = (sum([self.turb_two.w, self.turb_one.w, self.pump.w])/
                    sum([self.reheater.q, self.superHeater.q]))
        self.E = self.eta*(1/(1-float(TL)/float(TH)))
Пример #4
0
    def __init__(self, t0, p0, p_1, t_1, p_2, eta_t, eta_p, p_cond, TL, TH):
        self.one = State('Water', P=p_1, T=t_1)
        self.one.define()
        self.two = State('Water', P=p_2)
        self.turb_one = Turbine(self.one, self.two)
        self.turb_one.isentropic(eta_t)
        self.turb_one.exergyBalance(t0, p0)

        self.three = State('Water', P=p_cond)
        self.turb_two = Turbine(self.two, self.three)
        self.turb_two.isentropic(eta_t)
        self.four = State('Water', P=p_cond, Q=0)
        self.four.define()

        self.five = State('Water', P=p_1)
        self.pump_one = Pump(self.four, self.five)
        self.pump_one.isentropic(eta_p)
        self.six = State('Water', P=p_1, T=350)
        self.six.define()

        self.seven = State('Water', P=p_2, Q=0)
        self.seven.define()
        self.eight = State('Water', P=p_cond, h=self.seven.properties['h'])
        self.eight.define()
     
        
        y = ((self.six.properties['h']-self.five.properties['h'])
                /(self.two.properties['h']-self.seven.properties['h']))
        self.y = y
        self.turb_two.exergyBalanceY(t0, p0, y)
        self.pump_one.exergyBalance(t0, p0)
        self.superHeater = Reheater(self.six, self.one)
        self.eta = (sum([self.turb_one.w, self.turb_two.w, self.pump_one.w])/
                    sum([self.superHeater.q]))
        self.E = self.eta*(1/(1-float(TL)/float(TH)))
        self.cfwh = CFeedWater([self.two, self.five], [y, 1], [self.seven, self.six],
                    [y, (1-y)], t0, p0)
Пример #5
0
    def __init__(self, t0, p0, p_1, t_1, p_2, eta_t, eta_p, p_cond, TL, TH):
        self.one = State('Water', P=p_1, T=t_1)
        self.one.define()
        self.two = State('Water', P=p_2)
        self.turb_one = Turbine(self.one, self.two)
        self.turb_one.isentropic(eta_t)
        self.turb_one.exergyBalance(p0, t0)

        self.three = State('Water', P=p_cond)
        self.turb_two = Turbine(self.two, self.three)
        self.turb_two.isentropic(eta_t)
        self.four = State('Water', P=p_cond)
        self.condensor = Condensor(p_cond, self.three, self.four)

        self.five = State('Water', P=p_2)
        self.pump_one = Pump(self.four, self.five)
        self.pump_one.isentropic(eta_p)
        self.six = State('Water', P=p_2, Q=0)
        if self.six.define():        
            y = ((self.six.properties['h']-self.five.properties['h'])
                /(self.two.properties['h']-self.five.properties['h']))
        else:
            print 'Failed to define state 6'
        self.y = y

        self.seven = State('Water', P=p_1)
        self.pump_two = Pump(self.six, self.seven)
        self.pump_two.isentropic(eta_p)
        self.pump_two.exergyBalance(t0, p0)
        self.turb_two.exergyBalanceY(t0, p0, y)
        self.pump_one.exergyBalanceY(t0, p0, y)
        self.superHeater = Reheater(self.seven, self.one)
        self.eta = (sum([self.turb_one.w, self.turb_two.w, self.pump_one.w, self.pump_two.w])/
                    sum([self.superHeater.q]))
        self.E = self.eta*(1/(1-float(TL)/float(TH)))
        self.ofwh = OFeedWater([self.two, self.five], [y, (1-y)], self.six, [1], t0, p0)
Пример #6
0
 def __init__(self, p_1, t_1, p_2, p_cond, eta_t, eta_p,t_3, t0, p0, TL, TH):
     self._one = State('Water', P=p_1, T=t_1)
     self._one.define()
     self._two = State('Water', P=p_2)
     self.turb_one = Turbine(self._one, self._two)
     self.turb_one.isentropic(eta_t)
     self.turb_one.exergyBalance(t0, p0)
     self._three = State('Water', P=p_2, T=t_3)
     self._three.define()
     self.reheater = Reheater(self._two, self._three)
     self._four = State('Water', P=p_cond)
     self.turb_two = Turbine(self._three, self._four)
     self.turb_two.isentropic(eta_t)
     self.turb_two.exergyBalance(t0, p0)
     self._five = State('Water')
     self.condensor = Condensor(p_cond, self._four, self._five)
     self._six = State('Water', P=p_1)
     self.pump = Pump(self._five, self._six)
     self.pump.isentropic(eta_p)
     self.pump.exergyBalance(t0, p0)
     self.superHeater = Reheater(self._six, self._one)
     self.eta = (sum([self.turb_two.w, self.turb_one.w, self.pump.w])/
                 sum([self.reheater.q, self.superHeater.q]))
     self.E = self.eta*(1/(1-float(TL)/float(TH)))
Пример #7
0
class CFWH(object):
    """
    This is a very specific use of the base state and component functions
    that I need for a project in my Thermo class. Once I am done with the project
    I plan on introducing a much more generica way of developing a cycle
    """
    def __init__(self, t0, p0, p_1, t_1, p_2, eta_t, eta_p, p_cond, TL, TH):
        self.one = State('Water', P=p_1, T=t_1)
        self.one.define()
        self.two = State('Water', P=p_2)
        self.turb_one = Turbine(self.one, self.two)
        self.turb_one.isentropic(eta_t)
        self.turb_one.exergyBalance(t0, p0)

        self.three = State('Water', P=p_cond)
        self.turb_two = Turbine(self.two, self.three)
        self.turb_two.isentropic(eta_t)
        self.four = State('Water', P=p_cond, Q=0)
        self.four.define()

        self.five = State('Water', P=p_1)
        self.pump_one = Pump(self.four, self.five)
        self.pump_one.isentropic(eta_p)
        self.six = State('Water', P=p_1, T=350)
        self.six.define()

        self.seven = State('Water', P=p_2, Q=0)
        self.seven.define()
        self.eight = State('Water', P=p_cond, h=self.seven.properties['h'])
        self.eight.define()
     
        
        y = ((self.six.properties['h']-self.five.properties['h'])
                /(self.two.properties['h']-self.seven.properties['h']))
        self.y = y
        self.turb_two.exergyBalanceY(t0, p0, y)
        self.pump_one.exergyBalance(t0, p0)
        self.superHeater = Reheater(self.six, self.one)
        self.eta = (sum([self.turb_one.w, self.turb_two.w, self.pump_one.w])/
                    sum([self.superHeater.q]))
        self.E = self.eta*(1/(1-float(TL)/float(TH)))
        self.cfwh = CFeedWater([self.two, self.five], [y, 1], [self.seven, self.six],
                    [y, (1-y)], t0, p0)