StefanRickli / anp

(A)nimated (N)yquist (P)lot. A Matlab program that draws a reasonable Nyquist diagram of any given rational transfer function and allows the user to explore it.
BSD 3-Clause "New" or "Revised" License
7 stars 1 forks source link

In MIMO systems, poles and zeros often are very close to each other. Check for neighboring p/z when creating a detour. #26

Open StefanRickli opened 7 years ago

StefanRickli commented 7 years ago

At the moment we don't check whether we enclose a pole or zero other than the one we want to make the detour around.

StefanRickli commented 7 years ago

This is an inherent design problem of the program. On one side we really want to make the detour / indendation radius reasonably large because this allows to analyze the behavior of the Nyquist plot in the vicinity of these interesting singularities (educational value). On the other side without the check we risk having an adjacent p/z inside the indendation and thus creating a wrong Nyquist plot.

Of course we can add a check for neighboring poles but the purpose of a Nyquist plot actually is to avoid a calculation of the zeros. Thus, in reality we don't know the location of the zeros (even if we display numerically calculated ones in this program using Matlab's 'roots' command). So we can't really check for neighboring zeros. Thus we would be obliged to really make the indendation as small as possible no matter what.

Haven't made up my mind up on that yet.

One idea would be to show a Nyquist plot that shows very faint the plot for the case when the main radius gets doubled, quadrupled and the indentations getting halfed, a quarter etc. One could then see whether there's any change in the basic shape of the plot for these alternative radii. This of course would require a massive change in the codebase and isn't done in a day's worth of work.