# Can I calculate the settling time in MATLAB?

47 vues (au cours des 30 derniers jours)
Ali Almakhmari le 16 Oct 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.
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Réponses (1)

Star Strider le 16 Oct 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.
.
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Mathematics dans Help Center et File Exchange

R2022b

### Community Treasure Hunt

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

Start Hunting!

Translated by