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

Click For 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.
  • #31
First thing, when I wrote:
milesyoung said:
... and ##k## is typically chosen to be 4 or 5 (multiple of time constant) ...
I didn't mean that you should multiply it by anything. ##k## is just a value you use for the number of multiples of the time constant for the system you want to pass until you consider the system to be in steady state. ##k = 4## is a common choice, which is also what MATLAB uses. I'm sorry if that was confusing.
toolpusher123 said:
I have the angle shown as 'phi/2' but how would you find the 2 angles either side?
I assume A (and its conjugate) is the location of the closed-loop poles you've chosen that satisfy the performance requirements. Since you're the one who chose A, you should certainly be able to bisect ##\angle \mathrm{OAF}.##
toolpusher123 said:
  • Am I even using the correct approach?
Sure, just note that it doesn't allow you to choose the location of the zero, which was suggested in the problem statement to be at -1. If you want the zero placed there, however, it should be straightforward to offset the pole location, since you know ##\phi##.
 
Physics news on Phys.org
  • #32
Ah, so I can put the zero at (-1) & then just have to determine the position of the pole. By 'bisect' does this mean to divide into 2 even halves? If this is the case then I can find 'P'. I will do this now & post back...
 
  • #33
toolpusher123 said:
By 'bisect' does this mean to divide into 2 even halves?
Yes, to quote the Wikipedia page I linked:
In geometry, bisection is the division of something into two equal or congruent parts, usually by a line, which is then called a bisector.
toolpusher123 said:
If this is the case then I can find 'P'. I will do this now & post back...

 
  • #34
Wow I finally got my calc's to work out! I don't know if this is correct as things wouldn't work out if I used the (-1) for the pole. Using the trig method shown in the previous pics:
  • θ1 = 155.39 deg, θ2 = 150.31 deg
  • 1 - θ2 = -305.7 deg
  • 305.7 - 180 = + 125.7 deg (∴ lead compensator)
  • Φc = 125.7 ∴ Φc/2 = 62.85 deg (used this value to find 'P' & 'Z')
  • Z = -2.69, P = -10.37 (on real axis)
  • Point 'A' is -5.0 on the real axis (derived from σ = -K/Ts) where K = 5*Ts (Ts = 4)
 
Last edited:
  • #35
toolpusher123 said:
Wow I finally got my calc's to work out! I don't know if this is correct as things wouldn't work out if I used the (-1) for the pole. Using the trig method shown in the previous pics:
  • θ1 = 155.39 deg, θ2 = 150.31 deg
  • 1 - θ2 = -305.7 deg
  • 305.7 - 180 = + 125.7 deg (∴ lead compensator)
  • Φc = 125.7 ∴ Φc/2 = 62.85 deg 9use this value to find 'P' & 'Z')
  • Z = -2.69, P = -10.37 (on real axis)
What pole locations did you choose, i.e. what is A in your diagram?
 
  • #36
A is at (1.174 on imaginary axis) & (-5.0 on real axis). I got the σ = - 5.0 from ( σ = -K/ts) ∴ σ = -20/4 = -5.0?
 
Last edited:
  • #37
The other option was to use (σ = ζ*ωn) but this resulted in: 0.504*1.984 = 0.999? This value was not low enough, it was to the right hand side of the poles (s = -1.25 & s = -2.0).

