一种新的自适应M/T 电机测速算法
2014-03-12于增坤刘沛尧
于增坤,侯 文,刘沛尧
(中北大学,太原030051)
0 引 言
伺服系统是用来精确地跟随或复现某个过程的反馈控制系统,其在航空航天、军工和一般的工业领域都有较为广泛的应用。随着时代的发展和实际需求的不断提高,人们对相关仪器设备的伺服系统性能也提出了更高的要求。在伺服系统中,电机转速的测量或计算是一个非常重要的环节,电机转速测量的精度对系统性能有着至关重要的作用[1-2]。针对传统M/T 测速法在电机低转速下测量实时性差的问题,本文提出了一种新的自适应M/T 电机测速算法。
1 转速测量常用方法
测量转速的方法有很多,目前国内外常用的测速方法有光电编码器测速法、霍尔元件测速法、离心式转速表测速法、测速发电机测速法、漏磁测速法、闪光测速法和振动测速法等[3]。在用电机转子位置和转速同时作为反馈变量的电机伺服控制系统中常用光电编码器进行测速,本文提出的电机测速算法也是基于光电编码器实现的。
1.1 光电编码器
光电编码器是一种利用光电效应,将角度、位置、转速等物理量转化为电信号的传感器,它具有分辨率高、响应速度快、结构简单、寿命长等特点[4],常被用于电机转速测量。光电编码器按编码方式可分为绝对式和增量式两种类型。绝对式光电编码器主要用来测定电机转子的位置,增量式编码器主要用来实现测速功能[5-6]。光电编码器的分辨率是以编码器轴转动一周所产生的脉冲个数来表示的,即脉冲数/转。在测量电机转速的实际应用中,可根据不同的需要,选择具有合适分辨率的增量式光电编码器。
1.2 基于光电编码器的常用测速方法
基于光电编码器的测速方法有M 法、T 法和M/T 法。
在一定时间内测量光电编码器所产生的脉冲个数并计算得到转速,称为M 法。用该方法测速时首尾脉冲可能产生±个脉冲误差[7-8],当转速较低时,由于测量时间内的脉冲数变少,误差所占的比例会变大,所以M 法适合于测量高转速[9];测量相邻2个脉冲的时间并计算得到转速,称为T 法。用该方法测速时可能会有±1 个检测时钟周期误差。转速较高时,测得的时间较短,误差所占的比例变大,所以T 法适合于测量低转速[9];M/T 法是M 法和T 法的结合,适合测量高、低转速。测速时同时对光电编码器脉冲个数(计数为m1)和高频时钟脉冲个数(计数为m2)进行计数,检测时间T 等于m1(可预置)个光电编码器脉冲信号周期之和。所以M/T 法的检测时间T 是不固定的,转速越高,检测时间越少[6],转速测量的实时性也随之提高[7]。M/T 测速原理[10]如图1 所示。
图1 M /T 测速法原理图
若光电编码器线数为P,检测时钟频率为fc,则电机转速计算公式:
由于检测时钟脉冲计数时可能出现±1 个脉冲的误差,故用M/T 法测得的电机转速分辨率:
测得的电机转速的相对误差:
由式(1)可得:
将式(4)代入式(3)可得电机转速的相对误差:
2 新型自适应M/T 测速算法
虽然传统M/T 法在整个转速范围内都有较好的准确性,但在低转速时输出转速的实时性较差,无法满足转速检测系统的快速动态响应指标。
本文提出一种新的自适应M/T 测速算法,该算法通过设置转速的大致输出时间间隔来保证测量的实时性,同时对时间间隔进行动态微调来保证测量精度,从而可以实现高精度、快速测量。时间间隔微调准则及整个工作流程如图2 所示。
设置光电编码器脉冲计数器变量PulseCounter,检测时钟脉冲计数器变量ClockCounter,时钟脉冲计数阈值Threshold(常量),对两个计数器初始化,即令PulseCounter=0,ClockCounter =0,然后两个计数器同时计数,其间判断PulseCounter = 1 时Clock-Counter 的值,如果ClockCounter≥Threshold,则m1=1,此时则可利用传统M/T 转速算法即式(1)计算并输出电机转速,同时,将两个计数器进行清零,准备下次计数;否则两个计数器继续计数,判断当Pulse-Counter=2 时,ClockCounter≥Threshold 是否成立,如果成立,则m1=2,然后根据式(1)计算并输出电机转速,同时,两个计数器清零,准备下次计数;否则两个计数器继续计数,直到PulseCounter =k 时对应的ClockCounter≥Threshold 为止,此时m1=k,然后根据式(1)计算并输出电机转速;以此类推。
图2 自适应M/T 算法流程图
3 新算法与传统算法的对比及仿真
以电编码器线数P =1 000、检测时钟频率fc=50 MHz为例,选取时钟脉冲计数阈值Threshold =5 ms(根据需要不同可选取其他阈值),分别以ω1=5 000 r/min 和ω2=50 r/min 代表高、低转速,针对自适应M/T 测速算法进行分析。
如果采用M/T 算法,在m1=50、m1=100、m1=200、m1=400 时,电机转速输出时间间隔与转速的关系曲线如图3 所示。可以看出,4 条曲线的共同特点是在电机低转速下输出转速的时间间隔较大,且m1越大,曲线越靠上。而从式(5)来看,要保证高转速下的测量精度需要选取较大的m1,这就使得低转速下测量的实时性也更差。与之相对应的新算法输出转速的时间间隔可以预先设置,在高、低速情况下均具有较好的实时性,其输出时间间隔曲线如图4 所示。
图3 传统M/T 算法转速输出时间间隔曲线
图4 自适应M/T 算法转速输出时间间隔曲线
由于对电机转速输出时间间隔的控制,使得用于计算的m1实现了动态自适应调整,图5 为电机转速在0 ~5 000 r/min 范围内m1的变化情况。可以看出,m1几乎随转速的增大而线性增加,且光电编码器线数P 越大m1增加越快,式(5)对于保证测速精度十分有利。
由图6 可以看出,电机转速在0 ~5 000 r/min的范围内,相对误差都在10-6量级,可见新的自适M/T 测速算法能够保证较高的测速精度,且光电编码器线数P 的减少对测速精度的影响较小。
图6 相对误差随转速变化曲线
FPGA 是在PAL、GAL、CPLD 等可编程器件的基础上进一步发展的产物,具有集成度高、结构灵活、速度快和可靠性高等特点[4]。本文提出的自适应M/T 测速算法将用FPGA 来实现。图7 为在电机转速为50 r/min 的情况下,运用自适应M/T 测速算法在FPGA 的开发软件——Quartus II 中的仿真波形。
图7 自适应M/T 算法在Quartus II 软件中的仿真波形
4 结 语
本文提出的自适应M/T 测速算法,通过对电机转速输出时间间隔的控制,实现了光电编码器脉冲计数的动态自适应调整。与传统M/T 法相比,该自适应M/T 测速算法在低转速测量的实时性有了显著的提高,而且在高、低转速情况下均具有较高的测量精度。
[1] 袁鹏程,张伟峰.改进的M/T 法在电机测速中的应用[J]. 轻工机械,2012,30(1):59.
[2] 吴利涛,洪帆.高精度智能转速测量模板的设计[J].计算机测量与控制,2003,11(6):412.
[3] 瞿彩萍.微电机无接触测速方法研究与电路设计[D]. 武汉:华中科技大学,2004.
[4] BAO Bengang,LI Zhiyong,LIU Kun. High - speed waveform acquisition system design and implementation based on FPGA[C]//International Conference on Intelligent Systems Design and Engineering Applications,2012:1271 -1276.
[5] 王书峰. 基于可编程逻辑器件的光电编码器测速方法研究[D].北京:北京邮电大学,2012.
[6] 李为民,姜漫.基于光电编码器的速度反馈与控制技术[J].现代电子技术,2004,27(23):84 -85.
[7] 钱伟康,张成爽,谢凯年. 基于FPGA 的光电编码器信号处理方法[J].测控技术,2010,29(12):44.
[8] 李大英.基于FPGA 的电机测速电路设计与实现[J]. 机械设计与制造,2011(12):79.
[9] GUO Yao-hua,MA Jun-shuang,LI An-shan.The embedded measurement system for multiple motor speed based on FPGA[C]//IEEE International Conference on Information and Automation.2010:2201.
[10] 王恕.基于FPGA 的伺服电机速度测量算法研究与实现[D].上海:上海交通大学,2012.