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