三相直流无刷电器驱动器(BLDC) 您所在的位置:网站首页 直流电机pwm调速原理图解大全 三相直流无刷电器驱动器(BLDC)

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

2024-06-13 16:45| 来源: 网络整理| 查看: 265

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

在这里插入图片描述

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

stm32直流电机控制

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

在这里插入图片描述

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

六步法

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

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

在这里插入图片描述

HALL换相位法

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

在这里插入图片描述

根据我们的换相表,就能以此设计出六步换相的程序。以正转为例,我们便可以设计出如下程序。其中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原理图

在这里插入图片描述

BLDC_Core原理图

原理图2

PCB

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

BLDC_Drive的PCB

在这里插入图片描述

BLDC_Core的PCB

在这里插入图片描述

渲染图

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

BLDC_Drive的渲染图

BLDC_Core的渲染图

在这里插入图片描述

软件架构

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

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


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有