def rotor_example1(n_el=48): """ This function instantiate a rotor similar to the example 5.9.1, page 206 (Dynamics of rotating machine, FRISSWELL) The following functions test_example1_w_equals0rpm() and test_example1_w_equals4000rpm() are the test functions of this example. P.S.:Isotropic bearings. :param w: speed of rotation. :param n_el: number of shaft elements. :return: Rotor object. """ shaft_elm = [] for i in range(n_el): shaft_elm.append( rs.ShaftElement(L=1.5 / n_el, material=steel, n=i, i_d=0, o_d=0.05)) disk0 = rs.DiskElement.from_geometry(n=(n_el / 1.5) * 0.5, material=steel, width=0.07, i_d=0.05, o_d=0.28) disk1 = rs.DiskElement.from_geometry(n=(n_el / 1.5), material=steel, width=0.07, i_d=0.05, o_d=0.35) bearing0 = rs.BearingElement(n=0, kxx=1e6, kyy=1e6, cxx=0, cyy=0) bearing1 = rs.BearingElement(n=n_el, kxx=1e6, kyy=1e6, cxx=0, cyy=0) return rs.Rotor(shaft_elm, [disk0, disk1], [bearing0, bearing1])
def rotor_example2(n_el=48): """ This function instantiate a overhung rotor similar to the example 5.9.9, page 218 (Dynamics of rotating machine, FRISSWELL). The following functions test_example2_w_equals0rpm() and test_example2_w_equals4000rpm() are the test functions of this example. P.S.: Overhung rotor. :param n_el: number of shaft elements. :return: Rotor object. """ shaft_elm = [] for i in range(n_el): shaft_elm.append( rs.ShaftElement(L=1.5 / n_el, material=steel, n=i, i_d=0, o_d=0.05)) return rs.Rotor( shaft_elm, [ rs.DiskElement.from_geometry( n=n_el, material=steel, width=0.07, i_d=0.05, o_d=0.35) ], [ rs.BearingElement(n=0, kxx=10e6, kyy=10e6, cxx=0, cyy=0), rs.BearingElement( n=int((n_el / 1.5)), kxx=10e6, kyy=10e6, cxx=0, cyy=0), ], )
def rotor_example7(w=0, n_el=48): """ This function instantiate a rotor similar to the example 5.9.10, page 219 (Dynamics of rotating machine, FRISSWELL) The following functions test_example7_w_equals0rpm() and test_example7_w_equals4000rpm() are the test functions of this example. P.S.: Tapered shaft and damped bearings with anisotropic properties. :param w: speed of rotation. :param n_el: number of shaft elements. :return: Rotor object. """ shaft_elm = [] for i in range(n_el): shaft_elm.append( rs.ShaftElement(L=1.5 / n_el, material=steel, n=i, i_d=0, o_d=0.025 + 0.015 * (i / n_el))) disk0 = rs.DiskElement.from_geometry(n=(n_el / 2), material=steel, width=0.07, i_d=0.05, o_d=0.28) bearing0 = rs.BearingElement(n=0, kxx=1e7, kyy=1e7, cxx=1e3, cyy=1e3) bearing1 = rs.BearingElement(n=n_el, kxx=1e7, kyy=1e7, cxx=1e3, cyy=1e3) return rs.Rotor(shaft_elm, [disk0], [bearing0, bearing1], w=w)
def base_rotor_example(): """Internal routine that create an example of a rotor, to be used in the associated crack problems as a prerequisite. This function returns an instance of a 6 DoF rotor, with a number of components attached. As this is not the focus of the example here, but only a requisite, see the example in "rotor assembly" for additional information on the rotor object. Returns ------- rotor : ross.Rotor Object An instance of a flexible 6 DoF rotor object. Examples -------- >>> rotor = base_rotor_example() >>> rotor.Ip 0.015118294226367068 """ steel2 = ross.Material(name="Steel", rho=7850, E=2.17e11, G_s=81.2e9) # Rotor with 6 DoFs, with internal damping, with 10 shaft elements, 2 disks and 2 bearings. i_d = 0 o_d = 0.019 n = 33 # fmt: off L = np.array( [0 , 25, 64, 104, 124, 143, 175, 207, 239, 271, 303, 335, 345, 355, 380, 408, 436, 466, 496, 526, 556, 586, 614, 647, 657, 667, 702, 737, 772, 807, 842, 862, 881, 914] )/ 1000 # fmt: on L = [L[i] - L[i - 1] for i in range(1, len(L))] shaft_elem = [ ross.ShaftElement6DoF( material=steel2, L=l, idl=i_d, odl=o_d, idr=i_d, odr=o_d, alpha=8.0501, beta=1.0e-5, rotary_inertia=True, shear_effects=True, ) for l in L ] Id = 0.003844540885417 Ip = 0.007513248437500 disk0 = ross.DiskElement6DoF(n=12, m=2.6375, Id=Id, Ip=Ip) disk1 = ross.DiskElement6DoF(n=24, m=2.6375, Id=Id, Ip=Ip) kxx1 = 4.40e5 kyy1 = 4.6114e5 kzz = 0 cxx1 = 27.4 cyy1 = 2.505 czz = 0 kxx2 = 9.50e5 kyy2 = 1.09e8 cxx2 = 50.4 cyy2 = 100.4553 bearing0 = ross.BearingElement6DoF( n=4, kxx=kxx1, kyy=kyy1, cxx=cxx1, cyy=cyy1, kzz=kzz, czz=czz ) bearing1 = ross.BearingElement6DoF( n=31, kxx=kxx2, kyy=kyy2, cxx=cxx2, cyy=cyy2, kzz=kzz, czz=czz ) rotor = ross.Rotor(shaft_elem, [disk0, disk1], [bearing0, bearing1]) return rotor
bearing0 = rs.BearingElement6DoF(n=4, kxx=kxx1, kyy=kyy1, cxx=cxx1, cyy=cyy1, kzz=kzz, czz=czz) bearing1 = rs.BearingElement6DoF(n=31, kxx=kxx2, kyy=kyy2, cxx=cxx2, cyy=cyy2, kzz=kzz, czz=czz) rotor = rs.Rotor(shaft_elem, [disk0, disk1], [bearing0, bearing1]) @pytest.fixture def rub(): unbalance_magnitudet = np.array([5e-4, 0]) unbalance_phaset = np.array([-np.pi / 2, 0]) rubbing = rotor.run_rubbing( dt=0.001, tI=0, tF=0.5, deltaRUB=7.95e-5, kRUB=1.1e6, cRUB=40,
n_balls = 7 d_balls = 0.006 fs = 10 alpha = (np.pi / 18) bearings = [ rs.BallBearingElement( n=i*2, n_balls=n_balls, d_balls=d_balls, fs=fs, alpha=alpha, tag=(f"Rolamento de esferas {i}") ) for i in range(N_bearing) ] # =========================================== # ROTOR # rotor = rs.Rotor(shaft_elements, [disk_geo], bearings) rotor.plot_rotor() # =========================================== # DIAGRAMA DE CAMPBELL # samples = 50 speed_range = np.linspace(20, 1000, samples) # [rad/s] campbell = rotor.run_campbell(speed_range) campbell.plot()