Example #1
0
def demo_generate_ph_Diagramm(path=None, precision=1.0):
    '''Generate a p(h) Diagramm showing the Saturation Line'''
    steamTable = XSteam(XSteam.UNIT_SYSTEM_MKS)
    p_krit = steamTable.criticalPressure(
    ) - 0.0001  # minus 0.0001 or else hL_V returns NaN
    h_krit = steamTable.hL_p(p_krit)

    p = np.arange(0.0, 1000, precision)
    p2 = np.arange(0.5, p_krit, precision)
    vaporFrac = np.arange(0.1, 1.0, 0.1)
    h = np.arange(200.0, 4500.0, 100.0)
    rho = np.arange(1, 15.0, precision * 2)

    nph_px = np.frompyfunc(steamTable.h_px, 2, 1)
    nph_pt = np.frompyfunc(steamTable.h_pt, 2, 1)
    nphL_p = np.frompyfunc(steamTable.hL_p, 1, 1)
    nphV_p = np.frompyfunc(steamTable.hV_p, 1, 1)
    npp_hrho = np.frompyfunc(steamTable.p_hrho, 2, 1)

    # Siede und Taulinie
    hL = nphL_p(p)
    hV = nphV_p(p)

    # Dampfgehalt
    for vf in vaporFrac:
        h_px = nph_px(p2, vf)
        line, = pyplot.plot(h_px, p2)
        pyplot.setp(line, linewidth=1, color='g')

    # Temperatur
    for temp in range(0, 900, 30):
        h_pt = nph_pt(p, temp)
        line, = pyplot.plot(h_pt, p)
        pyplot.setp(line, linewidth=1, color='r')

    # Dichte
    for r in rho:
        p_hrho = npp_hrho(h, r)
        line, = pyplot.plot(h, p_hrho)
        pyplot.setp(line, linewidth=1, color='y')

    # Kritischer Punkt
    pyplot.plot([h_krit], [p_krit], marker='s', mfc='k', ms=8)

    line1, = pyplot.plot(hL, p)
    line2, = pyplot.plot(hV, p)
    pyplot.xlabel("h in [kJ/kg]")
    pyplot.ylabel("p in [bar]")
    pyplot.setp(line1, linewidth=2, color='b')
    pyplot.setp(line2, linewidth=2, color='r')
    pyplot.yscale('log')
    pyplot.grid()

    if path == None:
        pyplot.show()
    else:
        pyplot.savefig(path, bbox_inches='tight')
Example #2
0
def demo_generate_ph_diagramm(path=None, precision=1.0):
    """Generate a p(h) Diagram showing the Saturation Line"""
    steam_table = XSteam(XSteam.UNIT_SYSTEM_MKS)
    p_krit = (steam_table.criticalPressure() - 0.0001
              )  # minus 0.0001 or else hL_V returns NaN
    h_krit = steam_table.hL_p(p_krit)
    p = np.arange(0.0, 1000, precision)
    p2 = np.arange(0.5, p_krit, precision)
    vapor_fraction = np.arange(0.1, 1.0, 0.1)
    h = np.arange(200.0, 4500.0, 100.0)
    rho = np.arange(1, 15.0, precision * 2)
    nph_px = np.frompyfunc(steam_table.h_px, 2, 1)
    nph_pt = np.frompyfunc(steam_table.h_pt, 2, 1)
    nphL_p = np.frompyfunc(steam_table.hL_p, 1, 1)
    nphV_p = np.frompyfunc(steam_table.hV_p, 1, 1)
    npp_hrho = np.frompyfunc(steam_table.p_hrho, 2, 1)

    # boiling and dew lines
    hL = nphL_p(p)
    hV = nphV_p(p)

    # vapor fraction
    for vf in vapor_fraction:
        h_px = nph_px(p2, vf)
        pyplot.plot(h_px, p2, linewidth=1, color="g")

    # temperature
    for temp in range(0, 900, 30):
        h_pt = nph_pt(p, temp)
        pyplot.plot(h_pt, p, linewidth=1, color="r")

    # density
    for r in rho:
        p_hrho = npp_hrho(h, r)
        pyplot.plot(h, p_hrho, linewidth=1, color="y")

    # critical point
    pyplot.plot([h_krit], [p_krit], marker="s", mfc="k", ms=8)
    (line1, ) = pyplot.plot(hL, p, linewidth=2, color="b")
    (line2, ) = pyplot.plot(hV, p, linewidth=2, color="r")

    pyplot.xlabel("h in [kJ/kg]")
    pyplot.ylabel("p in [bar]")
    pyplot.yscale("log")
    pyplot.grid()
    if path is None:
        pyplot.show()
    else:
        pyplot.savefig(path, bbox_inches="tight")
Example #3
0
def demo_ice_diagramm():
    """Generate a diagram showing the sublimation and melting preasure"""
    steam_table = XSteam(XSteam.UNIT_SYSTEM_BARE)
    t_subl = np.arange(50.0, 273.16, 2.0)
    t_melt_Ih = np.arange(251.165, 273.16, 2.0)
    t_melt_III = np.arange(251.165, 256.164, 2.0)
    t_melt_V = np.arange(256.164, 273.31, 2.0)
    t_melt_VI = np.arange(273.31, 355.0, 2.0)
    t_melt_VII = np.arange(355.0, 751.0, 2.0)

    psubl_func = np.frompyfunc(steam_table.psubl_t, 1, 1)
    pmelt_func = np.frompyfunc(steam_table.pmelt_t, 2, 1)

    pyplot.plot(t_subl,
                psubl_func(t_subl),
                linewidth=1,
                color="b",
                label="t_subl")
    pyplot.plot(
        t_melt_Ih,
        pmelt_func(t_melt_Ih, steam_table.TYPE_ICE_Ih),
        linewidth=2,
        color="g",
        label="t_melt_Ih",
    )
    pyplot.plot(
        t_melt_III,
        pmelt_func(t_melt_III, steam_table.TYPE_ICE_III),
        linewidth=1,
        color="r",
        label="t_melt_III",
    )
    pyplot.plot(
        t_melt_V,
        pmelt_func(t_melt_V, steam_table.TYPE_ICE_V),
        linewidth=2,
        color="y",
        label="t_melt_V",
    )
    pyplot.plot(
        t_melt_VI,
        pmelt_func(t_melt_VI, steam_table.TYPE_ICE_VI),
        linewidth=1,
        color="g",
        label="t_melt_VI",
    )
    pyplot.plot(
        t_melt_VII,
        pmelt_func(t_melt_VII, steam_table.TYPE_ICE_VII),
        linewidth=2,
        color="r",
        label="t_melt_VII",
    )

    pyplot.legend(loc="upper left")

    pyplot.xlabel("T in [K]")
    pyplot.ylabel("p in [MPa]")

    pyplot.show()
Example #4
0
def demo_generate_pvT_diagramm():
    """Generate a Diagram showing the v(p,T) as a 3D survace"""
    steam_table = XSteam(XSteam.UNIT_SYSTEM_MKS)
    fig = pyplot.figure()
    ax = pyplot.axes(projection="3d")

    p = np.arange(0.0, 300.0, 5.0)
    t = np.arange(120, 400.0, 5.0)
    p, t = np.meshgrid(p, t)
    npv_pt = np.frompyfunc(steam_table.v_pt, 2, 1)
    v = npv_pt(p, t)

    colour_map = pyplot.get_cmap("hot")
    ax.plot_surface(p,
                    t,
                    v,
                    cmap=colour_map,
                    rstride=1,
                    cstride=1,
                    linewidth=0,
                    shade=True)

    ax.set_xlabel("p")
    ax.set_ylabel("t")
    ax.set_zlabel("v")

    pyplot.show()
