liba
0.1.15
An algorithm library based on C/C++
Toggle main menu visibility
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
32
typedef
struct
a_pid_neuro
a_pid_neuro
;
33
34
#if defined(__cplusplus)
35
extern
"C"
{
36
#endif
/* __cplusplus */
37
42
#define a_pid_neuro_init(ctx) a_pid_neuro_zero(ctx)
43
52
A_EXTERN
void
a_pid_neuro_set_kpid
(
a_pid_neuro
*ctx,
a_real
k
,
a_real
kp,
a_real
ki,
a_real
kd);
53
61
A_EXTERN
void
a_pid_neuro_set_wpid
(
a_pid_neuro
*ctx,
a_real
wp
,
a_real
wi
,
a_real
wd
);
62
70
A_EXTERN
a_real
a_pid_neuro_run
(
a_pid_neuro
*ctx,
a_real
set,
a_real
fdb);
71
79
A_EXTERN
a_real
a_pid_neuro_inc
(
a_pid_neuro
*ctx,
a_real
set,
a_real
fdb);
80
85
A_EXTERN
void
a_pid_neuro_zero
(
a_pid_neuro
*ctx);
86
87
#if defined(__cplusplus)
88
}
/* extern "C" */
89
namespace
a
90
{
91
typedef
struct
a_pid_neuro pid_neuro;
92
}
/* namespace a */
93
#endif
/* __cplusplus */
94
98
struct
a_pid_neuro
99
{
100
a_pid
pid
;
101
a_real
k
;
102
a_real
wp
;
103
a_real
wi
;
104
a_real
wd
;
105
a_real
ec
;
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 */
a_pid_neuro_set_wpid
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
a_pid_neuro_init
#define a_pid_neuro_init(ctx)
initialize for single neuron PID controller
Definition
pid_neuro.h:42
a_pid_neuro_run
a_real a_pid_neuro_run(a_pid_neuro *ctx, a_real set, a_real fdb)
compute for single neuron PID controller
a_pid_neuro_set_kpid
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
a_pid_neuro_zero
void a_pid_neuro_zero(a_pid_neuro *ctx)
zeroing for single neuron PID controller
a_pid_neuro_inc
a_real a_pid_neuro_inc(a_pid_neuro *ctx, a_real set, a_real fdb)
compute for incremental single neuron PID controller
a_real
double a_real
compiler built-in floating-point number type
Definition
a.h:1012
pid.h
proportional integral derivative controller
a_pid_neuro
instance structure for single neuron PID controller
Definition
pid_neuro.h:99
a_pid_neuro::pid
a_pid pid
Definition
pid_neuro.h:100
a_pid_neuro::wd
a_real wd
Definition
pid_neuro.h:104
a_pid_neuro::wp
a_real wp
Definition
pid_neuro.h:102
a_pid_neuro::k
a_real k
Definition
pid_neuro.h:101
a_pid_neuro::ec
a_real ec
Definition
pid_neuro.h:105
a_pid_neuro::wi
a_real wi
Definition
pid_neuro.h:103
a_pid
instance structure for PID controller
Definition
pid.h:106
pid_neuro.h
Generated by
1.17.0