劉曉艷,王玨,姚鐵錘,遲學(xué)斌,王曉光,李凱
1.中國科學(xué)院計算機網(wǎng)絡(luò)信息中心,北京 100190
2.中國科學(xué)院大學(xué),北京 100049
近年來,隨著科技的發(fā)展,太陽能相關(guān)行業(yè)發(fā)展迅速。太陽能綠色潔凈、可再生的優(yōu)點,使其成為最具有應(yīng)用前景的新能源之一[1-3]。在環(huán)境惡化逐漸加劇的今天,世界光伏產(chǎn)業(yè)展示出巨大的發(fā)展前景,從能源利用的發(fā)展趨勢來看,光伏發(fā)電最終將成為電能的重要來源[4]。
分布式光伏功率具有典型的概率分布特性,是光伏電站優(yōu)化規(guī)劃設(shè)計、出力預(yù)測和優(yōu)化調(diào)度管理的重要基礎(chǔ)數(shù)據(jù),而光伏功率受太陽輻照周期以及各種氣象因素隨機變化的影響,具有明顯的隨日、月、季節(jié)變化而變化的特點,氣象數(shù)據(jù)質(zhì)量和季節(jié)周期對光伏發(fā)電預(yù)測起著重要作用[5]。
電力系統(tǒng)中光伏發(fā)電量占比逐年增加,電網(wǎng)調(diào)度難度也逐步加大[6]。光伏發(fā)電功率的預(yù)測值將作為電網(wǎng)調(diào)度的依據(jù),因此精準預(yù)測光伏電站的發(fā)電功率,可以使得電網(wǎng)調(diào)度計劃得到及時調(diào)整,進一步保證電網(wǎng)電能質(zhì)量[7]。
為支撐智能電網(wǎng)相應(yīng)部門對分布式光伏電站的管理與調(diào)度,本文提出支持多種時序數(shù)據(jù)(數(shù)值天氣預(yù)報、光伏電站氣象信息、歷史功率等)的數(shù)據(jù)預(yù)處理算法,并基于該算法封裝數(shù)據(jù)管理層,然后集成了24 小時、4 小時、15 分鐘不同尺度的功率預(yù)測模型,最終設(shè)計并實現(xiàn)了包括數(shù)據(jù)管理層和模型預(yù)測層的分布式光伏功率預(yù)測系統(tǒng)。
在光伏時序數(shù)據(jù)的采集過程中,由于傳感器的故障、紀錄人員的誤操、傳輸出錯以及個別極端天氣的影響,都會導(dǎo)致缺失值、異常值的出現(xiàn),影響數(shù)據(jù)的正常使用。對光伏時序數(shù)據(jù)的預(yù)處理包括缺失值處理和異常值處理。對缺失值的填充包括固定值、中值、插值等統(tǒng)計學(xué)填充方法[8],自回歸模型(Autoregressive Model,AR)[9]、自回歸差分移動平均模型(Autoregressive Integrated Moving Average Model,ARIMA)[10]等模型填充方法,以及KNN[11]等機器學(xué)習(xí)填充方法,本文使用統(tǒng)計學(xué)填充方法中的插值填充進行缺失值的填充。對異常值的檢測除了3σ法則和回歸分析等統(tǒng)計方法[8],也可以通過聚類方法將不能聚類的數(shù)據(jù)視為異常[12],或者將異常檢測問題轉(zhuǎn)為分類和預(yù)測,使用RNN、CNN 等方法解決[13]。在本文中,基于特征本身特性進行異常值的檢測,比如地面到達的輻照度是大于0,小于1300w/m2的,因此小于0 或者大于1300w/m2的輻照度值必是異常值。對異常值檢測后的修正與缺失值的填充方法相同,采用插值修正。連續(xù)的大段的異常值和缺失值將嚴重影響數(shù)據(jù)質(zhì)量,因此采用刪除法刪除有大段異?;蛉笔е档漠斕鞌?shù)據(jù)[14],這樣既保證了數(shù)據(jù)質(zhì)量,又保證了光伏時序數(shù)據(jù)天內(nèi)的連續(xù)性。
通過高效的對異常數(shù)據(jù)和缺失數(shù)據(jù)進行刪除或插值能夠提高數(shù)據(jù)質(zhì)量,進而提高預(yù)測模型的性能[15]。
X表示某電站在某一天原始的光伏特征(功率特征或者輻照度等氣象特征)序列,是一維數(shù)組;T是一個常數(shù)表示數(shù)組X的長度;τ是一個長度為的T字符串數(shù)組,存儲了特征對應(yīng)的時刻字符串,如“23:45”;Y表示經(jīng)算法1DataPreprocess()預(yù)處理后的特征序列;longConsecutive()表示最長連續(xù)子數(shù)組長度算法(詳見算法2);interpolate()表示線性插值函數(shù)見公式(1)。
算法1 以X,τ,T為輸入,輸出Y。由于功率或輻照度必定是大于等于0 的,且不可能無限大,經(jīng)統(tǒng)計得到光伏特征的最大值η,如果特征值小于0 或者大于η,則判定為異常值。特征值為None或者在白天為0 則判定為是缺省值。處理過程中會對X中的每一個X[t]進行遍歷,判斷是否是異常值及缺省值,如果是,則將異常值或缺省值添加到待處理特征數(shù)組對應(yīng)的下標添加到待處理時刻數(shù)組然后以作為的輸入,得到該站點在這一天最長的連續(xù)異?;蛉笔У臅r刻數(shù)如果則認為是屬于“段缺省值”或者“段異常值”的情況,進而調(diào)用通過正常時刻及對應(yīng)特征值的函數(shù)關(guān)系,填補缺省值和糾正異常值,得到處理后的特征數(shù)組Y。如果則認為屬于“天缺省”或者“天異?!钡那闆r,直接去掉這一整天數(shù)據(jù),即將處理后的特征數(shù)組Y置空,令。
線性插值法(Linear Interpolation Method)如式(1)所示。為已知的兩個點,表示某一時刻在中的下標及其對應(yīng)的特征值,其中對于給定的一個時刻經(jīng)公式(1)即可計算得到t時刻對應(yīng)的特征估計值。
算法 1 數(shù)據(jù)預(yù)處理算法
Alg 1 Data preprocessing algorithm
算法1:Data Preprocess輸入:X,τ,T輸出:Y 1:u =[]2:u’ =[]3:X’ =[],Y =[]4:for t = 0;t < T;t ++ do 5:6:if or or is None or(<=<=and )7:then 8:9:10:end if 11:end for 12:13:if 14:then
算法1:Data Preprocess 15:16:else 17:images/BZ_146_1424_588_1439_619.png18:end if 19:return Y
算法 2 最長連續(xù)子數(shù)組長度算法
Alg.2 Algorithm of the longest continuous subarray length
算法2:Long C:onsecutive輸入輸出:1:2:3:4:do 6:if 5:while 7:then 8:9:10:else 11:12:13:14:15:end if 16:end while 17:return
光伏原始時序數(shù)據(jù)中的缺省值包括“天缺省值”和“段缺省值”。其中,“天缺省值”采用整體去除該天所有特征的方法。圖1 為某光伏電站2019年3月6日至2019年3月14日功率時序曲線,其中3月9日、3月10日、3月11日、3月12日的功率均為0,3月8日整天只有一個值,可能是由于功率序列的錯報造成,因此數(shù)據(jù)缺省值處理需要去除3月8日至3月12日的所有特征數(shù)據(jù)。
圖1 某光伏電站功率(2019.3.6-2019.3.14)Fig.1 The power of a photovoltaic power station(March 6,2019 -March 14,2019)
“段缺省值”需要采用線性插值法,圖2 為某光伏電站2019年5月31日至2019年6月2日直射輻照度曲線,其中2019年6月1日的14:15、14:30、14:45、15:00 值為0,因此需要根據(jù)其他時刻的功率對這4 個缺省時刻采用線性插值法處理,得到完整時序數(shù)據(jù)。
圖2 某光伏電站直射輻照度(2019.5.31-2019.6.2)Fig.2 The direct irradiance of a photovoltaic power station(May 31,2019 - June 2,2019)
以某光伏電站一年的實測總輻照度曲線為例,其實測總輻照度峰值基本在1300W/m2以下,而在2018年8月4日至8月7日中,實測總輻照度有大段數(shù)值超過1300W/m2,屬于“天異常值”的情況,在異常值處理時需要將所有異常天整體剔除。對于某天中少量的某幾個超出峰值或者小于0 的點,稱為“段異?!秉c,異常處理時通過線性插值法糾正。
圖3 某光伏電站總輻照度(2018.8.4-2018.8.7)Fig.3 The total irradiance of a photovoltaic power station(August 4,2018 - August 7,2018)
經(jīng)過上述的預(yù)處理之后,需要對完整數(shù)據(jù)集進行整合。光伏發(fā)電功率預(yù)測模型的訓(xùn)練是以天為基本時間單位的,則數(shù)據(jù)集完整的定義是一天的時間間隔內(nèi),每個采樣時刻點對應(yīng)的光伏出力數(shù)據(jù)和氣象數(shù)據(jù)都應(yīng)該是有效值。對于不滿足要求的,則按前述算法開展數(shù)據(jù)預(yù)處理工作。
分布式光伏功率預(yù)測系統(tǒng)依據(jù)國家電網(wǎng)的相關(guān)標準和規(guī)范的要求,功能建設(shè)以電網(wǎng)調(diào)度管理人員為中心,以功率預(yù)測為主要任務(wù),以數(shù)據(jù)處理與管理為基礎(chǔ),實現(xiàn)智能電網(wǎng)用戶對轄區(qū)內(nèi)光伏站功率的把控。
分布式光伏功率預(yù)測系統(tǒng)實現(xiàn)了對光伏電站功率和氣象信息等數(shù)據(jù)的采集及數(shù)據(jù)處理,進而得到預(yù)測模型的輸入特征。特征包含數(shù)值天氣預(yù)報值、輻照度及功率。不同預(yù)測模型分別進行24 小時、4小時和15 分鐘的功率預(yù)測。同時,預(yù)測結(jié)果以圖形化的方式在網(wǎng)頁端展示。具體的功能如圖4所示。
圖4 分布式光伏預(yù)測系統(tǒng)功能圖Fig.4 Functional diagram of distributed photovoltaic forecasting system
系統(tǒng)自下而上分為數(shù)據(jù)管理層、預(yù)測模型層以及可視化展示層。其中,數(shù)據(jù)管理層提供數(shù)據(jù)支撐給預(yù)測模型層,提供功率預(yù)測的數(shù)據(jù)作為輸入。預(yù)測模型層提供預(yù)測服務(wù),支持24 小時、4 小時和15分鐘三種時間尺度的功率預(yù)測模型??梢暬故就ㄟ^劃分區(qū)域和劃分電站展示對應(yīng)的功率預(yù)測信息和氣象信息。系統(tǒng)管理包含用戶、權(quán)限以及日志管理三部分,保障系統(tǒng)的正常運行。
2.2.1 數(shù)據(jù)接口
數(shù)據(jù)驅(qū)動是科學(xué)研究與應(yīng)用的重要特征[16-17]。系統(tǒng)通過數(shù)據(jù)接口,定期獲取不同來源的數(shù)據(jù)。數(shù)據(jù)輸入包括數(shù)值天氣預(yù)報、光伏電站實時測量氣象信息、光伏電站發(fā)電功率以及“葵花8 號”衛(wèi)星云圖產(chǎn)品。
(1)數(shù)值天氣預(yù)報
數(shù)值天氣預(yù)報數(shù)據(jù)由數(shù)值天氣預(yù)報中心提供[18-19],包含多源氣象數(shù)據(jù)的預(yù)報值,且可以自動獲取,而且支持人工操作進行數(shù)據(jù)的補充錄入。預(yù)報數(shù)據(jù)為逐15 分鐘數(shù)據(jù),覆蓋第二天零點至未來72 小時的整個時間段。數(shù)值天氣預(yù)報數(shù)據(jù)每天至少對風(fēng)(風(fēng)速和風(fēng)向)、輻照度(總輻照度、直射輻照度和散射輻照度)、溫度和濕度等數(shù)據(jù)更新一次。
(2)光伏電站實時測量氣象信息
實時測量氣象數(shù)據(jù)來源于光伏站位置的相關(guān)氣象傳感器,同樣為逐15 分鐘數(shù)據(jù),包含風(fēng)(風(fēng)速和風(fēng)向)、輻照度(總輻照度、直射輻照度和散射輻照度)、溫度(氣溫和光伏面板溫度)和濕度等測量值。系統(tǒng)支持按照設(shè)定的方式和頻率自動完成數(shù)據(jù)采集,并支持人工操作進行數(shù)據(jù)的補充錄入。
(3)光伏電站發(fā)電功率
光伏電站發(fā)電功率數(shù)據(jù)來自于其他監(jiān)控系統(tǒng),為實時數(shù)據(jù),其中集中式光伏數(shù)據(jù)為逐15 分鐘數(shù)據(jù),分布式光伏為逐5 分鐘數(shù)據(jù)。
(4)“葵花8 號”衛(wèi)星云圖產(chǎn)品
地球同步氣象衛(wèi)星“葵花8 號”提供電站位置范圍的衛(wèi)星云圖遙感數(shù)據(jù)。根據(jù)系統(tǒng)設(shè)置,系統(tǒng)自動獲取與光伏電站位置相關(guān)聯(lián)的衛(wèi)星云圖遙感數(shù)據(jù)并保存為矩陣。
2.2.2 數(shù)據(jù)清洗
系統(tǒng)對獲取的數(shù)值天氣預(yù)報數(shù)據(jù)、光伏站實時測量氣象數(shù)據(jù)、光伏站發(fā)電功率數(shù)據(jù)以及“葵花8 號”數(shù)據(jù)按照站點和時間進行關(guān)聯(lián),并進行數(shù)據(jù)預(yù)處理,使其滿足可訓(xùn)練的需求,并建立數(shù)據(jù)庫。
預(yù)測模型層在本系統(tǒng)中起到核心功能的作用,主要實現(xiàn)在不同時長及時間尺度下的光伏出力預(yù)測。根據(jù)其預(yù)測周期的不同,分為24 小時預(yù)測模型、4小時預(yù)測模型以及15 分鐘預(yù)測模型。
2.3.1 24 小時預(yù)測模型
24 小時短期預(yù)測主要用于優(yōu)化常規(guī)發(fā)電機組的日發(fā)電計劃和系統(tǒng)的冷熱備用,以及安排風(fēng)電場的維護計劃。24 小時功率預(yù)測模型將氣象局提供的未來一天的數(shù)值天氣預(yù)報數(shù)據(jù)作為輸入特征,動態(tài)捕捉數(shù)值天氣預(yù)報數(shù)據(jù)的時序特征后,輸出未來一天的光伏發(fā)電功率預(yù)測值。鑒于數(shù)值天氣預(yù)報數(shù)據(jù)每天提供一次,因此24 小時功率預(yù)測模型每天更新一次,可以顯示未來一整天的功率變化趨勢。
2.3.2 4 小時預(yù)測模型
4 小時短臨預(yù)測主要用于幫助調(diào)度調(diào)峰和機組組合。4 小時功率預(yù)測模型根據(jù)場站實測氣象數(shù)據(jù)結(jié)合數(shù)值天氣預(yù)報數(shù)據(jù)預(yù)測未來4 小時功率,利用兩個長短期記憶人工神經(jīng)網(wǎng)絡(luò)模型,每小時更新一次未來功率的變化趨勢。
2.3.3 15 分鐘預(yù)測模型
15 分鐘超短期預(yù)測主要用于在線機組優(yōu)化組合、調(diào)整輪轉(zhuǎn)備用容量、優(yōu)化調(diào)頻和調(diào)度經(jīng)濟負荷。含有氣象量測裝置的15 分鐘功率預(yù)測模型根據(jù)場站提供的電站實測氣象數(shù)據(jù),使用功率預(yù)測模型滾動預(yù)測下一時刻點的功率;無氣象量測裝置的15 分鐘功率預(yù)測模型將結(jié)合小尺度短臨輻照度預(yù)測的結(jié)果進而預(yù)測光伏發(fā)電功率。15 分鐘更新一次的功率預(yù)測值為調(diào)度工作人員調(diào)整調(diào)度計劃提供依據(jù)。
如圖5所示,可視化展示由區(qū)域功率預(yù)測展示和單個光伏電站功率預(yù)測展示兩部分組成。
圖5 可視化展示Fig.5 Visual display
區(qū)域功率預(yù)測展示主要展示某區(qū)域內(nèi)光伏電站出力預(yù)測態(tài)勢。左側(cè)包含集中式和分布式光伏站兩類數(shù)據(jù)。右側(cè)是光伏出力預(yù)測的態(tài)勢展示。展示信息包括15 分鐘、4 小時和24 小時模型當前時刻的預(yù)測值。其中,24 小時模型展示當天每個整點時刻本區(qū)域內(nèi)所有光伏電站功率預(yù)測的情況。4 小時模型展示的是未來4 小時,整點時刻本區(qū)域內(nèi)所有光伏電站的功率預(yù)測情況和平均絕對誤差值。15 分鐘模型展示本區(qū)域內(nèi)所有光伏電站未來15 分鐘的功率預(yù)測情況以及平均絕對誤差值。當用戶點擊選中特定站點時,進入單個光伏電站的功率預(yù)測展示頁面。
單個光伏電站功率預(yù)測主要包括本站24 小時模型、4 小時模型以及15 分鐘模型功率預(yù)測的結(jié)果。同時,數(shù)值天氣預(yù)報數(shù)據(jù)和實測氣象數(shù)據(jù)展示在右側(cè)區(qū)域。用戶可通過頁面上部的日期選擇功能,回溯歷史日期,查看本站出力預(yù)測的情況。
系統(tǒng)管理模塊包括用戶管理模塊、權(quán)限管理模塊和日志管理模塊。用戶管理模塊維護系統(tǒng)用戶的新增、信息修改、用戶狀態(tài)更改和角色的設(shè)置等。權(quán)限管理將用戶權(quán)限粒度細化到每一個按鈕上,保證最大限度管理。日志管理主要對系統(tǒng)運行狀況的輸出日志結(jié)果進行展示,包含了系統(tǒng)中的用戶的操作、預(yù)測結(jié)果和數(shù)據(jù)清洗任務(wù)等在系統(tǒng)運行過程中的詳細信息。這些子模塊相互協(xié)作,使得分布式光伏功率預(yù)測系統(tǒng)的穩(wěn)健順利運行得到保證。
分布式光伏功率預(yù)測系統(tǒng)采用“瀏覽器/服務(wù)器模式”架構(gòu),即客戶端瀏覽器作為電網(wǎng)工作人員與系統(tǒng)管理人員的工作界面,服務(wù)器端完成主要的業(yè)務(wù)邏輯處理過程??蛻舳酥恍杌镜臑g覽器,而無需再安裝新的應(yīng)用程序。圖 6 為系統(tǒng)技術(shù)架構(gòu)圖,從下至上依次為數(shù)據(jù)層、服務(wù)層、展示層,其中服務(wù)層包含系統(tǒng)的數(shù)據(jù)訪問和業(yè)務(wù)邏輯等部分的功能。
圖6 系統(tǒng)技術(shù)架構(gòu)圖Fig.6 The diagram of system technical architecture
為了滿足功率預(yù)測相關(guān)數(shù)據(jù)存儲以及高訪問量的需求,系統(tǒng)采用“MySQL+Redis”的形式,組成系統(tǒng)的數(shù)據(jù)層。其中,MySQL 是Web 應(yīng)用的常見數(shù)據(jù)庫選擇,而采用Redis 的管道通訊方式能夠方便地進行數(shù)據(jù)讀取操作。
系統(tǒng)采用SpringBoot 作為服務(wù)層框架,SpringBoot 耦合Spring 框架,能夠靈活構(gòu)建無配置文件的應(yīng)用程序,簡化了項目開發(fā)過程[20]。JPA(Java Persistence API)提供了一種自EJB3.0 規(guī)范以來管理持久性和對象關(guān)系映射的機制,適用于JavaEE 環(huán)境的Java 編程模型。
系統(tǒng)采用Vue 作為前端UI 框架,Vue 提供了豐富的高質(zhì)量Web 彈層組件,避免了各種前端工具的復(fù)雜配置,只需專注于元素交互過程的構(gòu)建。同時,為了使系統(tǒng)表現(xiàn)更豐富,系統(tǒng)通過使用Ajax 技術(shù)和Echarts 圖形化工具對功率預(yù)測的數(shù)據(jù)進行可視化展示。在終端設(shè)備兼容方面,Echarts 繪制的可視化圖表能夠在不同的終端設(shè)備上流暢運行[21]。
本文首先提出一種面向光伏時序數(shù)據(jù)的預(yù)處理算法,并基于該算法設(shè)計數(shù)據(jù)管理層,并集成了預(yù)測模型層和可視化展示層,實現(xiàn)了分布式光伏功率預(yù)測系統(tǒng)。該系統(tǒng)能夠?qū)Χ喾N氣象數(shù)據(jù)和光伏電站數(shù)據(jù)進行預(yù)處理,并且可以方便地在多個時間尺度、區(qū)域范圍預(yù)測不同電站的未來功率。
使用針對時序數(shù)據(jù)的預(yù)處理算法提升數(shù)據(jù)質(zhì)量,及時精準地預(yù)測光伏出力,對降低光伏電站成本和電力系統(tǒng)運行成本、高效利用能源以及保證電網(wǎng)與負載的安全穩(wěn)定運行都有重要的意義。設(shè)計更高效的數(shù)據(jù)預(yù)處理算法、研究和集成豐富的預(yù)測模型是未來工作的重點。
利益沖突聲明
所有作者聲明不存在利益沖突關(guān)系。