微型电网中基于联盟链的需求侧竞价方案
2020-08-25吴皓敏付绍静罗玉川
吴皓敏, 付绍静, 徐 明, 罗玉川
(国防科技大学 计算机学院 湖南 长沙 410003)
0 引言
近年来,随着新能源发电设备的推广应用,具有就地供电、独立运行特点的微型电网获得广泛关注。微型电网不仅能够独立运行,而且可以通过共同耦合点与大电网连接,甚至与附近的微型电网连接,形成更大范围的电力交换网络,实现更加稳定、高效的电力供应[1]。由于新能源发电设备的产能与环境(光照、风速等)关系密切,具有显著地间歇性特点,所以容易造成严重的电力供给过剩或供给不足,进而损害相关设施,甚至可能导致电力供应中断等问题。因此平衡微型电网的供给和需求是一个亟待解决的问题。
需求响应是一种在市场环境下解决电力供求平衡问题的有效手段。通过实时电价或激励信号刺激电力消费者在需求侧降低或增加电力需求,实现供需平衡。微型电网由于其分布式、小型化的特点,能源生产者会担心所提供的奖励被中心私自抽取,而消费者会担心得不到应有的奖励;同时,中心可能收取高额手续费。此外,中心化管理还可能会带来大规模的用户隐私泄漏风险[2]。
为了解决需求响应中心化调度的固有缺陷,提出一种基于联盟区块链的需求侧竞价方案。方案通过具有自我强制执行特点的智能合约管理竞价和分发激励,加强了参与各方的信任。主要挑战有:1) 安全可信和性能代价之间的权衡。区块链的安全可信依赖大量冗余存储和冗余计算,导致交易性能差且存储计算代价大,需求响应的计算过程复杂、数据量大,因此,在设计区块链架构时,需要充分考虑性能代价的问题;2) 建立微型电网的需求侧竞价模型;3) 竞价快速收敛问题。需要对竞价算法进行设计,使竞价轮次尽可能少,进而减少交易次数,提高需求响应的效率。本文主要有以下工作:1) 设计微型电网的需求响应联盟链架构。通过多账本策略有效降低存储开销,避免因中心被攻击导致的大规模数据泄漏风险,通过域内背书策略有效降低智能合约计算开销;2) 设计面向微型电网的需求侧竞价模型。建立各实体的收益模型,确定竞价的优化目标,并基于智能合约设计需求侧竞价的过程。同时考虑微型电网具有多激励提供者的特点,确定激励的提供方案;3) 基于仿真模型验证竞价算法。通过仿真比较梯度法以及二分法的收敛效果,优化竞价轮次。
1 相关工作
随着新能源技术的快速发展和分布式发电设施的推广应用,微型电网获得了广泛关注。文献[3]指出了微型电网控制问题中的诸多挑战和发展趋势,其中之一便是微型电网供电的不确定性带来的供需平衡问题,需求响应是解决电网供需平衡问题的关键技术之一。文献[4]针对可再生能源产生的发电量受环境制约无法应对需求变化这一问题,通过对非关键负荷进行需求响应控制,来减轻可再生能源的有害波动。文献[5]提出基于云的需求响应架构,提高需求响应过程的安全性、可靠性和可扩展性,并在此架构上研究需求侧竞价算法,使竞价快速收敛。
区块链的概念出自比特币,对等网络中的矿工们基于工作量证明(proof of work,PoW)共识维护一致的哈希链,即一个记录用户资产的账本,用户通过数字签名转账使用个人资产,不用担心中心不可信任的问题。随着以太坊[6]在区块链账本之上实现了图灵完备的智能合约,区块链快速进入人们的视野。而以超级账本[7]为代表的联盟链因其巨大商用潜力,使得众多企业投入联盟链的研发。具有自我强制执行特点的智能合约拓宽了区块链的应用场景,使得其从电子货币走向了各行各业,为解决社会活动中的互信问题提供了解决方案。在能源领域,文献[8]提出了基于比特币的哈希锁定脚本和多重签名技术实现安全、匿名的能源交易。文献[9]针对能源交易设计了通用的联盟区块链架构,并提出基于信用贷款的快速支付方案以及基于博弈均衡的最优贷款定价策略。文献[10]基于对现有自动需求响应业务的需求分析,提出了基于区块链技术的应用方案,并从工作量证明机制、互联共识、智能合约、信息安全等方面剖析了区块链在自动需求响应系统中的关键问题。文献[11]利用区块链智能合约构建电力直接交易供应链利益分配模型,实现各方利益最优。
联盟链是由若干组织或机构共同管理维护的区块链,具有多中心、许可进入、交易速度快、交易成本低等特点。虽然一定程度上牺牲了去中心化的特性,但是极大地提升了性能与可控性。在本文研究的场景中,由于电网数据量大、交易频繁,对区块链的性能提出了很高的要求,公有链的处理速度无法满足需求;同时,出于安全与隐私的考虑,具有权限控制的联盟链可以更好保障电力系统安全与用电数据隐私。
2 系统架构
传统的需求响应依赖配电系统管理员管理中心服务器,中心收集各节点的数据并发送需求响应信号,从而调度需求响应任务。微型电网拥有众多能源生产者,且之间具有相互竞争关系,而区块链可以有效加强多方合作的相互信任,简化合作流程。
2.1 基于联盟链的微型电网需求响应框架
图1展示了基于联盟链的微型电网需求响应框架。各个节点采集的用电数据被上传并存储到联盟链账本中,当发生供给严重不足时,本地聚合系统将会发现并发起需求响应事件,智能合约将按照既定规则向能源生产者收取奖励,并与能源消费者进行协商安排响应任务,消费者根据分配好的响应任务改变用电计划,使电网供给和需求达到平衡,当需求响应事件的周期结束,智能合约将根据消费者完成任务的质量分配奖励。
图1 基于联盟链的微型电网需求响应框架Figure 1 The consortium blockchain based framework for demand response
虽然在整个过程中,联盟链需要完成的工作与中心服务器类似。但有两个方面的不同:1) 联盟链以冗余存储和冗余计算为代价,通过联盟节点对需求响应计算背书,并通过共识机制达成一致的、不可篡改的分布式账本,有效地加强了参与各方的信任,解决中心不可信或中心收取高额手续费的问题;2) 联盟链可以有效抵抗中心化存在的单点失效风险,如拒绝服务攻击等,恰好微型电网作为一个开放网络,容易遭受网络攻击,因此保证需求响应系统的可靠性、稳定性十分重要。
2.2 面向微型电网的联盟链架构
微型电网相互连接组成大规模电力交换网络,其物理模型如图2所示。微型电网将一个区域内的分布式能源、电能存储设备以及负载连接起来,通过本地电力网络进行电力交换,同时通过共同耦合点与外部连接,共同耦合点由本地聚合系统管理。我们将一个微型电网视作联盟中的一个组织。每个组织拥有一个共识节点,参与共识服务,由本地聚合系统管理员担任,因为它拥有丰富的计算、存储以及电力资源。分布式能源拥有者出于利益的考量,积极成为组织内部的账本节点,一是提供智能合约服务,为交易背书;二是提供账本服务,存储已共识的区块。而用户以及众多的智能电网设备作为客户端向联盟节点发送交易。
图2 微型电网互连物理模型Figure 2 The model of microgrids network
联盟链框架如图3所示。当客户端进行交易时,先将交易内容发送给本地的多个账本节点,各账本节点根据交易内容调用智能合约,计算交易结果,并添加签名为交易结果背书;然后,各账本节点将已背书交易返还客户端,当客户端收集到足够多的背书,即满足背书规则,就可以将该交易结果及背书提交至共识节点;共识节点验证交易背书,并分类打包生成区块,进行共识;共识后的区块会在账本节点之间同步,存储至区块链账本,至此交易结束。
图3 面向微型电网的联盟链框架Figure 3 Consortium blockchain architecture applied to microgrids
需求响应是一个微型电网内部的行为,因此,需求响应的交易记录仅由域内的账本节点背书,与全网背书相比,既可以降低计算冗余,节省大量的计算资源,又能够减小电力数据的扩散范围,保护数据隐私。同时,共识服务提供多账本服务,将来自不同微型电网的交易记录加入不同的区块链账本,从而使需求响应交易记录仅在域内的账本节点存储,降低存储冗余,节省存储资源。
3 需求侧竞价
需求侧竞价是一种基于激励的需求响应方案,该方案鼓励能源消费者直接参与市场竞争,通过竞价方式给出愿意降低的负荷数量以及希望的奖励价格,或者由供电方提供奖励价格,刺激用电方提交愿意降低的负载。需求侧竞价可以看作一个分布式优化过程。
3.1 竞价优化模型
考虑一个微型电网内部的需求响应任务。在一个社区或乡村的微型电网中,存在数量众多的能源生产者和能源消费者,正常天气情况下,电网内部的生产者可以产生足够的电力供消费者使用。但在恶劣天气下,电力供给不足。这时可以从外部电网购买电力,或者启用备用柴油发电机组,但代价较高,这部分代价将由能源生产者承担。另一种方式是通过需求响应,降低用户负载,使电网能够平稳运行。只要提供给用户的激励代价小于增加电力供给时的代价,那么生产者将会采用需求响应方案,保证电力供求平衡。因此,能源生产者希望确定最优的激励价格来降低负载。
假设Λk表示微型电网k中的能源生产者为增加单位电力供给而付出的代价,能源生产者为平衡供求的优化问题可以描述为min(λkDk),s.t.∑di=Dk,di=di(λk),λk≤Λk。在所有消费者的降低负载之和等于整个微型电网的电力赤字这一约束条件下,使得能源生产者付出的代价最小。所有激励将由众多的能源生产者提供,生产者j提供的激励表示为mj,那么有∑mj=λkDk,j∈Pk。因部分生产者导致的供电不足应当由该部分生产者提供激励。假设生产者j的常规发电能力表示为Ej,Baseline,供给不足时的发电能力为Ej,Actual,则其应当提供的激励可以表示为Δj=Ej,Baseline-Ej,Actual,mj=λkDk(Δj/∑Δx),x∈Pk。如果Δj<0,则该生产者不提供激励。利用以上激励征集规则,将所有能源生产者联合起来,需求侧竞价过程从消费者角度看,多个生产者和一个生产者没有什么区别。
基于上述的竞价模型,智能合约的需求侧竞价过程如图4所示。微型电网各节点采集的电力数据周期性上传至区块链网络,存储到区块链账本中,本地聚合系统可以根据电力数据监控电网状态。当微型电网k发生严重的供给不足、威胁电网安全时,启动需求响应,其过程可以分为4个阶段。
图4 基于智能合约的需求侧竞价过程Figure 4 The process of demand side bidding based on smart contract
3.2 竞价过程
竞价完成后进入第三阶段,智能合约向本地聚合系统以及能源生产者反馈竞价结果,同时确认各消费者的需求响应任务,能源消费者根据需求响应信号削减负载,完成合约内容。
第四阶段是奖励结算阶段,当电力供给达到正常水平后,本地聚合系统会发送需求响应结束信号至智能合约,合约启动结算程序,将预存奖励分发到消费者账户,并将结余奖励返还至生产者账户中。至此,需求响应活动结束。需求侧竞价更新算法如下。
输入:Dk,Λk.
2) while true do
6) break
7) end if
10) else
12) end if
13)r←r+1
15) end while
4 实验结果
为了验证二分法竞价的收敛效果,通过仿真实验对比梯度法和二分法的收敛速度。考虑一个简单的微型电网k,拥有10个电力消费者参与需求侧竞价。假设每个消费者i都有自己的负效用函数ci(di)=aidi+bidi2,其中参数ai>0,且bi>0,不同消费者有不同参数。假设电力供给赤字是Dk=100,最大激励代价Λk=100。每一个消费者的负效用函数参数ai从区间[1,2]随机选取,bi从区间[2,6]中随机选取。对于梯度法,仿真步长取0.04。
实验结果如图5和图6所示。可以看到在步长为0.04时,梯度法需要迭代80次左右竞价才能收敛到最优激励代价。当步长增加时,需要迭代的次数减少,但是步长过大会导致无法收敛的情形。消费者的负效用函数不公开时,难以找到合适的步长以达到快速收敛。而二分法不需要设置步长,只需要大概8~10次的迭代,就能收敛到最优激励价格,且二分法可以有效降低智能合约的计算复杂度。
图5 梯度竞价仿真结果Figure 5 Simulation results of gradient algorithm
图6 二分法竞价仿真结果Figure 6 Simulation results of bisection algorithm
5 总结
为解决微型电网的电力供需平衡问题,提出了一种全新的基于联盟区块链的需求响应管理框架,设计了具有多账本存储、域内节点背书特点的联盟链。相比于公有链,联盟链共识速度快、交易延迟低、具有许可制特点,在用电服务中具有很好的应用前景。该框架通过不可篡改的联盟链存储需求响应记录,并利用自我强制执行的智能合约对各过程进行计算,能有效加强微型电网需求响应中多方之间的信任。基于该框架,提出了基于智能合约的去中心化需求侧竞价方案,实验结果证明采用二分法可以实现分布式竞价的快速收敛。