Feedback and control steady state error

In summary: N - M = 0$$...where M is the number of poles at the origin. In summary, the system type for the given transfer function is 0. To find the range of K values for a stable closed loop system, we can expand the transfer function G(s) and determine the new poles, which will be a product of K. The maximum value of K for a stable system can then be found by evaluating where the system becomes unstable.
  • #1
Dustinsfl
2,281
5

Homework Statement


Determine the system type for
$$
G(s) = \frac{K}{(s + 1)(10s + 1)(20s + 1)}
$$

Homework Equations


I am using a step, ramp, and parabolic inputs. That is,
\begin{align}
R(s) &= \frac{R}{s}\\
R(s) &= \frac{R}{s^2}\\
R(s) &= \frac{R}{s^3}
\end{align}

The Attempt at a Solution


For a step input, we have
$$
e_{ss} = \lim_{s\to 0}\frac{sR(s)}{1 + G(s)}
$$
where ##R(s) = \frac{R}{s}##.
\begin{align*}
e_{ss} &= \lim_{s\to 0}\frac{R}{1 + G(s)}\\
&= \frac{R}{1 + \lim\limits_{s\to 0}G(s)}
\end{align*}
Let ##\lim\limits_{s\to 0}G(s) = K_p##.
Then
$$
e_{ss} = \frac{R}{1 + K_p}.
$$
Since ##G(s)## has no poles, that is ##\frac{1}{s}##, ##K_p < \infty##.
Therefore,
$$
e_{ss} = \frac{R}{1 + K_p} = \frac{R}{1 + K}.
$$
For a ramp input, ##R(s) = \frac{R}{s^2}##.
\begin{align*}
e_{ss} &= \lim_{s\to 0}\frac{R}{s + sG(s)}\\
&= \lim_{s\to 0}\frac{R}{sG(s)}
\end{align*}
Let ##\lim\limits_{s\to 0}sG(s) = K_v##.
Then
$$
e_{ss} = \lim_{s\to 0}\frac{R}{sG(s)} = \frac{R}{K_v}.
$$
In this case, ##sG(s)## has a pole of order ##1##.
Therefore, ##K_v = 0##.
$$
e_{ss} = \frac{R}{K_v} = \infty
$$
For a parabolic input, ##R(s) = \frac{R}{s^3}##.
\begin{align*}
e_{ss} &= \lim_{s\to 0}\frac{R}{s^2 + s^2G(s)}\\
&= \lim_{s\to 0}\frac{R}{s^2G(s)}
\end{align*}
Let ##\lim\limits_{s\to 0}s^2G(s) = K_a##.
Then
$$
e_{ss} = \lim_{s\to 0}\frac{R}{s^2G(s)} = \frac{R}{K_a}.
$$
In this case, ##s^2G(s)## has a pole of order ##2##.
Therefore, ##K_a = 0##.
$$
e_{ss} = \frac{R}{K_a} = \infty
$$
Thus, we have a type ##0## system.

I am confident with everything above, but how do I find the range that ##K## must be in for the cloosed loop system to be stable?

I have been plotting values of ##K##, and for ##K \geq 0.18##, my steady state error for the step input goes off to infinity when it should be ##\frac{R}{1 + K}##. However, the errors for the ramp and parabolic inputs aren't diverging to infinity like they should. If I take ##0 < K < 0.18##, the step input error goes to 0 as ##t\to\infty##, and the ramp and parabolic error observe a behavior a system of 1 and 2 respectively.

The MATLAB code I am using is below.

Code:
%  G(s) = K/((s + 1)(10s + 1)(20s + 1))
%  ss error and error constants

%  step input
K = .1;
Gzpk = zpk([], [-1, -1/10, -1/20], K);
G = tf(Gzpk)
H = 1;
clooptf = feedback(G, H);

figure(1);
step(clooptf, 100)

% ramp input
t = (0:0.001:500);
u = t;
[y, x] = lsim(clooptf, u, t);

figure(2);
plot(t, y, t, u);
title('Cloosed-loop response for a ramp input')
xlabel('time(sec)')
ylabel('amplitude')

%  parabolic input
%t2 = (0:0.001:50);
u2 = t.^2;
[y2, x2] = lsim(clooptf, u2, t);

figure(3);
plot(t, y2, t, u2);
title('Cloosed-loop response for a parabolic input')
xlabel('time(sec)')
ylabel('amplitude')
 
Last edited:
Physics news on Phys.org
  • #2
