How Does Unity Position Feedback Affect System Dynamics in Control Theory?

AI Thread Summary
The discussion focuses on analyzing a control system with unity position feedback by plotting the root locus as a function of pitch gain (K1) when K2 is set to zero. Participants derived the open and closed-loop transfer functions, identifying the poles and zeros, and emphasized the importance of the dominant complex conjugate poles for approximating the system's dynamics. They discussed how to impose a second-order system approximation to estimate settling time, rise time, and peak time, particularly under the constraint of achieving a 20% overshoot. The conversation also touched on using the damping ratio and natural frequency to find the appropriate K1 value, with some confusion about the correct method for plotting the root locus and determining system parameters. Ultimately, they concluded that adjustments to K1 are necessary to align the system's response with the desired overshoot characteristics.
  • #51
toolpusher123 said:
Ok I will add to H(s) block, H(s) now = 2s+2/(s+2)
So, is the root locus where you would expect?
 
Physics news on Phys.org
  • #52
I think so, I'm looking at the corresponding 'step reponse', I think overshoot has dropped (improved stability)?
On the root locus I would have thought the new 'zero' would move root locus to the L.H.S?
 
  • #53
toolpusher123 said:
I think so, I'm looking at the corresponding 'step reponse', I think overshoot has dropped (improved stability)?
You've made sure the root locus is close to ##s = -1 \pm j2##, but you need to add the compensator pole to actually force it to pass through it.

Also, recall that the root locus just shows you possible locations for the closed-loop poles. You need to figure out what value of ##K_1## actually places closed-loop poles on the root locus where you want them. Currently, you're just plotting with ##K_1 = 1##, and, as you can tell from your root locus plot, there are no closed-loop poles (purple dots) anywhere close to ##s = -1 \pm j2##.
toolpusher123 said:
On the root locus I would have thought the new 'zero' would move root locus to the L.H.S?
Yes, due to its contribution to the angle criterion, a lead compensator will have a tendency to "push" the root locus further into the left-hand plane.
 
  • #54
I'll have to check with the youtube video you posted earlier, but do I perform much the same process to find the 'compensator pole'?
 
  • #55
toolpusher123 said:
I'll have to check with the youtube video you posted earlier, but do I perform much the same process to find the 'compensator pole'?
You're pretty much already done with that. You know what angle it needs to contribute, so, just like you found the angles for the other vectors, find the location a pole must have in order for its vector to contribute 1.58°.
 
  • #56
I should probably also mention now, before you start wondering, that there's a rather significant caveat to root-locus design:

Using the angle criterion, you can force the root locus to place a branch anywhere you want, but this says nothing about where else it might also have a branch. You might finish your design only to discover that your carefully selected closed-loop poles are no longer dominant, or worse, the system might be unstable.

I mention this, because the design you're currently doing has a branch that's closer to the imaginary axis than the dominant closed-loop poles you want, but there's no need to worry about that now. It has an easy fix.
 
  • #57
I've used the reverse of the previous procedure. So if I want the pole on the real axis & I want it to contribute 1.58 deg. Using the same ref point as before i.e. s= -1 +/- 2j, I get a position for the new pole at s=-73.51 (real axis)?
 
  • #58
toolpusher123 said:
I've used the reverse of the previous procedure. So if I want the pole on the real axis & I want it to contribute 1.58 deg. Using the same ref point as before i.e. s= -1 +/- 2j, I get a position for the new pole at s=-73.51 (real axis)?
You could try plotting the root locus again to check your result.
 
  • #60
toolpusher123 said:
Wow, I've never had this result in all my attempts. Not 100% sure I entered the correct tf.
No, something went wrong there. You added the compensator zero alright, so what's the difficulty with adding the pole?
 
  • #61
I keep getting the same result, therefore I don't think it's a mistake in my multiplication when working out my tf. It must be the position of the pole.
  • To work out the position of the pole, I just used trig. Knowing the 3 angles (1.58, 88.42 & 90) & the height of the right angled tri i.e. 2.0 ,to put pole on real axis. I then derived the length of the base (base equal to 72.54). The reference pole was at (-1) on real axis therefore my new pole is at -73.51?
  • I'm really not sure what's wrong with the method or calc?
 
  • #62
