基于改進的BP神經網絡PID控制器
摘 要:本文提出了一種分層調整學習速率的改進方法,并設計了以改進的BP神經網絡參數為基礎的自整定PID控制器,在MATLAB中對其進行仿真實驗。
關鍵詞:BP;神經網絡;PID控制器
1 分層調整學習速率的改進BP算法
BP算法本質上是梯度下降法。若要改進BP算法,首先要熟悉了解梯度下降法的原理。
設函數f(x)具有一階連續導數,假設在x=x*處取得函數極小值,用xk代表在第k次接近極小值點,則在第k+1次接近極小值點為xk+1=xk+λpk,對函數f(x)在xk+1處進行泰勒級數展開:
f(xk+1)=f(xk+λpk)=f(xk)+λ?犖f(xk)Tpk+o(λ)(1-1)
上式中?犖f(xk)為函數f(x)在xk處的梯度,當λ取得非常小的值時,o(λ)為λ的高階無窮小。如果有
?犖f(xk)Tpk<0 (1-2)
能推出
f(xk+λpk)
這就表明在第k+1次迭代時的函數值小于第k次迭代的函數值。為了使?犖f(xk)Tpk取得最小值,對其求模變化:
?犖f(xk)Tpk=||?犖f(xk)||・||pk||・cosθ (1-4)
上式中,θ為向量?犖f(xk)與pk的夾角。
假設||pk||為固定值,當θ=0時,即向量?犖f(xk)與pk同向,則cosθ=1,?犖f(xk)Tpk取得最大值;反之,當θ=180時,即向量?犖f(xk)與pk反向,則cosθ=-1,?犖f(xk)Tpk<0,所以向量pk的正方向就是梯度的負方向。沿其負梯度方向進行搜索能夠使f(x)函數值減小的速率加快,能夠快速地找到極小點。
根據式(1-1)可知,λ作為梯度?犖f(xk)與向量pk的系數,稱為步長,同時影響著網絡在負梯度方向上的搜索能力。選取最佳步長的計算公式如下:
λk=(1-5)
把求得最佳步長代入式(1-3)得
f(xk-λkpk)
我們在最佳步長的計算中能夠發現,公式(1-5)的計算增加了網絡計算量,可以通過使用學習速率η替代步長來降低計算量。在文章中我們提出了一種分層調整學習速率的方法,它能夠同時調整輸入層與隱含層及隱含層與輸出層之間的網絡連接權值的學習速率。
設定網絡的學習速率η為一個較小的值,當滿足f(xk-λkpk)
η?坩2η (1-7)
當滿足f(xk-λkpk)>f(xk)條件時,則學習速率的改變趨勢為:
η?坩0.5η (1-8)
2 以改進的BP神經網絡參數為基礎的自整定PID控制器
相比較其他而言,BP神經網絡主要優勝點在于能夠將網絡連接權值不斷代入計算來修正誤差,使之可以不斷接近適應度函數。學習算法的實現難度比較小,所以在構建PID控制器時,用BP網絡結構來構建是比較常見的。以BP算法為基礎的.神經網絡能夠通過自學及自適應能力找到一組最優PID參數,使系統的性能達到最優。
①常規的PID控制器:閉環控制被控對象,在線整定KP、KI、KD參數;
、贐P神經網絡:BP神經網絡通過自學習和自適應能力不斷更新整定網絡的連接權值,通過不斷整定使輸出值極限接近目標值。當輸出值為KP、KI、KD時,系統的性能為最佳。
假定BP神經網絡優化PID控制器是一個由三層網絡構成的,且其輸入層節點有M個,隱含層節點Q個、輸出層節點3個。
輸出節電輸出對應KP、KI、KD可調參數值,隱含層的激發函數可以取Sigmoid函數,可正可負。然而輸出層的激發函數為非負。
BP神經網絡輸入層節點的輸出為
公式中,g′(x)=g(x)・(1-g(x)),f′(x)=(1-f2(x))/2。
以改進的BP神經網絡為基礎的PID控制器算法:
一是對BP神經網絡的結構進行明確,在明確了網絡結構的同時也就明確了輸出層及隱含層的節點個數。并對各層的(0)初始化,k=1;
二是為計算e(k)=r(k)-y(k),可以通過樣本采集得到的r(k)及y(k)代入計算;
三是在將r(i),y(i),u(i-1),e(i)(i=k,k-1,...,k-p)輸入到神經網絡之前進行統一化處理;
四是通過式(2-2)和(2-3)將各層神經元的輸入輸出計算出來,輸出層輸出的數據就是PID控制器的KP(k)、K1(k)、KD(k);
五是PID的控制輸出u(k)可以由式u(t)=KP[e(t)]得到;
六是當所有網絡權值刷新一次之后,若誤差e(k+1)滿足e(k+1)<
e(k),那么按照式(1-7)對其學習速率增大,當誤差不再變化時,此時記錄連接權值。若誤差e(k+1)滿足e(k+1)>e(k),那么按照式(1-8)對其學習速率減小,當誤差減小時,記錄連接權值
七是將k賦值為k+1,返回第二步。
3 改進的BP神經網絡PID仿真
將被控對象假定為:
網絡結構采用4-5-3結構,輸入信號為γ(k)=1.0,此信號是階躍信號。網絡結構中的4代表輸入層有四個輸入,為給定輸入r(k)、
e(k)=r(k)-y(k)、y(k)和1。網絡結構中的3代表輸出層有三個參數,為KP、KI、KD。η=0.01,加權系數初值在[-1,1]區間內隨機賦值。經過仿真得到的曲線圖如圖1和圖2所示。
圖1 單位階躍響應曲線圖
圖2 誤差變化曲線
被控對象是二階的,所以階躍響應曲線以正弦的方式衰減,并在系統穩定水平線上下振蕩。從圖1和圖2可以看出,剛啟動時系統振蕩幅度較大,誤差也比較大,系統在0.2s左右時振蕩幅度變小,誤差也迅速變小,在0.3s之后系統達到穩定運行,誤差幾近于0。由圖可知在單位階躍響應中改進的BP神經網絡相較BP神經網絡而言,超調量小,收斂速度快。
4 總結
提出了一種分層調整學習速率的BP神經網絡改進方法,并把改進的方法與傳統的PID結合。并基于MATLAB平臺建立了模型進行仿真驗證,仿真結果驗證了改進的BP神經網絡PID具有更快的響應速度、更高的精度,且穩定性更強。
參考文獻:
[1]李楠.基于神經網絡直流無刷電機控制策略的研究[D].蘭州理工大學,2005.
[2]黃家圣.人工神經網絡在無刷直流電動機中的應用研究[D].上海海事大學,2005.
[3]王國玲,李振宇,范自道.無刷直流電機自適應模糊PID控制系統[J].機電工程技術,2013(2):30~33.
[4]焦竹青,屈百達,徐保國.基于BP神經網絡PID控制的BLDCM調速系統[J].微計算機信息,2007(2):112~114.
[5]彭韜,魚振民.基于改進BP神經網絡PID的無刷直流電動機速度控制的研究[J].微電機,2005,38(4):17~20.
【基于改進的BP神經網絡PID控制器】相關文章: