有感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; // 返回传感器状态

}

posted @ 2024-06-12 17:32  WCH_CH32  阅读(184)  评论(0编辑  收藏  举报