对于无刷直流电机,控制方法的核心是要获得电机位置或速度的实时信息。目前获得位置、速度信息的方法主要有两种: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波的输出。
“(下桥一直闭合,上桥壁PWM信号)”???楼主是什么意思,将下桥全关?这样怎么成回路,没有回路电流如何流。一般BLDC的控制(功率管上)应该分直通调制和PWM波调制(也就告州是楼主说的PWM信号),由此出来袜链蔽的2V2组合,也就是有四种控制方式:上下都是直通调制、上下分别是直通和PWM波调制、上下分别唤孙是PWM波和直通调制(这种我没见过)、上下都是PWM波调制。看怎么用,负载要求和功耗要求都有那就用上下都PWM波调制合适。至于检测那就是位置和扭矩信息,具体就看你用什么要求的了。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)