DengFOC 极简FOC库 -- 开源
课程教案 和 库文档,请访问:dengfoc.com
1 概述
DengFOC 库是灯哥开源的,基于 Arduino 和 ESP32 硬件开发的开源 FOC 库。
本FOC库参考了 SimpleFOC 的部分设计,但更秉承极简主义和实用主意,拥有比SimpleFOC更简易但更丰富的二次开发和应用特性:
- 资源占用低:内存占用比SImpleFOC少2/3
- 开放度更广:库把基本的FOC算法接口(如电角度、Iaplha 、IBeta)等以一种及其简单的方式向用户开放,使得用户可以直接接触到 FOC 算法实现的全过程,易于学习和在此基础上更进一步的开发 FOC 算法。
- 外接能力强:支持与OpenMV、树莓派、Python等多种硬件方案和软件语言直接的对接和互相调用,可以以比SimpleFOC更快的方式完成无刷电机应用的开发。
- 即插即用,无需校准:先进的参数自识别功能可以使得用户无需配置任何参数,直接插入电机和编码器即可跑FOC
- 无线控制支持:高速UDP,ESPNow 通讯,无需信号线即可控制电机
- 脚本支持:库内建强大的脚本语言 Lua,可以在不编译的情况下快速建立FOC应用
- 强大的工具链支持:支持与 Matlab 、Simulink 、ROS 等系统直接通讯,秒速建立机器人应用
- 高精度减速器应用支持:支持双编码器减速机应用
2 重要链接
本 FOC 库与 DengFOC 硬件联合组成一整套完整可用的 FOC 电机驱动方案,资料链接:
1 灯哥开源 淘宝店--一站配齐DengFOC板 您的支持就是我们持续做开源内容和课程的动力,项目收益将用于后续开发DengFOC和做课程~
3 DengFOC官网 包含课程文字版讲义,DengFOC使用文档,库使用方法等。
2 社区
本FOC板子社区唯四Q群,欢迎加入:开源FOC无刷驱动交流群 灯哥开源 群号 778255240(1群) 735755513(2群)471832283(3群)834835665(4群)247431752(5群)
任何使用问题和 DIY 问题 都会在这里做直接的讨论解答
3 怎样写 DengFOC 代码
灯哥在设计DengFOC库的时候,秉承极简和低内存占用的设计思路。因此,所有的功能块都是走即用即引入,不用不引入的原则,以此获得极低的资源占用率。
目前库已经有的模块有:
- DengFOC 主库 -- 包含DengFOC基础运行函数
- AS5600 编码器库 -- 传感器库
- InlineCurrent 库 -- INA240 电流传感器库
- 低通滤波库
目前已实现的功能:
- 开环速度
- 闭环速度
- AS5600传感器读取
- 在线电流检测
- 角度闭环(力位闭环)
- 力角度闭环(位置+速度+力闭环)
- 电流力矩闭环
- 双路电机完整三环驱动(位置,速度,力矩)
下面用力+位置闭环代码(力位闭环,电流力矩环作为内环,位置作为外环),来示范 DengFOC 库的代码编写,更多有关于库函数的说明,请查看DengFOC官网 。
3.1 电机力位闭环(基于电流力矩环)
#include "DengFOC.h"
int Sensor_DIR=-1; //传感器方向
int Motor_PP=7; //电机极对数
void setup() {
Serial.begin(115200);
DFOC_Vbus(12.6); //设定驱动器供电电压
DFOC_alignSensor(Motor_PP,Sensor_DIR);
}
void loop()
{
//设置PID
DFOC_M0_SET_ANGLE_PID(0.5,0,0.003,100000,0.1); //角度PID
DFOC_M0_SET_CURRENT_PID(1.25,50,0,100000); //电流环PID
DFOC_M0_set_Force_Angle(serial_motor_target()); //力位控制指令
//接收串口
serialReceiveUserCommand();
}
4 免费手把手教写FOC算法原理课
为了方便大家更进一步的理解FOC的算法和原理,我做了手把手教些FOC算法原理课,通过这些原理课你能够快速的从原理角度理解FOC知识并尝试写出自己的FOC基本功能库,视频链接:
1 【手把手教写FOC算法】1_起源,无刷电机概念与控制原理
2 【手把手教写FOC算法】2_克拉克变换,建立简化电机数学模型
5a 【手把手教写FOC算法】5a_撰写开环速度代码的前置知识
5b 【手把手教写FOC算法】5b_开环速度代码编程+硬件调试教学
6a 【手把手教写FOC算法】6a_撰写闭环位置代码的前置知识
6b 【手把手教写FOC算法】6b_闭环位置代码编程+硬件调试教学
7a1 【手把手教写FOC算法】7a1_写闭环速度代码的前置知识
7b 【手把手教写FOC算法】7b_闭环速度代码编程+硬件调试教学
8a 【手把手教写FOC算法】8a_撰写电流环代码的前置知识
8b 【手把手教写FOC算法】8b_精确电流力矩环代码编程+硬件调试教学
9a【手把手教写FOC算法】9a_用电流环改进速度和位置闭环-前置知识
9b【手把手教写FOC算法】9b_电流环改进速度和位置闭环代码编程+硬件调试教学
5 DengFOC爱好者拓展支持
DengFOC是开源项目,欢迎各位爱好者做二次开发。优秀的项目我将会在这里收录,如果你基于它做了有意思的项目,欢迎在群里联系我。
目前,已经有爱好者把项目移植到stm32平台,链接如下: