Example 13 - Uncertainties on bearings coefficients#
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 now, we’ll considerer some level of uncertainties on bearing direct coefficients (kxx
, kyy
, cxx
, cyy
).
import ross as rs
import ross.stochastic as srs
import numpy as np
import plotly.graph_objects as go
# Make sure the default renderer is set to 'notebook' for inline plots in Jupyter
import plotly.io as pio
pio.renderers.default = "notebook"
# Deterministic Shaft Elements
Steel = rs.steel
shaft = [rs.ShaftElement(L=0.25, material=Steel, idl=0, odl=0.05) for i in range(6)]
# Deterministic Disk Elements
disk1 = rs.DiskElement.from_geometry(
n=2,
material=Steel,
width=0.07,
i_d=0.05,
o_d=0.28,
)
disk2 = rs.DiskElement.from_geometry(
n=4,
material=Steel,
width=0.07,
i_d=0.05,
o_d=0.35,
)
disks = [disk1, disk2]
In this example, let’s consider an uniform distribuition for the coefficients. Because it’s a demonstrative example, we’ll not use too many samples, to avoid taking too long to run the simulation.
We can use numpy.random
package to generate random values for our variables.
Stochastic Bearing Elements#
# random variables must have the same size
kxx = np.random.uniform(low=1e6, high=3e6, size=50)
cxx = np.random.uniform(low=1e2, high=2e2, size=50)
bearing1 = srs.ST_BearingElement(n=0, kxx=kxx, cxx=cxx, is_random=["kxx", "cxx"])
bearing2 = srs.ST_BearingElement(n=6, kxx=kxx, cxx=cxx, is_random=["kxx", "cxx"])
bearings = [bearing1, bearing2]
# Building random instances for a rotor model
rand_rotor = srs.ST_Rotor(
shaft_elements=shaft, disk_elements=disks, bearing_elements=bearings
)
# Number of samples
print("Number of samples:", len(list(iter(rand_rotor))))
Number of samples: 50
Plotting a random sample#
We can use numpy.random.choice
to take a random rotor object. Then, we can use the same functions than to Rotor
class.
sample = np.random.choice(list(iter(rand_rotor)))
sample.plot_rotor()
Running Stochastic Campbell Diagram#
speed_range = np.linspace(0, 600, 31)
camp = rand_rotor.run_campbell(speed_range)
Plotting Stochastic Campbell Diagram#
# choose the desirable percentiles or confidence intervals
camp.plot_nat_freq(conf_interval=[95], width=950, height=700)
# choose the desirable percentiles or confidence intervals
camp.plot_log_dec(conf_interval=[95], width=950, height=700)
References#
[Fri10]
Michael I Friswell. Dynamics of rotating machines. Cambridge University Press, 2010.