BLDC 电机的霍尔传感器序列校准
此示例计算开环控制中相对于转子零位置的霍尔传感器序列。此工作流帮助您使用六步换相的方式旋转电机,而无需标记霍尔传感器或推断开关序列。运行此示例并获取霍尔序列,使用此霍尔序列和 Six Step Commutation 模块按照使用传感器反馈对 BLDC 电机进行六步换相示例中的说明以闭环形式运行电机。
霍尔效应传感器根据施加磁场的强度更改其输出电压。根据标准配置,一个无刷直流 (BLDC) 电机包含三个霍尔传感器,各传感器的电角度相隔 120 度。一个具有标准霍尔位置的 BLDC 电机(其中各传感器的电角度相隔 120 度)可以提供六种有效的二进制状态组合:例如,001、010、011、100、101 和 110。传感器以 60 度的倍数提供转子的角位置(以度为单位),供控制器用来确定转子所在的 60 度扇区。
目标模型以开环方式低速 (10 RPM) 运行电机,并对电机执行 V/f 控制。在此转速下,转子的 d
轴与定子的旋转磁场紧密对齐。一旦获得相对于转子零点的霍尔序列,即会将此霍尔序列用于 Six Step Commutation 模块。目标模型使用在使用传感器反馈对 BLDC 电机进行六步换相示例中获得的相同顺序的霍尔元素(推断霍尔序列)以闭环控制方式运行电机。
当转子到达开环位置零点时,它与定子的 a 相轴线对齐。在该位置(对于对应的霍尔状态),六步换相算法激励定子绕组的下两相,使得转子始终保持 90 度的转矩角(转子 d 轴和定子磁场之间的角度),偏差为 30 度。请参考 Six Step Commutation 模块并使用从此工作流中获得的霍尔序列。
霍尔序列校准算法驱动电机机械旋转一整圈,并根据开环控制中转子的零位置计算霍尔传感器序列。
注意:此示例适用于所有电机相位或霍尔传感器连接。
注意:对于使用霍尔传感器的六步换相示例,请在该示例所链接的模型初始化脚本中用计算出的霍尔序列值更新 bldc.hallsequence 变量。有关说明,请参阅估计控制增益和使用工具函数。
模型
该示例包括以下模型:
这些模型只能用于代码生成。要打开 Simulink® 模型,您还可以在 MATLAB® 命令提示符下使用 open_system 命令。例如,对基于 F28379D 的控制器使用以下命令:
open_system('mcb_hall_calibration_f28379d.slx');
有关支持的硬件配置的详细信息,请参阅“生成代码并将模型部署到目标硬件”一节中的“必需的硬件”主题。
必需的 MathWorks® 产品
Motor Control Blockset™
Embedded Coder®
C2000™ Microcontroller Blockset
Fixed-Point Designer™(仅在优化代码生成时需要)
生成代码并将模型部署到目标硬件
本节说明如何生成代码并使用开环控制运行电机。
此示例使用一个主机模型和一个目标模型。主机模型是控制器硬件板的一个用户界面。您可以在主机上运行主机模型。使用主机模型的前提条件是将目标模型部署到控制器硬件板上。
主机模型使用串行通信对目标模型发出指令,并通过使用 V/f 控制以开环配置运行电机。主机模型显示计算出的霍尔传感器序列。
必需的硬件
该示例支持以下硬件配置。您还可以在 MATLAB® 命令提示符下使用目标模型名称打开对应硬件配置的模型。
LAUNCHXL-F28069M 控制器 + BOOSTXL-DRV8305 逆变器:mcb_hall_calibration_f28069mLaunchPad
LAUNCHXL-F28379D 控制器 + BOOSTXL-DRV8305 逆变器:mcb_hall_calibration_f28379d
有关与这些硬件配置相关的连接,请参阅 LAUNCHXL-F28069M 和 LAUNCHXL-F28379D 配置。
生成代码并在目标硬件上运行模型
1.完成硬件连接。
2.按所需的硬件配置打开目标模型。如果您要更改目标模型的默认硬件配置设置,请参阅模型配置参数。
3.在目标模型的 Configuration 面板中更新以下电机参数。
Number of pole pairs
PWM frequency [Hz]
Data type for control algorithm
Motor base speed
Vd Ref in per-unit voltage
4.将一个示例程序加载到 LAUNCHXL-F28379D 的 CPU2。例如,您可以使用 GPIO31 (c28379D_cpu2_blink.slx) 通过该程序操作 CPU2 蓝色 LED,以确保 CPU2 不会错误地配置为使用用于 CPU1 的板外设。
5.点击硬件选项卡上的编译、部署和启动以将目标模型部署到硬件上。
6.点击目标模型中的主机模型超链接以打开关联的主机模型。您也可以使用 open_system 命令打开主机模型。对基于 F28379D 的控制器使用以下命令:
open_system('mcb_hall_calibration_host_f28379d.slx');
有关主机模型和目标模型之间串行通信的详细信息,请参阅Host-Target Communication。
您可以使用主机模型中的 Scope 来监控开环转子位置和霍尔序列值。
7.在主机模型中,打开 Host Serial Setup、Host Serial Receive 和 Host Serial Transmit 模块,并选择 Port。
8.点击仿真选项卡上的运行,运行主机模型并开始六步换相控制的霍尔序列校准。启动仿真时,电机运行,校准开始。校准过程完成后,仿真结束,电机自动停止。
注意:如果电机无法启动或平稳旋转,请增大 Configuration 面板中 Vd Ref in Per Unit voltage 字段的值(最大值为 1
)。但是,如果电机吸取的电流过大,则减小此值。
按照约定,六步换相控制使用与霍尔序列校准期间使用的旋转方向相同的正向旋转方向。要更改正向约定,请交换电机相线,再次执行霍尔序列校准,然后使用六步换相控制运行电机。
9.查看主机模型上的以下 LED,了解校准过程的状态:
当电机开始运行时,Calibration in progress LED 变为橙色。注意转子位置和示波器中霍尔序列值的变化(位置信号表示振幅在 0 和 1 之间的斜坡信号)。校准过程完成后,此 LED 变为灰色。
校准过程完成后,Calibration complete LED 变为绿色。然后,Calibration Output 字段显示计算出的霍尔序列值。
注意:此示例不支持仿真。
要在紧急情况下立即停止电机,请点击 Emergency Motor Stop 按钮。