使用输入扫描进行模态分析以获得传递函数

时间:2016-05-09 07:11:36

标签: matlab

我想从机械结构中获得传递函数。因此,我用正弦扫描激励结构并用加速度传感器测量。从理论上讲,我可以使用以下脚本通过Matlab获取传递函数:

fmin = 1;
fmax = 100;
tmax = 10;
deltaT = 0.01;
t=0:deltaT:tmax;
w=(fmin+(fmax-fmin)/tmax*t)*2*pi;
G = tf(0.5,[1 0.5]); % example transfer function
inp = 5*sin(w.*t);
out = lsim(G,inp,t); % is normally replaced by real measurements
figure; plot(t,inp,'r',t,out,'b');
data =iddata(out(:),inp(:),deltaT);
modfrd = etfe(data);
figure; bode(modfrd,G);
legend('Approximation','Real Curve');

但现实中的结果远非好(非常嘈杂)。有谁知道如何改进转换函数的转换?每个提示都会有所帮助。

非常感谢你。

1 个答案:

答案 0 :(得分:1)

您可以改为使用tfestimate,但系统识别是艺术而不是科学(尽管经常声称)。

[modfrd,w] = tfestimate(inp,out,[],256,512,100);
Gc = frd(modfrd,2*pi*w);
figure; bode(Gc,G);hold on;
legend('Approximation','Real Curve');

enter image description here