朱志峰,張海寧
(西安工業(yè)大學(xué)電子信息工程學(xué)院,陜西西安 710021)
目前,壓力傳感器的使用極其普遍,如在典型的工業(yè)液壓控制系統(tǒng)中應(yīng)用壓力傳感器完成力的閉環(huán)控制;在礦山壓力監(jiān)測(cè)中應(yīng)用各種壓力傳感器來監(jiān)測(cè)礦山潛在的危險(xiǎn)以及在采礦環(huán)境中確保工作的安全性,但壓力傳感器的測(cè)量精度通常容易受到環(huán)境溫度的影響[1-3]。因此對(duì)于溫度變化較大的應(yīng)用場合,這類壓力傳感器的精度會(huì)不及預(yù)期,需要對(duì)其進(jìn)行溫度補(bǔ)償,來消除溫度非目標(biāo)參量對(duì)實(shí)際測(cè)量結(jié)果的影響[4-5]。目前,對(duì)此類傳感器的溫度補(bǔ)償主要集中在硬件補(bǔ)償和軟件補(bǔ)償兩方面。硬件補(bǔ)償隨著技術(shù)的不斷提高和制作工藝的完善,基本上已經(jīng)達(dá)到了最佳的狀態(tài),但是仍不能消除溫度對(duì)其影響[6-7]。軟件補(bǔ)償方法有:插值法、多項(xiàng)式擬合法、多維回歸分析法、神經(jīng)網(wǎng)絡(luò)等補(bǔ)償修正算法。郭志君等[8]采用基于NSGA的BP神經(jīng)網(wǎng)絡(luò)在壓力傳感器溫度補(bǔ)償中的研究,通過NSGA算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值,提高該模型補(bǔ)償精度和運(yùn)行時(shí)間;張鵬[9]采用基于小波神經(jīng)網(wǎng)絡(luò)的溫度補(bǔ)償方法對(duì)光纖微壓傳感器進(jìn)行分析,采用該方法后其輸出電壓受溫度影響顯著減小,系統(tǒng)性能更加穩(wěn)定。
與上述算法相比可知,本文使用PSO優(yōu)化的小波神經(jīng)網(wǎng)絡(luò)對(duì)礦山壓力檢測(cè)中使用的電阻應(yīng)變式壓力傳感器進(jìn)行溫度補(bǔ)償。小波神經(jīng)網(wǎng)絡(luò)相比于前向的神經(jīng)網(wǎng)絡(luò),它可以避免BP神經(jīng)網(wǎng)絡(luò)等結(jié)構(gòu)設(shè)計(jì)上的不確定性;其次,小波神經(jīng)網(wǎng)絡(luò)有更強(qiáng)的學(xué)習(xí)能力,對(duì)同樣的學(xué)習(xí)任務(wù),小波神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)更簡單,收斂速度更快,精度更高[10-12]。粒子群優(yōu)化算法是一種單項(xiàng)信息共享機(jī)制,相比于遺傳算法來說不需要編碼,沒有交叉和變異等操作,其原理更簡單,參數(shù)少,實(shí)現(xiàn)更容易。因此,利用PSO和小波神經(jīng)網(wǎng)絡(luò)相結(jié)合的方法對(duì)電阻應(yīng)變式壓力傳感器進(jìn)行溫度補(bǔ)償,以實(shí)現(xiàn)更高精度的壓力傳感器測(cè)量輸出。
如圖1所示,利用神經(jīng)網(wǎng)絡(luò)模型對(duì)電阻應(yīng)變式壓力傳感器進(jìn)行溫度修正,其中壓力傳感器用來測(cè)量被測(cè)壓力,用溫度傳感器來監(jiān)測(cè)環(huán)境溫度,壓力傳感器的輸出為Up,其中p為被測(cè)壓力,溫度傳感器的輸出為Ut,其中t為非參量溫度,壓力傳感器和溫度傳感器的輸出值構(gòu)成小波神經(jīng)網(wǎng)絡(luò)的訓(xùn)練樣本,p′為經(jīng)過小波神經(jīng)網(wǎng)絡(luò)溫度修正后的輸出值。電阻應(yīng)變式壓力傳感器的溫度補(bǔ)償過程包含以下步驟:
(1)采集被測(cè)量壓力p和工作環(huán)境溫度t,并通過壓力傳感器和溫度傳感器將其分別轉(zhuǎn)換為電壓值輸出;
(2)對(duì)其數(shù)據(jù)進(jìn)行歸一化處理,使特征具有相同的度量尺度;
(3)建立電阻應(yīng)變式壓力傳感器溫度補(bǔ)償?shù)男〔ㄉ窠?jīng)網(wǎng)絡(luò)模型,采用改進(jìn)的PSO算法優(yōu)化小波神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu);
(4)網(wǎng)絡(luò)訓(xùn)練,利用前面測(cè)得的數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)的訓(xùn)練,得到經(jīng)過溫度補(bǔ)償后的網(wǎng)絡(luò)輸出值p′。
圖1 溫度補(bǔ)償模型
小波神經(jīng)網(wǎng)絡(luò)是以BP神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)為基礎(chǔ),把小波基函數(shù)作為隱含層節(jié)點(diǎn)的傳遞函數(shù),相應(yīng)的輸入層到隱含層的權(quán)值及隱含層的閾值分別由小波函數(shù)的尺度伸縮因子和時(shí)間平移因子代替的神經(jīng)網(wǎng)絡(luò)[13]。根據(jù)所選取的小波基函數(shù)的連續(xù)性不同,選擇連續(xù)參數(shù)的小波神經(jīng)網(wǎng)絡(luò)表達(dá)式為
(1)
式中:aj為平移尺度因子;bj為伸縮尺度因子;xi為網(wǎng)絡(luò)的輸入函數(shù)矢量;uij為網(wǎng)絡(luò)輸入層第i個(gè)單元與隱含層第j個(gè)神經(jīng)元的連接權(quán)函數(shù);ωk為隱含層第k個(gè)神經(jīng)元與輸出層單元的連接權(quán)值;g為小波函數(shù)。
小波變換的平移因子使得小波能夠沿信號(hào)的時(shí)間軸實(shí)現(xiàn)遍歷分析,伸縮因子通過收縮和伸張小波,使得每次遍歷分析實(shí)現(xiàn)對(duì)不同頻率信號(hào)的逼近,如圖2所示。其中,ωjk為小波神經(jīng)網(wǎng)絡(luò)輸入層到隱含層的連接權(quán)值,θi為隱含層節(jié)點(diǎn)的閾值,ωij為隱含層到輸出層的連接權(quán)值,θk為輸出層節(jié)點(diǎn)的閾值,φ(x)為隱含層激活函數(shù)。
圖2 小波神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
粒子群算法(PSO)是由Eberhart和Kennedy觀察鳥群尋找食物行為提出的一種求解優(yōu)化問題的方法[14-15]?;舅悸肥怯靡环N粒子來模擬鳥類個(gè)體,每個(gè)粒子可視為N維搜索空間中的一個(gè)搜索個(gè)體,粒子的當(dāng)前位置即為對(duì)應(yīng)優(yōu)化問題的一個(gè)候選解,粒子的飛行過程就是該個(gè)體的搜索過程,粒子的飛行速度可根據(jù)粒子歷史最優(yōu)位置和種群歷史最優(yōu)位置進(jìn)行動(dòng)態(tài)調(diào)整,粒子的速度代表移動(dòng)的快慢,位置代表移動(dòng)的方向。通過不斷迭代更新速度和位置,最終得到滿足終止條件的最優(yōu)解。流程如下:
(1)初始化。設(shè)置粒子群的最大迭代次數(shù)、目標(biāo)函數(shù)的自變量個(gè)數(shù)、粒子的最大速度,位置信息為整個(gè)搜索空間,對(duì)于速度區(qū)間和搜索空間隨機(jī)初始化速度和位置,設(shè)置粒子群規(guī)模為M,每個(gè)粒子隨機(jī)初始化為一個(gè)飛行速度。
(2)個(gè)體極值與全局最優(yōu)解。自定義適應(yīng)度函數(shù),個(gè)體極值定義為每個(gè)粒子找到的最優(yōu)解,然后從這些最優(yōu)解中找到一個(gè)全局值作為全局最優(yōu)解,最后與歷史全局最優(yōu)比較,進(jìn)行迭代更新。
(3)更新速度和位置。PSO算法在優(yōu)化過程中,種群的多樣性和算法的收斂速度之間始終存在著矛盾。因此對(duì)標(biāo)準(zhǔn)PSO算法改進(jìn),通過調(diào)整PSO的參數(shù)來平衡算法的全局探測(cè)和局部開采能力,通過在速度進(jìn)化方程中引入了慣性權(quán)重ω和伸縮系數(shù)χ,并依據(jù)迭代進(jìn)程及粒子飛行情況對(duì)慣性權(quán)重進(jìn)行線性或者非線性的動(dòng)態(tài)調(diào)整,以平衡搜索的全局性和收斂速度,具體調(diào)整公式如下:
Xid(t+1)=Xid(t)+Vid(t+1)
(2)
Vid(t+1)=ωVid(t)+χ·M
(3)
M=C1R1d(t)[Pid(t)-Xid(t)]+C2R2d(t)[Pgd(t)-Xid(t)]
(4)
(5)
(6)
式中:ω為慣性因子,當(dāng)其值比較大時(shí)說明其全局和局部尋優(yōu)能力強(qiáng),當(dāng)其值較小時(shí),全局尋優(yōu)能力弱,局部尋優(yōu)能力強(qiáng);通過調(diào)整ω的大小,可以對(duì)全局尋優(yōu)和局部尋優(yōu)進(jìn)行調(diào)整;χ用來配合ω控制粒子種群之間探索和開拓能力之間的平衡;ωmax、ωmin分別為慣性權(quán)重的最大值和最小值;tmax為粒子群算法最大的迭代次數(shù);fitnessgoal為目標(biāo)適應(yīng)度;fitness(i)為當(dāng)前粒子的適應(yīng)度;C1、C2為加速學(xué)習(xí)因子,通常設(shè)置C1=C2=2,一般取C1=C2∈[0,4];R1d和R2d為隨機(jī)數(shù),R1d用來改變粒子當(dāng)前位置與自身歷史最優(yōu)位置的調(diào)整分量,R2d為改變粒子當(dāng)前位置與群體歷史最優(yōu)位置的調(diào)整分量;Vid為第i個(gè)變量在第d維子空間的速度;Pid為第i個(gè)變量的個(gè)體極值的第d個(gè)參數(shù)中的歷史最優(yōu)解;Pgd為全局最優(yōu)解的第d個(gè)參數(shù)中的歷史最優(yōu)解。
將壓力傳感器測(cè)定數(shù)據(jù)按照PSO算法進(jìn)行初始求解,得到小波神經(jīng)網(wǎng)絡(luò)的初始參數(shù),當(dāng)神經(jīng)網(wǎng)絡(luò)的誤差達(dá)到最小時(shí),PSO算法中適應(yīng)度函數(shù)值達(dá)到最大,再根據(jù)PSO算法的流程尋找最優(yōu)函數(shù)對(duì)應(yīng)的最佳粒子,并將最佳粒子的參數(shù)集合賦值給網(wǎng)絡(luò)的初始權(quán)值和閾值,即對(duì)應(yīng)于小波神經(jīng)網(wǎng)絡(luò)的平移因子和伸縮因子,經(jīng)過改進(jìn)的PSO算法優(yōu)化后,小波神經(jīng)網(wǎng)絡(luò)經(jīng)過壓力傳感器輸入樣本訓(xùn)練好后即可獲得經(jīng)過溫度補(bǔ)償模型后的輸出。PSO優(yōu)化的小波神經(jīng)網(wǎng)絡(luò)流程如圖3所示。
圖3 改進(jìn)的PSO-小波神經(jīng)網(wǎng)絡(luò)流程圖
文中采用課題組的壓力變送器標(biāo)定試驗(yàn)臺(tái),使用MCS型電阻應(yīng)變式壓力傳感器,用改進(jìn)的PSO-小波神經(jīng)網(wǎng)絡(luò)溫度補(bǔ)償模型進(jìn)行壓力傳感器的溫度補(bǔ)償實(shí)驗(yàn)。實(shí)驗(yàn)包括的器材:PACE5000高精度壓力控制器,其精度為0.001%FS;SHT30溫度傳感器,在本次實(shí)驗(yàn)中是用高低溫試驗(yàn)箱代替,工作溫度范圍為-40~140 ℃,準(zhǔn)確度為0.1 ℃。首先將該型號(hào)的壓力傳感器放入溫箱中,溫度依次設(shè)置為-30、0、25、50、75、100、125 ℃,測(cè)試壓力值取0、16、32、48、64、80 bar(1 bar=0.1 MPa)。壓力傳感器輸出電壓記為Up,由于壓力傳感器敏感芯體制造工藝的差異性,導(dǎo)致其同一個(gè)類型的壓力傳感器輸出值也有差異,在環(huán)境溫度的作用下其輸出溫度漂移較大,因此根據(jù)實(shí)際的輸出對(duì)其進(jìn)行溫度補(bǔ)償校準(zhǔn),實(shí)際測(cè)得的壓力傳感器輸出值如表1所示。
表1 壓力傳感器實(shí)際輸出值
將表1中的數(shù)據(jù)繪制成曲線,如圖4所示,從表1和圖4中均可看出,在溫度的影響下壓力傳感器的輸出發(fā)生了非線性的漂移,對(duì)于高精度要求的壓力傳感器,會(huì)造成精度的損失和測(cè)量過程中的準(zhǔn)確度下降問題。
圖4 溫度對(duì)壓力傳感器的輸出影響
利用本文方法進(jìn)行溫度補(bǔ)償處理,對(duì)于粒子群算法的參數(shù)設(shè)置,首先初始化粒子的編碼長度,根據(jù)輸入節(jié)點(diǎn)個(gè)數(shù)、隱層節(jié)點(diǎn)個(gè)數(shù)以及輸出層節(jié)點(diǎn)個(gè)數(shù)計(jì)算粒子的編碼長度,初始化粒子的加速學(xué)習(xí)因子C1=C2=1.494 45,進(jìn)化次數(shù)設(shè)置為100,種群規(guī)模設(shè)置為50,粒子的速度最大值為1,速度最小值設(shè)置為-1,個(gè)體的最大值設(shè)置為5,最小值設(shè)置為-5,根據(jù)粒子的速度和位置,迭代尋優(yōu),通過引進(jìn)的更新迭代系數(shù),重新初始化粒子,通過迭代找到個(gè)體極值和群體最優(yōu)解,然后把最優(yōu)初始權(quán)值閾值賦值給網(wǎng)絡(luò),進(jìn)行網(wǎng)絡(luò)的訓(xùn)練。將BP神經(jīng)網(wǎng)絡(luò)和PSO優(yōu)化的小波神經(jīng)網(wǎng)絡(luò)進(jìn)行對(duì)比訓(xùn)練,樣本的訓(xùn)練曲線如圖5和圖6所示。
圖5 BP網(wǎng)絡(luò)的訓(xùn)練曲線
圖6 PSO優(yōu)化的小波網(wǎng)絡(luò)訓(xùn)練曲線
BP網(wǎng)絡(luò)訓(xùn)練經(jīng)過30次迭代后,最小誤差為2.411 7×10-4,而本文設(shè)置的目標(biāo)誤差為10-5,可以看出BP神經(jīng)網(wǎng)絡(luò)在訓(xùn)練時(shí)陷入了局部極小值,而圖6是將改進(jìn)PSO優(yōu)化好的權(quán)值和閾值作為小波網(wǎng)絡(luò)的初始權(quán)值和閾值,經(jīng)過40次迭代后,訓(xùn)練誤差達(dá)到了2.288 6×10-5,并且從圖6可以看出,經(jīng)過PSO優(yōu)化的小波網(wǎng)絡(luò)初始訓(xùn)練收斂速度很快,可以有效避免局部最小的問題,同時(shí)從PSO算法的適應(yīng)度曲線(圖7)中可以看出,經(jīng)過25次左右,PSO粒子可以找到最優(yōu)解。
圖7 PSO算法的適應(yīng)度曲線
將表1中的42組樣本數(shù)據(jù)通過改進(jìn)PSO優(yōu)化的小波神經(jīng)網(wǎng)絡(luò)溫度補(bǔ)償后的壓力傳感器的輸出如表2所示。與標(biāo)準(zhǔn)的壓力值相比,經(jīng)過溫度補(bǔ)償后的輸出幾乎接近標(biāo)準(zhǔn)壓力值。將表2的數(shù)據(jù)繪制成曲線如圖8所示,從圖8可以看出,在壓力傳感器工作的全溫區(qū)范圍內(nèi),在某一數(shù)值壓力下,其輸出幾乎不會(huì)受到溫度的影響,由經(jīng)過補(bǔ)償后的壓力值計(jì)算可知,全溫區(qū)的最大絕對(duì)誤差為0.109 1,其準(zhǔn)確度為0.136 4%,使用該方法溫度補(bǔ)償達(dá)到了高精度的要求,同時(shí)也提高了壓力傳感器的穩(wěn)定性和準(zhǔn)確性。
表2 補(bǔ)償后壓力傳感器的輸出
圖8 溫度補(bǔ)償后的結(jié)果
為了驗(yàn)證本文算法的優(yōu)化性能,通過對(duì)原始的小波神經(jīng)網(wǎng)絡(luò)及經(jīng)過PSO優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)等不同網(wǎng)絡(luò)模型進(jìn)行對(duì)比分析,結(jié)果如表3所示,從訓(xùn)練時(shí)間、補(bǔ)償后的準(zhǔn)確度以及訓(xùn)練誤差方面可知,采用PSO優(yōu)化的小波神經(jīng)網(wǎng)絡(luò)模型收斂速度更快,其平均訓(xùn)練時(shí)間相比傳統(tǒng)BP網(wǎng)絡(luò)模型縮短了一半左右,全溫區(qū)的準(zhǔn)確度提升到了0.136 4%,訓(xùn)練誤差相比傳統(tǒng)BP模型提升了一個(gè)數(shù)量級(jí)。
表3 網(wǎng)絡(luò)模型結(jié)果對(duì)比
通過分析電阻應(yīng)變式壓力傳感器受工作環(huán)境溫度造成的溫度漂移問題,提出采用基于改進(jìn)的PSO優(yōu)化的小波神經(jīng)網(wǎng)絡(luò)進(jìn)行溫度補(bǔ)償處理,并建立網(wǎng)絡(luò)模型驗(yàn)證了該方法的有效性和準(zhǔn)確性。通過改進(jìn)的粒子群算法優(yōu)化的小波神經(jīng)網(wǎng)絡(luò),克服了傳統(tǒng)網(wǎng)絡(luò)容易產(chǎn)生局部極小問題,使用小波函數(shù)構(gòu)成的小波神經(jīng)網(wǎng)絡(luò)對(duì)網(wǎng)絡(luò)的整體推廣能力有更進(jìn)一步的提升。從補(bǔ)償效果可以看出,該方法可以有效地消除溫度對(duì)壓力傳感器輸出的非線性影響,全溫區(qū)的準(zhǔn)確度提升到了0.136 4%,同時(shí)相較于其他的網(wǎng)絡(luò)模型,本文溫度補(bǔ)償模型,從全溫區(qū)準(zhǔn)確度和訓(xùn)練時(shí)間上更能保證壓力傳感器的準(zhǔn)確性和高效性。