The run_params module

These classes are were the parameters used to run the analyses are stored.

Warning

The module is designed to be used as part of the pyOMA2 package and relies on its internal data structures and algorithms.

This module provides classes for storing run parameters for various modal analysis algorithms included in the pyOMA2 module.

class pyoma2.algorithms.data.run_params.BaseRunParams[source]

Bases: BaseModel

Base class for storing run parameters for modal analysis algorithms.

class pyoma2.algorithms.data.run_params.EFDDRunParams(*, nxseg: int = 1024, method_SD: Literal['per', 'cor'] = 'per', pov: float = 0.5, sel_freq: ndarray[tuple[Any, ...], dtype[float64]] | None = None, DF1: float = 0.1, DF2: float = 1.0, cm: int = 1, MAClim: float = 0.95, sppk: int = 3, npmax: int = 20)[source]

Bases: BaseRunParams

Class for storing Enhanced Frequency Domain Decomposition (EFDD) run parameters.

nxseg

Number of points per segment, default is 1024.

Type:

int, optional

method_SD

Method used for spectral density estimation, default is “per”.

Type:

str, optional [“per”, “cor”]

pov

Percentage of overlap between segments (only for “per”), default is 0.5.

Type:

float, optional

sel_freq

Array of selected frequencies for modal parameter estimation,.

Type:

numpy.ndarray

DF1

Frequency resolution for estimation, default is 0.1.

Type:

float, optional

DF2

Frequency resolution for the second stage of EFDD, default is 1.0.

Type:

float

cm

Number of closely spaced modes, default is 1.

Type:

int

MAClim

Minimum acceptable Modal Assurance Criterion value, default is 0.85.

Type:

float

sppk

Number of peaks to skip for the fit, default is 3.

Type:

int

npmax

Maximum number of peaks to use in the fit, default is 20.

Type:

int

Notes

sel_freq, DF1, DF2, cm, MAClim, sppk and npmax are used in the mpe method.

class pyoma2.algorithms.data.run_params.FDDRunParams(*, nxseg: int = 1024, method_SD: Literal['per', 'cor'] = 'per', pov: float = 0.5, sel_freq: ndarray[tuple[Any, ...], dtype[float64]] | None = None, DF: float = 0.1)[source]

Bases: BaseRunParams

Class for storing Frequency Domain Decomposition (FDD) run parameters.

nxseg

Number of points per segment, default is 1024.

Type:

int, optional

method_SD

Method used for spectral density estimation, default is “per”.

Type:

str, optional [“per”, “cor”]

pov

Percentage of overlap between segments (only for “per”), default is 0.5.

Type:

float, optional

sel_freq

Array of selected frequencies for modal parameter estimation,.

Type:

numpy.ndarray

DF

Frequency resolution for estimation, default is 0.1.

Type:

float, optional

Notes

sel_freq and DF are used in the mpe method.

class pyoma2.algorithms.data.run_params.HCDictType[source]

Bases: TypedDict

class pyoma2.algorithms.data.run_params.SCDictType[source]

Bases: TypedDict

class pyoma2.algorithms.data.run_params.SSIRunParams(*, br: int = 20, method: str = None, ref_ind: List[int] | None = None, ordmin: int = 0, ordmax: int | None = None, step: int = 1, sc: SCDictType = {'err_fn': 0.05, 'err_phi': 0.05, 'err_xi': 0.05}, hc: HCDictType = {'CoV_max': 0.05, 'mpc_lim': 0.5, 'mpd_lim': 0.5, 'xi_max': 0.1}, calc_unc: bool = False, nb: int = 50, sel_freq: List[float] | None = None, order_in: int | List[int] | str = 'find_min', rtol: float = 0.05)[source]

Bases: BaseRunParams

Parameters for the Stochastic Subspace Identification (SSI) method.

br

Number of block rows in the Hankel matrix.

Type:

int

method_hank

Method used in the SSI algorithm. Options are [‘data’, ‘cov’, ‘cov_R’]. Default is None.

Type:

str or None, optional

ref_ind

List of reference indices used for subspace identification. Default is None.

Type:

list of int or None, optional

ordmin

Minimum model order for the analysis. Default is 0.

Type:

int, optional

ordmax

