盧 萍 金朝永
(廣東工業(yè)大學(xué)應(yīng)用數(shù)學(xué)學(xué)院,廣東 廣州 510520)
基于PID神經(jīng)網(wǎng)絡(luò)的研究和改進(jìn)
盧 萍 金朝永
(廣東工業(yè)大學(xué)應(yīng)用數(shù)學(xué)學(xué)院,廣東 廣州 510520)
針對(duì)PID神經(jīng)元網(wǎng)絡(luò)(PIDNN)將靜態(tài)神經(jīng)元擴(kuò)充到動(dòng)態(tài)神經(jīng)元的特性,通過分析PIDNN控制算法存在的局限性,對(duì)變量系統(tǒng)的激勵(lì)函數(shù)提出了改進(jìn)方案,擴(kuò)大了PID神經(jīng)網(wǎng)絡(luò)控制的適用范圍。Matlab仿真測試表明,改進(jìn)后的PIDNN系統(tǒng)具有良好的穩(wěn)態(tài)性,試驗(yàn)驗(yàn)證了算法的有效性。
PID控制 神經(jīng)網(wǎng)絡(luò) 激勵(lì)函數(shù) 誤差 仿真
隨著控制理論和技術(shù)的不斷發(fā)展,各類控制方法不斷涌現(xiàn)。由于PID控制器具有結(jié)構(gòu)簡單、魯棒性強(qiáng)、易于實(shí)現(xiàn)等優(yōu)點(diǎn),在很多方面都有廣泛的應(yīng)用。對(duì)具有不確定性和非線性的被控對(duì)象,傳統(tǒng)的PID控制往往得不到滿意的結(jié)果。為克服傳統(tǒng)控制方法和一般神經(jīng)元網(wǎng)絡(luò)的缺點(diǎn),將神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)的PID控制相結(jié)合,提出一種本質(zhì)性的動(dòng)態(tài)網(wǎng)絡(luò)——PID神經(jīng)元網(wǎng)絡(luò)[1]。該方法利用梯度下降法使誤差函數(shù)達(dá)到最小,存在收斂速度慢和易陷入局部極小這兩個(gè)問題,在很大程度上具有一定的局限性。本文針對(duì)該情況,對(duì)多變量系統(tǒng)即單輸出PIDNN(single-output PID neural network,SPIDNN)的激勵(lì)函數(shù)進(jìn)行修正,改進(jìn)了算法。
SPIDNN采用的是三層網(wǎng)絡(luò)結(jié)構(gòu),其基本形式為2×3×1的結(jié)構(gòu),如圖1所示。
圖1中,SPIDNN網(wǎng)絡(luò)共有六個(gè)神經(jīng)元,包括輸入層、隱含層和輸出層三層。每個(gè)輸入層有兩個(gè)神經(jīng)元,一個(gè)神經(jīng)元接收目標(biāo)值和給定值,另一個(gè)接收被控變量值。輸入層神經(jīng)元的輸出經(jīng)過連接權(quán)值,進(jìn)入隱含層進(jìn)行綜合處理。隱含層的三個(gè)神經(jīng)元為比例元、積分元和微分元,分別對(duì)輸入信號(hào)進(jìn)行比例、積分和微分運(yùn)算。隱含層的輸出再通過連接權(quán)值,進(jìn)入輸出層。輸入層的神經(jīng)元采用比例神經(jīng)元,它完成整個(gè)網(wǎng)絡(luò)控制規(guī)律的綜合和輸出。SPIDNN可以完成單變量的單輸入-單輸出系統(tǒng)的控制任務(wù)[2]。
圖1 SPIDNN的結(jié)構(gòu)圖Fig.1 The structure of SPIDNN
SPIDNN網(wǎng)絡(luò)采用誤差反向傳播算法的神經(jīng)元網(wǎng)絡(luò),從運(yùn)行過程中的信息流來看,SPIDNN屬于前饋型神經(jīng)網(wǎng)絡(luò)。該網(wǎng)絡(luò)僅通過許多具有簡單處理能力的神經(jīng)元的復(fù)合作用使網(wǎng)絡(luò)具有復(fù)雜的非線性映射能力,且沒有反饋。SPIDNN的算法由前向算法和誤差反傳算法兩個(gè)部分組成。
SPIDNN的前向算法根據(jù)網(wǎng)絡(luò)的兩個(gè)輸入值,按網(wǎng)絡(luò)當(dāng)前權(quán)重值以及各層狀態(tài)函數(shù)和輸出函數(shù)形成網(wǎng)絡(luò)的輸出。
1.1.1 輸入層
在任意采樣時(shí)刻k,將輸入系統(tǒng)被調(diào)量的給定值r(k)和實(shí)際值y(k)分別賦值給輸入層的輸入v,輸出層神經(jīng)元的狀態(tài)u等于v,通過閾值函數(shù)確定輸入層的輸出x'i。
1.1.2 隱含層
隱含層是神經(jīng)元網(wǎng)絡(luò)中影響最大的層次。它存在比例元、積分元和微分元三個(gè)神經(jīng)元,各自的輸入均值v'j為輸入層至隱含層的加權(quán)總和,即:
式中:wij(i=1,2;j=1,2,3)為輸入層至隱含層的連接權(quán)值。它們的輸入-輸出函數(shù)分別為歸一化的單位比例、積分和微分函數(shù)。比例元的狀態(tài)函數(shù)為:
神經(jīng)網(wǎng)絡(luò)的比例元、積分元和微分元在隱含層與在輸入層的輸出方式都是通過閾值函數(shù)進(jìn)行的。
1.1.3 輸出層
神經(jīng)元的輸出為:
而SPIDNN的輸出值與輸出層神經(jīng)元的輸出值相同,即 v(k)=x″(k)。
根據(jù)梯度法調(diào)節(jié)SPIDNN的權(quán)重,按附加動(dòng)量法
SPIDNN由前向算法和反向傳播算法兩部分組成,而反傳算法的權(quán)值調(diào)節(jié)分別在隱含層至輸出層、輸入層至隱含層中進(jìn)行。因此,下面將分別就隱含層至輸出層、輸入層至隱含層的反向傳播算法進(jìn)行說明。
1.2.1 隱含層至輸出層
隱含層至輸出層的權(quán)值迭代公式:調(diào)節(jié)網(wǎng)絡(luò)權(quán)值,設(shè)學(xué)習(xí)步長為η,各層權(quán)值的迭代方程經(jīng)過n步訓(xùn)練和學(xué)習(xí)后,各層權(quán)值的迭代方程為:
SPIDNN隱含層至輸出層的連接權(quán)值算法修改為:
根據(jù)偏導(dǎo)數(shù)的鏈?zhǔn)椒▌t,有:
式中:j=1,2,3。
1.2.2 輸入層至隱含層
對(duì)式(12)的微分進(jìn)行變形,可得:
SPIDNN輸入層至隱含層的連接權(quán)值算法修改為:
由SPIDNN控制系統(tǒng)的結(jié)構(gòu)和算法可知,SPIDNN控制系統(tǒng)的算法不依賴于被控對(duì)象參數(shù),而是根據(jù)控制效果進(jìn)行在線自主學(xué)習(xí),調(diào)整網(wǎng)絡(luò)連接權(quán)值,實(shí)現(xiàn)對(duì)被控對(duì)象的控制。
SPIDNN存在無PID先驗(yàn)知識(shí)的控制系統(tǒng),此時(shí)的初始權(quán)值只能隨機(jī)取數(shù);該網(wǎng)絡(luò)的訓(xùn)練起點(diǎn)和收斂起始方向也都是隨機(jī)的,陷入局部極小值的概率增大,容易使收斂速度變慢[3]。因此,對(duì)于無PID控制先驗(yàn)知識(shí)的系統(tǒng)初值必須加以改進(jìn)。
根據(jù)權(quán)值的迭代公式可知,在前提是保證收斂的情況下,權(quán)值的調(diào)整幅度越大,梯度的變化也相應(yīng)變大,學(xué)習(xí)速度變快。由權(quán)值迭代公式可知,激勵(lì)函數(shù)的導(dǎo)數(shù)與權(quán)值變化成正比例關(guān)系,同時(shí),激勵(lì)函數(shù)頻繁使用,對(duì)整個(gè)網(wǎng)絡(luò)的學(xué)習(xí)都起著重要的影響作用。
理論上,任意階導(dǎo)數(shù)不為常數(shù)的函數(shù)都可以作為激勵(lì)函數(shù),當(dāng)函數(shù)的導(dǎo)數(shù)趨于0時(shí),輸出值和期望值就很接近。因此,選用S型函數(shù)是比較合理的。若輸出值和期望值相差較大,則有必要對(duì)算法進(jìn)行一定的修正,否則函數(shù)將誤差信號(hào)反傳下去的難度增大,會(huì)導(dǎo)致誤差函數(shù)的下降速度變慢,甚至還會(huì)出現(xiàn)誤差函數(shù)不能下降的情況。此時(shí),網(wǎng)絡(luò)進(jìn)入假飽和狀態(tài)[4]。在飽和區(qū)中,激勵(lì)函數(shù)的導(dǎo)數(shù)值很小,所以在每次學(xué)習(xí)中只能對(duì)權(quán)值作很小的修正,輸出單元在一段時(shí)間內(nèi)會(huì)在平坦區(qū)(局部極小值點(diǎn)或者是在鞍點(diǎn))工作,使網(wǎng)絡(luò)的均方根誤差保持不變或變化很小。
激勵(lì)函數(shù)在一定意義上可以決定誤差函數(shù)的性質(zhì)特征。任意階導(dǎo)數(shù)不為常數(shù)的函數(shù)都可作為激勵(lì)函數(shù)。但研究發(fā)現(xiàn),很多常用的函數(shù)使網(wǎng)絡(luò)陷入局部極小值的可能性較大,這無疑是需要改進(jìn)的。
對(duì)于一般的神經(jīng)網(wǎng)絡(luò)算法,通常選用Sigmoid函數(shù)。大致的原因有兩個(gè):一是它與生物神經(jīng)元的反應(yīng)非常相似;二是導(dǎo)數(shù)比較簡單。通常SPIDNN輸出部分的激勵(lì)函數(shù)是以閾值函數(shù)作為激勵(lì)函數(shù),也有以雙曲正切函數(shù)tanh(x)作為激勵(lì)函數(shù)的[5],但這兩種函數(shù)都有一定的缺陷性。閾值函數(shù)如下:
閾值函數(shù)將被控對(duì)象的輸出限制在[-1,1],當(dāng)狀態(tài)u(k)連續(xù)幾次都大于1(或者都小于-1)時(shí),輸出v均為1(或者為-1),反傳算法中的權(quán)值2](k)≈2](k-1)。此時(shí),易造成網(wǎng)絡(luò)收斂速度減慢,甚至引起運(yùn)算停止。雙曲正切函數(shù)形式如下:
基于上述分析,應(yīng)選擇合適的激勵(lì)函數(shù)并進(jìn)行一些必要的參數(shù)調(diào)整。如果在網(wǎng)絡(luò)的學(xué)習(xí)中,考慮誤差的均衡性,使激勵(lì)函數(shù)的導(dǎo)函數(shù)值可以隨誤差的變化而作相應(yīng)的調(diào)整,可有效地避免麻痹現(xiàn)象的產(chǎn)生,加快網(wǎng)絡(luò)的收斂速度[6-7]。
根據(jù)文獻(xiàn)[7],在原有的函數(shù)的基礎(chǔ)上,對(duì)λx進(jìn)行修正,并對(duì)激勵(lì)函數(shù)進(jìn)行改進(jìn)[8]。具體調(diào)整如下:
對(duì)于上述改進(jìn)的激勵(lì)函數(shù),數(shù)據(jù)的輸入輸出被限定在某個(gè)固定的范圍內(nèi),基于初始權(quán)值的選取是任意的,激勵(lì)函數(shù)對(duì)網(wǎng)絡(luò)的影響也是不定的。為了更直接地避免落入飽和區(qū),可對(duì)輸入輸出的參數(shù)進(jìn)行數(shù)據(jù)的歸一化[9],避免激勵(lì)函數(shù)陷入飽和區(qū)間上。
通過函數(shù)變化t(x)=0.8f(x)+0.1,將區(qū)間歸一化為[0.1,0.9]。改進(jìn)的激勵(lì)函數(shù)可定義如下:
設(shè)被控對(duì)象的數(shù)學(xué)模型為:
式中:系數(shù) a(k)是慢時(shí)變的,a(k)=1.2(1-0.8e-0.1k)。輸入指令信號(hào)(期望輸出值為rin(k)=1.0),初始步長η=0.05,動(dòng)量因子?=0.2,初始權(quán)值選區(qū)間上的隨機(jī)數(shù),采樣周期ts=0.001 s[10],用Matlab進(jìn)行程序仿真,結(jié)果如圖2~圖4所示[11-12]。
圖2為在無PID先驗(yàn)知識(shí)時(shí)系統(tǒng)的輸出曲線和誤差曲線,圖3為根據(jù)式(18)改進(jìn)后的SPIDNN學(xué)習(xí)得到的輸出曲線和誤差曲線,圖4為根據(jù)進(jìn)一步改進(jìn)后的SPIDNN學(xué)習(xí)得到的輸出曲線和誤差曲線。對(duì)比圖2~圖4所示曲線可知,改進(jìn)的SPIDNN控制系統(tǒng)在經(jīng)過一段時(shí)間的學(xué)習(xí)之后,在較短時(shí)間內(nèi)可以達(dá)到較好的性能[13-14]。
通過分析激勵(lì)函數(shù)對(duì)網(wǎng)絡(luò)性能的影響,對(duì)神經(jīng)網(wǎng)絡(luò)控制中的激勵(lì)函數(shù)進(jìn)行改進(jìn),使激勵(lì)函數(shù)實(shí)現(xiàn)了動(dòng)態(tài)性,擴(kuò)大了系統(tǒng)控制的范圍。同時(shí),采用數(shù)據(jù)歸一化處理,有效地消除或減少了區(qū)間變形誤差的影響,降低了誤差。但是,由于神經(jīng)網(wǎng)絡(luò)中存在許多不確定性,在實(shí)際的工程應(yīng)用中應(yīng)選擇在符合實(shí)際情況的區(qū)間內(nèi)對(duì)問題進(jìn)行討論。在同等條件下,采用文中的三種情況進(jìn)行仿真試驗(yàn),結(jié)果表明,改進(jìn)后的SPIDNN控制系統(tǒng)得到了較好的收斂性,有推廣應(yīng)用的價(jià)值。
[1]舒懷林.PID神經(jīng)元網(wǎng)絡(luò)及其控制系統(tǒng)[M].北京:國防工業(yè)出版社,2006.
[2]崔冉,王維慶,趙春平,等.基于PID神經(jīng)網(wǎng)絡(luò)的變槳控制系統(tǒng)的辨識(shí)[J].儀器儀表用戶,2008,15(6):74-75.
[3]翟堯杰,舒懷林,熊勝祖.PID神經(jīng)網(wǎng)絡(luò)改進(jìn)研究[J].機(jī)電工程技術(shù),2010,39(8):39-41.
[4]孫娓娓,劉瓊蓀.BP神經(jīng)網(wǎng)絡(luò)的聯(lián)合優(yōu)化算法[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(12):50-54.
[5]李文峰,劉軍營,盛蕾.一種改進(jìn)的基于神經(jīng)網(wǎng)絡(luò)模式的PID控制研究[J].系統(tǒng)仿真技術(shù),2007,3(4):217-220.
[6]肖俊芳,王耀青.一種激勵(lì)函數(shù)可調(diào)的快速BP算法[J].自動(dòng)化技術(shù)與應(yīng)用,2002,21(6):26-29.
[7]潘壽.BP神經(jīng)網(wǎng)絡(luò)模型中活化函數(shù)對(duì)網(wǎng)絡(luò)性能的影響研究[J].安徽師范大學(xué)學(xué)報(bào):自然科學(xué)版,1998,2(3):218-221.
[8]陸瓊瑜,童學(xué)鋒.BP算法改進(jìn)的研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(3):648-650.
[9]胡伍生.神經(jīng)網(wǎng)絡(luò)理論及其工程應(yīng)用[M].北京:測繪出版社,2006.
[10]劉金琨.先進(jìn)PID控制MATLAB仿真[M].2版.北京:電子工業(yè)出版社,2006.
[11]宋濱,谷麗娜.基于神經(jīng)網(wǎng)絡(luò)的PID控制[J].青島大學(xué)學(xué)報(bào):自然科學(xué)版,2001,6(3):90-91.
[12]王洪東,李麗,白金泉.MATLAB在控制工程中的應(yīng)用[J].控制工程,2003,10(3):273-275.
[13]陳玉銀,吳剛.鍋爐液位測量改進(jìn)及PI參數(shù)整定[J].石油化工自動(dòng)化,2009,45(3):84-86.
[14]李明,楊成梧.PID神經(jīng)網(wǎng)絡(luò)的改進(jìn)PSO學(xué)習(xí)算法[C]∥第25屆中國控制會(huì)議論文集(中冊),黑龍江,哈爾濱,2006.
Research and Improvement Based on PID Neural Network
Due to PID neural network(PIDNN)possesses the characteristics of expanding static neuron to dynamic neuron,thus through analyzing the limitation of the PIDNN control algorithm,the improved strategy for the excitation function of variable parameters is proposed to extend the applicable range of PID neural network control.The Matlab simulation test shows that the improved PIDNN system possesses excellent stability;the effectiveness of the algorithm is verified through experiments.
PID control Neural network Excitation function Error Simulation
TP18
A
廣東省自然科學(xué)基金資助項(xiàng)目(編號(hào):S2011010005029)。
修改稿收到日期:2011-09-16。
盧萍(1986-),女,現(xiàn)為廣東工業(yè)大學(xué)應(yīng)用數(shù)學(xué)專業(yè)在讀碩士研究生;主要從事人工智能控制技術(shù)的研究。
行業(yè)信息