3、换相原理:电机换相的基本概念、霍尔传感器换相、无传感器换相

换相,说白了就是让电机转子一直转下去的关键动作。你想想看,直流无刷电机如果没有换相,转子转到某个位置就卡住了,根本转不起来。我刚开始接触伺服系统时,总觉得换相不就是按顺序通电嘛,后来踩过坑才明白——换相的时机、精度、鲁棒性,直接决定了伺服系统的性能上限。

3.1 换相的基本概念

什么是换相?简单说,就是根据转子位置,切换定子绕组的通电顺序,使定子磁场始终超前转子磁场一个角度,从而产生持续的转矩。

对于三相无刷直流电机(BLDC),标准的六步换相法是这样的:

  • 每个电周期分为6个扇区,每个扇区60°电气角度
  • 每个扇区内,两相导通,一相悬空
  • 每60°切换一次通电组合

核心公式:换相频率 = (电机转速 × 极对数) / 60 × 6

举个例子:一台4对极的电机,转速3000 RPM,换相频率 = (3000 × 4) / 60 × 6 = 1200 Hz。也就是说,每秒钟要换相1200次。

换相的核心要素有三个:

  1. 位置检测——知道转子当前在哪个扇区
  2. 换相逻辑——根据位置决定下一组导通相
  3. 换相执行——PWM输出切换,电流换向

我在项目中遇到过一个问题:换相逻辑写对了,但电机低速时抖动严重。后来发现是位置检测的精度不够,换相点偏移了。嗯,这里要注意——换相不是越快越好,而是要准。

3.2 霍尔传感器换相

霍尔传感器换相,是最经典、最可靠的方式。三个霍尔元件间隔120°安装,输出三路高低电平信号,组合起来就是6种状态,正好对应6个扇区。

霍尔状态 (Ha:Hb:Hc) 对应扇区 导通相 (正极:负极)
101 扇区1 (0°~60°) A+:B-
100 扇区2 (60°~120°) A+:C-
110 扇区3 (120°~180°) B+:C-
010 扇区4 (180°~240°) B+:A-
011 扇区5 (240°~300°) C+:A-
001 扇区6 (300°~360°) C+:B-

个人经验:霍尔安装时,一定要做一次"霍尔校准"。我习惯的做法是:手动转动转子到某个已知位置,读取霍尔值,然后建立霍尔状态与电气角度的映射表。很多新手直接套用标准表,结果电机反转或者换相错乱——其实就是霍尔安装角度有偏差。

霍尔换相的优点很明显:

  • 启动可靠,零速也能检测位置
  • 算法简单,MCU资源占用少
  • 抗干扰能力强

缺点也有:

  • 需要额外安装霍尔传感器,增加成本和体积
  • 霍尔元件有温度漂移,高温下精度下降
  • 安装精度要求高,否则换相点偏移

避坑指南:我曾经在一个项目中,霍尔信号线走线过长,没有做滤波处理。结果电机高速运行时,霍尔信号上叠加了严重的共模干扰,导致换相错乱,电机直接"飞车"。后来在霍尔信号线上加了RC低通滤波(1kΩ + 10nF),问题解决。

3.3 无传感器换相

无传感器换相,说白了就是不用霍尔,通过检测电机的反电动势(BEMF)来推算转子位置。为什么需要这个技术?因为有些场合装不了霍尔——比如压缩机内部是密封的,或者电机尺寸太小装不下传感器。

无传感器换相的核心原理:

  • 电机旋转时,未通电的那一相会产生反电动势
  • 反电动势的过零点,正好对应换相点
  • 检测到过零点后,延迟30°电气角度,执行换相

具体实现方式有三种:

方法 原理 适用场景
端电压检测法 检测悬空相端电压与中性点电压的比较 中高速运行,需要中性点引出
虚拟中性点法 用三个电阻构建虚拟中性点 最常用,不需要引出中性点
相电压比较法 直接比较三相端电压 低成本方案,精度较低

关键点:无传感器换相最大的挑战是启动。零速时没有反电动势,无法检测位置。我常用的启动策略是"三段式启动":

  1. 预定位——给任意两相通电,把转子拉到已知位置
  2. 开环加速——按固定换相频率加速,直到反电动势足够大
  3. 切换闭环——检测到稳定的过零点后,切换到反电动势换相

无传感器换相的代码实现,核心是过零点检测。我贴一段伪代码,你感受一下:

// 无传感器换相 - 过零点检测
// 假设当前导通相为 A+, B-,C相悬空

void bemf_zero_cross_detect(void) {
    // 1. 采样C相端电压
    uint16_t v_c = adc_read(CHANNEL_C);
    
    // 2. 获取虚拟中性点电压
    uint16_t v_n = (v_a + v_b + v_c) / 3;
    
    // 3. 比较过零点
    if (v_c > v_n && last_v_c <= last_v_n) {
        // 上升沿过零点
        zero_cross_flag = 1;
        zero_cross_timer = 0;
    }
    
    // 4. 延迟30°后换相
    if (zero_cross_flag) {
        zero_cross_timer++;
        if (zero_cross_timer >= DELAY_30_DEG) {
            commutation_next();
            zero_cross_flag = 0;
        }
    }
    
    // 保存上次采样值
    last_v_c = v_c;
    last_v_n = v_n;
}

我建议:无传感器换相的延迟30°角度,不要用固定延时。因为转速变化时,30°对应的时间是变化的。我习惯用定时器捕获过零点,然后根据当前转速动态计算延迟时间。这样在加减速过程中,换相点才准确。

无传感器换相的优缺点:

  • 优点:无需传感器,成本低,可靠性高(没有传感器故障)
  • 缺点:启动复杂,低速性能差,负载突变时容易失步

避坑指南:我曾经在一个风机项目中,无传感器换相在高速时一切正常,但低速(低于500 RPM)时频繁失步。排查了很久,发现是PWM占空比太低时,反电动势信号被PWM开关噪声淹没了。解决方案是:在低速段采用"PWM关断期间采样"的策略,避开开关噪声。

3.4 霍尔换相 vs 无传感器换相

两种方案没有绝对的好坏,只有适合不适合。我整理了一个对比表:

对比项 霍尔换相 无传感器换相
启动性能 优秀,零速可换相 较差,需要三段式启动
低速性能 优秀 较差,低于500 RPM不稳定
高速性能 良好,受限于霍尔响应速度 优秀,反电动势信号强
成本 较高(传感器+线束) 低(仅需电阻分压)
可靠性 传感器可能故障 无传感器,可靠性高
算法复杂度 低 高

我个人习惯是:如果空间允许、成本不敏感,优先用霍尔换相——省心、可靠。只有在霍尔装不了或者成本压力大的时候,才上无传感器方案。你想想看,一个伺服系统如果连启动都抖,客户能接受吗?

换相原理知识体系 电机换相 换相基本概念 霍尔传感器换相 无传感器换相 六步换相法 换相频率 三路霍尔信号 6种状态映射 反电动势检测 过零点检测 三段式启动 30°延迟换相 核心原则:换相精度决定伺服性能 霍尔换相适合低速高可靠性场景,无传感器换相适合高速低成本场景

嗯,这一章的内容就到这里。换相原理是伺服系统的基础,理解了它,后面讲编码器换相时你才能明白——为什么编码器比霍尔更精准,为什么无传感器方案在某些场景下还是不如带编码器的方案。