MATLAB R2024 Rb
18 views (last 30 days)
Show older comments
In MATLAB 2024 Rev B, the rlocus command is not working correctly for complex tranfer functions! Here is an example
s=tf('s')
rlocus((60*s^5 + 242*s^4 + 728*s^3 + 564*s^2 - 549*s)/(120*s^4 + 484*s^3 + 1456*s^2 + 1128*s + 1170))
in whuch MATLAB 2021 gives a different plot than MATLAB 2024. The plot of the 2021 ver is correct. What changed?
2 Comments
Cris LaPierre
on 5 Dec 2024
If you think you have found a bug, please report that here: https://www.mathworks.com/support/contact_us.html
Paul
on 5 Dec 2024
Hi Shahin,
That is interesting. It looks like the markers for the open-loop poles and zeros are the opposite of standard conventions. Is that the only issue? I confirmed that the locus looks the same in R2024a but the pole and zero markers are as expected, so this is a new development in R2024b.
s=tf('s');
figure
rlocus((60*s^5 + 242*s^4 + 728*s^3 + 564*s^2 - 549*s)/(120*s^4 + 484*s^3 + 1456*s^2 + 1128*s + 1170));
The problematic example is an improper transfer function. rlocus looks correct for a proper transfer function.
figure
rlocus((s+1)*(s+2)/(s^2 + 2*.5*2*s + 4))
If you open a case with Tech Support, would you mind posting back here with their response?
Answers (1)
Andrew Ouellette
on 9 Dec 2024
Hi Shahin,
2 notes:
1) In R2024b as of update 2, rlocusplot() generates an incorrect response for improper models. This bug will be fixed in a future R2024b update and for future versions of MATLAB.
2) As of R2024b, rlocusplot() does not support complex models. You will receive errors when launching the chart with complex models specified, and you will receive errors when updating an existing chart response to use a complex model.
2 Comments
Paul
on 9 Dec 2024
Edited: Paul
on 9 Dec 2024
Is there also a problem with rlocus as well as rlocusplot?
Is the problem only the markers for the open-loop poles and zeros? Or is there a problem with the plot of the trajectories of the closed-loop poles?
"Complex model" means a model with complex coefficients?
Andrew Ouellette
on 9 Dec 2024
Hi Paul,
This issue occurs only for the no-output syntax of rlocus(), which is a redirect to rlocusplot(). The markers for poles and zeros are swapped, but the trajectories are otherwise correct.
And yes, by complex model I mean ones with complex coefficients (ones where isreal() returns false).
rlocusplot(rss(3)*1j)
See Also
Categories
Find more on Classical Control Design in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!