Example #5
0
def demo_ice_diagramm():
    """Generate a diagram showing the sublimation and melting preasure"""
    steam_table = XSteam(XSteam.UNIT_SYSTEM_BARE)
    t_subl = np.arange(50.0, 273.16, 2.0)
    t_melt_Ih = np.arange(251.165, 273.16, 2.0)
    t_melt_III = np.arange(251.165, 256.164, 2.0)
    t_melt_V = np.arange(256.164, 273.31, 2.0)
    t_melt_VI = np.arange(273.31, 355.0, 2.0)
    t_melt_VII = np.arange(355.0, 751.0, 2.0)

    psubl_func = np.frompyfunc(steam_table.psubl_t, 1, 1)
    pmelt_func = np.frompyfunc(steam_table.pmelt_t, 2, 1)

    line1, = pyplot.plot(t_subl, psubl_func(t_subl))
    line2, = pyplot.plot(t_melt_Ih,
                         pmelt_func(t_melt_Ih, steam_table.TYPE_ICE_Ih))
    line3, = pyplot.plot(t_melt_III,
                         pmelt_func(t_melt_III, steam_table.TYPE_ICE_III))
    line4, = pyplot.plot(t_melt_V, pmelt_func(t_melt_V,
                                              steam_table.TYPE_ICE_V))
    line5, = pyplot.plot(t_melt_VI,
                         pmelt_func(t_melt_VI, steam_table.TYPE_ICE_VI))
    line6, = pyplot.plot(t_melt_VII,
                         pmelt_func(t_melt_VII, steam_table.TYPE_ICE_VII))

    pyplot.xlabel("T in [K]")
    pyplot.ylabel("p in [MPa]")
    pyplot.setp(line1, linewidth=1, color='b')
    pyplot.setp(line2, linewidth=1, color='g')
    pyplot.setp(line3, linewidth=1, color='r')
    pyplot.setp(line4, linewidth=1, color='y')
    pyplot.setp(line5, linewidth=1, color='g')
    pyplot.setp(line6, linewidth=1, color='r')
    pyplot.show()
Example #6
0
def demo_generate_ph_Diagramm(path=None, precision=1.0):
    '''Generate a p(h) Diagramm showing the Saturation Line'''
    steamTable = XSteam(XSteam.UNIT_SYSTEM_MKS)
    p_krit = steamTable.criticalPressure() - 0.0001  # minus 0.0001 or else hL_V returns NaN
    h_krit = steamTable.hL_p(p_krit)
    p = np.arange(0.0, 1000, precision)
    p2 = np.arange(0.5, p_krit, precision)
    vaporFrac = np.arange(0.1, 1.0, 0.1)
    h = np.arange(200.0, 4500.0, 100.0)
    rho = np.arange(1, 15.0, precision * 2)
    nph_px = np.frompyfunc(steamTable.h_px, 2, 1)
    nph_pt = np.frompyfunc(steamTable.h_pt, 2, 1)
    nphL_p = np.frompyfunc(steamTable.hL_p, 1, 1)
    nphV_p = np.frompyfunc(steamTable.hV_p, 1, 1)
    npp_hrho = np.frompyfunc(steamTable.p_hrho, 2, 1)
    # Siede und Taulinie
    hL = nphL_p(p)
    hV = nphV_p(p)
    # Dampfgehalt
    for vf in vaporFrac:
        h_px = nph_px(p2, vf)
        line, = pyplot.plot(h_px, p2)
        pyplot.setp(line, linewidth=1, color='g')
    # Temperatur
    for temp in range(0, 900, 30):
        h_pt = nph_pt(p, temp)
        line, = pyplot.plot(h_pt, p)
        pyplot.setp(line, linewidth=1, color='r')
    # Dichte
    for r in rho:
        p_hrho = npp_hrho(h, r)
        line, = pyplot.plot(h, p_hrho)
        pyplot.setp(line, linewidth=1, color='y')
    # Kritischer Punkt
    pyplot.plot([h_krit], [p_krit], marker='s', mfc='k', ms=8)
    line1, = pyplot.plot(hL, p)
    line2, = pyplot.plot(hV, p)
    pyplot.xlabel("h in [kJ/kg]")
    pyplot.ylabel("p in [bar]")
    pyplot.setp(line1, linewidth=2, color='b')
    pyplot.setp(line2, linewidth=2, color='r')
    pyplot.yscale('log')
    pyplot.grid()
    if path is None:
        pyplot.show()
    else:
        pyplot.savefig(path, bbox_inches='tight')
Example #7
0
def get_trace_result(input_data):
    base_data = {}
    pipe_data = {}

    for i in input_data[0]:
        base_data[i['name']] = i['value']

    steam_pressure = float(base_data['steam_pressure'])
    TT = float(base_data['steam_temp'])
    Tamb = float(base_data['amb_temp'])
    wv = float(base_data['wind_velocity'])

    for i in input_data[1]:
        if i['class'] in pipe_data:
            pipe_data[i['class']][next(iter(i))] = i[next(iter(i))]
        else:
            pipe_data[i['class']] = {next(iter(i)): i[next(iter(i))]}

    for i, j in pipe_data.items():
        TP = float(j['maintain_temp'])
        NPS = float(j['pipe_dia'])
        INS = float(j['insulation_thickness'])
        ins_type = j['insulation_type']
        pipe_length = float(j['pipe_length'])

        trace = get_trace_calc(TP, TT, Tamb, NPS, ins_type, INS, wv)[1]
        heat_loss = get_trace_calc(TP, TT, Tamb, NPS, ins_type, INS, wv)[0]
        pipe_data[i]['trace'] = trace
        pipe_data[i]['heat_loss'] = round(heat_loss, 3)

        steamTable = XSteam(XSteam.UNIT_SYSTEM_FLS)
        h = steamTable.hV_p(steam_pressure +
                            14.696) - steamTable.hL_p(steam_pressure + 14.696)

        #check

        pipe_data[i]['steam_require'] = round((pipe_length * heat_loss / h), 3)

        tracer_length = get_tracer_length(steam_pressure, trace)
        pipe_data[i]['tracer_length'] = tracer_length

    return pipe_data
Example #8
0
def demo_generate_Tp_diagramm():
    """Generate a T(p) Diagram showing the Saturation Curve"""
    steam_table = XSteam(XSteam.UNIT_SYSTEM_MKS)
    p = np.arange(-100.0, 250.0, 1.0)
    ntsat_p = np.frompyfunc(steam_table.tsat_p, 1, 1)
    tsat = ntsat_p(p)
    (line1, ) = pyplot.plot(tsat, p)
    pyplot.xlabel("t")
    pyplot.ylabel("p")
    pyplot.setp(line1, linewidth=1, color="b")
    pyplot.show()
Example #9
0
def demo_Moillier_Diagramm():
    steamTable = XSteam(XSteam.UNIT_SYSTEM_MKS)
    s = np.arange(2.0, 10.0, 0.01)
    pSteps = [0.006117, 0.01, 0.02, 1.0, 2.0, 3.0, 10, 100, 1000]
    nph_ps = np.frompyfunc(steamTable.h_ps, 2, 1)
    for pstep in pSteps:
        h = nph_ps(pstep, s)
        hline, = pyplot.plot(s, h)
        pyplot.setp(hline, linewidth=1, color='b')
    pyplot.xlabel("s in [kJ/(kg K)]")
    pyplot.ylabel("h in [kJ/kg]")
    pyplot.show()
Example #10
0
def demo_generate_Tp_Diagramm(path=None):
    '''Generate a T(p) Diagramm showing the Saturation Curve'''
    steamTable = XSteam(XSteam.UNIT_SYSTEM_MKS)
    p = np.arange(-100.0, 250.0, 1.0)
    ntsat_p = np.frompyfunc(steamTable.tsat_p, 1, 1)
    tsat = ntsat_p(p)
    line1, = pyplot.plot(tsat, p)
    pyplot.xlabel("t")
    pyplot.ylabel("p")
    pyplot.setp(line1, linewidth=1, color='b')
    if path is None:
        pyplot.show()
    else:
        pyplot.savefig(path, bbox_inches='tight')
Example #11
0
def demo_generate_pvT_Diagramm():
    steamTable = XSteam(XSteam.UNIT_SYSTEM_MKS)
    fig = pyplot.figure()
    ax = Axes3D(fig)
    p = np.arange(-10.0, 300.0, 5.0)
    t = np.arange(-50.0, 400.0, 5.0)
    p, t = np.meshgrid(p, t)
    npv_pt = np.frompyfunc(steamTable.v_pt, 2, 1)
    v = npv_pt(p, t)
    ax.plot_surface(v, p, t, rstride=1, cstride=1, linewidth=0, shade=True)
    ax.set_xlabel("v")
    ax.set_ylabel("p")
    ax.set_zlabel("t")
    pyplot.show()
