Contains direct form 2 3rd order DF23 compensator with its related structures and functions.
Go to the source code of this file.
Data Structures | |
struct | DCL_DF23_SPS |
Defines DCL_DF23 shadow parameter set used for updating compensator parameter. More... | |
struct | dcl_df23 |
DCL_DF23 object for storing df23 specific parameters. More... | |
Macros | |
#define | DF23_SPS_DEFAULTS { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f } |
#define | DF23_DEFAULTS |
Defines default values to initialize DCL_DF23. More... | |
#define | DF23_INT_DEFAULTS |
Macro for internal default values to initialize DCL_DF23 Example: DCL_DF23 df23_ctrl = { .b0 = 1.0f, .b1 = 0.0f, ... .a3 = 0.0f, DF23_INT_DEFAULTS };. More... | |
#define | DCL_initDF23() &(DCL_DF23)DF23_DEFAULTS |
Initialize DCL_DF23 struct with default parameters Example: DCL_DF23* df23_ctrl = DCL_initDF23();. More... | |
#define | DCL_initDF23asParam(_b0, _b1, _b2, _b3, _a1, _a2, _a3) |
Initialize DCL_DF23 struct with input compensator parameters Example: DCL_DF23* DF23_ctrl = DCL_initDF23asParam(1.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f); Note: input parameter needs to be in the same order as listed in DF23_SPS struct. More... | |
#define | DCL_initDF23asSPS(df_ptr, sps_ptr) |
Initialize DCL_DF23 struct with sps parameters Example: DCL_DF23_SPS df_sps = { .b0 = , .b1 = , ...}; //initial parameter DCL_DF23 df_ctrl; DCL_initDF23asSPS(&df_ctrl,&df_sps);. More... | |
Typedefs | |
typedef _DCL_VOLATILE struct dcl_df23 | DCL_DF23 |
typedef _DCL_VOLATILE struct dcl_df23 * | DF23_Handle |
Functions | |
_DCL_CODE_ACCESS void | DCL_resetDF23 (DCL_DF23 *df) |
Resets DF23 internal storage data with interrupt protection. More... | |
_DCL_CODE_ACCESS void | DCL_forceUpdateDF23 (DCL_DF23 *df) |
Loads DF23 tuning parameter from its SPS parameter without interrupt protection. More... | |
_DCL_CODE_ACCESS _DCL_CODE_SECTION void | DCL_updateDF23NoCheck (DCL_DF23 *df) |
Updates DF23 parameter from its SPS parameter with interrupt protection. More... | |
_DCL_CODE_ACCESS _DCL_CODE_SECTION bool | DCL_updateDF23 (DCL_DF23 *df) |
A conditional update based on the update flag. If the update status is set, the function will update DF23 parameter from its SPS parameter and clear the status flag on completion. Note: Use DCL_setUpdateStatus(df) to set the update status. More... | |
_DCL_CODE_ACCESS bool | DCL_isStableDF23 (DCL_DF23 *df) |
Determines stability of the shadow compensator. More... | |
_DCL_CODE_ACCESS void | DCL_loadDF23asZPK (DCL_DF23 *df, DCL_ZPK3 *zpk) |
Loads the DF23 shadow coefficients from a ZPK3 description Note: Sampling period df->css->T are used in the calculation. New settings take effect after DCL_updateDF23(). More... | |
_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t | DCL_runDF23 (DCL_DF23 *df, float32_t ek) |
Executes a 3rd order Direct Form 2 controller. More... | |
_DCL_CODE_ACCESS float32_t | DCL_runDF23PartialCompute (DCL_DF23 *df, float32_t ek) |
Immediate computation to obtain DF23 servo error without updating the controller. More... | |
_DCL_CODE_ACCESS void | DCL_runDF23PartialUpdate (DCL_DF23 *df, float32_t ek, float32_t uk) |
Update DF22 controller based on pre-computed control effort. More... | |
_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t | DCL_runDF23Clamp (DCL_DF23 *df, float32_t ek, float32_t Umax, float32_t Umin) |
Executes a 3rd order Direct Form 2 controller with clamp. More... | |