Filter löschen
Filter löschen

Can I calculate the settling time in MATLAB?

32 Ansichten (letzte 30 Tage)
Ali Almakhmari
Ali Almakhmari am 16 Okt. 2023
Beantwortet: Star Strider am 16 Okt. 2023
I have many closed loop transfer functions that are in similar form to this one:
I want to calculate the settling time up until 2% of the final value. I have many of those transfer functions so hopefully whatever method you guys suggest I can use it to automate this process for all.

Antworten (1)

Star Strider
Star Strider am 16 Okt. 2023
Perhaps this —
s = tf('s');
G = (7507.852*s^3 - 37030.228*s^2 - 70479.368*s + 100001.744) / (s^5 + 50*s^4 + 1000*s^3 + 10000.585*s^2 + 9997.664*s + 10001.744);
figure
stepplot(G)
grid
s = stepinfo(G)
s = struct with fields:
RiseTime: 2.3370 TransientTime: 8.1185 SettlingTime: 8.4958 SettlingMin: 9.0200 SettlingMax: 12.8592 Overshoot: 28.6117 Undershoot: 59.0919 Peak: 12.8592 PeakTime: 3.6890
Settling_Time = s.SettlingTime
Settling_Time = 8.4958
From the documentation:
By default, SettlingTime measures the time it takes for the error to stay below 2% of |yfinalyinit|.
That would appear to meet your requirement for it.
.

Kategorien

Mehr zu Mathematics finden Sie in Help Center und File Exchange

Produkte


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by