You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Nyquist plot with imaginary poles, semi-circles only working after 'trick' #613
I'm plotting the Nyquist diagram of a transfer function which has poles on the imaginary axis:
import control
import matplotlib.pyplot as plt
import numpy as np
K = 1
Gp = control.tf([1], [1,1,0,0,0])
Gc = control.tf([K], [1])
control.nyquist_plot(Gp*Gc,plot=True,omega_num=1000)
plt.show()
Which results in the following incorrect plot, that does not show infinte semicircles, but something incorrect:
Also using indent_direction and indent_radius did not solve this.
The trick I found that makes it work is if I add omega_limits=[0.001,10000] to nyquist_plot:
Can you please fix such that the incorrect 'line' does not appear?
Yes, the algorithm to determine the default omega vector for the system starts with a lower frequency of 0.1, because the lowest non-zero pole of the system is at -1.
Activity
bnavigator commentedon Apr 24, 2021
Yes, the algorithm to determine the default omega vector for the system starts with a lower frequency of 0.1, because the lowest non-zero pole of the system is at -1.
python-control/control/freqplot.py
Lines 1088 to 1092 in e81f648
The "trick" to manually define the omega limits is the correct way to override the default omega vector determination.
kevindekemele commentedon Apr 25, 2021
Perhaps if there is a pole at the origin, the lower limit of the omega vector should be below the indent_radius ?