借助软硬件组合,在一小时内启动并运行 BLDC 电机
投稿人:DigiKey 北美编辑
2019-07-31
在国防、工业和机器人行业中,许多应用都需要使用嵌入式系统来控制直流无刷 (BLDC) 电机。带动电机旋转看似微不足道,可是一旦涉及到电机转速、扭矩、电气特性和电磁特性以及电流反馈测量,这就成了相当复杂的问题,并且可能会拖慢项目进度。
这就要求开发人员选择适当的硬件来运行驱动电机的算法,从而以最少的元器件数量,在应用的整个运动范围内都可以平稳顺畅地控制电机。
我们需要的正是一条捷径,即某种一体化软硬件组合包,可以显著缩短开发时间,使开发人员专注于最终应用,而无需深入了解电机控制的精妙之处。
本文将介绍一个 Texas Instruments 推出的类似组合包,结合该公司的微控制器和开发套件硬件与 InstaSPIN™ 磁场定向电机控制软件和工具。此外,还将说明经验尚浅的开发人员如何使用该组合,在一小时内轻松确定电机参数并启动复杂的 BLDC 电机。
什么是 InstaSPIN-FOC,当真易于使用吗?
Texas Instruments 的 InstaSPIN 解决方案独特之处在于,即使开发人员对此毫无经验,也可以在一小时内启动电机。事实上,开发人员只要使用过该解决方案,那么下一次只需不到十分钟即可启动并运行电机。此外,该套件使用磁场定向控制 (FOC) 取代编码器,因此开发人员只需连接电机电源和接地以及电机的各相,那么便在电气上准备就绪,而无需编码器或其他复杂的电子设备。
当然,除 FOC 外,反电动势过零定时电路等其他控制机制也不使用传感器或编码器。不过,InstaSPIN 可以监控电机的磁通量,从而确定电机换向的时间。开发人员可以通过绘图窗口监控磁通信号,并设置“磁通阈值”滑块以指定电机换向发生的磁通水平。通过监控所显示的相电压和电流波形,可以验证最佳换向。
InstaSPIN-FOC 解决方案共包含四个主要部分:
- 微控制器板
- 电机驱动板
- InstaSPIN-FOC 图形用户界面 (GUI)
- BLDC 电机
智能微控制器板用于运行 FOC 算法,指定电机驱动器何时导通和断开不同的电机相位,并处理与 GUI 的通信。开发人员可以通过 GUI 查看磁通水平和其他参数。电机驱动器提供驱动实际电机的接口,所含的电路功能包括:保护微控制器免受高压冲击、测量以及检测电机故障。
InstaSPIN-FOC GUI 是通用 GUI,可在 Texas Instruments 的在线开发库中找到。开发人员可以直接通过 Web 浏览器运行 GUI,也可以将可执行版本下载至计算机本地。
最后一项则是三相永磁直流无刷电机。
我们将详细研究上述各个部分,并探讨一个启动和运行 BLDC 电机的可行硬件解决方案。
BLDC 电机驱动器和微控制器
开发人员可以选择几种不同的解决方案来驱动 BLDC 电机,因此无需费心四处查找:TI 的 InstaSPIN-FOC 和 MotorControl SDK 与该公司的 LAUNCHXL-F280049C TMS320F280049C LaunchPad(图 1)和 BOOSTXL-DRV8323RS LaunchPad 补充包配合使用。TMS320F28049C LaunchPad 是一款低成本开发板,包括板载 XDS110 调试器、扩展排针和 F280049CPMS TMS320F280049C Piccolo™ 微控制器。
图 1:TMS320F280049C LaunchPad 包括隔离式 USB XDS110 调试探头、F280049C Piccolo 微控制器,以及可为两个补充包供电的电子元件。补充包可用于特定应用的硬件。(图片来源:Texas Instruments)
TMS320F280049C 微控制器使用 C2000 微控制器内核,包括 256 KB 的闪存和 100 KB 的 RAM,工作频率为 100 MHz。TMS320F280049C 的 ROM 中内置了 TI 的 FOC 电机控制算法,因而开发人员无需浪费宝贵的代码空间。
TMS320F280049C LaunchPad 并非开发人员使用 TMS320F280049C 微控制器的唯一方式。此外,还可以使用 TMS320F280049C 微控制器的 TMDSCNCD280049C 控制卡(图 2)。该控制卡可用于原型开发阶段,也适用于开发人员希望灵活更换应用所使用的微控制器或增强可扩展性的情况。控制卡可插入坞站使用,使开发人员可以访问微控制器 I/O。
图 2:TMS320F280049C 控制卡采用小型模块封装,提供电机控制功能,可与坞站配合使用以访问微控制器的 I/O。(图片来源:Texas Instruments)
DRV8323RS LaunchPad 补充包是可安插在 TMS320F280049C LaunchPad 上方的扩展板,以添加驱动 BLDC 电机所需的其他硬件(图 3)。
图 3:DRV8323RS LaunchPad 补充包包括电机驱动控制器、FET 和用于驱动 BLDC 电机的其他电路。(图片来源:Texas Instruments)
DRV8232RS 扩展板可安插在扩展区域位置 1 或位置 2,不过位置 1 正是 MotorControl SDK 示例连接的位置。开发人员可以使用三端子连接器将 BLDC 电机接至电路板,并为电路板提供外部电源以驱动电机。DRV8232RS LaunchPad 补充包也可为 TMS320F280049C 开发板供电。该扩展板的 LED 可显示通电状态和故障检测。
DRV8232RS LaunchPad 补充包的核心是 DRV8230 三相智能栅极驱动器。该栅极驱动器可提供低端电流检测,并能直接驱动额定工作电压高达 60 V 的 MOSFET。
借助 TMS320F280049C LaunchPad 和 DRV8232RS LaunchPad 补充包,开发人员可以驱动各种 BLDC 电机。Trinamic 推出的 QBL4208-41-04-006 是一款相当合适的入门级电机(图 4)。
Trinamic 电机使用 24 V 电源供电,转速高达 4000 RPM,扭矩达 62.5 mNm。
图 4:Trinamic 的 QBL4208-41-04-006 4000 RPM BLDC 电机使用 24 V 电源供电,扭矩达 62.5 mNm。(图片来源:Trinamic Motion Control GmbH)
上文已经列出开发人员着手 BLDC 电机控制所需的最精简物料,下一步则要考虑如何使用 InstaSPIN-FOC GUI 识别电机参数。
识别 BLDC 电机参数并运行电机
使用 InstaSPIN-FOC GUI 驱动电机前,系统需要先了解电机特性,以便对速度或扭矩进行 FOC 控制。为此,算法需要收集以下特性信息:
- 电阻
- 电感
- 电机磁通
- 磁化电流
InstaSPIN-FOC GUI 只需数分钟就能自动识别这些特性。GUI 可以在浏览器中执行,并默认加载专门与 TMS320F280049C 和 DRV8232 扩展板配合使用的 MotorControl SDK 实验室 5。实验室 5 专用于向开发人员演示如何识别电机并获取其参数。欲了解详细信息,可查阅 GUI 快速入门指南和实验室手册。
首先,开发人员需要通过 TI 开发人员网站打开 InstaSPIN-FOC GUI。然后,在 GUI 环境下,可以找到一个与其他开发 IDE 类似的运行按钮。单击此按钮可将电机识别码下载至 LaunchPad 并尝试执行。
一开始可能毫无反应,因为开发人员必须启用该软件,即选中 GUI 中的 "Enable System"(启用系统)复选框。此时,电机识别码仍然无法运行,因为还需要选中 "Run"(运行)复选框。启用 "Run"(运行)后,代码就开始执行识别电机的序列,并且进行必要的测量以获得运行电机所需的参数。整个识别过程将持续数分钟,在此期间电机将加速旋转,然后减速旋转,并以慢速运行几分钟。
这一过程完成后,开发人员就可以在 GUI 上看到如图 5 所示的界面。
图 5:完成电机识别后的 InstaSPIN-FOC GUI 界面。(图片来源:Jacob Beningo)
请注意,在图 5 中,GUI 右上角的多个参数已填入数值。这些是须记录的电机参数,以便稍后在扭矩或速度模式下用于驱动电机。此外,您还可以注意到界面左侧的 "Motor Identified"(电机已识别)指示灯已由灰色变为绿色。此时,就可以直接通过 GUI 来控制电机转速。
只需更改 GUI 上 "speedRef(Hz)"(转速设定值)框中的数值即可控制电机转速。请注意,通过这一参考值来控制电机加速相当快捷。相比之下,减速则需要输入多个转速设定值才能实现,输入的转速需逐次递减。只需取消选中 "Run"(运行)复选框,即可完全停止电机。
使用 TI 的 InstaSPIN-FOC 控制 BLDC 电机的技巧与诀窍
开发人员使用 BLDC 电机和 TI 的 InstaSPIN-FOC 解决方案时,可以考虑以下几个最佳实践:
- 选择内部闪存内置了电机算法的微控制器,以此可节省用于电机算法的代码空间,并且可以在执行时进行性能提升。
- 使用 F280049C LaunchPad 的位置 1 作为 DRV8323RS LaunchPad 补充包的默认位,若使用位置 2 将需要对软件进行更新。
- 花时间浏览 TI MotorControl SDK 中提供的所有 13 个样例实验室。这些实验室涵盖了从识别电机参数到通过控制速度和转矩来控制电机所需的所有内容。
- 使用样例实验室 5 来识别电机参数。如果使用 MOTOR_TYPE_PM,请确保还需添加以下定义,以便成功编译实验室,并使用调整后的数值:
define #define USER_MOTOR_INERTIA_Kgm2 (7.06154e-06)
- 通过 InstaSPIN-FOC 在线 GUI 启动 BLDC 实验。
结语
驱动 BLDC 电机进行扭矩或速度控制可能是个相当复杂的问题,很有可能会超出嵌入式软件工程师的知识范畴,从而拖慢项目开发进度。如上所述,借助 Texas Instruments 的 InstaSPIN 和 MotorControl SDK 及相关硬件,即使开发人员对控制工程所知甚少,也可轻松快速地启动并运行 BLDC 电机。
免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。