Main Content

使用传感器反馈对 BLDC 电机进行六步换相

此示例使用 120 度导通模式来实现六步换相法,以控制三相无刷直流 (BLDC) 电机的转速和方向。该示例使用由 Six Step Commutation 模块生成的开关序列来控制三相定子电压,从而控制转子转速和方向。有关此模块的更多详细信息,请参阅Six Step Commutation

六步换相算法需要霍尔序列或转子位置反馈值(从正交编码器或霍尔传感器获得)。

正交编码器由一个具有两个轨道或通道的圆盘组成,这两个轨道或通道的编码电相位差为 90 度。这就会产生两个相位差为 90 度的脉冲(A 和 B)和一个索引脉冲 (I)。控制器使用 A 和 B 通道之间的相位关系以及通道状态的转换来确定电机的转速、位置和旋转方向。

霍尔效应传感器根据施加磁场的强度更改其输出电压。根据标准配置,一个 BLDC 电机由三个霍尔传感器组成,这些传感器彼此间隔 120 度。一个具有标准霍尔位置(其中传感器在电气上彼此间隔 120 度)的 BLDC 电机,可以提供六种有效的二进制状态组合:例如 001、010、011、100、101 和 110。传感器以 60 度的倍数提供转子的角位置(以度为单位),供控制器用来确定转子所在的 60 度扇区。

控制器通过使用霍尔序列或转子位置来控制电机。它对定子绕组的下两个相通电,使得转子始终保持 90 度的转矩角(转子 d 轴和定子磁场之间的夹角),偏差为 30 度。

注意:霍尔序列可能并不固定。请使用示例 BLDC 电机的霍尔传感器序列校准来确定霍尔序列。

该示例支持仿真。您可以使用 Simscape™ Electrical™ 仿真一个被控对象模型,其中包含三相开关逆变器和星型绕组 BLDC。

模型

该示例包括以下模型:

您可以将这些模型用于仿真和代码生成。

有关支持的硬件配置的详细信息,请参阅“生成代码并将模型部署到目标硬件”一节中的“必需的硬件”主题。

必需的 MathWorks 产品

要仿真模型,您需要:

1.对于模型 mcb_bldc_sixstep_f28069mLaunchPad

  • Motor Control Blockset™

  • Fixed-Point Designer™

  • Simscape™ Electrical™

2.对于模型 mcb_bldc_sixstep_f28379d

  • Motor Control Blockset

  • Simscape Electrical

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

1.对于模型 mcb_bldc_sixstep_f28069mLaunchPad

  • Motor Control Blockset

  • Embedded Coder®

  • C2000™ Microcontroller Blockset

  • Fixed-Point Designer

2.对于模型 mcb_bldc_sixstep_f28379d

  • Motor Control Blockset

  • Embedded Coder

  • C2000 Microcontroller Blockset

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

前提条件

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

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

参数估计工具使用估计的电机参数更新 motorParam 变量(在 MATLAB® 工作区中)。

2.如果您从电机数据表或其他来源获得电机参数,请在与 Simulink 模型相关联的模型初始化脚本中更新电机参数和逆变器参数。有关说明,请参阅估计控制增益和使用工具函数

如果您使用参数估计工具,则可以在模型初始化脚本中更新逆变器参数,但不能更新电机参数。该脚本会自动从更新后的 motorParam 工作区变量中提取电机参数。

仿真模型

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

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

2.选择模型中的 QEP 或 Hall Speed_Feedback 单选按钮。

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

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

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

本部分将介绍如何生成代码以及在目标硬件上运行六步换相算法。

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

必需的硬件

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

有关与这些硬件配置相关的连接,请参阅 LAUNCHXL-F28069M 和 LAUNCHXL-F28379D 配置

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

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

2.完成硬件连接。

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

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

4.如果使用的是正交编码器,请计算正交编码器索引偏移值,并在与目标模型相关联的模型初始化脚本中将可用的 bldc.PositionOffset 变量的值更新为该值。有关说明,请参阅 PMSM 的正交编码器偏移量校准

5.如果使用的是霍尔传感器,请计算霍尔序列值,并在与目标模型相关联的模型初始化脚本中将可用的 bldc.hallsequence 变量的值更新为该值。有关说明,请参阅 BLDC 电机的霍尔传感器序列校准

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

7.在目标模型中选择 Quadrature EncoderHall Speed_Feedback 单选按钮。

8.将一个示例程序加载到 LAUNCHXL-F28379D 的 CPU2。例如,您可以使用通过 GPIO31 (c28379D_cpu2_blink.slx) 操作 CPU2 蓝色 LED 的程序,以确保不会将 CPU2 错误地配置为使用用于 CPU1 的板外设。有关示例程序或模型的详细信息,请参阅 Getting Started with Texas Instruments C2000 Microcontroller Blockset (C2000 Microcontroller Blockset) 中的“任务 2 - 为 TI Delfino F28379D LaunchPad(双核)创建、配置和运行模型”部分。

9.点击硬件选项卡上的编译、部署和启动,将目标模型部署到硬件,并将变量从目标模型加载到基础工作区。

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

有关主机模型和目标模型之间串行通信的详细信息,请参阅Host-Target Communication

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

12.在主机模型的参考转速 (RPM) 字段中更新参考转速值。

13.在主机模型中,选择要监控的调试信号。

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

15.Motor 开关的位置切换到 Start 以开始运行电机。

16.在主机模型的 Scope 和 Display 模块中观测来自 RX 子系统的调试信号。