How to get 2% and 5% settling time from simulink?
조회 수: 102 (최근 30일)
이전 댓글 표시
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
답변 (2개)
Sam Chak
2024년 2월 22일
편집: Sam Chak
2024년 2월 22일
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
2024년 2월 22일
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.
참고 항목
카테고리
Help Center 및 File Exchange에서 Simulink Functions에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!