Example #12
0
def demo_generate_Tp_Diagramm():
    '''Generate a T(p) Diagramm showing the Saturation Curve'''
    steamTable = XSteam(XSteam.UNIT_SYSTEM_MKS)
    p = np.arange(-100.0, 250.0, 1.0)
    ntsat_p = np.frompyfunc(steamTable.tsat_p, 1, 1)
    tsat = ntsat_p(p)

    #    p_tripel = steamTable.triplePointPreasure()
    #    t_tripel = steamTable.triplePointTemperatur()
    #    print p_tripel, t_tripel
    #    pyplot.plot([t_tripel], [ p_tripel], marker = 's', mfc = 'k', ms = 8)

    line1, = pyplot.plot(tsat, p)
    pyplot.xlabel("t")
    pyplot.ylabel("p")
    pyplot.setp(line1, linewidth=1, color='b')
    pyplot.show()
Example #13
0
 def __init__(self,
              t_in,
              t_out,
              t_high,
              p_high,
              m_high,
              t_mid,
              p_mid,
              m_mid,
              t_low,
              p_low,
              m_low,
              t_recold,
              p_recold,
              m_cold,
              t_rehot,
              p_rehot,
              m_rehot,
              t_heater,
              p_heater=3.0):
     self.t_in = t_in  #余热锅炉进口烟温度
     self.t_out = t_out  #余热锅炉排烟温度
     self.t_high = t_high  #高压蒸汽温度
     self.p_high = p_high  #高压气包出口蒸汽压力
     self.m_high = m_high  #高压蒸汽流量
     self.t_mid = t_mid  #中压蒸汽温度
     self.p_mid = p_mid  #中压蒸汽压力
     self.m_mid = m_mid  #中压蒸汽流量
     self.t_low = t_low  #低压蒸汽温度
     self.p_low = p_low  #低压蒸汽压力
     self.m_low = m_low  #低压蒸汽流量
     self.t_recold = t_recold  #冷再热蒸汽温度
     self.p_recold = p_recold  #冷再热蒸汽压力
     self.m_recold = m_cold  #冷再热蒸汽流量
     self.t_rehot = t_rehot  #热再热蒸汽温度
     self.p_rehot = p_rehot  #热再热蒸汽压力
     self.m_rehot = m_rehot  #热再热蒸汽流量
     self.t_heater = t_heater  #轴封加热器出口凝结水温度
     self.p_heater = p_heater  #轴封加热器出口凝结水压力
     self.steamTable = XSteam()
Example #14
0
class FixedBugs_Tester(unittest.TestCase):
    def setUp(self):
        self.maxError = 1e-6
        self.steamTable = XSteam(XSteam.UNIT_SYSTEM_MKS)

    def tearDown(self):
        pass

    def test_inf_loop_h_pt(self):
        # Bug: calling XSteam('h_pt',800,554) creates an infinite loop.
        # reported by Miika Wallius on 3 Jul 2020
        # https://www.mathworks.com/matlabcentral/fileexchange/9817-x-steam-thermodynamic-properties-of-water-and-steam

        error = self.steamTable.h_pt(800.0, 554.0) - 2733.6986817
        self.assertLess(
            error,
            self.maxError,
            "h_pt not passed Error %(error)e allowed: %(max)e" % {
                "error": error,
                "max": self.maxError
            },
        )

    def test_inf_loop_rho_pt(self):
        # Bug: pyXSteam hangs
        # reported by @annhak as issue #10
        # https://github.com/drunsinn/pyXSteam/issues/10

        error = self.steamTable.rho_pt(167.11, 351.73) - 113.6761489
        self.assertLess(
            error,
            self.maxError,
            "rho_pt not passed Error %(error)e allowed: %(max)e" % {
                "error": error,
                "max": self.maxError
            },
        )

    def test_missing_unit_conversion_h_xx(self):
        # Bug: missing unit conversion in h_px for FLS units
        # reported by Grayson Gall on 29 Jan 2022
        # https://www.mathworks.com/matlabcentral/fileexchange/9817-x-steam-thermodynamic-properties-of-water-and-steam

        self.steamTable._unit_converter.set_unitSystem(XSteam.UNIT_SYSTEM_FLS)

        error = self.steamTable.h_px(160, 0.5) - 765.8069264
        self.assertLess(
            error,
            self.maxError,
            " not passed Error %(error)e allowed: %(max)e" % {
                "error": error,
                "max": self.maxError
            },
        )

        error = self.steamTable.h_tx(160, 0.5) - 628.905695
        self.assertLess(
            error,
            self.maxError,
            " not passed Error %(error)e allowed: %(max)e" % {
                "error": error,
                "max": self.maxError
            },
        )
Example #15
0
def calc_sat_temp(steam_pressure):  # steam pressure in psig
    steamTable = XSteam(XSteam.UNIT_SYSTEM_FLS)
    return round(steamTable.tsat_p(float(steam_pressure) + 14.696),
                 2)  # psia to psig
Example #16
0
class Boiler():
    """
    Three pressure reheat waste heat boiler
    """
    steamTable = XSteam(XSteam.UNIT_SYSTEM_BARE)  #单位:m/kg/sec/K/MPa/W

    def __init__(self,
                 t_in,
                 t_out,
                 t_high,
                 p_high,
                 m_high,
                 t_mid,
                 p_mid,
                 m_mid,
                 t_low,
                 p_low,
                 m_low,
                 t_recold,
                 p_recold,
                 m_cold,
                 t_rehot,
                 p_rehot,
                 m_rehot,
                 t_heater,
                 p_heater=3.0):
        self.t_in = t_in  #余热锅炉进口烟温度
        self.t_out = t_out  #余热锅炉排烟温度
        self.t_high = t_high  #高压蒸汽温度
        self.p_high = p_high  #高压气包出口蒸汽压力
        self.m_high = m_high  #高压蒸汽流量
        self.t_mid = t_mid  #中压蒸汽温度
        self.p_mid = p_mid  #中压蒸汽压力
        self.m_mid = m_mid  #中压蒸汽流量
        self.t_low = t_low  #低压蒸汽温度
        self.p_low = p_low  #低压蒸汽压力
        self.m_low = m_low  #低压蒸汽流量
        self.t_recold = t_recold  #冷再热蒸汽温度
        self.p_recold = p_recold  #冷再热蒸汽压力
        self.m_recold = m_cold  #冷再热蒸汽流量
        self.t_rehot = t_rehot  #热再热蒸汽温度
        self.p_rehot = p_rehot  #热再热蒸汽压力
        self.m_rehot = m_rehot  #热再热蒸汽流量
        self.t_heater = t_heater  #轴封加热器出口凝结水温度
        self.p_heater = p_heater  #轴封加热器出口凝结水压力
        self.steamTable = XSteam()

    #锅炉吸热量
    def heat_absorption(self):
        h_high = Boiler.steamTable.h_pt(self.p_high, self.t_high)  #高压汽包出口主蒸汽焓值
        h_mid = Boiler.steamTable.h_pt(self.p_mid, self.t_mid)  #中压汽包出口主蒸汽焓值
        h_low = Boiler.steamTable.h_pt(self.p_low, self.t_low)  #低压汽包出口主蒸汽焓值
        h_recold = Boiler.steamTable.h_pt(self.p_recold,
                                          self.t_record)  #冷再热蒸汽焓值
        h_rehot = Boiler.steamTable.h_pt(self.p_rehot, self.t_rehot)  #热再热蒸汽焓值
        h_heater = Boiler.steamTable.h_pt(self.p_heater,
                                          self.t_heater)  #轴封加热器出口凝结水焓值
        Q = (self.m_high * (h_high - h_heater) + self.m_recold *
             (h_rehot - h_recold) + self.m_mid * (h_rehot - h_heater) +
             self.m_lowL * (h_low - h_heater))
        return Q

    #锅炉效率
    def b_efficiency(self, t_0):
        efficiency = (self.t_in - self.t_out) / (self.t_in - t_0)  #t:环境温度
        return efficiency
Example #17
0
"""
script to perform uncertainties analysis
using RAVENH and RELAP5-3D
"""

import os
import glob
import numpy as np
import pandas as pd
import matplotlib.pylab as plt
from pyXSteam.XSteam import XSteam
from math import pi, sqrt
from scipy.signal import savgol_filter
xsteam = XSteam(XSteam.UNIT_SYSTEM_MKS)


