data = importdata ('C:\Users\sangwoo\Desktop\mash_change_500Hz_tf.mat');
freq = 1:1:500; % frequency range
w = freq*2*pi; %angle freq
frf = data; % FRF complex number
Fs = 500*2*32;
Ts = 1/Fs;
np = 10; %number of poles
nz = 10; %number of zeros
%% 1 iddata
gfr = idfrd(frf,w,Ts)
%% 2 system
sys = tfest(gfr,np,nz)
%% 3 num, den
num = sys.Numerator;
den = sys.Denominator;
%
% %% 4 continuous transfer function
%
G = tf([num],[den]);
figure(1)
bode(G)
figure(2)
semilogx(2*pi*freq,20*log10(abs(frf))) %compare
left is plot from data right is plot of G ; rad/s and magnitude at resonance is not matched
at tfest process, matlab tell accuracy is 99.7 percent. so i think gfr = tfest. but at idfrd process, some bad think happened. please give me some help to make accurate model

댓글 수: 1

sangwoo ha
sangwoo ha 2021년 7월 2일
sorry i have no idea about iddata i think gfr is perfect but something wrong in tfest

댓글을 달려면 로그인하십시오.

 채택된 답변

Star Strider
Star Strider 2021년 7월 2일

0 개 추천

If you want to see how well the data and identified system match, use the compare function.

추가 답변 (0개)

카테고리

질문:

2021년 7월 2일

댓글:

2021년 7월 2일

Community Treasure Hunt

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

Start Hunting!

Translated by