这个例子展示了如何将实时电机控制应用划分到多个处理器上,以实现设计模块化和提高控制性能。
许多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之间的数据传输由进程间数据通道块处理。有关更多信息,请参见通过专用硬件外设进行进程间数据通信.
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仿真。
集成单片机调度和外围设备在电机控制中的应用(电机控制Blockset)
版权所有The MathWorks, Inc.