Maximum model order for the analysis. Default is None.

Type:

int or None, optional

step

Step size for iterating through model orders. Default is 1.

Type:

int, optional

sc

Soft criteria for the SSI analysis, including thresholds for relative frequency difference (err_fn), damping ratio difference (err_xi), and Modal Assurance Criterion (err_phi). Default values are {‘err_fn’: 0.01, ‘err_xi’: 0.05, ‘err_phi’: 0.03}.

Type:

dict, optional

hc

Hard criteria for the SSI analysis, including settings for presence of complex conjugates (conj), maximum damping ratio (xi_max), Modal Phase Collinearity (mpc_lim), and Mean Phase Deviation (mpd_lim) and maximum covariance (cov_max). Default values are {‘conj’: True, ‘xi_max’: 0.1, ‘mpc_lim’: 0.7, ‘mpd_lim’: 0.3, ‘cov_max’: 0.2}.

Type:

dict, optional

calc_unc

Whether to calculate uncertainty. Default is False.

Type:

bool, optional

nb

Number of bootstrap samples to use for uncertainty calculations (default is 100).

Type:

int, optional

sel_freq

List of selected frequencies for modal parameter extraction. Default is None.

Type:

list of float or None, optional

order_in

Specified model order(s) for which the modal parameters are to be extracted. If ‘find_min’, the function attempts to find the minimum model order that provides stable poles for each mode of interest.

Type:

int, list of int, or str

rtol

Relative tolerance for comparing identified frequencies with the selected ones. Default is 5e-2.

Type:

float, optional

Notes

sel_freq, order_in, and rtol are used in the mpe method to extract modal parameters.

class pyoma2.algorithms.data.run_params.pLSCFRunParams(*, ordmax: int, ordmin: int = 0, nxseg: int = 1024, method_SD: Literal['per', 'cor'] = 'per', pov: float = 0.5, sc: SCDictType = {'err_fn': 0.05, 'err_phi': 0.05, 'err_xi': 0.05}, hc: HCDictType = {'mpc_lim': 0.7, 'mpd_lim': 0.3, 'xi_max': 0.1}, sel_freq: List[float] | None = None, order_in: int | List[int] | str = 'find_min', rtol: float = 0.05)[source]

Bases: BaseRunParams

Parameters for the poly-reference Least Square Complex Frequency (pLSCF) method.

ordmax

Maximum order for the analysis.

Type:

int

ordmin

Minimum order for the analysis. Default is 0.

Type:

int, optional

nxseg

Number of segments for the Power Spectral Density (PSD) estimation. Default is 1024.

Type:

int, optional

method_SD

Method used for spectral density estimation. Options are [‘per’, ‘cor’]. Default is ‘per’.

Type:

str, optional

pov

Percentage of overlap between segments for PSD estimation (only applicable for ‘per’ method). Default is 0.5.

Type:

float, optional

sc

Soft criteria for the SSI analysis, including thresholds for relative frequency difference (err_fn), damping ratio difference (err_xi), and Modal Assurance Criterion (err_phi). Default values are {‘err_fn’: 0.01, ‘err_xi’: 0.05, ‘err_phi’: 0.03}.

Type:

dict, optional

hc

Hard criteria for the SSI analysis, including settings for presence of complex conjugates (conj), maximum damping ratio (xi_max), Modal Phase Collinearity (mpc_lim), and Mean Phase Deviation (mpd_lim) and maximum covariance (cov_max). Default values are {‘conj’: True, ‘xi_max’: 0.1, ‘mpc_lim’: 0.7, ‘mpd_lim’: 0.3, ‘cov_max’: 0.2}.

Type:

dict, optional

sel_freq

List of selected frequencies for modal parameter extraction. Default is None.

Type:

list of float or None, optional

order_in

Specified model order for extraction. Can be an integer or ‘find_min’. Default is ‘find_min’.

Type:

int or str, optional

deltaf

Frequency bandwidth around each selected frequency. Default is 0.05.

Type:

float, optional

rtol

Relative tolerance for comparing identified frequencies with the selected ones. Default is 1e-2.

Type:

float, optional

Notes

sel_freq, order_in, deltaf, and rtol are used in the mpe method to extract modal parameters.