黃 偉,左欣雅,劉弋銘
(1. 華北電力大學(xué)電氣與電子工程學(xué)院,北京市 102206;2. 國(guó)網(wǎng)內(nèi)蒙古東部電力有限公司呼倫貝爾供電公司,內(nèi)蒙古自治區(qū)呼倫貝爾市 021100)
在能源領(lǐng)域,中國(guó)正全面推進(jìn)清潔低碳、安全高效的現(xiàn)代能源體系建設(shè)[1]。綜合能源系統(tǒng)(IES)作為一種高效利用新能源、實(shí)現(xiàn)多種能源協(xié)同調(diào)度的重要方式被大力推廣[2]。隨著研究的深入,IES 中能源供應(yīng)主體不斷豐富,這對(duì)主體利益分配、隱私維護(hù)和系統(tǒng)安全提出了更高的要求。傳統(tǒng)的集中調(diào)度模式面臨諸多挑戰(zhàn)[3-5]:統(tǒng)一調(diào)度中心需要短時(shí)收集全局?jǐn)?shù)據(jù)、處理所有決策變量,IES 通信壓力大、安全風(fēng)險(xiǎn)高、運(yùn)行效率低;各能源主體期望保有自主調(diào)度運(yùn)營(yíng)權(quán),以維護(hù)自身利益、保護(hù)數(shù)據(jù)隱私。因此,由各主體自主運(yùn)營(yíng)、協(xié)同管理的分散式調(diào)度模式是IES 調(diào)度的重要方向之一。
文獻(xiàn)[6]通過(guò)定價(jià)和定量?jī)蓚€(gè)階段的博弈,實(shí)現(xiàn)部分分散式的社區(qū)IES 協(xié)同優(yōu)化策略。文獻(xiàn)[7]基于有向聯(lián)通圖的一致性協(xié)議,建立了考慮需求響應(yīng)的完全分散式能量管理模型。文獻(xiàn)[8]通過(guò)能量路由器實(shí)現(xiàn)多種能源主體的分散式協(xié)同控制。但分散式的調(diào)度模式[6-9]通常缺乏監(jiān)管體系,不能驗(yàn)證數(shù)據(jù)的正確性,無(wú)法確保系統(tǒng)運(yùn)行的安全可靠。
區(qū)塊鏈技術(shù)是一種去中心化、去信任的底層技術(shù)框架[10],其分布式的數(shù)據(jù)存儲(chǔ)模式、智能合約、共識(shí)機(jī)制、多鏈擴(kuò)容和加密技術(shù),可與完全分散式的計(jì)算過(guò)程結(jié)合,以實(shí)現(xiàn)計(jì)算過(guò)程的對(duì)等、安全、智能以及計(jì)算數(shù)據(jù)的可追溯和不可篡改[11-12]。文獻(xiàn)[13]應(yīng)用區(qū)塊鏈的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)和智能合約,建立了微電網(wǎng)內(nèi)分布式電源間的協(xié)同調(diào)度模型。文獻(xiàn)[14]利用區(qū)塊鏈技術(shù)優(yōu)化了多個(gè)微電網(wǎng)之間分散式的能量交互和資金流動(dòng)。針對(duì)IES 的多能交互,文獻(xiàn)[15]提出了一種基于實(shí)用拜占庭容錯(cuò)(PBFT)算法的多能源交互主體共識(shí)方法,以提高系統(tǒng)優(yōu)化運(yùn)行的數(shù)據(jù)真實(shí)性和主體可靠性。
目前,區(qū)塊鏈技術(shù)在IES 調(diào)度中的研究較為匱乏。本文針對(duì)IES 完全分散的調(diào)度模式,基于區(qū)塊鏈技術(shù)的去中心化、運(yùn)行可靠、數(shù)據(jù)安全3 個(gè)顯著特征,分析了區(qū)塊鏈在分散式調(diào)度中的契合性,應(yīng)用多鏈擴(kuò)容和哈希加密算法提高區(qū)塊鏈在IES 調(diào)度系統(tǒng)中的運(yùn)行性能,提出了包含熱/電迭代鏈和調(diào)度終值鏈的多鏈結(jié)構(gòu),進(jìn)一步建立了IES 分散式調(diào)度5 層3 鏈的運(yùn)行構(gòu)架。在合約層,建立以各參與主體成本最低為目標(biāo)的IES 分散式調(diào)度模型;在共識(shí)層,針對(duì)迭代鏈和終值鏈分別提出以一致性協(xié)議和拜占庭容錯(cuò)機(jī)制為共識(shí)算法。最后,通過(guò)算例證明該構(gòu)架在有限通信信息的情況下能有效運(yùn)行,且能夠防止主體背叛并削弱服務(wù)器錯(cuò)誤或宕機(jī)的影響。本文所提構(gòu)架在保證了分散式調(diào)度模式隱私性的同時(shí)具有更高的安全性和可靠性。
區(qū)塊鏈的本質(zhì)是分布式數(shù)據(jù)存儲(chǔ)、共識(shí)算法、點(diǎn)對(duì)點(diǎn)傳輸和加密算法等計(jì)算機(jī)技術(shù)的新型應(yīng)用模式[16-17]。區(qū)塊鏈由具有特定Hash 值標(biāo)記的區(qū)塊連接而成,每個(gè)區(qū)塊由區(qū)塊體和區(qū)塊頭組成,見(jiàn)附錄A圖A1。區(qū)塊體用于記錄系統(tǒng)信息,并對(duì)應(yīng)生成特定的Hash 值,以保證數(shù)據(jù)的不可篡改性;區(qū)塊頭由目標(biāo)Hash 值、時(shí)間戳、隨機(jī)數(shù)和Hash 根值組成,以確保區(qū)塊鏈正確有序的連接[18]。區(qū)塊鏈中所有節(jié)點(diǎn)都可參與區(qū)塊的驗(yàn)證和存儲(chǔ)。若某節(jié)點(diǎn)的區(qū)塊鏈時(shí)序落后于全網(wǎng),則以最新的區(qū)塊為準(zhǔn)快速追回系統(tǒng)狀態(tài)。
該IES 由主網(wǎng)、不可控的光伏(PV)發(fā)電單元、多個(gè)由產(chǎn)熱鍋爐搭載余熱發(fā)電組成的熱電聯(lián)產(chǎn)組件以及普通熱鍋爐組成的熱電聯(lián)產(chǎn)組件構(gòu)成,如圖1所示。系統(tǒng)由供能主體自主管理、協(xié)同調(diào)度,需要在運(yùn)行過(guò)程中減少供能主體對(duì)外公開(kāi)的信息,提高系統(tǒng)的隱私性;并以所有主體利益最大為目標(biāo)的同時(shí),確保信息的真實(shí)性,維護(hù)系統(tǒng)的公平公正。
圖1 IES 示意圖Fig.1 Schematic diagram of IES
基于拉格朗日乘子法的分散式算法可將IES 調(diào)度問(wèn)題分解成多個(gè)由供能主體自主計(jì)算的子問(wèn)題,各主體通過(guò)尋找子問(wèn)題的最優(yōu)解以實(shí)現(xiàn)自身利益最大化。但僅使用分散式算法并不能完全滿足系統(tǒng)的上述需求,而區(qū)塊鏈技術(shù)具有以下3 個(gè)顯著特征[19-20],能與分散式算法結(jié)合,作為系統(tǒng)分散調(diào)度的技術(shù)支撐。
1)去中心化:通過(guò)給供能主體配置單元服務(wù)器,接入?yún)^(qū)塊鏈系統(tǒng),基于點(diǎn)對(duì)點(diǎn)傳輸,供能主體可進(jìn)行分散式計(jì)算,并共同參與區(qū)塊鏈的運(yùn)行和維護(hù)。
2)運(yùn)行可靠:區(qū)塊鏈的分布式記賬使每個(gè)單元服務(wù)器均存有完整的區(qū)塊鏈備份,當(dāng)少數(shù)服務(wù)器信息錯(cuò)誤,可通過(guò)其他服務(wù)器的數(shù)據(jù)備份復(fù)制正確信息;基于共識(shí)機(jī)制,可以確保各主體對(duì)鏈上信息達(dá)成一致,保障了分散式計(jì)算過(guò)程中數(shù)據(jù)信息的可靠性。
3)數(shù)據(jù)安全:供能主體的服務(wù)器初始接入?yún)^(qū)塊鏈系統(tǒng)前,通過(guò)非對(duì)稱加密,單向生成對(duì)應(yīng)的私鑰與公鑰。私鑰用于對(duì)計(jì)算結(jié)果等摘要信息的數(shù)字簽名,公鑰可驗(yàn)證信息發(fā)出者的身份和信息在傳輸過(guò)程中是否遭遇他人篡改;區(qū)塊鏈中應(yīng)用廣泛的哈希加密也是一種非對(duì)稱加密,摘要信息轉(zhuǎn)化為Hash 值后,信息變化必然導(dǎo)致Hash 值變化,這可以確保摘要信息不被篡改。Hash 值無(wú)法逆推信息內(nèi)容,這可以確保信息不被泄露。
區(qū)塊鏈技術(shù)在IES 中有很高的契合性,但考慮IES 調(diào)度系統(tǒng)的建設(shè)成本、服務(wù)器硬件限制和敏感信息加密需求等,對(duì)區(qū)塊鏈技術(shù)進(jìn)行相應(yīng)優(yōu)化,以實(shí)現(xiàn)與IES 調(diào)度系統(tǒng)更佳的融合。
1.3.1 基于多鏈結(jié)構(gòu)的擴(kuò)容方案
區(qū)塊鏈常對(duì)服務(wù)器的通信能力和存儲(chǔ)容量有較高的要求,但用戶的建設(shè)成本將過(guò)高,特別是對(duì)于熱電聯(lián)產(chǎn)商。采用鏈下擴(kuò)容技術(shù)[21],建立多區(qū)塊鏈實(shí)現(xiàn)區(qū)塊擴(kuò)容,即將大量且頻繁的計(jì)算工作分配至子鏈,主鏈僅記錄計(jì)算的最終值并驗(yàn)證其正確性。通過(guò)子鏈提高區(qū)塊運(yùn)行速率,主鏈提供安全性保護(hù),兼顧區(qū)塊鏈運(yùn)行效率、可靠性和設(shè)備性能限制。由于該IES 的分散式調(diào)度中主要計(jì)算熱能和電能的分配,建立熱/電迭代區(qū)塊鏈和終值鏈分別用于存儲(chǔ)熱網(wǎng)迭代信息MHk、電網(wǎng)迭代信息MEk和調(diào)度最終值Mn。此外,服務(wù)器還可選擇丟棄早期的迭代鏈,僅保留完整的終值鏈,以節(jié)省存儲(chǔ)空間。
1.3.2 基于哈希加密的機(jī)組參數(shù)保護(hù)與驗(yàn)證
機(jī)組參數(shù)是各主體不希望對(duì)外公開(kāi)的敏感信息,通過(guò)拉格朗日乘子法解耦,機(jī)組參數(shù)可轉(zhuǎn)化為隱私信息。但機(jī)組參數(shù)與調(diào)度結(jié)果密切相關(guān),主體有足夠的動(dòng)機(jī)篡改自身參數(shù),謀求非法利益。在主體進(jìn)入系統(tǒng)區(qū)塊鏈前,應(yīng)用哈希算法對(duì)各主體的機(jī)組參數(shù)進(jìn)行加密,公開(kāi)對(duì)應(yīng)Hash 值。在主體上傳的迭代信息M中,智能合約自動(dòng)附上本次計(jì)算的參數(shù)Hash 值,其他主體參與驗(yàn)證。若該Hash 值不改變,則機(jī)組參數(shù)無(wú)變化?;诠<用?實(shí)現(xiàn)了系統(tǒng)敏感信息的去信任。
對(duì)于IES 基于區(qū)塊鏈的分散式調(diào)度,構(gòu)建由數(shù)據(jù)層、網(wǎng)絡(luò)層、合約層、共識(shí)層、應(yīng)用層以及熱/電迭代鏈、終值鏈組成的分散式調(diào)度運(yùn)行構(gòu)架,如圖2所示。
圖2 基于多區(qū)塊鏈的分散式調(diào)度運(yùn)行構(gòu)架Fig.2 Multiple blockchains based decentralized dispatching operation framework
數(shù)據(jù)層是基礎(chǔ),通過(guò)分布式記賬對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ),主要數(shù)據(jù)包括各供能主體的熱/電出力值、分散式算法的傳遞變量、迭代次數(shù)和時(shí)間等;網(wǎng)絡(luò)層基于點(diǎn)對(duì)點(diǎn)(P2P)傳輸,進(jìn)行相關(guān)的數(shù)據(jù)通信,各主體在通信過(guò)程中地位平等。其拓?fù)淇傻刃闊o(wú)向聯(lián)通結(jié)構(gòu)G(V,E),其中V為主體節(jié)點(diǎn)集,E為主體間通信線路的邊界集;通過(guò)網(wǎng)絡(luò)層的P2P 通信,共識(shí)層使用共識(shí)算法確保主體對(duì)能量調(diào)度中的一致性變量和運(yùn)行結(jié)果達(dá)成一致性,根據(jù)主子鏈的特點(diǎn)分別使用PBFT 共識(shí)機(jī)制和一致性協(xié)議共識(shí)算法;合約層使用智能合約將系統(tǒng)分散式調(diào)度的運(yùn)行模型等系統(tǒng)協(xié)議和規(guī)則轉(zhuǎn)化為自動(dòng)執(zhí)行的程序,使得調(diào)度計(jì)算過(guò)程智能化、程序化、透明化;應(yīng)用層中還封裝了針對(duì)該IES 多能調(diào)度的典型應(yīng)用場(chǎng)景和案例,系統(tǒng)可借鑒已有的案例對(duì)調(diào)度計(jì)算結(jié)果進(jìn)行智能調(diào)控。
基于上述IES 分散式調(diào)度的區(qū)塊鏈運(yùn)行構(gòu)架,在智能合約中封裝該系統(tǒng)的分散式調(diào)度模型。假設(shè)PV 發(fā)電單元的出力全部消納,由主網(wǎng)、各熱電聯(lián)產(chǎn)機(jī)組和產(chǎn)熱鍋爐參與調(diào)度計(jì)算。這些供能主體在區(qū)塊鏈上均以節(jié)點(diǎn)的形式存在,用節(jié)點(diǎn)i表示(i∈V)。該模型即以各自的運(yùn)行成本最低為目標(biāo)。
主網(wǎng)采用傳統(tǒng)火電廠發(fā)電機(jī)組的發(fā)電成本來(lái)表征配電網(wǎng)對(duì)園區(qū)供電的成本函數(shù):
式中:Ci(?)為節(jié)點(diǎn)i的成本函數(shù),i∈VE,VE為主網(wǎng)供電主體節(jié)點(diǎn)集;Pi(t)為節(jié)點(diǎn)i在時(shí)間t下的計(jì)劃供電功率;ai、bi、ci為節(jié)點(diǎn)i發(fā)電機(jī)組發(fā)電成本的費(fèi)用系數(shù);ρ為PV 發(fā)電單元倒送給主網(wǎng)的單元電量售價(jià)。
由于成本函數(shù)應(yīng)該是連續(xù)的,即當(dāng)供電量為0時(shí),主網(wǎng)對(duì)于系統(tǒng)的成本為ci,即可將主網(wǎng)成本函數(shù)表征為:
式中:a′i和b′i為擬合后的主網(wǎng)節(jié)點(diǎn)i的發(fā)電成本費(fèi)用系數(shù)。
對(duì)于單個(gè)的熱電聯(lián)產(chǎn)組件在最小凝氣工況下運(yùn)行的成本函數(shù)采用耗量成本模型[22]:
式中:Hi(?)為節(jié)點(diǎn)i在時(shí)間t的計(jì)劃供熱功率;i∈VCHP,VCHP為熱電聯(lián)產(chǎn)組件供能主體節(jié)點(diǎn)集;a″、b″和c″為組件的燃料成本系數(shù);? 為耗量轉(zhuǎn)換系數(shù)。
進(jìn)一步,式(3)可變化為:
式中:φi、βi、γi、δi、θi和φi為節(jié)點(diǎn)i的熱電聯(lián)產(chǎn)組件運(yùn)行成本的費(fèi)用系數(shù)。
文中的熱電聯(lián)產(chǎn)組件采取以熱定電的運(yùn)行模式,熱電耦合模型為:
式中:υi、ωi和νi為節(jié)點(diǎn)i的鍋爐運(yùn)行成本的費(fèi)用系數(shù);i∈VG,VG為鍋爐供熱主體節(jié)點(diǎn)集。
系統(tǒng)總的運(yùn)行成本優(yōu)化模型為:
式中:C*為園區(qū)運(yùn)行總成本;PD(t)為園區(qū)的電功率需求;HD(t)為園區(qū)的熱功率需求;PPV(t)為PV 發(fā)電單元出力;Pmini、Pmaxi分別為節(jié)點(diǎn)i的電功率下限和上限;Hmini、Hmaxi分別為節(jié)點(diǎn)i的熱功率下限和上限。
對(duì)于上述凸優(yōu)化問(wèn)題,使用拉格朗日乘子法,引入拉格朗日乘子,將主體間的耦合約束加入原函數(shù),轉(zhuǎn)化為對(duì)偶問(wèn)題:
式中:H(t)為區(qū)塊鏈上節(jié)點(diǎn)的熱功率向量,H(t)=[H1(t),H2(t),…,Hi(t)],若主體節(jié)點(diǎn)i不供熱,則Hi(t)=0;P(t) 為節(jié)點(diǎn)的電功率向量,P(t)=[P1(t),P2(t),…,Pi(t)],若主體節(jié)點(diǎn)i不供電,則Pi(t)=0;λ(t)和μ(t)為拉格朗日乘子,分別為熱功率和電功率的成本增量。
由于熱/電網(wǎng)絡(luò)存在不同的全局約束,可將供熱網(wǎng)和供電網(wǎng)解耦。分別對(duì)供熱/電網(wǎng)中的供能主體節(jié)點(diǎn)i的出力求導(dǎo),有
式中:λi(t)和μi(t)分別為節(jié)點(diǎn)i在時(shí)間t的熱功率和電功率增量。
將式(10)解耦成僅包含就地約束的子問(wèn)題,在給定λ(t)和μ(t)的情況下,各供能主體可對(duì)子問(wèn)題單獨(dú)優(yōu)化求解。
1)主網(wǎng)子問(wèn)題(i∈VE)
迭代鏈的一致性協(xié)議是基于網(wǎng)絡(luò)層的G(V,E)拓?fù)?選擇成本增量λ(t)和μ(t)分別作為熱迭代區(qū)塊鏈和電迭代區(qū)塊鏈的一致性變量,當(dāng)兩區(qū)塊鏈內(nèi)的一致性變量相等時(shí),則視為各主體對(duì)出力結(jié)果達(dá)成共識(shí)。設(shè)無(wú)序節(jié)點(diǎn)對(duì)(i,j)表示E中連接節(jié)點(diǎn)i和j的一條通信線路,矩陣A為G(V,E)的n×n鄰接矩陣,aij為A的非對(duì)角線元素,表示節(jié)點(diǎn)i與j之間的通信邊數(shù)。由于主體間的每一次通信都需要使用加密算法驗(yàn)證信息的真實(shí)性,因此,采用一階離散時(shí)間系統(tǒng)的一致性協(xié)議為[24]:
式中:k為迭代次數(shù);dij為通信網(wǎng)絡(luò)行隨機(jī)矩陣的元素;λi,k+1為節(jié)點(diǎn)i第k+1 次迭代的熱功率成本增量;μi,k+1為為節(jié)點(diǎn)i第k+1 次迭代的電功率成本增量。
系統(tǒng)調(diào)度必須滿足供需平衡[25],因此,各節(jié)點(diǎn)需要通過(guò)獲取熱、電功率供需差額,調(diào)整一致性變量的收斂方向,式(16)、式(17)可變?yōu)椋?/p>
式中:ΔHk和ΔPk分別為第k次迭代的系統(tǒng)熱、電功率缺額;Hi,k和Pi,k分別為第k次迭代時(shí)計(jì)算得出的節(jié)點(diǎn)i的熱、電 功 率 出 力;ξ和ξ′為 收 斂 系 數(shù)(ξ>0,ξ′>0),表示收斂速度。
通過(guò)一致性協(xié)議計(jì)算并驗(yàn)證為真的迭代數(shù)據(jù)將會(huì)被記錄在迭代鏈區(qū)塊中,若迭代過(guò)程中各主體滿足式(23)條件,則表示供熱迭代鏈內(nèi)的λi,k和供電迭代鏈內(nèi)的μi,k均已相等,即各主體對(duì)調(diào)度分配達(dá)成了共識(shí),可將最終值傳送給終值鏈,否則繼續(xù)迭代。
式 中:ε為 允 許 的 功 率 偏 差;ε′為λi,k和μi,k的 收 斂精度。
系統(tǒng)基于區(qū)塊鏈進(jìn)行分散式迭代計(jì)算的流程見(jiàn)圖3。各主體加入本次調(diào)度計(jì)算后有以下步驟。
圖3 迭代鏈計(jì)算流程圖Fig.3 Calculation flow chart of iterative chain
步驟1:在熱/電迭代鏈的初始區(qū)塊MH0和ME0中分別導(dǎo)入本次計(jì)算的初始值:各供熱主體節(jié)點(diǎn)的初始熱功率Hi,0、初始熱成本增量λi,0、T時(shí)段的園區(qū)熱需求HD(T)和各供電主體節(jié)點(diǎn)的初始電功率Pi,0、各初始電成本增量μi,0、T時(shí)段的園區(qū)電需求PD(T)、光伏發(fā)電單元出力值PPV(T)以及機(jī)組參數(shù)Hash 值。
步驟2:基于分散式的調(diào)度模型,結(jié)合本地約束更新自身出力值。由于熱電聯(lián)產(chǎn)組件的服務(wù)器對(duì)熱、電迭代鏈均有讀取權(quán)限,因此可同時(shí)讀取2 條鏈上的區(qū)塊信息,用于自身出力的計(jì)算。
步驟3:供熱主體節(jié)點(diǎn)i將λi,k、Hi,k以及本次計(jì)算使用的機(jī)組參數(shù)Hash 值暫存入熱迭代鏈的節(jié)點(diǎn)i第k區(qū)塊MHi k并使用私鑰附上數(shù)字簽名后廣播至供熱區(qū)塊網(wǎng),由其他主體驗(yàn)證,供電主體同樣更新電迭代鏈的節(jié)點(diǎn)i第k區(qū)塊MEi k,廣播至電區(qū)塊網(wǎng)并參與相互驗(yàn)證。
步驟4:若雙鏈的廣播信息均被通過(guò),則信息分別寫(xiě)入熱、電迭代區(qū)塊MHk和MEk內(nèi),各主體服務(wù)器更新區(qū)塊鏈,獲取新的區(qū)塊信息并進(jìn)入步驟5。否則系統(tǒng)報(bào)錯(cuò),同時(shí)算法回滾,重新計(jì)算步驟2。
步驟5:各主體判斷終止條件,若已收斂則向終值鏈傳遞終值信息,否則繼續(xù)迭代計(jì)算。
為確保信息傳遞的可靠性和一致性,終值鏈采用PBFT 共識(shí)機(jī)制。選取可信度最高的主網(wǎng)作為終值鏈共識(shí)算法的主節(jié)點(diǎn),熱電聯(lián)產(chǎn)組件作為普通節(jié)點(diǎn)。必須指明,主節(jié)點(diǎn)僅率先接收信息,其地位與普通節(jié)點(diǎn)是平等的。假設(shè)熱電聯(lián)產(chǎn)組件的個(gè)數(shù)為m,則共有m+1 個(gè)節(jié)點(diǎn)參與該共識(shí),錯(cuò)誤節(jié)點(diǎn)個(gè)數(shù)為f。
運(yùn)行過(guò)程分為6 個(gè)步驟,見(jiàn)附錄A 圖A2。
步驟1:由鍋爐主體將附有簽名的熱迭代鏈的終值請(qǐng)求信息MHk發(fā)送至主網(wǎng)服務(wù)器。
步驟2:預(yù)準(zhǔn)備階段,主節(jié)點(diǎn)根據(jù)信息MHk和MEk生成〈〈pre-prepare,v,n0,d〉di,MHk,MEk〉并廣播給普通節(jié)點(diǎn)。其中,v為視圖號(hào),n0為主節(jié)點(diǎn)為本次請(qǐng)求信息分配的序列號(hào),d 是信息摘要,di 是簽名。
步驟3:準(zhǔn)備階段,普通節(jié)點(diǎn)i對(duì)信息的簽名和內(nèi)容以及序列號(hào)進(jìn)行驗(yàn)證,若通過(guò),則廣播信息〈〈prepare,v,n0,d,i〉di〉至除自身外的其他節(jié)點(diǎn)。
步驟4:提交階段,其他節(jié)點(diǎn)對(duì)〈〈prepare,v,n0,d,i〉di〉進(jìn)行上述相同的驗(yàn)證,若通過(guò)則寫(xiě)入本地,當(dāng)本地收到至少2f條正確信息則廣播信息〈〈commit,v,n0,d,i〉di〉至除自身外的其他節(jié)點(diǎn)。
步驟5:完成階段,節(jié)點(diǎn)對(duì)〈〈commit,v,n0,d,i〉di〉進(jìn)行相同的驗(yàn)證,通過(guò)則寫(xiě)入本地,當(dāng)本地收到至少2f條正確信息,將發(fā)送通過(guò)信息。
步驟6:當(dāng)鍋爐主體收到大于半數(shù)的完成信息后,則表示共識(shí)完成,MHk和MEk可寫(xiě)入終值鏈的區(qū)塊中,所有主體執(zhí)行調(diào)度結(jié)果,否則重新運(yùn)行該機(jī)制。該共識(shí)機(jī)制最多可容許錯(cuò)誤階段數(shù)f≤m/3。
為驗(yàn)證所提構(gòu)架的有效性和優(yōu)越性,進(jìn)行算例仿真。假設(shè)某社區(qū)級(jí)IES 有4 棟智能樓宇配有熱電聯(lián)產(chǎn)組件,并另有供能主體供電主網(wǎng)和普通產(chǎn)熱鍋爐。各供能主體間基于P2P 網(wǎng)絡(luò),可以相互通信。各供能主體的設(shè)備運(yùn)行參數(shù)和容量限制見(jiàn)表1。
表1 設(shè)備運(yùn)行參數(shù)和容量Table 1 Operation parameters and capacity of equipment
系統(tǒng)允許功率偏差ε=0.01,收斂系數(shù)ξ=0.008、ξ′=0.000 2,收斂精度ε′=0.003,初始功率均為0。系統(tǒng)供給側(cè)的分散式能量調(diào)度以T=1 h 為單位進(jìn)行,某日內(nèi)各時(shí)段的系統(tǒng)熱、電負(fù)荷需求和光伏單元輸出功率預(yù)測(cè)值如圖4(a)所示,通過(guò)基于多鏈結(jié)構(gòu)的IES 調(diào)度構(gòu)架的運(yùn)行計(jì)算,供能主體間的電功率和熱功率分配終值如圖4(b)、4(c)所示。在07:00 至18:00,小區(qū)用戶利用太陽(yáng)能滿足部分電負(fù)荷需求,其余部分由主網(wǎng)和各熱電聯(lián)產(chǎn)組件提供。對(duì)于熱負(fù)荷需求,各熱電聯(lián)產(chǎn)組件提供大部分的熱功率,運(yùn)行成本較高的普通鍋爐僅承擔(dān)小部分需求且出力平穩(wěn)。
圖4 某日24 h 負(fù)荷預(yù)測(cè)及調(diào)度結(jié)果Fig.4 24 h load forecasting and dispatching results of a day
假設(shè)在進(jìn)行該日09:00 的調(diào)度計(jì)算前,熱電聯(lián)產(chǎn)組件1 為了自身利益,提高自身出力,篡改服務(wù)器內(nèi)部存儲(chǔ)的設(shè)備參數(shù)β3=1.952 5。針對(duì)未采用區(qū)塊鏈技術(shù)的分散式調(diào)度,由于分散計(jì)算過(guò)程沒(méi)有加密算法和驗(yàn)證機(jī)制,熱電聯(lián)產(chǎn)組件1 的最終出力大幅提升,H2(9)由85.342 6 kW 變?yōu)?24.794 8 kW,而H3(9)由89.636 3 kW 降至75.996 0 kW,H4(9)由103.425 7 kW降至90.433 7 kW,H5(9)由88.605 3 kW降至79.532 3 kW,其他機(jī)組利益受損,則熱功率收斂過(guò)程如圖5(a)所示。而基于多鏈結(jié)構(gòu)的IES 分散式調(diào)度,隨著熱電聯(lián)產(chǎn)組件1 的設(shè)備參數(shù)變化,由機(jī)組參數(shù)轉(zhuǎn)化的Hash 值也隨之變化。在1 號(hào)服務(wù)器完成本次計(jì)算的第1 次迭代、簽名和廣播后,其余節(jié)點(diǎn)先使用公鑰驗(yàn)證主體身份,再對(duì)比Hash 數(shù)列有無(wú)變化,其中包括了對(duì)參數(shù)Hash 值的驗(yàn)證??勺R(shí)別出是熱電聯(lián)產(chǎn)組件1 在本次迭代計(jì)算中使用了與原參數(shù)不符的機(jī)組參數(shù)。驗(yàn)證失敗,系統(tǒng)記錄錯(cuò)誤、給予懲罰并迫使熱電聯(lián)產(chǎn)組件1 修正參數(shù),算法回滾,以正確參數(shù)重新運(yùn)行,得到正確的功率分配,成功維護(hù)了分散式調(diào)度計(jì)算的安全性,收斂過(guò)程如圖5(b)所示。
圖5 熱功率收斂過(guò)程Fig.5 Convergence process of thermal power
在計(jì)算中針對(duì)終值鏈的PBFT 共識(shí)機(jī)制,主體服務(wù)器傳遞附加信息為1 表示驗(yàn)證通過(guò),0 為不通過(guò)或無(wú)響應(yīng)。假設(shè)在進(jìn)行該日09:00 的調(diào)度計(jì)算完成后的終值傳遞過(guò)程中,熱電聯(lián)產(chǎn)組件4 的服務(wù)器無(wú)響應(yīng),但在PBFT 共識(shí)機(jī)制下,其余主體完成了對(duì)終值的驗(yàn)證,提交階段發(fā)出4 條通過(guò)信息,正確的終值成功寫(xiě)入終值鏈,各階段主體接收信息情況見(jiàn)表2。因此,該過(guò)程既提高了數(shù)據(jù)的可靠性,也極大提高了系統(tǒng)運(yùn)行的可靠性。
表2 PBFT 共識(shí)機(jī)制的信息驗(yàn)證結(jié)果Table 2 Information verification results of PBFT consensus mechanism
針對(duì)IES 調(diào)度中的隱私性、安全性和可靠性方面存在的問(wèn)題,本文融合分散式調(diào)度方法與區(qū)塊鏈技術(shù),提出了基于多區(qū)塊鏈結(jié)構(gòu)的IES 調(diào)度構(gòu)架。通過(guò)算例驗(yàn)證可以得出以下結(jié)論。
1)區(qū)塊鏈技術(shù)在IES 分散式調(diào)度中具有良好的適用性,所提構(gòu)架在不對(duì)外公開(kāi)設(shè)備參數(shù)的情況下可以有效運(yùn)行。
2)在IES 的分散式調(diào)度過(guò)程中,基于區(qū)塊鏈技術(shù),系統(tǒng)能有效避免主體惡意篡改自身參數(shù)的問(wèn)題,既實(shí)現(xiàn)了系統(tǒng)去中心化也維護(hù)了系統(tǒng)的安全。
3)調(diào)度終值確認(rèn)過(guò)程中,系統(tǒng)在個(gè)別服務(wù)器錯(cuò)誤或無(wú)響應(yīng)的情形下依舊能有效運(yùn)行,提高了系統(tǒng)的數(shù)據(jù)可靠性和運(yùn)行可靠性。
本文算例是在單機(jī)環(huán)境下使用模擬程序完成,沒(méi)有實(shí)現(xiàn)真實(shí)的分散運(yùn)行。下一步將考慮通過(guò)以太坊建立真實(shí)的區(qū)塊鏈平臺(tái),更加深入地進(jìn)行實(shí)驗(yàn)驗(yàn)證。針對(duì)構(gòu)架內(nèi)容,可考慮加入資金交易鏈,建立獎(jiǎng)懲機(jī)制,以提高構(gòu)架的完整性和實(shí)用性。
附錄見(jiàn)本刊網(wǎng)絡(luò)版(http://www.aeps-info.com/aeps/ch/index.aspx),掃英文摘要后二維碼可以閱讀網(wǎng)絡(luò)全文。