李金中,王小明,謝毓廣,高 博,汪勛婷
國網安徽省電力有限公司 電力科學研究院,合肥 230601
由于光伏電力系統容易受到天氣變化隨機性的影響[1],其輸出功率具有明顯的波動性,從而導致光伏電站供電具有很強的不確定性。這種高不確定性容易引發電力調度的混亂,降低其可靠性和安全性[2]。因此,對光伏電力系統短期內的氣象因子準確預報,可以直接影響到太陽能電池組的最佳小時計劃及并網調度策略,是光伏發電系統非常重要的運維保障基礎。
通常天氣預報只有區縣級的粗粒度數據,不夠精細。而分布式光伏電站的地理分布相對分散,一般天氣預報無法準確預測光伏電站所在區域的天氣。另一方面,一些早期建成的光伏電站由于硬件條件的限制,并未配置氣象采集器,無法準確獲取所在位置的太陽輻照度、溫度和濕度等信息。然而臨近區域的氣象數據通常具有相關性,可在臨近區域內將若干帶有采集器的電站設為標桿電站,利用其氣象數據對周邊電站氣象因子進行預測,甚至可以實現對整個區域的氣象因子進行精細預測,從而可以為分布式光伏電站選址、系統發電計劃評估和電站運行狀態監測提供更加科學、全面的決策依據。
影響光伏發電的氣象因子有很多,如太陽輻照度、溫度和濕度等。其中太陽輻照度對光伏發電的影響最大,但其變化具有明顯的周期性。在晴天的環境下,太陽輻照度從日出開始增長,至正午左右達到最高,再慢慢減少直到日落變為零,此外日最高氣溫與太陽輻射強度具有一定的正相關性[3]。溫度和濕度對光伏發電也有影響:在一定程度上隨著溫度的增加發電功率呈上升趨勢,但溫度過高將影響光電轉換效率;濕度變化規律則一般與溫度相反,且隨著相對濕度的增加發電功率一般呈減小趨勢。因此,需要針對光伏氣象因子在時空兩個維度開展精細預測,從而優化電網運行,提高系統可靠性,保證電能質量,并且對光伏未來選址具有重大意義。
基于上述問題,本文提出了一種時空特征融合的光伏氣象因子預測模型(spatial-temporal features model,STF),在時間和空間兩個維度對光伏發電進行預測。在時間維度上,本文設計了一種改進的長短期記憶網絡(long short-term memory,LSTM)模型,它在傳統的LSTM單元之上增加了注意力機制和遺傳算法以有效學習光伏電站歷史數據的時間特征,并對光伏電站氣象因子進行時間序列預測。在空間維度上,利用張量分解(tensor decomposition,TD)的方法提取區域間的空間依賴,并對周邊區域天氣因子數據進行預測。本模型可以實現對光伏電站周圍區域太陽輻照度及其他氣象因子的精準預測,同時對稀疏數據具有較強的魯棒性,本文的主要貢獻包括以下三點:
(1)提出了融合注意力機制和遺傳算法的時間預測模塊,給模型的輸入分配基于重要性的權重來捕獲數據中的時間依賴性。
(2)結合歷史數據和預測數值,利用張量分解的方法預測光伏電站周圍區域的氣象因子數值,融合時空特征。
(3)在實驗部分,使用中國東南部某光伏系統的真實數據評估本文模型,結果表明本文模型優于傳統預測模型,預測精度有明顯提升。
對于氣象因子的預測問題,國內外學者已經做了大量研究。數值天氣預報(numerical weather prediction,NWP)[4]模型作為一種典型的天氣預報模型,常用來預測太陽輻照度和其他氣象因子。這種模型的分析基于描述天氣演變的流體力學和熱力學的方程組,而這些復雜的非線性方程需要強大的計算能力來求解。數值天氣預報分為全球數值天氣預報和區域數值天氣預報。全球數值天氣預報模型通常具有粗略的分辨率,不能對小尺度特征進行詳細測繪。區域數值天氣預報模型則可以通過縮小全球數值天氣預報模型來獲得,它可以解釋局部效應,并產生改進的特定地點預測[5]。但NWP并不總是有效的,基于NWP的氣象因子不同預測實驗之間的誤差差異很大,取決于實驗地不同的氣候和大氣動力學[6],且夏季和晴天的預測準確率通常高于其他時間。
隨著光伏發電的廣泛應用,對氣象因子預測精度和適用性的要求越來越高,由此產生了新的氣象預測模型。現有的預測模型包括統計模型和基于衛星云圖的模型[7-10]。基于衛星云圖的模型利用運動矢量場來檢測云層的運動,依靠之前記錄的時間步長來確定云結構再進行預測,但由于云預報的誤差存在,預測結果也會受到影響。
統計學習模型包括時間序列[11]、小波分析[12-13]、人工神經網絡(artificial neural network,ANN)[14-16]、支持向量機(support vector machines,SVM)[17]、卷積神經網絡(convolutional neural networks,CNN)[18]。基于統計學習方法的預測模型通常優于其他預測技術。文獻[13]利用經驗模態分解和向量機相結合構建的模型進行逐時預測。結果表明,其提出的預測系統在預測精度方面表現出優越性。文獻[16]利用ANN模型對我國東南部山區月度平均太陽輻射量進行估算,估算值與實測值有較好的吻合度。但使用ANN模型的一個缺點是,在模型結構復雜或數據有大量噪聲的情況下,模型訓練過程可能導致性能不佳。而且ANN等方法需要較多的參數,無法很好適用于稀疏數據集。
長短期記憶神經網絡[19]適用于時間序列預測,可以提取時序數據的長短期特征。張量分解法在氣象因子的預測中尚未得到廣泛應用,但它簡單易用,在空間預測中表現良好。基于張量分解的方法目前較多應用于城市計算領域,通常結合多種數據集進行不同類型的預測,如對城市噪聲[20]的推測和分析,針對難以直接獲取的數據或稀疏數據,能有效分析數據分布變化規律,預測空缺位置數值。
STF模型訓練的基本思想是:首先將訓練集的多種氣象因子相關數據分別進行歸一化操作并輸入時間預測模塊進行訓練。隨后獲取預測結果,并把得到的預測數值和歷史數據拼接在一起構建張量,最后利用張量分解方法進行空間預測。構建張量的方法是根據經緯度數據進行網格劃分,再按照光伏電站所在位置對數據建模。由于電站所處地理位置相近,因此其他電站的氣象因子數據也可作為預測依據。此外,對于分布位置分散的光伏電站,建模后張量變得極為稀疏,但模型仍可從占比較小的數據中學習規律,預測周邊未設置采集器區域的氣象數據并進行評估。模型訓練過程如圖1所示。

