你的位置:首頁 > 傳感技術(shù) > 正文

如何采用FPGA實(shí)現(xiàn)傳感器非線性軟件校正

發(fā)布時(shí)間:2013-03-08 責(zé)任編輯:shyhuang

【導(dǎo)讀】現(xiàn)代測量系統(tǒng)中,傳感器的工作性能直接影響整個(gè)系統(tǒng),本文采用ALTERA公司提供的SOPC技術(shù),使用FPGA研究傳感器的非線性軟件校正的算法和實(shí)際算法的實(shí)現(xiàn)。

非線性軟件校正原理

一個(gè)受多個(gè)參量影響的傳感器系統(tǒng)可表示為y=f(x,t1,t2,…,tk),其中,x為待測目標(biāo)參量,t1,t2,…,tk為k個(gè)非目標(biāo)參量,y為傳感器輸出。為了消除非目標(biāo)參量對傳感器輸出的影響,一般采用逆向建模的方法。實(shí)際測量的數(shù)據(jù),由于受非目標(biāo)參量的影響,它與目標(biāo)參量之間的函數(shù)關(guān)系不再是線性的。逆向建模的目的是通過非線性映射,把非線性函數(shù)關(guān)系x=f-1(y,t1,t2,…,tk)向線性函數(shù)關(guān)系x=y/A逼近。在模型中,測量數(shù)據(jù)和非目標(biāo)參量的測量值作為輸入,目標(biāo)參量的線性值作為模型的輸出,按照一定的算法原則,不斷調(diào)整模型的參數(shù),使得模型輸出誤差在允許的范圍之內(nèi)。

在本系統(tǒng)中,選用模擬溫度傳感器AD590作為校正目標(biāo),數(shù)字溫度傳感器DS18B20測量值作為模型的期望輸出,氣體傳感器TGS813測量值為非目標(biāo)參量輸入。系統(tǒng)采用ALTERA公司CYCLONEⅡ系列的EP2C35F672 FPGA作為核心處理器,采用QUARTUS-Ⅱ自帶的SOPC Builder開發(fā)包作為算法的調(diào)試環(huán)境,在FPGA其內(nèi)部實(shí)現(xiàn)測量數(shù)據(jù)的智能處理。

系統(tǒng)方案實(shí)現(xiàn)

傳感器調(diào)理電路

AD590是美國模擬器件公司生產(chǎn)的單片集成兩端感溫電流源,流過器件的電流(μA)等于器件所處環(huán)境的熱力學(xué)溫度(K)度數(shù),AD590隨溫度變化輸出的是電流信號,需要將其轉(zhuǎn)換為電壓信號。由于AD590靈敏度高,受環(huán)境的影響大,在使用前需要校正。在本文中,利用神經(jīng)網(wǎng)絡(luò)算法對AD590的輸出進(jìn)行了校正。

DS18B20是Dallas半導(dǎo)體公司推出的一線式數(shù)字化溫度傳感器,可以程序設(shè)定9~12位的分辨力,精度為±0.5℃。本文采用外接電源模式,12 bit數(shù)據(jù)輸出格式。

TGS813是一種由SnO2材料組成的燒結(jié)體半導(dǎo)體氣體傳感器,屬于一種廣譜性氣敏元件,對多種氣體敏感,對不被檢測氣體不敏感;由于輸出電壓最高可以達(dá)到+9 V,而后級模擬數(shù)字轉(zhuǎn)換電路的輸入電壓不超過+5 V,所以,使用前需要調(diào)整分壓電阻器的阻值。

模擬數(shù)字轉(zhuǎn)換電路

來自傳感器的模擬信號,在送入模擬數(shù)字轉(zhuǎn)換電路之前,由于器件的輸入阻抗比較低,而傳感器的輸出阻抗較高,不能直接把模擬信號送入模擬數(shù)字轉(zhuǎn)換電路。本文采用TLC279構(gòu)成電壓跟隨器,實(shí)現(xiàn)阻抗變換??紤]到在FPGA實(shí)現(xiàn)的算法處理對數(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線接口。器件在上電初始化時(shí)首先需要將初始化命令A(yù)000h寫入CFR配置寄存器,然后,對器件進(jìn)行編程,其編程方法是在初始化命令A(yù)000h的低12位000h寫入編程數(shù)據(jù)以規(guī)定器件的工作方式。TLV2544具有4種轉(zhuǎn)換模式:單次模式、重復(fù)模式、掃描模式和重復(fù)掃描模式,可用模式00.01,10,11表示。圖1為TLV2544和單片機(jī)AT89C2051的接口電路。該電路采用外部基準(zhǔn),REFP與REFM之間接0.1μF和10μF2只去耦電容器。


圖1:TLV2544控制電路

各路信號送入微處理器AT89C2051,經(jīng)串行口發(fā)送給系統(tǒng)板。微處理器的軟件設(shè)計(jì)主要是在接收到SOPC系統(tǒng)控制發(fā)送的采集命令(0x41H),啟動TLV2544和DS18B20,將數(shù)據(jù)轉(zhuǎn)為ASCII碼發(fā)送。DS18B20和TLV2544都是12bit輸出,所以,每次發(fā)送9個(gè)ASCII碼,分別代表3個(gè)數(shù)據(jù)源的轉(zhuǎn)換結(jié)果。

[page]
神經(jīng)網(wǎng)絡(luò)校正算法

利用BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)非線性誤差軟件校正的文獻(xiàn)較多,但主要是基于PC機(jī)的仿真實(shí)驗(yàn)。單片微處理器由于存儲容量和數(shù)據(jù)總線寬度的限制,網(wǎng)絡(luò)結(jié)構(gòu)類型和計(jì)算精度只能控制在一定范圍之內(nèi)。SOPC在大規(guī)模集成電路的基礎(chǔ)上,底層電路采用硬件描述語言實(shí)現(xiàn),而軟件算法則在SOPC IDE調(diào)試環(huán)境下采用高級語言,如C語言實(shí)現(xiàn)。在本文中,SOPC系統(tǒng)板采用NIOS-Ⅱ軟核微處理器,32 bit總線,工作頻率為50 MHz,BP神經(jīng)網(wǎng)絡(luò)采用動量法,在ALTERA公司提供的SOPC IDE調(diào)試環(huán)境下完成。算法處理結(jié)構(gòu)如圖2所示。
 


