Exemple #1
0
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])
Exemple #2
0
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),
        ],
    )
Exemple #3
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)
Exemple #4
0
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
Exemple #5
0
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,
Exemple #6
0
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()