8000 Nyquist plot rescaling is confusing · Issue #1143 · python-control/python-control · GitHub
[go: up one dir, main page]

Skip to content
Nyquist plot rescaling is confusing #1143
Open
@JonHowMIT

Description

@JonHowMIT

Hi - not sure I fully understand how the indentation around an imaginary axis pole is being done for the nyquist plot.

Looking at freqplot.py L 1449:1555 I see:

# Add points for half/quarter circle around pole frequency
# (these will get indented left or right below)
splane_contour = np.concatenate((
    splane_contour[0:first_point+1],
    (1j * np.linspace(
        start_freq, p.imag + indent_radius, indent_points)),
    splane_contour[last_point:]))

but this seems to make all the added points imaginary - what I would have expected to see would be a quarter/half circle with
real and imaginary parts -- something like:

  if indent_direction == 'right':
      direction = 1
  else:
      direction = -1
  angle_start = [0 if start_freq == 0 else -np.pi/2][0]
  angle_end = np.pi/2

  splane_contour = np.concatenate((
      splane_contour[0:first_point+1],
      p + direction*indent_radius*np.exp(direction*1j * np.linspace(
          angle_start, angle_end, indent_points)),
      splane_contour[last_point:]))

with the phase being from -pi/2:pi/2 (unless at origin) with a direction determined by the indent direction
and np.exp(...) creating the small complex valued quarter/half circle centered at pole p (on imag axis)

this change seems to break the encirclement math that follows in the code, so I cannot provide a working example

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0