Copy import matplotlib
font = {'family' : 'normal',
'weight' : 'bold',
'size' : 12}
matplotlib.rc('font', **font)
tau = 0.001
tau2 = 0.01
tau3 = 1
model = nengo.Network('Eye control', seed=8)
with model:
stim = nengo.Node(Piecewise({.3:1, .6:0 }))
velocity = nengo.Ensemble(100, dimensions=1)
position = nengo.Ensemble(200, dimensions=1)
position2 = nengo.Ensemble(200, dimensions=1)
position3 = nengo.Ensemble(200, dimensions=1)
def feedback(x):
return 1*x
conn = nengo.Connection(stim, velocity)
conn = nengo.Connection(velocity, position, transform=tau, synapse=tau)
conn = nengo.Connection(position, position, function=feedback, synapse=tau)
spikes_p = nengo.Probe(velocity.neurons, 'spikes')
conn2 = nengo.Connection(velocity, position2, transform=tau2, synapse=tau2)
conn2 = nengo.Connection(position2, position2, function=feedback, synapse=tau2)
conn3 = nengo.Connection(velocity, position3, transform=tau3, synapse=tau3)
conn3 = nengo.Connection(position2, position3, function=feedback, synapse=tau3)
stim_p = nengo.Probe(stim)
velocity_p = nengo.Probe(velocity, synapse=.01)
position_p = nengo.Probe(position, synapse=.01)
position_p2 = nengo.Probe(position2, synapse=.01)
position_p3 = nengo.Probe(position3, synapse=.01)
sim = nengo.Simulator(model)
sim.run(1)
plt.figure()
plt.plot(sim.trange(), sim.data[stim_p], label = "Input", linewidth=4, color='black')
plt.plot(sim.trange(), sim.data[velocity_p], label = "velocity", linewidth=2)
plt.plot(sim.trange(), sim.data[position_p], label = "Position (tau=0.001)", linewidth=2)
plt.plot(sim.trange(), sim.data[position_p2], label = "position (tau=0.1)", linewidth=2)
plt.plot(sim.trange(), sim.data[position_p3], label = "position (tau=1)", linewidth=2)
plt.ylabel("Output")
plt.xlabel("Time")