基于FPGA的电机转速高精度测量技术研究
2015-05-10梁学修
梁学修,陈 志,赵 博
(1.中国农业机械化科学研究院土壤-植物-机器系统技术国家重点实验室,北京 100083;2.中国机械工业集团有限公司,北京 100080)
0 引言
近年来,随着现代工业技术的快速发展,在航空、工业、机械制造领域等的高精度运动控制系统越来越多,对控制精度要求越来越高,而转速测量的方法对整个控制系统的稳态误差和动态响应性能有至关重要的作用,其速度分辨能力的高低是实现高精度、大范围速度测量的重要因素[1]。故实现对电机转速的高精度测量技术是十分重要的。
光电脉冲编码器凭借其在价格和性能方面的优势一直是转速检测的主要器件,本文通过比较分析几种常用编码器脉冲检测的方法[2~4],在原有方法的基础上采用了一种高精度转速检测的方法,即等精度测频法,该方法利用二个计数器分别计算标准信号的脉冲个数与实测信号的脉冲个数,最后由公式进行换算。此方法的优势是,不用再进行多个频段的转换,如果标准频率高,测量的精度也是会相应提高。将此方法用硬件描述语言在FPGA上实现,由于FPGA器件具有门时延小、电路稳定及良好的时序特性,可方便的对编码器脉冲进行精确计数,为后续的转速计算提供保障,可以提高整个测速范围内的检测精度和动态响应性能。
1 测速原理及误差分析
1.1 测速原理
本文通过检测光电编码器的脉冲信号计算电机的转速,其测频方法采用等精度测频方法,此方法是在直接测频方法的基础上发展起来的。它的闸门时间T不是固定的值,而是被测信号周期的整数倍,即与被测信号同步,因此,消除了对被测信号计数所产生±1的误差,并且达到了在整个测试频段的等精度测量[5,6]。其测频原理时序图如图1所示。
图1 测频原理时序图
通过测频时序图可看到,在检测过程中,计数器同时对被测信号和标准时钟进行计数。在预置门限信号到来时,此时计数器不开始计数,只有等到被测信号上升沿到来,计数器开始计数。之后预置门限关闭,如被测信号不是上升沿,则计数器不停止计数,而是等到被测信号上升沿到来才结束,如此则消除了对被测信号计数所产生±1的误差,完成了1次测量过程。
若被测信号频率值为fc,标准时钟频率fb,光电编码器线数为Ze,计数器对被测信号和标准时钟信号测得的脉冲数值分别为Nc和Nb,由于被测时间T相同,故他们之间的关系为:
1.2 误差分析
设被测信号的真实频率为fct,光电编码器能够准确的测试出旋转脉冲,其真实转速为nt,由于被测光电编码器的频率信号的计数器是由该信号的上升沿触发计数,下降沿停止计数,故在计数时间内的脉冲个数Nc为真实值,无误差。而另一计数器对标准时钟频率信号计数Nb,在计数时间内最多相差一个脉冲,及有 ,则可推出其真实值为:
从式(6)可以看出,其相对误差的大小取决于标准时钟频率的大小,在被测频率固定(即电机转速恒定)的时候,标准时钟频率越大,误差也就越小。
2 转速测量技术FPGA实现
2.1 转速测量硬件实现
本研究采用ALTERA公司2009年推出的Cyclone IV系列FPGA(现场可编程门阵列),其具有较高的集成度、良好的用户定制性、内部电路的稳定性也优于一般电路,芯片结构主要由六部分组成:基本逻辑单元,时钟管理电路,嵌入式存储器,嵌入式乘法器,输入/输出单元和大量的布线资源。本文基于性能好成本的考虑,采用60nm低成本的FPGA芯片- EP4CE6F17C8,其速度等级为C8,目的是希望得到最小的门时延[7,8]。
转速测量硬件原理如图2所示。
图2 转速测量硬件原理图
光电编码器与电机旋转轴直接相连,从而保证编码器转速与电机同步。在旋转过程中,光电编码器所产生的两相(A相、B相)正交编码脉冲与转速成正比,其相差90°相位角,A相和B相两个通道关系是唯一的。如果A相超前B相90°,那么电机的旋转方向被认为是正向的。如果A相落后B相90°,那么电机旋转方向则为反向的。Z相位每旋一圈转产生一个脉冲,作为基准用来确定绝对位置[9]。这三个信号的时序图如图3所示。在FPGA内进行鉴向和计数,最后按照一定的转速计算公式进行快速计算,继而获得电机的实时转速。
图3 光电编码器脉冲时序图
2.2 转速测量软件实现
为了方便调试,缩短开发周期和工程应用方便,本研究采用模块化方法设计IP核,IP核采用Verilog HDL的硬件描述语言和Quartus II 开发软件。
Verilog HDL的硬件描述语言可以形式化地抽象表示电路的行为和结构[10],采用从上到下的设计理念,从基本单元出发,对设计进行逐层划分,完成对脉冲信号的采集、计数及旋转方向的判别,其程序原理框图如图4所示。
3 试验与结果
本研究采用配有增量式编码器的伺服电机作为试验对象,其编码器的线数为2500P/R,转速脉冲信号通过光电隔离等调理电路进入FPGA,试验过程中首先通过ModelSim SE软件进行仿真,之后通过搭建试验平台进行电机转速检测。
图4 软件实现原理图
Verilog HDL程序编译完成后,为了验证其正确性,编写TestBench并在ModelSim SE软件上直接对代码进行仿真试验,检测源代码是否符合功能要求,完善设计。仿真程序编写了三个模块:初始化模块(时钟和复位),被测脉冲信号生成模块和预置门限信号生成模块。其仿真结果如图5所示,假设电机转速为500r/min、1000r/min、4000r/min,其对应的转速脉冲信号频率为1.25MHz、2.5MHz、10MHz。
图5 软件仿真结果
通过软件仿真可以清楚的看到其被测信号检测脉冲数为9,标准脉冲信号个数分别为360、180、45,在时钟频率为50MHz情况下,通过式(3)可以得到其被测信号频率分别为1.25MHz、2.5MHz、10MHz,和设置频率一致,并且从仿真结果中可以看到其旋转方向判断正确,故说明源代码其符合功能要求。
在试验台上同样采用低速、中速、高速三种情况下进行测试,其测试曲线如图6所示。
从图6可以看出,无论电机处于低速、中速、高速,测试出的电机转速都非常准确,达到了设计要求。
4 结论
试验结果表明,用FPGA实现的等精度频率测量来检测电机转速,程序设计简单,占用系统资源比较少,能够大大的提高系统的可靠性和稳定性,其动态响应性能和测量精度都可以达到很好的效果,在电机伺服控制中可以得到很好是应用。
图6 转速曲线图
[1] 裘祖荣,石照耀,李岩.机械制造领域测量技术的发展研究[J].机械工程学报,2010,46(14):1-10.
[2] RyszardS, Jozef K.Interpolating time counter with 100 ps resolution on a single FPGA device[J].IEEE Trans.on Instrumentation and Measurement,2000,49(4):879-882.
[3] Jozef K, RyszardS,Ryszard P. Singlechip interpolating timecounter with 200 ps resolution and 43 srange[J].IEEE Trans.on Instrumentation and Measurement,1997,46(4):851-856.
[4] Jozef K. RyszardS.Jerzy P. et al. Field-programmable-gate- arraybased time-to-digital converter with 200 ps resolution[J].IEEE Trans on Instrumentation and Measurement,1997,46(1):51-55.
[5] 莫林.基于FPGA的等精度频率计的设计与实现[J].现代电子技术,2004,10(10):81-82.
[6] 李红刚.基于FPGA的高速等精度频率测量系统设计[J].微计算机信息,2008,24(11):218-220.
[7] Cyclone IVDevice Handbook[Z].Volume 1:Altera Corporation,2011.
[8] EDA先锋工作室.Altera FPGA/CPLD设计(高级篇)[Z].北京:人民邮电出版社,2005.
[9] 何勇,王生.光电传感器及其应用[M].化学工业出版社,2004.
[10] 夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天大学出版社,2003.