1 概述
直流电动机以其优秀的线形机械特性、较宽的调速范围、大的启动转矩、控制方法较简单等优点,在各种驱动、伺服系统中有着广泛的应用[1],但传统的直流电机中的电刷和换向器由于直接接触、摩擦造成的磨损、火花、噪声等是一个不可忽视的问题。永磁无刷直流电机(PMBLDCM,以下直接简称为BLDCM)利用电子换向替代了机械换向,没有磨损、火花,噪声大大减小,目前有着大量的应用,但如何实现最低成本的最优化控制,迄今为止尚无完美的解决方案。本文给出了较之大部分控制方法成本更加低廉、结构更加简单的解决方案,并通过实验进行了验证。
对于无刷直流电机,控制方法的核心是要获得电机位置或速度的实时信息。目前获得位置、速度信息的方法主要有两种:1.依靠霍耳元件或者码盘来获得位置、速度信号[2],这种方法比较直观简单,但是存在如下问题:增加了器件成本,在无法加装传感器的时候无效;2.无传感器(Sensorless)方法,即不加装传感器,目前主要有反电动势过零检测法[3][4]、三次谐波分析法[5]、Kalman预测法[6],而这几类方法大都局限于反电动势为梯形的BLDCM,而且有的需要加装特别的外部电路[3][4],在一些场合下无法实现;有的算法复杂,会造成较大的实时误差[6],也不是很实用。目前一些公司如NEC,Renesas已经开发出了针对正弦反电动势BLDCM的无传感器的控制芯片,但是价格贵,调试繁琐,升级不方便是很大的问题。本文给出了一种新的针对正弦反电动势电机的控制方法,控制采用了TI公司DSP芯片(TMS320LF2407A),核心代码完全用C语言开发,便于调试、升级,同时实现了很好的启动和调速功能,并对整个电路进行了最大的简化,无需加装特别的采样电路,利用系统中的电路保护电阻完成对电流的采样。
2 系统结构综述
参考图1,本系统中通过单电流采样,在DSP中实现电流鉴别算法和滤波算法,得到对应的三相电流,通过速度位置估算算法计算出电机转子的当前位置和速度,然后利用PI反馈算法生成新的PWM作用于电机之上,完成一个控制流程。这样循环往复,实现了电机从启动到正常运转以及调速的功能,下面将分别阐述各部分的原理与实现。
图1 BLDC控制系统示意图
3 单电流采样的实现
如图2所示,电机的驱动采用了七段式的空间矢量法(SVPWM,Space Vector PWM),利用六个依次相差60度的基本矢量和全0矢量(与全1矢量等效),根据不同的作用时间合成按给定转速作圆周转动的旋转矢量。
图2 SVPWM波形生成及单电流采样示意图
从上图中我们可以看出,一个SVPWM周期可以划分成七个小的时间段(此即七段法名称的由来),不同的时间段对应不同的开关管控制电压,不同的控制电压造成了逆变电路中功率开关管不同的通断状态,而不同的通断状态则对应着不同的电流流向,因此只要我们知道了当前的电流流向状态,就可以从两次不同时间的采样电流(分别对应若干电流之和)中提取出需要的电流。以第0扇区为例(如图2右侧所示),在第一次电流采样中得到了Iu,第二次得到了(Iu+Iv),由于在很短的时间内,电流不会发生突变,这样就可以根据(Iu+Iv+Iw=0)推算出三相电流,完成了单电流采样(One-shunt current detection)。
这一算法简洁明了,但也存在着一定的问题:第一,在采样的过程中往往会引入较多的噪声,需要进行滤波;第二,存在扇区边界切换问题,我们从图2中可以看出,在旋转矢量跨越边界的时候,由于某一基本矢量作用时间太短会导致采样无法完成,这个时候,可以通过限制作用时间最小值来保证采样过程正常进行,但这样必然会使生成的正弦波发生畸变,我们通过简单的滤波(例如限制两次电流采样值的差异幅值,根据历史值修正新值等)去掉畸变点,可以实现很好的效果。
实际采样以及滤波处理结果如下(图3),从图中可以看出通过滤波达到了很好的电流检测效果,完全可以满足进一步的控制需求。
图3单电流采样电流结果(未滤波与滤波后的比较)
4 无位置、速度传感器下电机控制方法详述
这里将从电机的初始化启动、正常运转和调速三个方面叙述电机控制的全过程,并给出电机控制算法的流程图,让读者更能够从整体上了解这一控制方法。
启动过程:由于整个系统没有传感器以获得电机的实际位置,如果从任意位置启动,可能会造成电机反转甚至启动完全失败,因此需要对电机转子位置进行初始化,即把后面控制算法中涉及到的转子角度的初始值清零。我们采用的初始化方法是生成一个固定的PWM脉冲序列,该序列的特点是只作用于在某一相,最后将电机锁定于某一磁极,达到了初始化的目的。
正常运转:目前我们采用TI公司的TMS320LF2407A作为控制的DSP,该DSP本身具备PWM 控制寄存器,通过较简单的程序就能完成前面所述的七段法SVPWM波的输出。
整体控制算法流程如图4所示:
图4控制算法流程
电机通过单电流采样得到两个采样电流值,通过电流识别方法,计算出三相电流,利用Clarke和Park变换将电流映射到d、q坐标系下,估算出角度和速度值,通过结合了积分分离的PI控制算法,完成对电机的反馈控制,然后经过Park逆变换,控制生成了新的SVPWM波,完成一次循环。这里用到的位置、速度估算函数由于篇幅所限,将另做描述。
调速的方法:在电机运转过程中,当需要调整转速时,我们采用分段加减速的方法,将给定目标速度和电机当前速度之间分成若干小段,逐级进行调速,从而达到很稳定的调速效果。
5 实验结论及进一步的工作
目前我们已经在一台92BL(1)C50-15H的BLDC上实验成功了上述控制算法,完成了从启动到正常运转、加减速、拖动负载的全部工作,电机运行平稳,噪声小,输出转矩稳定。我们测试了双电流采样和单电流采样的方法,均达到了理想的效果。目前正在进行将控制方法移植到空调压缩机上的尝试,已取得初步成功,下一步将改进算法,增加谐波补偿功能,使电机运转更加平稳,测试对更多种型号电机的控制,并考虑进行工业上的应用。
本文作者创新点:采用电机保护电路电阻作为唯一的电流采样电阻,结合单电流采样鉴别算法得出三相电流,实现了对反电动势为正弦波的BLDC的无传感器控制。