新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 采用FPGA的SOPC技術研究了傳感器非線性軟件校正的

        采用FPGA的SOPC技術研究了傳感器非線性軟件校正的

        作者: 時間:2009-12-02 來源:網絡 收藏

        2.3神經網絡校正算法

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


        3 算法測試
        本文采用三層前向網絡,輸入層神經元2個,分別代表溫度ADS90和氣體TGS813輸入信號,DS18B20的測量值作為AD590的期望值,輸出層神經元1個,代表AD590的校正值。

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



        圖4是58對訓練樣本完成網絡訓練后的測試結果。由于BP神經網絡的性能受隱含層節點個數影響比較大,圖中數據是在不同隱含層節點個數的條件下得到的,并與MATLAB軟件仿真得到的結果作了比較。網絡訓練的條件:學習率為0.1,動量系數為0.9,增益為1,SOPC停止迭代的判斷條件是輸出絕對誤差累加和小于0.01,MATLAB停止迭代的判斷條件是均方根誤差小于0.0001,圖中,n代表隱含層節點個數。

        由于采用的是12 bit的A/D轉換芯片,采集數據送入系統板后,經過歸一化處理,數據類型發生變化。與MATLAB仿真軟件輸出結果保持一致,基于的神經網絡輸出取小數點后4位有效數字。由圖4可以得出:雖然在個別測試點上基于MATLAB軟件仿真結果優于SOPC的輸出結果,但在隱含層節點對算法性能的影響程度上,基于SOPC技術的輸出受到的影響比較小,穩定性好,這與SOPC技術采用32位字長有很大關系。
        4 結論

        基于的SOPC技術不同于IC芯片設計,它是把已有的模塊資源組合成一個系統,系統的功能直接由載體FPGA芯片實現;它又不同于傳統的基于單片微處理器的系統設計,因為SOPC系統的微處理器性能和外圍接口控制電路都是由用戶編程設定的,因此,采用SOPC技術可以節省成本,提高資源利用率,縮短開發周期和便于系統升級等特點。本文采用基于FPGA的SOPC非線性軟件校正的問題。算法的測試結果證實了方法的可行性。



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阜新市| 玉屏| 辰溪县| 丘北县| 察雅县| 阜阳市| 红河县| 靖宇县| 余姚市| 罗山县| 四川省| 祁东县| 年辖:市辖区| 漳州市| 方城县| 彭州市| 桂东县| 绵竹市| 定远县| 新竹县| 曲水县| 玉山县| 溧水县| 尼玛县| 临清市| 吴桥县| 元谋县| 长泰县| 定结县| 顺平县| 涪陵区| 大化| 尤溪县| 甘孜县| 康保县| 普兰店市| 雷州市| 县级市| 阳高县| 连南| 静乐县|