楊 挺,趙黎媛,劉亞闖,馮少康,盆海波
(智能電網教育部重點實驗室(天津大學),天津市300072)
隨著環境壓力的增加和可再生能源技術的發展,世界各國正調整能源結構,以減少對傳統化石能源 的 依 賴[1-2]。綜 合 能 源 系 統(integrated energy system)的構建為優化能源供應、提高能源效率提供了新的解決方案[3-4]。
綜合能源系統的優化調度問題是綜合能源系統研究的重要問題。針對系統經濟調度問題,文獻[5]研究了含熱電聯供(combined heat and power,CHP)機組、光伏(photovoltaic,PV)、風電機組等的微網經濟調度問題,并采用Cplex軟件進行求解。文獻[6-7]采用改進的粒子群算法對電-熱綜合能源系統的經濟調度模型進行求解。以上研究均基于可再生能源出力和用戶負荷的準確預測信息,并未考慮源和荷的不確定性。為了應對系統中的不確定性,文獻[8]采用場景分析法對風電、光伏出力隨機性進行建模。文獻[9]考慮熱電聯供型微網中負荷的不確定性,研究了基于魯棒優化的系統優化調度問題。文獻[10]采用不確定集合表征方法,以區間形式描述風速數據,構建了雙層魯棒模型,從而得到最惡劣場景下的系統調度方案。
上述文獻主要研究綜合能源系統的日前調度問題,多限于固定的調度計劃,不能動態地對源和荷的隨機變化做出響應。為解決上述問題,近年來模型預測控制[11]備受關注。文獻[12]提出了一種基于模型預測控制的冷熱電聯供型微網的動態調度方法,以設備的日前計劃出力為參考值,在日內調度中建立風電、光伏及負荷的預測模型,基于滾動優化求解出各設備的出力。文獻[13]對并網型建筑能源系統采用模型預測控制方法優化各單元出力。雖然上述研究對綜合能源系統的動態調度問題有很大貢獻,但它們仍依賴于對可再生能源和負荷的精確預測。
本質上,綜合能源系統的動態調度問題是隨機序貫決策問題,可以采用強化學習(reinforcement learning,RL)進行求解。強化學習是一種重要的機器學習方法,它關注智能體在環境中如何采取行動以獲得最大的累積回報[14],而這與綜合能源系統動態經濟調度的設計目標是一致的,即關注綜合能源系統如何進行調度決策以獲得系統某個調度階段最優的運行成本。為此,本文引入強化學習解決綜合能源系統的動態經濟調度問題。強化學習是一種無模型的方法,不依賴于不確定性的分布知識[15],因此它不需要像傳統方法那樣預先對源和荷進行預測或建模。
已經有研究將強化學習用于電力能源系統的經濟調度和能量管理中。文獻[16]提出了一種基于多主體博弈和Q學習的綜合能源微網協調調度方案。為配合Q學習方法,該文將光伏、負荷需求等狀態量及燃氣聯供單元出力等動作量進行了離散操作,但這樣帶來一個顯著的問題就是維數災難[17]。文獻[18]研究了微網的分布式能量管理問題,將分布式電源、儲能等建模為自治智能體,采用Q學習制定系統的能源管理和負荷調度策略,該文同樣將柴油機和電儲能(battery energy storage,BES)的動作進行了離散化處理。文獻[19]采用深度Q網絡(deep Q network,DQN)求解微網的實時調度策略,所提方法需要將電儲能的充放電動作進行離散。然而,動作空間的離散化操作將大大減小可選動作范圍。
為解決該問題,本文將所研究的綜合能源系統動態調度問題置于連續狀態和動作空間中進行處理,采用具有連續決策能力的深度確定性策略梯度(deep deterministic policy gradient,DDPG)算 法[20]進行求解。
綜合能源系統運行優化的首要目標是提升系統經濟效益,即在滿足用戶負荷需求的前提下,以最優經濟運行為目標,有效地安排各設備在每個時段的出力。為此,本章建立了綜合能源系統最優動態經濟調度模型。以圖1所示的綜合能源系統為例,該系統包含了熱電聯供機組、光伏、電儲能、燃氣鍋爐(gas boiler,GB)、電鍋爐(electric boiler,EB)及用戶電-熱負荷等綜合能源系統常見單元。

