引言
随着伺服控制系统对其运动动态特性要求的不断提高,对系统的调速精度、调速范围和改善低速平稳性等方面的要求也相应地提高。测速装置是速度闭环控制系统中的关键部分,对数字式脉冲光电编码器来讲,常用的数字测速方法有三种,即m法测速、t法测速和m/t法测速,其中,m法测速是根据在规定时间间隔内测速装置产生的转速脉冲数来确定转速,即测量频率。当电机转速较低时,规定时间内转速脉冲的数量很少,检测精度降低,因此,这种测量方法适用于高速。t法是通过记取传感器产生的相邻两个脉冲之间的时间间隔来来计算电机转速,即测量周期。当电机处于高速运转时,相邻两个脉冲之间的时间间隔极短,检测精度也会降低,所以这种方法适用于低速。m/t法兼有m法和t法的优点,不论高速还是低速。但是m/t法的实现至少需要一个定时器,2个计数器,而且要对定时周期后的第一个脉冲沿进行捕捉,软硬件开销比较大,并且引入中断,如果程序中断资源有限,中断使用太多,还将影响程序的正常运行。本文针对以往测速方法的不足,提出了一种变m变p法测速,是对以往t法测速的改进。
变m变p法的测量原理
如图1所示,其中m为软件周期内得到的转速脉冲数,p为对系统时钟的分频。由图可以看出,在低速的时候,每2个转速脉冲之间的计时脉冲数较多,根据m法测速的原理可知,固定周期内,计数脉冲个数越多计算出来的转速就越精确,但是由于dsp微控制器内部的计数寄存器字节总是有限的,如16位只允许最大计数65536,如果达到低速〔如1r/min〕将远远超过这个最大数,测量结果将不再准确,特别对于分辨率低的光电编码器,若要使低速的转速测量准确,就要选择适当小的m并把分频倍数p取大;但是在高速的时候,相邻转速脉冲之间,计时脉冲数很少,对于高分辨率的光电编码器,可能在相邻的转速脉冲之间只捕捉到一个计时脉冲或没有,这样将引起转速测量的误差极大,甚至无法测量,此时为了得到固定周期内足够多的计时脉冲的计数个数,就要选择足够大的m并把分频倍数p取小,甚至不分频。
从以上分析可知,在低速和高速要测量到精确的转速所需选取的m和p是互相矛盾的,所以为了得到全速范围的高精度测量转速,就必须在低速和高速过渡的过程中,改变m和分频倍数p以适应各个转速断的测量精度要求,以使伺服系统在保证精度的条件下能够获得宽的调速范围,这就是所谓的变m变p法,同时适用于不同分辨率的光电编码器。
其计算公式如下:
其中,v(k)为k时刻电机的瞬时转速,x为设置的单位转速脉冲数的位移,delta(t)即为转过x位移所花费的时间;m为软件周期内得到的转速脉冲数,f为光电编码器的分辨率,n为计时脉冲的计数个数,p为对系统时钟的分频倍数,tsysoutclk为cpu微控制器的系统时钟周期。
[DividePage:NextPage]
测量方法在tms320f280x系列dsp上的应用
tms320f280x系列dsp的eqep模块包括一个对积分沿进行捕捉的单元,用来测量产生单位位移事件所花费的时间,正是这个单元常被用来计算低速时电机的转速,eqep模块捕捉定时器qctmr定时时钟来源于dsp的系统时钟即sysclkout的分频,常被称为计数时钟,其分频数可以通过qcapctl寄存器的第6-4位即ccps位设置,可设置的分频为1,2,4,8,16,32,64,128,相应的ccps的取值为0,1,2,3,4,5,6,7;同时qcapctl寄存器的第3-0位即upps位设置所要计数的转速脉冲个数,也就是固定的单位位移,其可设置的固定转速脉冲个数为1,2,4,8,16,32,64,128,256,512,1024,2048,对应upps的取值为0,1,2,3,4,5,6,7,8,9,10,11。寄存器qctmr一直计数直到电机转过所设置的固定单位位移,此时qctmr的计数值被装入qcprd寄存器,自己本身复位即回零;同时状态寄存器qepsts的状态位upevnt被置1,表明有新的值被载入到qcprd寄存器里。编写软件的时候在计算转速之前可先判断此位是否为1,然后再计算转速,此位可通过软件清0,即对此状态位写1操作。图3显示了以上各寄存器之间的关系:
图2中,qclk为转速脉冲,计时脉冲没有画出。
这里有个地方要注意,那就是只要当以下2个条件满足的时候,用这个公式计算出来的转速才是准确的:
寄存器qcmtr的计数值不超过65535;
对固定转速脉冲位移,进行时间计数的时候,电机转速的方向不发生改变。
对以上两种情况发生与否,都可以通过状态寄存器qepsts的对应位来判断,若1的情况发生,那么qepsts的状态位coef被置1;若2情况发生,那么qepsts的状态位cdef被置1。
实现的实验结果分析
本文研究的方法可以适用于低分辨率和高分辨率的光电编码器,在此为了说明的方便,选取一固定分辨率的光电编码器,在此选取2500脉冲/转的光电编码器,额定转速3000r/min。以下转速的测量是在转度给定,电流-转度双闭环的情况下测得的。
m和p的选取限制:
●m只能取2^n (n取0~11的整数);
●p只能取2^n (n取0~7的整数);
●设转速为n,那么它们要满足计时脉冲寄存器qcmtr计数不溢出的条件,即计数个数:
更新m,p的时间限制:本伺服系统转速从0上升到1000r/min所需的上升时间为20ms左右,所以m,p的更新时间要大大小于20ms,否则,若m,p的更新跟不上转速的变化,就将产生转速测量的误差,在这里选取其更新周期为1ms,当然如果上升时间更小,那么可以设置更快的m,p更新周期。
[DividePage:NextPage]
实验结果分析
图3为给定转速2500r/min情况下用dsp开发软件ccs捕捉到的的实时转速检测曲线和误差曲线,图3曲线中y轴“1”表示3000r/min,x轴为时间(s),图4曲线y轴表示的是检测的转速差与额定转速的比值。从实验结果曲线可以看出,给定转速2500r/min时,测量出来的转速为0.8333×3000=2499.9r/min。可见,检测出来的转速很精确,其误差的最大值分别为0.067%,也就是说最大误差的时候有0.067%×3000=2.01r/min的误差。图4为给定转速为5r/min时,采用ti公司的dsp开发软件工具ccs上检测到的电机实时转速,并测得5r/min时,转速的最大值为0.00183105*3000r/min即5.493r/min,转速的最小值为0.00128174×3000r/min即3.845r/min。
对于360脉冲/转的光电编码器,采用同样的方法可以测得其转速响应曲线如下图。图5为示波器测得的给定转速为1000r/min时的转速阶跃响应曲线,图6为用ccs软件捕捉到的转速稳态时的误差曲线,可以测得最大误差为0.00110即3.3r/min。
从实验结果可以看出,本文提出的测速方法是正确的,符合预期的结果,且容易实现,具有一定的参考价值。
结语
在高度数字化、集成化的今天,数字测速的方法被普遍采用,模拟发电机测速的方法已逐渐的被取代,所以越来越多的设备都迫切的追求数字测速的精确性,而本文提出的测速方法不仅具有测速精确度高,测量的速度范围宽等优点,还结合tms320f280x系列dsp的优点,节省了外部硬件的分频电路,简化硬件结构,所以具有很好的应用前景。需要注意的是,数字测速法对从光电编码器送到dsp的a,b脉冲要求比较苛刻,若是传送的过程中受到干扰,将影响实际的测量结果,所以一般在a,b脉冲送给dsp的过程中,要进行滤波,整形,本系统采用rc滤波和74hc245对波形进行整形,实验结果比较理想。
(转载)