data to transfer function (idfrd) error
1 次查看(过去 30 天)
显示 更早的评论
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![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/671853/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/671853/image.png)
采纳的回答
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Transfer Function Models 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!