主要内容

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

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

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

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

  • 将控制算法划分到多个cpu上运行,以实现更高的循环率

  • 对于安全关键应用程序,在多个cpu中运行相同的应用程序

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

硬件要求:

  • TI Delfino F28379D LaunchPad或TI Delfino F2837xD基于板

  • BOOSTXL-DRV8305EVM电机驱动板

  • Teknic M-2310P-LN-04K PMSM电机

分区电机控制算法

打开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。在mcb_pmsm_foc_sensorless_f28379d_data.m脚本,将PWM_frequency设置为40e3,运行脚本将型号配置为新的PWM频率。通过更快的电流采样,控制器增益可以被调整以实现更快的响应时间。

将模型部署到TI Delfino F28379D LaunchPad使用SoC建设者工具。要打开工具,就上系统芯片选项卡上,单击配置、构建和部署,并遵循指导步骤。

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

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

为了获得更高的仿真粒度,将PWM接口块输出设置为切换模式,并更改工厂模型变量以使用MOSFET仿真。

另请参阅

版权所有The MathWorks, Inc.