2 fuzzy proportional integral derivative controller
6 #ifndef LUA_LIBA_PID_FUZZY_H
7 #define LUA_LIBA_PID_FUZZY_H
12 fuzzy proportional integral derivative controller
13 @field kp proportional constant
14 @field ki integral constant
15 @field kd derivative constant
16 @field summax maximum integral output
17 @field summin minimum integral output
18 @field sum controller integral output
19 @field outmax maximum final output
20 @field outmin minimum final output
21 @field out controller final output
22 @field fdb cache feedback
23 @field err cache error
24 @field order number of order in the square matrix
25 @field block maximum number triggered by the rule
28 #if defined(__cplusplus)
30 #endif /* __cplusplus */
33 destructor for fuzzy PID controller
36 int liba_pid_fuzzy_die(lua_State
*L
);
39 constructor for fuzzy PID controller
40 @treturn a.pid_fuzzy fuzzy PID controller userdata
43 int liba_pid_fuzzy_new(lua_State
*L
);
46 initialize for fuzzy PID controller
47 @treturn a.pid_fuzzy fuzzy PID controller userdata
50 int liba_pid_fuzzy_init(lua_State
*L
);
53 set fuzzy relational operator for fuzzy PID controller
54 @tparam int op enumeration for fuzzy PID controller operator
55 @treturn a.pid_fuzzy fuzzy PID controller userdata
58 int liba_pid_fuzzy_op(lua_State
*L
);
61 set rule base for fuzzy PID controller
62 @tparam table me points to membership function parameter table, terminated by 0
63 @tparam table mec points to membership function parameter table, terminated by 0
64 @tparam table mkp points to Kp's rule base table which must be a square matrix
65 @tparam table mki points to Ki's rule base table which must be a square matrix
66 @tparam table mkd points to Kd's rule base table which must be a square matrix
67 @treturn a.pid_fuzzy fuzzy PID controller userdata
70 int liba_pid_fuzzy_rule(lua_State
*L
);
73 set memory block for fuzzy PID controller
74 @tparam int num maximum number triggered by the rule
75 @treturn a.pid_fuzzy fuzzy PID controller userdata
78 int liba_pid_fuzzy_block(lua_State
*L
);
81 set proportional integral derivative constant for fuzzy PID controller
82 @tparam number kp proportional constant
83 @tparam number ki integral constant
84 @tparam number kd derivative constant
85 @treturn a.pid_fuzzy fuzzy PID controller userdata
88 int liba_pid_fuzzy_kpid(lua_State
*L
);
91 calculate for fuzzy PID controller
92 @tparam number set setpoint value
93 @tparam number fdb feedback value
94 @treturn number setpoint value
97 int liba_pid_fuzzy_run(lua_State
*L
);
100 calculate for positional fuzzy PID controller
101 @tparam number set setpoint value
102 @tparam number fdb feedback value
103 @treturn number output value
106 int liba_pid_fuzzy_pos(lua_State
*L
);
109 calculate for incremental fuzzy PID controller
110 @tparam number set setpoint value
111 @tparam number fdb feedback value
112 @treturn number output value
115 int liba_pid_fuzzy_inc(lua_State
*L
);
118 zeroing for fuzzy PID controller
119 @treturn a.pid_fuzzy fuzzy PID controller userdata
122 int liba_pid_fuzzy_zero(lua_State
*L
);
124 #if defined(__cplusplus)
126 #endif /* __cplusplus */
128 #endif /* pid/fuzzy.h */