4 sys
.path
.insert(0, os
.getcwd())
5 prefix
= os
.path
.join(sys
.path
[0], "build")
6 if not os
.path
.exists(prefix
):
11 import matplotlib
.pyplot
as plt
12 except Exception as e
:
24 data
= np
.arange(0, 0.1, Ts
)
27 import control
.matlab
as ct
29 sysc
= ct
.tf(133, [1, 25, 0])
30 sysd
= ct
.c2d(sysc
, Ts
)
33 [[num
]], [[den
]] = ct
.tfdata(sysd
)
34 except ModuleNotFoundError
:
35 num
= [6.59492796e-05, 6.54019884e-05]
36 den
= [1.0, -1.97530991, 0.97530991]
37 except Exception as e
:
41 tf
= a
.tf(num
, den
[1:])
42 pid_neuro
= a
.pid_neuro()
45 setpoint
= [r
] * len(data
)
47 title
= "Single Neuron Proportional Integral Derivative"
53 pid_neuro
.kpid(k
, kp
, ki
, kd
).wpid(wp
, wi
, wd
)
55 y
= pid_neuro
.inc(r
, y
)
63 plt
.plot(data
, setpoint
, "r-", data
, feedback1
, "b-")
67 plt
.plot(data
, error1
, "b-")
71 plt
.savefig(os
.path
.join(prefix
, "pid_neuro.png"))