From the pole & zero I derived (if they're correct), would my compensator be: (s+2.69)/(s+10.37)?
 
  • #38
toolpusher123 said:
A is at (1.174 on imaginary axis) & (-5.0 on real axis). I got the σ = - 5.0 from ( σ = -K/ts) ∴ σ = -20/4 = -5.0?
I suggest you choose something a bit easier to work with. The pole locations ##s = -1 \pm j 2## are approximately in the feasible region.

And again, ##k = 4## in your case, not ##20##.

toolpusher123 said:
The other option was to use (σ = ζ*ωn) but this resulted in: 0.504*1.984 = 0.999? This value was not low enough, it was to the right hand side of the poles (s = -1.25 & s = -2.0).
The dynamics of the closed-loop system is determined by the closed-loop poles (which lie somewhere on the root locus), not the open-loop poles. All that matters is that you pick a location for the closed-loop poles that lie in the feasible region. The problem is then that the root locus does not pass through this location, i.e. there's no value of ##K_1## that puts the closed-loop poles where you want them to be.

Your job is thus to add a lead compensator that's designed to force the root locus to pass through the location you just chose.

toolpusher123 said:
From the pole & zero I derived (if they're correct), would my compensator be: (s+2.69)/(s+10.37)?
Yes, but there are some problems with your design procedure.

In this plot:
https://app.box.com/s/0i97d7xkonsia9psr7it

You're only considering the angle contributions from two of the open-loop poles. You need to consider the contributions from all the open-loop zeros and poles (remember the conjugate pair as well), including those from the compensator.

You're applying the angle criterion for the root locus, which states:
$$
\sum (\textrm{all angles from zeros}) - \sum (\textrm{all angles from poles}) = r(180^\circ), \quad r = \pm 1,\pm 3,\pm 5,\dots
$$
Any point that satisfies this equation is on the root locus.
 
Last edited:
  • #39
The only example I have in my notes deals with 2 poles on the 'real axis'. In order to include the 'complex' poles, do I use the same procedure but now with θ3?
Therefore derive the angles between the poles and point A (now at s = -1 +/- 2j)? This time should I be doing the process with the 'closed-loop' poles?
 
  • #40
toolpusher123 said:
The only example I have in my notes deals with 2 poles on the 'real axis'. In order to include the 'complex' poles, do I use the same procedure but now with θ3?
Therefore derive the angles between the poles and point A (now at s = -1 +/- 2j)?
  1. Plot vectors from all open-loop zeros and poles (including the ones from the compensator) to your test point.
  2. Sum up the angles of these vectors according to the angle criterion.
  3. If the angle criterion is satisfied, then the test point is on the root locus.
If the angle criterion is not satisfied, then you need to employ some geometry voodoo in order to make it so.
 
  • #41
I just found a paper on 'Angle & Magnitude Criteria' it has examples on finding departure & arrival angles & summing them.
Just to make sure I've understood:
  1. Plot the 'open loop' poles & zeros, including the pole at 1 +/- 2j.
  2. Use 'angle criterion' to sum up all the angles.
  3. This should satisfy the 'angle criterion', if not then attack with geometry voodoooooo...
It's 00:50 in the UK, so I'll keep going for an hour or so & then start again 1st thing. I'll post asap. Thanks for all your help...
 
  • #42
toolpusher123 said:
I just found a paper on 'Angle & Magnitude Criteria' it has examples on finding departure & arrival angles & summing them.
Calculating departure and arrival angles is something you do when you want to sketch the root locus. To evaluate the angle criterion, you just need to plug in numbers in the equation I wrote.

toolpusher123 said:
Plot the 'open loop' poles & zeros, including the pole at 1 +/- 2j.
##s = -1 \pm j2## is your test point. First step is to calculate the angles of vectors from the open-loop zeros and poles to the test point (remember to include the zero at -1 from the compensator).

toolpusher123 said:
Use 'angle criterion' to sum up all the angles.
You plug the angles into the equation, and you'll get a result that doesn't satisfy the angle criterion. The angles might sum to, for instance, ##200^\circ##, but that just tells you the compensator pole has to have an angle of ##20^\circ## (since poles subtract from the result).
 
  • #43
Would I be correct in saying that all angles are measured counterclockwise from the real axis? For the pole added at (-1 +/- 2j) I sum the angles to the point at -1 + 2j but do I include the 90 deg from the pole at -1-2j?
  • Σ zeros (105.42+90) - Σ poles (63.38+58+114.47+113.24+90) = 195.42 - 439.09 = - 243.67 deg (should this be negative?)
  • Would this mean the compensator pole would be 43.67?
 
  • #44
toolpusher123 said:
Would I be correct in saying that all angles are measured counterclockwise from the real axis?
Yes, if you imagine translating (moving without rotation) those vectors, such that their origin coincides with the origin of the coordinate system, then the convention is to measure their angles from the (positive) real axis, where counterclockwise means positive rotation.

Alternatively, imagine drawing a line out from the origin of the vectors parallel to the real axis.

toolpusher123 said:
For the pole added at (-1 +/- 2j) I sum the angles to the point at -1 + 2j but do I include the 90 deg from the pole at -1-2j?
I really have to emphasize this part: You're not adding any poles at ##s = -1 \pm j2##. That's just a test point you're using to figure out if the angle criterion is satisfied at that point, so it must not figure into your calculation:
milesyoung said:
1. Plot vectors from all open-loop zeros and poles (including the ones from the compensator) to your test point.

toolpusher123 said:
Σ zeros (105.42+90) - Σ poles (63.38+58+114.47+113.24+90) = 195.42 - 439.09 = - 243.67 deg (should this be negative?)
That's almost correct! :)

The pole contributions of 58° and 90° are not correct (the 90° one shouldn't be there). There are only 4 open-loop poles in addition to the one from the compensator, which you need to add to force the sum of the angles to equal:
$$r(180^\circ), \quad r = \pm 1,\pm 3,\pm 5,\dots$$
Anything negative is fine, it just means ##r## is a negative factor.
 
Last edited:
  • #45
Major issue, I uninstalled Avast as it was blocking Matlab. I didn't realize that at Matlabs .dll's were in its virus chest! Now surprise, surprise Matlab will not run. In process of downloading/reinstalling Matlab so that I can produce the 'root locus' plots etc...
  • I'll redo the 'angle criterion' calcs. I should only use the angles from; -2.0, -1.25, 0.117+/- 0.051j (4 open-loop poles).
  • I'll post asap...
 
  • #46
Hi, I redid those 'angle criterion' calc's & managed to reinstall Matlab. The angle criterion wasn't met, so I added a pole, see below:
  • Angle Criterion: ∑ zeros (90+105.42) - ∑ poles (63.38+82.75+114.47+113.24) = (195.42) - (373.84) = -178.42
  • Therefore if I subtract that from 180 deg: 180 - 178.42 = 1.58
  • You subtract poles therefore: (s+z)/(s+p) = (s+z)/(s+1.58)
 
  • #47
toolpusher123 said:
  • Angle Criterion: ∑ zeros (90+105.42) - ∑ poles (63.38+82.75+114.47+113.24) = (195.42) - (373.84) = -178.42
  • Therefore if I subtract that from 180 deg: 180 - 178.42 = 1.58
So far, so good. As you can now tell, with the addition of the zero at -1, the angle criterion is very nearly satisfied, so if you plot the root locus with just the compensator zero added, you should see it pass very close to ##s = -1 \pm j2##.

Your results differ from mine a tad, but it's so little that it's probably just from rounding and whatnot.
toolpusher123 said:
  • You subtract poles therefore: (s+z)/(s+p) = (s+z)/(s+1.58)
Now you do something very strange. 1.58° is the angle the compensator pole needs to contribute, but you use it as a pole location? :oldconfused:
 
  • #48
For plotting the 'root locus', I will use the 'open loop' tf i.e. G(s)* 2/(s+2)*(-K1)*(s+1). The (s+1) being the new zero...
  • Is the 'compensator' part of the H(s) block i.e. 2/(s+2)? Or would I represent it as a new tf in a Simulink block diagram?
 
  • #49
toolpusher123 said:
For plotting the 'root locus', I will use the 'open loop' tf i.e. G(s)* 2/(s+2)*(-K1)*(s+1). The (s+1) being the new zero...
  • Is the 'compensator' part of the H(s) block i.e. 2/(s+2)? Or would I represent it as a new tf in a Simulink block diagram?
What would you prefer?
 
  • #50
  • #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?
 
  • #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?
 

Similar threads

  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 3 ·
Replies
3
Views
3K
Replies
36
Views
8K
  • · Replies 4 ·
Replies
4
Views
7K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
Replies
1
Views
3K
Replies
1
Views
2K
  • · Replies 11 ·
Replies
11
Views
3K
  • · Replies 4 ·
Replies
4
Views
6K