2016-05-09 4 views
1

機械構造から伝達関数を求めたい。それで、私は加速度センサーで正弦波スイープと測定で構造を励起します。理論的には、私は以下のスクリプトを使用して、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

代わりにtfestimateを使用できますが、システムIDはサイエンスではなくアートです(常に請求されているものの)。

[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

+0

あなたの助けをありがとうございました。結果はわずかに改善されます。しかし、それは残念ながら十分ではありません。私は主な問題は、これらのすべての方法が、私の意見では必要ではない入力信号のfftの一種で分けていることだと思います。私は、掃引はしばしば音響に使われるので、Matlabでチャープ信号用に何かを持っているかもしれないと思いました。 – Sebastian

+1

@セバスチャン本当はあなたの心配が何であるかを見ています。信号処理は実際に識別の要点ですので、そのウィンドウ設定にもっと注意を払う必要があります。また、あなたの入力は十分に豊富でなければなりません、sys idの人々はこれを*励起の永続性*と呼んでいます。ここでは、あなたの入力が充分に豊かではないことが分かります。それは私がアート*を意味するものです – percusse

関連する問題