How to get 2% and 5% settling time from simulink?
71 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hello,
I am simulating a simple open loop control system, as part of it I need to output the 2% and 5% settling time from simulink to check against my matlab and hand calc results. Can anyone help me with outputting the 2% and 5% settling time on simulink?
0 Commenti
Risposte (2)
Sam Chak
il 22 Feb 2024
Modificato: Sam Chak
il 22 Feb 2024
Hi @Daniel
Below, you'll find the calculation for the settling time based on the 5% criterion:
%% System
zeta= 1/2;
wn = 1;
sys = tf(1, [1 2*zeta*wn wn^2])
%% Assume that response data {Time t, Output y} is sent to Workspace
[y, t] = step(sys);
%% Settling time (5% criterion)
yfinal = 1; % steady-state response value
S = stepinfo(y, t, yfinal, 'SettlingTimeThreshold', 5/100);
Ts = S.SettlingTime
%% Plot result
plot(t, y), grid on
xline(Ts, '--', 'Settling time', 'LabelVerticalAlignment', 'bottom'),
yline(1.05, '--', '+5% threshold')
xlabel t, ylabel y(t)
Update: Demo using Simulink model
%% ----- This part can be skipped ----
load("responseData.mat");
G = tf(1, [1 8.52 5.3 26]);
step(G), grid on
% ------------------------------------
%% Computation of settling times based on 2% and 5% criteria
yfinal = 1/26; % steady-state response value
S2 = stepinfo(out.out, out.t, yfinal);
Ts2 = S2.SettlingTime % 2% criterion
S5 = stepinfo(out.out, out.t, yfinal, 'SettlingTimeThreshold', 5/100);
Ts5 = S5.SettlingTime % 5% criterion
Paul
il 22 Feb 2024
Hi Daniel,
I'm interpreting your question to mean that you have a Simulink model of the system and in Simulink you stimulate the system with a step input and wish to compute the settling time of the output, which is logged by a To Worspace block or something similar.
Vedere anche
Categorie
Scopri di più su Sources in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!