class UncertAnalysis:
    """
	class to load the output .csv file from any run and
	perform the uncertainties analysis of data
	"""
    def __init__(self, mainDir):

        self.filenames = sorted(
            glob.glob(".\\UncertaintyAnalysisMC\\*\\*.csv"))
        self.varlist = sorted(pd.read_csv(self.filenames[0]).keys())
        self.varlist.remove('time')
        print(self.varlist)
        print('\n')
        print("%i files have been read." % len(self.filenames))
Example #18
0
 def setUp(self):
     self.maxError = 1E-6
     self.steamTable = XSteam(XSteam.UNIT_SYSTEM_MKS)
Example #19
0
class FLS_FunctionTester(unittest.TestCase):
    def setUp(self):
        self.maxError = 1E-6
        self.steamTable = XSteam(XSteam.UNIT_SYSTEM_FLS)

    def tearDown(self):
        pass

    def test_tsat_p(self):
        error = self.steamTable.tsat_p(1.0) - 99.60591861
        self.assertLess(
            error, self.maxError,
            'tsat_p not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_t_ph(self):
        error = self.steamTable.t_ph(1.0, 100.0) - 23.84481908
        self.assertLess(
            error, self.maxError,
            't_ph not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_t_ps(self):
        error = self.steamTable.t_ps(1.0, 1.0) - 73.70859421
        self.assertLess(
            error, self.maxError,
            't_ps not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_t_hs(self):
        error = self.steamTable.t_hs(100.0, 0.2) - 13.84933511
        self.assertLess(
            error, self.maxError,
            't_hs not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_psat_t(self):
        error = self.steamTable.psat_t(100.0) - 1.014179779
        self.assertLess(
            error, self.maxError,
            'psat_t not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_p_hs(self):
        error = self.steamTable.p_hs(84.0, 0.296) - 2.295498269
        self.assertLess(
            error, self.maxError,
            'p_hs not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_hV_p(self):
        error = self.steamTable.hV_p(1.0) - 2674.949641
        self.assertLess(
            error, self.maxError,
            'hV_p not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_hL_p(self):
        error = self.steamTable.hL_p(1.0) - 417.4364858
        self.assertLess(
            error, self.maxError,
            'hL_p not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_hV_t(self):
        error = self.steamTable.hV_t(100.0) - 2675.572029
        self.assertLess(
            error, self.maxError,
            'hV_t not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_hL_t(self):
        error = self.steamTable.hL_t(100.0) - 419.099155
        self.assertLess(
            error, self.maxError,
            'hL_t not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_h_pt(self):
        error = self.steamTable.h_pt(1.0, 20.0) - 84.01181117
        self.assertLess(
            error, self.maxError,
            'h_pt not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_h_ps(self):
        error = self.steamTable.h_ps(1.0, 1.0) - 308.6107171
        self.assertLess(
            error, self.maxError,
            'h_ps not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_h_px(self):
        error = self.steamTable.h_px(1.0, 0.5) - 1546.193063
        self.assertLess(
            error, self.maxError,
            'h_px not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_h_prho(self):
        error = self.steamTable.h_prho(1.0, 2.0) - 1082.773391
        self.assertLess(
            error, self.maxError,
            'h_prho not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_h_tx(self):
        error = self.steamTable.h_tx(100.0, 0.5) - 1547.33559211
        self.assertLess(
            error, self.maxError,
            'h_tx not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_vV_p(self):
        error = self.steamTable.vV_p(1.0) - 1.694022523
        self.assertLess(
            error, self.maxError,
            'vV_p not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_vL_p(self):
        error = self.steamTable.vL_p(1.0) - 0.001043148
        self.assertLess(
            error, self.maxError,
            'vL_p not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_vV_t(self):
        error = self.steamTable.vV_t(100.0) - 1.671860601
        self.assertLess(
            error, self.maxError,
            'vV_t not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_vL_t(self):
        error = self.steamTable.vL_t(100.0) - 0.001043455
        self.assertLess(
            error, self.maxError,
            'vL_t not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_v_pt(self):
        error = self.steamTable.v_pt(1.0, 100.0) - 1.695959407
        self.assertLess(
            error, self.maxError,
            'v_pt not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_v_ph(self):
        error = self.steamTable.v_ph(1.0, 1000.0) - 0.437925658
        self.assertLess(
            error, self.maxError,
            'v_ph not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_v_ps(self):
        error = self.steamTable.v_ps(1.0, 5.0) - 1.03463539
        self.assertLess(
            error, self.maxError,
            'v_ps not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_rhoV_p(self):
        error = self.steamTable.rhoV_p(1.0) - 0.590310924
        self.assertLess(
            error, self.maxError,
            'rhoV_p not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_rhoL_p(self):
        error = self.steamTable.rhoL_p(1.0) - 958.6368897
        self.assertLess(
            error, self.maxError,
            'rhoL_p not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_rhoV_t(self):
        error = self.steamTable.rhoV_t(100.0) - 0.598135993
        self.assertLess(
            error, self.maxError,
            'rhoV_t not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_rhoL_t(self):
        error = self.steamTable.rhoL_t(100.0) - 958.3542773
        self.assertLess(
            error, self.maxError,
            'rhoL_t not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_rho_pt(self):
        error = self.steamTable.rho_pt(1.0, 100.0) - 0.589636754
        self.assertLess(
            error, self.maxError,
            'rho_pt not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_rho_ph(self):
        error = self.steamTable.rho_ph(1.0, 1000.0) - 2.283492601
        self.assertLess(
            error, self.maxError,
            'rho_ph not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_rho_ps(self):
        error = self.steamTable.rho_ps(1.0, 1.0) - 975.6236788
        self.assertLess(
            error, self.maxError,
            'rho_ps not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_sV_p(self):
        error = self.steamTable.sV_p(0.006117) - 9.155465556
        self.assertLess(
            error, self.maxError,
            'sV_p not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_sL_p(self):
        error = self.steamTable.sL_p(0.0061171) - 1.8359e-05
        self.assertLess(
            error, self.maxError,
            'sL_p not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_sV_t(self):
        error = self.steamTable.sV_t(0.0001) - 9.155756716
        self.assertLess(
            error, self.maxError,
            'sV_t not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_sL_t(self):
        error = self.steamTable.sL_t(100.0) - 1.307014328
        self.assertLess(
            error, self.maxError,
            'sL_t not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_s_pt(self):
        error = self.steamTable.s_pt(1.0, 20.0) - 0.296482921
        self.assertLess(
            error, self.maxError,
            's_pt not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_s_ph(self):
        error = self.steamTable.s_ph(1.0, 84.01181117) - 0.296813845
        self.assertLess(
            error, self.maxError,
            's_ph not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_uV_p(self):
        error = self.steamTable.uV_p(1.0) - 2505.547389
        self.assertLess(
            error, self.maxError,
            'uV_p not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_uL_p(self):
        error = self.steamTable.uL_p(1.0) - 417.332171
        self.assertLess(
            error, self.maxError,
            'uL_p not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_uV_t(self):
        error = self.steamTable.uV_t(100.0) - 2506.015308
        self.assertLess(
            error, self.maxError,
            'uV_t not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_uL_t(self):
        error = self.steamTable.uL_t(100.0) - 418.9933299
        self.assertLess(
            error, self.maxError,
            'uL_t not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_u_pt(self):
        error = self.steamTable.u_pt(1.0, 100.0) - 2506.171426
        self.assertLess(
            error, self.maxError,
            'u_pt not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_u_ph(self):
        error = self.steamTable.u_ph(1.0, 1000.0) - 956.2074342
        self.assertLess(
            error, self.maxError,
            'u_ph not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_u_ps(self):
        error = self.steamTable.u_ps(1.0, 1.0) - 308.5082185
        self.assertLess(
            error, self.maxError,
            'u_ps not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_CpV_p(self):
        error = self.steamTable.cpV_p(1.0) - 2.075938025
        self.assertLess(
            error, self.maxError,
            'cpV_p not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_CpL_p(self):
        error = self.steamTable.cpL_p(1.0) - 4.216149431
        self.assertLess(
            error, self.maxError,
            'cpL_p not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_CpV_t(self):
        error = self.steamTable.cpV_t(100.0) - 2.077491868
        self.assertLess(
            error, self.maxError,
            'cpV_t not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_CpL_t(self):
        error = self.steamTable.cpL_t(100.0) - 4.216645119
        self.assertLess(
            error, self.maxError,
            'cpL_t not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_Cp_pt(self):
        error = self.steamTable.cp_pt(1.0, 100.0) - 2.074108555
        self.assertLess(
            error, self.maxError,
            'cp_pt not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_Cp_ph(self):
        error = self.steamTable.Cp_ph(1.0, 200.0) - 4.17913573169
        self.assertLess(
            error, self.maxError,
            'Cp_ph not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_Cp_ps(self):
        error = self.steamTable.Cp_ps(1.0, 1.0) - 4.190607038
        self.assertLess(
            error, self.maxError,
            'Cp_ps not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_CvV_p(self):
        error = self.steamTable.CvV_p(1.0) - 1.552696979
        self.assertLess(
            error, self.maxError,
            'CvV_p not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_CvL_p(self):
        error = self.steamTable.CvL_p(1.0) - 3.769699683
        self.assertLess(
            error, self.maxError,
            'CvL_p not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_CvV_t(self):
        error = self.steamTable.CvV_t(100.0) - 1.553698696
        self.assertLess(
            error, self.maxError,
            'CvV_t not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_CvL_t(self):
        error = self.steamTable.CvL_t(100.0) - 3.76770022
        self.assertLess(
            error, self.maxError,
            'CvL_t not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_Cv_pt(self):
        error = self.steamTable.Cv_pt(1.0, 100.0) - 1.551397249
        self.assertLess(
            error, self.maxError,
            'Cv_pt not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_Cv_ph(self):
        error = self.steamTable.Cv_ph(1.0, 200.0) - 4.035176364
        self.assertLess(
            error, self.maxError,
            'Cv_ph not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_Cv_ps(self):
        error = self.steamTable.Cv_ps(1.0, 1.0) - 3.902919468
        self.assertLess(
            error, self.maxError,
            'Cv_ps not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_wV_p(self):
        error = self.steamTable.wV_p(1.0) - 472.0541571
        self.assertLess(
            error, self.maxError,
            'wV_p not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_wL_p(self):
        error = self.steamTable.wL_p(1.0) - 1545.451948
        self.assertLess(
            error, self.maxError,
            'wL_p not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_wV_t(self):
        error = self.steamTable.wV_t(100.0) - 472.2559492
        self.assertLess(
            error, self.maxError,
            'wV_t not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_wL_t(self):
        error = self.steamTable.wL_t(100.0) - 1545.092249
        self.assertLess(
            error, self.maxError,
            'wL_t not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_w_pt(self):
        error = self.steamTable.w_pt(1.0, 100.0) - 472.3375235
        self.assertLess(
            error, self.maxError,
            'w_pt not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_w_ph(self):
        error = self.steamTable.w_ph(1.0, 200.0) - 1542.682475
        self.assertLess(
            error, self.maxError,
            'w_ph not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_w_ps(self):
        error = self.steamTable.w_ps(1.0, 1.0) - 1557.8585
        self.assertLess(
            error, self.maxError,
            'w_ps not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_my_pt(self):
        error = self.steamTable.my_pt(1.0, 100.0) - 1.22704e-05
        self.assertLess(
            error, self.maxError,
            'my_pt not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_my_ph(self):
        error = self.steamTable.my_ph(1.0, 100.0) - 0.000914003770302
        self.assertLess(
            error, self.maxError,
            'my_ph not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_my_ps(self):
        error = self.steamTable.my_ps(1.0, 1.0) - 0.000384222
        self.assertLess(
            error, self.maxError,
            'my_ps not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_tcL_p(self):
        error = self.steamTable.tcL_p(1.0) - 0.677593822
        self.assertLess(
            error, self.maxError,
            'tcL_p not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_tcV_p(self):
        error = self.steamTable.tcV_p(1.0) - 0.024753668
        self.assertLess(
            error, self.maxError,
            'tcV_p not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_tcL_t(self):
        error = self.steamTable.tcL_t(25.0) - 0.607458162
        self.assertLess(
            error, self.maxError,
            'tcL_t not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_tcV_t(self):
        error = self.steamTable.tcV_t(25.0) - 0.018326723
        self.assertLess(
            error, self.maxError,
            'tcV_t not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_tc_pt(self):
        error = self.steamTable.tc_pt(1.0, 25.0) - 0.607509806
        self.assertLess(
            error, self.maxError,
            'tc_pt not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_tc_ph(self):
        error = self.steamTable.tc_ph(1.0, 100.0) - 0.605710062
        self.assertLess(
            error, self.maxError,
            'tc_ph not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_tc_hs(self):
        error = self.steamTable.tc_hs(100.0, 0.34) - 0.606283124
        self.assertLess(
            error, self.maxError,
            'tc_hs not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_st_t(self):
        error = self.steamTable.st_t(100.0) - 0.0589118685877
        self.assertLess(
            error, self.maxError,
            'st_t not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_st_p(self):
        error = self.steamTable.st_p(1.0) - 0.058987784
        self.assertLess(
            error, self.maxError,
            'st_p not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_x_ph(self):
        error = self.steamTable.x_ph(1.0, 1000.0) - 0.258055424
        self.assertLess(
            error, self.maxError,
            'x_ph not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_x_ps(self):
        error = self.steamTable.x_ps(1.0, 4.0) - 0.445397961
        self.assertLess(
            error, self.maxError,
            'x_ps not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_vx_ph(self):
        error = self.steamTable.vx_ph(1.0, 418.0) - 0.288493093
        self.assertLess(
            error, self.maxError,
            'vx_ph not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })

    def test_vx_ps(self):
        error = self.steamTable.vx_ps(1.0, 4.0) - 0.999233827
        self.assertLess(
            error, self.maxError,
            'vx_ps not passed Error %(error)e allowed: %(max)e' % {
                'error': error,
                'max': self.maxError
            })
Example #20
0
"""
#####################################################################
######################## Bibliotheques ##############################
#####################################################################


import numpy as np
import matplotlib.pyplot as plt
from pyXSteam.XSteam import XSteam
import tensorflow as tf
import pickle
import DNNFunctions as DNN
import correlations
import experiences
steamTable = XSteam(XSteam.UNIT_SYSTEM_MKS)

#####################################################################
#################### Constantes du Problème #########################
#####################################################################

exp = '19' # '19' or '65BV'
choix_corr = 'Inoue' #'Chexal' or 'Inoue'

# Exp 19
if exp == '19':
    mpoint = 0.47 #kg/s
    D = 22.9e-3 #m
    P_th = 151.8 #kW --> hL et hV sont en kJ/kg;
    L_c = 1.8 #m
    T_e = 215.3 #°C
# -*- coding: utf-8 -*-
# FILE='cc_calc/ideal/init_data.py'
from constants import *

# third party
from pyXSteam.XSteam import XSteam
steamTable = XSteam(XSteam.UNIT_SYSTEM_MKS)

INIT_DATA = {
    "PIk": 13,  # ступінь підвищення тиску в компресорі
    "T1": 15 + KELVIN_CONST,  # температурі на вході в компресорі, К,
    "T4": 420 + KELVIN_CONST,  # температура на виході з турбіни, К,
    "p1": 0.1,  # тиск на вході в компресор, МПа,
    "p6": 15,  # тиск на вході в парову турбіну, МПа,
    "T6": 300 + KELVIN_CONST,  # температура на вході в парову турбіну, К,
    "T5": 150 + KELVIN_CONST,  # температура газу на виході з КУ, К
    "Tcr": 17,  # різниця температур в конденсаторі
}
Example #22
0
class Steamturbine():
    """
    steam turbine and condenser system
    """
    steamTable = XSteam(XSteam.UNIT_SYSTEM_BARE)  #单位:m/kg/sec/K/MPa/W

    def __init__(self, power, heat, p_highi, t_highi, m_high, p_higho, t_higho,
                 p_midi, t_midi, m_mid, p_mido, t_mido, p_lowi, t_lowi, t_lowo,
                 vacuum, t_wateri):
        self.power = power  #蒸汽轮机发电量
        self.heat = heat  #蒸汽轮机热负荷
        self.p_highi = p_highi  #高压缸入口蒸汽压力
        self.t_highi = t_highi  #高压缸入口蒸汽温度
        self.m_high = m_high  #高压缸入口蒸汽流量
        self.p_higho = p_higho  #高压缸排气压力
        self.t_higho = t_higho  #高压缸排气温度
        self.p_midi = p_midi  #中压缸入口蒸汽压力
        self.t_midi = t_midi  #中压缸入口蒸汽温度
        self.m_mid = m_mid  #中压缸入口蒸汽流量
        self.p_mido = p_mido  #中压缸排气压力
        self.t_mido = t_mido  #中压缸排气温度
        self.p_lowi = p_lowi  #低压缸入口蒸汽压力
        self.t_lowi = t_lowi  #低压缸入口蒸汽温度
        self.t_lowo = t_lowo  #低压缸排气温度
        self.vacuum = vacuum  #凝汽器真空(低压缸排气压力)
        self.t_wateri = t_wateri  #循环水入口温度

    #高压缸效率
    def cylinder_efficiency_h(self):
        h_i = Steamturbine.steamTable.h_pt(self.p_highi,
                                           self.t_highi)  #高压缸进气汽焓
        h_o = Steamturbine.steamTable.h_pt(self.p_higho, self.t_higho)  #高压缸排汽焓
        s_i = Steamturbine.steamTable.s_pt(self.p_highi, self.t_highi)  #高压缸进汽熵
        t_s = Steamturbine.steamTable.t_ps(self.p_higho, s_i)  #高压缸等熵排汽温度
        h_os = Steamturbine.steamTable.h_pt(self.p_higho, t_s)  #高压缸等熵排汽焓
        efficiency = (h_i - h_o) / (h_i - h_os)
        return efficiency

    #中压缸效率
    def cylinder_efficiency_m(self):
        h_i = Steamturbine.steamTable.h_pt(self.p_midi, self.t_midi)  #中压缸进气汽焓
        h_o = Steamturbine.steamTable.h_pt(self.p_mido, self.t_mido)  #中压缸排汽焓
        s_i = Steamturbine.steamTable.s_pt(self.p_midi, self.t_midi)  #中压缸进汽熵
        t_s = Steamturbine.steamTable.t_ps(self.p_mido, s_i)  #中压缸等熵排汽温度
        h_os = Steamturbine.steamTable.h_pt(self.p_mido, t_s)  #中压缸等熵排汽焓
        efficiency = (h_i - h_o) / (h_i - h_os)
        return efficiency

    #低压缸效率
    def cylinder_efficiency_l(self):
        h_i = Steamturbine.steamTable.h_pt(self.p_lowi, self.t_lowi)  #低压缸进气汽焓
        h_o = Steamturbine.steamTable.h_pt(self.vacuum, self.t_lowo)  #低压缸排汽焓
        s_i = Steamturbine.steamTable.s_pt(self.p_lowi, self.t_lowi)  #低压缸进汽熵
        t_s = Steamturbine.steamTable.t_ps(self.vacuum, s_i)  #低压缸等熵排汽温度
        h_os = Steamturbine.steamTable.h_pt(self.vacuum, t_s)  #低压缸等熵排汽焓
        efficiency = (h_i - h_o) / (h_i - h_os)
        return efficiency

        #蒸汽轮机热效率
    def s_efficiency(self, Q):
        efficiency = (self.power * 3600 + self.heat * 10**3) / Q
        return efficiency

    #蒸汽轮机热耗率(KJ/KWh)
    def s_heat_rat(self, Q):
        rate = Q / self.power
        return rate
Example #23
0
def demo_simpel_Values():
    steamTable = XSteam(XSteam.UNIT_SYSTEM_MKS)
    # get saturated liquid enthalpy for a preasure of 220 bar
    print('hV_p(220.0) =', steamTable.hL_p(220.0))
    # get saturated vapour enthalpy for a preasure of 220 bar
    print('hV_p(220.0) =', steamTable.hV_p(220.0))
    print('tcL_p(1.0) =', steamTable.tcL_p(1.0))
    print('tcL_t(25.0) =', steamTable.tcL_t(25.0))
    print('tcV_p(1.0) =', steamTable.tcV_p(1.0))
    print('tcL_t(25.0) =', steamTable.tcV_t(25.0))
    print('tc_hs(100.0, 0.34) =', steamTable.tc_hs(100.0, 0.34))
    print('tc_ph(1.0, 100.0) =', steamTable.tc_ph(1.0, 100.0))
    print('tc_pt(1.0, 25.0) =', steamTable.tc_pt(1.0, 25.0))
    print('w_ps(1.0, 1.0) =', steamTable.w_ps(1.0, 1.0))
Example #24
0
# adding the second turbine does not have the anticipated
# benefits, might be an error in this code


import math as math
import numpy as np
from pyXSteam.XSteam import XSteam
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import logging
import scipy.integrate as inte
from tabulate import tabulate as tabu

# steamTable = XSteam(XSteam.UNIT_SYSTEM_BARE)

steamTable = XSteam(XSteam.UNIT_SYSTEM_MKS)

# print(steamTable.hV_p(1.01325))

atm = 1.01325  # bar
# atm = 3
# nT = 0.9  # turbine efficiency
nT = 1
# nP = 0.9  # pump efficiency
nP = 1
rho = 997  # kg/m3
# rho = 1000
T = 20  # celsius
# max_press = 60  # 60 bar is close to the operating press of real nuke systems
max_press = 100 # maybe we can cheat a bit cause mdot is gonna be lower
h6 = steamTable.hV_p(max_press)
Example #25
0
from fluid_properties import *
import matplotlib.pyplot as plt
import numpy as np
import math
import pyromat as pm
from pyXSteam.XSteam import XSteam
from CoolProp.HumidAirProp import HAPropsSI

## Configure Pyromat
pm.config['unit_pressure'] = 'Pa'
pm.config['unit_temperature'] = 'C'
# Live example
working_fluid = pm.get('ig.air')
cp = working_fluid.cp(25, 101325)

steamTable = XSteam(XSteam.UNIT_SYSTEM_MKS)  # m/kg/sec/°C/bar/W
'''
cp=steamTable.Cp_pt(25,1)
'''
Example #26
0
 def setUp(self):
     self.maxError = 1E-6
     self.steamTable = XSteam(XSteam.UNIT_SYSTEM_FLS)
Example #27
0
class MKS_FunctionTester(unittest.TestCase):

    def setUp(self):
        self.maxError = 1E-6
        self.steamTable = XSteam(XSteam.UNIT_SYSTEM_MKS)

    def tearDown(self):
        pass

    def test_tsat_p(self):
        error = self.steamTable.tsat_p(1.0) - 99.60591861
        self.assertLess(error, self.maxError, 'tsat_p not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_t_ph(self):
        error = self.steamTable.t_ph(1.0, 100.0) - 23.84481908
        self.assertLess(error, self.maxError, 't_ph not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_t_ps(self):
        error = self.steamTable.t_ps(1.0, 1.0) - 73.70859421
        self.assertLess(error, self.maxError, 't_ps not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_t_hs(self):
        error = self.steamTable.t_hs(100.0, 0.2) - 13.84933511
        self.assertLess(error, self.maxError, 't_hs not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_psat_t(self):
        error = self.steamTable.psat_t(100.0) - 1.014179779
        self.assertLess(error, self.maxError, 'psat_t not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_p_hs(self):
        error = self.steamTable.p_hs(84.0, 0.296) - 2.295498269
        self.assertLess(error, self.maxError, 'p_hs not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_hV_p(self):
        error = self.steamTable.hV_p(1.0) - 2674.949641
        self.assertLess(error, self.maxError, 'hV_p not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_hL_p(self):
        error = self.steamTable.hL_p(1.0) - 417.4364858
        self.assertLess(error, self.maxError, 'hL_p not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_hV_t(self):
        error = self.steamTable.hV_t(100.0) - 2675.572029
        self.assertLess(error, self.maxError, 'hV_t not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_hL_t(self):
        error = self.steamTable.hL_t(100.0) - 419.099155
        self.assertLess(error, self.maxError, 'hL_t not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_h_pt(self):
        error = self.steamTable.h_pt(1.0, 20.0) - 84.01181117
        self.assertLess(error, self.maxError, 'h_pt not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_h_ps(self):
        error = self.steamTable.h_ps(1.0, 1.0) - 308.6107171
        self.assertLess(error, self.maxError, 'h_ps not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_h_px(self):
        error = self.steamTable.h_px(1.0, 0.5) - 1546.193063
        self.assertLess(error, self.maxError, 'h_px not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_h_prho(self):
        error = self.steamTable.h_prho(1.0, 2.0) - 1082.773391
        self.assertLess(error, self.maxError, 'h_prho not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_h_tx(self):
        error = self.steamTable.h_tx(100.0, 0.5) - 1547.33559211
        self.assertLess(error, self.maxError, 'h_tx not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_vV_p(self):
        error = self.steamTable.vV_p(1.0) - 1.694022523
        self.assertLess(error, self.maxError, 'vV_p not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_vL_p(self):
        error = self.steamTable.vL_p(1.0) - 0.001043148
        self.assertLess(error, self.maxError, 'vL_p not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_vV_t(self):
        error = self.steamTable.vV_t(100.0) - 1.671860601
        self.assertLess(error, self.maxError, 'vV_t not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_vL_t(self):
        error = self.steamTable.vL_t(100.0) - 0.001043455
        self.assertLess(error, self.maxError, 'vL_t not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_v_pt(self):
        error = self.steamTable.v_pt(1.0, 100.0) - 1.695959407
        self.assertLess(error, self.maxError, 'v_pt not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_v_ph(self):
        error = self.steamTable.v_ph(1.0, 1000.0) - 0.437925658
        self.assertLess(error, self.maxError, 'v_ph not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_v_ps(self):
        error = self.steamTable.v_ps(1.0, 5.0) - 1.03463539
        self.assertLess(error, self.maxError, 'v_ps not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_rhoV_p(self):
        error = self.steamTable.rhoV_p(1.0) - 0.590310924
        self.assertLess(error, self.maxError, 'rhoV_p not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_rhoL_p(self):
        error = self.steamTable.rhoL_p(1.0) - 958.6368897
        self.assertLess(error, self.maxError, 'rhoL_p not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_rhoV_t(self):
        error = self.steamTable.rhoV_t(100.0) - 0.598135993
        self.assertLess(error, self.maxError, 'rhoV_t not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_rhoL_t(self):
        error = self.steamTable.rhoL_t(100.0) - 958.3542773
        self.assertLess(error, self.maxError, 'rhoL_t not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_rho_pt(self):
        error = self.steamTable.rho_pt(1.0, 100.0) - 0.589636754
        self.assertLess(error, self.maxError, 'rho_pt not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_rho_ph(self):
        error = self.steamTable.rho_ph(1.0, 1000.0) - 2.283492601
        self.assertLess(error, self.maxError, 'rho_ph not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_rho_ps(self):
        error = self.steamTable.rho_ps(1.0, 1.0) - 975.6236788
        self.assertLess(error, self.maxError, 'rho_ps not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_sV_p(self):
        error = self.steamTable.sV_p(0.006117) - 9.155465556
        self.assertLess(error, self.maxError, 'sV_p not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_sL_p(self):
        error = self.steamTable.sL_p(0.0061171) - 1.8359e-05
        self.assertLess(error, self.maxError, 'sL_p not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_sV_t(self):
        error = self.steamTable.sV_t(0.0001) - 9.155756716
        self.assertLess(error, self.maxError, 'sV_t not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_sL_t(self):
        error = self.steamTable.sL_t(100.0) - 1.307014328
        self.assertLess(error, self.maxError, 'sL_t not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_s_pt(self):
        error = self.steamTable.s_pt(1.0, 20.0) - 0.296482921
        self.assertLess(error, self.maxError, 's_pt not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_s_ph(self):
        error = self.steamTable.s_ph(1.0, 84.01181117) - 0.296813845
        self.assertLess(error, self.maxError, 's_ph not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_uV_p(self):
        error = self.steamTable.uV_p(1.0) - 2505.547389
        self.assertLess(error, self.maxError, 'uV_p not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_uL_p(self):
        error = self.steamTable.uL_p(1.0) - 417.332171
        self.assertLess(error, self.maxError, 'uL_p not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_uV_t(self):
        error = self.steamTable.uV_t(100.0) - 2506.015308
        self.assertLess(error, self.maxError, 'uV_t not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_uL_t(self):
        error = self.steamTable.uL_t(100.0) - 418.9933299
        self.assertLess(error, self.maxError, 'uL_t not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_u_pt(self):
        error = self.steamTable.u_pt(1.0, 100.0) - 2506.171426
        self.assertLess(error, self.maxError, 'u_pt not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_u_ph(self):
        error = self.steamTable.u_ph(1.0, 1000.0) - 956.2074342
        self.assertLess(error, self.maxError, 'u_ph not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_u_ps(self):
        error = self.steamTable.u_ps(1.0, 1.0) - 308.5082185
        self.assertLess(error, self.maxError, 'u_ps not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_CpV_p(self):
        error = self.steamTable.CpV_p(1.0) - 2.075938025
        self.assertLess(error, self.maxError, 'cpV_p not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_CpL_p(self):
        error = self.steamTable.CpL_p(1.0) - 4.216149431
        self.assertLess(error, self.maxError, 'cpL_p not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_CpV_t(self):
        error = self.steamTable.CpV_t(100.0) - 2.077491868
        self.assertLess(error, self.maxError, 'cpV_t not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_CpL_t(self):
        error = self.steamTable.CpL_t(100.0) - 4.216645119
        self.assertLess(error, self.maxError, 'cpL_t not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_Cp_pt(self):
        error = self.steamTable.Cp_pt(1.0, 100.0) - 2.074108555
        self.assertLess(error, self.maxError, 'cp_pt not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_Cp_ph(self):
        error = self.steamTable.Cp_ph(1.0, 200.0) - 4.17913573169
        self.assertLess(error, self.maxError, 'Cp_ph not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_Cp_ps(self):
        error = self.steamTable.Cp_ps(1.0, 1.0) - 4.190607038
        self.assertLess(error, self.maxError, 'Cp_ps not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_CvV_p(self):
        error = self.steamTable.CvV_p(1.0) - 1.552696979
        self.assertLess(error, self.maxError, 'CvV_p not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_CvL_p(self):
        error = self.steamTable.CvL_p(1.0) - 3.769699683
        self.assertLess(error, self.maxError, 'CvL_p not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_CvV_t(self):
        error = self.steamTable.CvV_t(100.0) - 1.553698696
        self.assertLess(error, self.maxError, 'CvV_t not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_CvL_t(self):
        error = self.steamTable.CvL_t(100.0) - 3.76770022
        self.assertLess(error, self.maxError, 'CvL_t not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_Cv_pt(self):
        error = self.steamTable.Cv_pt(1.0, 100.0) - 1.551397249
        self.assertLess(error, self.maxError, 'Cv_pt not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_Cv_ph(self):
        error = self.steamTable.Cv_ph(1.0, 200.0) - 4.035176364
        self.assertLess(error, self.maxError, 'Cv_ph not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_Cv_ps(self):
        error = self.steamTable.Cv_ps(1.0, 1.0) - 3.902919468
        self.assertLess(error, self.maxError, 'Cv_ps not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_wV_p(self):
        error = self.steamTable.wV_p(1.0) - 472.0541571
        self.assertLess(error, self.maxError, 'wV_p not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_wL_p(self):
        error = self.steamTable.wL_p(1.0) - 1545.451948
        self.assertLess(error, self.maxError, 'wL_p not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_wV_t(self):
        error = self.steamTable.wV_t(100.0) - 472.2559492
        self.assertLess(error, self.maxError, 'wV_t not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_wL_t(self):
        error = self.steamTable.wL_t(100.0) - 1545.092249
        self.assertLess(error, self.maxError, 'wL_t not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_w_pt(self):
        error = self.steamTable.w_pt(1.0, 100.0) - 472.3375235
        self.assertLess(error, self.maxError, 'w_pt not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_w_ph(self):
        error = self.steamTable.w_ph(1.0, 200.0) - 1542.682475
        self.assertLess(error, self.maxError, 'w_ph not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_w_ps(self):  # TODO: Check values and calculation
        error = self.steamTable.w_ps(1.0, 1.0) - 1557.8585
        self.assertLess(error, self.maxError, 'w_ps not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_my_pt(self):
        error = self.steamTable.my_pt(1.0, 100.0) - 1.22704e-05
        self.assertLess(error, self.maxError, 'my_pt not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_my_ph(self):
        error = self.steamTable.my_ph(1.0, 100.0) - 0.000914003770302
        self.assertLess(error, self.maxError, 'my_ph not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_my_ps(self):
        error = self.steamTable.my_ps(1.0, 1.0) - 0.000384222
        self.assertLess(error, self.maxError, 'my_ps not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_tcL_p(self):
        error = self.steamTable.tcL_p(1.0) - 0.677593822
        self.assertLess(error, self.maxError, 'tcL_p not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_tcV_p(self):
        error = self.steamTable.tcV_p(1.0) - 0.024753668
        self.assertLess(error, self.maxError, 'tcV_p not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_tcL_t(self):
        error = self.steamTable.tcL_t(25.0) - 0.607458162
        self.assertLess(error, self.maxError, 'tcL_t not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_tcV_t(self):
        error = self.steamTable.tcV_t(25.0) - 0.018326723
        self.assertLess(error, self.maxError, 'tcV_t not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_tc_pt(self):
        error = self.steamTable.tc_pt(1.0, 25.0) - 0.607509806
        self.assertLess(error, self.maxError, 'tc_pt not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_tc_ph(self):
        error = self.steamTable.tc_ph(1.0, 100.0) - 0.605710062
        self.assertLess(error, self.maxError, 'tc_ph not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_tc_hs(self):
        error = self.steamTable.tc_hs(100.0, 0.34) - 0.606283124
        self.assertLess(error, self.maxError, 'tc_hs not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_st_t(self):
        error = self.steamTable.st_t(100.0) - 0.0589118685877
        self.assertLess(error, self.maxError, 'st_t not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_st_p(self):
        error = self.steamTable.st_p(1.0) - 0.058987784
        self.assertLess(error, self.maxError, 'st_p not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_x_ph(self):
        error = self.steamTable.x_ph(1.0, 1000.0) - 0.258055424
        self.assertLess(error, self.maxError, 'x_ph not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_x_ps(self):
        error = self.steamTable.x_ps(1.0, 4.0) - 0.445397961
        self.assertLess(error, self.maxError, 'x_ps not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_vx_ph(self):
        error = self.steamTable.vx_ph(1.0, 418.0) - 0.288493093
        self.assertLess(error, self.maxError, 'vx_ph not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})

    def test_vx_ps(self):
        error = self.steamTable.vx_ps(1.0, 4.0) - 0.999233827
        self.assertLess(error, self.maxError, 'vx_ps not passed Error %(error)e allowed: %(max)e' % {'error': error, 'max': self.maxError})
# -*- coding: utf-8 -*-
"""
@date: 14 December 2020 (update)

This source code is provided by Richard J Smith 'as is' and 'with all faults'. The provider makes no 
representations or warranties of any kind concerning the safety, suitability, inaccuracies, 
typographical errors, or other harmful components of this software.
"""

from pyXSteam.XSteam import XSteam

steamTable = XSteam(XSteam.UNIT_SYSTEM_MKS)

from fluprodia import FluidPropertyDiagram

print('Rankine superheat cycle analysis (non ideal)')

p1 = 0.06
s1 = steamTable.sL_p(p1)
T1 = steamTable.t_ps(p1, s1)
h1 = steamTable.hL_p(p1)
print('\nPoint 1')
print(f"p1: {round(float(p1),1)} bar")
print(f"T1: {round(float(T1),1)} degC")
print(f"H1: {round(float(h1),1)} kJ/kg")
print(f"S1: {round(float(s1),3)} kJ/kg K")

p2 = 150
s2 = s1

v = 1 / steamTable.rhoL_p(p1)
Example #29
0
# -*- coding: utf-8 -*-
"""
Created on Fri Mar 20 12:11:00 2020
Pour installer XSteam, dans la console anaconda :
    pip install pyXSteam
"""

import numpy as np
import matplotlib.pyplot as plt
from pyXSteam.XSteam import XSteam

steamTable = XSteam(XSteam.UNIT_SYSTEM_MKS)

p = np.linspace(1, 50, 300)
Tsat = np.asarray([steamTable.tsat_p(k) for k in p])
plt.figure()
plt.plot(p, Tsat)
Example #30
0
def demo_simpel_values():
    """calculate values and print the results"""
    steam_table = XSteam(XSteam.UNIT_SYSTEM_MKS)
    # get saturated liquid enthalpy for a preasure of 220 bar
    print("hV_p(220.0) =", steam_table.hL_p(220.0))
    # get saturated vapour enthalpy for a preasure of 220 bar
    print("hV_p(220.0) =", steam_table.hV_p(220.0))
    print("tcL_p(1.0) =", steam_table.tcL_p(1.0))
    print("tcL_t(25.0) =", steam_table.tcL_t(25.0))
    print("tcV_p(1.0) =", steam_table.tcV_p(1.0))
    print("tcL_t(25.0) =", steam_table.tcV_t(25.0))
    print("tc_hs(100.0, 0.34) =", steam_table.tc_hs(100.0, 0.34))
    print("tc_ph(1.0, 100.0) =", steam_table.tc_ph(1.0, 100.0))
    print("tc_pt(1.0, 25.0) =", steam_table.tc_pt(1.0, 25.0))
    print("w_ps(1.0, 1.0) =", steam_table.w_ps(1.0, 1.0))
Example #31
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@date: 14 December 2020 (update)

This source code is provided by Richard J Smith 'as is' and 'with all faults'. The provider makes no 
representations or warranties of any kind concerning the safety, suitability, inaccuracies, 
typographical errors, or other harmful components of this software.
"""

import matplotlib.pyplot as plt
import numpy as np
from pyXSteam.XSteam import XSteam

steamTable = XSteam(XSteam.UNIT_SYSTEM_MKS)

print('Rankine cycle analysis')

p1 = 0.1
s1 = steamTable.sL_p(p1)
T1 = steamTable.t_ps(p1, s1)
h1 = steamTable.hL_p(p1)
print('\nPoint 1')
print(f"p1: {round(float(p1),1)} bar")
print(f"T1: {round(float(T1),1)} degC")
print(f"H1: {round(float(h1),1)} kJ/kg")
print(f"S1: {round(float(s1),3)} kJ/kg K")

p2 = 150
s2 = s1
Example #32
0
def demo_simpel_Values():
    steamTable = XSteam(XSteam.UNIT_SYSTEM_MKS)
    # get saturated liquid enthalpy for a preasure of 220 bar
    print('hV_p(220.0) =', steamTable.hL_p(220.0))
    # get saturated vapour enthalpy for a preasure of 220 bar
    print('hV_p(220.0) =', steamTable.hV_p(220.0))
    print('tcL_p(1.0) =', steamTable.tcL_p(1.0))
    print('tcL_t(25.0) =', steamTable.tcL_t(25.0))
    print('tcV_p(1.0) =', steamTable.tcV_p(1.0))
    print('tcL_t(25.0) =', steamTable.tcV_t(25.0))
    print('tc_hs(100.0, 0.34) =', steamTable.tc_hs(100.0, 0.34))
    print('tc_ph(1.0, 100.0) =', steamTable.tc_ph(1.0, 100.0))
    print('tc_pt(1.0, 25.0) =', steamTable.tc_pt(1.0, 25.0))
    print('w_ps(1.0, 1.0) =', steamTable.w_ps(1.0, 1.0))
Example #33
0
import math as m
from pyXSteam.XSteam import XSteam  #Table of possible water properties
steamTable = XSteam(XSteam.UNIT_SYSTEM_BARE)


def DP(Tavg, Density, VIS, Pitch, FROD, massfr, Le):
    FA = (Pitch**2) - ((m.pi * (FROD**2)) / 4)
    De = 4 * FA / (m.pi * FROD)
    Re = massfr * De / VIS
    f = 0.184 * (Re**-0.2)
    DP = ((f * (massfr**2) / (2 * De * Density)) * (Le) +
          (Density * 9.81 * Le))
    return DP
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@date: 10 December 2020

This source code is provided by Richard J Smith 'as is' and 'with all faults'. The provider makes no 
representations or warranties of any kind concerning the safety, suitability, inaccuracies, 
typographical errors, or other harmful components of this software.
"""

import matplotlib.pyplot as plt
import numpy as np
from pyXSteam.XSteam import XSteam

steamTable = XSteam(XSteam.UNIT_SYSTEM_MKS)

print('Rankine reheat cycle analysis (non ideal)')

p1 = 0.06
s1 = steamTable.sL_p(p1)
T1 = steamTable.t_ps(p1, s1)
h1 = steamTable.hL_p(p1)
print('\nPoint 1')
print(f"T1: {round(float(T1),1)} degC")
print(f"P1: {round(float(p1),1)} bar")
print(f"H1: {round(float(h1),1)} kJ/kg")
print(f"S1: {round(float(s1),3)} kJ/kg K")

p2 = 150
s2 = s1