instance structure for fuzzy PID controller More...
#include <pid_fuzzy.h>
Public Member Functions | |
void | init () |
void | set_opr (unsigned int opr_) |
void * | bfuzz () const |
void | set_bfuzz (void *ptr, a_size num) |
void | set_rule (unsigned int nrule_, a_float const *me_, a_float const *mec_, a_float const *mkp_, a_float const *mki_, a_float const *mkd_) |
void | set_kpid (a_float kp_, a_float ki_, a_float kd_) |
a_float | run (a_float set, a_float fdb) |
a_float | pos (a_float set, a_float fdb) |
a_float | inc (a_float set, a_float fdb) |
void | zero () |
Data Fields | |
a_pid | pid |
a_float const * | me |
a_float const * | mec |
a_float const * | mkp |
a_float const * | mki |
a_float const * | mkd |
unsigned int * | idx |
a_float * | val |
a_float(* | opr )(a_float, a_float) |
a_float | kp |
a_float | ki |
a_float | kd |
unsigned int | nrule |
unsigned int | nfuzz |
instance structure for fuzzy PID controller
unsigned int* a_pid_fuzzy::idx |
the memory block for membership index, >= 2N
a_float a_pid_fuzzy::kd |
base derivative constant
a_float a_pid_fuzzy::ki |
base integral constant
a_float a_pid_fuzzy::kp |
base proportional constant
a_float const* a_pid_fuzzy::me |
points to e's membership function parameter table
a_float const* a_pid_fuzzy::mec |
points to ec's membership function parameter table
a_float const* a_pid_fuzzy::mkd |
points to Kd's rule base, which must be a square matrix
a_float const* a_pid_fuzzy::mki |
points to Ki's rule base, which must be a square matrix
a_float const* a_pid_fuzzy::mkp |
points to Kp's rule base, which must be a square matrix
unsigned int a_pid_fuzzy::nfuzz |
maximum number triggered by the rule
unsigned int a_pid_fuzzy::nrule |
number of order in the square matrix
a_pid a_pid_fuzzy::pid |
instance structure for PID controller
a_float* a_pid_fuzzy::val |
the memory block for membership value and membership outer product of e and ec, >= (2+N)N