# Homework Help: Control Systems, Reduction, Stability,Characteristics and Overshoot

1. Apr 3, 2013

### Fisher92

1. The problem statement, all variables and given/known data
Welding robot is defined by the block diagram attached/ excuse the paint work.

(hope that worked)

find:
a)maximum value of K required to achieve stability.
b)roots of the characteristic equation, at half the maximum K value.
c)estimated percentage overshoot, if the complex roots determined
in part (b) are dominant and half the maximum K is considered.

2. Relevant equations

NA

3. The attempt at a solution

Pretty sure that the first step is reducing the three blocks to a single transfer function?
This is pretty simple, two top blocks are cascaded then using the feedback formula gives.
Gives:
$$\frac{K}{(0.5s+1)(s+1)(s+2)}$$
Using the feedback formula gives:
$$\frac{\frac{K}{(0.5s+1)(s+1)(s+2)}}{1\pm\frac{K}{(0.5s+1)(s+1)(s+2)}* \frac{1}{0.005s+1}}$$

a) Max value of K to achieve stability:
simplifying - getting tired of LaTex, so:http://www.wolframalpha.com/input/?i=%28k%2F%28%280.5s%2B1%29%28s%2B1%29%28s%2B2%29%29%29%2F%28PlusMinus%5B1%2C%28k%2F%28%280.5s%2B1%29%28s%2B1%29%28s%2B2%29%29%29*1%2F%280.005s%2B1%29%5D%29

There are poles and zeroes at s=0 - have to consult my textbook but I cant see how it can be simultaneously asymptotic and 0 ?? - zeroes at s = -1, -2.................I'm a bit stuck here - Routh table??????

Thanks, any help appreciated.

2. Apr 4, 2013

### rude man

Have you covered root-locus and/or Nyquist? Routh-Hurwitz only works if you have actual numbers for all the poles of 1 + G(s)H(s) unless you're willing to do a lot of iteration. That's the extent of my knowledge anyway.

The way to do this in "real life" is to run root locus or Nyquist stability software, but again iterating with different values of k would be necessary if you went Nyquist.

If you're unfamiliar with all of this then maybe you can use Mathematica or some other software to find the roots of 1 + G(s)H(s). I hear some calculators can even do that, at least for a 4th order polynomial.
EDIT: run Wolfram alpha!
EDIT EDIT: forget that. You need root-locus or Nyquist.

Last edited: Apr 4, 2013
3. Apr 4, 2013

### Fisher92

Hmm, maybe i've jumped the gun a bit. We are doing root-locus in a few weeks.
Ill have a look at the chapter and see if I can figure it out..

Thanks

4. Apr 4, 2013

### rude man

OK, there's another approach. You have Gc(s) for the controller, Gm(s) for the wire melter and H(s) for the vision system. The idea is that if the gain of the open-loop transfer function |F| = GcGmH < 1 when the phase shift reaches 180 deg. then your system is stable. If you think about G/(1 + GH) you can see this is so. Similarly, if the gain is < 1 when the open-loop transfer function phase shift reaches 180 deg. then again you're stable.

Form F(s)= Gc(s)Gm(s)H(s) and let s = jω, then graph the magnitude |F| and phase ψ of this function from ω = 0 to ω = 3000. That range covers all your pole frequencies and then some. Start with k = 1/2. Looking at the two graphs, ensure that |F| < 1 when ψ = - 180 deg. Then try larger and larger values of k until |F| > 1 at ψ = -180 deg. I think you'll get in trouble around k = 3.

Alternatively, ensure that ψ < -180 deg when |F| > 1. Same idea.

The Bode plot technique just allows you to draw asymptotes on log-log paper easily. To use the Bode plot method you should rewrite your F so that all the terms are as (s + sk). So for example change the (.5s+1) term to (s+2) and adjust the numerator accordingly.

The asymptotes are drawn more easily if there is at least a 10:1 separation in corner frequencies. In your case though the asymptote at ω = 2 will break just after the one at ω = 1. If you ignore asymptotes and just graph |F| and ψ as I indicated then that in not an issue.

5. Apr 4, 2013

### rude man

Root locus construction is a bear. I hope they just let you run the software (Matlab or whatever).

6. Apr 4, 2013

### Fisher92

Thanks rude man,
Reading through the chapters now, still very confused though.

Not sure if you have experience with MATLAB? Trying to do some work to get matlab to recognize my system correctly - to no avail as of yet.

With the explanation you gave above, Form F(s)= Gc(s)Gm(s)H(s) and let s = jω... Is that straight multiplication of the blocks or do I use the equivalent closed loop that I found at the start - that wolfram alpha link??

Thanks

7. Apr 5, 2013

### rude man

Sorry, too old to have gotten on board with Matlab.

No, the product F(s) = GcGmH is what you use. This is called the open-loop transfer function. The closed-loop form is the one you cited, viz. GcGm/(1 + GcGmH).

As I said, the criterion for stability is that |F(jw)| < 1 when ψ = -180 deg. What is ψ at dc and very low frequencies and how does it change as you increase ω? At some point the phase shift is -180 deg and that's the point where you set k so that |F| = 1.

