How should be change ROOT LOCUS asymmetric?

2 views (last 30 days)
x y
x y on 25 Nov 2012
Task is find stabil interval. (root locus)
Code:
num=[1 0 0 0]
den=[1 0 5 10 1.5]
Hs=tf(num,den)
rlocus(Hs)
Result:
num =
1 0 0 0
den =
Columns 1 through 3
1.0000 0 5.0000
Columns 4 through 5
10.0000 1.5000
Transfer function:
s^3
------------------------
s^4 + 5 s^2 + 10 s + 1.5
Plot is asymmetric: http://i.imgur.com/v8dQD.png
Who can me help to solve symetrical plot?
  1 Comment
Azzi Abdelmalek
Azzi Abdelmalek on 26 Nov 2012
xy, you've added a comment, then don't use answer (use comment).
What do you want exactly to do? Your question and your comment are not coherents

Sign in to comment.

Accepted Answer

More Answers (2)

Jonathan Epperl
Jonathan Epperl on 25 Nov 2012
That's interesting, that harmless looking transfer function really seems to be problematic for Matlab.
You have already noted that the root locus your are getting is certainly wrong -- it is not symmetric wrt the real axis, and also the real axis left of the pole at -1.3 has to lie on the root locus entirely.
Two solutions I can offer:
  • As Azzi has suggested, supply a vector of gain values with higher resolution, I suggest
rlocus(Hs, linspace(0,40,5e3));
  • Instead of drawing the root locus and eyeballing it, do some math to find the imaginary-axis crossings. The Routh-Array and Hurwitz Criteria are favorites here.

x y
x y on 26 Nov 2012
Thi is not same ,but in this task is good,is symethric:
s^3
------------------------
s^4 + 5 s^2 + 10 s + 0.5
s^4 + K s^3 + 5 s^2 + 10 s + 0,5 = 0
omega^4 - K j omega^3 - 5 omega^2 + 10 j omega + 0,5 = 0
omega ^4 - 5 omega^2 + 0,5 = 0
- K j omega^3 + 10 j omega = 0 => k = 10 / omega^2
>> omega=roots([1 0 -5 0 0.5]);
>> k=10./omega.^2
k =
2.041684766872804e+000
2.041684766872800e+000
9.795831523312707e+001
9.795831523312721e+001
>> r1=rlocus(g,k(1))
r1 =
8.049116928532385e-016 +2.213123530591180e+000i
8.049116928532385e-016 -2.213123530591180e+000i
-1.990396370317212e+000
-5.128839655559203e-002
>> r2=rlocus(g,k(3))
r2 =
-9.790828968598125e+001
2.359223927328458e-016 +3.195062414783789e-001i
2.359223927328458e-016 -3.195062414783789e-001i
-5.002554714585826e-002
but i dont know how to get this:
s^4 + K s^3 + 5 s^2 + 10 s + 0,5 = 0
* omega^4 - K j omega^3 - 5 omega^2 + 10 j omega + 0,5 = 0*
* omega ^4 - 5 omega^2 + 0,5 = 0
- K j omega^3 + 10 j omega = 0 => k = 10 / omega^2 *

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!