2. 换相原理入门:BLDC与PMSM的换相逻辑、六步换相法、FOC中的转子位置依赖
换相,说白了就是让电机转起来的关键动作。你给绕组通电,转子就会追着磁场跑。但什么时候通哪一相、通多久,这就是换相要解决的问题。
我刚开始做电机驱动时,总觉得换相不就是按顺序通电嘛。后来在项目里烧了好几个MOS管才明白——换相时机差那么几度,电流波形就完全不一样了。嗯,咱们今天就把这事彻底讲清楚。
2.1 BLDC与PMSM:两种电机的换相差异
很多人以为BLDC和PMSM是两种完全不同的东西。其实从结构上看,它们都是永磁同步电机,转子都是永磁体。区别在哪?
- BLDC(无刷直流电机):反电动势是梯形波,绕组集中绕制。换相逻辑简单粗暴——六步换相法就够了。
- PMSM(永磁同步电机):反电动势是正弦波,绕组分布绕制。换相需要更精细的正弦电流控制,也就是FOC。
我在一个风机项目里试过用六步法驱动PMSM,结果噪音大得客户直接退货。后来换成FOC,电流波形平滑了,噪音也降下来了。所以选哪种换相方式,得看电机本身的反电动势波形。
| 对比项 | BLDC | PMSM |
|---|---|---|
| 反电动势波形 | 梯形波 | 正弦波 |
| 绕组形式 | 集中绕组 | 分布绕组 |
| 推荐换相方式 | 六步换相法 | FOC(磁场定向控制) |
| 转矩脉动 | 较大 | 较小 |
| 噪音表现 | 明显 | 安静 |
2.2 六步换相法:简单粗暴但有效
六步换相法,也叫120°导通法。每次只给两相绕组通电,第三相悬空。每60°电角度换一次相,一个电周期正好六步。
你想想看,转子转一圈,定子磁场跳六下。每一步的合成磁动势方向都不同,转子就被拉着往前跑。
六步换相的逻辑
- 检测转子位置:用霍尔传感器或反电动势过零点检测。
- 查换相表:根据当前转子扇区,决定哪两相通电。
- 输出PWM:上管和下管按顺序导通,产生旋转磁场。
- 等待下一次换相:转子转过60°,重复步骤1。
换相表长这样(以A-B-C相序为例):
| 扇区 | 导通相(上管) | 导通相(下管) | 悬空相 |
|---|---|---|---|
| 0°~60° | A | B | C |
| 60°~120° | A | C | B |
| 120°~180° | B | C | A |
| 180°~240° | B | A | C |
| 240°~300° | C | A | B |
| 300°~360° | C | B | A |
六步换相的代码骨架
// 六步换相状态机
typedef enum {
STEP_1, STEP_2, STEP_3,
STEP_4, STEP_5, STEP_6
} CommutationStep;
CommutationStep currentStep;
void Commutation_Update(uint8_t hallState) {
// 根据霍尔状态映射到换相步骤
switch (hallState) {
case 0b101: currentStep = STEP_1; break;
case 0b100: currentStep = STEP_2; break;
case 0b110: currentStep = STEP_3; break;
case 0b010: currentStep = STEP_4; break;
case 0b011: currentStep = STEP_5; break;
case 0b001: currentStep = STEP_6; break;
default: break;
}
// 根据当前步骤设置PWM输出
SetPWMByStep(currentStep);
}
2.3 FOC中的转子位置依赖:精度决定一切
FOC和六步法最大的区别在哪?六步法只关心转子在哪个扇区(60°分辨率),而FOC需要知道转子精确的电气角度(通常要求0.1°以内)。
为什么会这样?因为FOC要做Park变换和逆Park变换。这两个变换都需要sin(θ)和cos(θ)的值。角度偏差1°,电流矢量就偏1°,转矩输出就损失一点点。角度偏差大了,电流环直接发散。
FOC换相的核心流程
- 采样相电流:Ia、Ib、Ic(通常只采两相,第三相计算得出)。
- Clark变换:把三相电流转到αβ坐标系。
- Park变换:用转子角度θ,把αβ电流转到dq坐标系。
- PI调节:在dq坐标系里控制Id和Iq。
- 逆Park变换:用转子角度θ,把dq电压转回αβ坐标系。
- SVPWM:生成三相PWM信号。
你看,步骤3和步骤5都依赖转子角度θ。这个θ从哪里来?编码器。
核心结论: FOC的换相精度,直接取决于编码器提供的转子位置精度。编码器分辨率不够,FOC性能就上不去。我见过有人用12位编码器跑FOC,电流环带宽死活调不上去,换成14位编码器,问题立刻解决。
角度误差对FOC的影响
| 角度误差 | 对Id/Iq的影响 | 对转矩的影响 |
|---|---|---|
| < 1° | 可忽略 | 几乎无影响 |
| 1°~5° | Id出现耦合分量 | 转矩损失 < 5% |
| 5°~10° | Id/Iq明显耦合 | 转矩损失 5%~15% |
| > 10° | 电流环可能发散 | 电机抖动或失步 |
2.4 换相逻辑与转子位置的关系图
下面这张图展示了六步换相法和FOC在转子位置依赖上的本质区别。
2.5 换相性能的关键指标
不管用哪种换相方式,有几个指标是通用的。我每次调完换相参数,都会先看这几个数据:
- 换相延迟:从检测到位置到执行换相的时间。延迟越小,电流波形越平滑。
- 电流纹波:换相瞬间电流的波动幅度。纹波大说明换相时机或PWM频率有问题。
- 转矩脉动:输出转矩的波动。六步法天生有脉动,FOC可以做到很低。
- 效率:换相逻辑越精确,铜损和铁损越小,效率越高。
2.6 小结
换相原理说白了就两件事:知道转子在哪,然后给正确的相通电。六步法简单可靠,适合BLDC和低成本场景。FOC精度高、性能好,但依赖高分辨率编码器。
我个人习惯是:先搞清楚电机的反电动势波形,再选换相方式。梯形波用六步法,正弦波用FOC。如果项目对噪音和效率要求高,哪怕电机是BLDC,我也会优先考虑FOC。