Borrar filtros
Borrar filtros

How should be change ROOT LOCUS asymmetric?

5 visualizaciones (últimos 30 días)
x y
x y el 25 de Nov. de 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 comentario
Azzi Abdelmalek
Azzi Abdelmalek el 26 de Nov. de 2012
Editada: Azzi Abdelmalek el 26 de Nov. de 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

Iniciar sesión para comentar.

Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 25 de Nov. de 2012
k=-1000:0.1:1000;
rlocus(Hs,k)

Más respuestas (2)

Jonathan Epperl
Jonathan Epperl el 25 de Nov. de 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 el 26 de Nov. de 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 *

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by