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](, 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).


>>> nl = ct.relay_hysteresis_nonlinearity(1, 2)
>>> nl(0)
>>> nl(1)  # not enough for switching on
>>> nl(5)
>>> nl(-1)  # not enough for switching off
>>> nl(-5)



Return the describing function for a nonlinearity.


Evaluate the nonlinearity at a (scalar) input value.


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.