English / 中文
你还在买十几块钱一个的直流有刷电机的驱动模块吗?你还在为有刷电机的高噪声、低响应速度和低寿命而烦恼吗?来看看这个项目吧,一个20块钱就能搞定的FOC无刷电机控制方案!miniFOC内置了力矩闭环控制器,为你提供一个通过3线UART口就能控制的无刷电机控制器。本项目的软件及硬件设计完全遵循AGPL-3.0开源协议。
注:miniFOC V2版本正在开发中(dev分支),拟支持电流环和无感FOC算法,敬请期待。
本开源项目旨在实现一种在国内(中国)就可以以及低成本实现的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。
- 采用空间矢量脉冲宽度调制方法
- 实现无电流传感器力矩控制
- 实现转动速度闭环控制
- 实现转动角度闭环控制
- 实现自动相序检测和相序矫正
- EDA工具:立创EDA(采用标准版免费许可证,无LICENSE纠纷)。
- 编译工具链:gcc-arm-none-eabi 10-2020-q4-major
- 烧录工具:OpenOCD 0.11.0-1
- 集成开发工具:CLion 2021.2.3 #212.5457.51
- 上位机开发工具:Qt 5.14.2 (MinGW 7.3.0 64bit)
- 操作系统及工具链:
- Win10 + MinGW + CLion + gcc-arm-none-eabi + OpenOCD
- Ubuntu20.04 + make + cmake + gcc-arm-none-eabi + OpenOCD
入门请参考本项目的wiki页面。
我们还提供了国内镜像仓库地址。
你可以访问Github Page以了解代码中的函数及变量的用法等信息。
**注意:**由于主要开发部署都在Github上进行,Gitee只是作为国内镜像仓库存放代码,会有wiki和issue等更新不及时的问题。您可在此访问Github源仓库。
请使用Issue Tracker报告错误和需求功能,并遵循以下要求:
1.在不同选项卡上突出显示选项卡。 2.如果窗口未聚焦,不要让更新消失。
源代码根据AGPL-3.0许可证发布。
组织:AcmeTech
作者:朱彦臻
维护人:朱彦臻, 2208213223@qq.com
该产品已经在Windows 10、Ubuntu 18.04和20.04下进行了测试。这是一个研究代码,希望它经常更改,并且不承认任何特定用途的适用性。