Example 5 - Cross-coupled bearings.#

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

This system is the same as that of Example 3, except that some coupling is introduced in the bearings between the x and y directions. The bearings have direct stiffnesses of \(1 MN/m\) and cross-coupling stiffnesses of \(0.5 MN/m\).

import ross as rs
import numpy as np
# Classic Instantiation of the rotor
shaft_elements = []
bearing_seal_elements = []
disk_elements = []
Steel = rs.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_seal_elements.append(
    rs.BearingElement(n=0, kxx=1e6, kyy=1e6, kxy=0.5e6, cxx=0, cyy=0)
)
bearing_seal_elements.append(
    rs.BearingElement(n=6, kxx=1e6, kyy=1e6, kxy=0.5e6, cxx=0, cyy=0)
)

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

rotor594c.plot_rotor()
# From_section class method instantiation.
bearing_seal_elements = []
disk_elements = []
shaft_length_data = 3 * [0.5]
i_d = 3 * [0]
o_d = 3 * [0.05]

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

disk_elements.append(
    rs.DiskElement.from_geometry(n=2, material=Steel, width=0.07, i_d=0.05, o_d=0.35)
)
bearing_seal_elements.append(rs.BearingElement(n=0, kxx=1e6, kyy=1e6, cxx=0, cyy=0))
bearing_seal_elements.append(rs.BearingElement(n=3, kxx=1e6, kyy=1e6, cxx=0, cyy=0))

rotor594fs = rs.Rotor.from_section(
    brg_seal_data=bearing_seal_elements,
    disk_data=disk_elements,
    leng_data=shaft_length_data,
    idl_data=i_d,
    odl_data=o_d,
    material_data=Steel,
)
rotor594fs.plot_rotor()
# Obtaining results for w=0 (wn is in rad/s)
modal594c = rotor594c.run_modal(0)
modal594fs = rotor594fs.run_modal(0)

print("Normal Instantiation =", modal594c.wn)
print("\n")
print("From Section Instantiation =", modal594fs.wn)
Normal Instantiation = [ 86.65809746  86.65813124 274.31285297 274.31285487 716.78464412
 716.78798043]


From Section Instantiation = [ 86.65926451  86.65926451 274.37573752 274.37573752 718.87267816
 718.87267816]
# Obtaining results for w=4000RPM (wn is in rad/s)

modal594c = rotor594c.run_modal(4000 * np.pi / 30)

print("Normal Instantiation =", modal594c.wn)
Normal Instantiation = [ 84.19790045  89.03269396 246.44121183 301.08623205 594.81950178
 834.04203781]

References#

Fri10

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