标准版
#第六届立创电赛#miniFOC

创建时间:3年前

视频

  • 02d95ae053eb9bed8af1f7beedd7ea52.mp4

  • bc63d6e36be9d8275cd252a9100cf097.mp4

描述

<p><img src="//" alt="LOGO"></p> <p>你还在买十几块钱一个的直流有刷电机的驱动模块吗?你还在为有刷电机的高噪声、低响应速度和低寿命而烦恼吗?来看看这个项目吧,一个20块钱就能搞定的FOC无刷电机控制方案!<strong>miniFOC</strong>内置了力矩闭环控制器,为你提供一个通过3线串口就能控制的无刷电机控制器。本项目计划于2021年8月底完成基本功能的开发,软件及硬件设计完全遵循AGPL-3.0开源协议。</p> <p><br> <strong>由于立创网页对markdown文本解析不好,推荐在github中打开</strong>:<a href="https://github.com/ZhuYanzhen1/miniFOC" target="_blank">https://github.com/ZhuYanzhen1/miniFOC</a><br> <br> <br> <strong>如果github网页打开速度过慢,可以在gitee中打开镜像仓库</strong>:<a href="https://gitee.com/zhuyanzhen1/mini-foc" target="_blank">https://gitee.com/zhuyanzhen1/mini-foc</a><br> <br> <br> <img src="//" alt="Version"> <img src="//" alt="Build"> <img src="//" alt="License"></p> <h3>简介</h3> <p>本开源项目旨在实现一种在国内(中国)就可以以及低成本实现的FOC (Field Oriented Control) 方案,示例电路中选用的元件均为国产芯片。FOC在控制BLDC (Brushless Direct Current)电机上有诸多的好处,主要有如下几点优势:</p> <ol> <li>FOC则完全没有转速的限制,不论在什么转速下都可以实现精确的控制。</li> <li>FOC的换向性能极其优秀,最高转速下正反转切换可以非常顺畅。</li> <li>FOC还可以以能量回收的形式进行刹车控制。</li> <li>FOC可以实现力矩、速度、位置三个闭环控制。</li> <li>FOC驱动器的噪音会比电调小很多,效率也比电调高很多。</li> </ol> <p>但是由于FOC的计算量大、原理复杂,所以需要很高成本的控制器,这也使得FOC在很多场景下都没有得到推广和使用。在经过了半年的研究和迭代之后,本人将FOC涉及大量计算的代码进行了深度优化,也重新根据国内的供应链进行了选型,希望本开源项目能够帮助国内的广大开发者们用上有优秀性能的BLDC电机,为开源社区贡献一份力量。</p> <hr> <h3>开源方案对比</h3> <table> <tr> <th style="text-align: center;">开源方案</th> <th style="text-align: center;"><strong>miniFOC</strong></th> <th style="text-align: center;"><a href="%5Bhttps://github.com/simplefoc/Arduino-SimpleFOCShield%5D(https://github.com/simplefoc/Arduino-SimpleFOCShield)" target="_blank">simpleFOC</a></th> <th style="text-align: center;"><a href="%5Bhttps://github.com/odriverobotics/ODrive%5D(https://github.com/odriverobotics/ODrive)" target="_blank">ODrive</a></th> </tr> <tr> <td style="text-align: center;">主控制器</td> <td style="text-align: center;">GD32F130G6U6</td> <td style="text-align: center;">ATmega328P</td> <td style="text-align: center;">STM32F405RGT6</td> </tr> <tr> <td style="text-align: center;">驱动芯片</td> <td style="text-align: center;">EG2133</td> <td style="text-align: center;">L6234</td> <td style="text-align: center;">DRV8301</td> </tr> <tr> <td style="text-align: center;">闭环频率</td> <td style="text-align: center;">10kHz</td> <td style="text-align: center;">830Hz</td> <td style="text-align: center;">8kHz</td> </tr> <tr> <td style="text-align: center;">是否有电流环</td> <td style="text-align: center;">否</td> <td style="text-align: center;">否</td> <td style="text-align: center;">是</td> </tr> <tr> <td style="text-align: center;">驱动功率</td> <td style="text-align: center;">90W</td> <td style="text-align: center;">120W</td> <td style="text-align: center;">960W</td> </tr> <tr> <td style="text-align: center;">成本价格(大约)</td> <td style="text-align: center;">20¥</td> <td style="text-align: center;">100¥</td> <td style="text-align: center;">300¥</td> </tr> </table> <p>从上表格中可以看出,<strong>miniFOC</strong>所采用的方案可以实现在低成本下达到较高的性能。同时由于重新根据国内的供应链进行了选型,所以在器件的选择上没有那么局限,有很多替代方案。在2021年芯片供应紧缺的情况下能将FOC的成本降至约20元,这也证明了本项目在成本上的优化程度和巨大潜力。</p> <hr> <h3>性能参数</h3> <ul> <li> <p>输入电压范围:5V~18V(你可以根据这里的教程修改电路以适应更高的电压)。</p> </li> <li> <p>最大驱动电流:5A(你可以根据这里的教程修改电路以实现更大的驱动电流)。</p> </li> <li> <p>FOC详细参数:无电流环控制,采用SVPWM (Space Vector Pulse Width Modulation)。</p> </li> <li> <p>通信参数:UART串口通信波特率115200,采用<a href="https://github.com/ZhuYanzhen1/CDTP/blob/master/Mid%20Capacity/README_CN.md(https://github.com/ZhuYanzhen1/CDTP/blob/master/Mid%20Capacity/README_CN.md)" target="_blank">中容量数传协议</a>进行数据传输。</p> </li> <li> <p>微控制器参数:Cortex-M3内核,48MHz主频,32KB Flash,4KB SRAM。</p> </li> <li> <ul> <li>-</li> </ul> </li> </ul> <h3>开发环境</h3> <ul> <li> <p>EDA工具:<a href="https://lceda.cn/(https://lceda.cn/)" target="_blank">立创EDA</a>(采用标准版免费许可证,无LICENSE纠纷)。</p> </li> <li> <p>编译工具链:gcc-arm-none-eabi 9-2020-q2-update</p> </li> <li> <p>烧录工具:OpenOCD 0.10.0</p> </li> <li> <p>集成开发工具:CLion 2021.2 #212.4746.93</p> </li> <li> <p>操作系统及工具链:</p> <ul> <li>Win10 + MinGW + CLion + gcc-arm-none-eabi + OpenOCD</li> <li>Ubuntu20.04 + make + cmake + gcc-arm-none-eabi + OpenOCD</li> </ul> </li> <li> <ul> <li>-</li> </ul> </li> </ul> <h3>BUG报告 & 功能需求</h3> <p>请使用<a href="https://github.com/ZhuYanzhen1/miniFOC/issues(https://github.com/ZhuYanzhen1/miniFOC/issues)" target="_blank">Issue Tracker</a>报告错误和需求功能,并遵循以下要求:</p> <p>1.在不同选项卡上突出显示选项卡。 2.如果窗口未聚焦,不要让更新消失。</p> <hr> <h3>许可证</h3> <p>源代码根据<a href="https://github.com/ZhuYanzhen1/miniFOC/blob/main/LICENSE(https://github.com/ZhuYanzhen1/miniFOC/blob/main/LICENSE)" target="_blank">AGPL-3.0许可证</a>发布。</p> <p><strong>组织:AcmeTech</strong></p> <p><strong>作者:朱彦臻</strong></p> <p><strong>维护人:朱彦臻, 2208213223@qq.com</strong></p> <p><br>     该产品已经在Windows 10、Ubuntu 18.04和20.04下进行了测试。这是一个研究代码,希望它经常更改,并且不承认任何特定用途的适用性。</p> <hr> <h4>硬件部分</h4> <p>下图展示了<strong>miniFOC</strong>示范电路的原理图,接下来对电路原理图进行下一步的讲解。</p> <p><img src="//" alt="miniFOC_schematic"></p> <p><strong>miniFOC</strong>的示范电路的主控采用了<a href="http://www.gd32mcu.com/" target="_blank">兆易创新</a>的GD32F130G6U6芯片。GD32F130G6U6采用了ARM Cortex-M3内核,具有32KB的Flash空间及4KB的SRAM空间,工作在72MHz主频下。通过GD32的TIMER1通道0、1、2(位于PA0、1、2)产生PWM信号,用于驱动电路。另外,我们还引出了UART0、SWD调试引脚用于程序下载和调试。磁编码器采用了<a href="https://semiment.com.cn/" target="_blank">赛卓</a>的SC60228芯片,主控通过SPI0接口与之进行通信。     三相驱动选择的是<a href="https://www.egmicro.com/" target="_blank">屹晶微</a>的EG2133芯片。EG2133是一款专用三相独立半桥驱动芯片,有4.5—20V宽电压输入、300V高侧自举电源耐压等优点。可以满足大部分电路驱动需求,即更换MOS管时无需更换驱动IC和修改程序。示范电路的MOS管采用了<a href="http://www.all-power.net/" target="_blank">铨力</a>公司的AP2300,漏源电压20V,漏极电流可达5.2A,可以满足一般无刷电机的应用需求。     由于示范电路输入电压最大为18V,故选用两级降压方案为主控、栅极驱动及其它外设电源。我们选用<a href="https://www.fitipower.com/NewsDetail.asp?lv=-1&amp;id=4" target="_blank">天钰</a>的FR8204芯片作为第一级降压,将输入电压降至5V。FR8204是一款集成MOS的同步Buck芯片,输入电压范围为4.5—18V,输出电流2A,开关频率500kHz,为电路小型化提供了基础。选用<a href="http://www.hjxai.com/" target="_blank">恒佳兴</a>的HX9193-33GB芯片作为第二级降压,为单片机提供3.3V供电。HX9193是一款LDO芯片,输出电流可达600mA。     本设计使用的三相半桥驱动为屹晶微的EG2133,可支持的最高PWM频率为500kHz,内置了硬件死区控制,所以控制部分可以不考虑死区的设置,减少微控制器的计算资源消耗,开关节点的耐压高达275V,应用于重载场景中,也能保证半桥驱动不受损坏。三相半桥驱动上共有6个输入,可分别对六根MOS管进行单独操作,也可以将某一相的两个输入直接接到微控制器的同一个PWM输出端口上,使得半桥保持上下管互补开关,这就有使用微控制器上6个和3个PWM输出端口的区别,分别称为6PWM模式和3PWM模式。     PWM通过GD32F130G6U6主控中的通用定时器TIM1外设产生,为了减少微控制器的引脚数量,我们采用3PWM模式进行控制,下管的控制信号由三相驱动器自己产生互补PWM驱动。图中R1、C4组成的RC电路可以在重新上电时给单片机RST引脚提供上电复位信号。C5、C6是单片机的去耦电容,用于减少单片机供电电压波动,保障单片机稳定工作。R5电阻为LED的限流电阻,使LED1工作在正常电流下而不会过流烧坏。</p> <h4>软件部分</h4> <p>详情请见代码</p> <p><br></p> <h4>BOM清单</h4> <p><img src="//image.lceda.cn/pullimage/lO195v1q5fXL3SPYroR5pEPLE0bgK0fqTbPX3jBx.png" alt="BOM.png"></p> <p><br></p> <h4>大赛LOGO验证</h4> <p><img src="//image.lceda.cn/pullimage/FU12YSxihfnpku4HRCE8dHOk8Oh2nHlZBnzD3YFM.jpeg" alt="微信图片_20210907133251.jpg"></p>

文档

BOM

暂无

附件

附件名 下载
BOM_miniFOC.pdf
GerberFiles.zip
miniFOC_PCB.pdf
miniFOC_schematic.pdf

评论(4)

  • 表情
    emoji
    小嘉工作篇
    小嘉日常篇
  • 图片
成功
工程所有者当前已关闭评论
立创电赛 回复
<p>logo验证需要上传第六届电赛的logo,可前往QQ群>群文件下载:1051569414</p>
立创电赛 回复
<p>加油更新文档哟,完成后可申请价值58元PWLINK调试器,先到先得。<a href="https://diy.szlcsc.com/posts/35d08431c7ae49b6b9ea5698eb70ecba" target="_blank">https://diy.szlcsc.com/posts/35d08431c7ae49b6b9ea5698eb70ecba</a></p>
立创电赛 回复
<p>    记得上传视频哟~</p>
cfm1 回复
<p>链接都不行了啊</p>
goToTop
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow