예제 #1
0
def rotor1():
    # rotor with 6 shaft elements, 2 disks and 2 random bearings
    i_d = 0
    o_d = 0.05
    n = 6
    L = [0.25 for _ in range(n)]

    shaft_elem = [ShaftElement(l, i_d, o_d, material=steel) for l in L]

    disk0 = DiskElement.from_geometry(n=2,
                                      material=steel,
                                      width=0.07,
                                      i_d=0.05,
                                      o_d=0.28)
    disk1 = DiskElement.from_geometry(n=4,
                                      material=steel,
                                      width=0.07,
                                      i_d=0.05,
                                      o_d=0.28)

    kxx = [1e6, 2e6]
    cxx = [1e3, 2e3]
    bearing0 = ST_BearingElement(n=0,
                                 kxx=kxx,
                                 cxx=cxx,
                                 is_random=["kxx", "cxx"])
    bearing1 = ST_BearingElement(n=6,
                                 kxx=kxx,
                                 cxx=cxx,
                                 is_random=["kxx", "cxx"])

    return ST_Rotor(shaft_elem, [disk0, disk1], [bearing0, bearing1])
예제 #2
0
def report2():
    # rotor type: single double overhung
    i_d = 0.0
    o_d = 0.05
    n = 50
    L = [0.03 for _ in range(n)]

    shaft_elem = [
        ShaftElement(l,
                     i_d,
                     o_d,
                     material=steel,
                     shear_effects=True,
                     rotary_inertia=True,
                     gyroscopic=True) for l in L
    ]

    disk0 = DiskElement.from_geometry(n=0,
                                      material=steel,
                                      width=0.07,
                                      i_d=0.05,
                                      o_d=0.28)
    disk1 = DiskElement.from_geometry(n=50,
                                      material=steel,
                                      width=0.07,
                                      i_d=0.05,
                                      o_d=0.35)

    stfx = 1e6
    stfy = 0.8e6
    bearing0 = BearingElement(15, kxx=stfx, kyy=stfy, cxx=1000)
    bearing1 = BearingElement(35, kxx=stfx, kyy=stfy, cxx=1000)

    rotor = Rotor(shaft_elem, [disk0, disk1], [bearing0, bearing1])

    minspeed = 3820.0
    maxspeed = 9550.0
    machine_type = "pump"
    units = "rpm"

    return Report(rotor, minspeed, maxspeed, machine_type, units)
예제 #3
0
def report0():
    # rotor type: between bearings
    i_d = 0.0
    o_d = 0.05
    n = 50
    L = [0.03 for _ in range(n)]

    shaft_elem = [
        ShaftElement(l,
                     i_d,
                     o_d,
                     material=steel,
                     shear_effects=True,
                     rotary_inertia=True,
                     gyroscopic=True) for l in L
    ]

    disk0 = DiskElement.from_geometry(n=15,
                                      material=steel,
                                      width=0.07,
                                      i_d=0.05,
                                      o_d=0.28)
    disk1 = DiskElement.from_geometry(n=35,
                                      material=steel,
                                      width=0.07,
                                      i_d=0.05,
                                      o_d=0.35)

    stfx = 1e6
    stfy = 0.8e6
    bearing0 = BearingElement(0, kxx=stfx, kyy=stfy, cxx=1000)
    bearing1 = BearingElement(50, kxx=stfx, kyy=stfy, cxx=1000)

    rotor = Rotor(shaft_elem, [disk0, disk1], [bearing0, bearing1])

    minspeed = 400.0
    maxspeed = 1000.0
    machine_type = "compressor"
    units = "rad/s"

    return Report(rotor, minspeed, maxspeed, machine_type, units)
예제 #4
0
def disk_from_geometry():
    return DiskElement.from_geometry(0, steel, 0.07, 0.05, 0.28)
