Example 21 - Features of Eigenvalues and Eigenvectors - Hydrodynamic Bearings#
This example is based on Example 5.9.6 from [Friswell, 2010].
Example 7 from the documentation uses the BearingFluidFlow
class to create a hydrodynamic bearing.
Here we are going to use the CylindricalBearing
class, which is implemented based on [Friswell, 2010].
Hydrodynamic Bearings. Repeat the analysis of Example 5.9.1 when the bearings are replaced with hydrodynamic bearings. The oil-film bear ings 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. These bearings have the same characteristics as Example 5.5.1.
import ross as rs
import numpy as np
import plotly.graph_objects as go
from IPython.display import display
# Make sure the default renderer is set to 'notebook' for inline plots in Jupyter
import plotly.io as pio
pio.renderers.default = "notebook"
Q_ = rs.Q_
steel = rs.Material("steel", E=211e9, G_s=81.2e9, rho=7810)
L = 0.25
N = 6
idl = 0
odl = 0.05
shaft = [rs.ShaftElement(L=L, idl=idl, odl=odl, material=steel) for i in range(N)]
bearings = [
rs.CylindricalBearing(
n=0,
speed=Q_(list(range(0, 5000, 50)), "RPM"),
weight=525,
bearing_length=Q_(30, "mm"),
journal_diameter=Q_(100, "mm"),
radial_clearance=Q_(0.1, "mm"),
oil_viscosity=0.1,
),
rs.CylindricalBearing(
n=len(shaft),
speed=Q_(list(range(0, 5000, 50)), "RPM"),
weight=525,
bearing_length=Q_(30, "mm"),
journal_diameter=Q_(100, "mm"),
radial_clearance=Q_(0.1, "mm"),
oil_viscosity=0.1,
),
]
disks = [
rs.DiskElement.from_geometry(
n=2, material=steel, width=0.07, i_d=odl, o_d=0.28, scale_factor="mass"
),
rs.DiskElement.from_geometry(
n=4, material=steel, width=0.07, i_d=odl, o_d=0.35, scale_factor="mass"
),
]
rotor = rs.Rotor(shaft_elements=shaft, disk_elements=disks, bearing_elements=bearings)
rotor.plot_rotor()
campbell = rotor.run_campbell(speed_range=Q_(list(range(0, 4500, 50)), "RPM"))
UserWarning:
Extrapolating bearing coefficients. Be careful when post-processing the results.
campbell.plot(frequency_units="RPM")
modal = rotor.run_modal(speed=Q_(4000, "RPM"))
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]))