当前位置: 首页 > news >正文

20块钱就能搞定的FOC无刷电机控制方案!miniFOC

 你还在买十几块钱一个的直流有刷电机的驱动模块吗?你还在为有刷电机的高噪声、低响应速度和低寿命而烦恼吗?来看看这个项目吧,一个20块钱就能搞定的FOC无刷电机控制方案!miniFOC内置了力矩闭环控制器,为你提供一个通过3线UART口就能控制的无刷电机控制器。本项目的软件及硬件设计完全遵循AGPL-3.0开源协议。


简介

    本开源项目旨在实现一种在国内(中国)就可以以及低成本实现的FOC (Field Oriented Control) 方案,示例电路中选用的元件均为国产芯片。FOC在控制BLDC (Brushless Direct Current)电机上有诸多的好处,主要有如下几点优势:

  1. FOC则完全没有转速的限制,不论在什么转速下都可以实现精确的控制。
  2. FOC的换向性能极其优秀,最高转速下正反转切换可以非常顺畅。
  3. FOC还可以以能量回收的形式进行刹车控制。
  4. FOC可以实现力矩、速度、位置三个闭环控制。
  5. FOC驱动器的噪音会比电调小很多,效率也比电调高很多。

    但是由于FOC的计算量大、原理复杂,所以需要很高成本的控制器,这也使得FOC在很多场景下都没有得到推广和使用。在经过了半年的研究和迭代之后,本人将FOC涉及大量计算的代码进行了深度优化,也重新根据国内的供应链进行了选型,希望本开源项目能够帮助国内的广大开发者们用上有优秀性能的BLDC电机,为开源社区贡献一份力量。


开源方案对比

开源方案miniFOCsimpleFOCODriveFpOC
主控制器GD32F130G6U6ATmega328PSTM32F405RGT6FPGA
驱动芯片EG2133L6234DRV8301MP6540
闭环频率30kHz (max)830Hz (max)8kHz (typical)18kHz (typical)
是否有电流环
驱动功率90W120W960W90W
成本价格(大约)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$!

相关文章:

  • AndroidX Navigation 反复创建Fragment问题修复
  • 黄金投资软件选择标准:多角度全面考量指南
  • DLL load failed while importing lib: 找不到指定的模块。(已解决)
  • 达索PLM在芯片行业的运用浅谈
  • LabVIEW Actor架构特点与适用范围
  • 【2024年计算机相关专业是否还值得选择】
  • 资源付费系统小程序APP公众号h5源码
  • 学习笔记——路由网络基础——环回接口(loopback)
  • 文本挖掘与可视化:生成个性化词云的Python实践【7个案例】
  • 【复旦邱锡鹏教授《神经网络与深度学习公开课》笔记】感知器
  • python实战根据excel的文件名称这一列的内容,找到电脑D盘的下所对应的文件位置,要求用程序实现
  • SQL Server中的FOR XML PATH以及Split
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • 【教程】DGL单机多卡分布式GCN训练
  • 深度学习(三)——Transforms的使用
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • Angular4 模板式表单用法以及验证
  • angular学习第一篇-----环境搭建
  • ES2017异步函数现已正式可用
  • npx命令介绍
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • vagrant 添加本地 box 安装 laravel homestead
  • 基于axios的vue插件,让http请求更简单
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 听说你叫Java(二)–Servlet请求
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 通过调用文摘列表API获取文摘
  • ​马来语翻译中文去哪比较好?
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (1)STL算法之遍历容器
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (C语言)fgets与fputs函数详解
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (SpringBoot)第二章:Spring创建和使用
  • (纯JS)图片裁剪
  • (分布式缓存)Redis分片集群
  • (四)opengl函数加载和错误处理
  • (万字长文)Spring的核心知识尽揽其中
  • (学习总结)STM32CubeMX HAL库 学习笔记撰写心得
  • (转)c++ std::pair 与 std::make
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .mysql secret在哪_MySQL如何使用索引
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET 常见的偏门问题
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .NET/C#⾯试题汇总系列:⾯向对象
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .NET单元测试
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • /usr/bin/env: node: No such file or directory
  • @ComponentScan比较
  • @FeignClient注解,fallback和fallbackFactory
  • [ 第一章] JavaScript 简史