圖1 模型訓練流程圖Fig.1 Flow chart of model training
具體的模型訓練流程主要為:
(1)對歷史氣象數據進行歸一化處理,將其映射到[0,1]區間,再送入融合遺傳算法的改進LSTM模型訓練。
(2)根據歷史數據和時間維度預測結果構建張量X。
(3)在X中劃分訓練集和測試集,進行張量分解操作,得到空間預測結果。
(4)將訓練集進行迭代訓練,根據目標函數計算損失。
(5)判斷誤差是否收斂,若不滿足則重新進行訓練,滿足則得到最終的氣象因子預測結果。
STF預測模型結構如圖2所示。其結構主要由時間預測模塊和空間預測模塊組成,時間預測模塊從歷史氣象數據中提取時間依賴性,進行訓練后對光伏電站數據進行時間維度上的預測并輸出。然后將數據建模,利用空間預測模塊進行空間維度上的預測,最終得到周圍未設置采集器區域的氣象預測值。接下來將詳細說明時間預測模塊以及空間預測模塊的結構和作用。

圖2 模型結構圖Fig.2 Model structure diagram
時間預測模塊的作用是學習歷史氣象數據的時間依賴性,對光伏電站未來歷史數據進行預測。傳統的LSTM可以解決長期依賴的問題,但它也存在一些不足,如對隨機權重值敏感和容易陷入局部最優。因此本文在傳統LSTM網絡中增加注意力機制和遺傳算法來提高預測精度,構建出一種改進LSTM模塊用于時間維度預測,它主要由傳統LSTM層、注意力層和遺傳選擇操作構成。
2.2.1 LSTM層和注意力層
注意力機制(attention mechanism)的基本思想是關注重要部分,同時忽略無關部分的影響。因此本文在傳統的LSTM模型中增加一個注意力層,它可以給對預測結果貢獻度高的輸入分配更大的權重,同時給其他輸入分配較小的權重以避免注意力分散,從而提升預測結果準確度。
首先,針對滑動窗口內的各光伏電站歷史數據,在注意力層中生成N×N個隨機氣象權重序列,如下所示:

式中,Wi代表第i個氣象權重序列,M表示權重集合數量,等于N×N。
基于生成的注意力權重,對輸入的歷史氣象數據進行采樣并送入LSTM,輸入的計算如下所示:

