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.

[参考译文] TMDSCNCD28P65X:DCL_runPI_L1 参数

Guru**** 2422790 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1538122/tmdscncd28p65x-dcl_runpi_l1-parameters

器件型号:TMDSCNCD28P65X

工具/软件:

您好、

我在 DCL_runPI_L1 中无法确定限值参数。 它是否在.asm 中具有积分器限制 (Imax、Imin) 和控制限制 (Umax、Umin)? 我不能明确地说。

最重要的是、我的应用需要积分器标志;TI PID 示例代码中对应的 lk 标志等效。

提前感谢您。

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

    您好:

    DCL_runPI_L1 是 DCL_runPI_C1/C2(串行 PI)的 CLA 版本、它没有积分器限制、只有饱和钳位。

    唯一使用积分器限制的 PI 控制器是 DCL_runPI_C5。 即具有增强型抗饱和功能的并行 PI 的 C 源极。 不幸的是、我们没有 C28 会员 或 CLA 版本的代码。

    但是、由于 CLA 采用 C 语法代码。 我们可以轻松将 C5 改编为 CLA。 唯一的区别是需要删除有关 CSS 和 SPS 结构的任何内容。 I.E:

    // CLA source code of DCL_runPI_C5 -> parallel pi with enhanced anti-windup
    static inline float32_t DCL_runPI_L6(DCL_PI_CLA *p, float32_t rk, float32_t yk)
    {
        float32_t v1, v5, v7, v8;
        uint16_t l11, l12, l14, l17, l18, l19;
        
        asm(" MSETFLG   RNDF32=1");
        v1 = rk - yk;
        v5 = (v1 * p->Ki * p->i6) + p->i10;
        p->i10 = v5;
        v7 = (v1 * p->Kp) + v5;
        v8 = (v7 > p->Umax) ? p->Umax : v7;
        v8 = (v8 < p->Umin) ? p->Umin : v8;
        l17 = ((v7 - v8) == 0) ? 1U : 0U;
        l11 = (v5 >= p->Imax) ? 1U : 0U;
        l12 = (v5 <= p->Imin) ? 1U : 0U;
        l19 = (v5 > 0) ? 1U : 0U;
        l14 = (v1 > 0) ? 1U : 0U;
        l18 = l17 & (!(l11 | l12) | (l19 ^ l14));
        p->i6 = (l18 == 0U) ? 0.0f : 1.0f;
    
    
        return(v8);
    }

    或者、您也可以直接使用已经为 CLA (DCL_runPID_L1 和 L2) 以汇编语言编写的串行/并行 PID 控制器。

    如果您有任何其他问题、请告诉我。

    此致、

    Sen Wang

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

    我懂了。  DCL_runPI_L6 需要多少个周期? 在这种情况下、估算也是可以的。

    Andrew。

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

    您好、Andrew、

    我可以根据 DCL 用户指南中的现有基准提供粗略估算:

    根据 DCL_runPI_C6 和 DCL_runPI_L5 的大致相似情况判断 (C28 C 源代码中具有 Tustin 积分器的 PI 与 CLA C 源代码中具有 tustin 积分器的 PI)。 C5 基准测试的 CLA C 源代码变体与 DCL_runPI_C5 类似(~190 个周期)。  

    相比之下、CLA 实现的汇编变体更快、DCL_runPID_L1/L2 有 53 和 45 个周期。 常规 L1/L2 PIS 为 34 和 33 个周期。

    因此、如果性能是一个问题、我建议在 CLA 中直接使用 PID 控制器。 (串行/并行:DCL_runPID_L1/L2)

    此致、

    Sen Wang