无刷电机调速控制是电机控制的基本要求。
常见的控制方式无外乎几种:
电位器(AD)调速、PWM 调速、分段速度调速(或给定速度调速)。
一本经典的书籍,推荐学习
文末扫码进群获取
最近在调高速无刷电机无级调速时遇到一些问题,结合自己近 20 年的电机驱动开发经验,分享一些问题和心得。
我最近开发的这个应用,MCU 选用了 CW32L010。采用 AD 比较过零点,无感控制 BLDC 方式。AD 转换速率最快为 2M。即每一个数据点采样时间为 0.5US。一个 PWM 周期按 5 路 AD 转换需求来算,一个周期内,AD 转换时间约为 2.5US。
当使用 AD 电位器调速时可能存在的问题:
使用 AD 电位器调速时,调速精度最高计算方法:100000/4096=24.4RPM(以 CW32L010 为 12 位 AD 计算)。即每个 AD 转换精度位,可调转速精度最高为 24.4RPM。若存在 2 个 AD 转换位误差时,转速变化将为 50RPM 左右。
实际控制中,由于硬件上地线干扰等引起的 AD 输入的干扰,会引起更多不确定的 AD 转换位误差,所以在没有做软件 AD 滤波的时候,无极调速很难将速度控制在一个理想值。
因此,在使用电位器无极调速时,发生 ADC 采集到的给定的电压值存在浮动(或开环占空比浮动),容易引起电机输出速度的浮动。反映在高转速电机上,如暴力风扇、高速风机、可以听到电机因为转速不恒定而产生不均匀的噪音。就像末日刮风胡乱吹一样。
几乎所有涉及到高速电机的产品,很少有用无极调速的方式,更多的是使用分段给定速度的方法,也就是换挡调速。
但有时客户有应用需求,也有简单的方法可以解决,也就是在 AD 转换上加一道滤波算法,将 AD 采集的干扰滤除。这样会使调速精度降低,从而略微影响电机调速时转速变化的平滑度。
当使用 PWM 调速时可能存在的问题:
教科书的 PWM 调速,是让 MCU 对 PWM 进行输入捕获,但在实际使用中仍会有很多问题。
比如这个 PWM 占空比的识别,存在非常占用中断资源和定时器时钟资源的问题。
这给 MCU 的运算处理增加了很多负担。PWM 输入频率越低,MCU 负担越轻。
同时,外部的干扰有时会导致定时器精度受限,也会出现无法准确识别 100%占空比的情况(这种可以将 99%占空比认定为 100%)
在很多普遍的应用中,都是在硬件的 PWM 输入处增加一个 RC 滤波器,将 PWM 值转换成 AD 模拟值,有时为了提升转换的线性度,也会使用运放设计一个跟随器电路,增大 RC 输入的内阻。此时 PWM 输入频率越高越好。
但这种方式也有点小问题,在不标定的情况下,无法准确确定 PWM 转 AD 的线性的对应关系。
如果回到 PWM 输入捕获,在使用 PWM 频率为 10K 时,我们不使用输入捕获功能,而是改为 IO 边沿中断,减轻 MCU 运算负担,PWM 引起的 IO 中断频率将为 20K(需要捕获 2 次边沿中断),即 50US。此时,电机驱动器相当于一个开环执行器,在一些控制应用中,可以通过外部增加如压力、温度、速度等闭环控制。
使用分段速度给定可能存在的问题:
分段速度最易理解。在这里指不做无级调速,固定几个速度值,或三档或五档或十档,进行切换调整。该方法可以通过按键切换速度档位,或以通讯控制给定确定不变的速度值。
很多新人工程师想当然的去做时,却会发现在这种方式下,
由于速度调整变化,在不同档位之间切换时会有不连续的感觉。
以风机、泵类驱动最为明显。
也以降档(降速)控制最为明显。
只需要平缓降(升)速即可解决。
不合理的调速策略,可能会带来产品噪音及运行稳定性的问题,虽然调速是电机控制的基本内容,但在产品及工程应用时,需要考虑很多细节因素。而对于很多经验不足的工程师,在排查开发问题时,往往不会关注到他们的调速策略是否合理,导致项目无法顺利完成。
以上都是结合自己的开发经验浅谈一下,欢迎批评建议和讨论。
END
来源:嵌入式专栏
推荐阅读
欢迎大家点赞留言,更多 Arm 技术文章动态请关注极术社区嵌入式客栈专栏欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。