ross.PseudoModal#

class ross.PseudoModal(method='guyan', **kwargs)#

Pseudo-modal method.

This method can be used to apply modal transformation to reduce model of the rotor system.

Parameters:
rotor: rs.Rotor

The rotor object.

speedfloat

Rotor speed.

num_modesint

The number of eigenvectors to consider in the modal transformation with model reduction. Default is 24.

Examples

>>> import ross as rs
>>> rotor = rs.rotor_example()
>>> size = 10000
>>> node = 3
>>> speed = 500.0
>>> t = np.linspace(0, 10, size)
>>> F = np.zeros((size, rotor.ndof))
>>> F[:, rotor.number_dof * node + 0] = 10 * np.cos(2 * t)
>>> F[:, rotor.number_dof * node + 1] = 10 * np.sin(2 * t)
>>> mr = ModelReduction(rotor=rotor, speed=speed, method="pseudomodal", num_modes=12)
>>> F_modal = mr.reduce_vector(F.T).T
>>> la.norm(F_modal)
195.466...

Methods

__init__(rotor, speed, num_modes=24, **kwargs)#
get_transformation_matrix(speed)#

Build modal matrix

Parameters:
speed: np.ndarray

Rotor speed

Returns:
modal_matrixnp.ndarray

Modal matrix for the pseudo-modal method.

reduce_matrix(array)#

Transform a square matrix from physical to modal space.

Parameters:
array: np.ndarray

Square matrix to be transformed.

Returns:
array_reducednp.ndarray

Reduced matrix.

reduce_vector(array)#

Transform a vector from physical to modal space.

Parameters:
array: np.ndarray

Vector to be transformed.

Returns:
array_reducednp.ndarray

Reduced vector.

revert_vector(array_reduced)#

Transform a vector from modal to physical space.

Parameters:
array_reduced: np.ndarray

Reduced vector to be reverted.

Returns:
arraynp.ndarray

Vector in physical space.

Attributes

subclasses