You should understand why this works. Look at the closed-loop denominator carefully. What happens when the denominator is zero? What makes the denominator zero? Remember the denominator has magnitude AND phase.

8. Apr 5, 2013

### deamonata

plotting the root locus with matlab is very simple (3 lines), if I wanted the root locus of (to give me an easy equation to work with)
$\frac{1}{10S^2+S}$
the code I would use is

Code (Text):
sys1 = tf(1, [10, 1, 0])         % open loop system
sys1c = feedback(0.1*sys1,1)  % closed loop system with k = 0.1
figure(1)
rlocus(sys1c)           % root locus
as an aside if we want the step response you can use

Code (Text):
figure(2)
[y,t] = step(sys1c)           % step response
plot(t,y)                          % plot the step response

9. Apr 5, 2013

### Fisher92

Thanks deamonata,

My open loop system equivalent is:
$$\frac{k}{(0.005s+1)(0.5s+1)(s+1)(s+2)}$$
$$=\frac{k}{0.0025s^4+0.5125s^3+2.52s^2+4.01s+2}$$

so to plot the root locus in matlab, just adjusting your syntax would be:

sys1 = tf(1, [0.0025, 0.5125, 2.52,4.01,2]) % open loop system
sys1c = feedback(0.1*sys1,1) % closed loop system with k = 0.1
figure(1)
rlocus(sys1c) % root locus

Tested this and it gives me the root locus:

But this is for K=1, how can I get the max value of K where the system is stable?
Its been a while since I've used matlab and I seem to have forgotten a lot. I'm trying to do what rude mad said and set s as j omega and then graph the magnitude |F| and phase ψ of this function from ω = 0 to ω = 3000. Trouble is that I cant set the equation as F(s) in matlab???? I'd be grateful if you could give me some pointers on the required syntax - or methods you suggest for this question - seems to be a few different approaches available?..

10. Apr 5, 2013

### deamonata

Based on your respose you appear to be getting confused first of all with what the root locus is. the root locus polts all the values of K, if you click on the graph you will get a box which shows you the value of K at that point. If you still need help I'll write some more detailed instructions on root locuses and the rest but I've just noticed it is nearly 2am here and I'm a bit too tired to write a long post now.

Hopefully that helps a little but I recomend looking through any notes you have. As I said I'll help out tomorrow if you still need it though :).

11. Apr 5, 2013

### Fisher92

More info on when the system becomes unstable (on the root locus graph) would be grate.... when you get a chance. - Ill go through my textbook again and see if I can't figure it out.

Thanks

12. Apr 5, 2013

### deamonata

my lecturer put us on to these youtube videos, worth checking out

Last edited by a moderator: Sep 25, 2014
13. Apr 5, 2013

### Fisher92

Starting to understand the root locus a bit. rude man would you mind explaining why the open loop transfer function is used instead of closed loop?????????????? cant seem to figure that out.

As I understand the root locus, the system is stable on the lhs of the jw axis. So the max gain (K) for stability is at that crossing - or the point that sits on the jw axis??? How can I get matlab to tell me the value of K for this????

Thanks a lot

14. Apr 5, 2013

### rude man

Please look again at my post no. 7. I tried to explain via strong hints why that works. I'll help you once you start to answer those hints.

15. Apr 5, 2013

### Fisher92

Hope this is the post you are referring to?
- I get that when the denominator is zero the output goes to infinity - i.e. system/output is not stable. Also, are you using psi (i think its psi) as omega or are they different, I thought it was just the symbol you were using for omega?

-
The closed loop denominator, from my first post, goes to zero at some mix of s and k,dependent on the gain K. I guess this why the root locus is useful - unless i am completely misinterpreting the post?

16. Apr 6, 2013

### rude man

ψ is the phase shift for F(s) when F is excited by a sinusoid. Then F(s) = |F(jw)| angle (psi).
I use psi instead of the more common phi because I can't ever get a phi from the symbols menu and I don't use latex.
It goes to zero at some ω for a given k. By 'zero' I mean the magnitude |F(jw)| = 1 and psi = -180. That's what you get when you set the denominator of the closed-loop transfer function = 0.

EDIT: example: F(s) = k/(s+a)(s+b)
F(jω) = k/(jω+a)(jω+b)
|F(jω)| = k/(r1*r2) where
r1 = √(a22)
r2 = √(b22)
ψ = - arc tan(ω/a) - arc tan(ω/b).

In your case also ψ will not be a function of k whereas |F| certainly is.

Last edited: Apr 6, 2013
17. Apr 6, 2013

### Fisher92

hmmm,
can someone tell me if what i'm thinking is correct:

the open loop transfer function (OLTF) is the ratio of the output of the feedback path B(s), in this case K, to the Actuating signal E(s) or the 4th odr polynomial on the denominator?

so for (a), the maximum value of K to achieve stability, I essentially want to know how big I can make the gain, k, while keeping the function stable for omega = 0 to 2pi???? - where s = jw (omega)

I'm getting confused because the chapter on stability in my textbook uses the closed loop transfer function the entire way through (text book is Control systems Engineering by Nise).

Can I use the Routh table to determine stability from the OLTF or is it strictly for closed loop functions, can't find an explicit statement on this in my textbook????

Thanks