20块钱就能搞定的FOC无刷电机控制方案!miniFOC
你还在买十几块钱一个的直流有刷电机的驱动模块吗?你还在为有刷电机的高噪声、低响应速度和低寿命而烦恼吗?来看看这个项目吧,一个20块钱就能搞定的FOC无刷电机控制方案!miniFOC内置了力矩闭环控制器,为你提供一个通过3线UART口就能控制的无刷电机控制器。本项目的软件及硬件设计完全遵循AGPL-3.0开源协议。
简介
本开源项目旨在实现一种在国内(中国)就可以以及低成本实现的FOC (Field Oriented Control) 方案,示例电路中选用的元件均为国产芯片。FOC在控制BLDC (Brushless Direct Current)电机上有诸多的好处,主要有如下几点优势:
- FOC则完全没有转速的限制,不论在什么转速下都可以实现精确的控制。
- FOC的换向性能极其优秀,最高转速下正反转切换可以非常顺畅。
- FOC还可以以能量回收的形式进行刹车控制。
- FOC可以实现力矩、速度、位置三个闭环控制。
- FOC驱动器的噪音会比电调小很多,效率也比电调高很多。
但是由于FOC的计算量大、原理复杂,所以需要很高成本的控制器,这也使得FOC在很多场景下都没有得到推广和使用。在经过了半年的研究和迭代之后,本人将FOC涉及大量计算的代码进行了深度优化,也重新根据国内的供应链进行了选型,希望本开源项目能够帮助国内的广大开发者们用上有优秀性能的BLDC电机,为开源社区贡献一份力量。
开源方案对比
开源方案 | miniFOC | simpleFOC | ODrive | FpOC |
---|---|---|---|---|
主控制器 | GD32F130G6U6 | ATmega328P | STM32F405RGT6 | FPGA |
驱动芯片 | EG2133 | L6234 | DRV8301 | MP6540 |
闭环频率 | 30kHz (max) | 830Hz (max) | 8kHz (typical) | 18kHz (typical) |
是否有电流环 | 否 | 否 | 是 | 是 |
驱动功率 | 90W | 120W | 960W | 90W |
成本价格(大约) | 20¥ | 100¥ | 300¥ | 150¥ |
从上表格中可以看出,miniFOC所采用的方案可以实现在低成本下达到较高的性能。同时由于重新根据国内的供应链进行了选型,所以在器件的选择上没有那么局限,提供了很多替代方案。在2021年芯片供应紧缺的情况下能将FOC的成本降至约20元,这也证明了本项目在成本上的优化程度和巨大潜力。
性能参数
- 输入电压范围:5V~18V(你可以根据这里的教程修改电路以适应更高的电压)。
- 最大驱动电流:5A(你可以根据这里的教程修改电路以实现更大的驱动电流)。
- FOC详细参数:无电流环控制,采用SVPWM (Space Vector Pulse Width Modulation)。
- 通信参数:UART串口通信波特率115200,采用中容量数传协议进行数据传输。
- 微控制器参数:Cortex-M3内核,72MHz主频,32KB Flash,4KB SRAM。
功能特性
- 采用空间矢量脉冲宽度调制方法
- 实现无电流传感器力矩控制
- 实现转动速度闭环控制
- 实现转动角度闭环控制
- 实现自动相序检测和相序矫正
项目地址:GitHub - ZhuYanzhen1/miniFOC: 你还在为有刷电机的高噪声、低响应速度和低寿命而烦恼吗?这个项目是一个20块钱就能搞定的FOC无刷电机控制方案!This project is a FOC (Field Oriented Control) BLDC Motor control scheme that can be done for 3$!