toolpusher123 said:
I keep getting the same result, therefore I don't think it's a mistake in my multiplication when working out my tf. It must be the position of the pole.
  • To work out the position of the pole, I just used trig. Knowing the 3 angles (1.58, 88.42 & 90) & the height of the right angled tri i.e. 2.0 ,to put pole on real axis. I then derived the length of the base (base equal to 72.54). The reference pole was at (-1) on real axis therefore my new pole is at -73.51?
  • I'm really not sure what's wrong with the method or calc?
I had another look at your root locus plot. I can't tell exactly what it is you're doing, but it shows a zero at -73.51, not a pole (circles are zeros, crosses are poles).

You can include your MATLAB code using [ code ][ /code ] tags without the spaces.
 
  • #64

Attachments

  • upload_2014-12-15_19-40-30.png
    upload_2014-12-15_19-40-30.png
    1.7 KB · Views: 526
  • #65
So with the addition of the compensator pole, does the root locus now pass through ##s = -1 \pm j2##?
 
  • #66
No it's close but it doesn't go through these ponts?
 
  • #67
toolpusher123 said:
No it's close but it doesn't go through these ponts?
If I use your pole location, I have it passing through within ##s = (-1 \pm 0.005) \pm j(2 \pm 0.005)##. That's close enough.

Now you need the value of ##K_1## that places closed-loop poles at that location.
 
  • #68
Yes you're right it does. I was looking at the wrong root locus (I now have several on my desktop). So K1 representing the gain, I need to find a value for it that places 'closed loop' poles at s = -1 +/- 2j. I was getting confused with the open/closed loop. I plot the locus with open loop tf but it shows the possible positions of closed loop poles.
  • To find the value of K1, is there a formula or would I just move the 'pink dot' until its in the required position & read off the value?
 
  • #69
When you say that it comes as close as 0.005, is this on the root locus with the compensator added? When I zoom in it looks as if it's way further out. Am I even looking at the correct plot?
rlocus plot: https://app.box.com/s/0w8pszlnpxa31vxpn0an
 
  • #71
Th
 
Last edited:
  • #72
I've run this through numerous times & the open-loop tf I'm using has all the necessary poles & zeros:

  • Poles: s = -73.51, -2, -1.25, -0.117 ± 0.0511j
  • Zeros: s = -1.58, -0.452
But looking at the root locus plot, none of the branches intersect with s = -1 ± 2j. The closest branch is at least 0.3 out. I'm unsure as to where our methods diverged? I don't see a way to find K1 if there's no intersection. Any instruction on this last bit would be appreciated...
 
Last edited:
  • #73
toolpusher123 said:
Finally got the root locus to come out correctly:D. I'd been using wxMaxima to multiply out my tf's so I could get them in a format that I'm familiar with inputting into MATLAB. But wxMaxima seems to be giving an incorrect result. When I did it by hand, the root locus passed through s = -1+/- 2j. There's a plot below:
Root Locus + Compensator: https://app.box.com/s/stheyn866bi43dez9rxe
I think you're making things more difficult than they need be, and in the process, you're including some errors. Let MATLAB handle some of the difficult bits, so it's easier for you to check your results.

As an example, here's how I would plot the root locus with your compensator added:
Code:
s = tf('s');

G = -0.125*(s + 0.452)/((s + 1.25)*(s^2 + 0.234*s + 0.0163));
P = -2/(s + 2)*G;

C = (s + 1)/(s + 73.51);

rlocus(C*P)
Tip: You can click the root locus to add a draggable point on it that shows numerical values.

toolpusher123 said:
I don't see a way to find K1 if there's no intersection.
There is an intersection, and to find ##K_1##, consider that the characteristic equation for your system is true for any point that's on the root locus. If you plug your numbers into this equation, how many unknowns are there?
 
Last edited:
  • #74
I get the exact same plot as I did before, with no intesection at s = -1 =/- 2j ? In the example above for C, it shows the zero as s = -1 ? Is this the value I should be using, as I've been using s = 1.58 ?
If I use the s=-1, then I get a plot that quite similar but with the intersection at s= -1+/- 2j.