LSTM通過輸入門it,遺忘門ft和輸出門ot得到輸出yt,計算過程如下:

式中,σ(·)表示sigmoid激活函數,Ct表示單元格狀態,ht表示隱藏狀態。
2.2.2 遺傳選擇
同時,為了獲得最優氣象權重序列,還利用遺傳算法訓練注意力層。遺傳算法[21](genetic algorithm)通過模擬生物進化的過程尋找全局最優解,具有更強的全局搜索能力,可以進一步提高LSTM的預測精度。
在得到初步預測結果后,利用預測的氣象因子數值和真值得到訓練誤差,找到最小訓練誤差對應的N個氣象權重集合作為最優子集W?,對其進行0-1編碼轉化為,再利用遺傳算法中的變異和交叉操作生成新的權重集合,作為新的優化空間進行下一輪的訓練。遺傳選擇的流程如圖3所示。

圖3 遺傳選擇示意圖Fig.3 Graphical illustration of genetic selection operation
在生成新的氣象權重集合時,每個氣象權重序列由于經過0-1編碼,全部由二進制字符組成,它們會被均勻地分割為L個片段,則相應地可以被表示為,其中的一個片段。
在最優子集中的每一個氣象權重序列隨機選取若干個片段,每一次訓練中被選中的片段數量并不固定。假設來自不同序列的片段SM j和SM i為最優子集中的兩個權重序列中被選中的片段,以此為例說明變異和交叉操作:
交叉操作:交換SM j和SM i中的隨機位置編碼,生成新的片段SM k作為新權重序列的一部分。
變異操作:將選中片段的隨機位置取反,如將1變為0或將0變為1,形成新的片段,取代原先的片段。
在生成新的優化空間時,最優子集會被重復遍歷,直到新的氣象權重集合達到原先的大小。
空間預測模塊的主要作用是將光伏電站氣象因子數據進行張量建模,再由張量分解方法學習數據間的空間關聯性,利用標桿電站數據在空間維度預測為設置氣象采集器區域的氣象因子數值。
2.3.1 張量構建
此算法將每個光伏電站的氣象因子數據建模為張量X∈?N×M×L。其中它的三個維度分別表示共有N個實驗點、M個時間間隔和L天的數據。在給定的時間區間內(如一個月),張量的每一個條目X(i,j,k)存儲著第si個實驗點在第dk天的第tj個時間間隔內的氣象因子數據。對于未設置采集器的實驗點所在條目,在實驗中將用模型預測出的值填充。由于所有電站都處于一個區域,所處地理位置相近,電站本身地理位置及周邊電站的天氣數據也可作為預測的依據。其中,將所有光伏電站分布的區域按照經緯度劃分若干相同大小的網格,每一個網格被視為一個實驗點,實驗點被表示為s={s1,s2,…,si,…,sN},時間間隔被表示為t={t1,t2,…,tj,…,tM}。本文將每一天劃分到相等的時間間隔中,每個時間間隔為一小時。同時由于太陽輻照度只在白天收集,所以在太陽輻照度的預測中,只取8:00—18:00的區間。天數則被表示為d={d1,d2,…,di,…,dL}。
2.3.2 張量分解
張量分解模塊的主要作用是利用光伏電站的氣象數據預測未設置采集器區域的氣象因子數據。張量分解的一種常用方式為Tucker分解[22],它可以看成是高階主成分分析(principal component analysis,PCA)分解的一種形式。如圖2右半部分所示,對于一個n維張量,Tucker分解的基本做法是將原張量分解為一個核心張量和多個因子矩陣的乘積。其中,核心張量表示不同元素如何以及在哪些維度相互影響,而因子矩陣對應著原張量每個維度不同比例的縮放,因子矩陣也被稱為其各自對應維度的主要組成成分。
在三維張量情況下,Tucker分解可以表示為:

其中,S∈?I×P,T∈?J×Q,D∈?K×R表示因子矩陣;G∈?P×G×R表示核心張量。×I表示張量矩陣乘法,而I表示張量的指定維度,如H=G×IS即為⊙表示矢量外積,即張量的每一個元素都為相應矢量元素相乘的結果。同時,當P<I,Q<J,R<K時,G可以被視為X的壓縮狀態。
此時,需解決的優化張量分解的目標函數即為:

使用逐元素優化算法來單獨更新張量的每個元素,并利用梯度下降的方法尋找局部最優解,當目標函數開始收斂時,即兩次迭代的損失小于ε時,則停止迭代。
最終,STF模型訓練的目標函數為:

