Accelerance FRF with modal FRF?
古いコメントを表示
Hello, I'm trying to compute the accelerance FRF based on acceleration and modal hammer force signal.
I use the script of Manuel Lozano (script link) and the matlab modalFRF function, but I have diferences in magnitude and shape.
clc; clear; close all;
a = readtable ('aceleracion.csv').Var2; %Aceleration in [g]
f = readtable ('fuerza.csv').Var2; %Force in [N]
%% Using the code of https://la.mathworks.com/matlabcentral/answers/530968-what-s-wrong-with-my-frf
N = length(a); %length of signal
fs = 10000; %sampling frequency [Hz]
df = fs/N; %frequency resolution
fn = fs/2; %nyquist frequency
frequencies = linspace(0,fn,N/2+1);
Y = fft(a);
X = fft (f);
FRF = (Y./X); %Accelerance
Ymag = abs(FRF/N);
Ymag = Ymag(1:N/2+1);
Ymag(2:end-1) = 2*Ymag(2:end-1); % double magnitudes except c0
%% Using modalfrf function
winlen = size(a,1);
[FRF,f] = modalfrf(f, a, fs, winlen);
FRF = abs(FRF);
%% Plot
figure
plot(frequencies,Ymag, f, FRF)
set(gca,'YScale','log')
xlabel('frequency [Hz]')
ylabel('Magnitude [g/N]')
legend ('Using FFT', 'Using Matlab ModalFRF');
grid on

I have also calculated the accelerance function using commercial software based on LabVIEW language. It can be seen that there is no coincidence either.

Does anyone done this comparison? can someone tell me where is the error?
Thanks in advance.
採用された回答
その他の回答 (1 件)
Ricardo Néstor Aguilar
2022 年 8 月 2 日
2 件のコメント
Paul
2022 年 8 月 2 日
Yes, I should have commented on the "divide by N." But keep in mind that the plots above are the reactance, when the question was about the accelerance. So to get the accelerance, really should multiply the output of modalfrf by (2*pi*frequencies').^2 , or by the negative of that if also desired to preserve the phase.
Ricardo Néstor Aguilar
2022 年 8 月 2 日
カテゴリ
ヘルプ センター および File Exchange で Numerical Integration and Differential Equations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
