ross.Orbit
Contents
ross.Orbit#
- class ross.Orbit(*, node, node_pos, ru_e, rv_e)#
Class used to construct orbits for a node in a mode or deflected shape.
The matrix H contains information about the whirl direction, the orbit minor and major axis and the orbit inclination. The matrix is calculated by \(H = T.T^T\) where the matrix T is constructed using the eigenvector corresponding to the natural frequency of interest:
\[\begin{split}\begin{eqnarray} \begin{bmatrix} u(t)\\ v(t) \end{bmatrix} = \mathfrak{R}\Bigg( \begin{bmatrix} r_u e^{j\eta_u}\\ r_v e^{j\eta_v} \end{bmatrix}\Bigg) e^{j\omega_i t} = \begin{bmatrix} r_u cos(\eta_u + \omega_i t)\\ r_v cos(\eta_v + \omega_i t) \end{bmatrix} = {\bf T} \begin{bmatrix} cos(\omega_i t)\\ sin(\omega_i t) \end{bmatrix} \end{eqnarray}\end{split}\]Where \(r_u e^{j\eta_u}\) e \(r_v e^{j\eta_v}\) are the elements of the ith eigenvector, corresponding to the node and natural frequency of interest (mode).
\[\begin{split}{\bf T} = \begin{bmatrix} r_u cos(\eta_u) & -r_u sin(\eta_u)\\ r_u cos(\eta_u) & -r_v sin(\eta_v) \end{bmatrix}\end{split}\]- Parameters:
- nodeint
Orbit node in the rotor.
- ru_ecomplex
Element in the vector corresponding to the x direction.
- rv_ecomplex
Element in the vector corresponding to the y direction.
Methods
- __init__(*, node, node_pos, ru_e, rv_e)#
- calculate_amplitude(angle)#
Calculates the amplitude for a given angle of the orbit.
- Parameters:
- anglefloat, str, pint.Quantity
- Returns:
- amplitude, phasetuple
Tuple with (amplitude, phase) value. The amplitude units are the same as the ru_e and rv_e used to create the orbit.
- 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_orbit(fig=None)#
- 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)