How to let Matlab show large trends in Nyquist Plot?
9 views (last 30 days)
Show older comments
Matlab works in most cases when plotting Nyquist plots, but when there is a astronomically high value, matlab fails to recognize the global trend of the Nyquist plot, and gives a result that's not useful.
Here is an exmple I found.
clc
clear
s = tf('s');
% change Numerator
N = 1;
% change Denominator
D = s^4*(s+2);
H = N/D
nyquist(H)
grid off
This will yield:

What I expect is something like this.

The plot given by Matlab is not useful for analysis, because the large loops in the second picture has a dramatic impact on the stability analysis of the system.
Another example:
clc
clear
s = tf('s');
%---------------------%
% change Numerator
N = (s+1);
% change Denominator
D = s^2*(s+2);
%---------------------%
H = N/D
nyquist(H)
grid off
Matlab gave this

I'm expecting something like this

Again, the matlab output is not useful.
I'm wondering if Matlab has a way to present something like this intelligently.
0 Comments
Answers (1)
Christopher McCausland
on 20 Jul 2021
Hi Zizhuo,
You are correct, considering a system L(s); where L(s) has two poles at the origin, will give a 360 degree colocwise path with an infinite radius in the L(s) domain. MATLAB will nativly only show the interior of this and neglect the 360 degree loop. This makes sense as drawing an infinitly big loop is a difficult task for a computer. Also the creation of such a 360 degree loop would indicate that the system is inherently unstable and therefore not of much use (unless as proof for a thesis or similar I guess).
There are some developed MATLAB packages on file exchange which may be able to help you such as this one.
Let me know if that helps,
Christopher
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!