control.relay_hysteresis_nonlinearity

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

Bases: DescribingFunctionNonlinearity

Relay w/ hysteresis nonlinearity 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).

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

Methods

describing_function

Return the describing function for a nonlinearity.

__call__(x)[source]

Evaluate the nonlinearity at a (scalar) input value.

describing_function(A)[source]

Return the describing function for a nonlinearity.

This method is used to allow analytical representations of the describing function for a nonlinearity. It turns the (complex) value of the describing function for sinusoidal input of amplitude A.