趙上懿,曾湘安,李文超,覃家祥,許楚斯,洪志浩,李淮,陶友季,王俊,揭敢新
(中國電器科學研究院股份有限公司 工業產品環境適應性國家重點實驗室,廣州 510663)
光伏發電作為太陽能發電的主要技術之一,近十年發展迅速,尤其在2016至2018年間;2018年,光伏發電世界新增裝機量已達97 GW,占當年新能源世界增量的接近一半[1]。光伏戶外實證作為一種評價光伏產品環境性能的測試手段,近年來在光伏行業得到廣泛應用。與室內試驗相比,戶外實證能更完整地體現環境對光伏組件的影響,具有良好的應用前景。然而,目前針對光伏產品的戶外實證對比需要同批進行,不同環境下的戶外實證由于環境因素的復雜性又不能進行直接比較,在很大程度上限制了光伏戶外實證測試在光伏發電中的應用及光伏組件耐久性提升。
為了解決戶外光伏實證數據的可比性問題,同時預測光伏組件在不同環境下的發電功率,本課題組基于前期戶外光伏實證組件的歷史數據建立相關數據庫,并通過機器學習算法對數據庫內的各組件數據進行學習,從而建立該組件的戶外環境各參數(如輻射度、環境溫度、濕度等)對組件發電功率的預測模型。然后通過該組件的發電功率表現擬合到其他任何已知環境參數的時間段內,從而實現與數據庫中其他組件間的可比分析。機器學習研究的是從數據中通過選取合適的算法,自動的歸納邏輯或規則,并根據這個歸納的結果與新數據來進行預測的技術。它的核心三要素是:數據、算法、模型。相較于傳統建模,機器學習更善于解決現實中復雜的問題。目前在光伏領域,機器學習已經廣泛用于輻照度預測[2]、光伏發電功率預測[3]、以及光伏電站的實效快速檢測等[4]。然而在戶外實證結果的分析中,機器學習在這方面的應用尚不多見。
本文用于訓練模型的實證數據來自位于海南三亞的戶外實證試驗場。該數據記錄了一個光伏組串在試驗場內從2016年10月1日至2017年9月30日每5 min的發電情況。數據集信息包含:日期時間、空氣濕度、空氣溫度、總輻射度、紫外輻射度、風速、風向、雨量、氣壓和瞬時直流發電功率共10項。其中直流發電功率為要預測的標簽,剩余的為用于預測的特征參數。
特征參數中,除了日期時間外其余特征均為連續型變量,而且數據本身具有意義。日期時間則屬于困難特征,單純從數字的角度,這一串數字對預測結果并無意義,所以不能直接使用。為了從這些數字中提取有效信息,兩個新特征被提煉:節氣與時段。二十四節氣代表大自然的環境規律,與簡單地使用四季標注日期相比,使用節氣能更細致地提取氣候與日期的關系,使用節氣的方法在風電預測中也有應用[5]。
另外一個新特征時段則根據當地氣象局發布的每日天亮、天黑與日中時間數據與數據集中的日期時間進行比對從而為每個時間點標注時段:上午、下午、黑夜。光伏組串在黑夜不發電,為了降低模型訓練量,我們把黑夜的時段從原數據集中去除,只為白天時段搭建數據預測模型。到此為止,特征集包含共10個特征,刪除原日期時間,增加節氣與時段兩個離散型特征,其余連續型特征不變。
由于離散型特征只有兩個,對它們進行編碼處理。編碼方式選用獨熱編碼,該方式能夠良好解決分類器不好處理屬性數據的問題。并且在離散特征量小的情況下不會引起特征稀疏的問題。離散變量共有24個節氣以及2個時段,所以獨熱編碼后總特征數擴展為34個。連續型特征的各取值范圍如環境溫度、輻射度等取值均差別很大。因此需要對這些特征值做標準歸一化的無量綱處理,這樣在算法中可以提高精度與泛化能力。歸一化方法為:
式中:
x*、x—歸一化后、歸一化前的數據;
μ—該數據所在特征的平均數;
σ—該數據所在特征的標準差。
由于光伏組件的戶外實證結果為連續型變量,所以本文選用基于機器學習的回歸算法進行建模擬合與預測,它們分別是:多元線性回歸(multiple linear regression - MLR)、隨機森林回歸(random forest regression- RFR)、支持向量機回歸(support vector regression -SVR)、急速梯度提升回歸(XGBRegression - XGBR)、人工神經網絡(artificial neural network - ANN)。本節將簡要闡述這些算法的基本原理。其中,MLR、RFR、SVR的模型基于Python的Scikit-learn庫搭建,XGB基于Python的xgboost庫搭建,ANN模型基于Python的Pytorch庫搭建。
本文使用最小二乘法搭建MLR的預測模型。該方法是最早的機器學習算法之一,并且應用廣泛。最小二乘法通過最小化誤差的平方和尋找和數據匹配程度最佳的函數[6]。對于一個有個特征的樣本,其目標函數為:
式中:
ω—權重;
x—特征參數;
RFR算法是由一系列回歸樹組成的集成學習算法[7]。集成算法的優點是會考慮多個評估器的建模結果,匯總之后得到一個綜合結果,以此獲取比單個模型更好的回歸表現。RFR使用裝袋法(Bagging)集成所有的基評估器(決策樹)。其優勢在于對數據的適應能力強,能有效地運行大數據集,并且泛化能力強。本文實現的RFR由100棵二叉決策樹(CART)組合而成。CART沒有最大深度限制(max_depth=None)。
SVR是支持向量機(SVM)的應用之一。SVM的基本原理是在高維空間中生成一個超平面用以解決分類或回歸問題(圖 1)。假設我們有訓練集{(xi,yi),i=1,2,…,n},SVR最終可得優化函數[8]:
式中:
b—常數;
K—核函數。
在本文中,核函數為高斯徑向基(RBF)。其表達式為:
式中:
γ—常數;
nf—樣本特征數;
Var(x)—特征方差。
XGBR基于急速梯度提升法(XGB)擴展而來。XGB是一種在梯度提升框架下基于決策樹搭建的集成模型?;谒械臉浣Y構表達式f(x),最終的預測結果為所有葉節點的預測分數之和,表達為:
本文對于XGBR所使用的參數為:max_depth=3,eta=0.1,gamma=0,n_trees=100。
本文采用三層反向傳播全連接ANN建立光伏發電預測模型,該網絡使用誤差反向傳播算法,激活函數為線性整流函數(ReLU)。如圖 2所示,其結構包括輸入層、隱含層和輸出層。根據Kolmogonov定理對該ANN的神經節點數進行優化[9],具體如下:
圖1 支持向量機(SVM)二維原理示意圖
式中:
n2—隱含層節點數;
n1—輸入層節點數;
m—輸出層節點數;
a—1至10任意整數。
評估模型的表現可以通過對比真實值與預測值的差異來判斷。不同于分類算法的差異只需要用準確率一個角度來評判?;貧w模型的評估有兩個準則:
1)模型是否預測了正確的數值;
2)模型是否擬合了足夠的信息。
兩個準則對應不同的模型評估指標。在本文中,第一個指標使用均方誤差(mean square error - MSE)來衡量真實值與預測值之間的差異,該值越接近0越好;第二個指標使用來衡量模型對數據的信息量捕捉情況,該值越接近1越好:
式中:
使用MSE作為模型評估對象,結合上文提到的Kolmogonov定理,ANN模型的隱含層節點數為7-16。分別對這10個模型結構訓練后,模型在測試集結果上的表現如圖3所示,當ANN的隱含層節點數為14時,MSE有最小值0.011 4。所以本文ANN的最優隱含層節點數為14。選用在測試集的結果是因為測試集結果能更好地表現模型的泛化能力。
本文共從兩個方面評估了各機器學習算法在實證數據上的預測表現。第一個方面評估模型在實證數據上的整體表現,通過評估每個預測值與真實值間的差異完成。第二,評估模型對于單天總發電量的預測準確程度。在光伏組件間的對比中,單天的發電表現一般為一個基本對比單位,所以第二個評估指標驗證了模型在單天發電的預測表現。
為完成兩個方面的評估,圖4展示了整體的模型運行過程。首先將數據內所有日期為31日的數據篩選出來作為單天測試數據集(單日集)。其次,將剩余實證數據按6:2:2的比例分為訓練集、驗證集以及測試集。訓練集首先進入數據預處理模塊完成一系列數據預處理工作,之后根據訓練集數據去確定預處理模塊的編碼、歸一化等步驟的相關數據預處理模型。
圖2 BP神經網絡結構
圖3 不同隱含層節點誤差
圖4 模型運行評估流程
之后剩余的驗證集、測試集、單日集一次進入該預處理模塊完成數據預處理。這樣做的目的是用訓練集數據標準化整個數據預處理模塊。處理過的訓練集被用來分別訓練5種不同的機器學習模型。并且在訓練的過程中不斷在驗證集上驗證模型的泛化能力,防止模型出現過擬合。最終模型訓練完畢后,把測試集和單日集數據代入模型做最后的評估,分別得出各模型的R2和MSE。
表1 展示了算法MLR、RFR、SVR、XGBR和ANN分別在訓練集、驗證集和測試集上的R2和MSE結果。從表中可以看到,在戶外實證數據的發電功率預測表現上,各算法的R2和MSE在測試集的結果均體現了它們良好的擬合能力;而在驗證集和測試集中,各算法同樣有良好的R2和MSE結果,體現了良好的模型泛化能力。這說明本文所用的戶外實證數據本身具有較高的數據質量并且各環境特征與組串發電功率之間的內在關聯被有效地挖掘了出來。
另外,各算法模型之間的對比顯示,無論在數據擬合還是泛化能力上,XGBR都是在戶外實證數據上表現最佳的算法。該算法在訓練集的R2結果為0.992,幾乎接近1的同時,并沒有在驗證集和測試集上出現過擬合現象,R2結果穩定在了略低的0.975。而且,XGBR相比其他算法,在各數據集上的MSE也同樣表現最為出色。因為XGBR兼具了模型的復雜度和集成算法的理念,所以相比與其他算法,它在各數據集上的表現均非常出色。
接下來的兩個算法,ANN與RFR的表現不相伯仲。其中,ANN的良好表現受益于它的神經網絡結構的復雜度,而RFR的良好表現則是因為該算法集成了許多弱評估器,這些弱評估器共同為最終結果的精確預測提供了幫助。
剩下的兩個算法,SVR和MLR相比上述的三個算法,均在模型復雜度和集成化程度上有所不足。所以這兩個算法在本文的數據預測上的表現出準確率較其他算法低。于此同時,比較這兩種算法可以看到,SVR要優于MLR。這也同樣得益于SVR相比MLR有著更為復雜的模型架構。
本文所使用的戶外實證數據共包含環境特征8項。由于實證數據均來自真實環境下的戶外實驗,從數據中挖掘各環境特征與發電功率之間的相關性也是必要的。根據皮爾森相關系數公式,可以求出所有環境特征與發電功率之間的線性相關關系。已知有數組X與Y,各包含n個值,計算X與Y之間的相關性系數公式如下[10]:
式中:
計算結果如圖5所示。從圖中可以看到,不出意外地,太陽總輻射和紫外輻射是與發電功率最正向關的兩個特征。其后是風速與空氣溫度。成負相關的兩個特征是雨量與空氣濕度,尤其是濕度的負相關已經達到-0.53。這是因為空氣中的水蒸氣會對太陽輻照產生吸收和散射作用,從而影響光伏發電的效率。另外從圖中可以看出,太陽總輻射與組串發電功率的相關性系數已經接近100 %。這意味著,如果只使用總輻射對發電功率進行預測也能得到不錯的結果。為探究兩者關系,繪制兩者間的關系散點圖。如圖6所示,總輻射與發電功率的散點圖存在明顯的線性相關。于是使用線性回歸對總輻射與發電功率數據建模,運行模型后,顯示R2和MSE在訓練集、驗證集和測試集上的預測結果分別為:0.957和0.015 6;0.961和0.014 2;0.958和0.015 3。對比表1,除了MLR與SVR,可驗證即使總輻射與發電功率的相關性非常高,XGBR、ANN與RFR的預測效果的準確率還是更高的。這說明這幾種算法在捕捉數據信息方面具有優秀的表現,也驗證了對數據使用機器學習算法進行挖掘的意義。
表1 五種機器學習算法在各數據集上的預測結果分析
由于本文數據來源為2016年10月1日起至2017年9月30日的光伏組串戶外實證數據,所以單日集中共有7日的完整數據。評價模型在單日集上的步驟如下:1. 預測單日集中的每個時間點的發電功率;2. 根據日期把每日的發電功率總和相加得出7組當日總發電功率真實值與預測值。各模型在單日集上的表現如圖7所示。在圖中可以看到,除了SVR外,所有算法均能有效地擬合單日集發電數據總體趨勢。具體來看,在圖形的前半段,MLR、RFR、XGBR表現更為良好,在后半段則以ANN、RFR、XGBR表現更為突出。而在全圖均表現良好的RFR和XGBR之間,XGBR在單日集發電功率預測上的準確度有微小優勢。
機器學習算法在光伏發電預測領域的應用非常廣泛。但是基于組串層面的在戶外實證數據上的應用還較為欠缺。不同類型的組串之間在實驗室之外還很難做到互相可比,因為戶外環境因素之間的耦合效應難以量化。為解決這一問題,基于組串的戶外實證數據,機器學習算法可以挖掘出數據中環境參數對于發電功率的關系,從而實現組串的實證數據之間的相互可比。本文共使用了5種機器學習算法對一組組串的海南戶外實證數據進行建模。結果顯示5種算法在數據擬合與泛化上均有良好表現。這說明戶外實證采集到的數據非常優質,使用不同的算法均能得到很好的效果。對于數據的相關性分析也印證了這一點。另外,對于各算法而言,XGBR在戶外實證數據上擁有最優異的性能,在測試集上的R2和MSE上分別達到了0.975和0.008 8,并且在單日集上也有最好的擬合表現。這得益于算法本身具備足夠的復雜性以及集成性。環境特征與發電功率的相關性結果顯示,與發電功率最具正相關的特征為總輻射和紫外輻射,其次為風速與空氣溫度。而最具負相關的特征為空氣濕度。因為它會加劇大氣對太陽輻射的散射與吸收作用,從而削減組串的發電表現。
圖5 各環境特征與發電功率的相關性系數
圖6 數據集總輻射與發電功率散點圖
圖7 模型預測單日總發電功率表現