张 策,田 凯,金书辉,张东阳,单 智
(天津电气科学研究院有限公司 天津 300180)
在工业生产中,高性能的电机传动系统可满足各类机械对转矩、速度、位置等性能的预期要求。速度信息的获取是实现高性能电机控制的关键因素,测速不准确会造成电机磁场定向不准,从而导致系统控制性能恶化,甚至无法正常工作[1]。电机控制系统一般采用装于电动机轴上的编码器(下文用“码盘”)进行电动机转子位置和速度的反馈测量[2]。然而工业现场存在各种各样的干扰因素,如机械振动、电磁干扰、共模干扰等,均会造成码盘A、B脉冲波形畸变,导致计数误差,影响转速测量的准确度,因此需要采用脉冲抗扰技术来提高测量精度。
对码盘A、B脉冲波形干扰信号的处理,部分文献采用集成芯片或多级D触发器滤除硬件[2-3],但硬件方法成本高、资源消耗多。因此,目前采用比较广泛的是软件滤波方法[4-7]。
本文针对工业现场干扰因素导致码盘脉冲波形畸变,引起转速计算不准确问题,提出了一种码盘抗干扰测速方法,旨在通过软件滤波方法有效降低干扰信号对测速精度的影响,便于工程应用。
光电编码器与电动机同轴相连,电动机旋转带动码盘同步旋转。码盘每转一圈便发出一定数目的方波脉冲,脉冲频率与电机转速成一定比例。理论上每转脉冲数越高,测量精度越高。在实际应用时,通常采用对码盘A、B脉冲的上升沿和下降沿进行计数,实现码盘4倍频,如图1所示。
图1 码盘A、B脉冲信号示意图 Fig.1 Schematic diagram of pulse signals of encoders A and B
图2为码盘M/T法测速时序。A、B分别表示A、B脉冲。在一个测速周期内,会采集到M1个码盘脉冲沿,当正脉冲信号发生时,M1=M1+1;当负脉冲信号发生时,M1=M1-1。M1个码盘脉冲沿对应的时钟脉冲个数为M2,对应时间Tdk=M2Tp(Tp为时钟脉冲周期),利用M1和Tdk可计算获得转速值。
图2 测速时序 Fig.2 Timing sequence of speed measurement
在测速周期结束时刻TA,若M1≠0,则输出M1k=M1,M2k=M2,根据转速公式更新转速信息后,再将M1计数器和M2计数器清零;若M1=0,说明该周期内码盘没有正负脉冲信号或相互抵消,转速数据不予更新,直到某一更新时刻TA到来时M1≠0,重复上述计算过程。电机转一圈时间t的计算公式为:
式中:t表示电机转一圈的时间,s;PPR为码盘线数,因采用4倍频,故转一圈脉冲沿数为PPR×4;M1k为一个测速周期内的脉冲沿个数;M2k为M1k个脉冲沿对应的采样时钟脉冲个数;Tp为时钟脉冲周期,s。
可得电机转速n计算公式为:
式中:n为电机转速计算值,r/min;PP是极对数。
工业现场应用时,信号干扰会导致脉冲A、B的波形产生畸变,如图3所示。干扰信号会导致实际记录脉冲数增加或转速方向反向,使系统性能受到影响。为消除干扰信号影响,采取对脉冲进行滤波处理的方法。
图3 脉冲干扰及处理 Fig.3 Pulse interference and filtering processing
图3 中,A_IN和B_IN分别为脉冲A输入信号和脉冲B输入信号。B_IN信号的圆圈标记中为干扰信号,为消除该干扰信号,对其进行滤波处理,滤波时间为T。图3中A和B分别为经过滤波处理后的脉冲A信号和脉冲B信号。
为尽可能滤除干扰信号,希望整形滤波时间T设置越大越好,但如果T超过脉冲高电平时间的一半,会使转速方向判断出错,而且不同转速下,脉冲高电平时间也不同。为了更好地滤除不同转速下的干扰信号,将整形滤波时间按照转速分为多档。
码盘的最大响应频率一般不超过400kHz,对应的高/低电平时间均为1.25μs,此时可选取滤波时间T为0.625μs,假定采样时钟周期为0.025μs,则对应的时钟脉冲数为25。可按照与最大响应频率成比例的关系进行滤波时间分档,分档情况见表1。
表1 码盘响应频率与对应脉冲个数 Tab.1 Encoder response frequency and number of corresponding pulses
其中,CNT为对应滤波时间T的时钟脉冲个数。
为便于编程实现,将码盘分辨率fs对应成脉冲宽度Tk,即高/低电平时间。脉冲宽度Tk根据上一个测速周期采样获得M1(K-1)和M2(K-1)进行计算:
式中:Tk表示码盘A、B的脉冲宽度,s;M2(K-1)表示上一周期的采样时钟脉冲个数;M1(K-1)表示上一周期的码盘脉冲沿个数。
为保证脉冲信号经过处理后的实时性,在软件程序中假设A脉冲计数器cnta,当脉冲A高电平时,计数器cnta加1,当脉冲A低电平时,计数器cnta减1,cnta的范围为0~CNT。
当cnta=CNT时,输出滤波后信号A=1;当cnta=0时,输出滤波后信号A=0;
同理,B脉冲滤波处理也采用上述方式。
通过上述方法实现码盘输入信号A/B脉冲随转速变化的滤波整形,不同转速下滤波自适应变化。
当电机零速状态下,由于码盘的抖动,有可能使测速周期更新时刻左右两侧存在正负脉冲信号,按照转速计算方法,会导致判断电机转速不为0。
上述问题可通过增加状态变量ac和lac记录正负脉冲信号变化状态。当正脉冲信号发生时,ac=1;当负脉冲信号发生时,ac=0。用lac记录ac上一个周期的值。当更新周期时刻TA到来时,若ac=lac时,即相邻2个周期的脉冲信号同相,允许码盘脉冲数M1和时钟个数M2进行更新;若ac≠lac时,则不允许更新,将TA时刻左右出现的正负脉冲纳入更大的时间范围去进行判断,由此消除零速时码盘抖动带来的转速误判影响。
码盘测速系统控制器由FPGA和DSP芯片构成,其中FPGA芯片负责对码盘A、B脉冲信号采集、滤波处理、倍频处理和零速防抖处理。FPGA中生成的码盘计数值M1k、时钟脉冲数M2k和转速方向信息传递给DSP,在DSP中完成对码盘转速实时计算,码盘转速计算原理如图4所示。
图4 转速计算流程图 Fig.4 Flow chart of speed measurement
测速系统的验证在异步电动机控制台上进行。实验设备:三相异步电动机,额定电压380V,额定转速1500r/min;码盘每转脉冲数1024,极对数2;胜利DM6234P非接触式数字测速仪。异步电机测试台如图5所示。
图5 实验测试机组 Fig.5 Experimental motor unit
测试实验主要完成电机在调速范围内测速及正反转方向辨别。在电机空载状态下,编码器线缆不采用屏蔽线缆,与动力电线缆靠近,制造码盘干扰环境。电机从零速上升到额定转速,记录不同转速时的测速系统测量转速和数字测速仪的转速,2种方法各重复测速3次,采用3次重复测速的迭代平均值作为速度反馈结果。2种方法测速结果及两者对比误差见图6(a,b)所示,测速结果验证了本文抗脉冲干扰测速方法的有效性。
图6 速度反馈结果 Fig.6 Speed feedback results
工业电机传动系统中,码盘测速装置受到各种干扰因素影响,致使所测转速不准确,影响系统可靠、高性能运行。针对此问题,本文提出了一种适用于增量式光电编码器的消除扰动影响的测速方法。根据脉冲宽度,设定不同的滤波时间,从而在不导致计算速度反向情况下,最大程度消除干扰影响。根据相邻周期脉冲信号状态判断转速是否更新,以消除零速码盘抖动。
实验结果表明,测速系统能有效地实现转速正反向辨别,且有效抑制干扰因素造成的计数错误,明显提高了测速的准确性。本方法计算简单,便于微处理器编程实现,且占用资源较少,便于工程应用。■