ross.TimeResponseResults

class ross.TimeResponseResults(rotor, t, yout, xout)

Class used to store results and provide plots for Time Response Analysis.

This class takes the results from time response analysis and creates a plots given a force and a time. It’s possible to select through a time response for a single DoF, an orbit response for a single node or display orbit response for all nodes. The plot type options are:

  • 1d: plot time response for given probes.

  • 2d: plot orbit of a selected node of a rotor system.

  • 3d: plot orbits for each node on the rotor system in a 3D view.

plot_1d: input probes. plot_2d: input a node. plot_3d: no need to input probes or node.

Parameters
rotorRotor.object

The Rotor object

tarray

Time values for the output.

youtarray

System response.

xoutarray

Time evolution of the state vector.

Returns
figPlotly graph_objects.Figure()

The figure object with the plot.

Methods

__init__(rotor, t, yout, xout)
classmethod load(file)

Load results from a .toml file.

This function will load the simulation results from a .toml file. The file must have all the argument’s names and values that are needed to reinstantiate the class.

Parameters
filestr, pathlib.Path

The name of the file the results will be loaded from.

Examples

>>> # Example running a stochastic unbalance response
>>> from tempfile import tempdir
>>> from pathlib import Path
>>> import ross as rs
>>> # Running an example
>>> rotor = rs.rotor_example()
>>> freq_range = np.linspace(0, 500, 31)
>>> n = 3
>>> m = 0.01
>>> p = 0.0
>>> results = rotor.run_unbalance_response(n, m, p, freq_range)
>>> # create path for a temporary file
>>> file = Path(tempdir) / 'unb_resp.toml'
>>> results.save(file)
>>> # Loading file
>>> results2 = rs.ForcedResponseResults.load(file)
>>> abs(results2.forced_resp).all() == abs(results.forced_resp).all()
True
plot_1d(probe, probe_units='rad', displacement_units='m', time_units='s', fig=None, **kwargs)

Plot time response.

This method plots the time response given a tuple of probes with their nodes and orientations.

Parameters
probelist

List with tuples (node, orientation angle, tag).

node : int -> Indicate the node where the probe is located.

orientation : float -> Probe orientation angle about the shaft. The 0 refers to +X direction. The strings ‘major’ and ‘minor’ can also be used to reference the major and minor axis.

tag : str, optional -> Probe tag to be add a DataFrame column title.

probe_unitsstr, option

Units for probe orientation. Default is “rad”.

displacement_unitsstr, optional

Displacement units. Default is ‘m’.

time_unitsstr

Time units. Default is ‘s’.

figPlotly graph_objects.Figure()

The figure object with the plot.

kwargsoptional

Additional key word arguments can be passed to change the plot layout only (e.g. width=1000, height=800, …). *See Plotly Python Figure Reference for more information.

Returns
figPlotly graph_objects.Figure()

The figure object with the plot.

plot_2d(node, displacement_units='m', fig=None, **kwargs)

Plot orbit response (2D).

This function will take a rotor object and plot its orbit response using Plotly.

Parameters
node: int, optional

Selected node to plot orbit.

displacement_unitsstr, optional

Displacement units. Default is ‘m’.

figPlotly graph_objects.Figure()

The figure object with the plot.

kwargsoptional

Additional key word arguments can be passed to change the plot layout only (e.g. width=1000, height=800, …). *See Plotly Python Figure Reference for more information.

Returns
figPlotly graph_objects.Figure()

The figure object with the plot.

plot_3d(displacement_units='m', rotor_length_units='m', fig=None, **kwargs)

Plot orbit response (3D).

This function will take a rotor object and plot its orbit response using Plotly.

Parameters
displacement_unitsstr

Displacement units. Default is ‘m’.

rotor_length_unitsstr

Rotor Length units. Default is ‘m’.

figPlotly graph_objects.Figure()

The figure object with the plot.

kwargsoptional

Additional key word arguments can be passed to change the plot layout only (e.g. hoverlabel_align=”center”, …). *See Plotly Python Figure Reference for more information.

Returns
figPlotly graph_objects.Figure()

The figure object with the plot.

classmethod read_toml_data(data)

Read and parse data stored in a .toml file.

The data passed to this method needs to be according to the format saved in the .toml file by the .save() method.

Parameters
datadict

Dictionary obtained from toml.load().

Returns
The result object.
save(file)

Save results in a .toml file.

This function will save the simulation results to a .toml file. The file will have all the argument’s names and values that are needed to reinstantiate the class.

Parameters
filestr, pathlib.Path

The name of the file the results will be saved in.

Examples

>>> # Example running a unbalance response
>>> from tempfile import tempdir
>>> from pathlib import Path
>>> import ross as rs
>>> # Running an example
>>> rotor = rs.rotor_example()
>>> speed = np.linspace(0, 1000, 101)
>>> response = rotor.run_unbalance_response(node=3,
...                                         unbalance_magnitude=0.001,
...                                         unbalance_phase=0.0,
...                                         frequency=speed)
>>> # create path for a temporary file
>>> file = Path(tempdir) / 'unb_resp.toml'
>>> response.save(file)