圖1 綜合能源系統結構示意圖Fig.1 Schematic diagram of structure of integrated energy system
綜合能源系統動態經濟調度問題的目標是最小化系統運行成本,其包括從能源供應處購買能源的成本、電儲能的充放電折舊成本和設備維護成本。由于設備維護成本相對總運行成本較小,故未考慮在總成本中[21]。系統運行成本數學表示為:

式中:CE為購買能源的成本;CBES為電儲能的充放電折舊成本。
其中,購買能源的成本為:

式中:pgrid(t)為時段t系統與主電網進行電力交換的功率,為正表示系統向主電網購電,為負表示系統進行余電上網;εe(t)為時段t的電價;εgas(t)為時段t購買天然氣的單位熱值價格;pCHP(t)為時段t熱電聯供機組輸出的電功率;hGB(t)為燃氣鍋爐輸出的熱功率;ηCHPp為熱電聯供機組的電效率;ηGB為燃氣鍋爐的效率;T為系統調度的總時段;Δt為時隙長度。
電儲能的充放電折舊成本參考文獻[22]中的計算公式得到:

式中:pBES(t)為電儲能在時段t的充電/放電功率,為正表示電儲能處于放電狀態,為負表示處于充電狀態;ρBES為電儲能折舊成本系數。
綜合能源系統動態經濟調度問題的約束包括功率平衡約束、外部能源供應約束和設備運行約束。
1)功率平衡約束
在時段t,電功率平衡約束和熱功率平衡約束分別可表述為:

式中:hCHP(t)為熱電聯供機組在時段t輸出的熱功率;pEB(t)為電鍋爐的輸入電功率;hEB(t)為電鍋爐輸出的熱功率;pPV(t)為光伏的輸出功率;pload(t)為時段t的電負荷;hload(t)為時段t的熱負荷。
對于熱電聯供機組,其輸出電功率與熱功率之間的耦合關系稱為“電熱特性”,依據其熱電比是否變化,可分為定熱電比和變熱電比2種類型。對熱電聯供機組,一般設為定熱電比[10],用變量b表示。

2)與主電網的交互功率約束
考慮到電網側的運行穩定性,主網對綜合能源系統的功率交互有上、下限約束要求:

3)設備運行約束
綜合能源系統中各設備均有設備運行上、下限范圍,對于熱電聯供機組輸出電功率、電儲能設備充電/放電功率、燃氣鍋爐輸出熱功率和電鍋爐輸出熱功率,分別有

對于電儲能設備,還需要避免深度充放電對電儲能的損害,因此電儲能的荷電狀態(state of charge,SOC)被限定在一定范圍內。

cSOC(t)可表示為:


式中:ηch和ηdis分別為電儲能的充電效率和放電效率。
此外,為保證電儲能持續穩定運行,要求一個調度周期始末電儲能容量相等。至此,綜合考慮綜合能源系統運行優化的目標如式(16)所示,系統所需滿足的約束為式(4)—式(15)。

本文利用強化學習非常適合求解含不確定性因素的優化決策問題的優勢,對計及間歇性可再生能源發電和用戶負荷需求隨機波動的綜合能源系統的動態經濟調度問題進行求解。首先,將第1章綜合能源系統的動態經濟調度問題的數學表述轉化為強化學習框架。
強化學習的基本組成部分包括表征環境的狀態集合S、表征智能體動作的動作集合A及對智能體的獎勵r。在本文中,綜合能源系統是智能體的環境,智能體通過調節系統中的設備出力進行最優調度決策。在時段t,環境向智能體提供觀測到的系統狀態st∈S,智能體基于策略π(策略π是將狀態s映射到動作a的函數,即π:S→A?a=π(s))和綜合能源系統狀態st生成動態動作at。
這其中,綜合能源系統的觀測狀態包括用戶電負荷需求量、熱負荷需求量、光伏發電功率、電儲能的荷電狀態以及所處的調度時段。對于綜合能源系統,其狀態表示為:

在時段t,綜合能源系統中的動作可以由設備的出力情況表示。由于pCHP(t)確定后,hCHP(t)可根據式(6)得到;hGB(t)確定后,hEB(t)可根據式(5)得到;進 一 步,pEB(t)可 以 根 據pEB(t)=hEB(t)/ηEB計 算 得到,其中ηEB是電鍋爐的輸出效率;進而pgrid(t)也可計算得到,故綜合能源系統的動作可以用pCHP(t)、pBES(t)、hGB(t)表示:

綜合能源系統經濟調度的目標是最小化系統總運行成本。本文將系統總成本最小化問題轉化為強化學習經典的獎勵最大化形式,因此,將智能體在時段t獲得的獎勵表示為:

式(19)中1/1 000是對成本值進行相應縮放。
在綜合能源系統某一狀態sl確定時,綜合能源系統動態經濟調度動作al的優劣程度可以使用動作-值函數Qπ(s,a)[23]來評估,即

式中:Eπ(·)為策略π下的期望;γ∈[0,1],為折扣因子,表示未來某一時刻的獎勵在累積獎勵中所占的影響比重,γ越大,則越重視對未來的獎勵。
綜合能源系統動態經濟調度的目標是找到最優策略π*以最大化動作-值函數,如式(21)所示。

傳統的強化學習方法在小規模離散空間的問題中表現良好。但當處理連續狀態變量任務時隨著空間維度的增加,其離散化得到的狀態數量則呈指數級增長,即存在維數災難問題[17],無法有效學習。分析本文所研究的綜合能源系統動態經濟調度問題,其狀態空間中的負荷、光伏發電及荷電狀態均為連續量,因此傳統強化學習方法往往無法有效求解。
同時,綜合能源系統的動作空間中pCHP(t)、pBES(t)和hEB(t)也均為連續量。同樣,對動作空間進行離散化將會刪除決策動作域結構中的諸多信息。針對該問題,本文采用深度神經網絡(deep neural network,DNN)[24]對強化學習進行函數近似,從而使其適用于連續狀態和動作空間的綜合能源系統動態經濟調度問題。算法具體選擇基于actor(策略)-critic(值)框架的DDPG算法[20],它通過深度神經網絡來估計最優策略函數。它不僅可以避免維數災難,還能保存整個動作域的信息[25]。
DDPG算法使用2個獨立的網絡θQ和θπ來逼近critic函數和actor函數,且每個網絡均有各自的目標網 絡θQ′和θπ′,其 中Q′和π′分 別 為 目 標Q值 和 目 標策略。
1)值網絡訓練
對于值網絡,通過最小化損失函數L( θQ)來優化參數:

式中:yt為目標Q值,如式(23)所示;E(·)為期望函數。

在時段t,綜合能源系統執行調度動作at后會進入下一個狀態st+1,即更新后的電儲能的荷電狀態值和下一個時段觀測得到的電負荷、熱負荷和光伏發電值。
L(θQ)關于θQ的梯度為:

式中:?為表示梯度計算的函數。
式(24)中yt?Q( st,at|θQ)即為時序差分誤差(timing differential error,TD-error),根據梯度規則更新網絡,可得到更新公式為:

式中:μQ為值網絡學習率。
2)策略網絡訓練
對于策略網絡,其提供梯度信息?aQ( st,at|θQ)作為動作改進的方向。為了更新策略網絡,使用采樣策略梯度:

根據確定性策略梯度,更新策略網絡參數θπ:

式中:μπ為策略網絡學習率。
目標網絡的參數θQ′和θπ′采用軟更新技術來進一步提高學習過程的穩定性:

