作者:Jacob Beningo
Digi-Key
在国防、工业和机器人行业中,许多应用都需要使用嵌入式系统来控制直流无刷 (BLDC) 电机。带动电机旋转看似微不足道,可是一旦涉及到电机转速、扭矩、电气特性和电磁特性以及电流反馈测量,这就成了相当复杂的问题,并且可能会拖慢项目进度。
这就要求开发人员选择适当的硬件来运行驱动电机的算法,从而以最少的元器件数量,在应用的整个运动范围内都可以平稳顺畅地控制电机。
我们需要的正是一条捷径,即某种一体化软硬件组合包,可以显著缩短开发时间,使开发人员专注于最终应用,而无需深入了解电机控制的精妙之处。
本文将介绍一个 Texas Instruments 推出的类似组合包,结合该公司的微控制器和开发套件硬件与 InstaSPIN™ 磁场定向电机控制软件和工具。此外,还将说明经验尚浅的开发人员如何使用该组合,在一小时内轻松确定电机参数并启动复杂的 BLDC 电机。
什么是 InstaSPIN-FOC,当真易于使用吗?
Texas Instruments 的 InstaSPIN 解决方案独特之处在于,即使开发人员对此毫无经验,也可以在一小时内启动电机。事实上,开发人员只要使用过该解决方案,那么下一次只需不到十分钟即可启动并运行电机。此外,该套件使用磁场定向控制 (FOC) 取代编码器,因此开发人员只需连接电机电源和接地以及电机的各相,那么便在电气上准备就绪,而无需编码器或其他复杂的电子设备。
当然,除 FOC 外,反电动势过零定时电路等其他控制机制也不使用传感器或编码器。不过,InstaSPIN 可以监控电机的磁通量,从而确定电机换向的时间。开发人员可以通过绘图窗口监控磁通信号,并设置“磁通阈值”滑块以指定电机换向发生的磁通水平。通过监控所显示的相电压和电流波形,可以验证最佳换向。
InstaSPIN-FOC 解决方案共包含四个主要部分:
- 微控制器板
- 电机驱动板
- InstaSPIN-FOC 图形用户界面 (GUI)
- BLDC 电机
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™ 微控制器。

TMS320F280049C LaunchPad 并非开发人员使用 TMS320F280049C 微控制器的唯一方式。此外,还可以使用 TMS320F280049C 微控制器的 TMDSCNCD280049C 控制卡(图 2)。该控制卡可用于原型开发阶段,也适用于开发人员希望灵活更换应用所使用的微控制器或增强可扩展性的情况。控制卡可插入坞站使用,使开发人员可以访问微控制器 I/O。


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。

识别 BLDC 电机参数并运行电机
使用 InstaSPIN-FOC GUI 驱动电机前,系统需要先了解电机特性,以便对速度或扭矩进行 FOC 控制。为此,算法需要收集以下特性信息:
- 电阻值
- 电感
- 电机磁通
- 磁化电流
首先,开发人员需要通过 TI 开发人员网站打开 InstaSPIN-FOC GUI。然后,在 GUI 环境下,可以找到一个与其他开发 IDE 类似的运行按钮。单击此按钮可将电机识别码下载至 LaunchPad 并尝试执行。
一开始可能毫无反应,因为开发人员必须启用该软件,即选中 GUI 中的 "Enable System"(启用系统)复选框。此时,电机识别码仍然无法运行,因为还需要选中 "Run"(运行)复选框。启用 "Run"(运行)后,代码就开始执行识别电机的序列,并且进行必要的测量以获得运行电机所需的参数。整个识别过程将持续数分钟,在此期间电机将加速旋转,然后减速旋转,并以慢速运行几分钟。
这一过程完成后,开发人员就可以在 GUI 上看到如图 5 所示的界面。

只需更改 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 电机。