《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 業(yè)界動(dòng)態(tài) > CMAC神經(jīng)網(wǎng)絡(luò)模糊控制器設(shè)計(jì)

CMAC神經(jīng)網(wǎng)絡(luò)模糊控制器設(shè)計(jì)

2009-02-04
作者:(1)陸 軍(2)張秀梅 (3)

  摘 要: 詳細(xì)介紹了CMAC神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)、中間層作用函數(shù)地址的計(jì)算方法、輸出層權(quán)值的學(xué)習(xí)算法,并利用CMAC神經(jīng)網(wǎng)絡(luò)對(duì)水下機(jī)器人深度模糊控制器進(jìn)行了學(xué)習(xí)。仿真結(jié)果表明,訓(xùn)練得到的CMAC神經(jīng)控制器控制效果良好,中間層作用函數(shù)地址的計(jì)算方法正確。
  關(guān)鍵詞: CMAC神經(jīng)網(wǎng)絡(luò) 模糊控制 水下機(jī)器人


  小腦模型關(guān)節(jié)控制器神經(jīng)網(wǎng)絡(luò)(Cerebella Model Articulation Controller Neural Network,即CMAC NN)由J.S.Albus 于1975年首先提出并由W.T.Miller等人成功運(yùn)用于機(jī)械手的實(shí)時(shí)動(dòng)態(tài)軌跡跟蹤控制。與多層前項(xiàng)神經(jīng)網(wǎng)絡(luò)這樣的全局逼近神經(jīng)網(wǎng)絡(luò)[1]相比,CMAC神經(jīng)網(wǎng)絡(luò)在任意時(shí)刻的學(xué)習(xí)都是少數(shù)的輸出層權(quán)值的調(diào)節(jié)過程,并且是一個(gè)線性優(yōu)化過程,因此具有學(xué)習(xí)速度快的特點(diǎn),非常適合于在線實(shí)時(shí)控制。對(duì)于大多數(shù)的控制問題,完全可以達(dá)到與多層前向神經(jīng)網(wǎng)絡(luò)相同的控制效果。目前,CMAC神經(jīng)網(wǎng)絡(luò)被越來越多地應(yīng)用于機(jī)器人控制、模式識(shí)別、信號(hào)處理以及自適應(yīng)控制等領(lǐng)域。
1 CMAC的結(jié)構(gòu)及工作原理
  CMAC是類似于感知器的基于網(wǎng)格基的聯(lián)想記憶神經(jīng)網(wǎng)絡(luò)。它由輸入層、中間層和輸出層組成。在輸入層與中間層和中間層與輸出層之間分別有由設(shè)計(jì)者預(yù)先確定的輸入層非線性映射和輸出層權(quán)值的自適應(yīng)線性映射。在輸入層對(duì)n維輸入空間進(jìn)行劃分,形成一個(gè)n維網(wǎng)格基,任意一個(gè)輸入都降落到此n維網(wǎng)格基的一個(gè)超立方體單元內(nèi)。中間層由若干個(gè)基函數(shù)構(gòu)成,對(duì)任意一個(gè)輸入只有少數(shù)幾個(gè)基函數(shù)的輸出為非零值,我們稱非零輸出的基函數(shù)為作用基函數(shù),作用基函數(shù)的個(gè)數(shù)為泛化參數(shù)ρ(generalization parameter),它規(guī)定了網(wǎng)絡(luò)內(nèi)部影響網(wǎng)絡(luò)輸出的區(qū)域大小。中間層基函數(shù)的個(gè)數(shù)用P表示,泛化參數(shù)應(yīng)滿足ρ<<P。在中間層的基函數(shù)與輸出層的網(wǎng)絡(luò)輸出之間通過若干個(gè)連接權(quán)進(jìn)行連接,它是一個(gè)全連接,在網(wǎng)絡(luò)訓(xùn)練階段,可以通過梯度下降算法對(duì)權(quán)值進(jìn)行調(diào)整。CMAC神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)主要包括輸入空間的劃分、輸入層非線性映射的實(shí)現(xiàn)、輸出層權(quán)值學(xué)習(xí)算法,下面給予詳細(xì)介紹。
1.1 CMAC 輸入空間的劃分
  設(shè)計(jì)CMAC神經(jīng)網(wǎng)絡(luò)的第一步是對(duì)輸入空間的劃分方法進(jìn)行定義。設(shè)輸入向量為x=[x1x2...xn]T,且xi∈Ri,Ri為一有限區(qū)間,定義為:
  
  通常,所有左邊的外節(jié)點(diǎn)均置于ximin,所有右邊的外節(jié)點(diǎn)均置于ximax。若兩節(jié)點(diǎn)在同一位置,則稱該節(jié)點(diǎn)為重節(jié)點(diǎn)。所有這些節(jié)點(diǎn)將整個(gè)區(qū)間RI分為ri+1個(gè)子區(qū)間Rr,j(0≤j≤ri):

  內(nèi)節(jié)點(diǎn)的選區(qū)辦法可以是在區(qū)間[ximin,ximax]等間隔劃分或是根據(jù)實(shí)際問題的需要非均勻劃分,即在期望輸出變化快的區(qū)域多劃分,在期望輸出變化慢的區(qū)域少劃分。對(duì)輸入空間的劃分不僅影響網(wǎng)絡(luò)的內(nèi)存消耗,還影響網(wǎng)絡(luò)的建模能力和學(xué)習(xí)收斂速度。
