this is fixed in control-3.1.0
this can be closed as fixed.
|
I plan to push the 2 changes that have been suggested in this bug report.
Hopefully today.
|
in file
_frequency_vector_.m
at line 176
if I uncomment that line then the plot looks better.
dec_min -= 0.5;
this amount can be adjusted to give us more or less tail!
|
Yes, I tried your suggestion and it looks good here.
We still should make the starting frequency be lower
when there is a pole at the origin (integrator)
|
Does adding a marker to the critical point require anything other than changing
h = plot (pos_args{:}, neg_args{:});
to
h = plot (pos_args{:}, neg_args{:},-1,0,'r+');
?
|
Re-titling report, and shifting category to Octave Forge package as nyquist is not a core Octave function. Making this a feature request and downgrading the severity to Minor.
Attaching the Matlab png to this bug report as the external links may break in the future.
(file #43330)
|
Yes I like the fact that matlab marks -1 with a red + because this is the important point.
This could be re-titled and mark as a wish.
|
Thanks for the additional information, and
thanks for your report.
|
I was comparing to Wolfram because I don't have MatLab on my laptop and wolfram was the handy thing showing the result as I wanted it to be.
However, as I wrote, I asked my collegue, who have got MatLab to check how it behaves on this example and the result was:
http://prntscr.com/if8pfo
(without negative frequencies)
He used the same code I posted in the first message.
|
Minor point: the person who reported this issue
was comparing the result to Wolfram, not Matlab.
Might try Matlab just for interest.
|
The solution you posted works perfect. Thank you for help.
I agree - not incorect, just different.
|
I think this can be closed. It is not incorrect
just different than Matlab.
|
I see your point. here is one way to do it
s=tf('s')
sys=.5/(s*(s+1)^2)
figure(1)
[ ~, ~, w]=nyquist(sys);
nyquist(sys,w*.1)
figure(2)
bode(sys)
I will put it on my todo list and see why
octave's nyquist shows only part of what matlab's
nyquist shows.
|
The tails can be useful - I'm working on describing function (control systems theory) where it's important whether the plot of the decribing function of the nonlinear part and the nyquist plot of the linear part intersect.
In this case (three-position regulator without hysteresis) - they can but in the part which isn't visible.
Reading the help I found the solution - giving the frequency range I was able to get desired plot.
I asked my collegue to draw this plot in MatLab and these parts of the plot were visible by default.
Generally speaking - that's not a bug but it can be misleading.
In this case it was easy to find out that something's wrong because the equation was simple. However, for something more complicated not seeing a part of the plot can be a problem.
|
ok, now we see the same.
Do these tails have any important information in them?
I think the Important parts are in relation to -1 on the real axis.
Therefore the tails are not very important.
I am sure that if you read the help for nyquist you should be able to extent the tails.
|
Yes, now I undestood what the difference is. The parts of the plot going to +/- infinity are missing.
|
Please explain what difference you are seeing.
Is it that octave does not have the long tails on the curve, after it crosses the x asis?
|
The numerator doesn't change anything in my case.
I copied you code to Octave and I still get the Nyquist plot like in the attachment not like in wolfram.
|
you have different numerators.
I tried this and it looks the same a alpha
s=tf('s')
sys=.5/(s*(s+1)^2)
figure(1)
nyquist(sys)
figure(2)
bode(sys)
|
Link to Wolphram Alpha is broken, here is correct one:
https://goo.gl/4pjBN1
|
I tried to get Nyquist plot of a system descripted with equation:
0.5/(s*(1+s)^2)
I tried it on locally installed Octave and Octave online with same results.
The code I used is:
I tried also "sys=tf([1],[1 2 1 0])" but with the same result.
In the attachment there is the result from Octave. Here is the correct result from wolfram alpha:
https://www.wolframalpha.com/input/?i=nyquist+(0.5%2F(s*(1%2Bs)%5E2))
|