基于CMAC神經(jīng)網(wǎng)絡(luò)的PID參數(shù)自整定方法的研究
1)基函數(shù)的布置和總數(shù)
2)高階基函數(shù)
當(dāng)初始CMAC網(wǎng)絡(luò)使用二值基函數(shù)時(shí),它的輸出是分段連續(xù)的,即在每個(gè)網(wǎng)格內(nèi)是連續(xù)的,在輸入軸節(jié)點(diǎn)處是間斷的。要使網(wǎng)絡(luò)有連續(xù)的輸出,必須要求基函數(shù)的輸出在其定義域的邊界上為0。本設(shè)計(jì)中,用表示距離,表示單變量函數(shù),采用無(wú)窮大泛數(shù)基函數(shù)實(shí)現(xiàn)連續(xù)輸出。
并利用無(wú)窮大泛數(shù)計(jì)算距離時(shí),可以使基函數(shù)在定義域邊界的輸出為0,在定義域中心的輸出為1/ρ。在一維情況下,其他輸出值是在這兩個(gè)極值間的線性插值。在二維輸入空間中,基函數(shù)輸出呈“金字塔”型。
3)內(nèi)存雜散技術(shù)
CMAC網(wǎng)絡(luò)對(duì)內(nèi)存的需求量正比于的指數(shù)倍,所以它是很大的。對(duì)高維輸入,基函數(shù)的數(shù)量可以由公式(5)近似地計(jì)算出來(lái)。由于要求基函數(shù)的數(shù)量要小于網(wǎng)格的數(shù)量(pp‘,p‘是CMAC網(wǎng)絡(luò)中網(wǎng)格的數(shù)量),所以一般的算法只適用于維數(shù)較低或者適中的網(wǎng)絡(luò)輸入,如果維數(shù)較高,就要使用內(nèi)存雜散技術(shù)。內(nèi)存雜散技術(shù)是將分布稀疏、占用較大存儲(chǔ)空間的數(shù)據(jù)作為一個(gè)偽隨機(jī)發(fā)生器的變量,產(chǎn)生一個(gè)占用空間較小的隨機(jī)地址,而在這個(gè)隨機(jī)地址內(nèi)就存放著占用大量?jī)?nèi)存空間地址內(nèi)的數(shù)據(jù),這就完成了由多到少的映射。
4)CMAC神經(jīng)網(wǎng)絡(luò)的編程實(shí)現(xiàn)
CMAC神經(jīng)網(wǎng)絡(luò)的算法主要函數(shù)是由C語(yǔ)言編程實(shí)現(xiàn)的。本設(shè)計(jì)中的代碼是在VisualC++平臺(tái)上調(diào)試實(shí)現(xiàn)的。intallocate_cmac(intnum_state,int*qnt_state,intnum_cell,intmemory,intfield_shape,intcollision_flag);allocate函數(shù)用指定的參數(shù)為CMAC網(wǎng)絡(luò)在內(nèi)存中分配空間。num_state是輸入向量的維數(shù);*qnt_state是指向維數(shù)組的指針,這個(gè)數(shù)組定義了每一維輸入向量的量化精度;num_cell是泛化系數(shù)ρ;memory占用內(nèi)存空間的數(shù)量;field_shape設(shè)置基函數(shù)的類型;collision_flag訓(xùn)練沖突標(biāo)記,若沖突發(fā)生返回TRUE,反之為FALSE。
MATLAB中的編譯與調(diào)用時(shí),采用MEX技術(shù)來(lái)完成MATLAB中調(diào)用CMAC網(wǎng)絡(luò)算法的C語(yǔ)言代碼
4CMAC神經(jīng)網(wǎng)絡(luò)訓(xùn)練
CMAC神經(jīng)網(wǎng)絡(luò)的主要參數(shù)有:輸入變量的量化精度、泛化參數(shù)以及基函數(shù)的種類。對(duì)CMAC神經(jīng)網(wǎng)絡(luò)的三個(gè)輸入分別進(jìn)行量化,阻尼比ζ分為23級(jí),超調(diào)量百分比σ分為12個(gè)等級(jí),衰減振蕩周期Tc分為20個(gè)等級(jí),共有23*12*20=5520種訓(xùn)練模式。
在所有5520種訓(xùn)練模式中選取2000種,作為CMAC參數(shù)整定網(wǎng)絡(luò)的選練樣本。再在2000組特征參數(shù)模式中選取1620組特征參數(shù)模式作為訓(xùn)練集對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
建立輸入到物理存儲(chǔ)空間的映射,同時(shí)建立了物理存儲(chǔ)空間與輸出的關(guān)系。泛化參數(shù)選為32,學(xué)習(xí)算法采用了誤差糾正算法。學(xué)習(xí)率β為0.6,采用樣條函數(shù)SPLINE替代傳統(tǒng)的ALBUS函數(shù)作為CMAC神經(jīng)網(wǎng)絡(luò)的基函數(shù)。ALBUS函數(shù)的輸出只有0和1,因此輸出的曲線分段連續(xù),僅在內(nèi)節(jié)點(diǎn)之間連續(xù),在內(nèi)節(jié)點(diǎn)的分界處往往是不連續(xù)的。而樣條函數(shù)則可以較好的解決這個(gè)問題。相應(yīng)的內(nèi)存使用量為300。
pid控制器相關(guān)文章:pid控制器原理
評(píng)論