Edit: Yes we were given the zero at -1. Somehow I thought we'd derived a new one at s = -1.58??
Spent the whole night chasing my tail, when it was in black & white all along!
 
Last edited:
  • #75
When I produce the 'step' response, the overshoot is gone but it still has a settling time of 36 secs. How would I go about reducing it to the design specs?
 
  • #76
toolpusher123 said:
When I produce the 'step' response, the overshoot is gone but it still has a settling time of 36 secs. How would I go about reducing it to the design specs?
Are there any purple/pink dots at ##s = -1 \pm j2##? What does that mean?
 
  • #77
No. Are these markers of the gain (K)? I've tried to move them in order to adjust the reponse but it just becomes totally unstable?

Edit: moving the 'pink dot' to -1+/- 2j I've reduced the Ts to under 4 secs but the PO is 22.6%. Does this mean I would have to use the same process again to get closer to design specs?
 
Last edited:
  • #78
toolpusher123 said:
No. Are these markers of the gain (K)? I've tried to move them in order to adjust the reponse but it just becomes totally unstable?

Edit: moving the 'pink dot' to -1+/- 2j I've reduced the Ts to under 4 secs but the PO is 22.6%. Does this mean I would have to use the same process again to get closer to design specs?
It won't be exact, since you're not working with a true second-order system. Try moving the compensator zero to -0.5 and recalculate your controller (including ##K_1##).

The "fix" I mentioned, is to try and make sure there are zeros near the conjugate pair of closed-loop poles that's closer to the imaginary axis than ##s = -1 \pm j2##. It's an effort to get them to cancel, so you won't have their effect in the system.
 
  • #79
One last thing I was going to ask, as I've asked you countless questions so far. Is for Q6,7 I've got to repeat the earlier Q's i.e plot root locus & do the 2nd order approx. This time I include (-K2s). I've been trying to resolve the TF I should use. Till now it's been 'open-loop',
  • Would I find the closed loop for; (2/s+2) * Gs)/1+(2/s+2)*Gs*(-k2s) & then multiply by -k1?
  • 40(250s+113)/(40000s^4+139360s^3+141072s^2+30039s+1630)
 
  • #80
toolpusher123 said:
Would I find the closed loop for; (2/s+2) * Gs)/1+(2/s+2)*Gs*(-k2s) & then multiply by -k1?
No, it's good thinking, but that would only be correct if ##K_2## was a constant. You're asked to set ##K_2 = K_1##, and ##K_1## is the parameter you want to plot the root locus for as it varies.

In a nutshell: You need the characteristic equation for your system to have the form:
$$
1 + K F(s) = 0 \quad (1)
$$
where ##K## is the parameter you want to plot the root locus for, and ##F(s)## is not a function of ##K##.

As an example, consider the characteristic equation for your system without the velocity feedback:
$$
1 - K_1 \frac{2}{s + 2} G(s) = 0 \Leftrightarrow 1 - K_1 F(s) = 0, F(s) = \frac{2}{s + 2} G(s)
$$
All is well, since ##F(s)## isn't a function of ##K_1##.

In short: You need to put the characteristic equation for your system with velocity feedback into the form ##(1)##. ##F(s)## is then the function you need to use with 'rlocus' etc. in MATLAB.
 
Last edited:
  • #81
Correction: Should be:
$$
1 - K_1 \frac{2}{s + 2} G(s) = 0 \Leftrightarrow 1 + K_1 F(s) = 0, F(s) = -\frac{2}{s + 2} G(s)
$$
I dun goofed there.
 
  • #82
Does the above represent the 'open loop' tf when the system includes K1 & K2?
 
  • #83
toolpusher123 said:
Does the above represent the 'open loop' tf when the system includes K1 & K2?
If by above you mean post #81, then no. It was just a correction to post #80.

Again:
milesyoung said:
In short: You need to put the characteristic equation for your system with velocity feedback into the form ##(1)##. ##F(s)## is then the function you need to use with 'rlocus' etc. in MATLAB.
 
  • #84
