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:如果我要使用"DCL_runDF22"函数来实现 PI。

Guru**** 2378650 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1276263/tms320f280049c-if-i-want-to-use-dcl_rundf22-function-to-implement-the-pi

器件型号:TMS320F280049C

根据下图、我可以通过将函数 DCL_runDF22_C2的 DCL_DF22结构中的 A1设置为-1并将 A2设置为0来将2P2Z 简化为 PI 操作吗?

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;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Zhongsen:

    您可以将 DF22简化为 PID、就像文中提到的那样、PID 是2P2Z 结构的一种特殊情况。 事实上、DCL 提供了两个实用程序函数(DCL_loadDF22asSeriesPID、DCL_loadDF22asParallelPID 、其计算方法与您提供的屏幕截图相同)、您可以尝试 反向实施该函数。

    至于 PI、请注意、与 DF22/PID 相比、PI 具有不同的系统特性。 虽然 DF22和 PID 在其传递函数表示中均保持2个极点和2个零、但 PI 不会(1个零和一个积分器)。 因此、您需要一组不同的参数来更好地对控制系统进行参数化。 DCL 提供了实用程序函数来将零极点增益(zpk3)转换为相应的控制器类型、可能有必要重新设计您的系统响应并使用 zpk3实用程序函数对其进行转换。

    此致!

    王森