余輝, 陳志聰, 鄭巧, 吳麗君, 程樹英, 林培杰
(福州大學物理與信息工程學院, 微納器件與太陽能電池研究所, 福建 福州 350108)
近幾十年來, 太陽能在全球經歷了指數級的增長, 其中光伏發電是利用太陽能最普遍的方式[1]. 可靠、 準確的直流側光伏組件建模對于優化整個光伏系統的設計和評估非常重要[2]. 作為光伏發電系統的核心, 光伏面板通常工作在復雜、 嚴峻的室外環境中, 在長期運行的情況下, 必然會導致光伏組件的性能下降. 常規的基于標稱數據的光伏建模方法, 難以對實際工況下的光伏組件進行精確可靠的建模. 所以, 研究基于實際工作條件下光伏組件電流-電壓(I-V)特性的建模方法具有重要的實際意義. 基于I-V特性的光伏建模方法通常包括基于等效電路的數學建模方法和基于機器學習的回歸建模方法[3]兩種.
光伏建模的數學方法需要搭建光伏組件的等效電路, 然后識別電路參數以及這些參數與環境條件(例如輻照度、 溫度等)之間的關系. 光伏陣列基本上由串聯/并聯的太陽能電池組成, 并且太陽能電池實際上是將光轉換為電流的光電二極管[4]. 因此, 基于等效電路的模型至少包含一個二極管和一個電流源. 根據二極管和寄生參數數量, 通常有單二極管五參數模型, 雙二極管七參數模型和三二極管九參數模型[1, 5-6]. 這些方法識別出的參數對測量噪聲非常敏感, 高度依賴現場測量的I-V曲線的質量, 并且這些參數識別方法只能在特定的工作條件下提取模型參數, 這可能導致建模的不確定性和不準確性. 總之, 基于等效電路的數學建模方法會受到等效電路的選擇、 實際工作條件、I-V曲線的準確性以及確定模型參數與環境條件之間關系的極大影響[7].
基于機器學習的回歸建模方法直接從實測數據通過回歸方法建立模型, 與等效電路的方法相比, 不需要任何等效電路以及模型參數、 環境條件與模型之間的關系方程[8]. 一些典型的機器學習方法被用于光伏建模, 例如徑向基神經網絡(RBFNN)、 廣義回歸神經網絡(GRNN)、 BP神經網絡、 支持向量機(SVM)等[9-11]. 這些方法大多數使用輻照度、 環境溫度以及實時電壓來預測光伏組件的輸出特性. 由于缺乏對原始數據的精細處理和對原始電氣特征的設計, 這些方法的模型精度都受到了相當的限制. 本研究針對上述兩種方法的不足之處, 提出一種精確的光伏組件建模方法. 首先對數據進行插值采樣、 降采樣減少數據冗余, 其次構造特征校正輻照度特征增強模型表征能力, 最后建立并訓練多層感知機神經網絡算法模型, 完成光伏組件I-V特性的精準建模.

圖1 安裝在科羅拉多州Golden地區的光伏組件和測量設備Fig.1 PV modules and measurement equipment at Golden, Colorado
使用可公開獲取的美國國家可再生能源實驗室(NREL)提供的實測光伏組件I-V特性曲線數據集[12]來驗證所提出的光伏建模方法的有效性. 該數據集包含一年中不同氣候條件下三個不同地點的實測數據. 在本研究中, 使用的是安裝在科羅拉多州Golden地區的光伏組件數據集, 數據的收集時間是2012年8月14日至2013年9月24日, 如圖1所示. 該地區的數據集下有多種材料制成的光伏組件的實測數據, 包括單晶硅(xSi11246), 多晶硅(mSi0251), 碲化鎘(CdTe75669), 硒化銅銦鎵(CIGS1-001), 非晶硅(aSiMicro03038)和具有本征薄層的異質結(HIT05662). 使用現在光伏面板最常用的單晶硅(下文使用xSi代替)和多晶硅(下文使用mSi代替)的實測數據進行模型的訓練和驗證.
為了獲得準確可靠的光伏模型, 應該對原始數據集進行合理的預處理, 以提高數據的質量. 在原始數據集中, 每條I-V曲線都包含大約200個數據點, 這些數據點是在大約I-V的幾乎相等空間的電壓階躍處測量的. 但是, 眾所周知,I-V曲線的最大功率點(MPP)遠離短路(SC)點, 并且接近開路(OC)點, SC和MPP點之間的部分較為平坦, 但MPP和OC點之間的I-V曲線部分通常比較陡峭. 因此, 有很多分布在平坦部分的數據點包含相對較少的曲線關鍵信息, 但是分布在具有相對豐富關鍵信息的陡峭部分上的數據點卻較少.
為減少數據冗余并且平衡I-V曲線數據點的分布, 提出一種利用線性插值的方法來重采樣原始I-V曲線. 經過處理, 每條I-V曲線中包含的數據點數從原始的200個減少到最終的50個. 所提出的方法可以大大減少平坦部分的數據點, 同時在陡峭部分保留相對更多的數據點. 插值采樣方法詳細說明如下.


