有感BLDC电机三相导通相的确定
有感BLDC电机三相导通相的确定
一、反电动势的测量
1、连接虚拟中心点:连接三个相同阻值电阻(300K-600K均可)到电机的三相接线上,电阻另外一端连接到一起即为虚拟中心点。
2、红色线为示波器的通道4,将示波器的一个通道的地夹在构建的虚拟中心点上面,另一端接在U相上面(无法确定UVW三相时,任意接其中一相即可)
二、霍尔传感器状态的测量
1、霍尔电源一般为5V,将霍尔电源线VCC和GND接在对应的电压源上面;(这两根线必须确定,一般为红色和黑色)
2、将霍尔信号线分别定义为Hu(黄色1通道)、Hv(绿色2通道)、Hw(蓝色3通道)。将示波器的三个通道分别夹到对应的信号线上面,地均接到电源GND即可;(不确定哪一个线对应哪个相不影响后续测量和计算)
注:霍尔传感器的输出通常采用的是集电极开路类型,其电压范围一般为4-24V,所需电流范围一般为5-15mA,因此有些时候三根霍尔信号线上面可能需要接上拉电阻到VCC上。示自己所采用的电机而定。
三、U相反电动势与霍尔信号线同步测量
用手旋转电机轴,使其顺时针旋转,或者在电机上面绕线,通过扯线使电机旋转,可以测得反电动势和霍尔信号如下图所示:
放大波形后如下图所示:
如上所述:
黄色1通道→Hu霍尔信号→霍尔a信号→霍尔定时器CH1捕获
绿色2通道→Hv霍尔信号→霍尔b信号→霍尔定时器CH2捕获
蓝色3通道→Hw霍尔信号→霍尔c信号→霍尔定时器CH3捕获
红色4通道→U相反电动势
四、导通相的确定和分析
1、从反电动势和霍尔信号的波形可以按上述原图绘出如下直观图形
2、由于三相电压相差120°,所以从U相电压可以推导出V相和W相电压的波形(无法确定V相和U相的相线也不要紧,确定导通相后,无法正常旋转时,调换两相顺序即可)
3、有感BLDC通常采用上桥PWM下桥直通的方式进行驱动,可依据上述UVW三相波形得出下列大致的三相反电动波形(以下仅为更直观的观测导通相,实际由上述波形图即可得出对应的导通相)
4、根据上图反电动势过零点的位置,可以得出三相分别对应的导通状态如下:
即可得到对应的顺时针选择时驱动相与霍尔信号的对应关系
5、导通相与霍尔信号三相a/b/c的一一对应程序关系如下:
step = get_hall_state();
switch(step)
{
case 3: //V+ U-
Motor_Lacation_CFG_VU();
break;
case 2: //W+ U-
Motor_Lacation_CFG_WU();
break;
case 6: //W+ V-
Motor_Lacation_CFG_WV();
break;
case 4: //U+ V-
Motor_Lacation_CFG_UV();
break;
case 5: //U+ W-
Motor_Lacation_CFG_UW();
break;
case 1: //V+ W-
Motor_Lacation_CFG_VW();
break;
default: //关闭输出
Motor_Lacation_Stop();
break;
}
uint8_t get_hall_state(void)
{
uint8_t state = 0;
if((HALL_TIM_CH1_GPIO->INDR & HALL_TIM_CH1_PIN) != (uint32_t)Bit_RESET) //CH1状态获取----A
{
state |= 0x01U << 2;
}
if((HALL_TIM_CH2_GPIO->INDR & HALL_TIM_CH2_PIN) != (uint32_t)Bit_RESET) //CH2状态获取----B
{
state |= 0x01U << 1;
}
if((HALL_TIM_CH3_GPIO->INDR & HALL_TIM_CH3_PIN) != (uint32_t)Bit_RESET) //CH3状态获取----C
{
state |= 0x01U << 0;
}
return state; // 返回传感器状态
}