基于FPGA脈沖計(jì)數(shù)的瞬時角加速度測量系統(tǒng)
周逸君徐麗嬌吉小軍
上海交通大學(xué),上海,200240
摘要:設(shè)計(jì)了一種基于現(xiàn)場可編程門陣列(FPGA)脈沖計(jì)數(shù)原理的瞬時角加速度測量系統(tǒng)。該系統(tǒng)可以跟蹤測量轉(zhuǎn)軸的瞬時角加速度,且能夠補(bǔ)償因編碼器原理、工藝和安裝偏差產(chǎn)生的周期性非線性系統(tǒng)誤差,從而顯著提高測量精度。該系統(tǒng)利用FPGA高速并行的特點(diǎn),采用乒乓流水線采集機(jī)制,對磁旋轉(zhuǎn)編碼器的輸出脈沖進(jìn)行精確實(shí)時測量,在校正過程中通過計(jì)算測量波形相對于理論波形的偏差特征值來擬合出補(bǔ)償系數(shù),實(shí)現(xiàn)在測量過程中對瞬時角加速度測量誤差的補(bǔ)償。實(shí)驗(yàn)表明:該系統(tǒng)具有高精度和高分辨率,可以有效補(bǔ)償由旋轉(zhuǎn)編碼器波形偏差而導(dǎo)致的瞬時測量誤差,提高測試精度。
關(guān)鍵詞:現(xiàn)場可編程門陣列(FPGA);編碼器;瞬時角加速度測量;分度誤差補(bǔ)償
中圖分類號:TH8;TP312
收稿日期:2014-07-14修回日期:2015-07-06
作者簡介:周逸君,男,1990年生。上海交通大學(xué)電子信息與電氣工程學(xué)院碩士研究生。主要研究方向?yàn)榍度胧綔y控系統(tǒng)。徐麗嬌,女,1991年生。上海交通大學(xué)電子信息與電氣工程學(xué)院碩士研究生。吉小軍,男,1970年生。上海交通大學(xué)電子信息與電氣工程學(xué)院副教授。
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引言
轉(zhuǎn)動動力傳輸是機(jī)械系統(tǒng)動力傳輸?shù)闹匾侄沃? 轉(zhuǎn)軸角速度和角加速度是機(jī)械動力設(shè)備運(yùn)行狀況的重要信息。隨著工業(yè)和軍事設(shè)備技術(shù)的發(fā)展,設(shè)備研發(fā)、生產(chǎn)和運(yùn)行過程中對轉(zhuǎn)軸角加速度的測量跟蹤與分析的需求越來越多。高精度高分辨率的需求以及惡劣的工作環(huán)境制約,對角加速度測量提出了更高的要求[1]。
角加速度測量方法主要分為直接測量法和間接測量法。直接測量法是通過傳感器將角加速度量轉(zhuǎn)換成電信號從而對角加速度進(jìn)行測量,常用的角加速度傳感器有壓阻式、壓電式和應(yīng)變式;間接測量法是通過電路或算法對角速度量進(jìn)行微分而得到角加速度量。
近年來,一些學(xué)者對角加速度的準(zhǔn)確測量進(jìn)行了深入的研究,如文獻(xiàn)[1]展示了一種運(yùn)用高速單片機(jī)進(jìn)行高頻脈沖插值測量角加速度的方案,此方案給出了使用旋轉(zhuǎn)編碼器測量角加速度的思路,但是并沒有充分考慮編碼器本身分度誤差對測量的影響,且單片機(jī)在處理更高頻的信號和并行測量上有著固有的劣勢。文獻(xiàn)[2]給出了一種基于軸角編碼器二階跟蹤微分的角加速度測量方法,此方法可以在有限時間內(nèi)逼近輸入信號,但在初始階段誤差較大,不利于系統(tǒng)的穩(wěn)定工作。文獻(xiàn)[3]提出了一種基于卡爾曼跟蹤微分濾波的估計(jì)算法來估計(jì)角加速度,一定程度上緩解了文獻(xiàn)[2]中的問題,但是卡爾曼濾波算法計(jì)算量較大,難以在嵌入式系統(tǒng)的實(shí)現(xiàn)中得到理想的實(shí)時性能。文獻(xiàn)[4]提出了一種將平穩(wěn)小波自適應(yīng)去噪應(yīng)用于角加速度測量的方法,此方法和卡爾曼濾波算法的實(shí)質(zhì)都是對角位移和時間序列的一種平滑,滑動濾波雖然可以在一定程度上消除噪聲平滑輸出,但滑動濾波的本質(zhì)是一段時間平均效果的體現(xiàn),只能應(yīng)用于角加速度變化較慢的情形,損失了測試的動態(tài)性,無法精確測量瞬時角加速度。
本文采用現(xiàn)場可編程門陣列(FPGA)對磁旋轉(zhuǎn)編碼器的脈沖方波進(jìn)行高頻脈沖插值計(jì)數(shù),將測得轉(zhuǎn)角對時間進(jìn)行二次差分,獲得瞬時角加速度信息,并通過引入波形補(bǔ)償系數(shù)從原理上消除編碼傳感器源的系統(tǒng)分度誤差帶來的影響。相比文獻(xiàn)[1],本文方法消除了系統(tǒng)的固有誤差,提高了測量的精度和穩(wěn)定性;相比文獻(xiàn)[2],本文方法進(jìn)入穩(wěn)態(tài)的前置時間短,有利于提高實(shí)時測量的準(zhǔn)確性;相比文獻(xiàn)[3-4],本文方法實(shí)現(xiàn)了真正意義上的瞬時角加速度測量,有著更好的動態(tài)性能,能夠有效地適應(yīng)角加速度劇烈變化的情況。本文方法充分結(jié)合了FPGA的并行性、實(shí)時性以及時序控制的精確性[5],利用了磁旋轉(zhuǎn)編碼器不易受環(huán)境影響、耐油塵、抗沖擊、可靠性高的特點(diǎn)[6-7],設(shè)計(jì)系數(shù)補(bǔ)償法補(bǔ)償脈沖分度不均勻性對測量精度和穩(wěn)定性的影響,實(shí)現(xiàn)了對轉(zhuǎn)軸瞬時角加速度高精度高分辨率的測量跟蹤。
1基于脈沖計(jì)數(shù)的角加速度測量原理與波形誤差補(bǔ)償
1.1基于脈沖計(jì)數(shù)的角加速度測量原理
圖1 參考零位和脈沖編號關(guān)系
因此理論上只要準(zhǔn)確測出相鄰兩個脈沖的寬度,就可以計(jì)算出對應(yīng)的瞬時角加速度。同時考慮到編碼器的一個脈沖周期具有高/低電平兩個狀態(tài),也可以通過測量脈沖信號相鄰的高/低電平脈寬,來計(jì)算瞬時角加速度,可使原有的自然分辨率提高一倍,即
(1)
(2)
式中,nil為第i個脈沖低電平對應(yīng)計(jì)數(shù)值;nih為第i個脈沖高電平對應(yīng)計(jì)數(shù)值。
1.2編碼器脈沖波形誤差及其補(bǔ)償
上述測量原理是針對理想情況的,實(shí)際磁旋轉(zhuǎn)編碼器由于制作工藝和安裝偏差問題,不可避免地會產(chǎn)生脈沖波形的畸變抖動,具體表現(xiàn)為即使在勻速轉(zhuǎn)動條件下,旋轉(zhuǎn)一周所輸出的各個脈沖脈寬、占空比也不均勻。這會嚴(yán)重影響瞬時角加速度測量精度[12-13],因此必須加以修正或補(bǔ)償。
通過分析可以看出,上述波形偏差可歸結(jié)為分度偏差,具體表現(xiàn)為以整圈脈沖數(shù)為周期重復(fù)出現(xiàn)的系統(tǒng)誤差,即式(1)中θil=0.5θ+Δθil,θih=0.5θ+Δθih??紤]分度偏差下每一個脈沖時刻的瞬時角加速度可以寫作:
(3)
由圖2可以看出實(shí)際測量脈沖與理論脈沖的偏差關(guān)系,其中ri為所測脈沖的占空比,Ws是理論脈寬,Wd是實(shí)際所測脈寬,脈沖寬度偏差ΔWi=Ws-Wd。勻速轉(zhuǎn)動情況下,這種誤差可通過整圈取平均來消除,但對于變化的轉(zhuǎn)速工況,采用整圈取平均的方法來消除卻會影響測試的動態(tài)特性,無法實(shí)現(xiàn)瞬時角加速度的測量。因此這里采用引入比例系數(shù)來實(shí)時補(bǔ)償波形誤差的處理方法。
圖2 脈沖偏差示意圖
設(shè)在勻轉(zhuǎn)速下所測的N個脈沖寬度分別為Ti(i=1,2,…,N),則單位脈寬所代表的角度為
這樣第i個脈沖對應(yīng)的角度值θi為
(4)
每個脈沖所對應(yīng)的角度值是由加工和安裝決定的系統(tǒng)參數(shù),不會隨轉(zhuǎn)速的變化而變化,只要用該參數(shù)代替理論值參與角加速度的計(jì)算就可以消除分度誤差。
2基于FPGA的系統(tǒng)實(shí)現(xiàn)
2.1系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
瞬時角加速度測量系統(tǒng)的原理結(jié)構(gòu)如圖3所示,它的核心是脈沖測量模塊,前端接入磁旋轉(zhuǎn)編碼器輸出的被測脈沖,經(jīng)過補(bǔ)償邏輯模塊后接緩沖FIFO將數(shù)據(jù)輸出給后續(xù)處理模塊傳輸存儲,后續(xù)模塊可以是PC上位機(jī),也可以是Flash等存儲設(shè)備。
圖3 角加速度測量系統(tǒng)結(jié)構(gòu)
2.2脈沖測量模塊設(shè)計(jì)
利用脈沖計(jì)數(shù)法對脈沖進(jìn)行測量需要產(chǎn)生一路穩(wěn)定的高頻計(jì)數(shù)脈沖參考和一個位數(shù)合適的計(jì)數(shù)器,使用FPGA設(shè)計(jì)可以容易地實(shí)現(xiàn)這兩個需求。FPGA測量模塊中采用PLL鎖相環(huán)的IP核對晶振時鐘進(jìn)行倍頻,產(chǎn)生一路頻率為100MHz的高頻時基信號,并設(shè)置兩個32位計(jì)數(shù)器分別對高/低電平進(jìn)行計(jì)數(shù)。
根據(jù)高/低電平的計(jì)數(shù)值,可以推算脈沖的頻率及占空比信息:
式中,f為被測脈沖的頻率;r為被測脈沖占空比;fPLL為經(jīng)過鎖相環(huán)的100MHz高頻時基;nh為高電平計(jì)數(shù)值;nl為低電平計(jì)數(shù)值。
為了避免讀取計(jì)數(shù)值和后續(xù)操作所占時間影響計(jì)數(shù)器對下一次脈沖進(jìn)行計(jì)數(shù),這里設(shè)置兩個計(jì)數(shù)器交替工作,實(shí)現(xiàn)一種乒乓采集機(jī)制,具體實(shí)現(xiàn)原理如圖4所示。前半個測量周期(高電平)中,計(jì)數(shù)控制邏輯在脈沖上升沿處清零并啟動高電平計(jì)數(shù)器、停止低電平計(jì)數(shù)器,并產(chǎn)生一個讀取請求信號通知后續(xù)FIFO模塊讀取低電平計(jì)數(shù)器的上一次計(jì)數(shù)值;后半個測量周期(低電平)中,在脈沖下降沿處進(jìn)行相反的操作,計(jì)數(shù)控制邏輯清零并啟動低電平計(jì)數(shù)器進(jìn)行下一次的計(jì)數(shù),停止高電平計(jì)數(shù)器并產(chǎn)生讀請求信號通知后續(xù)FIFO模塊讀取計(jì)數(shù)值。
圖4 脈沖測量模塊原理
采用這種乒乓采集機(jī)制,可以實(shí)現(xiàn)采集測量的流水線式操作,使得測量過程和數(shù)據(jù)處理過程分離且獨(dú)立并行工作,保證了測量結(jié)果準(zhǔn)確且無丟失。
2.3誤差補(bǔ)償模塊設(shè)計(jì)
系統(tǒng)采用先標(biāo)定再補(bǔ)償?shù)墓ぷ鞣绞?,補(bǔ)償模塊需要通過標(biāo)準(zhǔn)勻速轉(zhuǎn)動下的標(biāo)定脈沖數(shù)據(jù)根據(jù)式(4)解算,并按順序保存在相應(yīng)文件中,這一模塊比較合適在上位機(jī)或單片機(jī)系統(tǒng)中實(shí)現(xiàn)。 以磁旋轉(zhuǎn)編碼器旋轉(zhuǎn)一圈輸出200個脈沖為例,每個脈沖對應(yīng)高/低兩個比例補(bǔ)償系數(shù)Ail和Aih,則需要計(jì)算200對補(bǔ)償系數(shù)。補(bǔ)償模塊的軟件流程如圖5所示。
圖5 補(bǔ)償軟件流程
在計(jì)算補(bǔ)償系數(shù)前,需要借助Z相脈沖信號的零點(diǎn)信息對采樣值進(jìn)行整圈周期截取。在實(shí)時測量過程中,等待Z相脈沖信號輸出第一個零位信息后,系統(tǒng)就可以正常工作在有補(bǔ)償?shù)臓顟B(tài)中。
3實(shí)驗(yàn)結(jié)果
3.1實(shí)驗(yàn)系統(tǒng)搭建
為了驗(yàn)證上述方案的實(shí)際應(yīng)用效果,使用Altera公司的EP1C3T144構(gòu)建測量模塊,搭建實(shí)驗(yàn)平臺。在實(shí)驗(yàn)室環(huán)境下,使用三菱公司的HF-KP43交流伺服控制器作為實(shí)驗(yàn)系統(tǒng)的校準(zhǔn)源,該伺服電機(jī)功率2kW、3000r/min的轉(zhuǎn)速內(nèi)轉(zhuǎn)矩可達(dá)4.5N·m,使用閉環(huán)控制的方式,速度響應(yīng)頻率達(dá)到210kHz。使用伺服軟件程序預(yù)先設(shè)定加速曲線,可以高精度(誤差0.05%)地控制電機(jī)轉(zhuǎn)軸帶動磁旋轉(zhuǎn)編碼器高速旋轉(zhuǎn),以此作為實(shí)驗(yàn)的理論值依據(jù)。傳感器部分采用Siko公司的IG07M增量式磁旋轉(zhuǎn)編碼器,該編碼器的分辨率為1024脈沖/轉(zhuǎn),即曲軸旋轉(zhuǎn)一周輸出1024個脈沖,其量程為0~6000r/min,最大輸出脈沖頻率為100kHz。實(shí)驗(yàn)測試系統(tǒng)的現(xiàn)場圖見圖6。
圖6 實(shí)驗(yàn)室搭建的測試平臺系統(tǒng)圖
3.2測試及結(jié)果
實(shí)驗(yàn)測試過程分為三步:
(1)讓伺服電機(jī)控制器在勻速狀態(tài)下空轉(zhuǎn),對補(bǔ)償系數(shù)進(jìn)行解算并記錄。
(2)通過伺服軟件控制轉(zhuǎn)軸電機(jī)均勻轉(zhuǎn)動,電機(jī)的轉(zhuǎn)速分別設(shè)置為50r/min、200r/min、500r/min、1000r/min、3000r/min,轉(zhuǎn)動過程使用測量模塊進(jìn)行測量。勻加速過程對于角加速度測量而言其實(shí)是零載,此實(shí)驗(yàn)的目的是完成對補(bǔ)償效果和系統(tǒng)偏置誤差的驗(yàn)證。誤差補(bǔ)償前后的曲線的特征值如表1所示。
表1 不同均勻速度轉(zhuǎn)動下的角加速度均值、方差
(3)設(shè)定加速過程為0~3000轉(zhuǎn),設(shè)定中間平穩(wěn)加速過程為勻加速,加速時間分別為2s,3s,4s,5s,對測量過程得到的角加速度數(shù)據(jù)使用標(biāo)定的系數(shù)進(jìn)行補(bǔ)償處理,結(jié)果曲線及補(bǔ)償效果的對比如圖7所示。
(a)補(bǔ)償前(b)補(bǔ)償后 圖7 不同角加速度下測量結(jié)果曲線
3.3數(shù)據(jù)分析及結(jié)論
從勻速旋轉(zhuǎn)的工況下不同轉(zhuǎn)速數(shù)據(jù)的對比中可以看出,在不消除編碼器分度誤差的情況下,角加速度值的標(biāo)準(zhǔn)差很大,在零點(diǎn)附近劇烈抖動,且轉(zhuǎn)速越高的情況下這種抖動越明顯;在補(bǔ)償分度誤差之后,角加速度值的標(biāo)準(zhǔn)差明顯減小,提高了測量精度。從角加速度的均值來看,零載條件下,測得的角加速度值沒有偏置誤差,符合理論的推導(dǎo)。
由圖7可以發(fā)現(xiàn),在未補(bǔ)償分度誤差的情況下,存在明顯的抖動現(xiàn)象,并且這種誤差在轉(zhuǎn)速升高的過程中迅速增大;從補(bǔ)償后的結(jié)果來看,分度誤差引起的抖動明顯減小,提高了測量精度和穩(wěn)定性。
4結(jié)論
本文設(shè)計(jì)了基于FPGA脈沖計(jì)數(shù)的高精度轉(zhuǎn)軸角加速度測量系統(tǒng),該系統(tǒng)具有以下特點(diǎn):①采用磁旋轉(zhuǎn)編碼器作為傳感器件,抗惡劣環(huán)境能力強(qiáng);②采用FPGA為計(jì)數(shù)和邏輯控制核心,借其高速、并行特點(diǎn)大大提高測試的動態(tài)范圍;③脈沖計(jì)數(shù)采用乒乓流水線采集機(jī)制,可以準(zhǔn)確無丟失地測量脈沖寬度;④系統(tǒng)帶有補(bǔ)償邏輯模塊,可以有效補(bǔ)償編碼器的脈沖分度誤差。實(shí)驗(yàn)結(jié)果證明本系統(tǒng)是一種高精度高分辨率的瞬時角加速度測量系統(tǒng)。
參考文獻(xiàn):
[1]任云鵬,胡天友,劉鑫. 一種高精度轉(zhuǎn)軸角加速度的測量方法[J]. 現(xiàn)代電子技術(shù),2005,28(17):50-51.
RenYunpeng,HuTianyou,LiuJin.ApproachtoHighlyAccurateAngularAccelerationMeasurement[J].ModernElectronicTechnology, 2005,28(17):50-51.
[2]張志利,李祥州,成躍. 基于軸角編碼器二階跟蹤微分的角加速度測量[J]. 計(jì)量、測試與校準(zhǔn), 2008,28(4):28-29.
ZhangZhili,LiXiangzhou,ChengYue.AngularAccelerationMeasurementBasedonSecond-orderTrackingDifferentiatorofAngularEncoder[J].MetrologyTestingandCalibration,2008,28(4):28-29.
[3]邵雷,趙錦,趙宗寶,等. 一種基于非線性跟蹤-微分器的角加速度估計(jì)方法[J]. 飛行力學(xué),2012,30(4):341-342.
ShaoLei,ZhaoJin,ZhaoZongbao.AnAngularAccelerationEstimationMethodBasedonNonlinearTracking-Differentiator[J].FlightMechancis,2012,30(4):341-342.
[4]蔡艷平,李艾華,胡重慶,等. 平穩(wěn)小波自適應(yīng)去噪用于曲軸瞬時角加速度測量[J]. 振動、測試與診斷, 2010, 30(3):330-301.
CaiYanping,LiAihua,HuChongqing.StationaryAdaptiveWaveletDenoisingforCrankshaftInstantaneousAngularMeasurement[J].Vibration,Measurement&Diagnosis, 2010,30(3):330-301.
[5]羅力凡,常春藤. 基于VHDL的FPGA開發(fā)與快速入門[M]. 北京:人民郵電出版社,2009.
[6]張宇,閔子建,陳慶勇,等. 磁旋轉(zhuǎn)編碼器在汽車測速系統(tǒng)中的應(yīng)用[J]. 儀表技術(shù)與傳感器,2008(9):76-77.
ZhangYu,MinZijian,ChenQingyong.ApplicationofMagneticRotaryEncoderinAutomobileSpeed-measuringSystem[J].InstrumentTechniqueandSensor,2008(9):76-77.
[7]王立錦,劉亞東,焦讓,等. 磁旋轉(zhuǎn)編碼器四倍頻電路分析與集成化設(shè)計(jì)[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]. 電光系統(tǒng),2011(3):23-24.
WuXiaohui,ShiTingwei.AnAccurateMeasurementMethodforPulseWidthBasedonFPGA[J].Electro-opticalSystems,2011(3):23-24.
[10]趙浩,童佳,王春龍. 一種基于高頻脈沖差值的角加速度測量系統(tǒng)[J]. 技術(shù)創(chuàng)新與生產(chǎn)實(shí)踐,2010,27(4):45-46.
ZhaoHao,TongJia,WasngChunlong.AngularAccelerationMeasurementSystemBasedonInterpolationoftheHigh-frequencyPulse[J].Techno-
logicalInnovationandProductionPractice,2010,27(4):45-46.
[11]謝登科,徐端頤,齊國生,等. 基于數(shù)字移相的高精度脈寬測量系統(tǒng)及其FGPA實(shí)現(xiàn)[J]. 自動化與儀器儀表,2004(1):27-28.
XieDengke,XuDuanyi,QiGuoSheng.High-precisionPulseWidthMeasurementSystembyYsingFPGABasedonDigitalPhaseShifter[J].AutomationandInstrumentation,2004(1):27-28.
[12]宋剛,秦月霞,張凱. 基于普通編碼器的高精度測速方法[J].上海交通大學(xué)學(xué)報,2002,36(8):1169-1170.
SongGang,QinYuexia,ZhangKai.ApproachandRealizationtolmprovetheMeasuringAccuracywithLowResolutionEncoder[J].ShanghaiJiaotongUniversity,2002,36(8):1169-1170.
[13]郭力峰,伍小杰,姜建國,等. 增量式編碼器的脈寬誤差分析及新型補(bǔ)償算法[J]. 電氣傳動,2013,43(3):77-78.
GuoLifeng,WuXiaojie,JiangJianguo,etal.IncrementEncoderPulseWidthErrorsAnalysisandNewCompensationAlgorithm[J].ElectricDrive,2013,43(3):77-78.
(編輯袁興玲)