The plscf module

This module is a part of the pyOMA2 package and provides utility functions for conducting Operational Modal Analysis (OMA) using the poly-reference Least Square Complex Frequency Domain (pLSCFD) identification method, also known as polymax [PAGL04].

Functions:
  • pLSCF(): Perform the poly-reference Least Square Complex Frequency (pLSCF) algorithm.

  • pLSCF_poles(): Extract poles from the pLSCF algorithm results.

  • rmfd2ac(): Convert Right Matrix Fraction Description to state-space representation.

  • ac2mp_poly(): Convert state-space representation to modal parameters.

  • pLSCF_mpe(): Extract modal parameters using the pLSCF method for selected frequencies.

poly-reference Least Square Complex Frequency (pLSCF) Utility Functions module. Part of the pyOMA2 package. Authors: Dag Pasca

pyoma2.functions.plscf.ac2mp_poly(A: ndarray, C: ndarray, dt: float, methodSy: str, nxseg: int) Tuple[ndarray, ndarray, ndarray, ndarray][source]

Convert state-space representation to modal parameters.

Parameters:
  • A (numpy.ndarray) – State matrix of the system.

  • C (numpy.ndarray) – Output matrix of the system.

  • dt (float) – Time step or sampling interval.

  • methodSy (str) – Method used for PSD estimation.

  • nxseg (int) – Number of segments used in the algorithm.

Returns:

  • fn : Natural frequencies in Hz.

  • xi : Damping ratios.

  • phi : Complex mode shapes.

  • lam_c : Complex poles.

Return type:

tuple of numpy.ndarray

pyoma2.functions.plscf.pLSCF(Sy: ndarray, dt: float, ordmax: int, sgn_basf: int = -1.0) Tuple[List[ndarray], List[ndarray]][source]

Perform the poly-reference Least Square Complex Frequency (pLSCF) algorithm.

Parameters:
  • Sy (numpy.ndarray) – Spectral density matrix of the system.

  • dt (float) – Time step of the measurement data.

  • ordmax (int) – Maximum model order for the algorithm.

  • sgn_basf (int, optional) – Sign of the basis function, -1 for ‘LO’ and 1 for ‘HI’, by default -1.

Returns:

  • Ad : The denominator polynomial coefficients of the transfer function.

  • Bn : The numerator polynomial coefficients of the transfer function.

Return type:

tuple of list numpy.ndarray

pyoma2.functions.plscf.pLSCF_mpe(sel_freq: List[float], Fn_pol: ndarray, Xi_pol: ndarray, Phi_pol: ndarray, order: int | List[int] | str = 'find_min', Lab: ndarray = None, deltaf: float = 0.05, rtol: float = 0.01) Tuple[ndarray, ndarray, ndarray, ndarray][source]

Extract modal parameters using the pLSCF method for selected frequencies.

Parameters:
  • sel_freq (list of float) – Selected frequencies for modal parameter extraction.

  • Fn_pol (numpy.ndarray) – Natural frequencies obtained from the pLSCF method.

  • Xi_pol (numpy.ndarray) – Damping ratios obtained from the pLSCF method.

  • Phi_pol (numpy.ndarray) – Mode shapes obtained from the pLSCF method.

  • order (int, list of int, or 'find_min') – Model order for extraction.

  • Lab (numpy.ndarray, optional) – Labels identifying stable poles.

  • deltaf (float, optional) – Frequency bandwidth for searching poles, by default 0.05.

  • rtol (float, optional) – Relative tolerance for frequency comparison, by default 1e-2.

Returns:

  • Fn : Extracted natural frequencies.

  • Xi : Extracted damping ratios.

  • Phi : Extracted mode shapes.

  • order_out : Model order used for extraction.

Return type:

tuple of numpy.ndarray

pyoma2.functions.plscf.pLSCF_poles(Ad: ndarray, Bn: ndarray, dt: float, methodSy: str, nxseg: int) Tuple[ndarray, ndarray, ndarray, ndarray][source]

Extract poles from the pLSCF algorithm results.

Parameters:
  • Ad (numpy.ndarray) – Denominator polynomial coefficients from pLSCF.

  • Bn (numpy.ndarray) – Numerator polynomial coefficients from pLSCF.

  • dt (float) – Time step of the measurement data.

  • methodSy (str) – Method used for the PSD estimation (either “per” or “cor”)

  • nxseg (int) – Number of segments used in the algorithm.

Returns:

  • Fns : Natural frequencies from the pLSCF analysis.

  • Xis : Damping ratios from the pLSCF analysis.

  • Phis : Mode shapes from the pLSCF analysis.

  • Lambdas : Complex poles from the pLSCF analysis.

Return type:

tuple of numpy.ndarray

pyoma2.functions.plscf.rmfd2ac(A_den: ndarray, B_num: ndarray) Tuple[ndarray, ndarray][source]

Convert Right Matrix Fraction Description (RMFD) to state-space representation.

Parameters:
  • A_den (numpy.ndarray) – Denominator matrix of the RMFD.

  • B_num (numpy.ndarray) – Numerator matrix of the RMFD.

Returns:

  • A : State matrix of the system.

  • C : Output matrix of the system.

Return type:

tuple of numpy.ndarray