直流无刷电机驱动原理
1、基础知识
2、换向
如何知道磁场到达这个位置时,转子在哪个位置呢?
当定子的旋转磁场旋转太快,需要磁场慢一点,等待转子。
需要用霍尔传感器检测转子的位置。
3、霍尔传感器-六步换向工作原理
- 电角度:磁场的旋转角度。
- 单个磁极,六步换向,换向六次,磁场转一圈,转子转一圈。霍尔经历一次S->N磁极变化。
- 四对磁极,磁场转一圈,转子转四分之一圈,需要磁场转四圈。霍尔经历四次S->N磁极变化。
- 机械角度和电角度存在四倍关系。
- 霍尔传感器,不是机械角度相差120度,位置不影响。
假设一对磁极
磁极旋转360度,输出波形如上。
由于霍尔差了120度,所以波形相差120度。
选择一个可观察的相位:
逆时针变化
顺时针
霍尔传感器换一种安装方式
直流无刷电机驱动原理(重要)
内部BLDC的图如下:
简化如下:可以看出此电机有四对极。而A,B,C绕组各自的四个绕组都是串联在一起的。串联起来的绕组一端都到公共端。
为了方便分析只用一对磁对极。这并不影响。
这样,通电的线圈会产生各自的磁场,他们的合成磁场满足矢量合成的原则。如下图:
直流无刷电机的6拍工作方式,线圈产生旋转磁场,见图
通过上图我们可以明显看出,想要控制BLDC旋转,根本的问题就是产生这6拍工作方式的电压信号(称为BLDC的六步控制)。举个例子来说明,假定一个BLDC的额定电压为24V,电机三根线就定义为A、B、C:
- (1)为A接24V、B悬空、C接GND,此时对应图中的①,电机转轴被固定在一个位置;
- (2)在(1)的基础上,我们修改接线方式,为A接24V、B接GND、C悬空,此时对应图中的 ②,电机转轴就在(1)基础上旋转一个角度,达到另外一个位置;
- (3)在(2)的基础上,我们修改接线方式,为A悬空、B接GND、C接24V,此时对应图中的③,电机转轴就在(2)基础上旋转一个角度,达到另外一个位置;
- (4)在(3)的基础上,我们修改接线方式,为A接GND、B悬空、C接24V,此时对应图中的④,电机转轴就在(3)基础上旋转一个角度,达到另外一个位置;
- (5)在(4)的基础上,我们修改接线方式,为A接GND、B接24V、C悬空,此时对应图中的⑤,电机转轴就在(4)基础上旋转一个角度,达到另外一个位置;
(6)在(5)的基础上,我们修改接线方式,为A悬空、B接24V、C接GND,此时对应图中的⑥,电机转轴就在(6)基础上旋转一个角度,达到另外一个位置。
(7)然后又是以(1)方式给电,如此循环,电机就可以转动起来。
但是如何实现上面所描述的三相极性的切换呢?
有了上面的原理分析,现在想让BLDC旋转起来的一个问题就是如何任意的控制A、B、C线的电压,参考之前的直流有刷电机驱动设计,就会马上想到可以用三个半桥(6个桥臂:3个上桥臂+3个下桥臂)构成的一个三相逆变器,这里的每个桥臂都有一个电子开关,电子开关可以选择是功率MOSFET或者IGBT,IGBT用于超大功率电机驱动。最终搭建起来的电路见图:
只要控制六个电子开关的导通或截止就可以实现六步换相。如下图:
把A,B,C三相不是公共端的各自分别接到每个上下半桥的中间。并且每个电子开关用PWM来驱动。但是还会多一个MOS驱动器这是因为控制器(MCU)输出的占空比电压是5v或者3.3V。而电子开关如果是MOSFET管的话是不能使其导通。相当于电压不够。所以MOS驱动器可以提升电压到15V左右。使其满足MOSFET管的导通条件。
下面引出另一个问题什么时候换相。要怎么准确的得到转子的位置。假如现在从0度转到60度怎么知道到60度了。这样才能在到60度时准确换相。如果换快了。电机可能就会乱转。换慢了就可能会停一下又转一下。这样会使电机很不平稳。所以转子的位置显得很关键。
方法如下:
有感方案:通过安装霍尔传感器与编码器得到转子反馈位置。
无感方案:比如读取反电动势的大小来得到转子的位置。
下面介绍安装霍尔传感器。霍尔传感器就是利用根据霍尔效应制作的一种磁场传感器。有正向磁场时输出1,反相磁场输出0。如图:
霍尔传感器与BLDC电机安装示意图见图。
安装时霍尔传感器要与转子的南极,北极对应好。否则可能不准。并且是要有三个才能判断出转子的位置。
安装方法有两种三个霍尔传感器电角度相差120度与60度。如图:
看波形可以找到120度安装H1,H2,H3不会同时都为0或者同时为1.而60度安装会有。其实60度安装的H3等于120度的H2。H2等于120安装H3的反相。
当只有一对磁对数时。每个霍尔传感器会经过六次磁极对应。
电机按一定方向转动时,3个霍尔的输出会按照6步的规律变化如下:
结合之前介绍的BLDC六步控制,在每个霍尔信号都对应一个BLDC控制步,使得BLDC旋转一个角度,这样可以制作下表
特别注意,一般BLDC厂家都会给出一个霍尔传感器和绕组得电情况对应关系表,不一定跟上面两个表都完全对应一致,但是原理分析都是一致的。
接下来一个问题怎么控制电机的速度?
答案当然是控制占空比的大小。但PWM控制直流无刷电机的方法有不同的模式。
如下图的四种方法。不同控制方式在性能上有不同的效果,当然针对实际的应用场合可以尝试多种调制方式,然后选择最优方式。
H_on-L_pwm:就是上桥臂用高电平,下桥臂用PWM。H_pwm-L_on正好与H_on-L_pwm相反。
6.无刷驱动板的介绍。
无论直流有刷电机还是无刷电机都会有专门的驱动板去控制。因为MCU的输出电压,电流是有限的。而电机的控制一般需要较高的电压或者电流。下面介绍一个半桥电路。另外的半桥都是一样的。
Ctrl_PWM_U_H与Ctrl_PWM_U_L接MCU一个定时器的互补通道。
首先TLP715是5M的高速隔离光耦:作用是隔离保护以及把PWM的电压抬升到15V。
当TLP715输入高电平那么Vout就输出15v。如果输入低电平那么输出0v。有两个TLP715的输出到IR2110S.一个做高(HIN)一个做低端输入(LIN)。接着IR2110S的有两个输出一个高端输出(HO)去控制上桥臂(Q1)。而低端输出(LO)作为下桥臂(Q2)。对于Q2来说要导通是比较容易的。因为S是接地的所以G点电压只要大于VGS(看手册)的就可以导通。但对于Q1来说S极是没有接地的。而D极与S极之间的电阻比较小。可以近似短路。相当于S极就是VCC_POWER=24V。所以G极必须要大于VCC_POWER+VGS才能导通。从而引出自举电路。就是把HO的电压抬高到VCC_POWER+VGS使得Q1导通。IR2110S还有一个使能引脚SD并且高电平有效。当为高电平无输出。
采样电流采集电路:只是其中一相。
Current_V_amp通过ADC采集得到然后计算出Isensor_V的电压。在除以采样电阻就是采样电流的值。MCP6024是运算放大因为采样电阻两端的电压太小了只是一个放大功能。而D16是把电压钳位在0~3.3v。
总线电压的检测:
其实VCC_POWER=24v是固定的。但是但上下两个桥臂短路就会变化。通过检测ADC采集V_DC-BUS就可以计算出VCC_POWER是否有变化。
温度的检测:
热敏电阻阻值是随温度变化的。通ADC采集V_Thermal就可以计算出温度。
过流保护:
LMV331是电压比较器:如果Isensor的电压大于Vref那么Ctrl_SHUTDOWN输出低电平。否则高电平。从而去判断是否过流。