rearrange fields and export the read-only variable `sum`
[liba.git] / python / test / pid_neuro.py
blob4e600d38e447375b29641623069a5968afe3bf9b
1 #!/usr/bin/env python
2 import os, sys
4 sys.path.insert(0, os.getcwd())
5 if len(sys.argv) > 1:
6 sys.stdout = open(sys.argv[1], "w")
8 import liba # type: ignore
10 Ts = 0.001
12 k = 4000
13 kp = 4
14 ki = 0.04
15 kd = 1.0
16 wp = 1
17 wi = 0
18 wd = 0
20 num = [6.59492796e-05, 6.54019884e-05]
21 den = [1.0, -1.97530991, 0.97530991]
23 tf = liba.tf(num, den[1:])
24 pid_neuro = liba.pid_neuro().kpid(k, kp, ki, kd).wpid(wp, wi, wd)
26 t = 0
27 x = []
28 while t <= 0.2:
29 x.append(t)
30 t += Ts
32 r = 1
33 y = 0
34 for i in range(len(x)):
35 y = tf(pid_neuro.inc(r, y))
36 print("%g,%g" % (x[i], y))
38 pid_neuro.k = pid_neuro.k
39 pid_neuro.kp = pid_neuro.kp
40 pid_neuro.ki = pid_neuro.ki
41 pid_neuro.kd = pid_neuro.kd
42 pid_neuro.wp = pid_neuro.wp
43 pid_neuro.wi = pid_neuro.wi
44 pid_neuro.wd = pid_neuro.wd
45 pid_neuro.outmax = pid_neuro.outmax
46 pid_neuro.outmin = pid_neuro.outmin
47 pid_neuro.out
48 pid_neuro.fdb
49 pid_neuro.err
50 pid_neuro.ec