This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F280049C: If I want to use "DCL_runDF22" function to implement the PI.

Part Number: TMS320F280049C


According to the following diagram, can I simplify 2P2Z as a PI operation by setting a1 in the DCL_DF22 structure of the function DCL_runDF22_C2 to -1 and a2 to 0?

typedef struct dcl_df22 {
    float32_t b0;   //!< b0
    float32_t b1;   //!< b1
    float32_t b2;   //!< b2
    float32_t a1;   //!< a1
    float32_t a2;   //!< a2
    float32_t x1;   //!< x1
    float32_t x2;   //!< x2
    DCL_DF22_SPS *sps;  //!< Pointer to the shadow parameter set
    DCL_CSS *css;   //!< Pointer to the common support structure
} DCL_DF22;

  • Hi Zhongsen,

    You can simplify DF22 into PID, just like what's been mentioned in the text, PID is a special scenario of 2P2Z structure. Has a matter of fact, DCL has provided both utility function (DCL_loadDF22asSeriesPID, DCL_loadDF22asParallelPID, which does the same calculation as the screenshot you've provided) and you can try to implement the function in reverse.

    As to PI, please do note that PI has a different system characteristic compared with DF22/PID. While both DF22 and PID maintains 2-poles and 2-zeros in its transfer function representation, PI does not (1-zero and a integrator). Therefore you would need a different set of parameters to better parameterize your control system. DCL has provided utility functions to convert Zero-Pole-Gain (zpk3) into the respective controller types, it might be worthwhile to redesign your system response and convert it using zpk3 utility functions.

    Best,

    Sen Wang