基于FPGA脉冲计数的瞬时角加速度测量系统
周逸君徐丽娇吉小军
上海交通大学,上海,200240
摘要:设计了一种基于现场可编程门阵列(FPGA)脉冲计数原理的瞬时角加速度测量系统。该系统可以跟踪测量转轴的瞬时角加速度,且能够补偿因编码器原理、工艺和安装偏差产生的周期性非线性系统误差,从而显著提高测量精度。该系统利用FPGA高速并行的特点,采用乒乓流水线采集机制,对磁旋转编码器的输出脉冲进行精确实时测量,在校正过程中通过计算测量波形相对于理论波形的偏差特征值来拟合出补偿系数,实现在测量过程中对瞬时角加速度测量误差的补偿。实验表明:该系统具有高精度和高分辨率,可以有效补偿由旋转编码器波形偏差而导致的瞬时测量误差,提高测试精度。
关键词:现场可编程门阵列(FPGA);编码器;瞬时角加速度测量;分度误差补偿
中图分类号:TH8;TP312
收稿日期:2014-07-14修回日期:2015-07-06
作者简介:周逸君,男,1990年生。上海交通大学电子信息与电气工程学院硕士研究生。主要研究方向为嵌入式测控系统。徐丽娇,女,1991年生。上海交通大学电子信息与电气工程学院硕士研究生。吉小军,男,1970年生。上海交通大学电子信息与电气工程学院副教授。
AngularAccelerationMeasuringSystemwithHighAccuracyBasedonFPGAandPulseCounting
ZhouYijunXuLijiaoJiXiaojun
ShanghaiJiaoTongUniversity,Shanghai,200240
Abstract:An angular acceleration measuring system using FPGA was presented herein. The principles of measurement were based on pulse counting. Instantaneous angular acceleration might be measured with high accuracy and high resolution, where a compensation method was applied to compensate the errors caused by the inaccuracy of rotary encoder. In order to ensure the precision and validity in the process of pulse counting, a mechanism of ping-pang pipeline was employed. At the same time, a serial of scale factors were defined in the compensation module. Experiments prove the usability and reliability of this system.
Keywords:field-programmablegatearray(FPGA);encoder;instantaneousangularaccelerationmeasurement;divisionerrorcompensation
0引言
转动动力传输是机械系统动力传输的重要手段之一, 转轴角速度和角加速度是机械动力设备运行状况的重要信息。随着工业和军事设备技术的发展,设备研发、生产和运行过程中对转轴角加速度的测量跟踪与分析的需求越来越多。高精度高分辨率的需求以及恶劣的工作环境制约,对角加速度测量提出了更高的要求[1]。
角加速度测量方法主要分为直接测量法和间接测量法。直接测量法是通过传感器将角加速度量转换成电信号从而对角加速度进行测量,常用的角加速度传感器有压阻式、压电式和应变式;间接测量法是通过电路或算法对角速度量进行微分而得到角加速度量。
近年来,一些学者对角加速度的准确测量进行了深入的研究,如文献[1]展示了一种运用高速单片机进行高频脉冲插值测量角加速度的方案,此方案给出了使用旋转编码器测量角加速度的思路,但是并没有充分考虑编码器本身分度误差对测量的影响,且单片机在处理更高频的信号和并行测量上有着固有的劣势。文献[2]给出了一种基于轴角编码器二阶跟踪微分的角加速度测量方法,此方法可以在有限时间内逼近输入信号,但在初始阶段误差较大,不利于系统的稳定工作。文献[3]提出了一种基于卡尔曼跟踪微分滤波的估计算法来估计角加速度,一定程度上缓解了文献[2]中的问题,但是卡尔曼滤波算法计算量较大,难以在嵌入式系统的实现中得到理想的实时性能。文献[4]提出了一种将平稳小波自适应去噪应用于角加速度测量的方法,此方法和卡尔曼滤波算法的实质都是对角位移和时间序列的一种平滑,滑动滤波虽然可以在一定程度上消除噪声平滑输出,但滑动滤波的本质是一段时间平均效果的体现,只能应用于角加速度变化较慢的情形,损失了测试的动态性,无法精确测量瞬时角加速度。
本文采用现场可编程门阵列(FPGA)对磁旋转编码器的脉冲方波进行高频脉冲插值计数,将测得转角对时间进行二次差分,获得瞬时角加速度信息,并通过引入波形补偿系数从原理上消除编码传感器源的系统分度误差带来的影响。相比文献[1],本文方法消除了系统的固有误差,提高了测量的精度和稳定性;相比文献[2],本文方法进入稳态的前置时间短,有利于提高实时测量的准确性;相比文献[3-4],本文方法实现了真正意义上的瞬时角加速度测量,有着更好的动态性能,能够有效地适应角加速度剧烈变化的情况。本文方法充分结合了FPGA的并行性、实时性以及时序控制的精确性[5],利用了磁旋转编码器不易受环境影响、耐油尘、抗冲击、可靠性高的特点[6-7],设计系数补偿法补偿脉冲分度不均匀性对测量精度和稳定性的影响,实现了对转轴瞬时角加速度高精度高分辨率的测量跟踪。
1基于脉冲计数的角加速度测量原理与波形误差补偿
1.1基于脉冲计数的角加速度测量原理
图1 参考零位和脉冲编号关系
因此理论上只要准确测出相邻两个脉冲的宽度,就可以计算出对应的瞬时角加速度。同时考虑到编码器的一个脉冲周期具有高/低电平两个状态,也可以通过测量脉冲信号相邻的高/低电平脉宽,来计算瞬时角加速度,可使原有的自然分辨率提高一倍,即
(1)
(2)
式中,nil为第i个脉冲低电平对应计数值;nih为第i个脉冲高电平对应计数值。
1.2编码器脉冲波形误差及其补偿
上述测量原理是针对理想情况的,实际磁旋转编码器由于制作工艺和安装偏差问题,不可避免地会产生脉冲波形的畸变抖动,具体表现为即使在匀速转动条件下,旋转一周所输出的各个脉冲脉宽、占空比也不均匀。这会严重影响瞬时角加速度测量精度[12-13],因此必须加以修正或补偿。
通过分析可以看出,上述波形偏差可归结为分度偏差,具体表现为以整圈脉冲数为周期重复出现的系统误差,即式(1)中θil=0.5θ+Δθil,θih=0.5θ+Δθih。考虑分度偏差下每一个脉冲时刻的瞬时角加速度可以写作:
(3)
由图2可以看出实际测量脉冲与理论脉冲的偏差关系,其中ri为所测脉冲的占空比,Ws是理论脉宽,Wd是实际所测脉宽,脉冲宽度偏差ΔWi=Ws-Wd。匀速转动情况下,这种误差可通过整圈取平均来消除,但对于变化的转速工况,采用整圈取平均的方法来消除却会影响测试的动态特性,无法实现瞬时角加速度的测量。因此这里采用引入比例系数来实时补偿波形误差的处理方法。
图2 脉冲偏差示意图
设在匀转速下所测的N个脉冲宽度分别为Ti(i=1,2,…,N),则单位脉宽所代表的角度为
这样第i个脉冲对应的角度值θi为
(4)
每个脉冲所对应的角度值是由加工和安装决定的系统参数,不会随转速的变化而变化,只要用该参数代替理论值参与角加速度的计算就可以消除分度误差。
2基于FPGA的系统实现
2.1系统结构设计
瞬时角加速度测量系统的原理结构如图3所示,它的核心是脉冲测量模块,前端接入磁旋转编码器输出的被测脉冲,经过补偿逻辑模块后接缓冲FIFO将数据输出给后续处理模块传输存储,后续模块可以是PC上位机,也可以是Flash等存储设备。
图3 角加速度测量系统结构
2.2脉冲测量模块设计
利用脉冲计数法对脉冲进行测量需要产生一路稳定的高频计数脉冲参考和一个位数合适的计数器,使用FPGA设计可以容易地实现这两个需求。FPGA测量模块中采用PLL锁相环的IP核对晶振时钟进行倍频,产生一路频率为100MHz的高频时基信号,并设置两个32位计数器分别对高/低电平进行计数。
根据高/低电平的计数值,可以推算脉冲的频率及占空比信息:
式中,f为被测脉冲的频率;r为被测脉冲占空比;fPLL为经过锁相环的100MHz高频时基;nh为高电平计数值;nl为低电平计数值。
为了避免读取计数值和后续操作所占时间影响计数器对下一次脉冲进行计数,这里设置两个计数器交替工作,实现一种乒乓采集机制,具体实现原理如图4所示。前半个测量周期(高电平)中,计数控制逻辑在脉冲上升沿处清零并启动高电平计数器、停止低电平计数器,并产生一个读取请求信号通知后续FIFO模块读取低电平计数器的上一次计数值;后半个测量周期(低电平)中,在脉冲下降沿处进行相反的操作,计数控制逻辑清零并启动低电平计数器进行下一次的计数,停止高电平计数器并产生读请求信号通知后续FIFO模块读取计数值。
图4 脉冲测量模块原理
采用这种乒乓采集机制,可以实现采集测量的流水线式操作,使得测量过程和数据处理过程分离且独立并行工作,保证了测量结果准确且无丢失。
2.3误差补偿模块设计
系统采用先标定再补偿的工作方式,补偿模块需要通过标准匀速转动下的标定脉冲数据根据式(4)解算,并按顺序保存在相应文件中,这一模块比较合适在上位机或单片机系统中实现。 以磁旋转编码器旋转一圈输出200个脉冲为例,每个脉冲对应高/低两个比例补偿系数Ail和Aih,则需要计算200对补偿系数。补偿模块的软件流程如图5所示。
图5 补偿软件流程
在计算补偿系数前,需要借助Z相脉冲信号的零点信息对采样值进行整圈周期截取。在实时测量过程中,等待Z相脉冲信号输出第一个零位信息后,系统就可以正常工作在有补偿的状态中。
3实验结果
3.1实验系统搭建
为了验证上述方案的实际应用效果,使用Altera公司的EP1C3T144构建测量模块,搭建实验平台。在实验室环境下,使用三菱公司的HF-KP43交流伺服控制器作为实验系统的校准源,该伺服电机功率2kW、3000r/min的转速内转矩可达4.5N·m,使用闭环控制的方式,速度响应频率达到210kHz。使用伺服软件程序预先设定加速曲线,可以高精度(误差0.05%)地控制电机转轴带动磁旋转编码器高速旋转,以此作为实验的理论值依据。传感器部分采用Siko公司的IG07M增量式磁旋转编码器,该编码器的分辨率为1024脉冲/转,即曲轴旋转一周输出1024个脉冲,其量程为0~6000r/min,最大输出脉冲频率为100kHz。实验测试系统的现场图见图6。
图6 实验室搭建的测试平台系统图
3.2测试及结果
实验测试过程分为三步:
(1)让伺服电机控制器在匀速状态下空转,对补偿系数进行解算并记录。
(2)通过伺服软件控制转轴电机均匀转动,电机的转速分别设置为50r/min、200r/min、500r/min、1000r/min、3000r/min,转动过程使用测量模块进行测量。匀加速过程对于角加速度测量而言其实是零载,此实验的目的是完成对补偿效果和系统偏置误差的验证。误差补偿前后的曲线的特征值如表1所示。
表1 不同均匀速度转动下的角加速度均值、方差
(3)设定加速过程为0~3000转,设定中间平稳加速过程为匀加速,加速时间分别为2s,3s,4s,5s,对测量过程得到的角加速度数据使用标定的系数进行补偿处理,结果曲线及补偿效果的对比如图7所示。
(a)补偿前(b)补偿后 图7 不同角加速度下测量结果曲线
3.3数据分析及结论
从匀速旋转的工况下不同转速数据的对比中可以看出,在不消除编码器分度误差的情况下,角加速度值的标准差很大,在零点附近剧烈抖动,且转速越高的情况下这种抖动越明显;在补偿分度误差之后,角加速度值的标准差明显减小,提高了测量精度。从角加速度的均值来看,零载条件下,测得的角加速度值没有偏置误差,符合理论的推导。
由图7可以发现,在未补偿分度误差的情况下,存在明显的抖动现象,并且这种误差在转速升高的过程中迅速增大;从补偿后的结果来看,分度误差引起的抖动明显减小,提高了测量精度和稳定性。
4结论
本文设计了基于FPGA脉冲计数的高精度转轴角加速度测量系统,该系统具有以下特点:①采用磁旋转编码器作为传感器件,抗恶劣环境能力强;②采用FPGA为计数和逻辑控制核心,借其高速、并行特点大大提高测试的动态范围;③脉冲计数采用乒乓流水线采集机制,可以准确无丢失地测量脉冲宽度;④系统带有补偿逻辑模块,可以有效补偿编码器的脉冲分度误差。实验结果证明本系统是一种高精度高分辨率的瞬时角加速度测量系统。
参考文献:
[1]任云鹏,胡天友,刘鑫. 一种高精度转轴角加速度的测量方法[J]. 现代电子技术,2005,28(17):50-51.
RenYunpeng,HuTianyou,LiuJin.ApproachtoHighlyAccurateAngularAccelerationMeasurement[J].ModernElectronicTechnology, 2005,28(17):50-51.
[2]张志利,李祥州,成跃. 基于轴角编码器二阶跟踪微分的角加速度测量[J]. 计量、测试与校准, 2008,28(4):28-29.
ZhangZhili,LiXiangzhou,ChengYue.AngularAccelerationMeasurementBasedonSecond-orderTrackingDifferentiatorofAngularEncoder[J].MetrologyTestingandCalibration,2008,28(4):28-29.
[3]邵雷,赵锦,赵宗宝,等. 一种基于非线性跟踪-微分器的角加速度估计方法[J]. 飞行力学,2012,30(4):341-342.
ShaoLei,ZhaoJin,ZhaoZongbao.AnAngularAccelerationEstimationMethodBasedonNonlinearTracking-Differentiator[J].FlightMechancis,2012,30(4):341-342.
[4]蔡艳平,李艾华,胡重庆,等. 平稳小波自适应去噪用于曲轴瞬时角加速度测量[J]. 振动、测试与诊断, 2010, 30(3):330-301.
CaiYanping,LiAihua,HuChongqing.StationaryAdaptiveWaveletDenoisingforCrankshaftInstantaneousAngularMeasurement[J].Vibration,Measurement&Diagnosis, 2010,30(3):330-301.
[5]罗力凡,常春藤. 基于VHDL的FPGA开发与快速入门[M]. 北京:人民邮电出版社,2009.
[6]张宇,闵子建,陈庆勇,等. 磁旋转编码器在汽车测速系统中的应用[J]. 仪表技术与传感器,2008(9):76-77.
ZhangYu,MinZijian,ChenQingyong.ApplicationofMagneticRotaryEncoderinAutomobileSpeed-measuringSystem[J].InstrumentTechniqueandSensor,2008(9):76-77.
[7]王立锦,刘亚东,焦让,等. 磁旋转编码器四倍频电路分析与集成化设计[J]. 电子器件,2005,28(2):358-359.
WangLijin,LiuYadong,JiaoRang.MagneticRotaryEncoderQuadrupleCircuitAnalysisandIntegratedDesign[J].ElectronicDevices, 2005,28(2):358-359.
[8]刘海. 光栅角位移角速度角加速度测量仪[J]. 自动化及仪器仪表,1997(1):22-23.
LiuHai.AngularDisplacementAngularVelocityandAngularAccelerationMeterBasedontheGrating[J].AutomationandInstrumentation,1997(1):22-23.
[9]仵晓辉,师廷伟,金长江. 一种基于FPGA的脉冲宽度精确测量方法[J]. 电光系统,2011(3):23-24.
WuXiaohui,ShiTingwei.AnAccurateMeasurementMethodforPulseWidthBasedonFPGA[J].Electro-opticalSystems,2011(3):23-24.
[10]赵浩,童佳,王春龙. 一种基于高频脉冲差值的角加速度测量系统[J]. 技术创新与生产实践,2010,27(4):45-46.
ZhaoHao,TongJia,WasngChunlong.AngularAccelerationMeasurementSystemBasedonInterpolationoftheHigh-frequencyPulse[J].Techno-
logicalInnovationandProductionPractice,2010,27(4):45-46.
[11]谢登科,徐端颐,齐国生,等. 基于数字移相的高精度脉宽测量系统及其FGPA实现[J]. 自动化与仪器仪表,2004(1):27-28.
XieDengke,XuDuanyi,QiGuoSheng.High-precisionPulseWidthMeasurementSystembyYsingFPGABasedonDigitalPhaseShifter[J].AutomationandInstrumentation,2004(1):27-28.
[12]宋刚,秦月霞,张凯. 基于普通编码器的高精度测速方法[J].上海交通大学学报,2002,36(8):1169-1170.
SongGang,QinYuexia,ZhangKai.ApproachandRealizationtolmprovetheMeasuringAccuracywithLowResolutionEncoder[J].ShanghaiJiaotongUniversity,2002,36(8):1169-1170.
[13]郭力峰,伍小杰,姜建国,等. 增量式编码器的脉宽误差分析及新型补偿算法[J]. 电气传动,2013,43(3):77-78.
GuoLifeng,WuXiaojie,JiangJianguo,etal.IncrementEncoderPulseWidthErrorsAnalysisandNewCompensationAlgorithm[J].ElectricDrive,2013,43(3):77-78.
(编辑袁兴玲)