问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

无刷直流电机:霍尔传感器的秘密

创作时间:
作者:
@小白创作中心

无刷直流电机:霍尔传感器的秘密

引用
知乎
8
来源
1.
https://zhuanlan.zhihu.com/p/462544779
2.
https://blog.csdn.net/qq_30095921/article/details/125929199
3.
https://blog.csdn.net/2301_80596293/article/details/134394641
4.
https://blog.csdn.net/thekingofmotor/article/details/123050179
5.
https://blog.csdn.net/weixin_43824188/article/details/129562854
6.
https://www.sumzi.com/new201509/alzx_info.aspx?id=10378
7.
https://www.cn-bldc.com/wap/content/?188.html
8.
http://www.szryc.com/?p=4749

无刷直流电机(BLDC)是现代电子设备中常见的动力源,广泛应用于无人机、电动工具、家用电器等领域。其核心优势在于通过电子换相替代传统机械换向,实现高效、低噪音的运行。在这个过程中,霍尔传感器扮演着至关重要的角色,它们能够精确检测电机转子的位置,为控制器提供实时反馈,从而实现精准的电流控制。

01

霍尔传感器原理

霍尔传感器基于霍尔效应工作,当电流通过置于磁场中的导体时,会在垂直于电流和磁场的方向上产生电压差。这种现象被称为霍尔效应。在无刷直流电机中,常用的霍尔传感器是锁存型霍尔传感器,它具有以下特点:

  • 锁存特性:锁存型霍尔传感器在正磁场强度超过BOP(磁场工作点)时开启,在负磁场强度超过BRP(磁场释放点)时关闭。这种特性使得传感器能够锁定状态,避免在弱磁场下频繁切换。

  • 磁滞回差:为了过滤掉机械振动或电磁噪声引起的磁场波动,锁存型霍尔传感器设计有磁滞回差(BHYS),即BOP和BRP之间的差值。这种设计确保了传感器在磁场变化时的稳定性。

02

霍尔传感器在电机中的应用

在无刷直流电机中,通常使用三个锁存型霍尔传感器,以120度的间隔安装在定子上。这种布置方式能够覆盖电机转子的完整旋转周期,提供精确的位置信息。

每个霍尔传感器输出一个二进制信号(0或1),三个传感器的组合状态可以唯一确定转子在60度电角度范围内的位置。这种位置信息对于实现精确的电子换相至关重要。

03

信号处理与控制逻辑

霍尔传感器的信号需要通过微控制器进行处理,以实现电机的精确控制。基本的控制流程包括:

  1. 读取霍尔传感器状态:通过GPIO接口读取三个霍尔传感器的输出电平。

  2. 状态转换判断:根据读取到的霍尔状态,判断转子的当前位置。

  3. 换相控制:根据转子位置,通过PWM信号控制电机绕组的通电顺序。

04

实际应用案例

以下是一个基于STM32微控制器的无刷直流电机控制代码示例,展示了霍尔传感器信号处理和电机控制的具体实现:

// GPIO初始化配置
void TIM1_Gpio(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;  

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB,ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); 

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8| GPIO_Pin_9 | GPIO_Pin_10;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
}  

// 霍尔传感器初始化
void Hall_State_Init(void)
{
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOC, &GPIO_InitStructure);
}  

// 获取霍尔传感器状态
uint16_t Get_Hall_State(void)
{
    uint16_t Hall_A, Hall_B, Hall_C;
    Hall_A = GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_6);
    Hall_B = GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_7);
    Hall_C = GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_8);
    return (Hall_A | (Hall_B << 1) | (Hall_C << 2));
}

// 主控制循环
void Motor_Control_Loop()
{
    uint16_t hall_state = Get_Hall_State();
    switch (hall_state)
    {
        case 0b001: // 位置1
            SetPWMPhaseA(50); // A相50%占空比
            SetPWMPhaseB(0);  // B相关闭
            SetPWMPhaseC(0);  // C相关闭
            break;
        case 0b011: // 位置2
            SetPWMPhaseA(0);
            SetPWMPhaseB(50);
            SetPWMPhaseC(0);
            break;
        // 其他位置状态...
    }
}

在这个示例中,通过读取霍尔传感器的状态,控制器能够准确判断转子位置,并通过PWM信号控制电机绕组的通电顺序,实现精确的换相控制。

05

总结

霍尔传感器在无刷直流电机中的应用,不仅实现了对转子位置的精确检测,还为电机的高效控制提供了可靠的数据支持。通过合理布置霍尔传感器并结合微控制器的信号处理能力,可以实现电机的平稳运行和精确控制。这种技术在现代电机控制中具有广泛的应用前景,特别是在需要高精度、高效率的场合。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号