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.

[参考译文] TMS320F280049:DCL_DF22_C1 (DCL 库) VS CNTL_2P2Z (DP 库)

Guru**** 2538950 points
Other Parts Discussed in Thread: SFRA, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/868754/tms320f280049-dcl_df22_c1-dcl-lib-vs-cntl_2p2z-dp-lib

器件型号:TMS320F280049
主题中讨论的其他器件:SFRAC2000WARE

尊敬的 C2000专家:

目前、我将使用 DCL_DF22_C1滤波器作为环路补偿、并且发现与 CNTL_2P2Z 相比没有钳位模块、您能不能告诉我原因?

对于 CNTL_2P2Z、可以确保 u (k-1)和 u (k-2)在最大和 I_min 范围内、但 DCL_DF22_C1滤波器没有限制、原因是什么?

在 CNTL_2P2Z 中、有3个限制阈值、最大值、I_min 和最小值、您能不能帮助我知道使用 I_min 的目的是什么?

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

    插孔、

    CNTL_2P2Z 补偿器是所谓"直接形式1"结构的定点实现。 该设计在环路内整合了最大/最小钳位、以防止饱和。 我们有时希望将补偿器输出钳位到最小值零、例如、如果输出表示 PWM 占空比、 但是、如果我们在定点执行此操作、补偿器无法从正饱和状态快速恢复、因为通过 A1和 A2的返回路径需要看到负值。 因此、我们将双面钳位的下限设置为轻微负值(这是 I_min)、并在补偿器之后将所需的下限重新钳位到零。 这就是您在图中看到两个钳位的原因。 DPlib 用户指南中图表之后的文本中也对此进行了说明。

    DCL_DF22_C1是一种"直接形式2转置"结构、与直接形式1相比具有更好的数字稳健性、并且由于只有一条延迟线、因此很容易运行。 C1是一种不带钳位的完整实现方式。 如果要实现钳位、需要将 C2和 C3函数与它们之间的钳位一起使用。 DCL (F28069_DF22)中有一个示例、用于演示如何完成此操作。 代码为:

    //运行预计算的控制器
    u2k = DCL_runDF22_C2 (&controller2、EK);
    V = DCL_runClamp_C1 (&u2k、upperLim、lowerLim);
    如果(0 == v)

    DCL_runDF22_C3 (&controller2、EK、u2k);

    希望这对您有所帮助。

    此致、

    Richard

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

    您好 Richard、

    感谢您对它的详细介绍。

    有关代码的另一个问题是、如果 u2k 大于 uperLim 或小于 lowerLim、 则不会调用 DCL_runDF22_C3、您能帮助我了解原因吗?

    //运行预计算的控制器
    u2k = DCL_runDF22_C2 (&controller2、EK);
    V = DCL_runClamp_C1 (&u2k、upperLim、lowerLim);
    如果(0 == v)

      DCL_runDF22_C3 (&controller2、EK、u2k);

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

    尊敬的 Jack:

    目的是防止补偿器状态在环路饱和时"上升"或增长过大。  在饱和状态下、环路失控、因此控制器不会改变输出端的任何东西。  但是、环路误差将不为零、因此补偿器仍会尝试对其进行校正。

    通过以这种方式拆分 DF22、我们得到了没有状态的"立即"器件;以及具有两种状态的"预计算"器件。  这些分别是控制器的 C2和 C3部件。  DF22图中的状态标记为 x1和 x2。

    如果控制已饱和、我们首先测试由立即器件执行的操作是否使其返回到范围内。  如果是这样、我们会预先计算 C3以供下次使用。  如果不是、我们不会预计算 C3、因此状态保持在其当前值。  它类似于 PI (D)控制器中的积分器抗饱和、不同之处在于我们在这里没有明显的积分器。

    希望这能让它更清晰。  请告诉我是否可以提供进一步的帮助。

    此致、

    Richard

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

    您好 Richard、

    谢谢。 非常清楚。  

    还有一个问题、DF22_C1和 DF22_C2&C3之间的参数值(b0、b1、b2、a1、a2)应该相同、不是吗?  

    如果我想调整环路参数、是否仍可以使用 SFRA 中的工具? 环路类型选择(2P2Z)

    C:\ti\c2000\C2000Ware_DigitalPower_SDK_2_00_01_00\libraries\sfra\GUI

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

    尊敬的 Jack:

    是的、C1和 C2/C3之间的系数相同。

    您可以使用 SFRA 来确定这些系数、但请注意、DF22的系数与 DPlib 中较旧的2P2Z 的系数之间存在符号差异。  在最新的 SFRA 文档中、您可以将补偿器类型设置为 DF22、因此不会出现问题。

    此致、

    Richard

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

    Richard、谢谢。 新年快乐!