liba 0.1.15
An algorithm library based on C/C++
 
All Data Structures Files Functions Variables Typedefs Enumerator Modules Pages
Loading...
Searching...
No Matches
pid_neuro.h
Go to the documentation of this file.
1
20
21#ifndef LIBA_PID_NEURO_H
22#define LIBA_PID_NEURO_H
23
24#include "pid.h"
25
31
32typedef struct a_pid_neuro a_pid_neuro;
33
34#if defined(__cplusplus)
35extern "C" {
36#endif /* __cplusplus */
37
42#define a_pid_neuro_init(ctx) a_pid_neuro_zero(ctx)
43
52A_EXTERN void a_pid_neuro_set_kpid(a_pid_neuro *ctx, a_real k, a_real kp, a_real ki, a_real kd);
53
62
71
80
85A_EXTERN void a_pid_neuro_zero(a_pid_neuro *ctx);
86
87#if defined(__cplusplus)
88} /* extern "C" */
89namespace a
90{
91typedef struct a_pid_neuro pid_neuro;
92} /* namespace a */
93#endif /* __cplusplus */
94
99{
106#if defined(__cplusplus)
107 A_INLINE void init() { a_pid_neuro_init(this); }
108 A_INLINE void set_kpid(a_real k_, a_real kp, a_real ki, a_real kd)
109 {
110 a_pid_neuro_set_kpid(this, k_, kp, ki, kd);
111 }
112 A_INLINE void set_wpid(a_real wp_, a_real wi_, a_real wd_)
113 {
114 a_pid_neuro_set_wpid(this, wp_, wi_, wd_);
115 }
116 A_INLINE a_real run(a_real set, a_real fdb)
117 {
118 return a_pid_neuro_run(this, set, fdb);
119 }
120 A_INLINE a_real inc(a_real set, a_real fdb)
121 {
122 return a_pid_neuro_inc(this, set, fdb);
123 }
124 A_INLINE void zero() { a_pid_neuro_zero(this); }
125#endif /* __cplusplus */
126};
127
129
130#endif /* a/pid_neuro.h */
void a_pid_neuro_set_wpid(a_pid_neuro *ctx, a_real wp, a_real wi, a_real wd)
set proportional integral derivative weight for single neuron PID controller
#define a_pid_neuro_init(ctx)
initialize for single neuron PID controller
Definition pid_neuro.h:42
a_real a_pid_neuro_run(a_pid_neuro *ctx, a_real set, a_real fdb)
calculate for single neuron PID controller
void a_pid_neuro_set_kpid(a_pid_neuro *ctx, a_real k, a_real kp, a_real ki, a_real kd)
set proportional integral derivative constant for single neuron PID controller
void a_pid_neuro_zero(a_pid_neuro *ctx)
zeroing for single neuron PID controller
a_real a_pid_neuro_inc(a_pid_neuro *ctx, a_real set, a_real fdb)
calculate for incremental single neuron PID controller
double a_real
compiler built-in floating-point number type
Definition a.h:1003
proportional integral derivative controller
instance structure for single neuron PID controller
Definition pid_neuro.h:99
a_pid pid
Definition pid_neuro.h:100
a_real wd
Definition pid_neuro.h:104
a_real wp
Definition pid_neuro.h:102
a_real k
Definition pid_neuro.h:101
a_real ec
Definition pid_neuro.h:105
a_real wi
Definition pid_neuro.h:103
instance structure for PID controller
Definition pid.h:106