一、前言。
电机控制一般使用闭环控制,这就必须使用传感器,如:霍尔传感器、编码盘等。
但是有的应用场合下,难以安装霍尔传感器、编码盘,或者就算是安装好,也很容易损坏。
霍尔传感器、编码盘都属于位置传感器。
那么,无位置传感器,是否也能控制电机?
答案是可以的。
二、方案。
方案如下图所示。其中,3Phase Inverter由6个MOS管和MOS管驱动组成。
VBUS测量电机的母线电压,假设电机由直流50V供电,则测量直流50V;由交流220V供电,则测量直流310V。
IBUS测量电机总电流,可用于防过流、电流环控制。
Demand是给定的转速,用滑动电位器模拟转速的输入。
AN3、AN4、AN5引脚,用于测量电机的三相电压。
这样一来,没有了位置传感器,大大简化了设备的安装步骤。但是,会产生另外的一些问题。
电机如何启动?如何换相?如何调速?
三、硬件。
上边和下边MOS管均使用N沟道的6N60,可以耐600V高压。
MOS管驱动使用L6388ED,其内部逻辑可以防止高边和低边MOS管同时导通。有自举电容让高边MOS导通。
在单片机初始化时,要给L6388ED的自举电容充电一段时间,否则高边MOS管可能不导通,或者不完全导通。
L6388ED内部框图如图所示。LIN=1,HIN=0,则LVG导通,HVG不导通,Cboot充电。
L6388ED自举电容的容值可以由手册上的公式计算得出,我这里控制低速电机,用的是10uF。
一旦自举电容充完电手,MOS管可以在一段时间内不需要充电,一般是电机每次启动时充电。
建议使用15V给L6388ED供电,使用12V的话,可能让MOS不导通或不完全导通,如下图所示。
测量三相电压,如下图所示,NET_W是W相的电压,而W可以直接接单片机的ADC,C11为100nF电容,该电容可以平滑相电压,不能去掉,否则无法检测反电动势。U相和V相与此类似,这里不再赘述。
平滑之后的波形,呈马鞍型,如下图所示。
四、单片机算法。
该方案硬件是简单了,但是算法复杂。
该算法分三个部分,对齐转子、开环强制换相、利用反电动势闭环换相。
4.1 对齐转子。
先给自举电容充电,然后强制给某一相PWM,让转子对齐在一个固定的扇区。
这种方法在绝大多数的情况下都能对齐,若不能对齐,会启动失败,此时,重新启动即可。
对齐转子的时间不宜过长,针对本文的低速电机,对齐时间约200ms。
4.2 开环强制换相。
这里的开环是指未检测到反电动势,强制输出PWM,并且在预算好的时间换相,从而让电机转起来。
换相的方法,不同的电机可能不一样(如:极数不同),这里使用六步换相,如下图所示。
其中,+VBUS表示上桥臂给PWM,-VBUS表示下桥臂给高电平导通,斜线表示上、下桥臂均不导通。
上、下桥臂均不导通时,电机会产生反电动势。
4.3 利用反电动势闭环换相。
理想情况下,上、下桥臂均不导通时,在电机某一相电压检测到反电动势过零,但是过零时刻和实际要换相的时刻,相差30度角。所以,在检测到反电动势过零之后,要延时30度,再换相。
实际情况下,延时的30度还要根据单片机内部的ADC采样,滤波算法进行补偿,这里的补偿的角度一般是超前的。
假设超前x度,那么实际换相时刻为(30-x)度。
BEMF就是反电动势,红色箭头指向的是换相时刻,如下图所示。
但是,ADC采样的电压都是正电压,没有负,那就需要构造一个虚拟中性点。
把三相电压加起来取平均值,就是虚拟中性点。如下图所示。
把虚拟中性点当作是零点,这样就能做到过零检测。
虚拟中性点并不是一个恒定值,它的波形如下图所示,类似正弦波。
检测反电动势过零,有两种方法,一种是比较器,另一种是ADC采样后滤波。
用比较器的方法,优点是减少单片机的运算量,缺点是增加硬件成本。
用ADC采样的方法,优点是减少硬件成本,缺点是增加单片机的运算量。
由于这里需要用到的ADC采样率要求不高(20KHz SPS),所以用单片机内部集成的ADC即可。
这里采用ADC采样的方法。其滤波算法称为择多算法,在另一篇博文再详细介绍。
五、注意事项。
1、ADC要在PWM高电平的中部采样,可以避免毛刺的干扰。
2、六步换相的步调必须正确,否则无法检测反电动势。
六步换相有问题,可能不出现红圈中的竖线,也可能不出现蓝圈中的反电动势。
反电动势有问题,电机无法加速。
3、可以使用互补的PWM,也可以使用上桥臂为PWM,下桥臂为高低电平。
4、换相的波形如下图所示。
5、黄色为经过比较器后的波形(非本文使用的方法),蓝色为经过电阻分压和电容滤波后的波形。如下图所示。
经过比较器后的波形会产生三条竖线,这三条竖线是由于换相引起的,所以在换相时,不判断过零。
在不换相时,去抖,判断边沿翻转即是过零点,此方法比ADC滤波要简单一些。
6、换相时刻不正确的波形,如下图所示。
六、参考文献。
《使用反电动势滤波进行无传感器BLDC控制》
《用择多函数实现反电动势滤波的无传感器BLDC控制》
《AN1160》——MicroChip官方手册及源代码
dsPICDEM MCLV-2开发板资料——含硬件原理图
L6388ED数据手册