换相原理:BLDC与PMSM的六步换相与FOC换相逻辑
聊到电机控制,换相是个绕不开的话题。说白了,换相就是告诉电机定子线圈,什么时候该通电,什么时候该断电,电流该往哪个方向流。你想想看,如果换相搞错了,电机要么抖得像筛子,要么干脆不转。
我刚开始做电机驱动那会儿,就吃过换相时序的亏。板子焊好,程序烧进去,电机嗡嗡响就是不转。查了两天,最后发现是霍尔信号接反了。嗯,从那以后,我对换相逻辑就格外上心。
BLDC与PMSM的本质区别
先搞清楚一个基本问题:BLDC和PMSM到底有啥不同?
| 对比项 | BLDC(无刷直流电机) | PMSM(永磁同步电机) |
|---|---|---|
| 反电动势波形 | 梯形波 | 正弦波 |
| 绕组方式 | 集中绕组 | 分布绕组 |
| 转矩脉动 | 较大(约15%) | 较小(约5%) |
| 控制方式 | 六步换相为主 | FOC为主 |
| 适用场景 | 风机、水泵、电动工具 | 伺服、机器人、电动汽车 |
其实从控制角度看,BLDC和PMSM的物理模型是一样的,都是永磁同步电机。区别在于绕组的分布方式导致了反电动势波形不同。我个人的习惯是:如果项目对噪音和转矩平稳性要求高,直接上PMSM+FOC;如果成本敏感、对噪音不太在意,BLDC+六步换相就够了。
六步换相逻辑
六步换相,也叫梯形换相。名字很直白,就是在一个电周期内,换六次相,每次换相改变两个功率管的导通状态。
拿一个三相全桥逆变器来说,六个MOS管分成上三路和下三路。六步换相的核心规则是:任何时候只有两个管子导通,一个上管,一个下管。第三个管子处于关断状态,用来检测反电动势过零点。
六步换相的关键点:
- 每60°电角度换相一次
- 每次换相改变一个上管和一个下管
- 非导通相用于检测反电动势过零(无传感器模式)
- 导通顺序决定电机旋转方向
六步换相的导通顺序表是这样的(以正转为例):
| 步数 | 导通相 | 上管 | 下管 | 电流方向 |
|---|---|---|---|---|
| 1 | A-B | Q1 | Q4 | A→B |
| 2 | A-C | Q1 | Q6 | A→C |
| 3 | B-C | Q3 | Q6 | B→C |
| 4 | B-A | Q3 | Q2 | B→A |
| 5 | C-A | Q5 | Q2 | C→A |
| 6 | C-B | Q5 | Q4 | C→B |
我曾经在一个项目中,把换相表搞反了,结果电机反转。当时没注意,直接装到设备上,差点把机械结构打坏。所以,换相顺序一定要先空载验证,确认方向对了再带载。
FOC换相逻辑
FOC(磁场定向控制)和六步换相完全是两码事。六步换相是"开环换相",FOC是"矢量换相"。说白了,FOC把三相电流分解成两个正交分量:直轴电流Id和交轴电流Iq。
Id控制磁场,Iq控制转矩。通过控制这两个分量,就能实现像直流电机一样平滑的转矩控制。
我的经验:FOC的换相不是"换",而是"算"。每次PWM周期(通常10kHz-20kHz),MCU都要重新计算三相电压的占空比。这个计算量比六步换相大得多,所以对MCU的算力要求高。
FOC换相的核心流程:
- 采集两相电流(Ia, Ib),第三相通过基尔霍夫定律算出
- Clark变换:将Ia, Ib变换到αβ坐标系
- Park变换:将αβ坐标系变换到dq旋转坐标系
- PI调节:分别对Id和Iq进行闭环控制
- 逆Park变换:将dq电压变换回αβ坐标系
- SVPWM:生成三相占空比,驱动逆变器
你想想看,这一套流程跑下来,每个PWM周期都要完成。所以FOC对MCU的实时性要求很高。我建议至少用Cortex-M4以上的内核,带FPU的更好。
霍尔传感器换相
霍尔传感器是最直接的换相方案。三个霍尔元件安装在定子上,间隔120°或60°电角度。转子磁钢经过时,霍尔输出高低电平,三个霍尔组合出6种状态,正好对应六步换相的6个扇区。
霍尔换相的优点很明显:
- 启动可靠,零速就能检测位置
- 算法简单,中断里查表就行
- 抗干扰能力强
缺点也有:
- 需要额外安装霍尔传感器,增加成本
- 霍尔安装位置有精度要求,装偏了换相就不准
- 高温环境下霍尔可能失效
注意:霍尔传感器的安装角度误差直接影响换相精度。我曾经遇到过霍尔安装偏差5°的情况,结果电机在高速运行时噪音很大,转矩也上不去。后来用示波器抓霍尔信号,发现换相点偏移了,重新调整安装位置才解决。
无传感器换相
无传感器换相,说白了就是不用霍尔,靠检测电机的电气量来推算转子位置。最常用的方法是反电动势过零检测法。
原理很简单:在六步换相中,非导通相的那一相绕组上,会感应出转子的反电动势。当反电动势过零时,就是换相的最佳时机。
具体做法:
- 在PWM的"关断时间"内,采样非导通相的端电压
- 与母线电压的一半(虚拟中点)比较
- 检测到过零信号后,延迟30°电角度执行换相
无传感器换相的难点在于:
- 启动问题:零速时没有反电动势,无法检测位置。需要先"预定位"或"开环强拖"
- 低速问题:反电动势信号太弱,信噪比低
- 负载突变:反电动势波形会畸变,影响过零检测精度
我的建议:如果项目要求低成本、对低速性能要求不高,无传感器方案是首选。但如果需要零速带载启动、或者低速平稳运行,还是老老实实加霍尔吧。我在做电动工具项目时,试过无传感器方案,低速启动时总是抖,最后加了霍尔才搞定。
六步换相与FOC的对比
| 对比项 | 六步换相 | FOC |
|---|---|---|
| 转矩脉动 | 大 | 小 |
| 噪音 | 大 | 小 |
| 效率 | 中等 | 高 |
| 动态响应 | 慢 | 快 |
| MCU算力要求 | 低 | 高 |
| 代码复杂度 | 简单 | 复杂 |
| 适用速度范围 | 中低速 | 全速域 |
我个人觉得,选哪种方案,关键看项目需求。如果只是做个风扇、水泵,六步换相完全够用,成本低、开发快。但如果是做伺服驱动器、机器人关节,FOC是必须的,转矩平稳性和动态响应不是一个量级。
这张图是我自己总结的选型流程。每次做新项目,我都会先问自己:转矩平稳性到底要不要?如果答案是"要",直接走FOC路线;如果"不要",六步换相就够。然后再根据启动要求决定加不加霍尔。
嗯,换相原理这块内容不少,但核心就两点:六步换相是"开关式"换相,FOC是"矢量式"换相。搞清楚了这两者的本质区别,后面的位置环设计就好办了。