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])
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)
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)
def disk_from_geometry(): return DiskElement.from_geometry(0, steel, 0.07, 0.05, 0.28)
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)
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, )