(湖北汽車工業(yè)學(xué)院 汽車工程學(xué)院,湖北 十堰 442002)
基于cRIO的瞬時(shí)轉(zhuǎn)速測(cè)量方法研究
胡建,金陽(yáng)
(湖北汽車工業(yè)學(xué)院 汽車工程學(xué)院,湖北 十堰 442002)
為了實(shí)現(xiàn)利用增量式光電編碼器對(duì)發(fā)動(dòng)機(jī)曲軸瞬時(shí)轉(zhuǎn)速的精確測(cè)量,提出了一種采用數(shù)字輸入法測(cè)量瞬時(shí)轉(zhuǎn)速。以cRIO板載的FPGA時(shí)鐘作為時(shí)鐘計(jì)數(shù)器,光電編碼器脈沖作為觸發(fā)計(jì)數(shù)器信號(hào),實(shí)現(xiàn)光電編碼器脈沖一個(gè)周期的計(jì)數(shù),近而得到精確的瞬時(shí)轉(zhuǎn)速。在1 000 r?min-1轉(zhuǎn)速下,隨著采樣頻率增大,模擬輸入法測(cè)量瞬時(shí)轉(zhuǎn)速精度可以提高48%;模擬輸入法測(cè)量該轉(zhuǎn)速的誤差達(dá)到1.772 r?min-1,而數(shù)字輸入法誤差為0.32 r?min-1。在2 000 r?min-1轉(zhuǎn)速下,隨著FPGA時(shí)鐘頻率的倍增,測(cè)量的轉(zhuǎn)速越接近2 000 r?min-1。由測(cè)量結(jié)果可以看出數(shù)字輸入法和提高FPGA時(shí)鐘頻率對(duì)提高瞬時(shí)轉(zhuǎn)速測(cè)量精度有重要意義。
cRIO;FPGA;增量式光電編碼器;瞬時(shí)轉(zhuǎn)速
瞬時(shí)轉(zhuǎn)速信號(hào)中包括了大量的發(fā)動(dòng)機(jī)運(yùn)行狀態(tài)信息,但凡影響發(fā)動(dòng)機(jī)運(yùn)行的參數(shù)都可以通過瞬時(shí)轉(zhuǎn)速間接表現(xiàn)[1]。內(nèi)燃機(jī)的瞬時(shí)轉(zhuǎn)速曲線反應(yīng)了轉(zhuǎn)速隨曲柄轉(zhuǎn)角變化的關(guān)系[2]。瞬時(shí)轉(zhuǎn)速測(cè)量中,絕對(duì)的轉(zhuǎn)速是不可能采集到,通常是利用某時(shí)刻起較小的曲軸轉(zhuǎn)角內(nèi)轉(zhuǎn)速的均值近似代替瞬時(shí)轉(zhuǎn)速[3]。文中利用cRIO-9118機(jī)箱上FPGA時(shí)鐘脈沖作為待計(jì)數(shù)脈沖,光電編碼器脈沖作為計(jì)數(shù)觸發(fā)信號(hào),通過在NI CompactRIO-9025上運(yùn)行的上位機(jī)實(shí)現(xiàn)計(jì)數(shù)數(shù)據(jù)處理,從而得到近似的瞬時(shí)轉(zhuǎn)速信號(hào),并且通過理論誤差和實(shí)驗(yàn)采集數(shù)據(jù)誤差分析,提出了提高測(cè)量瞬時(shí)轉(zhuǎn)速精度的方法。
瞬時(shí)轉(zhuǎn)速的提取方法通常有數(shù)字輸入法(硬件計(jì)數(shù)法)、模擬輸入法(軟件法)和頻譜分析法[4]。
數(shù)字輸入法主要是利用晶振的時(shí)鐘脈沖或者通過移相實(shí)現(xiàn)更高頻率的脈沖對(duì)編碼器脈沖在一個(gè)周期內(nèi)進(jìn)行計(jì)數(shù)。硬件計(jì)數(shù)法可以實(shí)現(xiàn)高頻計(jì)數(shù),其原理如圖1所示。光電編碼器安裝在測(cè)量部件上,根據(jù)編碼器線數(shù)的差異,在360°轉(zhuǎn)角內(nèi)產(chǎn)生等角度間隔脈沖,利用編碼器旋轉(zhuǎn)一圈的脈沖計(jì)數(shù)值和晶振的頻率就可以計(jì)算出瞬時(shí)轉(zhuǎn)速。
圖1 數(shù)字輸入法原理
模擬輸入法即通過數(shù)據(jù)采集卡直接對(duì)測(cè)速傳感器的電壓信號(hào)進(jìn)行采樣,將采集的數(shù)據(jù)保存在文件中,然后經(jīng)過數(shù)據(jù)處理得到瞬時(shí)轉(zhuǎn)速。軟件技術(shù)法測(cè)量瞬時(shí)轉(zhuǎn)速的精度與采樣頻率有較大關(guān)系,若采樣頻率過低,則無(wú)法得到傳感器實(shí)際波形,就會(huì)導(dǎo)致采集的數(shù)據(jù)失真,因此合理的采樣頻率對(duì)減少測(cè)量誤差是至關(guān)重要的。
頻譜分析法是對(duì)采集的振動(dòng)時(shí)域信號(hào)進(jìn)行快速傅里葉變換(FFT)[5],從頻譜圖中得到固有頻率,通過系統(tǒng)的一些特征參數(shù),計(jì)算得到瞬時(shí)轉(zhuǎn)速,即臨界轉(zhuǎn)速。
文中瞬時(shí)轉(zhuǎn)速測(cè)量采用的方法是以FPGA時(shí)鐘脈沖為待計(jì)數(shù)脈沖,對(duì)接入C模塊NI9411 DI0和GND的I/O接口輸入的編碼器脈沖為計(jì)數(shù)觸發(fā)信號(hào),當(dāng)觸發(fā)條件滿足時(shí),就會(huì)對(duì)FPGA時(shí)鐘脈沖進(jìn)行高頻計(jì)數(shù),NI cRIO9025實(shí)時(shí)控制器將DAM FIFO中計(jì)數(shù)數(shù)據(jù)讀取到實(shí)時(shí)處理器中,經(jīng)過計(jì)算得到測(cè)量的瞬時(shí)轉(zhuǎn)速。選擇NI的硬件實(shí)現(xiàn)高頻計(jì)數(shù)法可以增加測(cè)量系統(tǒng)的快速動(dòng)態(tài)響應(yīng),克服了頻率/周期法(M/T法)需要較長(zhǎng)的時(shí)間來(lái)保證結(jié)果的準(zhǔn)確性,瞬時(shí)轉(zhuǎn)速測(cè)量的動(dòng)態(tài)響應(yīng)得到滿足。
CompactRIO(cRIO)是一款可重配置的嵌入式測(cè)控系統(tǒng),由實(shí)時(shí)控制器(RT)、C系列I/O模塊、FP?GA組成,具有-40~70℃的寬工作溫度范圍,50 g沖擊評(píng)級(jí)以及各類安全、電磁兼容性和環(huán)境指標(biāo)的國(guó)際認(rèn)證和評(píng)級(jí)[6]。cRIO擁有模擬采集、數(shù)字采集的C模塊,可實(shí)現(xiàn)各種數(shù)據(jù)采集和預(yù)處理。文中利用cRIO高可靠性、實(shí)時(shí)操作系統(tǒng)(RTOS)的實(shí)時(shí)性[7]及FPGA較高的時(shí)鐘頻率優(yōu)勢(shì),采集瞬時(shí)轉(zhuǎn)速,硬件如圖2所示。LabVIEW FPGA編程不需要掌握Verilog或VHDL高級(jí)編程知識(shí),采用圖形化編程,便于非硬件編程專業(yè)人員使用。通過采集VI程序的仿真計(jì)算,觀察是否滿足測(cè)量要求;當(dāng)采集VI不能滿足要求時(shí),利用FPGA可重配置,重新編寫FP?GA VI,節(jié)省硬件開發(fā)時(shí)間,達(dá)到測(cè)量要求。
圖2 CRIO 9025采集硬件
瞬時(shí)轉(zhuǎn)速測(cè)量誤差主要來(lái)自于在編碼器脈沖觸發(fā)計(jì)數(shù)開始時(shí),F(xiàn)PGA時(shí)鐘脈沖的上升沿(下降沿)無(wú)法與編碼器脈沖上升沿(下降沿)同步,F(xiàn)PGA時(shí)鐘脈沖計(jì)數(shù)值就會(huì)多一個(gè)或者少一個(gè),即計(jì)數(shù)誤差的范圍為[-1,1]。
編碼器每個(gè)脈沖所用的時(shí)間為
瞬時(shí)轉(zhuǎn)速的計(jì)算公式為
絕對(duì)誤差為
由于-1<Δk<1,所以
由式(2)和式(4)可得
式中:fCLK為FPGA的時(shí)鐘頻率,Hz;l為光電編碼器的線數(shù);n為瞬時(shí)轉(zhuǎn)速,r?min-1;Δn為絕對(duì)誤差;k為相鄰2個(gè)編碼器脈沖上升沿(下降沿)的FPGA時(shí)鐘脈沖計(jì)數(shù);Δk為計(jì)數(shù)誤差;t為編碼器每個(gè)脈沖所用的時(shí)間。
從式(5)中可以得出:當(dāng)l確定后,n穩(wěn)定時(shí),fCLK越大,|Δn|越小,此時(shí)測(cè)量誤差就越??;當(dāng)fCLK和l確定后,n對(duì)k產(chǎn)生影響,當(dāng)n越大,光電編碼器發(fā)出的每個(gè)脈沖信號(hào)周期就越小,使k越小,從式(4)~(5)可以看出:|Δn|越大,此時(shí)測(cè)量誤差就越大;當(dāng)fCLK確定后,n穩(wěn)定、l提高后,會(huì)造成|Δn|增大,此時(shí)測(cè)量誤差增大。為提高轉(zhuǎn)速的瞬時(shí)性,希望l越大越好,因此提高時(shí)鐘頻率是高精度測(cè)量轉(zhuǎn)速的必須途徑,尤其對(duì)于高轉(zhuǎn)速而言。
數(shù)字輸入法瞬時(shí)轉(zhuǎn)速測(cè)量軟件設(shè)計(jì)部分從FPGA VI(圖3)和Host VI(圖4~5)設(shè)計(jì)。
圖3 FPGA VI程序框圖
圖4 Host VI配置程序框圖
圖5 Host VI數(shù)據(jù)處理程序框圖
FPGA VI中“定時(shí)循環(huán)”while函數(shù)控制整個(gè)采集程序的開始和中斷,此函數(shù)的循環(huán)周期與FPGA的板載時(shí)鐘周期相同?!皶r(shí)間計(jì)數(shù)器”函數(shù)、“移位寄存器”和“條件結(jié)構(gòu)”函數(shù)共同作用,實(shí)現(xiàn)編碼器脈沖計(jì)數(shù)。以NI9411的DI0采集的脈沖電平與前一次采集的脈沖電平進(jìn)行“大于”比較函數(shù)運(yùn)算,其結(jié)果作為條件結(jié)構(gòu)“選擇器端子”的判斷條件。若編碼器脈沖為下降沿或者電平不變時(shí)其運(yùn)算結(jié)構(gòu)為假,則不作任何運(yùn)算;若編碼器脈沖為上降沿時(shí)其運(yùn)算結(jié)構(gòu)為真,則將當(dāng)前“時(shí)間計(jì)數(shù)器”值與前一次保存在“移位寄存器”的值做減法運(yùn)算,運(yùn)算值就為一個(gè)編碼器脈沖的計(jì)數(shù)值。計(jì)數(shù)值通過DAM FIFO傳輸?shù)絉T中,以便Host VI進(jìn)行數(shù)據(jù)處理。
Host VI通過軟件配置實(shí)時(shí)處理器(圖4),先打開FPGA編譯的位文件,然后配置讀取DAM FIFO中數(shù)據(jù)個(gè)數(shù),運(yùn)行“讀寫FPGA控件”函數(shù)讀取FIFO中的數(shù)據(jù),利用式(2)計(jì)算瞬時(shí)轉(zhuǎn)速。Host VI包含理論瞬時(shí)轉(zhuǎn)速計(jì)算的程序,通過理論轉(zhuǎn)速計(jì)算與實(shí)際測(cè)量結(jié)果進(jìn)行對(duì)比,驗(yàn)證數(shù)據(jù)采集的準(zhǔn)確性。
圖6為FPGA VI程序框圖,利用“平鋪式順序結(jié)構(gòu)”函數(shù)和“循環(huán)定時(shí)器”函數(shù)來(lái)控制while循環(huán)的循環(huán)速率,此循環(huán)速率即模擬輸入法的采樣頻率。通過NI 9201的AI0和COM端采集模擬輸入法的電壓信號(hào),其值通過DAM FIFO傳輸?shù)絉T中,以便Host VI進(jìn)行數(shù)據(jù)處理。
圖7為RT VI數(shù)據(jù)處理程序,實(shí)時(shí)處理器配置與數(shù)字輸入法類似。利用“采樣率至循環(huán)時(shí)間”函數(shù)將設(shè)置的采樣頻率轉(zhuǎn)換為FPGA VI中的循環(huán)時(shí)間,進(jìn)而將此循環(huán)數(shù)據(jù)傳輸至FPGA VI中,控制其循環(huán)速率,即采樣數(shù)據(jù)的頻率。模擬數(shù)據(jù)采集主要利用LabVIEW中聲音和振動(dòng)模塊中的SVPO Scale Voltage to EU.vi和 SVPO Analog Tacho Process.vi將電壓轉(zhuǎn)換為實(shí)際測(cè)量的轉(zhuǎn)速。計(jì)算實(shí)際測(cè)量的轉(zhuǎn)速時(shí),需要合理配置實(shí)際的采樣頻率、標(biāo)準(zhǔn)的測(cè)量單位、濾波器類型、閾值、滯后值等參數(shù)來(lái)減少模擬測(cè)量的誤差。
圖6 模擬采集FPGA VI程序框圖
圖7 模擬采集RT VI程序框圖
數(shù)字輸入和模擬輸入測(cè)量軟件需要運(yùn)行在測(cè)量硬件中,F(xiàn)PGA VI運(yùn)行在cRIO機(jī)箱上,RT VI運(yùn)行在實(shí)時(shí)控制上。實(shí)際測(cè)試中利用“EE1641B1型函數(shù)信號(hào)發(fā)生器/計(jì)數(shù)器”模擬光電編碼器產(chǎn)生的脈沖信號(hào)。cRIO與PC通過網(wǎng)線連接,C模塊安裝在cRIO的機(jī)箱上,通過采集線與信號(hào)發(fā)生器TTL/CMOS輸出端口連接,硬件連接圖如圖8所示,模擬輸入法和數(shù)字輸入法硬件連接類似,區(qū)別在分別采用NI 9201和NI 9411 C模塊。
圖8 模擬采集硬件連接
設(shè)定目標(biāo)轉(zhuǎn)速為1 000 r?min-1,編碼器線數(shù)l為1 024線,將編碼器的接線端分別接入NI 9201的AI0和COM接線端以及NI 9411的DIO和GND接線端,運(yùn)行上位機(jī),采集編碼器脈沖,通過處理得到測(cè)量結(jié)果。理論上計(jì)算編碼器脈沖頻率為17 kHz,根據(jù)Nyquist,s Theorem定理,采樣頻率fs至少為脈沖頻率的2倍,大于34 kHz。因此fs分別取60 kHz、70 kHz、80 kHz、90 kHz。測(cè)量結(jié)果如圖9所示:當(dāng)fs為60 kHz時(shí),采集的轉(zhuǎn)速為514±0.2 r?min-1,此時(shí)測(cè)量結(jié)果與目標(biāo)轉(zhuǎn)速相差甚遠(yuǎn),測(cè)量誤差達(dá)到48.6%。當(dāng)增大fs時(shí),瞬時(shí)轉(zhuǎn)速測(cè)量結(jié)果越接近于真實(shí)值,但是由于模擬數(shù)據(jù)采集卡的采樣頻率有限,所以模擬采集并不能得到較高精度的瞬時(shí)轉(zhuǎn)速。圖9中數(shù)字采集測(cè)量曲線接近目標(biāo)轉(zhuǎn)速曲線,|Δn|最大值為0.32 r?min-1,與90 kHz采樣頻率的模擬測(cè)量|Δn|最小值為1.772 r?min-1相比,極大地提高了測(cè)量精度。
圖9 模擬/數(shù)字采集測(cè)量結(jié)果
創(chuàng)建FPGA的衍生時(shí)鐘,使FPGA待計(jì)數(shù)脈沖的頻率fCLK為40 MHz、80 MHz、120 MHz、160 MHz,分別測(cè)量2 000 r?min-1瞬時(shí)轉(zhuǎn)速,測(cè)量瞬時(shí)轉(zhuǎn)速的結(jié)果如圖10所示。測(cè)量結(jié)果顯示,隨著FPGA的待計(jì)數(shù)脈沖頻率的倍增,測(cè)量結(jié)果越來(lái)越接近目標(biāo)轉(zhuǎn)速,測(cè)量誤差越來(lái)越小,所以通過倍頻也可以減少瞬時(shí)轉(zhuǎn)速測(cè)量誤差。
圖10 數(shù)字輸入法測(cè)量結(jié)果
通過理論分析和實(shí)驗(yàn)測(cè)量可知,利用NI公司的cRIO測(cè)量硬件,結(jié)合LabVIEW圖像化編程語(yǔ)言優(yōu)勢(shì),可以從2個(gè)方面提高瞬時(shí)轉(zhuǎn)速測(cè)量精度:通過LabVIEW進(jìn)行FPGA編程,采用數(shù)字C模塊硬件,進(jìn)行數(shù)字采集瞬時(shí)轉(zhuǎn)速,可以提高瞬時(shí)轉(zhuǎn)速測(cè)量精度;此外,也可以通過LabVIEW項(xiàng)目中的FP?GA時(shí)鐘來(lái)新建FGPA衍生時(shí)鐘,實(shí)現(xiàn)時(shí)鐘倍頻,以減少測(cè)量誤差,提高測(cè)量精度。
[1]李娟.內(nèi)燃機(jī)瞬時(shí)轉(zhuǎn)速信號(hào)的研究[D].濟(jì)南:山東大學(xué),2009.
[2]王海,彭憶強(qiáng),韓志強(qiáng),等.多缸柴油機(jī)瞬時(shí)轉(zhuǎn)速與各缸一致性分析[J].中國(guó)測(cè)試,2015,41(8):122-128.
[2]李浩.利用瞬時(shí)轉(zhuǎn)速和扭振信號(hào)診斷柴油機(jī)故障的應(yīng)用研究[D].武漢:武漢理工大學(xué),2005.
[3]曹青松,俞愛蘭.高精度轉(zhuǎn)速測(cè)量新方法的研究[J].機(jī)床與液壓,2010(17):38-39.
[4]Kazimierz Orlowski,Jakub Sandak,Chiaki Tanaka.The critical rotational speed of circular saw simple measure?ment method and its practical implementations[J].Jour?nal of Wood Science,2007(5):388-393.
[5]王少君,劉永強(qiáng),楊紹普,等.基于光電編碼器的測(cè)速方法研究及實(shí)驗(yàn)驗(yàn)證[J].自動(dòng)化與儀表,2015(6):68-72.
[6]國(guó)家標(biāo)準(zhǔn)(GB)題錄(下)[J].世界標(biāo)準(zhǔn)息,2005(4):12-80.
[7]陳樹學(xué),劉萱.LabVIEW寶典[M].北京:電子工業(yè)出版社,2011:489-490.
Research on Instantaneous Speed Measurement Methods Based on cRIO
Hu Jian,Jin Yang
(School of Automotive Engineering,Hubei University of Automotive Technology,Shiyan 442002,China)
A method of precise rotary speed measurement with digital input method was proposed to im?prove the measurement accuracy of rotary speed of engine crankshaft measured with incremental photo?electric encoder.To get accurate instantaneous speed,it is necessary to achieve a periodical count about photoelectric encoder pulse,considering cRIO onboard FPGA clock as a clock counter and photo?electric encoder pulse as a trigger counter signal.At 1 000r?min-1speed,with sampling frequency in?creasing,the instantaneous speed accuracy measured by analog input method can be improved by 48%;the error was 1.772 r?min-1which analog input method measures speed,however,the error about digital input was 0.32 r?min-1.At 2000 r?min-1speed,the measured speed was closer to 2000 r?min-1with the FPGA clock frequency multiplier.The results show that digital measurement and increasing FPGA clock frequency are important to improve the measurement accuracy of instantaneous speed.
cRIO;FPGA;incremental photoelectric encoder;rotary speed
TK407
A
1008-5483(2017)04-0053-05
10.3969/j.issn.1008-5483.2017.04.012
2017-09-02
胡建(1991-),男,湖北襄陽(yáng)人,碩士生,從事汽車電子方面的研究。E-mail:814301214@qq.com