圖2 重采樣前后I-V曲線數據點對比Fig.2 Comparison of I-V curve data points before and after resampling
同理, 從每條I-V曲線等間隔的電流重采樣20個數據點, 得到Id=dIsc/20(d=1, 2, …, 20), 通過線性插值方法獲得與電流Id相對應的電壓值Vd.

(1)

(2)
使用這種方法能夠在0到最大電流Isc之間均勻采樣20個數據點對.
最后, 通過按電壓升序對采樣得到的數據點進行排序, 形成新的重采樣I-V曲線. 與原始曲線相比, 圖2繪制了部分重采樣的I-V曲線, 從中可以看出重采樣曲線的數據點分布更為合理. 這樣既能夠減小數據冗余, 也能最大程度地保存關鍵點信息.
原始數據集中, 數據樣本的分布在環境條件方面并不平衡. 數據分布不平衡可能會導致模型在訓練過程中的過擬合或者欠擬合, 從而影響模型的準確度. 為了平衡數據集中的環境條件, 采用基于輻照度和溫度網格的降采樣方法來挑選合理的I-V曲線, 這也可以在保持精度的同時大大減少數據量, 具體的降采樣方法如下所述.
首先, 設置輻照度、 溫度范圍和間隔以確定采樣網格. 輻照度和溫度范圍主要由原始數據集中的相應最大值和最小值確定, 而間隔則根據分辨率手動確定. 在這項研究中, 將輻照度網格數設置為60, 而將溫度網格數設置為30. 其次, 根據輻照度和溫度網格采樣I-V曲線. 具體地, 根據輻照度對I-V曲線進行分類和劃分, 然后根據溫度對每個輻照度網格中的曲線進行分類和劃分. 最后, 如果網格內存在曲線, 則在每個網格中隨機選擇一定數量的I-V曲線, 在本研究中將其設置為2條. 經過上述處理, 可將原始I-V曲線的數量從12 000條左右減少到1 300條左右.

圖3 含有一個隱藏層的多層感知機網絡結構Fig.3 Multilayer perceptron network structure with a hidden layer
多層感知機(MLP)是一種常見的人工神經網絡算法, 通常包含輸入輸出層和若干個隱藏層, 以回歸問題的單隱層MLP為例, 其網絡結構如圖3所示.

ai=g(w1ix1+w2ix2+w3ix3+bi)
(3)
假設隱藏層與輸出層的連接權值為權重矩陣β, 激活函數為f(x), 偏置為常數值c, 那么網絡的輸出為:

(4)

梯度下降法使用了損失函數的一階導數信息, 存在收斂慢, 可能陷入局部最小值的風險. 所以本研究使用了Adam優化算法[13]來迭代求解模型參數. Adam算法記錄了梯度的一階矩和二階矩, 并且使用動態的學習率衰減, 使算法能夠快速準確地找到模型最優參數. Adam算法的偽代碼如算法1所示.

算法1: Adam算法Require: 步長αRequire: 矩估計的指數衰減率, β1和β2在區間[0, 1)內Require: 參數為θ的隨機目標函數f(θ)Require: 初始化參數θ0初始化一階矩和二階矩變量m0←0, v0←0初始化時間步t←0 while θt沒有收斂 do t←t+1 gt←▽θft(θt-1) (計算目標函數在時間步t對參數的梯度) mt←β1 mt-1+(1-β1)·gt(更新一階有偏矩估計) vt←β2vt-1+(1-β2)·gt2 (更新二階有偏矩估計) m^t←mt/(1-βt1) (修正一階矩的偏差) v^t←vt/(1-βt2)(修正二階矩的偏差) θt←θt-1-α·m^t(v^t+) (更新參數) end whilereturn θt
2.2.1 模型輸入特征選擇
在數據處理的過程中, 是以I-V曲線為單位來進行處理的. 在實際的任務中, 往往是需要預測單個電流點的輸出值, 需要將I-V曲線數據規整為合適的形式. 經過前面介紹的數據預處理方法處理后, 每個數據集原始的實測曲線由12 000條減少到1 300條左右, 而每條曲線包含50個電流-電壓數據點對. 將每條I-V曲線拆分為50個數據樣本, 這50個樣本的環境參數(例如輻照度, 溫度等)是相同的, 但是電壓值不同, 預測的目標即電流值也是不同的. 這樣, 每條I-V曲線就能拓展為50個樣本, 方便后續的模型訓練.
光伏發電系統是一個復雜的系統, 有許多因素可能會影響光伏組件的輸出, 例如POA輻照度、 光伏組件的背面溫度、 干球溫度、 相對濕度、 大氣壓強等. NREL提供的實測數據集中包含上述多個環境因素, 其中相對濕度和大氣壓強的實測數據包含大量的缺失值, 如果剔除缺失數據的樣本會導致關鍵信息的缺失, 但是若使用機器學習算法來預測這些缺失值又會引入新的誤差, 所以將不考慮相對濕度和大氣壓強對光伏組件輸出的影響. 在光伏建模中, POA輻照度和光伏組件的背面溫度是與輸出最相關的, 而其他因素可能有助于改善光伏組件的性能.
在實際的光伏系統中, 通常是使用一塊小的光伏參考面板來測量輻照度數據. 如果參考板材質和光伏面板不同, 或者安裝角度不同, 會導致輻照度測量誤差. 基于此, 使用短路電流來校正輻照度, 校正輻照度的計算方法如下式所示:

