release 0.1.13
[liba.git] / lua / src / pid.h
blobf9d20138dff2090df7405e3add3c130167633325
1 /***
2 proportional integral derivative controller
3 @classmod a.pid
4 */
6 #ifndef LUA_LIBA_PID_H
7 #define LUA_LIBA_PID_H
9 #include "a.h"
11 /***
12 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 @table a.pid
26 #if defined(__cplusplus)
27 extern "C" {
28 #endif /* __cplusplus */
30 /***
31 constructor for PID controller
32 @treturn a.pid PID controller userdata
33 @function new
35 int liba_pid_new(lua_State *L);
37 /***
38 initialize for PID controller
39 @treturn a.pid PID controller userdata
40 @function init
42 int liba_pid_init(lua_State *L);
44 /***
45 set proportional integral derivative constant for PID controller
46 @tparam number kp proportional constant
47 @tparam number ki integral constant
48 @tparam number kd derivative constant
49 @treturn a.pid PID controller userdata
50 @function kpid
52 int liba_pid_kpid(lua_State *L);
54 /***
55 calculate for PID controller
56 @tparam number set setpoint value
57 @tparam number fdb feedback value
58 @treturn number setpoint value
59 @function run
61 int liba_pid_run(lua_State *L);
63 /***
64 calculate for positional PID controller
65 @tparam number set setpoint value
66 @tparam number fdb feedback value
67 @treturn number output value
68 @function pos
70 int liba_pid_pos(lua_State *L);
72 /***
73 calculate for incremental PID controller
74 @tparam number set setpoint value
75 @tparam number fdb feedback value
76 @treturn number output value
77 @function inc
79 int liba_pid_inc(lua_State *L);
81 /***
82 zeroing for PID controller
83 @treturn a.pid PID controller userdata
84 @function zero
86 int liba_pid_zero(lua_State *L);
88 #if defined(__cplusplus)
89 } /* extern "C" */
90 #endif /* __cplusplus */
92 #endif /* pid.h */