Reconstruct a Frf by using modal parameters of modelfit

3 visualizzazioni (ultimi 30 giorni)
Hello comunity,
how can I reconstruct a frequency response function (FRF) by using the modal parameter genereted by modalfit?
[fn,dr,ms,ofrf] = modalfit(sysMag, sysWout, 300, 5, 'FitMethod','lsrf', 'Feedthrough', false);
By using modalfit I'm receiving an reconstructed FRF shown above. For my work I need to reconstuct the FRF by using the modal parameter (fn, dr, ms).
Full code:
% Generating my system
M = eye(3);
D = [0.06 -0.03 0; -0.03 0.06 -0.03; 0 -0.03 0.03];
K = [6 -3 0; -3 6 -3; 0 -3 3];
% Calculate the dynamic of the system
tmpA = inv(M)*K;
[Phi, tmp]= eig(tmpA);
Omega = sqrt(tmp);
Z = 0.5 .* inv(Phi'*M*Phi)*Phi'*D*Phi*inv(Omega);
for i=1:3
A(:,:,i) = [0 1; -Omega(i,i)^2 -2*Z(i,i)*Omega(i,i)];
B(:,:,i) = [0 0 0; Phi(1,i) Phi(2,i) Phi(3,i)];
C(:,:,i) = [Phi(1,i) 0; Phi(2,i) 0; Phi(3,i) 0];
end
A_m = blkdiag(A(:,:,1), A(:,:,2), A(:,:,3);
B_m = [B(:,:,1); B(:,:,2); B(:,:,3)];
C_m = [C(:,:,1) C(:,:,2) C(:,:,3)];
sys_m = ss(A_m,B_m,C_m, 0)
% Ectract the dynamic of the first mass
f = 0.0:0.01:10;
[mag,phase,wout] = bode(sys_m, f);
sysMag = squeeze(mag(1,1,:));
sysPhase = squeeze(phase(1,1,:));
sysWout = squeeze(wout);
[fn,dr,ms,ofrf] = modalfit(sysMag, sysWout, 300, 5, 'FitMethod','lsrf', 'Feedthrough', false);

Risposte (0)

Categorie

Scopri di più su Vibration Analysis in Help Center e File Exchange

Prodotti


Release

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by