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

211 views (last 30 days)
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

Accepted Answer

Paul
Paul on 29 Apr 2023
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).

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!