3、六步换向法:基于霍尔信号的换向逻辑、导通时序、120°与60°相位区别
好,咱们今天聊点实在的。六步换向法,说白了就是让无刷电机转起来的最经典套路。你想想看,电机里面三个线圈,谁先通电、谁后通电、什么时候断电,这都得有个规矩。霍尔传感器就是那个报信的,告诉我们转子现在转到哪了。
我个人习惯把六步换向法叫做“三板斧”——每转一圈,砍六下。每一下对应一个换向状态。霍尔信号一变,我就知道该换下一斧了。
3.1 霍尔信号的换向逻辑
先说说霍尔传感器怎么工作的。三个霍尔元件,装在电机定子上,相隔120°或60°电角度。转子上的磁钢转过去,霍尔就输出高或低电平。三个霍尔拼在一起,就是一个3位的二进制数。
嗯,这里要注意:霍尔信号不是连续的,它是离散的。每60°电角度变化一次。所以一圈360°,正好6个状态。
核心逻辑:霍尔信号 → 解码 → 确定转子位置 → 选择导通相
我在项目中遇到过一个问题:霍尔信号有毛刺,导致换向乱跳。后来加了软件滤波,每次检测到变化后延迟几十微秒再确认,问题就解决了。
3.2 导通时序详解
六步换向,每一步只导通两相。一相进电流,一相出电流,第三相悬空。这叫“两两导通”方式。
举个例子,假设我们用的是120°相位的霍尔安装方式。霍尔信号从101变到100时,对应的导通相就要切换。
| 霍尔信号 (H3 H2 H1) | 导通相 (正极→负极) | 转子位置 (电角度) |
|---|---|---|
| 101 | A+ → B- | 0° ~ 60° |
| 100 | A+ → C- | 60° ~ 120° |
| 110 | B+ → C- | 120° ~ 180° |
| 010 | B+ → A- | 180° ~ 240° |
| 011 | C+ → A- | 240° ~ 300° |
| 001 | C+ → B- | 300° ~ 360° |
你看这个表,是不是很规整?每个状态持续60°,然后跳到下一个。这就是六步换向的“步”。
我曾经调试一个风机项目,发现电机在低速时抖动厉害。查了半天,原来是换向时序和霍尔信号没对齐。说白了,就是霍尔安装位置有偏差,导致换向点提前或滞后了。
3.3 120°与60°相位区别
这个问题,很多初学者搞混。我简单说一下。
120°相位:三个霍尔传感器在空间上相隔120°电角度。这是最常见的安装方式。霍尔信号的变化顺序是:101 → 100 → 110 → 010 → 011 → 001。每个状态之间跳变一位。
60°相位:三个霍尔传感器在空间上相隔60°电角度。信号变化顺序是:101 → 001 → 011 → 010 → 110 → 100。每个状态之间可能跳变两位。
我的经验:120°相位更容易做软件解码,因为每次只变一位,不容易出错。60°相位虽然也能用,但抗干扰能力稍差。我建议新手先用120°。
你想想看,为什么会有这两种区别?其实是因为霍尔元件的安装位置不同。有些电机厂家为了节省成本,把霍尔装在PCB板的一侧,自然就成了60°。但说实话,从控制算法角度看,两者本质是一样的——都是6个状态,只是映射关系不同。
3.4 代码实现示例
下面给一段简单的换向逻辑代码。我用的是C语言风格,实际项目中可以根据你的MCU调整。
// 霍尔信号到导通相的映射表 (120°相位)
const uint8_t commutation_table[8] = {
0, // 000 - 无效状态
0b001001, // 001 - C+ B-
0b000110, // 010 - B+ A-
0b010010, // 011 - C+ A-
0b100100, // 100 - A+ C-
0b011000, // 101 - A+ B-
0b000000, // 110 - B+ C-
0 // 111 - 无效状态
};
void six_step_commutation(uint8_t hall_value) {
uint8_t phase_pattern = commutation_table[hall_value];
if (phase_pattern == 0) {
// 无效霍尔状态,保持当前导通或停机
return;
}
// 写入PWM寄存器,控制MOSFET导通
write_pwm(phase_pattern);
}
注意:霍尔信号为000或111时,属于无效状态。这通常发生在电机静止或霍尔损坏时。我建议在代码里加一个超时保护,如果长时间检测到无效状态,就关闭所有MOSFET,防止烧管子。
3.5 实际调试中的避坑指南
我曾经在一个无人机项目中吃过亏。电机转起来嗡嗡响,效率还低。查了两天,发现是霍尔信号线太长,受到了PWM高频干扰。
解决办法其实很简单:
- 霍尔信号线用双绞线,远离功率线
- 在MCU引脚上加RC滤波,R=1kΩ,C=10nF
- 软件里做去抖,连续采样3次一致才确认
还有一个坑:霍尔传感器的供电电压。有些霍尔是5V的,有些是3.3V的。如果你的MCU是3.3V,霍尔输出5V,那就得加电平转换。我见过有人直接连,结果MCU引脚烧了。
3.6 小结
六步换向法,说白了就是跟着霍尔信号走。信号变,我就换。120°和60°的区别,只是映射表不同,核心逻辑一样。
嗯,最后说一句:霍尔传感器虽然好用,但也不是万能的。高温、振动、磁场干扰都会影响它。如果你要做高可靠性产品,建议加上无传感器备份控制。这个我们后面章节会讲。
记住:六步换向是基础,但真正让电机跑得顺,还得靠电流环和速度环的配合。别急,一步步来。