You are not modeling your system correctly.
the error is in here...
% step input
K = .1;
Gzpk = zpk([], [-1, -1/10, -1/20], K);
G = tf(Gzpk)
H = 1;
clooptf = feedback(G, H);

Show me an attempt. If you are still stuck I will help you further
 
  • #3
donpacino said:
You are not modeling your system correctly.
the error is in here...
% step input
K = .1;
Gzpk = zpk([], [-1, -1/10, -1/20], K);
G = tf(Gzpk)
H = 1;
clooptf = feedback(G, H);

Show me an attempt. If you are still stuck I will help you further

There isn't an error there.

Also, this doesn't answer how I analytically find the K value that makes the system stable.
 
  • #4
Gzpk = zpk([], [-1, -1/10, -1/20], K);
This produces the system
k/[ (s+1) (s+1/10) (s+1/20) ]
 
  • #5
Since your model was wrong the scale of your graphs were off. The ess was indeed going to 1/(1+K) as t approached inf. The ess was approaching inf as t approached inf.
 
  • #6
I am going to assume that G is your entire system and controller, and there is unity feedback.

r=input
y=output
sys_cl=closed loop system

In this case e=r-y
y=G*e
so y=G*r-y

find the new relationship between y and r (the closed loop system)

expand G and determine the equations for the new poles and evaluate where the system becomes unstable. It should be a product of K. You will then be able to determine the max K.

Note: I pointed out one problem with your work. When someone criticizes do not get defensive, go back and check your work. For the record you said

"However, the errors for the ramp and parabolic inputs aren't diverging to infinity like they should. If I take 0<K<0.18, the step input error goes to 0 as t→∞, and the ramp and parabolic error observe a behavior a system of 1 and 2 respectively."

I was pointing out why you saw that effect
 
  • #7
donpacino said:
Gzpk = zpk([], [-1, -1/10, -1/20], K);
This produces the system
k/[ (s+1) (s+1/10) (s+1/20) ]

That is what G(s) is so that isn't incorrect. We are analzying the unity feedback of the cloosed loop not G(s). What we are looking at is clooptf = feedback(G, H)
 
  • #8
Dustinsfl said:
That is what G(s) is so that isn't incorrect ...
I think you're missing the point. Check your algebra:
[tex]
\begin{align}
G(s) &= \frac{K}{(s + 1)(10s + 1)(20s + 1)} = \frac{K}{\frac{10}{10} \frac{20}{20} (s + 1)(10s + 1)(20s + 1)} = \frac{\frac{1}{200} K}{(s + 1)(s + \frac{1}{10})(s + \frac{1}{20})}
\end{align}
[/tex]
MATLAB trick:
Code:
s = tf('s');
K = 0.1;
G = K/((s + 1)*(10*s + 1)*(20*s + 1));

Also, system type is given by the number of free integrators (poles at the origin) of your open-loop function. You usually don't iterate over steady-state expressions to determine it. I guess it must be part of your assignment.

Dustinsfl said:
... how do I find the range that ##K## must be in for the cloosed loop system to be stable?
You could try to find your systems closed-loop poles by analytically solving its characteristic equation [itex]1 + G(s) = 0[/itex], but that can be rather difficult, depending on polynomial order. If you really want an analytical solution, I'd suggest you get familiar with the Routh–Hurwitz stability criterion.
 
  • Like
Likes 1 person

FAQ: Feedback and control steady state error

What is feedback in a control system?

Feedback in a control system is the process of using output information to adjust the input in order to achieve a desired output. This allows the system to continuously correct and improve its performance.

What is steady state error?

Steady state error is the difference between the desired output and the actual output of a control system after it has stabilized. It is a measure of the system's accuracy and is influenced by the system's response time, gain, and other factors.

How is steady state error calculated?

Steady state error is typically calculated by taking the difference between the desired output and the actual output at a specific time. This can be done by using the final value theorem, which states that the steady state error is equal to the limit of the error as time approaches infinity.

How does feedback affect steady state error?

Feedback plays a crucial role in reducing steady state error. By continuously adjusting the input based on the output, feedback allows the system to correct any errors and approach the desired output more accurately.

What are some methods for reducing steady state error?

There are several methods for reducing steady state error, including increasing the gain of the system, adding a derivative or integral controller, and using a controller with a higher order response. Other techniques, such as feedforward control, can also be used to minimize steady state error.

Similar threads

Replies
1
Views
2K
Replies
8
Views
1K
Replies
2
Views
5K
Replies
2
Views
777
Replies
1
Views
14K
Replies
7
Views
623
Replies
7
Views
1K
Back
Top