主要内容

多处理器微控制器的分区电机控制

该示例展示了如何将实时电机控制应用程序划分到多个处理器上,以实现设计模块化和提高控制性能。

许多mcu提供多个处理器核心。这些额外的核心可以用来实现各种设计目标:

  • 将应用程序划分为实时任务(如控制规律)和非实时任务(如外部通信、诊断或机器学习)

  • 将控制算法划分为在多个cpu上运行,以获得更高的循环速率

  • 在多个CPU上运行相同的应用程序,以实现安全关键应用程序

这个例子展示了如何在TI Delfino F28379D的两个cpu之间划分电机控制应用程序,以实现更高的采样时间/PWM频率。

硬件要求:

  • TI Delfino F28379D发射台或TI Delfino F2837xD基于板

  • BOOSTXL-DRV8305EVM电机驱动板

  • Teknic M-2310P-LN-04K永磁同步电动机

分区电机控制算法

打开soc_pmsm_singlecpu_foc模型.本模型模拟一个单CPU电机控制器,包含在soc_pmsm_singlecpu_ref模型,为永磁同步电机(PMSM)。

对控制算法进行划分,分别在CPU2上进行电流控制,在CPU1上进行速度控制和位置估计。CPU之间的数据传输由进程间数据通道块处理。有关更多信息,请参阅通过专用硬件外设进行进程间数据通信

打开soc_pmsm_dualcpu_foc模型

open_system (“soc_pmsm_dualcpu_foc”);

片上系统选项卡上,单击硬件设置打开配置参数窗口。在硬件实现选项卡,处理单元参数被配置为“None”,表示它是顶级系统模型。

打开soc_pmsm_cpu1_ref模型打开soc_pmsm_cpu2_ref模型查看每个CPU配置的算法。系统模型中包含的模型引用被配置为在c28xCPU1 (CPU1)和c28xCPU2 (CPU2)上运行。

在Simulation选项卡上,单击“Run”来模拟模型。打开模拟数据检查器还有查看信号。该图显示了模拟和部署中单CPU和双CPU模型的结果。

通过并发执行提高性能

使用这两个cpu来执行控制算法可以实现更高的控制器带宽。在最初的单CPU模型中,控制算法只需要超过25us的时间来执行。为了提供安全裕度,单CPU模型使用20kHz的PWM频率,相当于50us周期。

分区之后,CPU1和CPU2的执行时间减少到小于20us。允许PWM频率增加到40kHz。在soc_mcb_pmsm_foc_sensorless_f28379d_data.m脚本,设置PWM_frequency为40e3,并运行脚本将模型配置为新的PWM频率。有了更快的电流采样,控制器增益可以调整,以实现更快的响应时间。

将模型部署到TI Delfino F28379D发射台使用SoC建设者工具。打开工具,上片上系统选项卡上,单击配置、构建和部署,按照指导的步骤进行。

该图显示了在25us电流环(40kHz PWM频率)和50us电流环(20kHz频率)下仿真和部署的控制器响应。正如预期的那样,速度的上升时间随着更快的电流环路提高了大约50%。

由于无传感器算法,速度响应是振荡的,更多信息见永磁同步电机无传感器磁场定向控制(电机控制模块)

为了获得更高的模拟粒度,将PWM接口块输出设置为开关模式,并更改工厂模型变体以使用MOSFET模拟。

另请参阅

版权所有The MathWorks, Inc.