How to find total Steady-State Error due to reference and disturbance

조회 수: 56 (최근 30일)
Vivianne
Vivianne 2023년 4월 29일
답변: Paul 2023년 4월 29일
I have this system and wanted to find the error for when R(s) is a 3 step input and the error when D(s) is a unit step input. I'm doing it this way but I think it's wrong. Can someone tell me if this is the right way?
km = 3.5;
tm = 0.5
K = 5;
s = tf('s');
G = km/(tm*s+1);
sys = feedback(G*K,1,-1);
SP=3; %input value
[y,t]=step(SP*sys); %response of the system to a step with amplitude SP
sserror=abs(SP-y(end)) %get the steady state error

채택된 답변

Paul
Paul 2023년 4월 29일
Hi Vivianne,
If this problem is to be attacked using the Final Value Theorem, we can proceed either numerically or symbolically. Here's the former.
km = 3.5;
tm = 0.5;
K = 5;
s = tf('s');
Define the plant transfer function
G = km/(tm*s+1);
Closed loop transfer function from R(s) to E(s)
EoverR = feedback(1,G*K,-1)
EoverR = 0.5 s + 1 ------------ 0.5 s + 18.5 Continuous-time transfer function.
Before trying to find the steady state output, we need to verify that the system is stable.
pole(EoverR)
ans = -37
The single pole is in the left half plane, so the system is stable and we can proceed
SP = 3; %input value
E(s) in response to R(s) = SP/s
E = EoverR*SP/s
E = 1.5 s + 3 ---------------- 0.5 s^2 + 18.5 s Continuous-time transfer function.
The Final Value Theorem tell us that the steady state value of e(t) is the limit as s ->0 of s*E(s)
s*E
ans = 1.5 s^2 + 3 s ---------------- 0.5 s^2 + 18.5 s Continuous-time transfer function.
We see that the free s in numeator cancels the free s in the denominator, so the limit is simply evaluating SP*EoverR at s = 0
ess = freqresp(EoverR*SP,0)
ess = 0.1622
You can use a similar procedure for the transfer function from D(s) to E(s).

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Simulink에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

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

Start Hunting!

Translated by