陳志昊
(貴州大學機械工程學院 貴陽 550000)
隨著沿海及西部地區高風速區風資源利用逐漸飽和,低風速區風能開發成為研究的重點[1]。高風速區風向與風速較為穩定,偏航等控制動作較少。低風速區的風況特點為風速較低且風向與風速變化較為頻繁,若直接將高風速區的風機控制策略用于低風速區風機,風機偏航等動作控制會出現一定的滯后性,在風向與風速多變時不能及時動作[2]。
為在頻繁變化的風況中,使風機的控制獲得一定的提前性,需要對風速進行預測[3~4]。文獻[5]提出一種基于模擬退火算法改進的深度信念網絡短期風速預測算法,并使用自適應學習步長算法進行參數優化,相較于BP 等算法預測精度更高;文獻[6]提出一種考慮樣本熵的組合分解模式和支持向量回歸相結合的預測模型,提高了短期風速預測的準確性;文獻[7]提出一種結合集合經驗模態分解與樣本熵歸類算法的長短期記憶組合預測,有效的提升預測精度。本文提出一種基于聚類與LSTM算法的風速預測算法,并針對訓練方式提出兩種模型,比較傳統LSTM算法的訓練時間與精度。
長短期記憶算法(LSTM)是一種改進的循環神經網絡(RNN)。在進行長期依賴學習時,LSTM 能較好地解決RNN 出現的梯度消失或梯度爆炸等問題,實現信息在整個網絡中的長期循環[8]。
LSTM 的神經節結構是在RNN 模型上添加了遺忘門、輸入門和輸出門,通過三個門控制神經節中信息的保留與丟失,其結構如圖1所示[9]。

圖1 LSTM神經節結構圖
當上一神經節的輸出at-1與本節的新數據xt輸入當前神經節中,會同時進入三個門中。進入遺忘門的數據按式(1)計算出遺系數并對上一神經節傳遞來的數據Ct-1進行一定遺忘;進入輸入門的數據通過式(2)和式(3)更新記憶;遺忘門與輸入門輸出數據按式(4)計算即獲得本神經節的狀態Ct;進入輸出門的數據按式(5)計算,與本節狀態通過式(6)獲得本節輸出at[10]。
式中,W和b分別為各門的權重與偏置。
LSTM的每一個神經節都會記錄當前時序數據的信息,并將信息傳遞至下一神經節,保證整個時序數據的信息都被記錄下[11]。因此,對于風速這一時序數據,使用LSTM 算法對時序數據進行訓練時具有一定優勢。
在使用LSTM 算法進行預測時,需要使用預測目標點Do前一段時間的時序數據D-t…D-2,D-1作為預測依據數據。t 為預測前數據長度,較長的前數據能為預測提供更多的依據數據。但由于LSTM不斷記錄時序數據信息的特點,過長的前數據會導致每次訓練所累積的數據量過大,進而增大數據存儲,同時影響訓練時間。
為考量風速預測時前數據長度對預測精度的影響,使用貴州某地全天風速數據在Python上進行訓練。該風速數據以1 分鐘為采樣周期。將前19小時的風速數據作為訓練數據歸一化后進行預測訓練,記錄不同前數據長度下的訓練時間。并使用剩余風速數據進行預測,計算預測與真實數據間的均方差。結果如圖2所示。

圖2 前數據長度對預測的影響
從圖2 可以看出,當前數據長度較小時,預測均方差較低,預測精度較高。當前數據長度超過60 時,預測均方差較大,預測精度明顯降低。且可以看出前數據長度增大時,訓練時間也隨之增長。當前數據長度為30,即取預測目標前半個小時內的連續數據作為預測依據數據,能獲得較好的預測精度,且訓練時間較短。
為了提高傳統LSTM 算法的預測精度,需要先將原始數據進行處理。由于低風速區風速變化較頻繁,考慮將時序風速數據進行分類,使每一類時序風速數據都具有相似變化情況[12]。
K-means 聚類算法是較為常用的分類算法,僅需設定類別數便可進行無監督分類。通過一步步循環,各類初始隨機選擇的中心會逐漸向目標中心轉移,其余數據則不斷聚集到距離最近的中心,進而完成數據分類[13~14]。
Calinski-Harabaz(CH)值可以用來表征數據分類的效果,其計算公式為
其中,BGSS為類間平方誤差和,計算各類中心與數據總體中心距離的平方和,表征分類后各類間的分離程度;WGSS為類內平方誤差和,計算每一類中各點與此類中心距離的平方和,表征各類內的緊密程度。CH值越大,則每一類特征越統一,各類間特征越不同,分類效果越好。
使用前數據長度為30 的時序風速數據進行聚類,選取不同類別數K,在聚類完成后計算CH 值,結果如圖3所示。

