liba 0.1.15
An algorithm library based on C/C++
|
Data Structures | |
struct | a_pid_fuzzy |
instance structure for fuzzy PID controller More... | |
Macros | |
#define | a_pid_fuzzy_init(ctx) |
initialize for fuzzy PID controller | |
#define | A_PID_FUZZY_BFUZZ(n) |
compute size of memory block for fuzzy PID controller | |
Typedefs | |
typedef struct a_pid_fuzzy | a_pid_fuzzy |
Enumerations | |
enum | { A_PID_FUZZY_EQU , A_PID_FUZZY_CAP , A_PID_FUZZY_CAP_ALGEBRA , A_PID_FUZZY_CAP_BOUNDED , A_PID_FUZZY_CUP , A_PID_FUZZY_CUP_ALGEBRA , A_PID_FUZZY_CUP_BOUNDED } |
enumeration for fuzzy PID controller operator More... | |
Functions | |
void | a_pid_fuzzy_set_opr (a_pid_fuzzy *ctx, unsigned int opr) |
set fuzzy relational operator for fuzzy PID controller | |
void * | a_pid_fuzzy_bfuzz (a_pid_fuzzy const *ctx) |
get memory block for fuzzy PID controller | |
void | a_pid_fuzzy_set_bfuzz (a_pid_fuzzy *ctx, void *ptr, size_t num) |
set memory block for fuzzy PID controller | |
void | a_pid_fuzzy_set_rule (a_pid_fuzzy *ctx, unsigned int nrule, double const *me, double const *mec, double const *mkp, double const *mki, double const *mkd) |
set rule base for fuzzy PID controller | |
void | a_pid_fuzzy_set_kpid (a_pid_fuzzy *ctx, double kp, double ki, double kd) |
set proportional integral derivative constant for fuzzy PID controller | |
double | a_pid_fuzzy_run (a_pid_fuzzy *ctx, double set, double fdb) |
calculate for fuzzy PID controller | |
double | a_pid_fuzzy_pos (a_pid_fuzzy *ctx, double set, double fdb) |
calculate for positional fuzzy PID controller | |
double | a_pid_fuzzy_inc (a_pid_fuzzy *ctx, double set, double fdb) |
calculate for incremental fuzzy PID controller | |
void | a_pid_fuzzy_zero (a_pid_fuzzy *ctx) |
zeroing for fuzzy PID controller | |
Variables | |
double(*)(double, double) | a_pid_fuzzy_opr (unsigned int opr) |
get fuzzy relational operator for fuzzy PID controller | |
#define A_PID_FUZZY_BFUZZ | ( | n | ) |
#define a_pid_fuzzy_init | ( | ctx | ) |
initialize for fuzzy PID controller
[in,out] | ctx | points to an instance of fuzzy PID controller |
anonymous enum |
void * a_pid_fuzzy_bfuzz | ( | a_pid_fuzzy const * | ctx | ) |
get memory block for fuzzy PID controller
[in,out] | ctx | points to an instance of fuzzy PID controller |
double a_pid_fuzzy_inc | ( | a_pid_fuzzy * | ctx, |
double | set, | ||
double | fdb ) |
calculate for incremental fuzzy PID controller
[in,out] | ctx | points to an instance of fuzzy PID controller |
[in] | set | setpoint value |
[in] | fdb | feedback value |
double a_pid_fuzzy_pos | ( | a_pid_fuzzy * | ctx, |
double | set, | ||
double | fdb ) |
calculate for positional fuzzy PID controller
[in,out] | ctx | points to an instance of fuzzy PID controller |
[in] | set | setpoint value |
[in] | fdb | feedback value |
double a_pid_fuzzy_run | ( | a_pid_fuzzy * | ctx, |
double | set, | ||
double | fdb ) |
calculate for fuzzy PID controller
[in,out] | ctx | points to an instance of fuzzy PID controller |
[in] | set | setpoint value |
[in] | fdb | feedback value |
void a_pid_fuzzy_set_bfuzz | ( | a_pid_fuzzy * | ctx, |
void * | ptr, | ||
size_t | num ) |
set memory block for fuzzy PID controller
[in,out] | ctx | points to an instance of fuzzy PID controller |
[in] | ptr | points to a buffer at least A_PID_FUZZY_BFUZZ(num) |
[in] | num | the maximum number triggered by the rule |
void a_pid_fuzzy_set_kpid | ( | a_pid_fuzzy * | ctx, |
double | kp, | ||
double | ki, | ||
double | kd ) |
set proportional integral derivative constant for fuzzy PID controller
[in,out] | ctx | points to an instance of fuzzy PID controller |
[in] | kp | proportional constant |
[in] | ki | integral constant |
[in] | kd | derivative constant |
void a_pid_fuzzy_set_opr | ( | a_pid_fuzzy * | ctx, |
unsigned int | opr ) |
set fuzzy relational operator for fuzzy PID controller
[in,out] | ctx | points to an instance of fuzzy PID controller |
[in] | opr | enumeration for fuzzy PID controller operator |
void a_pid_fuzzy_set_rule | ( | a_pid_fuzzy * | ctx, |
unsigned int | nrule, | ||
double const * | me, | ||
double const * | mec, | ||
double const * | mkp, | ||
double const * | mki, | ||
double const * | mkd ) |
set rule base for fuzzy PID controller
[in,out] | ctx | points to an instance of fuzzy PID controller |
[in] | nrule | number of order in the square matrix |
[in] | me | points to e's membership function parameter table |
[in] | mec | points to ec's membership function parameter table |
[in] | mkp | points to Kp's rule base table which must be a square matrix |
[in] | mki | points to Ki's rule base table which must be a square matrix |
[in] | mkd | points to Kd's rule base table which must be a square matrix |
void a_pid_fuzzy_zero | ( | a_pid_fuzzy * | ctx | ) |
zeroing for fuzzy PID controller
[in,out] | ctx | points to an instance of fuzzy PID controller |
double(*)(double, double) a_pid_fuzzy_opr(unsigned int opr) | ( | unsigned int | opr | ) |
get fuzzy relational operator for fuzzy PID controller
[in] | opr | enumeration for fuzzy PID controller operator |