用于多处理器 MCU 的分区电机控制
该示例展示了如何将实时电机控制应用程序划分到多个处理器上,以实现设计模块化和提高控制性能。
许多微控制器提供多个处理器核心。这些额外的核心可用于实现各种设计目标:
将应用程序分为实时任务(例如控制律)和非实时任务(例如外部通信、诊断或机器学习)。
将控制算法分区运行在多个 CPU 上,以实现更高的循环速率
对于安全关键型应用程序,请在多个 CPU 上运行同一应用程序。
本示例展示了如何将电机控制应用程序分配到 TI Delfino F28379D 的两个 CPU 上,以实现更高的采样时间/PWM 频率。
所需硬件:
基于 TI Delfino F28379D LaunchPad 或 TI Delfino F2837xD 的板
BOOSTXL-DRV8305EVM 电机驱动板
Teknic M-2310P-LN-04K 永磁同步电机
分区电机控制算法
打开 soc_pmsm_singlecpu_foc 模型。该模型仿真了永磁同步电机 (PMSM) 的 soc_pmsm_singlecpu_ref 模型中包含的单个 CPU 电机控制器。

我们将控制算法划分为两个部分:电流控制在 CPU2 上执行,速度控制和位置估计分别在 CPU1 上执行。CPU 之间的数据传输由 Interprocess Data Channel 模块处理。有关更多信息,请参阅Interprocess Data Communication via Dedicated Hardware Peripheral。

在 System on Chip 选项卡上,点击硬件设置以打开配置参数窗口。在硬件实现选项卡中,Processing Unit 参数配置为"无",表明其为顶级系统模型。
打开 soc_pmsm_cpu1_ref 模型和 soc_pmsm_cpu2_ref 模型,查看为每个 CPU 配置的算法。系统模型中包含的模型引用配置为在 c28xCPU1 (CPU1) 和 c28xCPU2 (CPU2) 上运行。
在“仿真选项卡上,点击运行来仿真模型。打开仿真数据检查器并查看信号。该图显示了单 CPU 和双 CPU 模型在仿真和部署中的结果。

利用并发执行提升性能
同时使用两个 CPU 来执行控制算法,可以实现更高的控制器带宽。在最初的单 CPU 模型中,控制算法的执行时间仅需 25 微秒多一点。为了提供安全裕度,单 CPU 模型采用 20kHz 的 PWM 频率,相当于 50us 周期。
分区后,CPU1 和 CPU2 的执行时间减少到 20 微秒以下。允许将 PWM 频率提高到 40kHz。在 soc_mcb_pmsm_foc_sensorless_f28379d_data.m 脚本中,将 PWM_frequency 设置为 40e3,然后运行该脚本,将模型配置为新的 PWM 频率。通过加快电流采样速度,可以调节控制器增益,从而实现更快的响应时间。
使用 SoC 构建器工具将模型部署到 TI Delfino F28379D LaunchPad。要打开该工具,请在 System on Chip 选项卡上点击 Configure, Build, & Deploy,并按照引导步骤操作。
该图显示了在 40kHz PWM 频率下,25us 电流环的仿真和部署控制器响应与在 20kHz 频率下,50us 电流环的仿真和部署控制器响应的比较。正如预期的那样,随着电流环路速度的加快,速度上升时间提高了约 50%。

由于采用了无传感器算法,速度响应会出现振荡,有关更多信息,请参阅PMSM 的无传感器磁场定向控制 (Motor Control Blockset)
为了获得更高的仿真粒度,将 PWM Interface 模块的输出设置为开关模式,并将被控对象模型变体更改为使用 MOSFET 仿真。
Copyright 2020-2023 The MathWorks, Inc.