1.2 CMAC輸入層非線性映射的實(shí)現(xiàn)
  設(shè)計(jì)CMAC輸入層非線性映射的目的是保證對(duì)任意一個(gè)輸入,在中間層只有ρ個(gè)基函數(shù)的輸出值為非零值,并且在輸入沿某一輸入坐標(biāo)軸平行移動(dòng)一個(gè)超立方體單元后,只有一個(gè)非零輸出的基函數(shù)與原來的不同。而在輸入沿某一坐標(biāo)軸平行移動(dòng)ρ個(gè)超立方體單元后,已無(wú)任何一個(gè)非零輸出的基函數(shù)與原來相同,這樣就保證了當(dāng)輸入相近時(shí),輸出也比較相近,當(dāng)輸入的距離較遠(yuǎn)時(shí),相應(yīng)的輸出互不相關(guān)。并且,輸出層權(quán)值的調(diào)整也是局部的,在每一次學(xué)習(xí)過程中只有ρ個(gè)權(quán)值發(fā)生調(diào)整,對(duì)兩個(gè)相近的輸入,只有少量的權(quán)值發(fā)生變化,而不影響大多數(shù)權(quán)值,這樣大大加快了網(wǎng)絡(luò)學(xué)習(xí)速度,減少了學(xué)習(xí)干擾。當(dāng)泛化參數(shù)ρ增大時(shí),學(xué)習(xí)變得缺少局部特性,網(wǎng)絡(luò)的建模能力通常也會(huì)下降。
  由于對(duì)任意一個(gè)輸入向量x,只有ρ個(gè)中間層的基函數(shù)的輸出非零,問題歸結(jié)為找到這ρ個(gè)基函數(shù)在中間層p維基函數(shù)向量a(t)中的地址。下面分別給出在輸入為一維、二維和多維情況下的作用基函數(shù)的地址的計(jì)算方法。
1.2.1 一維輸入的計(jì)算方法
  當(dāng)n=1時(shí),共有ρ個(gè)作用基函數(shù)輸出非零,其中第j個(gè)作用基函數(shù)地址ad(j)的計(jì)算方法如下:

1.2.2 二維輸入的計(jì)算方法
  當(dāng)n=2時(shí),ad(j)的計(jì)算方法如下:

1.2.3 多維輸入的計(jì)算方法
  當(dāng)n>2時(shí),第j個(gè)作用基函數(shù)地址ad(j)的計(jì)算方法如下:

1.3 CMAC 基函數(shù)的輸出
  本文采用二進(jìn)制CMAC神經(jīng)網(wǎng)絡(luò),作用基函數(shù)的輸出為1/ρ,這樣CMAC網(wǎng)絡(luò)作用基函數(shù)的輸出和為
  
1.4 CMAC 輸出層權(quán)值學(xué)習(xí)算法
  本文采用帶有輸出死區(qū)的NLMS學(xué)習(xí)算法:
  
  這里,δ為學(xué)習(xí)速率,當(dāng)δ∈(0,2)時(shí),學(xué)習(xí)收斂,輸出誤差。
2 水下機(jī)器人CMAC神經(jīng)網(wǎng)絡(luò)控制器設(shè)計(jì)
  采用CMAC神經(jīng)網(wǎng)絡(luò)對(duì)水下機(jī)器人深度模糊控制器進(jìn)行學(xué)習(xí),從而得到水下機(jī)器人CMAC神經(jīng)網(wǎng)絡(luò)控制器。
2.1 水下機(jī)器人深度模糊控制器
  本文對(duì)某水下機(jī)器人深度通道設(shè)計(jì)了一PD型模糊控制器,以系統(tǒng)輸出誤差e及誤差變化率e’作為模糊控制器的輸入,e∈[-1.5m,1.5m],e’∈[-0.5m/s,0.5m/s],模糊控制器的輸出是z軸方向上的推力,u∈[-270N,270N]。模糊控制器的輸入和輸出語(yǔ)言變量的模糊子集均為NL(負(fù)大)、NM(負(fù)中)、NS(負(fù)小)、ZE(零)、PS(正小)、PM(正中)、PL(正大)。模糊隸屬函數(shù)采用等腰三角形,且隸屬函數(shù)的重合度為2,采用Mandani推理方法。模糊控制規(guī)則表如表1所示。


  模糊控制器的輸出曲面見圖1,模糊控制器作用下的系統(tǒng)輸出見圖2。

  


2.2 水下機(jī)器人CMAC神經(jīng)網(wǎng)絡(luò)深度控制器
  本文利用CMAC神經(jīng)網(wǎng)絡(luò)對(duì)水下機(jī)器人CMAC模糊深度控制器進(jìn)行學(xué)習(xí),以模糊控制規(guī)則的前件和后件隸屬函數(shù)的中心對(duì)應(yīng)的e、e’和u的取值作為訓(xùn)練樣本對(duì),組成49個(gè)訓(xùn)練樣本對(duì)。CMAC神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)參數(shù)如下:泛化參數(shù)ρ=5,輸入空間為均勻劃分,劃分?jǐn)?shù)為20*20,覆蓋偏移向量d1=[1 3]T,d2=[2 1]T,d3=[3 4]T,d4=[4 2]T,d5=[5 5]T,輸出死區(qū)ζ=5。訓(xùn)練得到的CMAC神經(jīng)網(wǎng)絡(luò)深度控制器輸出曲面見圖3,該控制器作用下的系統(tǒng)輸出見圖4。

  


參考文獻(xiàn)
1 孫增圻.智能控制理論及應(yīng)用.北京:清華大學(xué)出版社,廣西科學(xué)技術(shù)出版社,1997
2 石寺博.遙控?zé)o人潛器的運(yùn)動(dòng)仿真.船工技術(shù)譯叢,1987(3):53~62
3李士勇,夏乘志.模糊控制和智能控制理論與應(yīng)用.哈爾濱工業(yè)大學(xué)出版社,1990

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。