基于SoPC技術(shù)的傳感器非線(xiàn)性軟件校正的實(shí)現(xiàn)
0 引 言
本文引用地址:http://m.butianyuan.cn/article/83575.htm現(xiàn)代測(cè)量系統(tǒng)中,傳感器的工作性能直接影響整個(gè)系統(tǒng)。由于受外界因素的影響,傳感器大多具有非線(xiàn)性特性,致使測(cè)量儀表或系統(tǒng)的輸入與輸出之間不能保證很好的線(xiàn)性關(guān)系。除了采取硬件補(bǔ)償電路外,對(duì)于軟件補(bǔ)償算法的研究受到更多的重視。由于受數(shù)據(jù)總線(xiàn)寬度和工作頻率的影響,軟件算法補(bǔ)償?shù)难芯扛嗍窃谟?jì)算機(jī)上仿真實(shí)現(xiàn)的,而現(xiàn)場(chǎng)的測(cè)量系統(tǒng)往往建立在單片微處理器的基礎(chǔ)上。微電子技術(shù)的迅速發(fā)展,使得集成電路設(shè)計(jì)和工藝技術(shù)水平得到很大的提高,片上系統(tǒng)(system on a programma-ble chip,SOPC)技術(shù)把系統(tǒng)的處理機(jī)制、模型算法和電路設(shè)計(jì)緊密結(jié)合,在單片芯片上實(shí)現(xiàn)復(fù)雜系統(tǒng)的全部功能?;?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/FPGA">FPGA的SOPC技術(shù),軟件算法修改和硬件平臺(tái)結(jié)構(gòu)調(diào)整都是在線(xiàn)可編程的,其靈活性和可靠性是其他單片微處理器無(wú)法比擬的。本文采用ALTERA公司提供的SOPC技術(shù),研究傳感器的非線(xiàn)性軟件校正的算法實(shí)現(xiàn)。
1 非線(xiàn)性軟件校正原理
一個(gè)受多個(gè)參量影響的傳感器系統(tǒng)可表示為y=f(x,t1,t2,…,tk),其中,x為待測(cè)目標(biāo)參量,t1,t2,…,tk為k個(gè)非目標(biāo)參量,y為傳感器輸出。為了消除非目標(biāo)參量對(duì)傳感器輸出的影響,一般采用逆向建模的方法。實(shí)際測(cè)量的數(shù)據(jù),由于受非目標(biāo)參量的影響,它與目標(biāo)參量之間的函數(shù)關(guān)系不再是線(xiàn)性的。逆向建模的目的是通過(guò)非線(xiàn)性映射,把非線(xiàn)性函數(shù)關(guān)系x=f-1(y,t1,t2,…,tk)向線(xiàn)性函數(shù)關(guān)系x=y/A逼近。在模型中,測(cè)量數(shù)據(jù)和非目標(biāo)參量的測(cè)量值作為輸入,目標(biāo)參量的線(xiàn)性值作為模型的輸出,按照一定的算法原則,不斷調(diào)整模型的參數(shù),使得模型輸出誤差在允許的范圍之內(nèi)。
在本系統(tǒng)中,選用模擬溫度傳感器AD590作為校正目標(biāo),數(shù)字溫度傳感器DS18B20測(cè)量值作為模型的期望輸出,氣體傳感器TGS813測(cè)量值為非目標(biāo)參量輸入。系統(tǒng)采用ALTERA公司CYCLONEⅡ系列的EP2C35F672 FPGA作為核心處理器,采用QUARTUS-Ⅱ自帶的SOPC Builder開(kāi)發(fā)包作為算法的調(diào)試環(huán)境,在FPGA其內(nèi)部實(shí)現(xiàn)測(cè)量數(shù)據(jù)的智能處理。
2 系統(tǒng)方案實(shí)現(xiàn)
2.1傳感器調(diào)理電路
AD590是美國(guó)模擬器件公司生產(chǎn)的單片集成兩端感溫電流源,流過(guò)器件的電流(μA)等于器件所處環(huán)境的熱力學(xué)溫度(K)度數(shù),AD590隨溫度變化輸出的是電流信號(hào),需要將其轉(zhuǎn)換為電壓信號(hào)。由于AD590靈敏度高,受環(huán)境的影響大,在使用前需要校正。在本文中,利用神經(jīng)網(wǎng)絡(luò)算法對(duì)AD590的輸出進(jìn)行了校正。
DS18B20是Dallas半導(dǎo)體公司推出的一線(xiàn)式數(shù)字化溫度傳感器,可以程序設(shè)定9~12位的分辨力,精度為±0.5℃。本文采用外接電源模式,12 bit數(shù)據(jù)輸出格式。
TGS813是一種由SnO2材料組成的燒結(jié)體半導(dǎo)體氣體傳感器,屬于一種廣譜性氣敏元件,對(duì)多種氣體敏感,對(duì)不被檢測(cè)氣體不敏感;由于輸出電壓最高可以達(dá)到+9 V,而后級(jí)模擬數(shù)字轉(zhuǎn)換電路的輸入電壓不超過(guò)+5 V,所以,使用前需要調(diào)整分壓電阻器的阻值。
2.2模擬數(shù)字轉(zhuǎn)換電路
來(lái)自傳感器的模擬信號(hào),在送入模擬數(shù)字轉(zhuǎn)換電路之前,由于器件的輸入阻抗比較低,而傳感器的輸出阻抗較高,不能直接把模擬信號(hào)送入模擬數(shù)字轉(zhuǎn)換電路。本文采用TLC279構(gòu)成電壓跟隨器,實(shí)現(xiàn)阻抗變換??紤]到在FPGA實(shí)現(xiàn)的算法處理對(duì)數(shù)據(jù)的精度敏感,因此,系統(tǒng)選用了四路模擬量輸入的12 bit串行數(shù)據(jù)輸出的TLV2544作為模擬數(shù)字轉(zhuǎn)換電路的核心芯片。
TLV2544是TI公司生產(chǎn)的高性能12位低功耗、高速(3.6μs)CMOS模數(shù)轉(zhuǎn)換器,具有采樣一保持功能,電源電壓為2.7~5.5V。TLV2544還具有3個(gè)輸入端和1個(gè)三態(tài)輸出端,可為最流行的微處理器串行端口(SPI)提供4線(xiàn)接口。器件在上電初始化時(shí)首先需要將初始化命令A(yù)000h寫(xiě)入CFR配置寄存器,然后,對(duì)器件進(jìn)行編程,其編程方法是在初始化命令A(yù)000h的低12位000h寫(xiě)入編程數(shù)據(jù)以規(guī)定器件的工作方式。TLV2544具有4種轉(zhuǎn)換模式:?jiǎn)未文J健⒅貜?fù)模式、掃描模式和重復(fù)掃描模式,可用模式00,01,10,11表示。圖1為T(mén)LV2544和單片機(jī)AT89C2051的接口電路。該電路采用外部基準(zhǔn),REFP與REFM之間接0.1μF和10μF2只去耦電容器。
各路信號(hào)送入微處理器AT89C2051,經(jīng)串行口發(fā)送給系統(tǒng)板。微處理器的軟件設(shè)計(jì)主要是在接收到SOPC系統(tǒng)控制發(fā)送的采集命令(0x41H),啟動(dòng)TLV2544和DS18B20,將數(shù)據(jù)轉(zhuǎn)為ASCII碼發(fā)送。DS18B20和TLV2544都是12bit輸出,所以,每次發(fā)送9個(gè)ASCII碼,分別代表3個(gè)數(shù)據(jù)源的轉(zhuǎn)換結(jié)果。
2.3神經(jīng)網(wǎng)絡(luò)校正算法
利用BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)非線(xiàn)性誤差軟件校正的文獻(xiàn)較多,但主要是基于PC機(jī)的仿真實(shí)驗(yàn)。單片微處理器由于存儲(chǔ)容量和數(shù)據(jù)總線(xiàn)寬度的限制,網(wǎng)絡(luò)結(jié)構(gòu)類(lèi)型和計(jì)算精度只能控制在一定范圍之內(nèi)。SOPC在大規(guī)模集成電路的基礎(chǔ)上,底層電路采用硬件描述語(yǔ)言實(shí)現(xiàn),而軟件算法則在SOPC IDE調(diào)試環(huán)境下采用高級(jí)語(yǔ)言,如C語(yǔ)言實(shí)現(xiàn)。在本文中,SOPC系統(tǒng)板采用NIOS-Ⅱ軟核微處理器,32 bit總線(xiàn),工作頻率為50 MHz,BP神經(jīng)網(wǎng)絡(luò)采用動(dòng)量法,在ALTERA公司提供的SOPC IDE調(diào)試環(huán)境下完成。算法處理結(jié)構(gòu)如圖2所示。
3 算法測(cè)試
本文采用三層前向網(wǎng)絡(luò),輸入層神經(jīng)元2個(gè),分別代表溫度傳感器ADS90和氣體傳感器TGS813輸入信號(hào),DS18B20的測(cè)量值作為AD590的期望值,輸出層神經(jīng)元1個(gè),代表AD590的校正值。
本文共采集了70個(gè)樣本對(duì)數(shù)據(jù)作為神經(jīng)網(wǎng)絡(luò)的輸入。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練采樣動(dòng)量自適應(yīng)算法,剔除部分不符合要求的樣本,58個(gè)樣本作為訓(xùn)練樣本,8個(gè)樣本作為測(cè)試樣本。BP神經(jīng)網(wǎng)絡(luò)采用C語(yǔ)言編程實(shí)現(xiàn),由于微處理器與PC機(jī)相比,在工作頻率和總線(xiàn)結(jié)構(gòu)方面還存在很大差距,因此,在計(jì)算算法的誤差輸出時(shí),本文采用的是各個(gè)訓(xùn)練樣本的絕對(duì)誤差的累加和,而不是均方根誤差,這樣,可以避免大量的乘法和開(kāi)方運(yùn)算,否則,算法很難收斂。 作為BP神經(jīng)網(wǎng)絡(luò)動(dòng)量法的重要參數(shù),如果學(xué)習(xí)率參數(shù)選擇的范圍比較窄,那么,網(wǎng)絡(luò)性能的隨機(jī)性特點(diǎn)就會(huì)非常明顯,不利于網(wǎng)絡(luò)的推廣應(yīng)用。圖3是選擇不同的學(xué)習(xí)率時(shí)網(wǎng)絡(luò)輸出誤差的變化情況。測(cè)試條件是動(dòng)量系數(shù)為0.9,增益為1,隱含層節(jié)點(diǎn)6個(gè),算法停止迭代的判斷條件是輸出絕對(duì)誤差累加和小于0.01。
圖4是58對(duì)訓(xùn)練樣本完成網(wǎng)絡(luò)訓(xùn)練后的測(cè)試結(jié)果。由于BP神經(jīng)網(wǎng)絡(luò)的性能受隱含層節(jié)點(diǎn)個(gè)數(shù)影響比較大,圖中數(shù)據(jù)是在不同隱含層節(jié)點(diǎn)個(gè)數(shù)的條件下得到的,并與MATLAB軟件仿真得到的結(jié)果作了比較。網(wǎng)絡(luò)訓(xùn)練的條件:學(xué)習(xí)率為0.1,動(dòng)量系數(shù)為0.9,增益為1,SOPC停止迭代的判斷條件是輸出絕對(duì)誤差累加和小于0.01,MATLAB停止迭代的判斷條件是均方根誤差小于0.0001,圖中,n代表隱含層節(jié)點(diǎn)個(gè)數(shù)。
由于采用的是12 bit的A/D轉(zhuǎn)換芯片,采集數(shù)據(jù)送入FPGA系統(tǒng)板后,經(jīng)過(guò)歸一化處理,數(shù)據(jù)類(lèi)型發(fā)生變化。與MATLAB仿真軟件輸出結(jié)果保持一致,基于FPGA的神經(jīng)網(wǎng)絡(luò)輸出取小數(shù)點(diǎn)后4位有效數(shù)字。由圖4可以得出:雖然在個(gè)別測(cè)試點(diǎn)上基于MATLAB軟件仿真結(jié)果優(yōu)于SOPC的輸出結(jié)果,但在隱含層節(jié)點(diǎn)對(duì)算法性能的影響程度上,基于SOPC技術(shù)的輸出受到的影響比較小,穩(wěn)定性好,這與SOPC技術(shù)采用32位字長(zhǎng)有很大關(guān)系。
4 結(jié)論
基于FPGA的SOPC技術(shù)不同于IC芯片設(shè)計(jì),它是把已有的模塊資源組合成一個(gè)系統(tǒng),系統(tǒng)的功能直接由載體FPGA芯片實(shí)現(xiàn);它又不同于傳統(tǒng)的基于單片微處理器的系統(tǒng)設(shè)計(jì),因?yàn)镾OPC系統(tǒng)的微處理器性能和外圍接口控制電路都是由用戶(hù)編程設(shè)定的,因此,采用SOPC技術(shù)可以節(jié)省成本,提高資源利用率,縮短開(kāi)發(fā)周期和便于系統(tǒng)升級(jí)等特點(diǎn)。本文采用基于FPGA的SOPC技術(shù)研究了傳感器非線(xiàn)性軟件校正的問(wèn)題。算法的測(cè)試結(jié)果證實(shí)了方法的可行性。
adc相關(guān)文章:adc是什么
c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
傳感器相關(guān)文章:傳感器工作原理
模數(shù)轉(zhuǎn)換器相關(guān)文章:模數(shù)轉(zhuǎn)換器工作原理
風(fēng)速傳感器相關(guān)文章:風(fēng)速傳感器原理 電流變送器相關(guān)文章:電流變送器原理
評(píng)論