基于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.
(編輯袁興玲)