Suppose we have a linear time invariant system with a feedback loop. We label the open loop system function \(G(s)\). This applet allows the feedback to have a constant gain \(k\) and delay \(a\). Thus, in the frequency domain, the feedback is represented by the function \(K(s) = ke^{-as}\). By Black's formula, the closed loop system function is given by \[ G_{CL}(s) = \frac{K(s)G(s)}{1+K(s)G(s)} = \frac{ke^{-as}G(s)}{1+ke^{-as}G(s)}.\]
The Nyquist plot is the trajectory of \(K(i\omega) G(i\omega) = ke^{-ia\omega}G(i\omega)\) , where \(i\omega\) traverses the imaginary axis.
If the number of poles is greater than the number of zeros, then the Nyquist criterion tells us how to use the Nyquist plot to graphically determine the stability of the closed loop system.
This applet restricts \(G(s)\) to be a rational function with at most 8 poles and 8 zeros.
The window at right displays a portion of the complex plane containing the poles and zeros of the rational function \(G(s).\) Each pole is indicated by a cyan x, and each zero is indicated by a green o. Roll over the plane to create crosshairs and a readout of the complex number.
This window also contains a yellow point on the imaginary axis showing the current value of \(i\omega\).
The window at left displays the Nyquist plot, which is the graph of \(K(i\omega)G(i\omega)\). As described above, the feedback function is \(K(s) = ke^{-as}\). The feedback gain \(k\) is set using the [k-slider]. The feedback delay \(a\) is set using the [a-slider].
This window also contains a yellow dot showing the value of \(K(i\omega)G(i\omega)\), corresponding to the current value of \(\omega\).
To create zeros or poles, first check the create radio button. This will reveal four choices: [Zero], [Pole], [Zero pair], [Pole pair]. Selecting [Zero] and clicking in the Pole-Zero window will create a single real zero at the point on the real axis closest to the click. Selcting [Zero pair] and clicking in Pole-Zero window will create a conjugate pair of zeros. Creating poles is done similarly. A maximum of 8 zeros and 8 poles can be created. If the limit is reached the corresponding radio buttons will be grayed out.
To delete zeros or poles, first check the delete radio button. This reveals the choices [Zero(s)], [Pole(s)]. Selecting [Zero(s)] and and clicking in the Zero-Pole window will delete the real zero or conjugate pair closest to the click. Deleting poles is similar.
If the [Drag] radio button has been selected, a mouse click on the complex plane will suppress the crosshairs and grab the nearest zero, pole, or member of zero or pole pair, which may then be dragged. If the click is closest to the yellow point representing \(i\omega\), then that point will be selected and dragged and \(\omega\) will be changed.
Selecting the [Formula] checkbox at reveals the formula for \(G(s)\).
Only one of the radio buttons [Show closed loop poles] and [Allow delay] can be selected at the same time.
If [Show closed loop poles] is selected then the poles of the closed loop system function are displayed as yellow x's in the Pole-Zero window. This option hides the [a-slider] and sets the delay \(a = 0.0\). (This is necessary because the poles of the system with nonzero delay can be difficult to compute and there are usually an infinite number of them.)
If [Allow delay] is selected then the [a-slider] is visible and can be used to set a nonzero delay.
The Pole-Zero window can be scaled independently in either the real or imaginary direction. This is controlled by a slider under the window. Which direction is scaled is set using the [Re] and [Im] radio buttons to the left of the slider.
The Nyquist plot window can be scaled using the slider directly under the Nyquist plot window.
© 2008-2018 H. Miller, Franz Hover, J.-M. Claus and J. Orloff