Use of modalfrf for operating measurements

7 次查看(过去 30 天)
Hello,
I need to calculate the FRF for a mechanical system where the exitation has its origin from a gearbox. I generated simulation data while the mechanical systems rotates under operating conditions. I generated data of velocity an acceleration. For my acoustical analysis I need the frequency response function. So I wanted to calculate them by using the function modalfrf. But I am not sure if I can use this function due to the fact that I do not have a hammer or shaker exitation. So is it possible to calculate the FRF with this function or do I need to use another function?
Thank you very much in advance.

采纳的回答

Rajiv Singh
Rajiv Singh 2020-8-17
编辑:Rajiv Singh 2020-8-17
This is essentially a system identification problem. You have non-parametric (tfestimate, spa, spafdr, etfe) techniques and parametric techniques (ssest, tfest). MODALFRF implements both approaches. When the 'Estimator' is H1 or H2, it is doing something similar to tfestimate and producing a non-parametric estimate of frequency response using correlation analysis (e.g., H = Syy/Sxy, where Syy is output spectrum = fft(Ryy), where Ryy is auto-correlation sequence, etc). When you use 'Estimator'/'subspace', it implements a parametric subspace identification (n4sid) algorithm to first estimate a state-space model and then compute its frequency response using FREQRESP.
If input signal is periodic, you will get much better speed by using a non-parametric technique. But the results are going to be sensitive to choice of technique (H1 or H2), frame-size, window shape and amount of overlapping. Parametric methods are much slower but less sensitive to tuning parameters (such as model order) and are more reliable IMO. You also get the additional insights into system dynamics in terms of poles/zeros, damping, I/O delays and feedthrough.
If you have system identification toolbox, I would recommend the following:
  • If data is transient (that is, the input is a step or impulse, or a pulse) and is not very long:
data = iddata(outputsignal, inputsignal, sampletime); %sampletime = 1/Fs
model = tfest(data, np); % np: number of poles
w = linspace(0,pi/sampletime,100); % an example frequency grid (you can pick something different)
G = freqresp(model,w); % or, simply do "bode(model)"
  • If data has periodic inputs:
data = iddata(outputsignal, inputsignal, sampletime)
data2 = fft(data) % data in frequency domain
model = tfest(data2, np); % np: number of poles
w = linspace(0,pi/sampletime,100);
G = freqresp(model,w); % or, simply do "bode(model)"
If you have MIMO data, you could replace TFEST with SSEST (state-space estimator) and follow the steps similar to the above.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Vibration Analysis 的更多信息

标签

产品


版本

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by