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
add option to draw an M circle in the Nyquist plot (#856)
* add option to draw an M circle in the Nyquist plot
* Rename M_circles to disk_margin_circles, document margins
- Rename keyword to avoid clashing with the classical Hall M-circle
terminology already used by Mt_circles.
- Document the symmetric gain margin [(M-1)/M, M/(M-1)] and the
phase margin atan((2M-1)/(2M(M-1))) guarantees.
- Default to Float64[] for type stability.
- Validate M > 1 (avoids the M = 1 singularity and M < 1 sign flip).
Create a Nyquist plot of the `LTISystem`(s). A frequency vector `w` can be
415
415
optionally provided.
416
416
417
417
- `unit_circle`: if the unit circle should be displayed. The Nyquist curve crosses the unit circle at the gain crossover frequency.
418
418
- `Ms_circles`: draw circles corresponding to given levels of sensitivity (circles around -1 with radii `1/Ms`). `Ms_circles` can be supplied as a number or a vector of numbers. A design staying outside such a circle has a phase margin of at least `2asin(1/(2Ms))` rad and a gain margin of at least `Ms/(Ms-1)`. See also [`margin_bounds`](@ref), [`Ms_from_phase_margin`](@ref) and [`Ms_from_gain_margin`](@ref).
419
419
- `Mt_circles`: draw circles corresponding to given levels of complementary sensitivity. `Mt_circles` can be supplied as a number or a vector of numbers.
420
+
- `disk_margin_circles`: draw disk-margin circles for the given values of `M` (`M > 1`, supplied as a number or vector of numbers). Each circle is the disk on the negative real axis passing through `-(M-1)/M` and `-M/(M-1)`. A design whose Nyquist curve stays outside this disk has a symmetric (balanced) gain margin of at least `[(M-1)/M, M/(M-1)]` — i.e. the loop gain may be multiplied by any real factor in that interval without losing stability — together with a phase margin of at least `atan((2M-1)/(2M(M-1)))` rad. Larger `M` corresponds to a smaller, more permissive disk and weaker margin guarantees.
420
421
- `critical_point`: point on real axis to mark as critical for encirclements
421
422
- If `hz=true`, the hover information will be displayed in Hertz, the input frequency vector is still treated as rad/s.
422
423
- `balance`: Call [`balance_statespace`](@ref) on the system before plotting.
0 commit comments