예제 #5
0
def report2():
    # rotor type: double overhung
    i_d = 0
    o_d = 0.05
    n = 6
    L = [0.25 for _ in range(n)]

    shaft_elem = [
        ShaftElement(
            l,
            i_d,
            o_d,
            material=steel,
            shear_effects=True,
            rotary_inertia=True,
            gyroscopic=True,
        ) for l in L
    ]

    disk0 = DiskElement.from_geometry(n=0,
                                      material=steel,
                                      width=0.07,
                                      i_d=0.05,
                                      o_d=0.28)
    disk1 = DiskElement.from_geometry(n=6,
                                      material=steel,
                                      width=0.07,
                                      i_d=0.05,
                                      o_d=0.28)

    stfx = [0.4e7, 0.5e7, 0.6e7, 0.7e7]
    stfy = [0.8e7, 0.9e7, 1.0e7, 1.1e7]
    freq = [400, 800, 1200, 1600]
    bearing0 = BearingElement(2, kxx=stfx, kyy=stfy, cxx=2e3, frequency=freq)
    bearing1 = BearingElement(4, kxx=stfx, kyy=stfy, cxx=2e3, frequency=freq)
    oper_clerance_brg = [bearing0, bearing1]

    rotor = Rotor(shaft_elem, [disk0, disk1], [bearing0, bearing1])

    # coefficients for minimum clearance
    stfx = [0.7e7, 0.8e7, 0.9e7, 1.0e7]
    dampx = [2.0e3, 1.9e3, 1.8e3, 1.7e3]
    freq = [400, 800, 1200, 1600]
    bearing0 = BearingElement(2, kxx=stfx, cxx=dampx, frequency=freq)
    bearing1 = BearingElement(4, kxx=stfx, cxx=dampx, frequency=freq)
    min_clearance_brg = [bearing0, bearing1]

    # coefficients for maximum clearance
    stfx = [0.4e7, 0.5e7, 0.6e7, 0.7e7]
    dampx = [2.8e3, 2.7e3, 2.6e3, 2.5e3]
    freq = [400, 800, 1200, 1600]
    bearing0 = BearingElement(2, kxx=stfx, cxx=dampx, frequency=freq)
    bearing1 = BearingElement(4, kxx=stfx, cxx=dampx, frequency=freq)
    max_clearance_brg = [bearing0, bearing1]

    config = Config()
    config.update_config(
        rotor_properties={
            "rotor_speeds": {
                "min_speed": 3820.0,
                "max_speed": 9550.0,
                "oper_speed": 8000.0,
                "trip_speed": 10500.0,
                "unit": "rpm",
            },
            "rotor_id": {
                "type": "axial_flow"
            },
        },
        bearings={
            "oper_clearance": oper_clerance_brg,
            "min_clearance": min_clearance_brg,
            "max_clearance": max_clearance_brg,
        },
        run_campbell={"speed_range": np.linspace(0, 1500, 51)},
        run_unbalance_response={
            "probes": {
                "node": [1, 4],
                "orientation": [np.pi / 2, np.pi / 2],
                "unit": "rad",
            },
            "frequency_range": np.linspace(0, 1500, 101),
            "plot_deflected_shape": {
                "speed": [615]
            },
        },
        plot_ucs={"stiffness_range": (5, 8)},
        stability_level1={
            "D": [0.35, 0.35],
            "H": [0.08, 0.08],
            "rated_power": [6000, 8000],
            "rho_ratio": [1.11, 1.14],
            "rho_suction": 30.45,
            "rho_discharge": 37.65,
            "length_unit": "m",
            "power_unit": "hp",
            "density_unit": "kg/m**3",
        },
    )

    return Report(rotor, config)
예제 #6
0
def report1():
    # rotor type: single overhung
    i_d = 0.0
    o_d = 0.05
    n = 50
    L = [0.03 for _ in range(n)]

    shaft_elem = [
        ShaftElement(
            l,
            i_d,
            o_d,
            material=steel,
            shear_effects=True,
            rotary_inertia=True,
            gyroscopic=True,
        )
        for l in L
    ]

    disk0 = DiskElement.from_geometry(
        n=0, material=steel, width=0.07, i_d=0.05, o_d=0.28
    )

    stfx = 1e6
    stfy = 0.8e6
    bearing0 = BearingElement(15, kxx=stfx, kyy=stfy, cxx=1000)
    bearing1 = BearingElement(50, kxx=stfx, kyy=stfy, cxx=1000)

    rotor = Rotor(shaft_elem, [disk0], [bearing0, bearing1])

    # coefficients for minimum clearance
    stfx = [0.7e7, 0.8e7, 0.9e7, 1.0e7]
    dampx = [2.0e3, 1.9e3, 1.8e3, 1.7e3]
    freq = [400, 800, 1200, 1600]
    bearing0 = BearingElement(0, kxx=stfx, cxx=dampx, frequency=freq)
    bearing1 = BearingElement(6, kxx=stfx, cxx=dampx, frequency=freq)
    min_clearance_brg = [bearing0, bearing1]

    # coefficients for maximum clearance
    stfx = [0.4e7, 0.5e7, 0.6e7, 0.7e7]
    dampx = [2.8e3, 2.7e3, 2.6e3, 2.5e3]
    freq = [400, 800, 1200, 1600]
    bearing0 = BearingElement(0, kxx=stfx, cxx=dampx, frequency=freq)
    bearing1 = BearingElement(6, kxx=stfx, cxx=dampx, frequency=freq)
    max_clearance_brg = [bearing0, bearing1]

    bearing_clearance_lists = [min_clearance_brg, max_clearance_brg]
    bearing_stiffness_range = (5, 8)

    speed_range = (400, 1000)
    tripspeed = 1200
    machine_type = "turbine"
    units = "rad/s"

    return Report(
        rotor,
        speed_range,
        tripspeed,
        bearing_stiffness_range,
        bearing_clearance_lists,
        machine_type,
        units,
    )