Why does the RLOCUS plot curve incorrectly in MATLAB R2009a?

The following lines of code reproduce the problem:
rlocus(tf([0 0.21502754557159 -1.05214115726566 2.05983895370513
-2.01687625836747 0.98766449211981 -0.19351354903461], [1 -6 15 -20 15 -6
1], -1, 'Variable', 'z^-1'))
The problem with this plot is that the "rlocus" drawing routine has connected the wrong points to form lines. For example: the upper most green line starts at its own cross in the middle of the plot but ends in the circle of the light green line (the light green line should bend inwards, not outwards).

 채택된 답변

MathWorks Support Team
MathWorks Support Team 2026년 4월 2일
편집: MathWorks Support Team 2026년 4월 2일

0 개 추천

The horizontal line is not a problem: the system has one more pole than zero, so there ought to be an asymptote. The grouping near z=1 is indeed confusing, but with little hope for improvement. Plotting the root locus with a very dense grid (see code above) reveals that there is a pole of multiplicity 6 near z=1. As a result, the computed roots in a ball of radius eps^(1/6) = 2e-3 are essentially random, which makes any pairing difficult.
The denser plot shows that there are essentially 6 branches coming off z=1 with angles pi/6 + k*2pi/3, k=0:5. However the computed poles for k=0 do not have matching angles (due to the multiplicity 6 and resulting large uncertainty on the computed value). This explains why the pairing is off.

댓글 수: 1

Walter Roberson
Walter Roberson 2015년 8월 16일
편집: MathWorks Support Team 2023년 9월 29일
Dave, I do not know the answer to your question yet, but are you using rlocus() or are you using rlocusplot()?

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Community Treasure Hunt

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

Start Hunting!

Translated by