4 sys
.path
.insert(0, os
.getcwd())
6 sys
.stdout
= open(sys
.argv
[1], "w")
8 import liba
# type: ignore
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
],
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
],
52 [NL
, NL
, NM
, NM
, NS
, ZO
, ZO
],
53 [NL
, NL
, NM
, NS
, NS
, ZO
, PS
],
54 [NM
, NM
, NM
, NS
, ZO
, PS
, PS
],
55 [NM
, NM
, NS
, ZO
, PS
, PM
, PM
],
56 [NS
, NS
, ZO
, PS
, PS
, PM
, PM
],
57 [NS
, ZO
, PS
, PM
, PM
, PM
, PL
],
58 [ZO
, ZO
, PM
, PM
, PM
, PL
, PL
],
69 [PL
, PL
, PM
, PM
, PS
, ZO
, ZO
],
70 [PL
, PL
, PM
, PS
, PS
, ZO
, ZO
],
71 [PL
, PM
, PS
, PS
, ZO
, NS
, NS
],
72 [PM
, PM
, PS
, ZO
, NS
, NM
, NM
],
73 [PM
, PS
, ZO
, NS
, NS
, NM
, NL
],
74 [ZO
, ZO
, NS
, NS
, NM
, NL
, NL
],
75 [ZO
, ZO
, NS
, NM
, NM
, NL
, NL
],
86 [NS
, PS
, PL
, PL
, PL
, PM
, NS
],
87 [NS
, PS
, PL
, PM
, PM
, PS
, ZO
],
88 [ZO
, PS
, PM
, PM
, PS
, PS
, ZO
],
89 [ZO
, PS
, PS
, PS
, PS
, PS
, ZO
],
90 [ZO
, ZO
, ZO
, ZO
, ZO
, ZO
, ZO
],
91 [NL
, NS
, NS
, NS
, NS
, NS
, NL
],
92 [NL
, NM
, NM
, NM
, NS
, NS
, NL
],
103 num
= [6.59492796e-05, 6.54019884e-05]
104 den
= [1.0, -1.97530991, 0.97530991]
106 tf
= liba
.tf(num
, den
[1:])
108 liba
.pid_fuzzy().rule(me
, mec
, mkp
, mki
, mkd
).set_block(2).op(liba
.pid_fuzzy
.CAP_ALGEBRA
)
110 pid_fuzzy
.outmax
= MAX
111 pid_fuzzy
.outmin
= MIN
122 for i
in range(len(x
)):
123 y1
[i
] = tf(pid_fuzzy
.pos(r
, tf
.output
[0]))
129 for i
in range(len(x
)):
130 y2
[i
] = tf(pid_fuzzy
.inc(r
, tf
.output
[0]))
132 for i
in range(len(x
)):
133 print("%g,%g,%g,%g" % (x
[i
], r
, y1
[i
], y2
[i
]))
140 pid_fuzzy
.kp
= pid_fuzzy
.kp
141 pid_fuzzy
.ki
= pid_fuzzy
.ki
142 pid_fuzzy
.kd
= pid_fuzzy
.kd
143 pid_fuzzy
.summax
= pid_fuzzy
.summax
144 pid_fuzzy
.summin
= pid_fuzzy
.summin
146 pid_fuzzy
.outmax
= pid_fuzzy
.outmax
147 pid_fuzzy
.outmin
= pid_fuzzy
.outmin
157 pid_fuzzy
.block
= pid_fuzzy
.block
+ 1