예제 #1
0
def heat(psyname='heat', **fixedVars):
    b = Block()
    b.psyname = psyname
    b.psytype1 = "stream"
    b.psytype2 = "heat"
    b.H = myVar(0, (-big, big), "kJ")  # extensive quantities
    b.A = myVar(0, (0, 0), "kg")
    b.V = myVar(0, (0, 0), "kg")
    b.W = myVar(0, (0, 0), "kg")
    for (var, val) in fixedVars.items():
        setattr(b, var + "_fixed", myCon(getattr(b, var) == val))
    return b
예제 #2
0
def vapor(psyname='vapor', **fixedVars):
    b = Block()
    b.psyname = psyname
    b.psytype1 = "stream"
    b.psytype2 = "vapor"
    b.T = myVar(300, (173, 523), "K")
    b.t = myVar(25, (-100, 250), "°C")
    b.H = myVar(0, (-big, big), "kJ")  # extensive quantities
    b.A = myVar(0, (0, 0), "kg")
    b.V = myVar(0, (-big, big), "kg")
    b.W = myVar(0, (0, 0), "kg")
    b.T_convert = myCon(b.T == Tref + b.t)
    b.H_def = myCon(b.H == (H2O.g.H0(b.T) - H2O.l.H0(Tref)) / H2O.M * b.V)
    for (var, val) in fixedVars.items():
        setattr(b, var + "_fixed", myCon(getattr(b, var) == val))
    return b
예제 #3
0
def humid_air(psyname, patm=101325, **fixedVars):
    ref = {
        'A': 1.0,
        'H': 45.54956808796108,
        'T': 298.15,
        'Td': 283.6258531107488,
        'Tw': 289.41173683833046,
        'V': 0.007912721306430524,
        'W': 0,
        'cp': 29.602790962509385,
        'psyname': 'ha',
        'h': 45.54956808796108,
        'm3': 0.8587547216582929,
        'psat': 3169.7468549523596,
        'pvap': 1267.898741980944,
        'rh': 0.4,
        't': 25.0,
        'td': 10.475853110748833,
        'tw': 16.261736838330496,
        'v': 0.007912721306430524,
        'vs': 0.8587547216582929
    }
    b = Block()
    b.patm = patm
    b.psyname = psyname
    b.psytype1 = "stream"
    b.psytype2 = "humid air"

    b.t = myVar(ref["t"], (-100, 250), "°C")  # intensive quantities
    b.tw = myVar(ref["tw"], (-100, 250), "°C")
    b.td = myVar(ref["td"], (-100, 250), "°C")
    b.T = myVar(ref["T"], (173, 523), "K")
    b.Tw = myVar(ref["Tw"], (173, 523), "K")
    b.Td = myVar(ref["Td"], (173, 523), "K")
    b.psat = myVar(ref["psat"], (0, big), "Pa")
    b.pvap = myVar(ref["pvap"], (0, big), "Pa")
    b.rh = myVar(ref["rh"], (0, 2), "-")
    b.v = myVar(ref["v"], (0, big), "kg/kga")
    b.h = myVar(ref["h"], (-big, big), "kJ/kga")
    b.vs = myVar(ref["vs"], (0, big), "m³/kga")
    b.m3 = myVar(ref["m3"], (0, big), "m³/kga")
    b.cp = myVar(ref["cp"], (0, big), "J/mola/K")
    b.H = myVar(ref["H"], (-big, big), "kJ")  # extensive quantities
    b.A = myVar(ref["A"], (0, big), "kg")
    b.V = myVar(ref["V"], (0, big), "kg")
    b.W = myVar(ref["W"], (0, 0), "kg")

    bA1 = 1
    b.T_convert = myCon(b.T == Tref + b.t)
    b.Tw_convert = myCon(b.Tw == Tref + b.tw)
    b.Td_convert = myCon(b.Td == Tref + b.td)
    b.Tw_def = myCon(
        H2O.psat(b.Tw) / patm - b.v / H2O.M /
        (b.v / H2O.M + bA1 / air.M) == b.cp / H2O.L(Tref) * (b.T - b.Tw))
    b.Td_def = myCon(b.v / H2O.M / (bA1 / air.M + b.v / H2O.M) *
                     patm == H2O.psat(b.Td))
    b.psat_def = myCon(b.psat == H2O.psat(b.T))
    b.pvap_def = myCon(b.pvap == b.v / H2O.M / (bA1 / air.M + b.v / H2O.M) *
                       patm)
    b.rh_def = myCon(b.psat * b.rh == b.v / H2O.M /
                     (bA1 / air.M + b.v / H2O.M) * patm)
    b.h_def = myCon(bA1 * b.h == bA1 / air.M * (air.H0(b.T) - air.H0(Tref)) +
                    b.v / H2O.M * (H2O.g.H0(b.T) - H2O.l.H0(Tref)))
    b.vs_def = myCon(b.vs == (b.v / H2O.M + bA1 / air.M) * Rgas * b.T / patm /
                     bA1 * 1000)
    b.m3_def = myCon(b.m3 == b.vs * b.A)
    b.cp_def = myCon(bA1 * b.cp / air.M == bA1 / air.M * air.cp0(b.T) +
                     b.v / H2O.M * H2O.g.cp0(b.T))
    b.V_def = myCon(b.V == b.v * b.A)
    b.H_def = myCon(b.H == b.h * b.A)
    for (var, val) in fixedVars.items():
        setattr(b, var + "_fixed", myCon(getattr(b, var) == val))

    return b