sdynpy.modal.sdynpy_modeshape.compute_shapes_multireference
- compute_shapes_multireference(experimental_frf: TransferFunctionArray, natural_frequencies: ndarray, damping_ratios: ndarray, participation_factors: ndarray, real_modes: bool = False, lower_residuals: bool = True, upper_residuals: bool = True, min_frequency: Optional[float] = None, max_frequency: Optional[float] = None, displacement_derivative: int = 0, frequency_lines_at_resonance: Optional[int] = None, frequency_lines_for_residuals: Optional[int] = None)[source]
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.
- Raises
ValueError – If the FRF is not 2-dimensional with references on the columns and responses on the rows.
- 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