BLDC无感无刷直流电机的技术总结
目录
一、直流电机“有刷”和“无刷”的区别
二、无刷直流电机“有感”和“无感”的区别
三、反电动势硬件比较法
四、无感无刷直流电机的驱动方法
五、参考地址
一、直流电机“有刷”和“无刷”的区别
“有刷”是电机里存在“碳刷”这么一个东西来辅助绕组换向后的转动,但在转子绕组运行的过程中其实也是碳刷不断消耗的一个过程(换向瞬间产生的电火花也会加速其损耗)。
“无刷”不存在“碳刷”这个零部件,也就不存在损耗一说,但它也是需要换向的,只是变成了使用电子元件进行换向,使用寿命上无刷电机自然也要更长,这是无刷电机的优点之一。
无刷与有刷最主要的区别便是换向的方式不同。
电机为什么需要换向?电机需要不断地进行换向才能产生驱动力,驱动转子运转。以无刷为例,无刷电机的定子为线圈绕组,转子为永磁体,示意如下图,当线圈通电时会产生磁力吸引永磁体运转,如此,不停的切换导通绕组,永磁体便可以一直运转下去。由此产生了“六步换向”控制理论,在任意时刻三相无刷电机只有两相通电,另一相开路,三相两两通电,共有六种组合,以一定的顺序每60°变化一次,这样产生旋转的磁场,拉动永磁体转子随之转动。这里的60°指的是电气角度,一个电周期可能并不对应于一个完整的转子机械转动周期。
二、无刷直流电机“有感”和“无感”的区别
无刷电机的换向需要操纵不同电子开关管的打开或关闭,无刷电机内部有三组线圈A B C,排列组合导通有六种状态(A+B-、A+C-、B+C-、B+A-、C+A、C+B-),在某一段时间内只导通其中的两组线圈,何时导通其中两相绕组线圈呢?
“有感”是无刷电机内部集成了霍尔传感器,当转子在电机不同位置时,霍尔传感器输出对应的位置信号,控制电路接收到转子当前位置,进而控制打开关闭不同的电子开关管给定子线圈通电从而产生磁力吸引转子永磁体向下一位置转动。
“无感”即是无刷电机内部没有集成传感器,采用了其它方式来检测转子位置。常用的为“反电动势法”,反电动势比较法又分为“硬件比较”和“软件比较”,其中软件比较法相对耗费单片机资源,程序相对较复杂,且对检测时刻要求比较严格,硬件比较法不需要复杂的程序,只关注硬件比较后的果进行换向即可,但会增加硬件成本。
三、反电动势硬件比较法
首先需要知道两个概念,什么是“相电压”和“端电压”。
如下图,Uao、Ubo、Uco为三相端电压,即各外露绕组一端相对于零电势参考点的电压。
如下图,UaN、UbN、UcN为三相相电压,即各绕组的相电压。
由于转子旋转的时候会在定子绕组中产生感应电势,该感应电势的方向与绕组的通电电压相反,所以称作反电动势。如下图为无刷电机运转过程,未通电相绕组相电压的变化(以电机绕组共同连接点为电压基准点)。在每两相绕组通电的时间段内,都对应一个未通电绕组反电动势极性改变的点,即反电动势从正变化为负或者从负变化为正的点,称为过零点。利用反电动势的这个特性,只要我们能够准确检测出反电动势的过零点,将其延迟30°,即为需要换向的时刻。
第一个问题,如何准确检测出“过零点”?
只需比较未通电相电压与中心点的电压即可,但由于电机绕组的共同连接点在电机内部,无法测量,所以需要重构虚拟中心点。如图,N1即为重构的电机虚拟中心点。经过重构后,只需未通电相端电压与虚拟中心电压比较即可。
下图,A,B,C为三相绕组的电压,EMF_A,EMF_B,EMF_C,分别为ABC三相分压后的电压,EMF为虚拟出来的中点电压,经过比较器LM239比较后,ZERO_A,ZERO_B,ZERO_C分别为三相与中心点比较后的结果。
经过比较后,形成如下表格,根据ZERO_A,ZERO_B,ZERO_C的状态进行查表,符合表中数据,再延迟30°后再进行换向。
第二个问题,如何准确延迟30电角度?
一般认为转子转速在这 0°~60°的小范围区间内是恒定的,如从 AB相开始通电到检测出C相过零的前半段时间等于后半段的时间,只要记录下前半段的时间 T1(当换向开始时就打开定时器进行计时),等过零事件出现后再等待相同的时间,就可以换向了。
四、无感无刷直流电机的驱动方法
前面说了电机的换向方法,但是需要先以一定速度转起来后才能稳定检测到反电动势,接下来就是另一个难点,如何让电机启动起来。有三步走策略,1.转子预定位 2.起步加速 3.稳定运行。
转子预定位:先以一定占空比给任意两相绕组通电,这样通电线圈产生的磁力就会把转子吸引到该位置。
void bldc_pre_locate(void)
{
W_U(15);
Delay_ms(60);
W_V(15);
Delay_ms(60);
BLDC_BRAKE();
bldc_next_location = UV;
}
起步加速:六步换向方法,按照A+B-、A+C-、B+C-、B+A-、C+A、C+B-或反之,升频升压的方式进行逐步加速,加速的过程中电机运行噪音会稍大,有一个秘诀,想要起步震动变小,这个固定延时换向需要一点点调试,直到找到当前占空比的最佳运行状态。
void bldc_speedup(void)
{
static u16 i = 0;
for(i=0; i < 20; i++)
{
bldc_step_change(45);
Delay_us(640);
}
for(i=0; i < 20; i++)
{
bldc_step_change(60);
Delay_us(480);
}
for(i=0; i < 20; i++)
{
bldc_step_change(75);
Delay_us(400);
}
for(i=0; i < 20; i++)
{
bldc_step_change(90);
if(i < 19)
Delay_us(330);
}
delay_time = 0; //延迟时间清零
zero_find = 0; //过零点标志清零
count_flag = 1; //加速完成,开始计时从换相完到检测到过零点的时间段
}
稳定运行:当加速最后一次换向完成后就可以进行过零检测了,按照检测到过零点后延时30°再进行换向的方法就能进入稳定运行状态,此时可以随意调整占空比调速了。
void bldc_run(u8 duty)
{
if(count_flag&&(delay_time>=20))//刚换向后有干扰,延时后再检测过零
{
zero_find = bldc_zero_detect();
if(zero_find)
count_flag = 0;//找到过零点停止计时
}
if(zero_find&&!delay_time)//找到过零点后延时30电角度后执行换相
{
zero_find = 0;
bldc_step_change(duty);
count_flag = 1;//换相完成后继续开始检测过零
}
}
五、参考地址
反电动势法控制BLDC电机的原理图分析
无刷无霍尔BLCD电机控制_无霍尔无刷电机怎么控制的-CSDN博客
展示不同控制方式下的端电压、相电压与线电压的波形是什么样的-电子发烧友网
【零基础玩转BLDC系列】基于反电动势过零检测法的无刷直流电机控制原理_无刷电机反电动势检测电路-CSDN博客
【零基础玩转BLDC系列】无刷直流电机无位置传感器三段式启动法详细介绍及代码分享_无感bldc算法-CSDN博客《电机的原理》第三期:无刷电机是如何工作的?_哔哩哔哩_bilibili【超详细讲解】设计无刷电机电路原理_哔哩哔哩_bilibili
BLDC反电势过零检测计算-CSDN博客
作者:JerryVVang