您的位置:網(wǎng)站首頁 > 電器維修資料網(wǎng) > 正文 >
神經(jīng)網(wǎng)絡(luò)在測控系統(tǒng)中的實(shí)現(xiàn)
來源: 日期:2013-11-15 15:35:31 人氣:標(biāo)簽:
由于神經(jīng)網(wǎng)絡(luò)模型是一種較為復(fù)雜的運(yùn)算,要在單片機(jī)中實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)算法,無論是單片機(jī)硬件還是神經(jīng)網(wǎng)絡(luò)模型的軟件算法都會受到其復(fù)雜性的影響。由于單片機(jī)的浮點(diǎn)運(yùn)算能力較差,所以我們除了要對硬件電路進(jìn)行優(yōu)化以外還要對軟件算法上進(jìn)行修改。
首先,簡化復(fù)雜函數(shù)。用單片機(jī)實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)模型算法時,進(jìn)行浮點(diǎn)運(yùn)算和計(jì)算復(fù)雜的函數(shù),例如tant函數(shù),是造成計(jì)算速度減慢的兩大因素。單片機(jī)系統(tǒng)的特點(diǎn)就決定了其浮點(diǎn)運(yùn)算能力不會得到提高,但是對于復(fù)雜函數(shù)的計(jì)算,可以利用分段多項(xiàng)式擬合的方法提高運(yùn)算精度。例如我們擬合tanh函數(shù),由于多項(xiàng)式函數(shù)不是連續(xù)的,在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時是不可以替代tanh的,但是為了簡化運(yùn)算,對于訓(xùn)練后網(wǎng)絡(luò)用多項(xiàng)式擬合其傳遞函數(shù)是符合實(shí)際需要的。例如我們選擇12mhz的at89c51單片機(jī),分別采用tanh函數(shù)和多項(xiàng)式擬合函數(shù)所得的神經(jīng)網(wǎng)絡(luò)模型的輸出,如下表所示。
從上面我們可以看出,雖然簡化傳遞函數(shù)之后,運(yùn)算時間減少了,但是實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)模型算法對單片機(jī)而言還是一個沉重的負(fù)擔(dān),在實(shí)際設(shè)計(jì)中要考慮設(shè)計(jì)應(yīng)用條件的限制,在保證一定預(yù)測精度的前提下,神經(jīng)網(wǎng)絡(luò)模型應(yīng)當(dāng)是越簡單越好。
其次,減少中間變量。神經(jīng)網(wǎng)絡(luò)模型的權(quán)值、閾值以及中間變量很多,但是單片機(jī)的程序區(qū)rom和數(shù)據(jù)區(qū)ram存儲量都是有限的,勢必要增加外部儲存器,但是又因?yàn)闇y控系統(tǒng)受體積的限制避免增減外接存儲器,因此在實(shí)現(xiàn)算法時要將權(quán)值和閾值等參數(shù)寫成立即數(shù)的形式,減少資源的占用,如下表所示。
我們可以看出,基于單片機(jī)的測控系統(tǒng)能實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)算法并且滿足實(shí)際測控的需要,但是神經(jīng)網(wǎng)絡(luò)算法也要簡化,保證在一定預(yù)測精度的前提下選用簡單的網(wǎng)絡(luò)模型,簡化傳遞函數(shù)。該例的程序可以分為兩個部分,分別是神經(jīng)網(wǎng)絡(luò)簡化前的程序和簡化后用多項(xiàng)式擬合的程序。
下面是單片機(jī)完成神經(jīng)網(wǎng)絡(luò)模型算法的c語言程序代碼。
上面介紹了單片機(jī)實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)算法的原理、實(shí)現(xiàn)方式及程序源代碼。神經(jīng)網(wǎng)絡(luò)方法可以用在測控等領(lǐng)域,例如可以用來作為模型飛機(jī)的預(yù)測航向,模式識別、信號處理、知識工程、專家系統(tǒng)、優(yōu)化組合、機(jī)器人控制等。隨著神經(jīng)網(wǎng)絡(luò)理論本身以及相關(guān)理論、相關(guān)技術(shù)的不斷發(fā)展,神經(jīng)網(wǎng)絡(luò)的應(yīng)用定將更加深入。
【看看這篇文章在百度的收錄情況】