程若發(fā),劉 建
CHENG Ruo-fa1,2,LIU Jian1
(1. 南昌航空大學(xué),南昌 330063;2. 江西先鋒軟件股份有限公司,南昌 330029)
小腦模型神經(jīng)網(wǎng)絡(luò)(CMAC)是Albus JS在1975年提出的一種模擬小腦功能的神經(jīng)網(wǎng)絡(luò)模型,具有處理非線性、自學(xué)習(xí)、一定泛化能力等優(yōu)點(diǎn)[1]。目前較為常用的是CMAC的前饋控制和固定增益反饋控制器相結(jié)合構(gòu)成的復(fù)合控制。但是這種控制結(jié)構(gòu)要設(shè)定的控制參數(shù)比較多,參數(shù)之間互相影響,非常麻煩;另一方面,如控制器的參數(shù)選取不當(dāng),不僅不能取得良好的控制效果,還會(huì)出現(xiàn)不穩(wěn)定現(xiàn)象。文獻(xiàn)[3]證明了采用固定增益的PD控制器在CMAC估計(jì)有偏和隨機(jī)干擾存在時(shí)只能實(shí)現(xiàn)局部有界穩(wěn)定。文獻(xiàn)[4]提出采用遺傳算法對(duì)固定增益PID控制器進(jìn)行最優(yōu)設(shè)計(jì),文獻(xiàn)[5]針對(duì)CMAC的收斂性,提出自適應(yīng)遺傳算法CMAC的學(xué)習(xí)率優(yōu)化,這些文獻(xiàn)在取得成果的同時(shí),未涉及PID控制參數(shù)和CMAC控制參數(shù)之間的相互影響以及多參數(shù)自尋優(yōu)的問(wèn)題?;谝陨纤觯疚睦酶倪M(jìn)的遺傳算法對(duì)包括CMAC學(xué)習(xí)率η、慣性量α,PID控制器的Kp、KI、KD等多個(gè)參數(shù)進(jìn)行優(yōu)化,以期獲得最佳控制效果,并以一個(gè)給定的被控對(duì)象算例進(jìn)行仿真比較研究。
CMAC是一種非線性映射的聯(lián)想網(wǎng)絡(luò)[2],每一輸入只有少部分的神經(jīng)原與之相關(guān),其具有局部泛化能力,也就是相似的輸入產(chǎn)生相似的輸出,而遠(yuǎn)離的輸入產(chǎn)生獨(dú)立的輸出,其結(jié)構(gòu)原理如圖1所示。在數(shù)學(xué)上可將其看成由X到A和A到Y(jié)兩個(gè)映射組成,X到A的映射是通過(guò)滾動(dòng)組合得到的,其原則是輸入空間中比較相近的矢量,要求在輸出空間中也比較接近,即X在A中具有聯(lián)想特性。其中X、A和Y分別表示輸入空間、虛擬聯(lián)想空間和物理存儲(chǔ)空間。
CMAC工作原理是輸入空間中的任一點(diǎn)xi將在A中同時(shí)激活C個(gè)單元(ai=1表激活,這里C=3),網(wǎng)絡(luò)輸出yi為A中C個(gè)被激活單元對(duì)應(yīng)權(quán)值累加如(1)式,CMAC網(wǎng)絡(luò)權(quán)值調(diào)整一般采用LMS的方法如(2)式。
圖1 CMAC結(jié)構(gòu)原理圖
遺傳算法 (GA)是1962年由美國(guó)Michigan大學(xué)的Hollad教授提出的模擬自然界遺傳機(jī)制和生物進(jìn)化論而形成的一種并行隨機(jī)搜索最優(yōu)化方法[6]。盡管遺傳算法有其優(yōu)點(diǎn)和特點(diǎn),但存在許多問(wèn)題與不足,主要在于:1)普通遺傳算法存在早熟現(xiàn)象;2)在進(jìn)化的后期即接近最優(yōu)解時(shí)存在左右搖擺,收斂較慢。
針對(duì)遺傳算法存在的缺點(diǎn)和不足,王成棟等人提出自適應(yīng)遺傳算法。其基本思想是對(duì)Pc和Pm進(jìn)行調(diào)整,對(duì)于適應(yīng)值高于群體平均適應(yīng)值的個(gè)體, Pc與Pm取較小值,使該解得以保護(hù)進(jìn)入下一代;而低于平均適應(yīng)值的個(gè)體,Pc與Pm取較大值,使該解被淘汰掉。故該種方法可提供某個(gè)解的相對(duì)較佳的Pc與Pm,在保持群體多樣性的同時(shí),保證了GA的收斂性,形成自適應(yīng)算法。具體公式為:
其中:fmax為群體最大適應(yīng)值;favg為當(dāng)代平均適應(yīng)值;f'為要交叉的2個(gè)個(gè)體中較大的適應(yīng)值; f為要變異個(gè)體的適應(yīng)值;Pc1、Pc2、Pm1、Pm2取值均小于1。
本文在自適應(yīng)算法基礎(chǔ)上增加了最優(yōu)保存策略,即是用歷代最優(yōu)個(gè)體替換掉當(dāng)前群體中的最差個(gè)體,使迄今為止所得到的最優(yōu)個(gè)體不會(huì)被選擇、交叉、變異等遺傳運(yùn)算所破壞。具體操作:1)找出當(dāng)前群體中適應(yīng)度最高和最低的個(gè)體。2)若當(dāng)前群體中最佳個(gè)體的適應(yīng)度f(wàn)c比歷代最優(yōu)個(gè)體的fh高,則復(fù)制該最佳個(gè)體取代原先的最優(yōu)個(gè)體而成為新的歷代最優(yōu)個(gè)體。3)反之,則不替代,并用歷代最優(yōu)個(gè)體替換掉當(dāng)前群體的最差個(gè)體而進(jìn)入下一輪循環(huán)。
在常用的CMAC前饋復(fù)合控制器中,CMAC神經(jīng)網(wǎng)絡(luò)是局部的逆動(dòng)態(tài)模型[4]。為了使CMAC網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程包括整個(gè)系統(tǒng)控制過(guò)程,即包括被控對(duì)象和CMAC本身在內(nèi)的動(dòng)態(tài)逆過(guò)程,提高控制系統(tǒng)的穩(wěn)定性和抗干擾能力,本文設(shè)計(jì)一種基于改進(jìn)遺傳算法多參數(shù)優(yōu)化的CMAC復(fù)合控制器,其結(jié)構(gòu)如圖2所示。
圖2 基于GA優(yōu)化的自適應(yīng)CMAC控制器結(jié)構(gòu)
該控制器在結(jié)構(gòu)上與Miller等人所提出的復(fù)合控制結(jié)構(gòu)不同:1)改進(jìn)型CMAC和PID復(fù)合控制器采用系統(tǒng)誤差e(k)=Rin(k)-Yout(k)作為權(quán)值調(diào)整的學(xué)習(xí)訓(xùn)練信號(hào),采用這種控制結(jié)構(gòu)使得CMAC實(shí)現(xiàn)了包含常規(guī)PID控制器和CMAC控制器在內(nèi)的整個(gè)系統(tǒng)的逆動(dòng)態(tài)模型,有效的消除常規(guī)CMAC復(fù)合控制中出現(xiàn)的PID控制器和CMAC控制器在學(xué)習(xí)中產(chǎn)生沖突,導(dǎo)致系統(tǒng)不穩(wěn)定的現(xiàn)象,消除原有控制方案中累積誤差的影響,進(jìn)而消除系統(tǒng)的過(guò)學(xué)習(xí)現(xiàn)象[7,8];2)改進(jìn)的CMAC復(fù)合控制中,學(xué)習(xí)算法采用改進(jìn)GA對(duì)CMAC的學(xué)習(xí)速率η、α和PID控制器Kp、KI、KD多參數(shù)優(yōu)化,使系統(tǒng)在學(xué)習(xí)過(guò)程中能動(dòng)態(tài)的調(diào)整學(xué)習(xí)速率和PID控制器參數(shù),增強(qiáng)了自適應(yīng)性和運(yùn)行的穩(wěn)定性,使其適應(yīng)控制系統(tǒng)工況的變化和不確定因素的干擾,從而改善系統(tǒng)的控制品質(zhì)。
改進(jìn)后的CMAC復(fù)合控制器的工作過(guò)程也分為控制和學(xué)習(xí)兩個(gè)階段??刂茣r(shí)將期望輸出Rin(k)和系統(tǒng)跟蹤誤差e(k)=Rin(k)-Yout(k)量化后作為二維地址輸入,在CMAC存儲(chǔ)器中找到與之對(duì)應(yīng)的C個(gè)單元,并將這C個(gè)單元中的權(quán)重相加,得到CMAC的輸出,其中Yout(k)為實(shí)際輸出信號(hào)。
CMAC輸出Un(k)與并聯(lián)的經(jīng)過(guò)GA優(yōu)化后的PID控制器輸出Un(k)相加,得到系統(tǒng)總控制量的輸出。
在每一控制周期結(jié)束時(shí),采用控制系統(tǒng)的期望輸出與實(shí)際輸出之差修正權(quán)值,進(jìn)入學(xué)習(xí)階段。
式中η為學(xué)習(xí)速率,e(k)為系統(tǒng)跟蹤誤差,學(xué)習(xí)目的使系統(tǒng)誤差e(k)最小。
1)根據(jù)經(jīng)驗(yàn)確定優(yōu)化參數(shù)大約范圍k[min,max]并根據(jù)式(8)對(duì)5個(gè)優(yōu)化參數(shù)進(jìn)行十進(jìn)制編碼;
式中:rand為(0,1)范圍內(nèi)符合均勻概率分布的一個(gè)隨機(jī)數(shù),單個(gè)樣本為[Kp KIKDη α]。
2)隨機(jī)產(chǎn)生n個(gè)個(gè)體形成初始種群P(0);
3)將種群中各個(gè)體解碼成對(duì)應(yīng)的參數(shù)值,用該參數(shù)按式(9)求代價(jià)函數(shù)值J及按1/J求適應(yīng)函數(shù)值f,如果e(t)≤0按(式(10)求代價(jià)函數(shù)值J;
式中e(t)為系統(tǒng)誤差;u(t)為控制器輸出的總控制量;tu為上升時(shí)間;w1,w2,w3,w4為權(quán)值;w4〉〉w1;e(t)=y(t)-y(t-1);y(t)為系統(tǒng)輸出;(10)式為了避免超調(diào),采用懲罰函數(shù)作為優(yōu)化目標(biāo)函數(shù);
4)利用式(3)進(jìn)行復(fù)制操作,即通過(guò)適配函數(shù)求得適配值,進(jìn)而求得每個(gè)串對(duì)應(yīng)的復(fù)制概率;
5)從復(fù)制后的成員以Pc的概率選取字串組成匹配池,對(duì)池中成員隨機(jī)匹配,交叉位置也是隨機(jī)確定的;
6)利用式(4)概率Pm進(jìn)行變異操作;
7)用歷代中適配值最高的個(gè)體代替本代適配值最差的個(gè)體,于是得到新一代種群P(t=1);
8)若參數(shù)不收斂或得不到預(yù)定指標(biāo)返回3);
9)群體中適應(yīng)值最好的個(gè)體經(jīng)過(guò)解碼后就是最終的優(yōu)化自調(diào)整參數(shù)。
被控對(duì)象采用二階傳遞函數(shù)如(11)式,為了比較其控制性能,同時(shí)給出了相同條件下Miller提出的CMAC與PD并行控制常制效果[10]。
常規(guī)固定增益PD控制器參數(shù)設(shè)定為Kp=25,KD=0.28 ,CMAC的參數(shù)設(shè)定為η=0.1,C=5,N=100;基于改進(jìn)GA優(yōu)化的CMAC復(fù)合控制器Kp范圍[0,30],KI為[0,0],KD為[0,1],η為[0,1],α為[0,1],C=5,N=100,目標(biāo)函數(shù)中權(quán)值取w1=0.999,w2=0.001,w3=2.0,w4=100,采樣周期T=1ms。
當(dāng)激勵(lì)信號(hào)分別為r(k)=1階躍信號(hào)和幅值為0.5,頻率為4Hz的方波信號(hào)時(shí)的仿真結(jié)果如圖3所示。從圖3的仿真結(jié)果比較可以看出,與常規(guī)的CMAC復(fù)合控制相比,提出的自適應(yīng)CMAC控制器則具有更快的動(dòng)態(tài)響應(yīng)能力和跟蹤連續(xù)變化信號(hào)的能力,具有輸出誤差小、超調(diào)量小、實(shí)時(shí)性好等優(yōu)點(diǎn)。
圖3 跟蹤性能仿真結(jié)果
為了驗(yàn)證基于改進(jìn)GA多參數(shù)優(yōu)化的CMAC自適應(yīng)控制方案的系統(tǒng)抗干擾能力,當(dāng)系統(tǒng)運(yùn)行在0.3s和0.5s之間時(shí),在被控制對(duì)象的輸入端突加一個(gè)幅值為5的脈沖信號(hào),系統(tǒng)跟隨r(k)=0.5sin(8πt)正弦波信號(hào)時(shí)的仿真結(jié)果如圖4所示,其中Un為CMAC輸出信號(hào);Up為參數(shù)優(yōu)化后PID輸出信號(hào);U為控制對(duì)象的總輸入信號(hào);error則為系統(tǒng)的跟蹤誤差。從該圖可以看出,通過(guò)CMAC的學(xué)習(xí)和GA對(duì)控制器的參數(shù)優(yōu)化調(diào)整,當(dāng)外加擾動(dòng)結(jié)束后使得PID控制器輸出的控制量Up很快為零,CMAC產(chǎn)生的輸出控制量Un逐漸逼近控制器的總輸出U。與常規(guī)CMAC復(fù)合控制方案相比,基于CMAC的自適應(yīng)控制器通過(guò)GA的在線優(yōu)化PID參數(shù)和CMAC神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率,系統(tǒng)具有明顯的抗未知負(fù)載干擾能力、魯棒性強(qiáng)和自適應(yīng)能力好的優(yōu)點(diǎn)。
圖4 抗干擾性能仿真結(jié)果
為了考察自適應(yīng)CMAC控制器在系統(tǒng)參數(shù)變化時(shí)的魯棒性,當(dāng)系統(tǒng)運(yùn)行在0.3s時(shí),將控制對(duì)象的傳遞函數(shù)變?yōu)槭?12),同時(shí)系統(tǒng)仍然跟隨r(k)=0.5sin(8πt)的正弦波信號(hào),其相應(yīng)的仿真結(jié)果如圖5所示。從圖5(a)仿真結(jié)果比較可以看出,常規(guī)PD控制對(duì)控制對(duì)象參數(shù)變化是敏感的,當(dāng)出現(xiàn)參數(shù)變化時(shí)不能很好地跟蹤系統(tǒng)給定信號(hào)的變化;從圖5(b)可以看出,當(dāng)控制對(duì)象的模型參數(shù)發(fā)生變化后,通過(guò)CMAC的自學(xué)習(xí)和改進(jìn)遺傳算法的在線調(diào)節(jié),CMAC產(chǎn)生的輸出控制量Uc逐漸逼近控制器總輸出U,輸出誤差始終保持在一個(gè)很小的范圍內(nèi),與常用的CMAC復(fù)合控制相比,自適應(yīng)CMAC控制器則具有魯棒性好和學(xué)習(xí)速度快等優(yōu)點(diǎn)。
圖5 魯棒性仿真結(jié)果
在前人理論的基礎(chǔ)上,本文提出了一種基于改進(jìn)GA多參數(shù)優(yōu)化的CMAC神經(jīng)網(wǎng)絡(luò)控制器,該控制器以系統(tǒng)動(dòng)態(tài)誤差和給定信號(hào)量作為CMAC的激勵(lì)信號(hào),采用改進(jìn)遺傳算法對(duì)PID控制參數(shù)、CMAC神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)率和慣性量等多參數(shù)進(jìn)行尋優(yōu),把常規(guī)PID控制、CMAC神經(jīng)網(wǎng)絡(luò)和遺傳算法的優(yōu)點(diǎn)結(jié)合起來(lái),克服了常規(guī)前饋型PID+CMAC復(fù)合控制器中多個(gè)控制參數(shù)難以確定的問(wèn)題。通過(guò)仿真表明,提出的多參數(shù)優(yōu)化的自適應(yīng)CMAC控制器具有良好的魯棒性、抗干擾能力和自適應(yīng)能力。
[1] Albus J S,A new approach to manipulator control:The cerebellar model articulation controller (CMAC),IEEE Transactions ASME Journal of dynamic system,measurement control,1975,9(3):220-227.
[2] Miller W T,Real-time application of neural network for sensor-based control of robots with vision,IEEE Transactions on systems,Man and Cybernetics,1990,19(2):825-831.
[3] 李世敬,王解法,馮祖仁.層疊CMAC補(bǔ)償?shù)牟⒙?lián)機(jī)器人變結(jié)構(gòu)控制研究[J].系統(tǒng)仿真學(xué)報(bào),2002,14(8):1045-1048.
[4] 周旭東,王國(guó)棟,李淑華.小腦模型控制系統(tǒng)的遺傳算法最優(yōu)設(shè)計(jì)[J].信息與控制,1997,26(6):455-458.
[5] 林旭梅,梅濤.一種基于自適應(yīng)遺傳算法的CMAC的學(xué)習(xí)率優(yōu)化研究[J].系統(tǒng)仿真學(xué)報(bào),2005,17(12): 3081-3088.
[6] 李敏強(qiáng),等.遺傳算法的基本理論與應(yīng)用[M].北京:科學(xué)出版社,2002.
[7] 蔣志明,林廷圻,黃先祥.一種基于CMAC的自學(xué)習(xí)控制器[J].自動(dòng)化學(xué)報(bào),2000,26(4):542-545.
[8] 何超,徐立新,張宇河.CMAC算法收斂性分析及泛化能力研究[J].控制與決策,2001,16(5):523-529.
[9] 李輝.一種自適應(yīng)CMAC神經(jīng)網(wǎng)絡(luò)控制器的設(shè)計(jì)與仿真[J].2005,17(9):2233-2235.
[10]劉金琨.先進(jìn)PID控制及其MATLAB仿真[M].北京:電子工業(yè)出版社,2003.