超聲波液位計液態介質測量高精度的探討 三十五
4.4.3訓練結果
訓練一個單隱層的三層BP網絡,根據如下經驗公式選擇隱層節點數。
由此可以看出:
(1)增加隱層節點數可以減少訓練誤差,但超過10以后測試誤差產生波動,即泛化能力發生變化。綜合比較隱層節點數為10與12的訓練誤差和測試誤差,決定隱層節點數選用。
(2)訓練誤差和測試誤差都很大,而且收斂速度極慢,這個問題可以通過對輸出量進行歸一化來解決。根據Sigmoid型傳遞函數輸入和輸出的范圍,對輸入變量不進行歸一化處理,只對輸出變量進行歸一化,這是因為在輸出數據要求歸一化的同時,對輸入數據也進行
歸一化的話,權值的可解釋性就更差了。
這樣靠近數據變化區間端點的網絡輸出值就有一波動范圍,網絡的性能較好。用新生成的訓練樣本與測試樣本對隱層節點數為10的網絡進行訓練。
4.5最終訓練后的神經網絡結構
4.5.1 BP網絡模型編程及訓練
確定如下的超聲波傳感器速度模型和訓練方法:單隱層BP網絡,輸入層兩個節點,當u很大時上式接近于梯度法,當Ⅱ很小時上式變成了Gauss—Newton法,在這種方法中,u也是自適應調整的。利用Matlab7 l構造了神經網絡并訓練,由于采用tansig傳遞函數,所以用表4 2的35組數據作樣本,其巾25組數據作訓練樣本,10組作測試樣本,對輸入變量和輸出變量進行簡單的歸一化處理后.
采用三層BP網絡實現溫度、濕度與聲波速度的轉換關系,其中隱層含有10個節點,傳遞函數采用tansig函數;輸出層傳遞函數選用purelin函數。經過測試后結果滿意,可以認為該神經網絡可以用來實現這個關系映射。
把在MatIab環境下訓練完成后返回的權值wl、w2,閾值b1、b2保存留用,在應用系統編程時用C語言構造相同的BP網絡,編寫一個前向計算函數,獲得系統的在線數據(當時環境下的超聲波傳播速度)。
實驗證明:如果僅考慮溫度補償,利用回波測距法測得在不同溫度和濕度下實際距離為3米的誤差。
實驗結果表明,利用BP神經網絡能很好地逼近非線性函數的特點,解決了超聲波回波測距法在不同的環境下測量誤差大的缺點,同時由于是采用了編程軟件的方法,當所測液體種類發生變化時無須修改硬件,而只須重新測量出正確樣本,離線訓練好網絡,提取出新的參數,在應用系統的軟件中替換原有參數即可適應新的環境和不同的測量對象,使所設計的液位計在測量時不僅精度高而且具有良好的通用性。
詳情請瀏覽公司網站的產品中心 http://m.sol365.cn/ 超聲波液位計