王茂林,葉小紅,王洪光,李少遠(yuǎn),姜貴林
哈爾濱工程大學(xué)機(jī)電工程學(xué)院,黑龍江哈爾濱 150001
液壓系統(tǒng)中粒子群優(yōu)化神經(jīng)網(wǎng)絡(luò)權(quán)值的控制算法
王茂林,葉小紅,王洪光,李少遠(yuǎn),姜貴林
哈爾濱工程大學(xué)機(jī)電工程學(xué)院,黑龍江哈爾濱 150001
針對非線性、時變等缺陷導(dǎo)致傳統(tǒng)的控制器控制效果較差、不適應(yīng)電液伺服系統(tǒng)的現(xiàn)象,提出了用于電液伺服控制的基于粒子群優(yōu)化算法對神經(jīng)網(wǎng)絡(luò)的權(quán)值進(jìn)行學(xué)習(xí)訓(xùn)練的PSO-NN算法。結(jié)合電液伺服系統(tǒng)實(shí)例分析,用MATLAB仿真得到了輸入階躍信號和正弦信號時,PSO-NN算法的輸出曲線以及適應(yīng)度曲線;為了展示PSO-NN算法的效果,用BP算法仿真了對應(yīng)輸入階躍信號和正弦信號的輸出。仿真結(jié)果表明:在電液伺服系統(tǒng)的控制中,PSO-NN算法性能優(yōu)于BP算法,系統(tǒng)輸出具有更好的收斂性和對輸入的跟隨性,從而證明PSO-NN算法對于電液伺服系統(tǒng)的控制是合適并有效的。
粒子群優(yōu)化算法;BP神經(jīng)網(wǎng)絡(luò);PSO-NN算法;權(quán)值訓(xùn)練;電液伺服系統(tǒng)
電液伺服系統(tǒng)因精度高、響應(yīng)快、易調(diào)節(jié)等優(yōu)點(diǎn),在工業(yè)控制領(lǐng)域得到了廣泛使用。然而,非線性、時變等缺陷導(dǎo)致傳統(tǒng)的控制器控制效果較差,不適應(yīng)電液伺服系統(tǒng)[1]。神經(jīng)網(wǎng)絡(luò)(neural networks)應(yīng)用廣泛,包括優(yōu)化、機(jī)器人技術(shù)和工業(yè)控制過程。其中,BP算法又是應(yīng)用最廣的神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法。該算法不必知道具體的系統(tǒng)模型就可以提供期望的輸出[2]。
粒子群優(yōu)化(particle swarm optimization,PSO)算法是美國的Kennedy和Eberhart[3]受鳥群覓食行為的啟發(fā)于1995年提出的,是基于隨機(jī)優(yōu)化技術(shù)發(fā)展而來,到目前為之,BP神經(jīng)網(wǎng)絡(luò)和PSO算法已經(jīng)應(yīng)用于很多不同的問題。例如,Ghobakhloo和Eghtesad[4]發(fā)展了多層BP-NN算法來解決一個有3個旋轉(zhuǎn)自由度的冗余液壓系統(tǒng)的正向運(yùn)動學(xué)問題;Das和Dulger[5]為四連桿機(jī)構(gòu)設(shè)計了用PSO優(yōu)化PD控制器參數(shù)的算法。然而,粒子群和神經(jīng)網(wǎng)絡(luò)結(jié)合的PSO-NN算法應(yīng)用于電液伺服系統(tǒng)的研究很少。因此本文提出了將粒子群優(yōu)化算法對神經(jīng)網(wǎng)絡(luò)的權(quán)值進(jìn)行學(xué)習(xí)訓(xùn)練的PSO-NN算法,用其對電液伺服系統(tǒng)進(jìn)行分析,并與BP神經(jīng)網(wǎng)絡(luò)控制器進(jìn)行比較。
在神經(jīng)網(wǎng)絡(luò)中權(quán)值訓(xùn)練通常使用誤差逆向傳播的BP算法。BP算法先將輸入由輸入層經(jīng)過隱含層處理最后傳遞到輸出層得到輸出結(jié)果,再對實(shí)際輸出與期望輸出的誤差使用梯度下降法訓(xùn)練各層權(quán)重值[6]。 輸出誤差如式(1):
式中:ri為網(wǎng)絡(luò)實(shí)際的輸出,yi為期望輸出,n為輸出層節(jié)點(diǎn)數(shù)。
BP算法流程概括如下:
1)初始化神經(jīng)網(wǎng)絡(luò):選擇輸入層、輸出層和隱含層的節(jié)點(diǎn)數(shù)。
2)隨機(jī)初始化各層的權(quán)值在-1.0~1.0。
3)選擇學(xué)習(xí)速率在0~1。
4)為神經(jīng)網(wǎng)絡(luò)提供第1組輸入。
5)進(jìn)行前向網(wǎng)絡(luò)計算,得到輸出。
6)網(wǎng)絡(luò)反向計算誤差,由梯度下降法更新網(wǎng)絡(luò)權(quán)值。
7)判斷誤差是否達(dá)到要求。
8)是則程序結(jié)束;否則返回步驟9)。
9)為神經(jīng)網(wǎng)絡(luò)提供下一組輸入,并返回步驟5)。
粒子群優(yōu)化算法包含一組在n維空間搜索變換的粒子。一組中的每個粒子都有一個粒子位置和粒子速度,均通過適應(yīng)度函數(shù)優(yōu)化。粒子根據(jù)當(dāng)前優(yōu)化的結(jié)果進(jìn)行粒子位置和速度的更新[3]。
PSO用一組隨機(jī)粒子初始化,然后進(jìn)行迭代尋優(yōu)。每次迭代中會有本粒子的當(dāng)前最好位置pbest和全部粒子中的最好位置gbest,每個粒子再用下面的公式進(jìn)行速度和位置更新。
式中:w是慣性權(quán)重;c1、c2為學(xué)習(xí)因子,通常在0~2間取值;r1,r2∈(0,1)為隨機(jī)數(shù);vki為粒子i第k迭代時的速度;xki粒子i第k迭代時的位置。
粒子群算法流程概括如下:
1)初始化PSO參數(shù)c1、c2、r1、r2、w,設(shè)定迭代次數(shù);
2)初始化各個粒子的位置和速度;
3)計算每個粒子的適應(yīng)度值;
4)計算pbest和gbest,更新每個粒子的速度和位置;
3.1 PSO-NN算法在電液伺服系統(tǒng)的應(yīng)用
對電液伺服系統(tǒng)的控制研究中,系統(tǒng)控制器接收輸入信號r再將控制器的輸出傳遞到電液伺服系統(tǒng)中,電液伺服系統(tǒng)的輸出y再反饋到控制器中??刂破鞅容^電液伺服系統(tǒng)的輸出y與控制器的輸入r,根據(jù)其差值不斷調(diào)整,從而使得電液系統(tǒng)輸出y跟隨輸入信號r。系統(tǒng)的功能如圖1所示。
圖1 電液伺服壓系統(tǒng)控制框圖
圖2展示了PSO-BP算法用于系統(tǒng)控制器的情況。神經(jīng)網(wǎng)絡(luò)模型和粒子群算法包含在控制器中。神經(jīng)網(wǎng)絡(luò)接收輸入r,經(jīng)過網(wǎng)絡(luò)的泛化,然后將泛化結(jié)果經(jīng)由系統(tǒng)傳遞函數(shù)得到輸出y。粒子群算法比較輸出y與輸入r的值,對神經(jīng)網(wǎng)絡(luò)模型的權(quán)值進(jìn)行控制,已達(dá)到控制輸出y跟隨輸入r的目的[6]。
圖2 PSO-NN算法控制液壓系統(tǒng)框圖
在圖2中有輸出y反饋到神經(jīng)網(wǎng)絡(luò)的功能。這是因?yàn)橄到y(tǒng)傳遞函數(shù)一般為二階非線性的,所以神經(jīng)網(wǎng)絡(luò)的t+1時刻的輸入要用到t+1時刻的輸入r以及系統(tǒng)t和t-1的輸出y。
3.2 PSO-NN算法分析
采用基于粒子群算法優(yōu)化神經(jīng)網(wǎng)絡(luò)的權(quán)值的網(wǎng)絡(luò)訓(xùn)練算法。首先要做的就是確定粒子模型,即粒子空間維數(shù)。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練算法主要是權(quán)值的更新,因此粒子的位置應(yīng)與神經(jīng)網(wǎng)絡(luò)模型的各個層權(quán)值相對應(yīng),即粒子的空間維數(shù)對應(yīng)網(wǎng)絡(luò)模型的權(quán)值個數(shù)。
針對本文研究問題,NN網(wǎng)絡(luò)模型的輸入層應(yīng)有2個節(jié)點(diǎn),輸出層應(yīng)有1個節(jié)點(diǎn)。輸入層的節(jié)點(diǎn)對應(yīng)電液伺服系統(tǒng)的輸入r和反饋輸出y;輸出層對應(yīng)電液系統(tǒng)的輸出y。假設(shè)隱含層有n個節(jié)點(diǎn)。則NN網(wǎng)絡(luò)模型如圖3所示。
圖3 NN神經(jīng)網(wǎng)絡(luò)模型
由圖 3知,輸入層與隱含層之間的權(quán)值為( ω11,ω12,…, ω1n, ω21, ω22,…, ω2n)。 隱含層與輸出層之間的權(quán)值為(ω1k,ω2k,…,ωnk)。 一個粒子應(yīng)該對應(yīng)圖3中NN網(wǎng)絡(luò)模型中的所有權(quán)值,將所有權(quán)值編碼為一個向量,則粒子為
式中i代表粒子數(shù),i=1,2,…,M。
3—6月柑桔紅蜘蛛為害臍橙的葉片后,使臍橙的葉子表面出斑點(diǎn)。柑桔紅蜘蛛為害嚴(yán)重時,整片葉兩面變成灰白色而失去光澤,使臍橙落葉而削弱臍橙的樹勢,嚴(yán)重影響臍橙產(chǎn)量。如不及時防治,甚至?xí)斐烧晁劳觥?/p>
將NN網(wǎng)絡(luò)的權(quán)值編碼成為粒子后,根據(jù)式(2)和(3)就可以進(jìn)行迭代尋優(yōu)過程。因驗(yàn)證算法在輸出對輸入的跟隨性,所以在粒子群算法迭代過程中,以系統(tǒng)輸出與輸入的差為訓(xùn)練準(zhǔn)則。
PSO-NN算法優(yōu)化流程:
1)設(shè)置最大迭代數(shù),初始化粒子數(shù)、粒子位置(即權(quán)值)、速度;
2)以訓(xùn)練準(zhǔn)則計算各個粒子適應(yīng)值;
3)找出當(dāng)前個體極值和全局極值;
4)計算更新粒子速度,更新權(quán)值;
5)判斷是否達(dá)到最大迭代次數(shù);
6)是則輸出最優(yōu)解,結(jié)束。否則返回步驟2)。
3.3 算法參數(shù)的設(shè)置
粒子群優(yōu)化算法的參數(shù)不需要調(diào)節(jié)太多,但算法的收斂性和性能受幾個參數(shù)影響較大。目前經(jīng)驗(yàn)對于算法參數(shù)的設(shè)置還是很重要[7]。所以這里對本研究中的粒子群參數(shù)的設(shè)置進(jìn)行說明。
1)粒子長度。
本文中神經(jīng)網(wǎng)絡(luò)的輸入有輸入r和反饋的輸出y兩路信號,網(wǎng)絡(luò)輸出為一路。因此,取神經(jīng)網(wǎng)絡(luò)為[2 5 1]結(jié)構(gòu),即輸入節(jié)點(diǎn)2個,隱層節(jié)點(diǎn)5個,輸出節(jié)點(diǎn)1個,故粒子長度為15。
2)粒子群的數(shù)目。
粒子群的粒子數(shù)目按經(jīng)驗(yàn)一般取值[20,40]。本文的粒子群的數(shù)目選為20。
3)粒子范圍。
粒子范圍是由具體的優(yōu)化問題決定的。鑒于神經(jīng)網(wǎng)絡(luò)的權(quán)值范圍,本文中設(shè)置粒子范圍為[-1,1]。
4)學(xué)習(xí)因子。
c1和c2表示粒子受個體和全局粒子的影響程度,本文中設(shè)置c1=c2=2[7]。
用BP神經(jīng)網(wǎng)絡(luò)和PSO-NN算法分別對其進(jìn)行控制。首先,將式(4)離散化。采樣時間取為0.01 s,在MATLAB下用“c2d”和“tfdata”命令把傳遞函數(shù)離散化[8],離散化后的結(jié)果為
用MATLAB編寫PSO-NN控制算法[9]和BP控制算法來控制此液壓系統(tǒng),整個系統(tǒng)的輸入采用采樣時間0.01 s,采樣次數(shù)為500,所以總的系統(tǒng)仿真時間為5 s,迭代次數(shù)均為200。當(dāng)輸入階躍信號時,BP算法的輸入輸出如圖4所示,當(dāng)輸入頻率為0.5的正弦信號時,輸入輸出如圖5所示。
有一電液伺服系統(tǒng),其開環(huán)傳遞函數(shù)為
圖4 BP算法階躍輸入輸出曲線
圖5 BP算法正弦輸入輸出曲線
當(dāng)輸入階躍信號時PSO-NN算法的輸入輸出為圖6時,其適應(yīng)度曲線如圖7所示;當(dāng)輸入頻率為0.5的正弦信號時,輸入輸出如圖8所示。
圖6 PSO-NN算法階躍輸入輸出曲線
圖7 PSO-NN算法階躍輸入適應(yīng)度曲線
圖8 PSO-NN算法正弦輸入輸出曲線
圖9 PSO-NN算法階躍輸入適應(yīng)度曲線
當(dāng)輸入為階躍信號時,取穩(wěn)定值的5%作為允許誤差。由圖4得出BP算法的輸出為1.5左右,最大超調(diào)達(dá)到50%,在第100次采樣,即第1.0 s輸出趨于穩(wěn)定。調(diào)整時間為1.0 s。由圖6得出PSO-BP算法的最大超調(diào)為20%,在第20次采樣,即第0.2 s輸出趨于穩(wěn)定。調(diào)整時間為0.2 s。由圖7知,僅需要40次迭代適應(yīng)度曲線就趨于水平。
當(dāng)輸入為頻率為0.5 Hz、幅值為1的正弦信號時,由圖5得出BP算法能夠跟隨輸入,但其有一定的相位滯后。由圖8得出PSO-BP算法跟隨輸入的效果非常好。只是在開始的50次采樣,即0.5 s前有少量的波動,但從圖中也可看出這個波動比圖5中BP算法的滯后小很多。由圖9知,僅需要20次迭代適應(yīng)度曲線就趨于水平。
由以上數(shù)據(jù)分析得出:在電液伺服系統(tǒng)的控制中,用PSO訓(xùn)練神經(jīng)網(wǎng)絡(luò)權(quán)值的算法比基于梯度下降的BP算法收斂速度快,且輸出精度高。此方法應(yīng)用于要求精度高、響應(yīng)快的電液伺服系統(tǒng)比BP算法更合適。證明PSO-NN算法對于電液伺服系統(tǒng)的控制是合適和有效的。
[1]姚運(yùn)濤,李著信,張濤.液壓伺服系統(tǒng)優(yōu)化設(shè)計方法[J].后勤工程學(xué)院學(xué)報,2001,17(1):92-95.
[2]ZHAO H,DANG K F,LIN T Q.A online-trained neural network controller for electro-hydraulic servo system[C]//Proceedings of the 4th World Congress on Intelligent Control and Automation.Shanghai,China,2002:2983-2986.
[3]KENNEDY J,EBERHART R.Particle swarm optimization[C]//Proceedings of IEEE International Conference on Neural Networks.Piscataway,USA,1995:1942-1948.
[4]GHOBAKHLOO A,EGHTESAD M.Neural network solution for the forward kinematics problem of a redundant hydraulic shoulder[C]//31th Annual Conference of IEEE Industrial Electronics Society.Raleigh,USA,2005:1999-2004.
[5]DAS M T,DULGER L C.Control of a four bar mechanism by applying particle swarm optimization[C]//13th National Machine Theory Symposium.Sivas,Turkey,2007:113-117.
[6]易方,李著信,馬維平,等.一種基于神經(jīng)網(wǎng)絡(luò)的電液伺服系統(tǒng)智能控制方法[J].后勤工程學(xué)院學(xué)報,2008,24(3):60-61.
[7]袁馳.粒子群算法在PID神經(jīng)網(wǎng)絡(luò)優(yōu)化中的應(yīng)用[C]//International Conference on Circuit and Signal Processing.上海,中國,2010:582-584.
[8]吳衛(wèi)平.基于神經(jīng)網(wǎng)絡(luò)的精校機(jī)液壓位置伺服系統(tǒng)控制器的仿真與研究[D].合肥:合肥工業(yè)大學(xué),2009:19-38.
[9]吳建生,秦發(fā)金.基于MATLAB的粒子群優(yōu)化算法程序設(shè)計[J].柳州師專學(xué)報,2005,20(4):97-99.
Control algorithm based on particle swarm optimization neural network weights in hydraulic system
WANG Maolin,YE Xiaohong,WANG Hongguang,LI Shaoyuan,JIANG Guilin
College of Mechanical and Electrical Engineering,Harbin Engineering University,Harbin 150001,China
Considering the control nonlinearity and uncertainties and other defects of intelligent control electro-hy-draulic servo system,PSO-NN algorithm is proposed to use particle swarm optimization algorithm to train neural network weights.Combined with a specific instance of electro-h(huán)ydraulic servo system,when the system input is step and sine signal,the output and fitness curves of PSO-NN algorithm are simulated by using MATLAB software.In order to demonstrate the result of PSO-BP algorithm,BP algorithm is simulated further.The simulation results show that PSO-NN algorithm is superior to the BP algorithm due to the better output convergence and input following per-formance of the electro-hydraulic servo system,and that PSO-NN algorithm is suitable and effective for electro-hy-draulic servo system control.
particle swarm optimization;BP neural network;PSO-NN algorithm;weights training;electro-hydrau-lic servo system
TP217.31
A
1009-671X(2014)03-0051-004
10.3969/j.issn.1009-671X.20130420
http://www.cnki.net/kcms/doi/10.3969/j.issn.1009-671X.20130420.html
2013-04-25.
日期:2014-03-27.
國家自然科學(xué)基金資助項(xiàng)目(51175099).
王茂林(1988-),男,碩士研究生.
王茂林,E-mail:wml070611@126.com.