Module:
sdynpy.modal.sdynpy_modeshapeSource: GitHub
Signature¶
def sdynpy.modal.sdynpy_modeshape.compute_shapes_multireference(experimental_frf: sdynpy.core.sdynpy_data.TransferFunctionArray, natural_frequencies: numpy.ndarray, damping_ratios: numpy.ndarray, participation_factors: numpy.ndarray, real_modes: bool = False, lower_residuals: bool = True, upper_residuals: bool = True, min_frequency: float = None, max_frequency: float = None, displacement_derivative: int = 0, frequency_lines_at_resonance: int = None, frequency_lines_for_residuals: int = None)Computes mode shapes from multireference datasets.
Uses the modal participation factor as a constraint on the mode shapes to solve for the shapes in one pass, rather than solving for residues and subsequently solving for shapes.
Parameters¶
experimental_frf : TransferFunctionArray Experimental FRF data to which modes will be fit
natural_frequencies : np.ndarray Natural Frequencies (in Hz) at which modes will be fit
damping_ratios : np.ndarray Damping Ratios at which modes will be fit
participation_factors : np.ndarray Mode participation factors from which the shapes can be computed. Should have shape (n_modes x n_inputs)
real_modes : bool, optional Specifies whether to solve for real modes or complex modes (default).
lower_residuals : bool, optional Use lower residuals in the FRF fit. The default is True.
upper_residuals : bool, optional Use upper residuals in the FRF fit. The default is True.
min_frequency : float, optional Minimum frequency to use in the shape fit. The default is the lowest frequency in the experimental FRF.
max_frequency : float, optional Maximum frequency to use in the shape fit. The default is the highest frequency in the experimental FRF.
displacement_derivative : int, optional Defines the type of data in the FRF based on the number of derivatives from displacement (0 - displacement, 1 - velocity, 2 - acceleration). The default is 0 (displacement).
frequency_lines_at_resonance : int, optional Defines the number of frequency lines to look at around the specified natural frequencies for computing residues. If not specified, all frequency lines are used for computing shapes.
frequency_lines_for_residuals : int, optional Defines the number of frequency lines at the low and high frequency to use in computing shapes. Only used if frequency_lines_at_resonance is specified. If not specified, the lower 10% and upper 10% of frequency lines will be kept for computing residuals.
Returns¶
output_shape : ShapeArray ShapeArray containing the mode shapes of the system
frfs_resynthesized : TransferFunctionArray FRFs resynthesized from the fit shapes and residuals
residual_frfs : TransferFunctionArray FRFs resynthesized only from the residuals used in the calculation
kernel_frfs : TransferFunctionArray FRFs synthesized by the kernel solution without taking into account construction of mode shapes and reciprocity with participation factors
Raises¶
ValueError
If the FRF is not 2-dimensional with references on the columns and
responses on the rows.