Contains 32-bit PID controller with its related structures and functions.
|
#define | PID_SPS_DEFAULTS { 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, -1.0f } |
| Defines default values to initialize DCL_PID_SPS. More...
|
|
#define | PID_DEFAULTS |
| Defines default values to initialize the DCL_PID structure. More...
|
|
#define | PID_INT_DEFAULTS |
| Macro for internal default values to initialize DCL_PID Example: DCL_PID pid_ctrl = { .Kp = 1.0f, .Ki = 0.0f, ... .Umin = -1.0f, PID_INT_DEFAULTS };. More...
|
|
#define | DCL_initPID() &(DCL_PID)PID_DEFAULTS |
| Initialize DCL_PID struct with default parameters Example: DCL_PID* pid_ctrl = DCL_initPID();. More...
|
|
#define | DCL_initPIDasParam(kp, ki, kd, kr, _c1, _c2, umax, umin) |
| Initialize DCL_PID struct with input controller parameters Example: DCL_PID* pid_ctrl = DCL_initPIDasParam(1.0f,0.0f,0.0f,1.0f,1.0f,0.0f,1.0f,-1.0f); Note: input parameter needs to be in the same order as listed in PID_SPS struct. More...
|
|
#define | DCL_initPIDasSPS(pid_ptr, sps_ptr) |
| Initialize DCL_PID struct with SPS parameters Example: DCL_PID_SPS pid_sps = { .Kp = , .Ki = , ...}; //initial parameter DCL_PID pid_ctrl; DCL_initPIasSPS(&pid_ctrl,&pid_sps); Note: The newly declared DCL_PID structure will use the SPS input parameter as its attribute for sps. More...
|
|
|
_DCL_CODE_ACCESS void | DCL_resetPID (DCL_PID *pid) |
| Resets PID internal storage data with interrupt protection. More...
|
|
_DCL_CODE_ACCESS void | DCL_forceUpdatePID (DCL_PID *pid) |
| Loads PID tuning parameter from its SPS parameter without interrupt protection. More...
|
|
_DCL_CODE_ACCESS _DCL_CODE_SECTION void | DCL_updatePIDNoCheck (DCL_PID *pid) |
| Loads PID tuning parameter from its SPS parameter with interrupt protection. More...
|
|
_DCL_CODE_ACCESS _DCL_CODE_SECTION bool | DCL_updatePID (DCL_PID *pid) |
| A conditional update based on the update flag. If the update status is set, the function will update PID parameter from its SPS parameter and clear the status flag on completion. Note: Use DCL_getUpdateStatus(pid) to set the update status. More...
|
|
_DCL_CODE_ACCESS void | DCL_setPIDfilterBW (DCL_PID *pid, float32_t fc) |
| Loads the derivative path filter shadow coefficients. Note: Sampling period pid->css->T are used in the calculation. New coefficients take effect when DCL_updatePID() is called. More...
|
|
_DCL_CODE_ACCESS void | DCL_setActivePIDfilterBW (DCL_PID *pid, float32_t fc, float32_t T) |
| Loads the PID derivative path filter active coefficients Note: Sampling period pid->css->T are used in the calculation. New coefficients take effect immediately. SPS & CSS contents are unaffected.
More...
|
|
_DCL_CODE_ACCESS float32_t | DCL_getPIDfilterBW (DCL_PID *pid) |
| Calculates the active derivative path filter bandwidth in Hz. Note: Sampling period pid->css->T are used in the calculation. More...
|
|
_DCL_CODE_ACCESS void | DCL_loadSeriesPIDasZPK (DCL_PID *pid, DCL_ZPK3 *zpk) |
| Configures a series PID controller parameter in ZPK form. Note: Sampling period pid->css->T are used in the calculation. Parameters take effect after call to DCL_updatePID(). Only z1, z2 & p2 considered, p1 = 0 assumed. More...
|
|
_DCL_CODE_ACCESS void | DCL_loadParallelPIDasZPK (DCL_PID *pid, DCL_ZPK3 *zpk) |
| Configures a parallel PID controller in ZPK form. Note: Sampling period pid->css->T are used in the calculation. Parameters take effect after call to DCL_updatePID(). Only z1, z2 & p2 considered, p1 = 0 assumed. More...
|
|
_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t | DCL_runPIDSeries (DCL_PID *pid, float32_t rk, float32_t yk, float32_t lk) |
| Executes an ideal form PID controller. More...
|
|
_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t | DCL_runPIDParallel (DCL_PID *pid, float32_t rk, float32_t yk, float32_t lk) |
| Executes a parallel form PID controller. More...
|
|