ZHCAEQ3 November   2024 F29H850TU , F29H859TU-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1实时控制简介
  5. 2C29 CPU 及其主要特性
    1. 2.1 并行架构和编译器优化
  6. 3C29 性能基准测试
    1. 3.1 使用 ACI 电机控制的信号链基准测试
    2. 3.2 实时控制和 DSP 性能
      1. 3.2.1 影响结果的示例和因素
        1. 3.2.1.1 饱和(或限制)示例
        2. 3.2.1.2 死区示例
        3. 3.2.1.3 空间矢量生成 (SVGEN) 示例
        4. 3.2.1.4 软件流水线
      2. 3.2.2 客户控制和数学运算基准测试
    3. 3.3 通用处理 (GPP) 性能
      1. 3.3.1 影响结果的示例和因素
        1. 3.3.1.1 不连续性管理
        2. 3.3.1.2 Switch() 示例
    4. 3.4 基于模型的设计基准测试
    5. 3.5 应用基准测试
      1. 3.5.1 单相 7kW OBC 说明
      2. 3.5.2 基于 Vienna 整流器的三相功率因数校正
      3. 3.5.3 单相位逆变器
      4. 3.5.4 机器学习
    6. 3.6 闪存存储器效率
    7. 3.7 代码尺寸效率
  7. 4总结
  8. 5参考资料

空间矢量生成 (SVGEN) 示例

空间矢量生成 (SVGEN) 是电机控制系统中的常用功能,主要将矢量 (α, β) 映射到 6 段空间矢量,从而生成 3 个 PWM 信号。在普通实现中(如 图 3-5 中所示),使用了 if..else 语句(左侧),编译器生成包含分支的代码(右侧)。

 普通实现图 3-5 普通实现.

在 SVGEN 的优化实现中(如图 3-6 所示),利用了 C29 的 QUADF 指令(通过内嵌函数 __builtin_c29_quadf32 实现)。该指令将二维空间分成 16 个段。通过 switch() 语句将 16 段空间映射到 6 段空间。C 语言代码如图左侧所示,编译器生成的汇编语言如图右侧所示。生成的汇编代码为直线代码,不含分支,并实现了并行化(每个周期并行执行四条指令)。

无论输入如何,在 C29 上,优化实现均需要 24 个周期,而普通实现需要 26-43 个周期,具体取决于输入。在 C28 上,普通实现需要 70-100 个周期。在 Cortex-M7 上,普通实现需要 58-73 个周期,具体取决于输入。

 在 C29 上的 SVGEN 优化实现图 3-6 在 C29 上的 SVGEN 优化实现.
注意:

TI 提供涵盖实时控制和 DSP 的库。在某些情况下,库的优化实现可提升性能,相较于普通实现效果更佳。