1.项目场景:
使用电机驱动板驱动无刷电机旋转。
2.问题描述
三相无刷电机在使用开环FOC算法驱动时,启动电机,电机转子异常的抖动且电机未能起转,即电机发出抖动却不转。电机如下图所示,开环FOC没有任何反馈为V/F启动(电压/频率)。
3.原因分析:
V/F启动电机,即为开环启动。给定某个Ud、Uq的值和一个自增的角度值,经过IPARK(反帕克变换)得到Ua、Ub,再经过SVPWM得到三路MOS半桥驱动的控制值(也可以看作反克拉克变化,得到三相电压);把计算得到值给到驱动电路,驱动电路的电压再给到无刷电机的线圈上,然后线圈产生磁场,电机定子的线圈磁场多个磁场合成一个磁场,线圈磁场与电机的转子磁铁可以产生相互作用力,最终驱动电路产生的电压影响了电机的转子磁铁,线圈磁场不停的变化驱动了电机旋转起来。
说人话:电生磁,相当于得到一块磁铁,我们拿着这块磁铁(定子线圈)逗另一块磁铁(转子),我们这块磁铁以旋转状态运行,另一块也就被拉着旋转了(跟小时候玩的指南针类似)。
分析:开环启动,没有任何反馈量,定某个Ud、Uq的值和一个自增的角度值,经过驱动电路后,在无刷电机里面产生了一个磁场,这个磁场要拉起转子磁铁一起转,一个旋转的磁场和一个静止的磁铁同步起来,旋转的磁场就需要降低自身去匹配静止的磁铁,缓慢旋转拉起或者强磁大力的拉动磁铁,于是就使电机旋转起来了,即启动电机了。
解决方案:
1.检查代码问题
使用串口(UART)打印计算的A、B、C三相的控制值,使用上位机(VOFA)的示波器功能查看是否正确。(也可以使用自己的查看方案,查看三个CCR比较值)
如下图所示,FOC为马鞍波形状,经过SVPWM计算得到的值,如下图在上位机显示,是正确的波形。(注:波形失真问题,波形失真可改变开环的自增角度的大小,值改小些,原因为一个周期计算点变多了。)
2.硬件配置问题
多检查,使能一路PWM测试。或者使用示波器去检测MOS驱动芯片是否产生波形。不多赘述。
3.V/F匹配问题(电机抖动)
如果硬件没问题,软件波形测试也无问题,还是转不了,很大可能是磁场旋转速度与电机定子不匹配,开环系统稳定性很差。
解决方法:
1)降低产生的磁场的旋转的速度,即降低电机的自增角度值大小,降低电机转速。
2)加大产生的磁场,增加D或者Q轴的值,加大拉定子的力的大小。
如下图所示,我使用的是D轴的磁场,cnt为电角度大小,使用PWM波计算频率为10KHZ,一秒电角度增加到10k次。(cnt的限制在-32767----32768,负派到派的大小)
开环经验:一般都是自增角(cnt的值)过大导致无刷电机启动不了,建议以减小自增角值测试或由小到大慢慢测试。
4.电机啸叫问题
现象:开启电机后,无刷电机不转,并且电机发出尖锐的声音。
分析:若检测发出SVPWM波没有问题,并且硬件检测没有问题。但电机发出啸叫,原因很大可能是电机的转速设置过高(即自增角值过大),转子与定子无法匹配,定子产生的旋转磁场作用在转子绕组上产生的电磁噪声,速度越快噪声越大。
解决方法:降低自增角。
Ps:提供一些电子专业如何学习/就业/电机控制相关的咨询服务。