ross.SealElement
Contents
ross.SealElement#
- class ross.SealElement(n, kxx, cxx, mxx=None, kyy=None, kxy=0, kyx=0, cyy=None, cxy=0, cyx=0, myy=None, mxy=0, myx=0, frequency=None, seal_leakage=None, tag=None, n_link=None, scale_factor=None, color='#77ACA2', **kwargs)#
A seal element.
This class will create a seal element. Parameters can be a constant value or speed dependent. For speed dependent parameters, each argument should be passed as an array and the correspondent speed values should also be passed as an array. Values for each parameter will be_interpolated for the speed.
SealElement objects are handled differently in the Rotor class, even though it inherits from BearingElement class. Seal elements are not considered in static analysis, i.e., it does not add reaction forces (only bearings support the rotor). In stability level 1 analysis, seal elements are removed temporarily from the model, so that the cross coupled coefficients are calculated and replace the seals from the rotor model. SealElement data is stored in an individual data frame, separate from other bearing elements.
- Parameters:
- n: int
Node which the bearing will be located in
- kxxfloat, array, pint.Quantity
Direct stiffness in the x direction (N/m).
- cxxfloat, array, pint.Quantity
Direct damping in the x direction (N*s/m).
- kyyfloat, array, pint.Quantity, optional
Direct stiffness in the y direction (N/m). (defaults to kxx)
- cyyfloat, array, pint.Quantity, optional
Direct damping in the y direction (N*s/m). (defaults to cxx)
- kxyfloat, array, pint.Quantity, optional
Cross coupled stiffness in the x direction (N/m). (defaults to 0)
- cxyfloat, array, pint.Quantity, optional
Cross coupled damping in the x direction (N*s/m). (defaults to 0)
- kyxfloat, array, pint.Quantity, optional
Cross coupled stiffness in the y direction (N/m). (defaults to 0)
- cyxfloat, array, pint.Quantity, optional
Cross coupled damping in the y direction (N*s/m). (defaults to 0)
- frequencyarray, pint.Quantity, optional
Array with the frequencies (rad/s).
- tagstr, optional
A tag to name the element Default is None.
- n_linkint, optional
Node to which the bearing will connect. If None the bearing is connected to ground. Default is None.
- scale_factorfloat, optional
The scale factor is used to scale the bearing drawing. Default is 0.5.
- colorstr, optional
A color to be used when the element is represented. Default is “#77ACA2”.
Notes
SealElement class is strongly recommended to represent seals. Avoid using BearingElement class for this purpose.
Examples
>>> # A seal element located in the first rotor node, with these >>> # following stiffness and damping coefficients and speed range from >>> # 0 to 200 rad/s >>> import ross as rs >>> kxx = 1e6 >>> kyy = 0.8e6 >>> cxx = 2e2 >>> cyy = 1.5e2 >>> frequency = np.linspace(0, 200, 11) >>> seal = rs.SealElement(n=0, kxx=kxx, kyy=kyy, cxx=cxx, cyy=cyy, frequency=frequency) >>> seal.K(frequency) array([[[1000000., 1000000., ... >>> seal.C(frequency) array([[[200., 200., ...
Methods
- C(frequency)#
Damping matrix for an instance of a bearing element.
This method returns the damping matrix for an instance of a bearing element.
- Parameters:
- frequencyfloat
The excitation frequency (rad/s).
- Returns:
- Cnp.ndarray
A 2x2 matrix of floats containing the cxx, cxy, cyx, and cyy values (N*s/m).
Examples
>>> bearing = bearing_example() >>> bearing.C(0) array([[200., 0.], [ 0., 150.]])
- G()#
Gyroscopic matrix for an instance of a bearing element.
This method returns the mass matrix for an instance of a bearing element.
- Returns:
- Gnp.ndarray
A 2x2 matrix of floats.
Examples
>>> bearing = bearing_example() >>> bearing.G() array([[0., 0.], [0., 0.]])
- K(frequency)#
Stiffness matrix for an instance of a bearing element.
This method returns the stiffness matrix for an instance of a bearing element.
- Parameters:
- frequencyfloat
The excitation frequency (rad/s).
- Returns:
- Knp.ndarray
A 2x2 matrix of floats containing the kxx, kxy, kyx, and kyy values.
Examples
>>> bearing = bearing_example() >>> bearing.K(0) array([[1000000., 0.], [ 0., 800000.]])
- M(frequency)#
Mass matrix for an instance of a bearing element.
This method returns the mass matrix for an instance of a bearing element.
- Returns:
- Mnp.ndarray
Mass matrix (kg).
Examples
>>> bearing = bearing_example() >>> bearing.M(0) array([[0., 0.], [0., 0.]])
- __init__(n, kxx, cxx, mxx=None, kyy=None, kxy=0, kyx=0, cyy=None, cxy=0, cyx=0, myy=None, mxy=0, myx=0, frequency=None, seal_leakage=None, tag=None, n_link=None, scale_factor=None, color='#77ACA2', **kwargs)#
- dof_local_index()#
Get the local index for a element specific degree of freedom.
- Returns:
- local_index: namedtupple
A named tuple containing the local index.
Examples
>>> # Example using BearingElement >>> from ross.bearing_seal_element import bearing_example >>> bearing = bearing_example() >>> bearing.dof_local_index() LocalIndex(x_0=0, y_0=1)
- dof_mapping()#
Degrees of freedom mapping.
Returns a dictionary with a mapping between degree of freedom and its index.
- Returns:
- dof_mappingdict
A dictionary containing the degrees of freedom and their indexes.
Examples
The numbering of the degrees of freedom for each node.
Being the following their ordering for a node:
x_0 - horizontal translation y_0 - vertical translation
>>> bearing = bearing_example() >>> bearing.dof_mapping() {'x_0': 0, 'y_0': 1}
- classmethod from_table(n, file, sheet_name=0, tag=None, n_link=None, scale_factor=1, color='#355d7a')#
Instantiate a bearing using inputs from an Excel table.
A header with the names of the columns is required. These names should match the names expected by the routine (usually the names of the parameters, but also similar ones). The program will read every row bellow the header until they end or it reaches a NaN.
- Parameters:
- nint
The node in which the bearing will be located in the rotor.
- filestr
Path to the file containing the bearing parameters.
- sheet_nameint or str, optional
Position of the sheet in the file (starting from 0) or its name. If none is passed, it is assumed to be the first sheet in the file.
- tagstr, optional
A tag to name the element. Default is None.
- n_linkint, optional
Node to which the bearing will connect. If None the bearing is connected to ground. Default is None.
- scale_factorfloat, optional
The scale factor is used to scale the bearing drawing. Default is 1.
- colorstr, optional
A color to be used when the element is represented. Default is ‘#355d7a’ (Cardinal).
- Returns:
- bearingrs.BearingElement
A bearing object.
Examples
>>> import os >>> file_path = os.path.dirname(os.path.realpath(__file__)) + '/tests/data/bearing_seal_si.xls' >>> BearingElement.from_table(0, file_path, n_link=1) BearingElement(n=0, n_link=1, kxx=[1.379...
- classmethod load(file)#
- plot(coefficients=None, frequency_units='rad/s', stiffness_units='N/m', damping_units='N*s/m', mass_units='kg', fig=None, **kwargs)#
Plot coefficient vs frequency.
- Parameters:
- coefficientslist, str
List or str with the coefficients to plot.
- frequency_unitsstr, optional
Frequency units. Default is rad/s.
- stiffness_unitsstr, optional
Stiffness units. Default is N/m.
- damping_unitsstr, optional
Damping units. Default is N*s/m.
- mass_unitsstr, optional
Mass units. Default is kg.
- **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.
- 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 element object.
Examples
>>> # Example using BearingElement >>> from tempfile import tempdir >>> from pathlib import Path >>> from ross.bearing_seal_element import bearing_example >>> from ross.bearing_seal_element import BearingElement >>> # create path for a temporary file >>> file = Path(tempdir) / 'bearing1.toml' >>> bearing1 = bearing_example() >>> bearing1.save(file) >>> bearing1_loaded = BearingElement.load(file) >>> bearing1 == bearing1_loaded True
- save(file)#
Save the element in a .toml file.
This function will save the element to a .toml file. The file will have all the argument’s names and values that are needed to reinstantiate the element.
- Parameters:
- filestr, pathlib.Path
The name of the file the element will be saved in.
Examples
>>> # Example using DiskElement >>> from tempfile import tempdir >>> from pathlib import Path >>> from ross.disk_element import disk_example >>> # create path for a temporary file >>> file = Path(tempdir) / 'disk.toml' >>> disk = disk_example() >>> disk.save(file)
- summary()#
Present a summary for the element.
A pandas series with the element properties as variables.
- Returns:
- A pandas series.
Examples
>>> # Example using DiskElement >>> from ross.disk_element import disk_example >>> disk = disk_example() >>> disk.summary() n 0 n_l 0 n_r 0...
- classmethod table_to_toml(n, file)#
Convert bearing parameters to toml.
Convert a table with parameters of a bearing element to a dictionary ready to save to a toml file that can be later loaded by ross.
- Parameters:
- nint
The node in which the bearing will be located in the rotor.
- filestr
Path to the file containing the bearing parameters.
- Returns:
- datadict
A dict that is ready to save to toml and readable by ross.
Examples
>>> import os >>> file_path = os.path.dirname(os.path.realpath(__file__)) + '/tests/data/bearing_seal_si.xls' >>> BearingElement.table_to_toml(0, file_path) {'n': 0, 'kxx': array([...