(5)
其中:θ是光伏組件的背面溫度(℃);Isc是實際工作條件下的短路電流;Isc_stc是標準條件下的短路電流;α是短路電流的溫度系數(光伏組件的數據手冊提供).
另外, 研究了其他環境因素與光伏系統輸出之間的相關性, 發現在建模過程中, 同時使用光伏組件的背面溫度和干球溫度更能準確表征光伏組件的輸出特性.
最終, 使用校正的POA輻照度Gcal、 光伏組件的背面溫度θb、 干球溫度θd以及光伏組件實時輸出電壓V來預估光伏組件的輸出電流I.可將上述的描述歸納為:
I=f(Gcal,θb,θd,V)
(6)
模型的任務就是找到一個合適的映射f, 使預測的電流與實際輸出電流之間的誤差盡可能小.
2.2.2 最優模型結構
使用的多層感知機模型包含一個輸入層, 兩個隱含層以及一個輸出層. 其中: 兩個隱含層都包含300個神經元. 隱含層的激活函數都是Sigmoid函數, 其表達式為:

(7)
模型的損失函數為均方誤差MSE, 優化算法為Adam算法. 迭代次數為100輪. 最終用于建模的網絡結構及網絡的輸入輸出如圖4所示.

圖4 光伏建模的實際網絡結構Fig.4 Actual network structure of photovoltaic modeling
使用均方根誤差(RMSE), 平均絕對誤差(MAE)以及判定系數(R2)三個性能指標來評判模型的效果, 它們的計算公式如下所示:

(8)

3.2.1 數據預處理效果驗證
為驗證數據預處理的有效性, 設置實驗來對比模型的預測性能. 在降采樣過程中, 將12 000條I-V曲線減少到1 300條左右. 由于訓練集和測試集來自于降采樣后的1 300條I-V曲線, 如果采樣不均勻, 丟失了關鍵信息, 可能會導致模型對其余的I-V曲線數據預測效果差. 基于上述原因, 在不包含測試集曲線的原始數據集中隨機采樣10次, 得到10個與測試集大小相同的隨機采樣測試集. 使用訓練好的模型分別對10個隨機采樣測試集進行預測, 平均誤差結果如表1所示. 可以看到, 在三個用于評估模型的性能指標上, 相差只有約0.02%, 證明降采樣在降低了數據冗余的同時能夠很好地保留了數據集的關鍵信息.
使用不處理的原始數據集進行建模, 得到如表2所示的實驗對比結果. 實驗表明, 沒有預處理的數據包含較多的臟數據和較大的冗余, 會導致建模精度降低, 而采用本方法預處理后顯著地提高了模型的準確度.

表1 降采樣與隨機采樣的測試集性能對比

表2 有無預處理的模型性能對比
3.2.2 算法對比
為驗證模型的有效性, 本研究與一些典型的算法進行對比, 例如支持向量回歸(SVR)和梯度提升決策樹(GBDT). 為保證實驗的無偏性, 已將三個算法都調整到最優的參數. 其中, SVR的最優參數為: 徑向基核函數, 核函數的gamma值為5, 損失函數的ε值為1, 其他為默認參數; GBDT的最優參數為: 800棵決策樹, 每棵樹的最大深度為5, L2正則項系數為5.0, 其他為默認參數; MLP算法最優參數已在上一章給出. 使用谷歌的開源Tensorflow庫來搭建網絡模型, 使用開源的GBDT算法實現lightGBM庫[14]來實現GBDT算法, 使用libsvm庫[15]來實現SVR算法. 實驗結果如表3所示.

表3 三種算法的平均性能指標
在模型得到的預測值的基礎上, 繪制了實測I-V曲線與模型預測I-V曲線的對比圖, 如圖5所示.

圖5 網絡的預測值與實測數據對比Fig.5 Comparison of the predicted value of the network with the measured data
提出一種利用多層感知機神經網絡和I-V特性曲線數據集的光伏組件精確回歸建模方法. 首先, 使用雙線性插值法對實測I-V曲線進行重采樣, 以提高I-V曲線上數據點分布的均勻性; 進而, 使用基于溫度-輻照度的網格采樣法對I-V曲線數據集進行下采樣, 降低數據冗余度; 最后, 提出一種基于雙隱層多層感知機神經網絡的光伏組件模型結構, 并基于預處理的I-V曲線數據集, 使用Adam算法訓練該模型. 與常規的建模方法相比, 本研究使用高效的數據預處理方法, 校正了原始測量POA輻照度, 并且考慮了光伏組件背面溫度和干球溫度對其輸出的影響. 基于NREL實測I-V曲線公開數據集的實驗結果證明, 本研究提出的建模方法在測試集上的RMSE能低至1.7%~2.3%; 在兩種光伏組件的數據集上, 相比SVR算法誤差平均降低了28%, 相比GBDT算法誤差平均降低了52%, 并且有很好的泛化性能.