rearrange fields and export the read-only variable `sum`
[liba.git] / javascript / test / pid_fuzzy.js
blob9aec97ef3320f848a51b85ac29897268e5f9dd4d
1 #!/usr/bin/env node
2 var liba = require("../liba")
3 function do_leak_check() {
4 for (const arg of arguments) {
5 arg.delete()
7 if (liba.do_leak_check) {
8 liba.do_leak_check()
11 var NL = -3
12 var NM = -2
13 var NS = -1
14 var ZO = 0
15 var PS = +1
16 var PM = +2
17 var PL = +3
18 var me = [
19 [liba.mf.TRI, NL, NL, NM],
20 [liba.mf.TRI, NL, NM, NS],
21 [liba.mf.TRI, NM, NS, ZO],
22 [liba.mf.TRI, NS, ZO, PS],
23 [liba.mf.TRI, ZO, PS, PM],
24 [liba.mf.TRI, PS, PM, PL],
25 [liba.mf.TRI, PM, PL, PL],
27 var NL = -6
28 var NM = -4
29 var NS = -2
30 var ZO = 0
31 var PS = +2
32 var PM = +4
33 var PL = +6
34 var mec = [
35 [liba.mf.TRI, NL, NL, NM],
36 [liba.mf.TRI, NL, NM, NS],
37 [liba.mf.TRI, NM, NS, ZO],
38 [liba.mf.TRI, NS, ZO, PS],
39 [liba.mf.TRI, ZO, PS, PM],
40 [liba.mf.TRI, PS, PM, PL],
41 [liba.mf.TRI, PM, PL, PL],
43 var NL = -15
44 var NM = -10
45 var NS = -5
46 var ZO = 0
47 var PS = +5
48 var PM = +10
49 var PL = +15
50 var mkp = [
51 [NL, NL, NM, NM, NS, ZO, ZO],
52 [NL, NL, NM, NS, NS, ZO, PS],
53 [NM, NM, NM, NS, ZO, PS, PS],
54 [NM, NM, NS, ZO, PS, PM, PM],
55 [NS, NS, ZO, PS, PS, PM, PM],
56 [NS, ZO, PS, PM, PM, PM, PL],
57 [ZO, ZO, PM, PM, PM, PL, PL],
59 var NL = -3
60 var NM = -2
61 var NS = -1
62 var ZO = 0
63 var PS = +1
64 var PM = +2
65 var PL = +3
66 var mki = [
67 [PL, PL, PM, PM, PS, ZO, ZO],
68 [PL, PL, PM, PS, PS, ZO, ZO],
69 [PL, PM, PS, PS, ZO, NS, NS],
70 [PM, PM, PS, ZO, NS, NM, NM],
71 [PM, PS, ZO, NS, NS, NM, NL],
72 [ZO, ZO, NS, NS, NM, NL, NL],
73 [ZO, ZO, NS, NM, NM, NL, NL],
75 var mkd = [
76 [NS, PS, PL, PL, PL, PM, NS],
77 [NS, PS, PL, PM, PM, PS, ZO],
78 [ZO, PS, PM, PM, PS, PS, ZO],
79 [ZO, PS, PS, PS, PS, PS, ZO],
80 [ZO, ZO, ZO, ZO, ZO, ZO, ZO],
81 [NL, NS, NS, NS, NS, NS, NL],
82 [NL, NM, NM, NM, NS, NS, NL],
84 var ctx = new liba.pid_fuzzy()
85 ctx.rule(me, mec, mkp, mki, mkd).set_block(2)
86 ctx.kpid(10, 0.1, 1).op(liba.pid_fuzzy.EQU)
87 console.log(ctx.zero().run(10, 0))
88 console.log(ctx.zero().pos(10, 0))
89 console.log(ctx.zero().inc(10, 0))
90 ctx.kp = ctx.kp
91 ctx.ki = ctx.ki
92 ctx.kd = ctx.kd
93 ctx.summax = ctx.summax
94 ctx.summin = ctx.summin
95 ctx.outmax = ctx.outmax
96 ctx.outmin = ctx.outmin
97 ctx.sum
98 ctx.out
99 ctx.fdb
100 ctx.err
101 ctx.order
102 ctx.block = ctx.block
103 do_leak_check(ctx)