王海群,費 斐,陳凱玲
(國網上海市電力公司 經濟技術研究院,上海 200090)
隨著電力市場化改革的進一步推進,電力市場中可再生能源滲透率進一步提高,電力系統將迎來前所未有的升級改造。能源互聯網充分考慮可再生能源出力的不確定性,進行有效的互聯互補,為新能源就地消納提供了一種有效的途徑[1]。在這種發(fā)展趨勢下,虛擬電廠(Virtual Power Plant,VPP)應運而出。微電網在消納分布式能源時,通常會受到地理位置的限制,而虛擬電廠卻沒有這種限制,打破了發(fā)電側、用電側的阻隔。虛擬電廠的提出,實現了區(qū)域性多能源的互聯,達到能源系統智能化管理的目的[2],有利于新能源的消納,提高了新能源的利用率,有效遏制了棄風棄光現象[3]。然而,目前VPP控制中心具有絕對的權限,VPP在聚合發(fā)電、用電單元時,缺乏信息安全的保障體系[4],同時存在著信任缺失問題[5]。多能源協同管控,提高能源利用率是目前能源市場的發(fā)展趨勢。但是多能源協同管控帶來的信息安全、信任缺失等成為亟待解決的問題。
區(qū)塊鏈是一種去中心化的網絡,具有智能合約、分布決策、協同自治、防篡改的高安全性和公開透明性等特征,區(qū)塊鏈技術對于微電網分布式電能交易具有較好的適用性,可以有效提高分布式能源的消納,進一步促進分布式能源的發(fā)展[6]。國內外學者在區(qū)塊鏈技術應用于電力市場中的研究及應用尚處在起步階段。Suda等[7]構建了基于區(qū)塊鏈技術的大用戶直購電交易框架。李劍峰[8]在區(qū)塊鏈的基礎上構建微電網運行優(yōu)化模型,并以最小運行總成本為目標實現了電力出力波動的平抑。任建文等[9]基于區(qū)塊鏈與微電網相似的拓撲結構,探討了微電網分布式電能交易的總體架構。雖然這些研究利用區(qū)塊鏈技術形成了去中心化的模型框架,但是將區(qū)塊鏈與電力系統相結合進行調度優(yōu)化方面的研究較少。
基于上述考慮,本文分析了VPP 模型的特點,提出了改進實用拜占庭容錯(Practical Byzantine Fault Tolerance,PBFT)算法的共識機制。PBFT算法適用于VPP運行特征,可以實現虛擬電廠的有效調度。在等耗量微增率準則的基礎上,將微增量特征作為一致性變量,實現虛擬電廠的最優(yōu)經濟調度。最后,通過算例仿真驗證了本文所提出的方法的有效性,為未來虛擬電廠的進一步發(fā)展提供了可信的參考。
區(qū)塊鏈由一串基于密碼學原理產生的數據塊組成,每一個數據塊包含區(qū)塊頭以及區(qū)塊體[10-11]。區(qū)塊體負責記錄前一段時間內的所有交易信息,由區(qū)塊頭實現區(qū)塊鏈的大部分功能。
在能源互聯網中引入區(qū)塊鏈技術形成能源區(qū)塊鏈網絡(Energy Blockchain Net-work,EBN)。在能源區(qū)塊鏈中,利用智能合約、共識機制等技術特征[12-13],實現了點對點直接可信交易。能源區(qū)塊鏈具有去中心化、去信任、開放共享的特點契合能源互聯網的發(fā)展目標,將區(qū)塊鏈技術引入VPP的可行性分析如圖1所示。
在能源區(qū)塊鏈連中,VPP的每個分布式能源節(jié)點作為一個單元將擁有特定ID 作為唯一的身份標識。每個能源區(qū)塊儲存該網絡中一段時間內的信息,具體如表1所示。
表1 EBN存儲的信息
在EBN 與VPP 進行協同調度時,新的分布式單元將憑借其特定的ID 才能參與調度協作,具體步驟如圖2所示。
聯盟鏈[14-15]對一個特定的行業(yè)組織開放,每個新加人的節(jié)點都需要經過驗證和審核。在虛擬電廠的實際調度運行中,由于分布式能源節(jié)點發(fā)力的不確定性將導致無法實現經濟最優(yōu)化調度。在聯盟鏈中,可以適應包含少量故障節(jié)點或作惡節(jié)點的情況,適用于虛擬電廠的運行特點。在區(qū)塊鏈系統中,當共識節(jié)點數量較少時,可采用實用拜占庭容錯算法(PBFT)以有效提高共識的效率及共識結果的準確性。PBFT 的運行環(huán)境要求是一個相對封閉的集群,每一次共識需要多次兩兩節(jié)點進行通信。PBFT 適合行業(yè)、政府等主導的聯盟鏈,是節(jié)點數量有限系統并不需要具備數字貨幣發(fā)行機制時的理想選擇。因此,基于虛擬電廠的運行特性,本文選擇聯盟鏈并采用PBFT 算法。
研究可知,密碼學技術可保證各分布式能源節(jié)點之間信息通信不可篡改,這是運用PBFT 算法的前提條件。假設系統中的總節(jié)點數|n|=3f+1,則在系統正常運轉的狀態(tài)下,需要有2f+1個正常節(jié)點,整個系統中無效或惡意節(jié)點的數目的最大值為f個,進而知PBFT 的最大容錯率為30%。PBFT 算法的執(zhí)行分為3個時間段,分別為預準備(Pre-prepare)、準備(Prepare)和確認(Commit)。經過3個階段的共識運作,可以確保所有參與共識的分布式能源節(jié)點目標具有一致性。
共識機制的原則是少數服從多數,PBFT 采用這一原則進行共識記賬,總體過程包括如下4個步驟[16-17](見圖3)。
通過分析可以發(fā)現,PBFT 算法具有4個顯著優(yōu)點:①在低耗能的前提下,它具備權限分級能力;②它是專業(yè)化的記賬人;③可以容忍任何類型的錯識,記賬由多人協同完成,每一個區(qū)塊都有最終性,不會分叉;④具有嚴格的數學證明保證算法的可靠性。
在共識過程中,PBFT 算法可保證各分布式能源節(jié)點的靈活性、安全性,同時可提供(N-1)/3的容錯性[18]。PBFT 共識算法具有契合聯盟鏈的運行機制,同時也能夠降低共識信息丟失、延遲、被偽造篡改的風險性。在包含N個節(jié)點的系統中,PBFT 算法可容許出現f(N≥3f)個錯誤節(jié)點或惡意節(jié)點,即在含有N個節(jié)點的系統中,容許出現f(N>3f)個拜占庭節(jié)點錯誤,可有效提高原始拜占庭容錯算法效率。在VPP運行調度過程中需要考慮分布式能源出力的波動性,為使算法與VPP調度運行具有更高的契合性,對PBFT 算法進行改進,改進后的算法流程分為5個階段,即Request階段、Pre-prepare階段、Prepare階段、Commit 1階段以及Commit 2階段。
(1)Request階段。需求側向VPP控制中心發(fā)送請求,需求側節(jié)點單元形成集合〈Request,o,t,c〉。其中:o為請求執(zhí)行的操作;t為時間戳,確??蛻舳说恼埱蟊挥行騿未蔚膱?zhí)行;c為需求側請求方。
(2)Pre-prepare階段。VPP 控制中心根據接收到的請求,形成預調度方案并將方案信息生成新區(qū)塊,然后進行全網廣播。新區(qū)塊集合為〈Pre-pare,v,n,d0>m0〉。其中:v為VPP控制中心的編號;n為請求信息的序號;m0包含需求側發(fā)送的請求及VPP形成的預調度方案消息;d0為m0的摘要。VPP控制中心將需求側的每一次請求信息編上序號存儲于控制中心內,防止未來VPP控制中心發(fā)生變更,請求信息丟失無法溯源。
(3)Prepare階段。此階段是分布式能源節(jié)點的接收共識過程,即當分布式單元節(jié)點在接收到調度執(zhí)行指令時,首先驗證指令信息是否由VPP控制中心發(fā)出,驗證通過后,各分布式單元節(jié)點對調度方案的可行性進行共識,若方案滿足約束條件,則通過驗證并對全網進行廣播,廣播各分布式能源節(jié)點的驗證結果〈Prepare,v,n,,i〉,其中:為能源節(jié)點對m0的驗證簽名;i為該節(jié)點的序號,同時等待接收超過2/3的節(jié)點廣播驗證結果,若驗證未獲通過,則不廣播。在Prepare階段,所有的分布式能源節(jié)點具有參與運行調度的能力及實際操作條件。
(4)Commit 1 階段。等待最終的共識結果。當整個系統內有超過2/3的分布式能源節(jié)點廣播自身驗證通過的結果后,所有分布式能源節(jié)點達成共識。達成共識后,利用區(qū)塊鏈技術追溯和共享歷史數據,根據歷史樣本計算初始場景概率,并根據預調度方案d0形成初始調控方案,再次發(fā)送廣播〈Commit1,v,n,d0,,di,i,mi〉。其中:mi為該能源節(jié)點提供的初始調控方案及該場景的初始概率;di為mi的摘要,同時再次等待接收超過2/3的節(jié)點的廣播驗證結果。
(5)Commit 2階段。對最終待執(zhí)行的調度方案進行最后的驗證,并廣播〈Commit1,v,n,d0,,di,i,mi〉,其中,為能源節(jié)點對mi的驗證簽名,當整個系統內有超過2/3的分布式能源節(jié)點達成共識而通過驗證時,則驗證完成并執(zhí)行具體的調度方案。
在改進的PBFT 算法基礎上,依據等耗量微增率準則,系統內分布式能源節(jié)點的調度方案形成過程如圖4所示。
當系統內的負荷總量發(fā)生變化時,所有機組將收到功率調整需求。各個機組在收到請求后將利用PBFT 算法進行共識。共識通過后,系統內各個機組重新計算本單元出力功率以及微增量特征值λ,各機組根據計算值調整機組實際功率并且向全網廣播微增量特征λ。所有機組將其更新后的出力功率值記錄在區(qū)塊鏈上,為下一次的調度做準備。具體流程如下:
圖4中DERs表示能源節(jié)點,其中DERs1意為主節(jié)點。
(1)當系統內總負荷發(fā)生改變時,主節(jié)點DERs1被激活,主節(jié)點接收到功率計算請求的信息后,將對信息進行預處理。
(2)當主節(jié)點DERs1對接收到的信息預處理完成后,將基于分布式調度三階段的具體規(guī)則向系統內各個分布式能源節(jié)點廣播信息。
(3)請求的序號分配階段,主節(jié)點DERs1給分布式能源節(jié)點的請求按照時間附上相應的序號值,不同時間段的請求得到不同的序號,利用序號和請求操作構造Pre-Prepare消息,并廣播給各DERs節(jié)點。在序號分配完成后,主節(jié)點DERs1將總的變化負荷PLD和功率計算請求發(fā)送到全網進行廣播,各分布式能源節(jié)點接收具體信息。
(4)信息交互階段,各DERs 節(jié)點接收Pre-Prepare消息,每個節(jié)點向其他分布式能源節(jié)點廣播消息,如果節(jié)點收到2f個不同節(jié)點的消息,根據PBFT 的規(guī)定,共識已經達成,Prepare階段已經完成,系統內各節(jié)點獲得更新后的負荷值。此時各節(jié)點初步具有計算能力,具備參與調度的條件。
(5)序號確認階段,各節(jié)點對視圖內的請求和次序進行驗證后,如果節(jié)點收到了2f +1 個Commit提交消息,代表大多數節(jié)點已經進入Commit階段,這一階段已達成共識。共識達成后,系統內各個分布式能源節(jié)點將會執(zhí)行請求。
下面以區(qū)塊鏈中第i個節(jié)點的計算過程為例,說明等耗量微增率準則的計算過程。
依據分布式調度準則,要求所有節(jié)點微增量特征值λ一致,即滿足
將所有節(jié)點功率用Pi表示,于是有:
一般情況下,總負荷功能PLD是已知的,因此,有
由于PLD已知,從而可計算得到新的Pi,然后將其代人式(2)得到所有節(jié)點的新的功率值,并更新到區(qū)塊鏈中,同時計算λ值并發(fā)送給任務的發(fā)起節(jié)點。
(6)任務發(fā)起者接收來自不同節(jié)點的響應,若有2f+1個響應微增量特征值λ相同,則系統內所有節(jié)點對于本次負荷波動的計算值已經達成共識。該響應結果即為本次請求計算的結果,本次分布式功率分配調整將按照上述計算值完成具體操作,實現最優(yōu)經濟調度。
分布式能源系統的不穩(wěn)定性導致當有新的能源節(jié)點加入時,系統內在審核通過新節(jié)點的加入請求后,廣播自身參數及功率值,完成新節(jié)點的功率分配。當有節(jié)點退出時,采用類似操作更新鏈上數據和調整功率,保證整個系統運行狀態(tài)平穩(wěn)。
為驗證本文所提出算法的有效性,通過實驗進行仿真驗證。假設在某VPP 系統內分散了4 個DERs,類型為微型燃氣發(fā)電機(Micro Gas Generators,MGG),MGG 通過區(qū)塊鏈網絡連接,每個MGG 是網絡中的一個節(jié)點,并假設該網絡存在一定網絡延時,但保證點對點直接通信。機組的運行參數和初始功率如表2所示。
表2 機組的運行參數和初始功率
存在網絡延時的情況下,測試一致性變量λ的變化情況。由圖5可知,在初始t=1時刻,各機組的λ值不同,不滿足等耗量微增率準則,系統的運行沒有達到最優(yōu)狀態(tài)。
圖5展示了在共識過程中,總負荷功率PLD與機組發(fā)電總功率SUM(Pi)的對比情形。由圖5可以發(fā)現,雖然網絡延時和共識計算造成了系統波動,但最終達到了功率平衡。
圖6展示了各個MGG 機組的有功功率調整情況,最終功率值穩(wěn)定在最優(yōu)運行狀態(tài)。
虛擬電廠有助于優(yōu)化資源配置,提高新能源的利用率。本文分析了能源區(qū)塊鏈與VPP之間的契合互補特性,建立了基于EBN 的VPP 調度運行機制?;趨^(qū)塊鏈技術去中心化、自治等技術特點,針對虛擬電廠的運行特征,采用等耗量微增率準則,實現虛擬電廠的完全分布式運行控制。后續(xù)將進一步探討區(qū)塊鏈與虛擬電廠的深度融合技術,促進可再生能源的吸納。