式中,L(·)表示損失函數,F(·)表示STF模型,θ表示模型參數空間。
本文使用了2019年7月來自中國東南地區某光伏系統114座光伏電站(緯度范圍為30.25°N~31.33°N,經度范圍為110.11°E~110.5°E)的氣象因子數據,氣象因子為溫度、濕度和太陽輻照度,采樣周期為1 h,基本信息如表1所示。圖4描述了在不同天氣狀況(晴天、陰天和雨天)下,夏季光伏電站發電功率在8:00—18:00(5 min為一個節點)的變化曲線。由圖中可以看到,晴天不同時刻的發電功率變化呈現先增加后減少的趨勢,且基本和太陽輻照度變化周期符合,而陰天和雨天不同時刻發電功率則波動較大,且雨天總體發電功率相對較小。而隨著天氣狀態的變化,影響光伏發電的氣象因子也會隨之變化,因此預測氣象因子可為接下來光伏系統的功率預測和性能評估提供參考。

表1 實驗數據集基本信息Table 1 Basic information of dataset

圖4 夏季不同天氣狀況下光伏發電功率曲線圖Fig.4 PV power curves in different weather conditions
每一個光伏電站都裝有氣象采集裝置以記錄氣象因子相關數據。實驗中,各光伏電站的三種氣象因子數據一起輸入模型中學習,進行溫度和濕度的預測實驗時,共有68 058條數據記錄;進行太陽輻照度預測實驗時,由于夜晚太陽輻照度為0,故只留下每日8:00—17:00的條目,則共有28 620條數據記錄。
在時間序列預測中,針對不同預測維度進行實驗:短期預測實驗中將數據集30天的數據作為訓練集擬合模型,數據最后1天的數據作為測試集進行預測;長期預測實驗則將前27天數據作為訓練集,對最后4天的數據進行預測,以測試模型性能。
對于空間預測實驗,則根據經度和緯度將光伏系統所在區域劃分為不同大小的網格,若網格對應經緯度有光伏電站分布,則該網格中將存儲這些光伏電站相關數據的平均值,如果沒有光伏電站分布,網格中數據則為零。按緯度和經度劃分后,由于大多數網格中都沒有數據,因此數據集變得非常稀疏。
本文使用兩個度量評估預測準確性,分別是平均絕對誤差(MAE)和均方根誤差(RMSE)。誤差指標的值越小,表示預測精度越高。

其中,n表示預測值的總數,yi表示第i個條目的實際值,y?i表示第i個條目的預測值。
實驗采用Tensorflow框架實現工程代碼,權重序列集合大小被設置為6×6,即共有6個權重集合,每個集合內有6個權重,每個權重序列的被劃分的片段總數也為6。
同時,由于不同氣象因子數值差異較大,最終實驗結果均為歸一化后的結果,且都通過2.1節訓練流程計算得出,并且對應以下參數:P=Q=R=10,ε=0.001,λ=0.001。
為了提高模型收斂速度,減少訓練過程中學習率的手動調節,預測模型采用Adam優化器,batch_size為128,激活函數為Relu。每個對比實驗都被重復訓練5次,取平均值作為最終結果。
3.4.1 時間序列預測
為驗證本文模型的有效性,本文選取DLWP-CNN[18]模型、4-LSTM[19]模型和FA-DRNN[23]模型進行對比,來對STF模型進行評估。
短期預測實驗中,每種氣象因子預測實驗MAE和RMSE結果如表2所示。實驗結果表明本文提出的模型具有最高的預測精度。通過比較STF模型與DLWPCNN、FA-DRNN和4-LSTM模型對太陽輻照度預測的性能指標表明,STF模型的MAE分別降低了93.10%、78.89%、37.41%,RMSE分別降低了95.80%、86.57%、60.46%,各項預測誤差均有明顯改善,大幅度提高了預測精度。

表2 短期氣象因子預測實驗結果Table 2 Short-term meteorological factor prediction results
光伏電站的短期預測誤差如圖5所示,可以看出,實驗結果表明,DLWP-CNN具有較大的預測誤差且波動較大,FA-DRNN變化趨勢與真值一致但預測精度不高,而4-LSTM預測精度也弱于本文提出的STF模型。STF模型的預測曲線和真值曲線相差很小,說明該模型有較強的短期預測能力。在長期預測的實驗中,每個氣象因子的MAE和RMSE結果如表3所示。實驗結果表明,STF模型對三個氣象因子長期預測誤差較短期都有所增加,但都優于其他對比模型,說明本文提出的STF模型具有較強學習能力,能從歷史數據中發掘聯系,并利用數據中規律進行準確預測,因此對于不同預測尺度都具有較高魯棒性。