圖2:神經(jīng)網(wǎng)絡(luò)校正算法系統(tǒng)框圖

算法測試

本文采用三層前向網(wǎng)絡(luò),輸入層神經(jīng)元2個(gè),分別代表溫度傳感器ADS90和氣體傳感器TGS813輸入信號,DS18B20的測量值作為AD590的期望值,輸出層神經(jīng)元1個(gè),代表AD590的校正值。

本文共采集了70個(gè)樣本對數(shù)據(jù)作為神經(jīng)網(wǎng)絡(luò)的輸入。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練采樣動量自適應(yīng)算法,剔除部分不符合要求的樣本,58個(gè)樣本作為訓(xùn)練樣本,8個(gè)樣本作為測試樣本。BP神經(jīng)網(wǎng)絡(luò)采用C語言編程實(shí)現(xiàn),由于微處理器與PC機(jī)相比,在工作頻率和總線結(jié)構(gòu)方面還存在很大差距,因此,在計(jì)算算法的誤差輸出時(shí),本文采用的是各個(gè)訓(xùn)練樣本的絕對誤差的累加和,而不是均方根誤差,這樣,可以避免大量的乘法和開方運(yùn)算,否則,算法很難收斂。 作為BP神經(jīng)網(wǎng)絡(luò)動量法的重要參數(shù),如果學(xué)習(xí)率參數(shù)選擇的范圍比較窄,那么,網(wǎng)絡(luò)性能的隨機(jī)性特點(diǎn)就會非常明顯,不利于網(wǎng)絡(luò)的推廣應(yīng)用。圖3是選擇不同的學(xué)習(xí)率時(shí)網(wǎng)絡(luò)輸出誤差的變化情況。測試條件是動量系數(shù)為0.9,增益為1,隱含層節(jié)點(diǎn)6個(gè),算法停止迭代的判斷條件是輸出絕對誤差累加和小于0.01。

圖4是58對訓(xùn)練樣本完成網(wǎng)絡(luò)訓(xùn)練后的測試結(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,動量系數(shù)為0.9,增益為1,SOPC停止迭代的判斷條件是輸出絕對誤差累加和小于0.01,MATLAB停止迭代的判斷條件是均方根誤差小于0.0001,圖中,n代表隱含層節(jié)點(diǎn)個(gè)數(shù)。
 


圖3:學(xué)習(xí)率對網(wǎng)絡(luò)輸出誤差的影響


圖4:隱含層節(jié)點(diǎn)數(shù)對網(wǎng)絡(luò)輸出的影響

由于采用的是12 bit的A/D轉(zhuǎn)換芯片,采集數(shù)據(jù)送入FPGA系統(tǒng)板后,經(jīng)過歸一化處理,數(shù)據(jù)類型發(fā)生變化。與MATLAB仿真軟件輸出結(jié)果保持一致,基于FPGA的神經(jīng)網(wǎng)絡(luò)輸出取小數(shù)點(diǎn)后4位有效數(shù)字。由圖4可以得出:雖然在個(gè)別測試點(diǎn)上基于MATLAB軟件仿真結(jié)果優(yōu)于SOPC的輸出結(jié)果,但在隱含層節(jié)點(diǎn)對算法性能的影響程度上,基于SOPC技術(shù)的輸出受到的影響比較小,穩(wěn)定性好,這與SOPC技術(shù)采用32位字長有很大關(guān)系。

結(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)的微處理器性能和外圍接口控制電路都是由用戶編程設(shè)定的,因此,采用SOPC技術(shù)可以節(jié)省成本,提高資源利用率,縮短開發(fā)周期和便于系統(tǒng)升級等特點(diǎn)。本文采用基于FPGA的SOPC技術(shù)研究了傳感器非線性軟件校正的問題。算法的測試結(jié)果證實(shí)了方法的可行性。

要采購傳感器么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
壓控振蕩器 壓力傳感器 壓力開關(guān) 壓敏電阻 揚(yáng)聲器 遙控開關(guān) 醫(yī)療電子 醫(yī)用成像 移動電源 音頻IC 音頻SoC 音頻變壓器 引線電感 語音控制 元件符號 元器件選型 云電視 云計(jì)算 云母電容 真空三極管 振蕩器 振蕩線圈 振動器 振動設(shè)備 震動馬達(dá) 整流變壓器 整流二極管 整流濾波 直流電機(jī) 智能抄表
?

關(guān)閉

?

關(guān)閉