Why does the RLOCUS plot curve incorrectly in MATLAB?

B
brushly · Dec 16, 2020 · 2.3K views
Question
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 midde of the plot, but ends in the circle of the light green line (the light green line should bend inwards, not outwards).
Expert Answer
Profile picture of John Michell
John Michell PhD Expert
Answered Aug 30, 2026
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.
100% Run Guarantee 3-Hour Fast-Track Delivery

Need a Custom Version or Complete Simulation for This Problem?

Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.

Tested on MATLAB R2024b / R2026a
Turnitin 0% Plagiarism Report
Free 7-Day Revisions Guarantee
Have a different question? Ask here

Get a Free Consultation or a Sample Assignment Review!