式中:τ為軟更新系數,τ?1。
算法中,通過為動作at={pCHP(t),pBES(t),hGB(t)}加入隨機噪聲υt以增加DDPG算法在綜合能源系統交互時對環境的探索能力,以學習到更加優化的動態調度策略。

在此采用Ornstein-Uhlenbeck(OU)噪聲。它是一種基于OU過程的隨機變量,被用于模擬與時間關聯噪聲集[26]。
本文建立基于DDPG算法的綜合能源系統動態經濟調度框架,如圖2所示。對于DDPG算法,策略網絡的輸入是5維狀態st={pload(t),hload(t),pPV(t),cSOC(t?1),t},輸出是3維動作at={pCHP(t),pBES(t),hGB(t)};值網絡的輸入是狀態st和動作at,輸出是動作-值函數,即Q(st,at)。在學習過程中,由于智能體與環境的順序交互,樣本是有關聯的,這意味著這些樣本并不像大多數深度學習算法所假設的那樣是獨立同分布的。為了應對此問題,DDPG算法采用了深度Q網絡[27]中的經驗回放機制。其通過在每個時段存儲智能體的經驗et=(st,at,rt,st+1),形成回放記憶序列D。訓練時,每次從D中隨機提取小批量(mini-batch,大小為M)的經驗樣本,并基于梯度規則更新網絡參數。經驗回放機制通過隨機采樣歷史數據打破了數據之間的相關性,而經驗的重復使用也增加了數據的使用效率。
采用歷史數據作為綜合能源系統狀態,離線訓練DDPG算法網絡。其輸入為系統的電負荷、熱負荷、光伏發電、電儲能荷電狀態及調度時段。離線訓練結束后,訓練得到的DDPG算法參數將被固定,用于綜合能源系統的動態經濟調度問題求解。對于綜合能源系統,當調度任務來臨時,在每個時段,根據當前系統狀態st,利用訓練好的DDPG算法網絡、策略網絡選擇調度動作at。然后,執行動作at并且進入下一個環境狀態,同時,獲得獎勵rt。繼而采集時段t+1系統的狀態信息st+1作為新的樣本,并進行這個時段的決策。如此,可以得到動態調度動作。

圖2 基于DDPG算法的綜合能源系統動態經濟調度方案Fig.2 Dynamic economic dispatch scheme of integrated energy system based on DDPG algorithm
為評測所提出的基于深度強化學習DDPG算法的綜合能源系統動態調度策略的有效性,采用圖1所示的熱電聯供型綜合能源系統為算例進行仿真研究。系統中的熱負荷、電負荷和同期光伏發電數據基于開源的CREST模型[28]產生。該模型是拉夫堡大學研究團隊提出的,已經過有效性驗證,且被廣泛使用[29-31]。系統調度時段長度為24 h,相鄰2個時段的間隔為15 min。綜合能源系統中元件的運行參數如表1所示。

表1 設備運行參數Table 1 O peration parameters of devices
系統與主電網交換功率的范圍為[?2.5,2.5]MW,電儲能的容量為1 000 k W·h,其他參數如表2所示。本文電價采用分時電價,如表3所示,其中峰時段為12:00—19:00,平時段為07:00—12:00、19:00—23:00,谷時段為23:00—07:00。天然氣價格為固定價格0.4元/(k W·h)。

表2 其他參數Table 2 O ther parameters

