陳思羽,王國新,張冬妮
(黑龍江科技大學 電氣與控制工程學院,哈爾濱150022)
傳統(tǒng)的風電故障檢測是先通過Relief算法對風電系統(tǒng)數(shù)據(jù)進行特征參數(shù)權(quán)重計算,然后通過權(quán)重系數(shù)排名選擇適當?shù)膮?shù),利用BP神經(jīng)網(wǎng)絡(luò)對當前傳感器采集的各種數(shù)據(jù)進行分類,通過傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)進行非線性映射[1]。由于傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)參數(shù)眾多,計算和訓練過程緩慢,在大型風電機組中因為參數(shù)繁多使得訓練時間更加緩慢,所以改進優(yōu)化方法或者使用其它網(wǎng)絡(luò)結(jié)構(gòu)就變的尤為重要,此前文獻[2]和文獻[3]中運用的個體變學習率和整體變學習率算法由于算法比較簡單,存在一定優(yōu)化空間。通過對個體和整體變學習率的算法進行優(yōu)化調(diào)整,以達到更快的收斂速度和更短的訓練時間。將優(yōu)化后的改進BP神經(jīng)網(wǎng)絡(luò)應(yīng)用于風電機組故障預測,通過試驗證明該算法在風電機組故障診斷中具有較好的適用性,與傳統(tǒng)方法相比進一步減少了訓練時間。
在機器學習中,神經(jīng)網(wǎng)絡(luò)算法是基礎(chǔ),其結(jié)構(gòu)如圖1所示。
圖1 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
BP神經(jīng)網(wǎng)絡(luò)由輸入層、隱藏層和輸出層組成[4],其運算過程主要分為前向傳播和反向傳播。前向傳播是輸入層通過輸入樣本x及參數(shù)w(1)、b(1)到隱藏層[5],求得z(1),進而求得a(1);再將參數(shù)w(2)、b(2)和a(1)一起輸入輸出層求得z(2),通過激活函數(shù)求得a(2);最后得到損失函數(shù)L(a(2),y)這個過程稱為前向傳播,圖2為前向傳播示意圖。訓練過程中計算誤差和實際誤差的差值稱為損失函數(shù)。在訓練過程中需對損失函數(shù)進行梯度下降計算,在此計算過程中需要從后往前依次求各個參數(shù)的偏導即反向傳播。
圖2 前向傳播
前向傳播過程:
z(1)=w(1)C+b(1)
a(1)=g(z(1))
z(2)=w(2)a(1)+b(2)
a(2)=σ(z(2))=sigmoid(z(2))
L(a(2),y)=(y-1)log(1-a(2))-yloga(2)
sigmoid函數(shù)的導數(shù)為
反向傳播過程:
=dz(2)·w(2)×g′(z(1))
=dz(1)·XT
雖然文獻[1]和文獻[2]針對BP網(wǎng)絡(luò)訓練慢的問題提出個體變學習率算法和整體變學習率算法,但是變學習率算法仍然存在優(yōu)化和改進空間,因此提出變學習率算法的改進方法。
2.1.1 個體變學習率
輸入層與隱藏層的權(quán)值矩陣用符號aij來表示,學習速率矩陣設(shè)為η,則權(quán)值aij所對應(yīng)的學習率為ηij[6]。aij(n)為權(quán)值aij經(jīng)過n次迭代后得到的值,則ηij(n)對應(yīng)的學習率是aij(n),E(n)是第n次迭代后得到的全局誤差。現(xiàn)有的個體變學習速率迭代式為
2.1.2 整體變學習率
隱藏層與輸出層的權(quán)值矩陣為bjk。η是初始學習速率矩陣,范圍為[0,1],η(n)代表第n次的學習速率,E(n)代表第n次迭代的全局誤差。整體學習速率的動態(tài)調(diào)節(jié)規(guī)則為
由于現(xiàn)有變學習率算法不夠完善,因此提出一種改進變學習率算法,用兩次迭代的代價函數(shù)差值的正負決定步長變化項的正負,結(jié)合差值的大小,確定步長的變化幅度。變化的步長使用代價函數(shù)差值的對數(shù)值作為變化的倍數(shù),當系統(tǒng)快速收斂時,快速調(diào)整系統(tǒng)的學習速率,當系統(tǒng)緩慢收斂時,緩慢調(diào)整系統(tǒng)的學習速率,以增加收斂速度,減少振蕩的可能性。
2.2.1 改進個體變學習率
改進的個體變學習率算法將輸入層與隱藏層的權(quán)值矩陣設(shè)為aij,學習速率矩陣設(shè)為η,則權(quán)值aij所對應(yīng)的學習率為ηij。aij(n)為權(quán)值aij經(jīng)過n次迭代后得到的值,則ηij(n)對應(yīng)的學習率是aij(n),E(n)是第n次迭代后得到的全局誤差。Sde為步長調(diào)節(jié)系數(shù),改進變學習率調(diào)節(jié)方法為
η(n+1)=η(n)+lg(E(n)-E(n-1)+1)×Sde
當?shù)趎次迭代的誤差E(n)小于第(n-1)次的迭代誤差時,代表系統(tǒng)收斂,則學習率增量為正,(n+1)次的學習速率等于η(n)加上正數(shù),則學習率增大,反之學習率減少。這樣反復調(diào)節(jié)aij的學習速率,直至全局誤差小于目標值。
2.2.2 改進整體變學習率
隱藏層與輸出層的權(quán)值矩陣用符號bjk表示,η為其初始學習速率矩陣,其取值范圍是[0,1],η(n)代表第n次的學習速率,E(n)代表第n次迭代的全局誤差。改進整體學習速率的動態(tài)調(diào)節(jié)規(guī)則為
η(n+1)=η(n)+lg(E(n)-E(n-1)+1)×Sde
當?shù)趎次迭代的誤差E(n)小于第(n-1)次的迭代誤差時,代表系統(tǒng)收斂,則學習率增量為正,(n+1)次的學習速率等于η(n)加上正數(shù),則學習率增大,反之學習率減少。這樣反復調(diào)節(jié)bjk的學習速率,直至全局誤差小于目標值。
對于閾值矩陣也采用上述方法進行調(diào)節(jié)。
風電機組運行過程中的主要參數(shù)包括功率因數(shù)設(shè)定值、機航位置、塔架加速度、傳動系統(tǒng)加速度、機艙旋轉(zhuǎn)等[7],需將各參數(shù)數(shù)據(jù)整理為數(shù)據(jù)庫格式并清楚標記出故障數(shù)據(jù)。由于參數(shù)眾多,這里使用Relief算法對原始數(shù)據(jù)的參數(shù)進行權(quán)重計算,通過排名選擇特征參數(shù)權(quán)值排名較高的參數(shù)。表1為權(quán)重計算后權(quán)重大小排名前10名的參數(shù)。
表1 特征參數(shù)權(quán)重排名Table 1 Weight ranking of characteristic parameters
經(jīng)過Relief篩選后的風電機組運行數(shù)據(jù)具有一定的物理意義,由于各參數(shù)單位之間的差異性,使得各項參數(shù)在數(shù)值大小上具有很大的差異,為防止一些數(shù)值較小的參數(shù)被數(shù)值較大的參數(shù)湮滅,就需要對參數(shù)進行歸一化計算,將其折算到[0,1]區(qū)間內(nèi)。
3.2.1 數(shù)據(jù)預處理
風電系統(tǒng)運行狀態(tài)量有140個,通過Relief算法將其縮減為50個,并對其進行歸一化計算。其數(shù)學表達式如下:
Xop=normalize(Relief(Xorg))
式中:Xorg為從風電機組管理系統(tǒng)中直接獲得的維度為140的風電機組狀態(tài)量;normalize(x)為歸一化算法;Xop為經(jīng)過預處理后的狀態(tài)量。
3.2.2 神經(jīng)網(wǎng)絡(luò)選擇及其數(shù)學模型
測試網(wǎng)絡(luò)使用50輸入、1輸出、10個隱節(jié)點的神經(jīng)網(wǎng)絡(luò),其輸出函數(shù)表達式為
式中:bn為隱藏層到輸出層的偏置值;B為輸入層到輸出層的偏置值;Wn為輸入層到輸出層權(quán)值;win為隱藏層到輸出層權(quán)值;tansig函數(shù)為測試網(wǎng)絡(luò)的隱層傳遞函數(shù)。
3.2.3 目標函數(shù)
定義神經(jīng)網(wǎng)絡(luò)損失函數(shù)的數(shù)學表達式:
3.2.4 數(shù)學模型的求解
風電故障檢測為分類問題,網(wǎng)絡(luò)模型的代價函數(shù)值越小越好,其數(shù)學表達式如下:
(1)
數(shù)學模型求解的目標是對神經(jīng)網(wǎng)絡(luò)的權(quán)值矩陣進行優(yōu)化。在不滿足收斂判定條件和最大訓練次數(shù)限制的情況下,持續(xù)進行梯度下降迭代。式(1)中第三項為最大訓練次數(shù)限制,第二項為收斂判定條件。
圖3為標準BP神經(jīng)網(wǎng)絡(luò)誤差隨訓練循環(huán)次數(shù)變化曲線,可以看出,當?shù)螖?shù)達到1 000次(最高循環(huán)次數(shù)限制)時達到最小誤差。
圖3 標準BP神經(jīng)網(wǎng)絡(luò)誤差
變學習率BP神經(jīng)網(wǎng)絡(luò)的代價函數(shù)值與訓練次數(shù)之間的關(guān)系如圖4所示,當?shù)螖?shù)達到125次時代價函數(shù)值最小,與標準網(wǎng)絡(luò)相比訓練次數(shù)大幅度減少。
圖4 變學習率BP神經(jīng)網(wǎng)絡(luò)誤差
算法改進后的變學習率BP神經(jīng)網(wǎng)絡(luò)誤差和迭代次數(shù)之間的關(guān)系如圖5所示,該網(wǎng)絡(luò)誤差在第93個循環(huán)時達到最小,相比變學習率BP神經(jīng)網(wǎng)絡(luò)訓練減少32個周期。
圖5 改進變學習率BP網(wǎng)絡(luò)誤差
標準網(wǎng)絡(luò)、變學習率網(wǎng)絡(luò)和算法改進后的變學習率網(wǎng)絡(luò)訓練結(jié)果對比如表2所示。與變學習率網(wǎng)絡(luò)相比,改進變學習率網(wǎng)絡(luò)訓練循環(huán)次數(shù)減少27%,雖然訓練精度略有下降,但改進變學習率網(wǎng)絡(luò)明顯縮短了模型訓練時長,提升了效率。綜合分析訓練結(jié)果得出改進后的算法適合對訓練速度要求較高而對于訓練精度的下降有一定容忍的場合。
表2 三種算法的訓練結(jié)果
提出一種運用于風電機組故障檢測的改進變學習率BP神經(jīng)網(wǎng)絡(luò),通過計算最近兩次訓練的誤差的差值來動態(tài)調(diào)節(jié)BP神經(jīng)網(wǎng)絡(luò)的訓練步長,以達到縮短訓練時間、提升訓練誤差的收斂速度的目的。
通過對改進變學習率BP神經(jīng)網(wǎng)絡(luò)與變學習率BP神經(jīng)網(wǎng)絡(luò)和標準BP神經(jīng)網(wǎng)絡(luò)的誤差隨訓練循環(huán)次數(shù)變化情況的曲線進行對比,并運用實際的風電機組運行數(shù)據(jù)對改進變學習率BP神經(jīng)網(wǎng)絡(luò)的收斂性能進行驗證,一方面證明了改進變學習率算法相比變學習率算法可以縮短訓練時間,另一方面證明了改進變學習率BP神經(jīng)網(wǎng)絡(luò)對于風電機組故障檢測的適用性。