How to find total Steady-State Error due to reference and disturbance
51 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
采纳的回答
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)
Before trying to find the steady state output, we need to verify that the system is stable.
pole(EoverR)
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
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
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)
You can use a similar procedure for the transfer function from D(s) to E(s).
0 个评论
更多回答(0 个)
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!