# How should be change ROOT LOCUS asymmetric?

2 Ansichten (letzte 30 Tage)
x y am 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 Kommentar-1 ältere Kommentare anzeigen-1 ältere Kommentare ausblenden
Azzi Abdelmalek am 26 Nov. 2012
Bearbeitet: Azzi Abdelmalek am 26 Nov. 2012
What do you want exactly to do? Your question and your comment are not coherents

Melden Sie sich an, um zu kommentieren.

### Akzeptierte Antwort

Azzi Abdelmalek am 25 Nov. 2012
k=-1000:0.1:1000;
rlocus(Hs,k)
##### 0 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

### Weitere Antworten (2)

Jonathan Epperl am 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.
##### 0 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

x y am 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 *
##### 0 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

### Kategorien

Mehr zu Classical Control Design finden Sie in Help Center und File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by