基于BP神經(jīng)網(wǎng)絡的PID控制器及仿真
1. 引言
PID(比例-積分-微分)控制器作為最早實用化的控制器已有50多年歷史,因其具有算法簡單、魯棒性好、可靠性高、直觀性好等優(yōu)點被廣泛的應用于工業(yè)過程控制及運動控制中[1]。常規(guī)PID控制效果的優(yōu)劣,不僅僅取決于控制系統(tǒng)模型的精確程度,還必須調(diào)整好三個參數(shù)的關系,而這種關系不一定是簡單的線性組合。實際的工業(yè)過程及運動過程往往具有時變性、變參數(shù)、變結(jié)構(gòu)等不確定性及很強的非線性,精確的數(shù)學模型難以建立,此外,常規(guī)PID還有實現(xiàn)在線調(diào)整困難,參數(shù)間相互影響,參數(shù)整定時間長等缺點,難以取得理想的控制效果。
隨著控制理論的發(fā)展,將應用廣泛的PID控制器與智能控制理論相結(jié)合[2]成為智能控制研究的新方向,神經(jīng)網(wǎng)絡算法具有逼近任意非線性表達能力,很強的自學習能力和概括推廣能力,在解決高度非線性和不確定系統(tǒng)方面有很大的的潛能,應用神經(jīng)網(wǎng)絡,可以從復雜的PID三個參數(shù)組合中尋求最佳的線性組合,使神經(jīng)網(wǎng)絡和PID本質(zhì)結(jié)合。從而使得控制器具有較好的自適應性,實現(xiàn)參數(shù)的自動實時調(diào)節(jié),適應過程的變化,提高系統(tǒng)了的魯棒性和可靠性。
2. BP神經(jīng)網(wǎng)絡
2.1 BP神經(jīng)網(wǎng)絡的構(gòu)成及設計[3]
BP神經(jīng)網(wǎng)絡是一種具有三層或三層以上的神經(jīng)網(wǎng)絡,包括輸入層、隱含層、輸出層,上下層之間實現(xiàn)全連接,而每層神經(jīng)元之間無連接。當一對學習樣本提供給網(wǎng)絡后,神經(jīng)元的激活值從輸入層經(jīng)各中間層向輸出層傳播,在輸出層的各神經(jīng)元獲得網(wǎng)絡的輸入響應。接下來,按照減少目標輸出與實際誤差的方向,從輸出層經(jīng)過各中間層逐層修正各連接權(quán)值,最后回到輸入層,這種算法即BP算法。隨著這種誤差逆的傳播修正不斷進行,網(wǎng)絡對輸入模式響應的正確率也不斷上升。
(1)輸入輸出層的設計
輸入層的設計可以根據(jù)需要求解的問題和數(shù)據(jù)表示方式確定,若輸入信號為模擬波形,那么輸入層可以根據(jù)波形的采樣點數(shù)目撅腚輸入單元的維數(shù),也可以用一個單元輸入,這是輸入樣本為采樣的時間序列。輸出層的維數(shù)可以根據(jù)使用者的要求確定。如果BP網(wǎng)絡用作分類器,類別模式一共有m個,那么輸出層神經(jīng)元的個數(shù)為m或者。
(2)隱層的設計
隱層單元的數(shù)目與問題的要求、輸入/輸出單元的數(shù)目都有直接的關系,隱單元的數(shù)目太多會導致學習時間過長、誤差不一定最佳,也會導致容錯性差、不能識別以前沒有的樣本等等,因此,一定存在一個最佳的隱單元數(shù),通常用以下三個公式來選擇最佳隱單元數(shù):
1),其中k為樣本數(shù),n為輸入單元數(shù)。
2),其中m為輸出神經(jīng)元數(shù),n為輸入單元數(shù),a為[1,10]之間的常數(shù)。
3),其中n為輸入單元數(shù)。
2.2 典型神經(jīng)網(wǎng)絡結(jié)構(gòu)
一個典型的三層神經(jīng)網(wǎng)絡結(jié)構(gòu)如下圖所示:
圖1 BP神經(jīng)網(wǎng)絡結(jié)構(gòu)圖
其中: 、 、…、 為 BP網(wǎng)絡的輸入; 、 、…、 為 BP網(wǎng)絡的輸出,對應PID控制器的三個參數(shù);為輸層到隱含層的連接權(quán)值;為隱含層到輸出層的連接權(quán)值。通過神經(jīng)網(wǎng)絡的自學習、加權(quán)系數(shù)的調(diào)整,使神經(jīng)網(wǎng)絡輸出對應于某種最優(yōu)控制規(guī)律下的PID控制器參數(shù)。
圖一中各參數(shù)之間的關系[4]如下:
輸入層:
隱含層:
輸出層:
取性能指標為:,按照梯度下降法修正網(wǎng)絡的權(quán)值,使最小,修正方法如下:
隱含層:
輸出層:
3. 神經(jīng)網(wǎng)絡PID控制器及控制算法
1、BP神經(jīng)網(wǎng)絡PID控制器結(jié)構(gòu)如下圖所示:
圖2 神經(jīng)網(wǎng)絡控制器結(jié)構(gòu)圖
由圖可知:控制器由兩部分組成,分別為常規(guī)PID控制和神經(jīng)網(wǎng)絡,其中,常規(guī)PID直接對被控對象進行閉環(huán)控制,并且其控制參數(shù)Kp、Ki、Kd為在線調(diào)整方式;神經(jīng)網(wǎng)絡,根據(jù)系統(tǒng)的運行狀態(tài),調(diào)節(jié)PID控制器的參數(shù),以期達到某種性能指標的最優(yōu)化,使輸出層神經(jīng)元的輸出對應于PID控制器的三個可調(diào)參數(shù)。通過神經(jīng)網(wǎng)絡的自學習、加權(quán)系數(shù)的調(diào)整,使神經(jīng)網(wǎng)絡輸出對應于某種最優(yōu)控制規(guī)律下的PID控制器參數(shù)。
2、控制算法
神經(jīng)網(wǎng)絡PID的控制算法[5]如下:
(1). 確定神經(jīng)網(wǎng)絡的結(jié)構(gòu),即確定輸入節(jié)點數(shù)和隱含層節(jié)點數(shù),并給出各層加權(quán)系數(shù)的初值和,并選定學習速率 和慣性系數(shù) ,令k =1;
(2). 采樣得到r(k)和y(k),計算當前時刻誤差error(k)= r(k)-y(k);
(3). 計算各神經(jīng)網(wǎng)絡的輸入、輸出,其輸出層的輸出即為PID控制器的三個控制參數(shù)Kp、Ki、Kd;
(4). 計算 PID控制器的輸出;
(5). 進行神經(jīng)網(wǎng)絡學習,在線調(diào)整加權(quán)系數(shù),實現(xiàn) PID控制參數(shù)的自適應調(diào)整;
(6). 令k=k+1,返回第(1)步。
4. 仿真實例
4.1 被控對象
設被控對象的近似數(shù)學模型為:,所選的輸入信號為一時變信號:
神經(jīng)網(wǎng)絡的結(jié)構(gòu)選擇4-5-3,學習速率為0.55,慣性系數(shù)為0.04,加權(quán)系數(shù)初始值為區(qū)間[-0.5,0.5]上的隨機數(shù),采樣頻率為1000Hz。
Matlab仿真結(jié)果如圖三所示:
圖3-1 輸入輸出曲線
圖3-2 誤差曲線
4.2 仿真結(jié)果分析
由仿真曲線可以看出,神經(jīng)網(wǎng)絡PID穩(wěn)態(tài)誤差小,解決了常規(guī)PID超調(diào),抖動等問題,控制精度高,實現(xiàn)了對控制信號幾乎相同的跟蹤,具有較好的快速性和適應性。
5. 結(jié)語
神經(jīng)網(wǎng)絡PID控制器實現(xiàn)了兩種算法本質(zhì)的結(jié)合,借助于神經(jīng)網(wǎng)絡的自學習,自組織能力,可實現(xiàn)PID參數(shù)的在線調(diào)整,控制器自適應性好;該算法不要求被控對象有精確的數(shù)學模型,擴大了應用范圍,控制效果良好;在合理選擇神經(jīng)網(wǎng)絡的結(jié)構(gòu)的情況下,該算法有很強的泛化能力?;谝陨蟽?yōu)點,神經(jīng)網(wǎng)絡PID控制器具有很好的發(fā)展應用前景。