pyOMA.core.PostProcessingTools.pair_modes#

pyOMA.core.PostProcessingTools.pair_modes(freq_a, freq_b, shapes_a, shapes_b, freq_thresh=0.2, mac_thresh=0.8)[source]#

A function to pair two sets of modes (here: a and b) based on frequency differences and mode shape similarity. The number of modes in both sets may be different and relative complements of both arrays may be non-empty.

The threshold where pairing stops is based on normalized frequency differences AND modal assurance criteria.

Parameters:
  • f_a (np.ndarray) – Arrays holding the natural frequencies of both sets of modes. The dimension (number of modes) of both sets can be different.

  • f_b (np.ndarray) – Arrays holding the natural frequencies of both sets of modes. The dimension (number of modes) of both sets can be different.

  • d_a (np.ndarray) – Arrays holding the damping ratios of both sets of modes. The dimension (number of modes) of both sets can be different.

  • d_b (np.ndarray) – Arrays holding the damping ratios of both sets of modes. The dimension (number of modes) of both sets can be different.

  • phi_a (np.ndarray) – Arrays holding the mode shapes of both sets of modes. The first dimension is the number of channels, that must match in both arrays.

  • phi_b (np.ndarray) – Arrays holding the mode shapes of both sets of modes. The first dimension is the number of channels, that must match in both arrays.

  • kwargs – Additional kwargs are passed to pair_modes

Returns:

  • inds_a, inds_b (np.ndarray,) – Arrays holding the indices of paired modes sorted by ascending frequencies (set a). Length represents the number of common modes.

  • unp_a, unp_b (np.ndarray) – Arrays holding the indices of modes that could not be paired