ANP: Animated Nyquist Plot

Create a customizable nyquist plot that displays pole/zero contributions.
391 Downloads
Updated 23 Jul 2017

Programmed for educational purposes, this Matlab function draws a Nyquist diagram of any given rational transfer function (including delays) and allows the user to explore it.
As the radius of the D-contour is held relatively small, one can investigate what happens at the origin.
The program also displays the contribution of each pole / zero to the current magnitude and phase.
ANP is capable of handling:
- Vectors with zeros and poles for a SISO system: anp_main([0],[-1,-2,-3+1i,-3-1i])
- SISO rational transfer functions: anp_main(tf(rss(1,1,1)));
- SISO systems with delay: s=tf('s'); anp_main(1/(s+1)*exp(-0.01*s)));
- MIMO systems (computing det(I + L(s)) for a MIMO transfer function L(s)): anp_main(tf(rss(2,2,2)));
Have a look at the file 'anp_usage_examples.m' to see other syntax examples.

Please report any glitches and crashes!

Cite As

Stefan Rickli (2024). ANP: Animated Nyquist Plot (https://github.com/StefanRickli/anp), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2016a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Acknowledgements

Inspired by: GUI for Understanding Nyquist Plots

Inspired: Plot Nyquist Didactic

Community Treasure Hunt

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

Start Hunting!

Versions that use the GitHub default branch cannot be downloaded

Version Published Release Notes
6.0.1.0

Bugfix:
- Incorrect calculation of det(I + L(s))
- Scaling factors, e.g. (-2) in (-2)*(s+1)/(s-1), were not taken into account in results summary, causing a mismatch between plot and results TextBox.

6.0.0.0

New: MIMO support: try anp_main(tf(rss(2,2,2)));
ANP will compute show the Nyquist plot of det(I + L(s)) for a MIMO transfer function L(s).
Changed: Detours around poles/zeros on the imaginary axis now go to the left (due to MIMO system properties).

5.2.4.0

Fixed some crashes and glitches.
See release notes on GitHub for more details.

A future major version will change how the detours around poles and zeros on the imaginary axis behave. This is to reflect specialities with MIMO systems.

5.2.3.0

Fixed initialization of variables that are used only in some rare cases.

5.2.2.0

Bugfix (wrong handling of nonconjugate complex poles/zeros), code cleanup, speedups, more code documentation.
See release notes on GitHub for more details.

5.2.1.0

To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.