吳凱楓,張立新,王軍昂,王賽,凌云
(南京信息工程大學 自動化學院,江蘇南京,210044)
隨著物聯網時代到來,傳感器將作為基礎設施得到先行發展,傳感器的應用已滲透進到消費電子、醫療診斷、工業自動化、汽車電子、環境監測等領域[1]。傳感器作為一種測量裝置,可以將一種不可直接獲取的信息按照某一種傳感機理轉化為電信號或者其他某種可以測量并且量化標定的指標。相較于傳統工藝制作的傳感器,MEMS 傳感器(微機電系統)在質量、體積、線性度、靈敏度、功耗、集成性方面均占據優勢,并日益受傳感器領域的學者、市場和企業的重視與青睞。
其中MEMS壓阻式壓力傳感器具有靈敏度高、測量精度高、穩定性好等優點,但是它有相應弊端即輸出壓力會受到溫度變化的影響,其中高溫與低溫區域影響很大。開發廠家通常會通過硬件補償、最小二乘法多項式擬合補償法來對傳感器進行精度校準,但校準出來的結果依舊不盡如人意[2~3]。近些年,市面上出現了通過BP神經網絡的方法對傳感器輸出進行精度校準,而校準精度確實相對于之前的方法有了一定的提高。本文通過遺傳算法來優化BP神經網絡并且在遺傳算法部分加入精英反向學習的思想來獲得更高質量的種群,并導入采集的一萬組數據進行仿真實驗,仿真結果表明,改進的GA-BP神經網絡在壓力傳感器輸出誤差上比BP神經網絡法有一定的提高。
本文采用的是硅-硅鍵合結構的 MEMS 壓阻式壓力傳感器,采用N型襯底、P型壓阻形成惠斯頓全橋。壓阻式壓力傳感器內部的壓阻元件遵循半導體材料的壓阻效應,當它受到外力的作用時,其內部的電子遷移率會發生變化導致它的壓阻率也隨著發生變化從而輸出壓力[4~5]。由于壓力傳感器本身對溫度的變化也十分敏感,因此本文需要采集統一時刻的壓力ADC值、溫度ADC值以及期望輸出壓力值進行實驗分析。壓力傳感器模組數據采集框圖如圖1所示。
Labview是NI公司推出的一款上位機圖形化編程軟件,其內部采用圖形化編程語言,相較于VC而言,它不僅能實現同樣功能,而且更加通俗直觀易懂[6]。Labview軟件的各種應用非常契合嵌入式開發,它可以通過使用者在單片機中構造的協議來實現單片機與上位機的通訊,并通過圖形編程的方式使得原本需要耗時耗力地工作在短時間內完成。本文所需要采集的是由單片機所發出的壓力ADC、溫度ADC兩種數據,分別為24位十六進制數。通過此上位機分別采集2850組數據,其中數據的溫度量程為-20℃~100℃,壓力量程為50kPa~150kPa。
本文制作的上位機前面板如圖2所示。
BP神經網絡是一種按誤差反向傳播算法訓練的多層前饋網絡,通常用來進行數據的分類與預測。BP神經網絡就是不斷優化系統本身的權值和閾值,一般通過正向傳輸和誤差反向傳輸兩種方式對權值與閾值進行優化更新。BP神經網絡通過不斷的學習與更新參數,最終讓誤差減小在最初設定的范圍內[7~8]。神經網絡模型圖如圖3所示。
設BP神經網絡有i個輸入層神經元,j個隱含層神經元,k個輸出層神經元,輸入層和隱含層的權值為ijω,隱含層和輸出層的權值為 jkω,隱含層第m個神經元的閾值mθ,輸出層第n個神經元的閾值為nb,隱含層的激活函數為1f,輸出層的激活函數為2f,并且通過梯度下降法來更新權值與閾值。
隱含層第m個節點輸出為:
輸出層第n個節點輸出為:
均方誤差為:
遺傳算法是模擬生物在自然環境下的遺傳和進化過程的一種自適應的全局優化搜索算法,其本質是選擇—交叉—變異算子的循環過程,直到找到最優結果或者滿足終止條件。
遺傳操作主要是根據適應度函數來“選擇”適應性強的染色體;對染色體之間進行“交叉”操作;單個染色體本身也會因為突變而“變異”成一個新的染色體。
選擇算子為根據染色體的適應度,從第n代中挑選出一些優質的染色體遺傳到下一代(n+1)群體之中。而染色體的適應度越高,它被挑選中的概率也就越大。
交叉算子為將這一代群體中的每個染色體通過一定概率隨機搭配交叉,從而產生新的染色體,而這一操作也是可以提高整體算法的全局搜索能力。
變異算子為針對這一代群體中的每個染色體,都以一定概率來對它們進行基因變異操作,從而產生新的染色體,這一操作同樣可以提高算法的搜索能力。
通過遺傳算法的特性,可以找到一對最適合的初始值作為BP神經網絡的初始權值與閾值,從而提高整理算法的全局尋優能力,也加快了算法的計算時間。
精英反向學習是通過當前問題以求得的可行解來構造反向解,從而達到增加種群多樣性的目的,最后在當前可行解與反向解中挑選出部分最優解來構建下一代高質量種群[9]。
BP神經網絡雖然自身有比較好的學習能力,可以利用它去發掘輸入輸出數據樣本之間的非線性關系,但是它在優化過程中使用的是梯度下降法的方式來尋找全局最優解,這使得模型的初始權值與閾值對模型的影響很大,當初始權值與閾值越好,那么BP神經網絡將會越快到達全局最優解,這能加快算法本身的計算速度,獲得的結果也將更精確有效。由于BP神經網絡的初始權值與閾值是通過取隨機數的方式確定的,這樣的初始值很可能使得BP神經網絡不但運算速度要慢,而且還容易陷入局部最優解,這樣將導致所得的結果并不是理想的結果。因此本文利用遺傳算法能提高全局尋優能力的優勢來優化BP神經網絡,通過遺傳算法的幫助可以尋找到一組最適合的初始權值與閾值,這組初始值相比于原有的權值和閾值隨機性更小,從而有效地克服了其容易陷入局部最優解的缺陷,并且在遺傳算法地構建新一代種群階段結合精英反向學習的思想,利用適應度函數來判斷一般解與反向解的優劣勢來進行染色體選擇,從而達到獲得更高質量種群的目的。算法整體流程圖如圖4所示。
首先用Labview制作數據采集上位機來采集壓力傳感器模組的壓力ADC、溫度ADC數據作為輸入,所受壓力作為輸出存儲在excel表中。
建立BP神經網絡的拓撲結構,對初始權值、閾值進行編碼,將已經進行歸一化操作后的輸入樣本進行計算適應度函數,并在種群個體經過選擇、交叉、變異后,將此刻的個體利用精英反向學習策略進行反向解的求解,因為GA-BP神經網絡算法中的適應度函數是一個誤差函數,即求解的是最小值問題,故挑選所得的解中誤差較低的部分來組成下一代新種群。當滿足迭代次數等條件后,算法將會找到一組最合適的初始權值與閾值,并賦給BP神經網絡,接著通過梯度下降法來不斷地減小誤差,不斷地更新權值和閾值,最后得出訓練模型并且計算平均絕對誤差MAE、平均絕對百分比誤差MAPE來驗證模型的精度。
本實驗仿真采用Matlab R2019b編程軟件平臺,將采集到的2850組數據導入到Matlab軟件中進行仿真實驗。
如圖5、圖6、表1所示,BP神經網絡的預測平均絕對百分比誤差為2.1038%,改進BP神經網絡的預測平均絕對百分比誤差為0.13623%,從結果可以看出基于精英反向學習的GA-BP神經網絡的預測誤差比BP神經網絡預測誤差小一個量級,從而可證明加入精英反向學習策略的GA-BP神經網絡的方法可以明顯提高壓力傳感器輸出的精度。

表1 測試實驗結果數據
為了提高壓力傳感器模組的精度,本文采用基于精英反向學習的GA-BP神經網絡的方法,利用精英反向學習策略,可以找到質量更高的染色體來組成新種群的優勢,確實達到了實驗目的。相較于市場上常用的最小二乘法擬合而言,這種方法精度有了顯著的提高。