Damping and frequency from simulation data

I have some simulation data, for example y in the attachment. I can manually calculate the damping and frequency with logarithmic decrement, but can I do this automated? I can't seem to figure out how.
And/or can I fit a nonlinear function through my datapoints? I tried polyfit but that doesn't work with time series.

2 件のコメント

Ameer Hamza
Ameer Hamza 2020 年 4 月 2 日
How do you manually calculate the damping and frequency? Is there a mathematical formula? What type of nonlinear fit do you want to fit your data?
MM
MM 2020 年 4 月 3 日
I calculated it like they did here:
With damping:
And frequency:
What type of nonlinear fit? I don't know, any that will work. I was hoping a fit would maybe let me help to calculate the frequency and daming ratio

サインインしてコメントする。

回答 (1 件)

Ameer Hamza
Ameer Hamza 2020 年 4 月 3 日

0 投票

The following code automatically estimate the parameters from the signal.
load('PositionY_example.mat');
[val, locs] = findpeaks(y.Data);
peak_times = y.Time(locs);
t0 = t(locs(1));
tn = t(locs(2:end));
omega = mean((1:numel(tn))'./(tn-t0));
xt0 = val(1);
xtn = val(2:end);
delta = mean(log(xtn./xt0)./(1:numel(xtn))');
zeta = delta/sqrt(4*pi^2+delta^2);
As you already know the value of ω, δ, and ζ of your signal, you can calculate the nonlinear fit for your data using this equation.

2 件のコメント

Maitham Alabbad
Maitham Alabbad 2021 年 12 月 8 日
What is variable t represent ?
t0 = t(locs(1));
tn = t(locs(2:end));
MD Riaz Pervez
MD Riaz Pervez 2023 年 4 月 28 日
t represent time. Here use t=Time therefore change that to make a single

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeNonlinear Control についてさらに検索

製品

リリース

R2018b

質問済み:

MM
2020 年 3 月 31 日

コメント済み:

2023 年 4 月 28 日

Community Treasure Hunt

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

Start Hunting!

Translated by