control.saturation_nonlinearity

class control.saturation_nonlinearity(ub=1, lb=None)[source]

Saturation nonlinearity for describing function analysis.

This class creates a nonlinear function representing a saturation with given upper and lower bounds, including the describing function for the nonlinearity. The following call creates a nonlinear function suitable for describing function analysis:

F = saturation_nonlinearity(ub[, lb])

By default, the lower bound is set to the negative of the upper bound. Asymmetric saturation functions can be created, but note that these functions will not have zero bias and hence care must be taken in using the nonlinearity for analysis.

Parameters
lb, ubfloat

Upper and lower saturation bounds.

Examples

>>> nl = ct.saturation_nonlinearity(5)
>>> nl(1)
np.int64(1)
>>> nl(10)
np.int64(5)
>>> nl(-10)
np.int64(-5)
__init__(ub=1, lb=None)[source]

Initialize a describing function nonlinearity (optional).

Methods

__init__([ub, lb])

Initialize a describing function nonlinearity (optional).

describing_function(A)

Return the describing function for a saturation nonlinearity.

describing_function(A)[source]

Return the describing function for a saturation nonlinearity.

Parameters
Afloat

Amplitude of the sinusoidal input to the nonlinearity.

Returns
float

Value of the describing function at the given amplitude.