表3 分時電價Table 3 T ime-of-use electricity price
在將所建深度強化學習網絡應用于系統動態經濟調度問題之前,首先通過歷史數據訓練深度強化學習的參數,得到深度強化學習網絡。訓練數據由去年同期、相同地點的負荷數據和光伏數據構造得到。在1日的開始,智能體接收來自環境的光伏出力、電負荷和熱負荷需求,然后根據第3章所述的學習過程計算獎勵值來調整DDPG算法網絡參數,直到最終獲得最大獎勵。
以CREST模型生成的1月份和2月份的歷史數據作為訓練數據。圖3給出了部分歷史樣本數據,包括電負荷、熱負荷和光伏出力數據。對于超參數的選擇,一方面根據深度學習社區[32]推薦的常用做法選取,另一方面,參考文獻[23,33]中網絡結構和參數的選擇思路和方案,根據本文的訓練數據進行試錯調整。DDPG算法中策略網絡和值網絡的隱含層層數均為2層,每層有100個神經元,隱含層的激活函數均為ReLU(線性修正單元)。折扣因子為0.95,mini-batch大小為128,經驗池大小為20 000,值網絡學習率為0.001,策略網絡學習率為0.000 1,τ為0.001,采用Adam優化器更新網絡權重。

圖3 綜合能源系統的歷史樣本數據Fig.3 Historical sample data of integrated energy system
為了展現所提方法的收斂性能,附錄A圖A1給出了智能體訓練過程中每100個episodes(周期)的平均獎勵值曲線。該算法經過約10 000個episodes后收斂,得到了最優的動態經濟調度策略。可以觀察到,由于智能體最初對環境不熟悉,智能體執行調度決策后獲得的獎勵值較小。隨著訓練過程的繼續,智能體不斷地與環境交互并獲得經驗,因此獎勵值整體趨勢為逐漸增加并最終收斂。這說明智能體已經學習到了最小化系統運行成本的最優調度策略。由于在每個episode中的日訓練數據,如負荷數據和光伏發電數據都有變化,因此在訓練過程中獎勵值會出現振蕩。
利用歷史數據對DDPG算法網絡進行離線訓練后,得到的網絡被保存以用于系統的動態經濟調度。為了說明系統的動態經濟調度結果,以該地區2016年2月1日的調度情況為例,基于本文提出的基于DDPG算法得到的pCHP(t)、pBES(t)、hGB(t)以及由 相 應 計 算 得 到 的hCHP(t)、hEB(t)、pEB(t)、pgrid(t)結果如圖4和圖5所示。其中,圖4為電功率調度結果,圖5為熱功率調度結果。

圖4 基于DDPG算法的電功率調度結果Fig.4 Dispatch results of electric power based on DDPG algorithm

