3. 反电动势法原理
反电动势法,说白了就是利用电机自己产生的电压信号来猜转速。我刚开始接触无传感器控制时,觉得这方法挺神奇的——电机不装传感器,居然还能知道自己转多快?后来做多了项目才发现,原理其实很朴素,但坑也不少。
3.1 反电动势与转速的关系
先说说反电动势是什么。电机转动时,转子上的永磁体切割定子绕组,会在绕组里感应出一个电压。这个电压跟外加的驱动电压方向相反,所以叫“反电动势”。
反电动势的大小,跟转速成正比。公式很简单:
E = Ke × ω
其中:
- E 是反电动势(单位:V)
- Ke 是电机反电动势常数(单位:V/(rad/s))
- ω 是转子角速度(单位:rad/s)
这个关系是线性的。转速翻倍,反电动势也翻倍。我在做一款风机项目时,就靠这个关系来估算转速。当时电机参数表上给了Ke值,我直接套公式算,结果发现低速时偏差很大。嗯,这里要注意——Ke值在低速时因为磁路非线性,会有变化。
反电动势的波形,跟电机绕组的连接方式有关。对于常见的三相星形连接,反电动势是正弦波或梯形波,取决于电机设计。我习惯用示波器先抓一下波形,确认类型后再选估算方法。
核心关系总结:反电动势幅值 = 转速 × 电机常数。这是无传感器速度估算的物理基础。
3.2 反电动势检测方法
检测反电动势,最直接的方法就是测量电机端电压。但有个问题——电机工作时,端电压里既有驱动电压,又有反电动势,两者混在一起。怎么把反电动势单独拎出来?
常用的方法有三种:
- 端电压检测法:在PWM关断期间采样。因为PWM关断时,驱动电压为零,端电压就是反电动势。我早期做BLDC控制时就用这方法,简单粗暴,但需要精确的采样时序。
- 相电压差检测法:测量两相之间的电压差,再减去已知的驱动电压分量。这方法对ADC精度要求高,我曾在一次伺服项目中吃过亏——ADC噪声太大,算出来的反电动势全是毛刺。
- 虚拟中性点法:构造一个虚拟的中性点,测量各相与虚拟中性点之间的电压。这方法能抑制共模干扰,但需要额外的电阻网络。
我个人比较推荐端电压检测法,尤其是在成本敏感的项目里。你看,只需要一个分压电阻和ADC通道,硬件成本几乎为零。但要注意采样窗口——PWM关断时间太短的话,采样会不准确。
下面这张图展示了反电动势检测的典型流程:
我的经验:采样时序是反电动势检测的关键。我曾经在一个项目中,PWM频率设到20kHz,关断时间只有几微秒。ADC根本来不及稳定。后来我把采样窗口提前到PWM关断后的中间时刻,才拿到干净的数据。
3.3 反电动势法的局限性
反电动势法虽然简单,但局限性也很明显。我做了这么多年电机控制,踩过的坑可以列一长串。
第一个问题:低速性能差。 转速越低,反电动势越小。当转速降到一定程度,反电动势信号就淹没在噪声里了。你想想看,一个10mV的信号,ADC的量化噪声都不止这个数。所以反电动势法通常只能用于中高速段,低速段需要其他方法辅助。
第二个问题:启动困难。 电机静止时,反电动势为零。怎么估算转速?没法估。所以反电动势法不能独立完成启动,需要配合开环启动或高频注入法。我记得有一次做压缩机项目,客户要求零速启动,我试了各种反电动势法都不行,最后还是加了高频注入才搞定。
第三个问题:负载突变时响应慢。 反电动势法本质上是开环估算,没有反馈校正。负载突然变化时,转速会波动,但反电动势的估算值跟不上。我建议在要求动态响应的场合,配合观测器使用。
下面这个表格总结了反电动势法的主要局限:
| 局限性 | 原因 | 影响 | 应对措施 |
|---|---|---|---|
| 低速性能差 | 反电动势幅值太小 | 信噪比低,估算不准 | 结合高频注入法 |
| 无法零速启动 | 静止时反电动势为零 | 需要开环启动 | 三段式启动或预定位 |
| 动态响应慢 | 开环估算无反馈 | 负载突变时转速波动大 | 加入状态观测器 |
| 对电机参数敏感 | Ke值随温度变化 | 估算误差随温度漂移 | 在线参数辨识 |
避坑指南:我曾经在一个项目中,忽略了温度对Ke值的影响。电机跑热后,反电动势估算的转速越来越偏,最后系统直接失稳。从那以后,我每次做反电动势法都会加温度补偿,或者用在线辨识实时更新Ke值。
还有一个容易被忽视的问题——PWM开关噪声。电机驱动时,PWM开关会产生大量的高频噪声,这些噪声会耦合到反电动势检测回路里。我建议在ADC前端加一个低通滤波器,截止频率设在开关频率的1/10左右。当然,滤波器会引入相位延迟,需要做补偿。
总的来说,反电动势法适合中高速、稳态运行的应用。如果你做的是风机、水泵这类负载变化不大的项目,反电动势法完全够用。但如果是伺服、机器人这类需要低速大扭矩的场合,我建议你考虑其他方法,或者把反电动势法作为辅助手段。
嗯,反电动势法就讲到这里。记住它的核心优势是简单、成本低,但别指望它解决所有问题。
公众号:蓝海资料掘金营,微信deep3321