小麦大叔
认证:普通会员
所在专题目录 查看专题
一款超级好用的虚拟示波器软件
通讯协议中的checksum校验和算法
STM32裸机事件驱动框架OSAL移植
一文搞懂SLAM技术
一文搞懂BLDC驱动原理
一文教你优雅地用宏实现环形缓冲区
作者动态 更多
凉了!嵌入式真的要卷成下一个Java了吗?
02-28 09:03
嵌入式开发必须学习Qt吗?
02-27 09:16
这么简单的环境搭建,网友:我却搭了很久,结果还是不行...
02-26 15:44
单片机如何能运行如飞?一种高效实现数学函数的方式!
2022-01-26 11:08
keil开发过程中map和elf文件有什么作用?
2021-11-01 19:05

一文搞懂BLDC驱动原理

大家好,我是小麦,前段时间,接手做了一个项目,是基于BLDC的无感方波驱动的一个产品,我想在这里总结和分享一下BLDC的驱动原理。

首先什么BLDC?

BLDC(brushless DC electric motor)全称是无刷直流电机,这里就不得不说一下有刷直流电机,然后带着问题再看什么是直流无刷电机。

有刷直流电机发明于 19 世纪,现在应用仍然很普遍,相比较于无刷直流电机,它的结构更加简单,通常电机内部结构的组件都包括转子和定子;

  • 转子就是旋转的;
  • 定子就是固定的;

然后其中一个可能是永磁体,就是那种加入稀土等材料然后可以保持长期磁性的物质;

而另一个就是线圈绕组,经过交变电流之后,会产生变化的磁场,从而推动电机的转子进行旋转。

下面是我小时候玩的四驱车里拆下来的电机;

内部结构图

小时候拆过的小伙伴请举手!言归正传,下面是一个简单的两极有刷直流电机的模型,我们来简单分析一下它的旋转原理。

首先这里的转子是励磁绕组,正如前面提到的,就是线圈绕组,但是它如何通过交变电流呢?正是通过这个换向器,图1中金黄色的器件。

假设我们给线圈通电,这时候会在电枢周围产生磁场。由于同极相斥,电枢的左侧被推离左侧,电枢的右侧被拉向右侧,从而导致转子旋转。

这里电枢是转子,而永磁体是定子,其中用蓝色表示N极,红色表示S极。

电枢继续旋转。当电枢与水平垂直时,即电枢产生的磁场与永磁体产生的磁场垂直,换向器反转改变了通过线圈的电流方向,使磁场反转。因此转子可以继续旋转。

重复以上过程,转子就开始旋转了,如下图所示:

其实最简单的运行原理看下图就很清晰了,如果我们换一个更大的电池(电压更高),这个线圈可能会转的更快。

所以有刷直流电机可以很简单地转动起来,因为电机内部已经帮你做好了换向的工作,所以通常可以进行升压和降压调速,通常这里的做法是PWM,加上功率元器件,实现弱电控制强电,这有一部分属于电力电子的范畴了。

最常经常使用的就是H桥驱动电路了,可以简单的控制电机的正转和反转,还能通过控制PWM的占空比进行调速,整体电路如下所示:

好了,差不多搞清楚直流有刷电机之后,我们再来看看直流无刷电机到底和它有什么相同和不同的地方呢?

直流无刷电机从结构上,比直流有刷电机少了电刷和换向器,所以内部结构无法自己完成换相的操作,因此就需要外部驱动信号进行换向。这里我们还是从内部结构作为切入点,对其驱动时序进行分析,结果就会变得清晰起来。

如下图所示,在四轴飞行器或者一些航模上,都能看到这种类型的直流无刷电机,它通常有三条线,U,V,W,当然航模上还需要配置一个电调——作为电机的驱动器。

这里的电调往往有两种驱动方式,六步方波,或者FOC驱动,下面主要对六步方波驱动方式进行分析。

我们先看一下直流无刷的内部结构,通常是这样的,这里由定子和转子构成,是电枢绕组,转子是永磁体;两对极电机,分别是U1,V1,W1,U2,V2,W2,后面我们会进一步进行介绍。具体如下图示:

图中的电机的定子是电枢绕组在通过交变电流的时候,会产生磁场,电枢的材料是铁芯,可以导磁,这样可以增大磁场的强度,磁场的方向取决于电流的方向,具体可以根据右手螺旋定则来判断,如下图所示:

