三相直流无刷电器驱动器(BLDC)

这篇具有很好参考价值的文章主要介绍了三相直流无刷电器驱动器(BLDC)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

三相无刷直流电机驱动设计

三项无刷电机驱动程序,电机驱动,单片机,stm32,嵌入式硬件

说明
  1. 所有的硬件和代码已经开源,请移步代码开源连接
  2. 首先这个项目这个是自己学习的时候做的,目前已经验证霍尔有感方案,其他的还没验证。
  3. 如果当中存在问题,欢迎评论区一起讨论。
介绍

stm32直流电机控制

  • 采用STM32F103C6T6A作为主控
  • 主控与驱动分离
  • 采用三相逆变桥电路
  • 前级采用栅极驱动MOS,自带闭锁
  • 驱动板可适配有感,无感方案
项目简介
  在本项目中。采用主控与驱动分离的方式。其大致框图如下所示。

三项无刷电机驱动程序,电机驱动,单片机,stm32,嵌入式硬件

一共分为三块板子,分别为BLDC_Core板(主控板)、BLDC_Drive板(驱动板)、KEY板(按键板)。每个板子之间用SH1.0的线束进行连接,目前已经验证有感方案HALL换相无问题。其满载电机空转整个系统800mA。

六步法

实际上三相直流无刷电机可以理解为采用交流电来控制,而在驱动板当中的逆变桥就是来产生交流电的。在最常用的BLDC驱动中,比较常用且简单的就是采用六步换相来驱动电机。而这种方法可以称为6步法

六步法中的三相电机每次只有两组绕组有电流通过,产生磁场。为了让电机旋转,一般按照Q1Q2—Q2Q3—Q3Q4—Q4Q5—Q5Q6—Q6Q1的顺序依次导通功率开关管。下图是逆变器的结构。

三项无刷电机驱动程序,电机驱动,单片机,stm32,嵌入式硬件

HALL换相位法

在本设计当中,采用外部中断来获取HALL值,当电机旋转时,会触发HALL中断,在中断中读取HALL的值,根据实际的值来进行换相位,就能够驱动电机。下表是一版直流无刷电机的换相表。

三项无刷电机驱动程序,电机驱动,单片机,stm32,嵌入式硬件

根据我们的换相表,就能以此设计出六步换相的程序。以正转为例,我们便可以设计出如下程序。其中hall_state是获取到的霍尔的值。本设计中:上管调制,下管驱动。

switch (hall_state)
        {
            case 1:
                HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_3);//U+
                HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_2);//V+
                HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_1);//W+
                UL_OFF;VL_OFF;WL_ON;//下管
                break;
            case 2:
                HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_3);//U+
                HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_2);//V+
                HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_1);//W+
                UL_ON;VL_OFF;WL_OFF;//下管
            break;
            case 3:
                HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_3);//U+
                HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_2);//V+
                HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_1);//W+
                UL_OFF;VL_OFF;WL_ON;//下管
            break;
            case 4:
                HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_3);//U+
                HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_2);//V+
                HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);//W+
                UL_OFF;VL_ON;WL_OFF;//下管
            break;
            case 5:
                HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_3);//U+
                HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_2);//V+
                HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_1);//W+
                UL_OFF;VL_ON;WL_OFF;//下管
            break;
            case 6:
                HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_3);//U+
                HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_2);//V+
                HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);//W+
                UL_ON;VL_OFF;WL_OFF;//下管
            break;
            
            default:
                Motor_Stop();//电机停转
                break;
        }

原理图

下方给出了本设计当中的原理图。

BLDC_Drive原理图

三项无刷电机驱动程序,电机驱动,单片机,stm32,嵌入式硬件

BLDC_Core原理图

三项无刷电机驱动程序,电机驱动,单片机,stm32,嵌入式硬件

PCB

下方给出了本设计当中的PCB。

BLDC_Drive的PCB

三项无刷电机驱动程序,电机驱动,单片机,stm32,嵌入式硬件

BLDC_Core的PCB

三项无刷电机驱动程序,电机驱动,单片机,stm32,嵌入式硬件

渲染图

下方给出了本设计当中的渲染图。

BLDC_Drive的渲染图

三项无刷电机驱动程序,电机驱动,单片机,stm32,嵌入式硬件

BLDC_Core的渲染图

三项无刷电机驱动程序,电机驱动,单片机,stm32,嵌入式硬件

软件架构

在软件框架上主要采用了裸机开发,适用了分时调度,采用定时器2来产生1MS的时基标志位。通过这个标志位来完成调度,具体调度部分代码可参考User_Scheduler.c文件。在换相控制方面在HALL中断当中完成,电机驱动部分代码可参考hall.c和motor.c文件。文章来源地址https://www.toymoban.com/news/detail-764731.html

