主要内容

控制载有双电机(测功机)的 PMSM

此示例使用磁场定向控制 (FOC) 来控制测功机设置中耦合的两个三相永磁同步电机 (PMSM)。电机 1 在闭环转速控制模式下运行。电机 2 在转矩控制模式下运行,并且由于它们机械耦合,因此为电机 1 施加负载。您可以使用此示例在不同负载工况下测试电机。

此示例对两个背靠背连接的电机进行仿真。您可以对电机 1 使用不同转速参考值,对电机 2 使用不同转矩参考值(派生自电机 2 参考定子电流的幅值和电气位置)。电机 1 在电机 2(具有不同转矩参考值)提供的负载工况下以参考转速运行。

以下方程描述电机 2 参考定子电流的 d 轴和 q 轴分量的计算。

$$I{d^{ref}} = Ima{g^{ref}} \times {\rm{cos}}{\theta _e}$$

$$I{q^{ref}} = Ima{g^{ref}} \times {\rm{sin}}{\theta _e}$$

其中:

  • $I{d^{ref}}$ 是电机 2 参考定子电流的 d 轴分量。

  • $I{q^{ref}}$ 是电机 2 参考定子电流的 q 轴分量。

  • $Ima{g^{ref}}$ 是电机 2 参考定子电流的幅值。

  • ${\theta _e}$ 是电机 2 参考定子电流的电气位置。

该示例在控制器硬件板上运行。您可以使用主机模型输入电机 1 的转速参考值和电机 2 的电流参考值。主机模型使用串行通信与控制器硬件板进行通信。

电机 1 和电机 2 控制算法中的电流控制环偏移 Ts/2,其中 Ts 是控制环执行速率。

模型

该示例包含模型 mcb_pmsm_foc_f28379d_dyno

此模型既可用于仿真,也可用于代码生成。

必需的 MathWorks 产品

要对模型进行仿真,您需要:

  • Motor Control Blockset™

要生成代码并部署模型,您需要:

  • Motor Control Blockset™

  • Embedded Coder®

  • C2000™ Microcontroller Blockset

  • Fixed-Point Designer™(仅在优化代码生成时需要)

前提条件

1.获取电机 1 和电机 2 的电机参数。我们对 Simulink® 模型提供了默认电机参数,您可以用电机数据表或其他来源的值替换这些默认值。

不过,如果您有电机控制硬件,则可以通过使用 Motor Control Blockset™ 参数估计工具来估计要使用的电机的参数。有关说明,请参阅使用 Motor Control Blockset 参数估计工具估计电机参数

2.在与 Simulink® 模型关联的模型初始化脚本中,更新电机参数(您从数据手册及其他来源或参数估计工具获得的)和逆变器参数。有关说明,请参阅估计控制增益并调节控制参数

对于此示例,在模型初始化脚本中更新两个电机的电机参数。

仿真模型

此示例支持仿真。请按照以下步骤仿真模型。

1.打开此示例附带的一个模型。

2.点击仿真选项卡上的运行来仿真该模型。

3.点击仿真选项卡上的数据检查器来查看和分析仿真结果。

4.为电机 1 输入不同转速参考值,为电机 2 输入不同电流参考值(负载)。在数据检查器中观察测得的转速和其他记录的信号。

生成代码并将模型部署到目标硬件

本节将指导您生成代码并在目标硬件上运行 FOC 算法。

该示例使用一个主机模型和一个目标模型。主机模型是控制器硬件板的一个用户界面。您可以在主机上运行主机模型。使用主机模型的前提条件是将目标模型部署到控制器硬件板上。主机模型使用串行通信对目标 Simulink® 模型发出指令,并以闭环控制方式运行电机。

必需的硬件

该示例支持以下硬件配置。您还可以在 MATLAB® 命令提示符下使用目标模型名称打开对应硬件配置的模型。

  • LAUNCHXL-F28379D 控制器 + 2 BOOSTXL-DRV8305 逆变器:mcb_pmsm_foc_f28379d_dyno

  • LAUNCHXL-F28379D 控制器 + 2 BOOSTXL-3PHGANINV 逆变器:mcb_pmsm_foc_f28379d_dyno

有关与前述硬件配置相关的连接,请参阅 Dyno(双电机)设置说明

生成代码并在目标硬件上运行模型

1.仿真目标模型并观测仿真结果。

2.完成硬件连接。

3.该模型自动计算 ADC(或电流)偏移值。要禁用此功能(默认启用),请在模型初始化脚本中将变量 inverter.ADCOffsetCalibEnable 的值更新为 0。

您也可以计算 ADC 偏移值,并在模型初始化脚本中手动更新它。有关说明,请参阅以开环控制方式运行三相 AC 电机并校准 ADC 偏移量

4.计算正交编码器索引偏移值,并在与目标模型相关联的模型初始化脚本中更新它。有关说明,请参阅 PMSM 的正交编码器偏移量校准

对于此示例,在初始化脚本中更新 pmsm_motor1.PositionOffset 和 pmsm_motor2.PositionOffset 变量中的 QEP 偏移值。

5.打开目标模型。如果您要更改该模型的默认硬件配置设置,请参阅模型配置参数

6.例如,为了确保 CPU2 没有错误地配置为使用预留给 CPU1 的板载外设,将一个示例程序加载到 LAUNCHXL-F28379D 的 CPU2(LAUNCHXL-F28379D 是使用 GPIO31 (c28379D_cpu2_blink.slx) 操作 CPU2 蓝色 LED 的程序)。有关示例程序或模型的详细信息,请参阅 Texas Instruments入门指南 C2000 Microcontroller Blockset (C2000 Microcontroller Blockset) 中的“任务 2 - 为 TI Delfino F28379D LaunchPad(双核)创建、配置和运行模型”部分。

7.点击硬件选项卡上的编译、部署和启动以将模型部署到硬件上。

8.点击目标模型中的 mcb_pmsm_foc_host_model_dyno.slx 主机模型超链接以打开关联的主机模型。

9.在与目标模型关联的模型初始化脚本中,使用变量 target.comport 指定通信端口。该示例使用此变量来更新主机模型中可用的 Host Serial Setup、Host Serial Receive 和 Host Serial Transmit 模块的端口参数。

10.点击仿真选项卡上的运行以运行主机模型。

11.Start / Stop Motor 1 开关的位置切换到 On 以开始运行电机。

12.在主机模型中更新 Motor 1 - Reference Speed (RPM)Motor 2 - Imag Ref (A)Motor 2 - Imag Pos (deg)

注意:Motor 2 - Imag Pos (deg) 字段中使用 90 或 270 度以外的值时务必小心。这些值会生成沿 d 轴的电流,从而生成磁化效应。d 轴上的过大电流会导致饱和并可能损坏电机磁体。

13.选择您要监控的调试信号,以便在主机模型的 Time Scope 模块中观察它们。

其他可尝试的操作

您还可以使用 SoC Blockset™ 开发双电机设置的实时电机控制应用,以利用多个处理器核实现设计模块化、更高的控制器性能和其他设计目标。有关详细信息,请参阅Partition Motor Control for Multiprocessor MCUs