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, 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).

  • residuals (bool, optional) – Use 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