表3 長期氣象因子預測實驗結果Table 3 Long-term meteorological factor prediction results

圖5 光伏電站短期預測誤差Fig.5 Short-term prediction error of PV power station
太陽輻照度長期預測的結果如圖6所示。由圖可知,DLWP-CNN的變化趨勢與真值相差較大;FA-DRNN和4-LSTM的變化趨勢在前半部分與真值相差不大,但在后半部分太陽輻照度出現波動時無法準確捕捉其變化趨勢從而出現偏差;而STF的變化趨勢則始終和真值一致。

圖6 光伏電站長期預測誤差Fig.6 Long-term forecast error of PV power station.
3.4.2 空間預測
同一區域的溫度和濕度在一定時間范圍內變化幅度不大,但每個小區域的地形差異導致其太陽輻照度變化趨勢不盡相同,且每天的太陽輻照度由于天氣變化而呈現不同變化趨勢,因此僅針對太陽輻照度進行空間預測評估。
實驗中通過設置不同的網格大小探究模型對稀疏數據的學習能力,同時本文將所有網格的總數作為張量的第一維,因此網格大小分別為0.008°×0.008°、0.01°×0.01°、0.03°×0.03°、0.05°×0.05°和0.1°×0.1°,因此對應的張量大小分別為6 850×10×31、4 360×10×31、518×10×31、207×10×31和60×10×31。其中當網格大小為0.01°×0.01°時,構建完的張量中非零條目占比只有2.1%。
實驗中,將短期時間序列預測的值和訓練樣本組合構建張量,再從張量中隨機刪除30%的非零條目作為測試集,由模型預測無光伏電站分布網格的數值,再將預測值與真值計算得到誤差。
空間預測的實驗結果如表4所示,STF-08、STF-1、STF-3、STF-5和STF-10分別表示劃分網格大小為0.008°×0.008°、0.01°×0.01°、0.03°×0.03°、0.05°×0.05°和0.1°×0.1°的模型。由表中可得各網格大小的STF空間預測結果遠好于線性插值(linear interpolation,LI),并且雖然STF-1所代表的網格最小,即建模后張量最稀疏,但其空間預測結果精度最高,說明本文提出的STF模型對稀疏數據有較強的魯棒性。STF-08的預測精度較低,這或許是由于劃分粒度太小使得未包含光伏電站網格的所占比例過小且網格數量過大,為空間預測增加了難度。STF-3、STF-5和STF-10的預測精度低于STF-1,或許是因為這些劃分網格方案中,部分網格包含多個光伏電站,網格中存儲的是這些光伏電站氣象數據的平均值,降低了光伏電站間的空間關聯性從而影響了預測結果。同時STF-10的預測誤差小于STF-5,這說明雖然劃分網格的粒度降低了光伏電站的空間關聯性,但是網格數量的大幅減少也降低了空間預測的難度,從而使得預測精度有所上升。因此根據實驗結果,最后的網格劃分方案為0.01°×0.01°,下文中的STF均指代STF-1。

表4 空間預測實驗結果Table 4 Performance on spatial prediction experiment
空間預測實驗結果可視化結果如圖7所示。圖中為預測日16:00的數據,圖(a)為光伏電站分布位置,圖(b)中網格顏色越深代表其數值越大。由圖7可知,預測的無光伏電站分布網格中的太陽輻照度受到各自所在行列已知數據影響,呈現較均勻分布狀態,較少出現極大數據。光伏電站密集分布區域如圖(b)右側中間部分,預測的太陽輻照度數據相對靠近已知數據。實驗結果證明該模型對于空間預測是有效的,且對于稀疏樣本有較強魯棒性。

圖7 空間預測結果Fig.7 Result of spatial prediction
本文針對太陽輻照度及其他氣象因子預測問題,提出了一種基于改進長短時記憶網絡和張量分解的時空融合光伏氣象因子預測模型。在LSTM模型的基礎上增加注意力機制和遺傳算法進行時間序列預測,克服了傳統LSTM對隨機權重敏感和易陷入局部最優的問題;根據經緯度劃分光伏電站所在的區域,并拼接時間序列預測結果構建三維張量,再通過張量分解進行空間預測,克服了在稀疏數據集上預測結果不佳的問題。實驗表明,本模型對時間維度和空間維度的精準預測氣象因子行之有效,且面對稀疏數據較為魯棒。該模型具有良好的工業和商業價值,可以為光伏電站性能評估和運維提供數據基礎。