Therefore F(s) = 2/(s+2)*G(s)
 
  • #85
toolpusher123 said:
Therefore F(s) = 2/(s+2)*G(s)
No, ##F(s) = -\frac{2}{s + 2} G(s)## for the system without velocity feedback.

You need to figure out what the characteristic equation is for your system when you add the inner feedback loop.
 
  • #86
But that's exactly where I'm stuck, I've done everything but I'm not sure how to get the 'open loop' with velocity feedback i.e. K1=K2. For the 1st system you just multiply :

  • -1*2/(s+2)*G(s)
  • But how do you work out the open loop tf with velocity feedback? Not sure how to deal with the closed loop part with K2
  • Would it be: 1+Ks(s)G(s)(2/(s+2))?
 
Last edited:
  • #87
I'm all for helping, but you have to start showing more of your thought process behind your work. Right now, it just looks like you're guessing.

If you've studied feedback systems in some form, lectures/textbook etc., you should know what the characteristic equation is for such a system, e.g.:

essblk6.png


What is the characteristic equation for this system?
 
  • #88
-K1*H(s)*(G(s)/1-H(s)*G(s)*K2s ?
  • H(s) = 2/(s+2)
  • G(s) = -0.125(s+0.452)/(s+1.25)(s^2+0.234s+0.0163)
  • Therefore as I originally said , find closed loop of H(s), G(s) & -k2s
  • the open loop is then: the closed loop above * -k1
  • Root Locus Plot:
  • Open Loop Bode Plot: https://app.box.com/s/iaqcgq70apqf6v2staw5
 
Last edited:
  • #89
The picture has nothing to do with the system in your assignment.

In terms of the functions ##G(s)## and ##H(s)##, what is the characteristic equation for the system in the picture?
 
  • #91
  • #92
In response to 'milesyoung' post #87;
Miles I have submitted my report. I must thank you for all your help & suggestions. Now that the project is complete, I have a much better understanding of the processes/concepts involved. At the beginning I really did not have a clue. So thanks again for your patience & commitment...

Edit: Thanks to anyone else on the site who added any input.
 
  • #93
donpacino said:
While you did not answer Milesyoung's question, your F(s) open loop is correct.
That's the equivalent system for the forward path of the outer feedback loop, but that's not the function you should use in place of ##F(s)##, since it depends on ##K_1,K_2##.

toolpusher123 said:
Miles I have submitted my report. I must thank you for all your help & suggestions. Now that the project is complete, I have a much better understanding of the processes/concepts involved. At the beginning I really did not have a clue. So thanks again for your patience & commitment...
You're very welcome. Since you've submitted it, I can show you what I was getting at:

The characteristic equation for your system with velocity feedback is (using your definitions):
$$
1 - \frac{K_1 H(s) G(s)}{1 - K_1 s H(s) G(s)} = 0 \Leftrightarrow 1 - K_1 s H(s) G(s) - K_1 H(s) G(s) = 0\\
\Leftrightarrow 1 + K_1\left[-s H(s) G(s) - H(s) G(s)\right] = 0 \Leftrightarrow 1 + K_1 F(s) = 0, F(s) = -s H(s) G(s) - H(s) G(s)
$$
If you plot the root locus for ##F(s)##, you should notice some significant differences from the system without velocity feedback, e.g. it's stable for any ##K_1##, and the dominant branch lies much further into the LHP.
 
  • #94
No my post was in response to your post (post # 87).
My solution regarding my system i.e. K1 = K2 was to find the open-loop tf. The equation I used to do this was: https://app.box.com/s/arwnrxwopi6y2cjls42q

Edit: From post #87 ( "your F(s) open loop is correct").
 
Last edited:
  • #95
toolpusher123 said:
Did I enter an incorrect tf in order to plot 'root locus' of system when K1 = K2 ?
Yes, it should be ##F(s) = -s H(s) G(s) - H(s) G(s)##, as per my post #93.

toolpusher123 said:
Is this the correct root locus i.e. with 'velocity feedback': https://app.box.com/s/wzaupxumo3j96lvjwobo
No, it should look like this:

rlocus.png
 
Back
Top