Fitting a damping function to a sinusoidal response

9 ビュー (過去 30 日間)
Diogo Carvalho
Diogo Carvalho 2020 年 1 月 31 日
回答済み: Star Strider 2020 年 1 月 31 日
I'm attempting to fit an exponential damping function to a sinusoidal wave by iterating zeta values.
However, it seems I can never get it to properlly 'ride' along the peaks, meaning it always crosses the response function (pic)
As I understand, the damping function looks like exp(-zeta*wn*t). I have estimated the value of wn and I have all values of time.
The function code looks like this:
xi1 = 0.01;
y = exp(-xi1*wn1*(time1-4.3))-0.6568;
plot(time1-4.3,Response1)
hold on
plot(time1-4.3,y)
hold off
grid on
I subtract 0.6568 to have the damping function begin on the first peak.

回答 (2 件)

Image Analyst
Image Analyst 2020 年 1 月 31 日
Try using findpeaks(), and then just pass the peak locations into fitnlm(), like in my attached demo.

Star Strider
Star Strider 2020 年 1 月 31 日

カテゴリ

Help Center および File ExchangeDescriptive Statistics についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by