control.describing_function_plotļ
- control.describing_function_plot(data, *args, **kwargs)[source]ļ
Nyquist plot with describing function for a nonlinear system.
This function generates a Nyquist plot for a closed loop system consisting of a linear system with a nonlinearity in the feedback path.
The function may be called in one of two forms:
describing_function_plot(response[, options])
describing_function_plot(H, F, A[, omega[, options]])
In the first form, the response should be generated using the
describing_function_responsefunction. In the second form, that function is called internally, with the listed arguments.- Parameters:
- data
DescribingFunctionResponse A describing function response data object created by
describing_function_response.- HLTI system
Linear time-invariant (LTI) system (state space, transfer function, or FRD).
- Fnonlinear function
Nonlinearity in the feedback path, either a scalar function or a single-input, single-output, static input/output system.
- Alist
List of amplitudes to be used for the describing function plot.
- omegalist, optional
List of frequencies to be used for the linear system Nyquist curve. If not specified (or None), frequencies are computed automatically based on the properties of the linear system.
- refinebool, optional
If True (default), refine the location of the intersection of the Nyquist curve for the linear system and the describing function to determine the intersection point.
- labelstr or array_like of str, optional
If present, replace automatically generated label with the given label.
- point_labelstr, optional
Formatting string used to label intersection points on the Nyquist plot. Defaults to ā%5.2g @ %-5.2gā. Set to None to omit labels.
- ax
matplotlib.axes.Axes, optional The matplotlib axes to draw the figure on. If not specified and the current figure has a single axes, that axes is used. Otherwise, a new figure is created.
- titlestr, optional
Set the title of the plot. Defaults to plot type and system name(s).
- warn_nyquistbool, optional
Set to True to turn on warnings generated by
nyquist_plotor False to turn off warnings. If not set (or set to None), warnings are turned off if omega is specified, otherwise they are turned on.- **kwargs
matplotlib.pyplot.plotkeyword properties, optional Additional keywords passed to
matplotlibto specify line properties for Nyquist curve.
- data
- Returns:
- cplt
ControlPlotobject Object containing the data that were plotted. See
ControlPlotfor more detailed information.- cplt.linesarray of
matplotlib.lines.Line2D Array containing information on each line in the plot. The first element of the array is a list of lines (typically only one) for the Nyquist plot of the linear I/O system. The second element of the array is a list of lines (typically only one) for the describing function curve.
- cplt.axes2D array of
matplotlib.axes.Axes Axes for each subplot.
- cplt.figure
matplotlib.figure.Figure Figure containing the plot.
- cplt
Examples
>>> H_simple = ct.tf([8], [1, 2, 2, 1]) >>> F_saturation = ct.saturation_nonlinearity(1) >>> amp = np.linspace(1, 4, 10) >>> cplt = ct.describing_function_plot(H_simple, F_saturation, amp)