所以,这里我们简单介绍一下转子旋转的过程,即无刷直流电机的换相原理:

  1. 首先我们对电枢绕组施加适当大小的电流,线圈将产生一个磁场,该磁场将吸引转子的永磁体;

  2. 如果我们一个接一个地激活每个线圈,这样可以产生一个旋转的磁场,由于永磁体和电磁体之间的力相互作用,转子将在旋转的磁场作用下继续旋转。

具体如下图所示:

但是上面提到,这里是两对极的直流无刷电机,那么为了提高电机的效率,我们可以将两个相反的线圈组成一个绕组,这样会产生与转子极相反的磁极,从而获得双倍的磁场的力。

初步了解了内部的结构和通电机制之后,我们就需要产生相应的驱动时序去产生旋转的磁场,带动转子转动。如下图所示,这是一个简单的驱动的架构。

在MCU中会固化一段代码,然后驱动信号通过IPM间接驱动六个功率开关元器件,这里可以是MOSFET,电机模型可以等效成三个电感的星型连接,那么我们需要做的工作就是如何去产生驱动信号。

那么这个驱动信号又符合什么样的规律呢?下面我们进一步介绍驱动信号。

这里其实是一种两两通电的方式。如果我们将 A 相上拉至高电平,然后在另一侧将 B 相接地,则电流将从 VCC 流过A 相,中性点和 B 相,最终流向地。

因此,只需一个电流,我们就可以产生了四个不同的磁极,从而导致转子移动,内部的电流走向如下图所示:

其实电机内部一般可以等效成一个星型的连接方式,A,B,C三相的中性点连接在一起,外部通过MOSFET或者IGBT组成功率开关元器件,进行控制,所以这里也可以说明无刷直流电机,通常有U,V,W三条线引出来。

两两通电的其中一种状态如下图所示,此时的状体可以标注为a+,b-,c0,下面我们会进一步进行解释。

首先规定一下我们的驱动电路的相应符号:

  • 使用SW1SW2作为一个上下管驱动U,或者是a
  • 使用SW3SW4作为一个上下管驱动V,或者是b
  • 使用SW5SW6作为一个上下管驱动W,或者是c

然后我们在这里规定:上管打开标记为+,下管打开标记为-,上下管都不开标记为0

最终让转子朝一个方向旋转的驱动时序应该是这样的:

  1. a+b-c0
  2. a+b0c-
  3. a0b+c-
  4. a-b+c0
  5. a-b0c+
  6. a0b-c+

具体如下图示:

驱动的六步方波时序正确之后,我们基本可以实现对无刷直流电机的开环控制驱动了。

具体人驱动时序,如果画一下的话,对于每一相都是六步的驱动时序,然后两相之间的相位相差120°。

例如A相的六步相序需要比B相超前120°,B相需要比C相超前120°。

整体应该如下图所示:

下面是我实际过程中测试的上管的方波驱动信号。

既然开环实现之后,后面就要进行闭环控制了,首先有一点需要说明的是,前面的六步PWM时序,并没有根据转子的实际位置进行磁场的切换,所以可能出现的情况,就是失步,这个有点类似步进电机。

结论就是实际磁场旋转的速度可能快于转子旋转的速度,所以就造成了失步。

如果这里引入转子的位置反馈量,就可以完美的解决这个问题,所以通常会加入霍尔传感器来检测实际的转子位置。

转子处于不同位置的时候霍尔传感器会产生相应的信号,并且还可以根据霍尔信号计算转速,作为后面速度闭环的反馈值,霍尔信号具体如下图所示:

一般来说增加了霍尔传感器,在成本和电机的结构复杂程度上都会大大增加,所以,这里可以通过检测每一相的反电动势(Back EMF),来进行位置的估算以及速度的计算。

无刷直流电机的反电动势是梯形反电动势,具体如下图所示:

无感方波的驱动方式难点在于启动和过零点的检测上,通常启动可以使用三段式启动的方式,即转子预定位,开环强拖,开环切闭环,这三个过程。

另外还可以进行高频注入的方式确定转子的初始位置,然后直接进行启动。

文章参考:

https://howtomechatronics.com/how-it-works/how-brushless-motor-and-esc-work/

https://maker.pro/custom/tutorial/how-a-brushed-dc-motor-works

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 4
收藏 10
关注 132
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