圖5 基于DDPG算法的熱功率調度結果Fig.5 Dispatch results of heat power based on DDPG algorithm
由圖4可以看出,電儲能在電價的引導下進行充放電,在谷電價且電負荷較小時充電以備后續的高峰時段,如00:00—00:30、03:45—04:00等時段;在峰電價且電負荷較高時放電以減少運行成本,如12:00—12:15、17:30—18:45等時段。在谷電價和平電價階段,系統向主電網購電以滿足用電需求。當電價為峰電價時,熱電聯供機組產生電能來避免向主電網購電,從而減少系統運行成本。由圖5可以看出,電鍋爐在谷電價時購電制熱;谷電價且熱負荷高于1.5 MW時,電鍋爐制熱不能滿足熱負荷需求,燃氣鍋爐制熱進行補充,如06:15—06:45時段。平電價階段,用戶的熱負荷需求由燃氣鍋爐制熱滿足。峰電價時熱電聯供機組或熱電聯供機組與燃氣鍋爐共同制熱以滿足用戶熱負荷需求。這表明本文提出的基于DDPG算法的動態經濟調度方案能夠不斷優化各設備出力以滿足用戶負荷需求并減少系統運行成本。
考慮到訓練數據均為1月和2月(冬季)的樣本數據,選取4月份(春季)的某天作為1個測試日,進一步驗證所提方法的泛化性能。具體選擇2016年4月9日的數據進行測試,該測試日的熱負荷整體情況小于2016年2月1日測試日的熱負荷,光伏出力時間較長。基于本文DDPG算法的調度方法得到的該測試日的調度結果如附錄A圖A2和圖A3所示。
由圖A2可以看出,電儲能充放電情況和系統向主電網購電情況基本跟隨電價變化。峰電價且光伏出力較大時,電負荷主要由光伏出力提供,不足部分由熱電聯供機組或電儲能進行補充。由圖A3可以看出,電鍋爐在谷電價時購電制熱;在07:00—07:30的平電價階段,燃氣鍋爐制熱不能滿足熱負荷需求,電鍋爐產熱進行補充。峰電價階段,熱負荷主要由熱電聯供機組或熱電聯供機組與燃氣鍋爐共同提供。在12:45、13:15—13:45等時刻或時段,熱電聯供機組未提供出力,熱負荷全部由燃氣鍋爐提供。在2個測試場景中,所提方法均能夠動態調整各設備出力以滿足用戶用能需求并降低系統運行成本,這說明所提方法對于未經歷過的場景具有良好的泛化能力。
為驗證本文提出的基于DDPG算法的綜合能源系統動態經濟調度方法的有效性,將基于DDPG算法的調度方法與基于深度Q網絡的調度方法以及基于模型預測控制的調度方法進行對比。從2016年1月和2月中隨機抽取15 d作為15個測試日,對采用3種方法得到的運行成本進行比較。
對于所采用的深度Q網絡,其輸入為5維狀態向量,輸出為狀態-動作對的Q值,本文將pCHP(t)、pBES(t)、hGB(t)分別以0.4、0.1、0.4 MW為間隔,分別離散為5個整數值。因此深度Q網絡的輸入層有5個神經元,輸出層有125(=5×5×5)個神經元。深度Q網絡有2個隱含層,每層均有200個神經元,隱含層的激活函數均為ReLU。對于模型預測控制方法,采用含1個隱含層的全連接神經網絡對光伏出力和負荷進行預測。
表4給出了3種方法日運行成本的統計數據。其中,基于深度Q網絡方法的平均日運行成本為17 928元,較DDPG算法增加了4.95%;基于模型預測控制方法的平均日運行成本為18 001元,較DDPG算法增加了5.37%。從日運行成本的平均值、最小值、最大值和標準差來看,DDPG算法較深度Q網絡方法和模型預測控制方法獲得了更好的性能,能有效地降低系統運行成本。由于源和荷的高度不確定性,采用基于源、荷預測信息的傳統調度方法受限于預測準確度。而在深度Q網絡方法中,由于燃氣鍋爐、熱電聯供機組、電儲能的出力需取設定的離散值,而設定的離散動作值必將大大減少可行的動作選項,造成次優動作選擇,因而造成了運行成本的增加。因此,本文所提出的基于DDPG算法的調度方法更適合解決綜合能源系統的動態經濟調度問題。

表4 不同調度方法的日運行成本統計Table 4 S tatistics of daily operational cost for different dispatch methods
本文提出了一種基于DDPG算法的綜合能源系統動態經濟調度方法。不同于傳統方法,該方法不需要對源和荷進行預測,也不需要先期獲得不確定性因素的分布知識。此外,所提方法通過將綜合能源系統的動態調度問題置于連續狀態和動作空間來處理,避免了離散化操作帶來的維數災難和次優調度策略選擇問題。對比了2種不同的深度強化學習算法的應用效果,以及所提方法與傳統方法的性能差異,并分析了差異產生的原因,表明了本文所提出的基于DDPG算法的綜合能源系統動態調度方法能夠更好地實現系統的動態經濟調度。
在算法層面,深度強化學習DDPG算法的經驗回放機制通過隨機采樣歷史數據打破了數據之間的相關性,但該機制采用均勻隨機采樣的方式從經驗池中提取經驗數據,而沒有考慮不同經驗的重要程度。在今后的工作中,為了回放更有價值的經驗,將對算法的經驗回放機制進行改進,從而提高策略質量。本文所采用的深度強化學習方法亦可用于解決其他能源系統中的優化調度問題,如微網、能源互聯網等,為這方面的研究提供了一種思路。