Example 7 - Hydrodinamic Bearings#

In this example, we use the rotor seen in Example 5.9.6 from [Friswell, 2010].

Same rotor of Example 3, but the bearings are replaced with hydrodynamic bearings. In order to instantiate them, rather than giving the stiffness and damping data, we will calculate them using their hydrodinamic data, as provided by Example 5.5.1 from the book: The oil-film bearings have a diameter of 100 mm, are 30 mm long, and each supports a static load of 525 N, which represents half of the weight of the rotor. The radial clearance in the bearings is 0.1 mm and the oil film has a viscosity of 0.1 Pa s.

import ross as rs
import numpy as np

Q_ = rs.Q_
# Classic Instantiation of the rotor
shaft_elements = []
disk_elements = []
steel = rs.materials.steel
for i in range(6):
    shaft_elements.append(rs.ShaftElement(L=0.25, material=steel, n=i, idl=0, odl=0.05))

disk_elements.append(
    rs.DiskElement.from_geometry(n=2, material=steel, width=0.07, i_d=0.05, o_d=0.28)
)

disk_elements.append(
    rs.DiskElement.from_geometry(n=4, material=steel, width=0.07, i_d=0.05, o_d=0.35)
)

bearing = rs.BearingFluidFlow(
    n=0,
    nz=30,
    ntheta=20,
    length=0.03,
    omega=np.linspace(1, 5000, 5),
    p_in=0,
    p_out=0,
    radius_rotor=0.0499,
    radius_stator=0.05,
    visc=0.1,
    rho=860.0,
    load=525,
)

# copy bearing to decrease compute time and set node
bearing_copy = rs.BearingElement(
    n=6,
    frequency=bearing.frequency,
    kxx=bearing.kxx,
    kxy=bearing.kxy,
    kyx=bearing.kyx,
    kyy=bearing.kyy,
    cxx=bearing.cxx,
    cxy=bearing.cxy,
    cyx=bearing.cyx,
    cyy=bearing.cyy,
)

bearing_seal_elements = [bearing, bearing_copy]

rotor = rs.Rotor(
    shaft_elements=shaft_elements,
    bearing_elements=bearing_seal_elements,
    disk_elements=disk_elements,
)

rotor.plot_rotor()
# copy bearing to decrease compute time and set node
bearing_copy = rs.BearingElement(
    n=6,
    frequency=bearing.frequency,
    kxx=bearing.kxx,
    kxy=bearing.kxy,
    kyx=bearing.kyx,
    kyy=bearing.kyy,
    cxx=bearing.cxx,
    cxy=bearing.cxy,
    cyx=bearing.cyx,
    cyy=bearing.cyy,
)

bearing_seal_elements = [bearing, bearing_copy]

rotor = rs.Rotor(
    shaft_elements=shaft_elements,
    bearing_elements=bearing_seal_elements,
    disk_elements=disk_elements,
)

rotor.plot_rotor()
campbell = rotor.run_campbell(speed_range=Q_(list(range(0, 4500, 50)), "RPM"))
/home/raphael/ross/ross/rotor_assembly.py:1107: UserWarning:

Extrapolating bearing coefficients. Be careful when post-processing the results.
# Obtaining results for w=4000RPM

modal = rotor.run_modal(4000 * np.pi / 30)

print("Normal Instantiation =", modal.wn / (2 * np.pi))
Normal Instantiation = [17.10262892 18.09881713 35.61841701 35.86783067 67.02089894 71.42670057]
# The input units must be according to your unit standard system
campbell = rotor.run_campbell(np.linspace(0, 4000 * np.pi / 30, 50))
# Plotting frequency in RPM
campbell.plot(frequency_units="rpm")
/home/raphael/ross/ross/rotor_assembly.py:1107: UserWarning:

Extrapolating bearing coefficients. Be careful when post-processing the results.
for mode in range(6):
    display(modal.plot_mode_3d(mode, frequency_units="Hz"))
for mode in range(6):
    display(modal.plot_orbit(mode, nodes=[2, 4]))

References#

Fri10

MichaelĀ I Friswell. Dynamics of rotating machines. Cambridge University Press, 2010.