电机学习-有感BLDC开环控制(六步换相)
文章目录
- 1. 简介
- 2. 六步换向控制
- 3. 机械角度和电角度
- 4.转子位置获取
- 5.霍尔传感器读取测试
- 6.速度开环控制
- 6.1 PWM设置
- 6.2死区时间
1. 简介
BLDC的反电动势一般是梯形的反电动势,所以采用方波控制。如图2-1所示,是一个简化的内转子无刷直流电机。我们通过控制ABC三相的导通顺序来产生不同的磁场,使电机的转子转动。
图2-1
2. 六步换向控制
对于ABC三相,我们每次选取其中两相来导通,那么总共有6种排列组合的方式,如图2-2所示。
图2-2
我们可以通过控制三相导通的顺序使电机转起来。
步骤 | A相 | B相 | C相 |
---|---|---|---|
第一步 | 正 | 负 | 悬空 |
第二步 | 悬空 | 负 | 正 |
第三步 | 负 | 悬空 | 正 |
第四步 | 负 | 正 | 悬空 |
第五步 | 悬空 | 正 | 负 |
第六步 | 正 | 悬空 | 负 |
当电机转第六步的时候再循环第一步到第六步,这样电机就顺时针转了起来,如果要逆时针旋转,那么就反过来从第六步开始。当然,实际使用的过程中电机转子的初始位置我们是不知道,这里只是一个举例说明六步换向的控制原理。另外电机的速度也不是由换向频率来决定的。因为换向使一个被动的动作,只有转子到达了某一位置我们才可以进行换向来促使转子到达下一个位置,如果想要控制电机转速,就需要控制电流(两相之间的电压),从而控制磁场强度(转子受到的作用力)来控制电机的速度。
3. 机械角度和电角度
机械角度就是电机实际的角度,一圈是360°。而对于电角度的个人理解是一个定子上电压(电流)变化一个周期为360°。电角度=机械角度*P,P为电机极对数。
在六步换向控制电机的过程中,六步换向一个周期经过的电角度是360°,A相的电压如图2-3所示,在一个周期中正电压的持续周期时间是120°,悬空持续的时间是120°,负电压的持续时间是120°。
图2-3
4.转子位置获取
在进行六步换向的过程中,我们需要确定当前转子的位置来对ABC相进行控制。在有感控制中,通过霍尔原件来确定转子的位置,在无感控制中是根据反电动势来判断电机的位置。霍尔传感器在电机中一般有两种安装方式一种是三个传感器间隔120°电角度,一种是三个传感器间隔60°电角度安装。这样安装可以保证在六步换向的一个周期中,每一步对应的传感器编码不一样,我们可以根据传感器的编码来确定转子是否到达位置从而进行换向,三个相隔120°电角度的霍尔传感器在一个周期中的编码如图2-4所示。关于下图的理解:在一个六步换向的周期中,每个相都会经历一个从正电压—>悬空---->负电压—>悬空的一个过程。假设正电压的时候该相上是N极,它吸引转子的一个S极过来,并推走当前的N极,直到S与该相正对上,此时它悬空,然后另外两相通电,将S极转走,S极转走后,该相变为负电压产生S极,将转子的下一个N极吸引过来,此时它再悬空,另外两相通电将N极转走。在这个过程中,它经历了转子一个完整的N极和S极。那么三个霍尔传感器也会经历一个N极和S极。又因为三个传感器相差120°的电角度,所以b传感器的高电平延时a传感器120°,c传感器的高电平延时b传感器120°。因此我们可以看到在一个六步换向周期中,abc组成的编码有6种,我们可以根据编码器的值来判断电机换向的时机。
图2-4
实际上,我们电机厂商会给一个配套的真值表,如图2-5所示。
图2-5
上图的意思是,当霍尔传感器的值是001的时候我们需要A相悬空,C相正电压,B相负电压;随着电机转动,当检测到霍尔传感器的值变为101的时候就需要A相正电压,B相负电压,C相悬空,因此类推进行六步换向。需要注意的是如果电机在六步换向过程中如果保持位置不变的话,此时电路中的电能将只能转换为热能,不能转换为机械能,而我们的电机绕组时候的是漆包铜线,其内阻非常的小,电流就会非常的大,这将会产生大量的热而导致电源或者电机被烧毁。
5.霍尔传感器读取测试
霍尔传感器的读取电路图很简单如图2-6所示,三个上拉电路,GPIO设置为输入模式就可以了, 开发板使用的是STM32F405。
图2-6
例程:方波控制-霍尔信号采集
6.速度开环控制
能够读取到霍尔传感器的数据后,就可以对电机进行六步换向控制了,电机三相控制的逆变电路如图2-7所示。
图2-7
如图所示,导通Q1和Q5,其他都不导通,那么电流将从Q1流经U相再从V相流到Q5,同理导通Q1Q6,Q2Q4,Q2Q6,Q3Q4,Q3Q5来驱动电机,可以通过PWM来控制电机的速度。
6.1 PWM设置
PWM控制的时候总过有5中方式,如图2-8所示:
-
PWM-ON型,在控制过程中,上下桥臂导通的120°电角度内,前60°保持恒通,后60°使用PWM
-
ON-PWM,在控制过程中,上下桥臂导通的120°电角度内,前60°使用PWM,后60°保持恒通
-
H_PWM_L_ON型,在控制过程中,上桥臂使用PWM,下桥臂保持恒通
-
H_ON_L_PWM,在控制过程中,上桥臂保持恒通,下桥臂使用PWM控制
-
H_PWM_L_PWM,在控制过程中,上下桥臂都使用PWM
图 2-8
在实际控制过程中,不同的控制方式效果不同,我们需要尝试多种控制效果,然后选择最佳的一种方式。本次测试PWM使用的频率为20Khz.一般选用16Khz以上,20KHz左右的PWM因为人类能够听到的声音一般是16Khz以下,在16Khz以下的时候人类就会慢慢听到噪声,PWM的频率也不能过高,过高会导致电机转矩降低,另外也要注意满足MOS管的开关频率。
6.2死区时间
在控制过程中,还需要注意不能使上下MOS管同时导通,这样会导致短路。MOS的关闭需要一个时间,因此在进行上下管开关切换的时候,需要一个延时,这个延时就是死区时间。如图2-9所示,是我使用的MOS管的硬件手册。td(on)是开启的延时,tr是电流上升的时间;td(off)是关闭的延时,tf是电流下降的时间。开启总时间为td(on)+tr,关闭的总时间是td(off)+tf,所以死区的最短时间是td(off)+tf-tr-td(on),加上死区时间后MOS管关闭完正好另一个MOS管刚刚开启。实际使用中死区时间通常设置的比计算的多一些。
图2-9
在实际应用中,驱动电路可能还有别的一些芯片,因为单片机的引脚可能不足以驱动MOS管。我使用的板子在MOS管的前一级还带了一个MOS管栅极驱动芯片,其内部自带死区控制电路。其硬件手册如图2-10所示,可以看出其高端开启时间大于低端关闭时间,低端开启时间大于高端关闭时间。开启时间与关闭时间相差了大约85ns,为了保险起见我们也可以在定时器中再设置一个死区时间。
图2-10
例程:方波控制-有感开环控制
源码链接:https://github.com/IJustLoveMyself/MotorControl