Example 5 - Cross-coupled bearings.
Contents
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.