This is the Python implementation of the extended Morlet-Wave damping identification method, see [1] and [2] for details.
This package is based on the mwdi code developed by TOMAC Ivan and SLAVIČ Janko, see [3] for details. It was upgraded within the MSCA IF project NOSTRADAMUS during development of [2].
User is required to supply sampling frequncy in S/s and impulse response functions as a numpy array of shape (number_of_samples, measure_points)
- For SDOF systems, define estimated natural frequency as
omega = (100, None)
[rad/s] - For MDOF systems, the first frequency in tuple is estimated one and the second one it the closest frequency to the estimated:
omega = (100, 150)
[rad/s]
Additionally to make instance of ExtendedMW class default values of tupples: time_spread
and num_cycls_range
can be changed. Tuple time_spread
contains n1
and n2
time sperad parametes, tuple num_cycls_range
sets the range of k
parameter.
identifier = ExtendedMW(fs=None,
irf=None,
nat_freqs=(None, None),
time_spread=(7, 14),
k_range = (10, 400))
Detect natural frequencies:
identifier.detect_frequency()
Detect damping:
identifier.detect_damp()
Identify damping ratio and natural frequerncy:
identifier.estimate()
Optionaly identification can be ploted using the following metod:
identifier.plot()
A simple example how to identify damping using MWDI method:
import morlet_wave as emw
import numpy as np
# set time domain
fs = 50 # sampling frequency [Hz]
N = int(50*fs) # number of data points of time signal
time = np.arange(N) / fs # time vector
# generate a free response of a SDOF damped mechanical system
w_n = 2*np.pi * 1 # undamped natural frequency
d = 0.01 # damping ratio
x = 1 # amplitude
phi = 0.3 # phase
response = x * np.exp(-d * w_n * time) * np.cos(w_n * np.sqrt(1 - d**2) * time - phi)
# set MWDI object identifier
identifier = emw.ExtendedMW(fs=fs, \
free_response=response, \
nat_freqs=(w_n, None))
# identify natural frequency and damping ratio:
identifier.detect_frequency()
identifier.detect_damp()
identifier.estimate()
# plot optimization results
identifier.plot()
[1] | I. Tomac, Ž. Lozina, D. Sedlar, Extended Morlet-Wave damping identification method, International Journal of Mechanical Sciences, 2017, doi: 10.1016/j.ijmecsci.2017.01.013. |
[2] | (1, 2) I. Tomac, J. Slavič, Damping identification based on a high-speed camera. Mechanical Systems and Signal Processing, 166 (2022) 108485–108497, doi: 10.1016/j.ymssp.2021.108485. |
[3] | J. Slavič, M. Boltežar, Damping identification with the Morlet-wave, Mechanical Systems and Signal Processing, 25 (2011) 1632–1645, doi: 10.1016/j.ymssp.2011.01.008. |