# FeedbackFHN#

class brainpy.dyn.FeedbackFHN(size, keep_size=False, a=0.7, b=0.8, delay=10.0, tau=12.5, mu=1.6886, v0=-1, x_ou_mean=0.0, x_ou_sigma=0.0, x_ou_tau=5.0, y_ou_mean=0.0, y_ou_sigma=0.0, y_ou_tau=5.0, x_initializer=Uniform(min_val=0, max_val=0.05, rng=[ 479025946 4206239744]), y_initializer=Uniform(min_val=0, max_val=0.05, rng=[ 479025946 4206239744]), method='exp_auto', name=None, mode=None, input_var=True)[source]#

FitzHugh-Nagumo model with recurrent neural feedback.

The equation of the feedback FitzHugh-Nagumo model [4] is given by

\begin{split}\begin{aligned} \frac{dx}{dt} &= x(t) - \frac{x^3(t)}{3} - y(t) + \mu[x(t-\mathrm{delay}) - x_0] \\ \frac{dy}{dt} &= [x(t) + a - b y(t)] / \tau \end{aligned}\end{split}

Model Examples

>>> import brainpy as bp
>>> fhn = bp.rates.FeedbackFHN(1, delay=10.)
>>> runner = bp.DSRunner(fhn, inputs=('input', 1.), monitors=['x', 'y'])
>>> runner.run(100.)
>>> bp.visualize.line_plot(runner.mon.ts, runner.mon.y, legend='y')
>>> bp.visualize.line_plot(runner.mon.ts, runner.mon.x, legend='x', show=True)


Model Parameters

 Parameter Init Value Unit Explanation a 1 Positive constant b 1 Positive constant tau 12.5 ms Membrane time constant. delay 10 ms Synaptic delay time constant. V_th 1.8 mV Threshold potential of spike. v0 -1 mV Resting potential. mu 1.8 The feedback strength. When positive, it is a excitatory feedback; when negative, it is a inhibitory feedback.
Parameters:
• x_ou_mean (Parameter) – The noise mean of the $$x$$ variable, [mV/ms]

• y_ou_mean (Parameter) – The noise mean of the $$y$$ variable, [mV/ms].

• x_ou_sigma (Parameter) – The noise intensity of the $$x$$ variable, [mV/ms/sqrt(ms)].

• y_ou_sigma (Parameter) – The noise intensity of the $$y$$ variable, [mV/ms/sqrt(ms)].

• x_ou_tau (Parameter) – The timescale of the Ornstein-Uhlenbeck noise process of $$x$$ variable, [ms].

• y_ou_tau (Parameter) – The timescale of the Ornstein-Uhlenbeck noise process of $$y$$ variable, [ms].

References

clear_input()[source]#

Empty function of clearing inputs.

reset_state(batch_or_mode=None, **kwargs)[source]#

Reset function which resets local states in this model.

Simply speaking, this function should implement the logic of resetting of local variables in this node.

update(inp_x=None, inp_y=None)[source]#

The function to specify the updating rule.