sdynpy.signal_processing.sdynpy_lrm.frf_local_model
- frf_local_model(references, responses, abscissa, f_out=None, bandwidth=None, transient=True, modelset=[[1, 1, 0], [1, 1, 1], [1, 1, 2]], export_ratio=0.1, max_parallel=512, print_time=True)[source]
Local modeling FRF estimator for MIMO systems. This function can be called directly or using frf.timedata2frf(…,method=’LRM’) or frf.fft2frf(…,method=’LRM’).
- Parameters
references (ndarray (N_in, N_freqs) or (N_in, 1, N_freqs)) – REFERENCES FREQUENCY-DOMAIN DATA.
responses (ndarray, shape (N_out, N_freqs) or (N_out, 1, N_freqs)) – RESPONSES FREQUENCY-DOMAIN DATA.
abcissa (ndarray (N_freqs,)) – INPUT FREQUENCY VECTOR.
f_out (ndarray (N_freqs_out,), optional) – Output frequency vector. Finer resolution increases computational cost, but only to a finite limit. Compuatational cost will not increase beyond f_out = f_in, but large interpolation may result in a large export_ratio. The default is f_in
bandwidth (float, optional) – Local model estimation bandwidth in units of f_in. Larger values yield better noise filtering but risk underfitting and take longer to run.
transient (boolean, optional) – whetheter to include transient estimation in local models. Recommend False for impact testing or burst random, True otherwise. The default is True.
modelset (iterable of numpy (3,) arrays, optional) – Arrays contain [num. order, trans. order, denom. order]. Recommend increasing numerator order for nonlinear structures and complicated FRFs. The default is [[1,1,0],[1,1,1],[1,1,2]].
export_ratio (f;pat, optional) – (centered) proportion of local bands that can be stored and exported. Larger values risk capturing volatile end behavior but yield faster computation times. The default is 0.1.
max_parallel (int, optional) – for very large systems with high frequency resolution and large bandwidths, system RAM can be a constraint. The default number of parallel processes is the number of CPU threads. If this causes freezing, max_parallel can be set to reduce the allowed number of parallel threads. Also, smaller pools may initialize faster. The default is 512.
print_time (boolean, optional) – print remaining time if more than 10 seconds
- Returns
f_out (ndarray (N_freqs_out,)) – estimated FRM frequency vector
H (ndarray (N_freqs_out, N_out, N_in)) – frequency response matrix
model_data (dict) – candidate model info and selected model at each frequency in f_out
Notes
To improve noise and transient removal, recommend increasing bandwidth
To reduce computation time, recommend decreasing f_out resolution, increasing export_ratio, or decreasing bandwidth. For very large systems, if freezing occurs, reduce max_parallel.
For more information, see “A practitioner’s guide to local FRF estimation”, K. Coletti. This function uses the MISO parameterization