Skip to content

Commit 9c6c619

Browse files
authored
Merge pull request #534 from murrayrm/improve_nyquist
Nyquist plot improvements
2 parents d3928e5 + e0521b9 commit 9c6c619

File tree

14 files changed

+752
-126
lines changed

14 files changed

+752
-126
lines changed

control/config.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,10 @@ def reset_defaults():
4343
# System level defaults
4444
defaults.update(_control_defaults)
4545

46-
from .freqplot import _bode_defaults, _freqplot_defaults
46+
from .freqplot import _bode_defaults, _freqplot_defaults, _nyquist_defaults
4747
defaults.update(_bode_defaults)
4848
defaults.update(_freqplot_defaults)
49+
defaults.update(_nyquist_defaults)
4950

5051
from .nichols import _nichols_defaults
5152
defaults.update(_nichols_defaults)
@@ -138,9 +139,11 @@ def use_fbs_defaults():
138139
The following conventions are used:
139140
* Bode plots plot gain in powers of ten, phase in degrees,
140141
frequency in rad/sec, no grid
142+
* Nyquist plots use dashed lines for mirror image of Nyquist curve
141143
142144
"""
143145
set_defaults('bode', dB=False, deg=True, Hz=False, grid=False)
146+
set_defaults('nyquist', mirror_style='--')
144147

145148

146149
# Decide whether to use numpy.matrix for state space operations
@@ -239,4 +242,7 @@ def use_legacy_defaults(version):
239242
# time responses are only squeezed if SISO
240243
set_defaults('control', squeeze_time_response=True)
241244

245+
# switched mirror_style of nyquist from '-' to '--'
246+
set_defaults('nyqist', mirror_style='-')
247+
242248
return (major, minor, patch)

control/descfcn.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,8 +241,9 @@ def describing_function_plot(
241241
242242
"""
243243
# Start by drawing a Nyquist curve
244-
H_real, H_imag, H_omega = nyquist_plot(H, omega, plot=True, **kwargs)
245-
H_vals = H_real + 1j * H_imag
244+
count, contour = nyquist_plot(
245+
H, omega, plot=True, return_contour=True, **kwargs)
246+
H_omega, H_vals = contour.imag, H(contour)
246247

247248
# Compute the describing function
248249
df = describing_function(F, A)

0 commit comments

Comments
 (0)