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:
- 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:
- 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