圖3 選擇不同類別數k下的聚類效果
可以看出,將原風速數據分成4 類的聚類效果最好。因此,選擇使用分成4 類的時序風速數據進行預測。
原始風速數據在聚類后,分成4 類不同的時序風速數據。將4 類數據放入LSTM 模型中進行訓練,在一類輸入完成后繼續輸入下一類數據,即LSTM 模型的訓練數據為4 類時序風速數據同類順次輸入訓練,原理如圖4所示。

圖4 同一模型訓練原理圖
原始風速數據聚類后,將4 類數據分別放入不同的LSTM 模型中進行訓練,每一類風速數據都唯一對應一個LSTM模型,原理如圖5所示。

圖5 分類模型訓練原理圖
在完成分類模型的訓練后,不能簡單地直接進行預測。由于每一類都有對應的LSTM 模型,在預測時需要先將每個數據歸類到現有的4 類中,再使用對應的LSTM 模型進行預測。歸類方式如下式所示[15]:
式中,d 為需要預測的數據,ck為各類中心。通過計算需要預測的數據與各類中心的距離,將此數據歸類到距離最近的類別中。
使用傳統LSTM 預測算法進行訓練,并對后5個小時預測得到預測結果與原風速數據如圖6 所示。

圖6 傳統LSTM模型預測結果與原風速
從圖6 可以看出,預測結果雖能在一定程度上跟隨風速的變化趨勢,但與原風速數據有較大差距。即使前數據長度較長,使用傳統LSTM 算法進行風速預測,預測結果仍不理想。
分別使用上述兩種基于聚類-LSTM 的訓練方式進行訓練與預測,并計算預測結果與原風速數據間的均方差。兩種訓練方式的預測結果與原風速數據分別如圖7、圖8所示。

圖7 同一模型預測結果與原風速數據

圖8 分類模型預測結果與原風速數據
從圖7 和圖8 可以看出,預測精度相較于傳統LSTM 預測算法有明顯的提升,預測結果都較為貼近原風速數據。兩種模型與傳統算法的訓練時間與均方差如表1所示。

表1 兩種組合算法模型與傳統算法的訓練時間與均方差
從表1 中可以看出,同一模型與分類模型的均方差都顯著低于傳統LSTM 算法。因此,先進行聚類分類數據處理后再使用LSTM 算法具有更好的預測精度。而相對于同一模型,分類模型的預測精度較低。從圖8 中可以看出,在一些風速突變情況下,分類模型能預測變化趨勢,但數值上無法很好的貼合原始數據。這可能是由于分類模型中,同樣一批訓練數據被分配到4 個模型中,每一類對應的LSTM模型僅使用本類的訓練數據。相較于同一模型的訓練數據,數據量上明顯不足。但同一模型與傳統LSTM 算法均使用一個模型進行訓練,訓練時間相近。分類模型使用四個模型進行訓練,訓練時間有小幅提升。
因此,當基礎數據量較大時可以考慮選擇使用分類模型進行風速預測,以在更少時間獲得較好的預測精度。而當基礎數據量較小時,應選擇具有更佳預測精度的同一模型。
本文提出一種基于聚類-LSTM 的風速預測算法,并提出兩種不同的訓練模型,與傳統LSTM 算法進行對比,結果表明本算法精度有小幅度提升。同時,通過均方差與訓練時間得出,基礎數據量較小時可以選擇同一模型進行訓練,而數據量較大時則應選擇分類模型。