File Exchange

image thumbnail

ANP: Animated Nyquist Plot

version (4.54 MB) by Stefan Rickli
Create a customizable nyquist plot that displays pole/zero contributions.


Updated 24 Jul 2017

GitHub view license on GitHub

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 (2020). ANP: Animated Nyquist Plot (, GitHub. Retrieved .

Comments and Ratings (1)

Junseok Lee


- 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.

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).

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.

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

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

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

Inspired by: GUI for Understanding Nyquist Plots

Inspired: Plot Nyquist Didatic