control.relay_hysteresis_nonlinearity

class control.relay_hysteresis_nonlinearity(b, c)[source]

Relay w/ hysteresis for describing function analysis.

This class creates a nonlinear function representing a a relay with symmetric upper and lower bounds of magnitude b and a hysteretic region of width c (using the notation from [FBS2e](https://fbsbook.org), Example 10.12, including the describing function for the nonlinearity. The following call creates a nonlinear function suitable for describing function analysis:

F = relay_hysteresis_nonlinearity(b, c)

The output of this function is b if x > c and -b if x < -c. For -c <= x <= c, the value depends on the branch of the hysteresis loop (as illustrated in Figure 10.20 of FBS2e).

Parameters
bfloat

Hysteresis bound.

cfloat

Width of hysteresis region.

Examples

>>> nl = ct.relay_hysteresis_nonlinearity(1, 2)
>>> nl(0)
-1
>>> nl(1)  # not enough for switching on
-1
>>> nl(5)
1
>>> nl(-1)  # not enough for switching off
1
>>> nl(-5)
-1
__init__(b, c)[source]

Initialize a describing function nonlinearity (optional).

Methods

__init__(b, c)

Initialize a describing function nonlinearity (optional).

describing_function(A)

Return the describing function for a hysteresis nonlinearity.

describing_function(A)[source]

Return the describing function for a hysteresis nonlinearity.

Parameters
Afloat

Amplitude of the sinusoidal input to the nonlinearity.

Returns
float

Value of the describing function at the given amplitude.