参与贡献
  • 爱学习的王大可负责了硬件设计,以及程序编写。
  • 幺幺零1223负责了原理图评审,与焊接调试。
  • lu yoann负责Core板和Drive板的焊接。

到了这里,关于三相直流无刷电器驱动器(BLDC)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【2022项目复盘】无位置传感器的无刷直流电机驱动设计

    无位置传感器的无刷直流电机驱动设计是我的本科毕业论文课题,主要还是去查阅资料,学习相关知识,然后自己设计驱动,努力复现一下。 无刷直流电机是从有刷直流电机的应用基础上发展而来的,它的英文是Brushless DC Motor。一般的,有刷直流电机的定子上装有固定的磁极

    2023年04月18日
    浏览(26)
  • 大疆开发板A型基于HAL库驱动M3508直流无刷电机及PID控制

    官网:RoboMaster 机甲大师赛 芯片型号STM32F427IIH6   1)新建new project,选择开发板A型的芯片 2)打开外部高速时钟 这是我的时钟树配置 3)我选择用can总线指令控制,所以根据开发版A型原理图打开相应的接口 其中can1为电调专用接口,can2为DJI OnboardSDK和Robomaster UWB定位系统用  我

    2023年04月09日
    浏览(25)
  • ESP32设备驱动-直流电机与L298N电机驱动器

    在本文中,我们将介绍如何使用ESP32通过L298N电机驱动器驱动直流电机。 L298N 电机驱动器模块非常易于与微控制器一起使用,而且相对便宜。 它被广泛用于控制机器人,因为我们可以一次连接多达四个电机,但如果我们还想控制速度和方向,那么它允许连接两个电机。 因此,

    2024年02月13日
    浏览(31)
  • 【 使用 Arduino 和 L293D 电机驱动器 IC 控制直流电机】

    如果你打算用直流电机建造一个机器人,那么你最终会了解到,如果你想让它朝某个方向移动,你需要同时控制电机的速度和方向。最好的方法之一是使用 L293D 电机驱动器 IC,因为它便宜、易于使用,并且有一点 PWM 支持,它可以控制速度和方向。这就是为什么在本教程中我

    2024年02月15日
    浏览(36)
  • 直流无刷电机

    2024年02月15日
    浏览(24)
  • 直流无刷电机【一】从零开始上手

    这学期正好学完了两学期的电机学,加上个人一直对四轴无人机的无刷电机与电调感兴趣,同时也比较喜欢几个月前看见的foc控制的电机旋钮那个开源项目,于是自己做了一套无刷电机驱动板(算是真正的从0开始),淘宝买了个十几块的不知名云台无刷电机就开始瞎折腾了。

    2024年02月02日
    浏览(27)
  • 【STM32】BLDC驱动&控制开发笔记 | 08_无刷直流电机BLDC参数辨识_极对数,相电阻,相电感,交轴直轴电感,反电动势常数,磁链常数

    本文主要想为后续电机控制的仿真和实验多测试出一些电气参数(以参数辨识的离线辨识为主)。目前包括:极对数;相电阻;相电感;交轴直轴电感;反电动势常数;磁链常数 的测量内容。 因为笔者水平有限,本文以资源整理为主,有的部分我也主要是看别人的博客学习

    2024年02月06日
    浏览(30)
  • 1.直流无刷电机BLDC转速计算推论

    @1.在电机领域,转速的单位是圈/秒或者圈/分钟 @2.圈/分钟的意思是电机一分钟旋转多少圈,单位为RPM(Revolutions Per Minute) 2.带霍尔传感器的有感BLDC转速测量方案 @1.带霍尔的BLDC电机转速测量很精确。霍尔传感器本身根据电磁场的变化输出U、V、W三相波形。U、V、W三相线路接

    2023年04月27日
    浏览(192)
  • 直流无刷电机FOC控制算法 理论到实践 —— 实践

    关于直流无刷电机FOC控制算法的理论章节,本人已经在前两章进行过详细说明,大家可以自行进行阅读,请务必了解过理论之后再来学习如何具体进行实现。 直流无刷电机FOC控制算法 理论到实践 —— 理论(一) 直流无刷电机FOC控制算法 理论到实践 —— 理论(二) 本章节

    2023年04月11日
    浏览(39)
  • 无刷直流电机最强科普(收藏版)

    无刷直流电机(BLDC:Brushless Direct Current Motor),也被称为电子换向电机(ECM或EC电机)或同步直流电机,是一种使用直流电(DC)电源的同步电机。无刷直流电机实质上为采用直流电源输入,并用逆变器变为三相交流电源,带位置反馈的永磁同步电机。 电机有各式各样的种类

    2024年01月16日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包