控制器的參數(shù)整定是通過對PID控制器參數(shù)(KP,KI,KD)的調(diào)整,使得系統(tǒng)的過渡過程達(dá)到滿意的質(zhì)量指標(biāo)要求。PID參數(shù)的整定一般需要經(jīng)驗豐富的工程技術(shù)人員來完成,既耗時又耗力,加之實際系統(tǒng)千差萬別,又有滯后非線性等因素,使PID參數(shù)的整定有一定的難度,致使許多PID控制器沒能整定的很好;這樣的系統(tǒng)自然無法工作在令人滿意的狀態(tài),為此人們提出了自整定PID控制器。將過程動態(tài)性能的確定和PID控制器參數(shù)的計算方法結(jié)合起來就可實現(xiàn)PID控制器的自整定[1,2]。 筆者設(shè)計出一種基于CMAC小腦模型神經(jīng)網(wǎng)絡(luò)的PID參數(shù)自整定的控制系統(tǒng),從而實現(xiàn)PID參數(shù)的快速整定,并且使得PID的參數(shù)整定達(dá)到一定的精度。 1 CMAC神經(jīng)網(wǎng)絡(luò) CMAC(Cerebellarmodelarticulationcontroller)是J.S.Albus在1975年提出的一種模擬小腦功能的神經(jīng)網(wǎng)絡(luò)模型。CMAC是一種聯(lián)想網(wǎng)絡(luò),對每一輸出只有小部分神經(jīng)元(由輸入決定)與之相關(guān),它的聯(lián)想具有局部泛化能力,即相似的輸入將產(chǎn)生相似的輸出,而遠(yuǎn)離的輸入產(chǎn)生幾乎獨立的輸出。CMAC與感知器比較相似,雖然從每個神經(jīng)元看其關(guān)系是一種線性關(guān)系,但從結(jié)果總體看,它適合一種非線性的映射,因而可以把CMAC看作一個用于表達(dá)非線性映射(函數(shù))的表格系統(tǒng)。由于它的自適應(yīng)調(diào)節(jié)(學(xué)習(xí))是在線性映射部分,所以其學(xué)習(xí)算法是簡單的算法,收斂速度比BP快得多,且不存在局部極小問題。CMAC神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。 圖1CMAC結(jié)構(gòu) 2 系統(tǒng)原理 系統(tǒng)的工作原理為:當(dāng)閉環(huán)控制系統(tǒng)受到擾動時,對系統(tǒng)誤差的時間特性進(jìn)行模式識別,首先得出系統(tǒng)誤差曲線的峰值及時間,如圖2所示。 圖2給定值階躍變化時的誤差e(t)曲線 再根據(jù)以下公式得出該過程響應(yīng)曲線的多個特征參數(shù)ei(i=1,2,3)分別為:超調(diào)量σ,阻尼比ζ和衰減振蕩周期T。 將識別出的三個特征參數(shù)作為輸入送入CMAC參數(shù)整定網(wǎng)絡(luò),經(jīng)計算后得出相應(yīng)的PID參數(shù)的變化量( ),再將所得參數(shù)送入PID控制器,從而實現(xiàn)PID參數(shù)的自整定。PID參數(shù)自整定系統(tǒng)如圖3所示。 圖3PID參數(shù)自整定控制系統(tǒng) 在本CMAC神經(jīng)網(wǎng)絡(luò)中,獲取系統(tǒng)誤差特性曲線中的三個特征參數(shù),每個特征參數(shù)根據(jù)表的劃分,成為一個特征參數(shù)等級。當(dāng)每個區(qū)域的特征參數(shù)大小都確定時,就組成了一個特征參數(shù)模式。當(dāng)獲取的特征值發(fā)生變化時,相應(yīng)的模式也發(fā)生變化。因而本文建立的CMAC網(wǎng)絡(luò)的輸入是一個3個分量組成的向量,即選取的三個特征值(阻尼比,超調(diào)量百分比,衰減振蕩周期)也可稱為特征參數(shù)模式。由于PID控制器需整定的參數(shù)為3個,所以,CMAC網(wǎng)絡(luò)的輸出為3個分量組成的向量。每一個元素與PID控制器中的一個待整定參數(shù)相對應(yīng)。 3 CMAC神經(jīng)網(wǎng)絡(luò)的改進(jìn)與實現(xiàn) 1)基函數(shù)的布置和總數(shù) 2)高階基函數(shù) 當(dāng)初始CMAC網(wǎng)絡(luò)使用二值基函數(shù)時,它的輸出是分段連續(xù)的,即在每個網(wǎng)格內(nèi)是連續(xù)的,在輸入軸節(jié)點處是間斷的。要使網(wǎng)絡(luò)有連續(xù)的輸出,必須要求基函數(shù)的輸出在其定義域的邊界上為0。本設(shè)計中,用表示距離,表示單變量函數(shù),采用無窮大泛數(shù)基函數(shù)實現(xiàn)連續(xù)輸出。 并利用無窮大泛數(shù)計算距離時,可以使基函數(shù)在定義域邊界的輸出為0,在定義域中心的輸出為1/ρ。在一維情況下,其他輸出值是在這兩個極值間的線性插值。在二維輸入空間中,基函數(shù)輸出呈“金字塔”型。 3)內(nèi)存雜散技術(shù) CMAC網(wǎng)絡(luò)對內(nèi)存的需求量正比于的指數(shù)倍,所以它是很大的。對高維輸入,基函數(shù)的數(shù)量可以由公式(5)近似地計算出來。由于要求基函數(shù)的數(shù)量要小于網(wǎng)格的數(shù)量(p<<p‘,p‘是CMAC網(wǎng)絡(luò)中網(wǎng)格的數(shù)量),所以一般的算法只適用于維數(shù)較低或者適中的網(wǎng)絡(luò)輸入,如果維數(shù)較高,就要使用內(nèi)存雜散技術(shù)。內(nèi)存雜散技術(shù)是將分布稀疏、占用較大存儲空間的數(shù)據(jù)作為一個偽隨機(jī)發(fā)生器的變量,產(chǎn)生一個占用空間較小的隨機(jī)地址,而在這個隨機(jī)地址內(nèi)就存放著占用大量內(nèi)存空間地址內(nèi)的數(shù)據(jù),這就完成了由多到少的映射。 4)CMAC神經(jīng)網(wǎng)絡(luò)的編程實現(xiàn) CMAC神經(jīng)網(wǎng)絡(luò)的算法主要函數(shù)是由C語言編程實現(xiàn)的。本設(shè)計中的代碼是在VisualC++平臺上調(diào)試實現(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ù)組的指針,這個數(shù)組定義了每一維輸入向量的量化精度;num_cell是泛化系數(shù)ρ;memory占用內(nèi)存空間的數(shù)量;field_shape設(shè)置基函數(shù)的類型;collision_flag訓(xùn)練沖突標(biāo)記,若沖突發(fā)生返回TRUE,反之為FALSE。 MATLAB中的編譯與調(diào)用時,采用MEX技術(shù)來完成MATLAB中調(diào)用CMAC網(wǎng)絡(luò)算法的C語言代碼 4 CMAC神經(jīng)網(wǎng)絡(luò)訓(xùn)練 CMAC神經(jīng)網(wǎng)絡(luò)的主要參數(shù)有:輸入變量的量化精度、泛化參數(shù)以及基函數(shù)的種類。對CMAC神經(jīng)網(wǎng)絡(luò)的三個輸入分別進(jìn)行量化,阻尼比ζ分為23級,超調(diào)量百分比σ分為12個等級,衰減振蕩周期Tc分為20個等級,共有23*12*20=5520種訓(xùn)練模式。 在所有5520種訓(xùn)練模式中選取2000種,作為CMAC參數(shù)整定網(wǎng)絡(luò)的選練樣本。再在2000組特征參數(shù)模式中選取1620組特征參數(shù)模式作為訓(xùn)練集對網(wǎng)絡(luò)進(jìn)行訓(xùn)練。 建立輸入到物理存儲空間的映射,同時建立了物理存儲空間與輸出的關(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é)點之間連續(xù),在內(nèi)節(jié)點的分界處往往是不連續(xù)的。而樣條函數(shù)則可以較好的解決這個問題。相應(yīng)的內(nèi)存使用量為300。 訓(xùn)練收斂后,權(quán)值體現(xiàn)了特征參數(shù)與PID控制器的待整定參數(shù)的關(guān)系。圖4所示為CMAC神經(jīng)網(wǎng)絡(luò)對1620組特征參數(shù)模式的訓(xùn)練誤差曲線。 圖4CMAC訓(xùn)練誤差曲線 圖5所示為1620組訓(xùn)練數(shù)據(jù)送入CMAC神經(jīng)網(wǎng)絡(luò)訓(xùn)練后,訓(xùn)練數(shù)據(jù)在各個誤差區(qū)間中的個數(shù),可看出超過90%的訓(xùn)練數(shù)據(jù)具有較高的誤差精度,即誤差精度<0.1。 圖5訓(xùn)練數(shù)據(jù)在各誤差區(qū)間中的個數(shù) 把選取的2000種特征參數(shù)模塊中剩下的380組作為測試集,對訓(xùn)練后的CMAC參數(shù)整定網(wǎng)絡(luò)進(jìn)行測試。輸出的控制參數(shù)變化值與學(xué)習(xí)樣本期望結(jié)果進(jìn)行對比,錯誤率為7.8%,說明CMAC網(wǎng)絡(luò)訓(xùn)練比較成功,具有一定的泛化能力。圖6所示為CMAC神經(jīng)網(wǎng)絡(luò)的測試誤差曲線。圖7所示為測試數(shù)據(jù)在各誤差區(qū)間中的個數(shù)。 圖6CMAC測試誤差曲線 圖7測試數(shù)據(jù)在各誤差區(qū)間中的個數(shù) 5 仿真結(jié)果 選取被控對象為: ,原控制器對此對象的控制性能達(dá)到要求,階躍擾動曲線如圖8中線1所示。當(dāng)進(jìn)行PID參數(shù)自整定,整定后的響應(yīng)曲線為圖8中線2,把特征參量送入CMAC參數(shù)整定網(wǎng)絡(luò),整定后參數(shù)為 。從仿真圖中,我們可以看出PID參數(shù)的整定效果比較理想,且CMAC神經(jīng)網(wǎng)絡(luò)的達(dá)到穩(wěn)定的訓(xùn)練時間也比較短。 圖8整定前后的響應(yīng)曲線 6結(jié)論 仿真結(jié)果表明,CMAC神經(jīng)網(wǎng)絡(luò)的特性使其適合在PID參數(shù)自整定中使用。CMAC神經(jīng)網(wǎng)絡(luò)權(quán)值的調(diào)整是局部的,學(xué)習(xí)速度快,收斂性好,而且PID參數(shù)的整定效果也滿足整定要求。文章的創(chuàng)新點:在基于模式識別的PID參數(shù)自整定系統(tǒng)中,直接利用CMAC網(wǎng)絡(luò)獲取整定規(guī)則,避免了傳統(tǒng)的大量專家整定經(jīng)驗的建立。 |