MATLAB Answers

Increase amount of data extracted from Nyquist plot

1 view (last 30 days)
Hi,
I already have extracted data from my nyquist plot with the following code:
linearSystemAnalyzer('nyquist',(zp+zt)); %zp+zt is my transfer function
[re,im] = nyquist(zp+zt);
Re = squeeze(re);
Im = squeeze(im);
This code extracted 437 values for each Re and Im. The Real part values were in an interval of [-7; 800]
Now I need to have more detailed data. So I want to have more values extracted from the nyquist plot. I already tried out the following code:
linearSystemAnalyzer('nyquist',(zp+zt)); %zp+zt is my transfer function
increase_number_of_values = [0 : 1 : 1000];
[re,im] = nyquist((zp+zt), increase_number_of_values);
Re = squeeze(re);
Im = squeeze(im);
This did get me more values. But for example the values of the Real part were in an interval of [-7;10] so the distance between each value simply got very very small and I got 1001 values in this interval.
However I want more values spread over the entire interval Re = [-7;800] and not just in Re = [-7;10].
The same applies to the values of the Imaginary part.
Has anybody an idea how to figure this out?
Thanks very much for your help!

Accepted Answer

Mrunmayee Gaikwad
Mrunmayee Gaikwad on 31 Dec 2020
Hi,
The nyquist function when used as nyquist(sys,w), w is specified as the frequency interval for your particular system. So, using 0 : 1 : 1000 in the function, you are defining the frequency interval as {0,1000} and that could be the reason for not getting the desired result.
You can define w = linspace(w1,w2,1000), where {w1,w2} is the frequency interval and 1000 is the number of points between this interval.
Refer to this example for more information: Create Nyquist Plot of Identified Model With Response Uncertainty

More Answers (0)

Community Treasure Hunt

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

Start Hunting!