基于区块链技术的配电网需求响应交易结算方法与流程

文档序号:15696028发布日期:2018-10-19 19:03阅读:494来源:国知局
基于区块链技术的配电网需求响应交易结算方法与流程

本发明涉及电力技术,尤其涉及一种基于区块链技术的配电网需求响应交易结算方法。



背景技术:

随着电力市场化进程的发展、需求响应项目的实施,电力消费者逐渐参与到市场竞争当中,形成了多边的交易,这使得电力交易变得更加自由的同时也愈发复杂化,对各种交易的管理难度也大大增加。

在现代配电网中,消费者逐渐转型为产消者,同时考虑到配电网有着用户数量多、对隐私性要求高等特性,因此需要着重解决如何建立一个高效、安全的交易模式的问题。现阶段,对交易的管理主要分为两种,一是集中式交易中心;二是去中心。采用集中式交易中心进行管理会带来交易成本及数据维护成本高昂、运行耗时长、安全性无法得到保证等问题。因此将去中心化的思想运用至配网交易成为一种研究热点。



技术实现要素:

发明目的:本发明针对现有技术存在的问题,提供一种基于区块链技术的配电网需求响应交易结算方法,该发明考虑到区块链的开放、去中心化、透明、不可篡改等特性,将其应用于电力交易中,可以有效提高交易的效率,保证配电网中电力交易的公平公正性,同时也能够保证双方交易的安全性。

技术方案:本发明所述的基于区块链技术的配电网需求响应交易结算方法包括:

(1)数据准备:发电商钱包地址、用户钱包地址、用户与发电商的交易时段、用户与发电商的交易结算期限、用户的历史负荷数据、用户的响应量小于合约规定值时用户应当接受的惩罚金额系数;

(2)部署计算总需求响应量的第一智能合约:每个交易时段,配网中的发电商端发布需求响应资源的购买请求,并按照需求响应资源的历史价格向部署第一智能合约的多重签名的公共地址转入预设额的虚拟货币作为保证金,智能合约记录所有全部请求,计算并公布总的需求响应资源量;

(3)部署计算各用户需求响应供应量的第二和第三智能合约:根据用户上传的需求响应供应量进行需求响应资源价格的调整,部署第二智能合约和第三智能合约,分别负责需求响应供应量提交与价格调整;当各用户提供的需求响应供应量满足发电商的总的需求响应资源量时,即认为达成交易共识;

(4)构建用户与发电商的交易结算智能合约:当系统运行时,智能电表记录下用户在一定时间内的用电量,并打包发送至区块链中,当结算时间到达时,交易结算智能合约根据电表发送到区块链中的用电量数据进行结算,自动实现资金的转移。

进一步的,步骤(3)包括:

(3-1)当有用户或者发电商入网时,其作为网络的一个新信息节点,将自己的参数数据上传到第二智能合约中,更新区块链信息,连同公钥广播到所有信息节点上;

(3-2)各信息节点每隔一段时间新建一个空的区块链,并依据用户上传的需求响应供应量,第三智能合约按照以下公式对需求响应资源价格进行调整,并向全网广播;

式中,pgi为发电商i所需的需求响应资源量,ng为发电商的个数,pdi为用户i提供的需求响应量,nd为用户的个数,σ为所有发电商与所有用户之间需求响应量的差值,λk+1为第k+1次迭代过程中的给出的报价,ρ为迭代过程中设定的步长系数;

(3-3)各信息节点接收到新的需求响应资源价格之后,结合自身的成本函数修改提交的需求响应供应量,直至满足σ≤ε,形成功率调整方案,其中,ε为收敛判据设定的容差;

(3-4)当各用户提供的需求响应供应量满足发电商的总的需求响应资源量时,即认为达成交易共识。

其中,(3-3)具体包括:

a、各信息节点接收到新的需求响应资源价格之后,计算其成本函数fdi(pdi):

式中,αi、βi、γi为第i个用户成本函数的系数,为第i个用户初始提供的需求响应量,nd为用户的数目;

b、计算需求响应资源的价格:

λi为第i个用户收到的需求响应资源的报价;

c、针对一个报价,用户修改提交的需求响应供应量,返回步骤(3-2)直至满足σ≤ε。

进一步的,步骤(4)中所述交易结算智能合约根据电表发送到区块链中的用电量数据进行结算具体包括:

(4-1)将事件之前2小时的实际负荷和预测负荷的比值作为调整因子c(i,j):

式中:c(i,j)为第i日第j小时的负荷调整因子;pr(i,j-2)、pr(i,j-1)分别为第i日第j-2和j-1小时的实际负荷值;pb(i,j-2)、pb(i,j-1)分别为第i日第j-2和j-1小时的基线负荷值;

(4-2)根据之前相似日的用户实际负荷值,计算得到基线负荷值pb(i,k)为:

式中,pr(i-m,k)为第i日之前第m个相似日第k小时的实际负荷值,n为相似日的天数;

(4-3)根据基线负荷后计算削减量,依据计算得到的削减量将响应可以分为三类:过响应、欠响应以及适中响应:

(4-4)分类计算结算金额,其中结算金额公式为:

结算金额=(实际出力-基线出力)*标准价格*惩罚参数

适中响应类惩罚参数值为0,其他类惩罚参数为预设值;

(4-5)当到达约定的交易期限时,交易结算智能合约将根据用户的实际用电情况自动的进行结算,并实现资金的转移。

进一步的,区块链中的数据保存方式为不可篡改式存储。

有益效果:本发明与现有技术相比,其显著优点是:本发明考虑到区块链的开放、去中心化、透明、不可篡改等特性,将其应用于电力交易中,可以有效提高交易的效率,保证配电网中电力交易的公平公正性,同时也能够保证双方交易的安全性。智能合约是一种运行在区块链数据账本之上的程序,不仅避免了恶意篡改和伪造的交易,同时也降低了管理交易的成本。

附图说明

图1是本发明的一个实施例的流程示意图;

图2是需求侧用户之间的信息交互过程图;

图3是基于智能合约的结算流程图。

具体实施方式

如图1和图2所示,本实施例提供了一种基于区块链技术的配电网需求响应交易结算方法,包括:

(1)数据准备:发电商钱包地址、用户钱包地址、用户与发电商的交易时段、用户与发电商的交易结算期限、用户的历史负荷数据、用户的响应量小于合约规定值时用户应当接受的惩罚金额系数。

(2)部署计算总需求响应量的第一智能合约:每个交易时段,配网中的发电商端发布需求响应资源的购买请求,并按照需求响应资源的历史价格向部署第一智能合约的多重签名的公共地址转入预设额的虚拟货币作为保证金,智能合约记录所有全部请求,计算并公布总的需求响应资源量。

(3)部署计算各用户需求响应供应量的第二和第三智能合约:根据用户上传的需求响应供应量进行需求响应资源价格的调整,部署第二智能合约和第三智能合约,分别负责需求响应供应量提交与价格调整;当各用户提供的需求响应供应量满足发电商的总的需求响应资源量时,即认为达成交易共识。具体包括以下步骤:

(3-1)当有用户或者发电商入网时,其作为网络的一个新信息节点,将自己的参数数据上传到第二智能合约中,更新区块链信息,连同公钥广播到所有信息节点上;

(3-2)各信息节点每隔一段时间新建一个空的区块链,并依据用户上传的需求响应供应量,第三智能合约按照以下公式对需求响应资源价格进行调整,并向全网广播;

式中,pgi为发电商i所需的需求响应资源量,ng为发电商的个数,pdi为用户i提供的需求响应量,nd为用户的个数,σ为所有发电商与所有用户之间需求响应量的差值,λk+1为第k+1次迭代过程中的给出的报价,ρ为迭代过程中设定的步长系数;

(3-3)各信息节点接收到新的需求响应资源价格之后,结合自身的成本函数修改提交的需求响应供应量,直至满足σ≤ε,形成功率调整方案,具体为以下步骤:

a、各信息节点接收到新的需求响应资源价格之后,计算其成本函数fdi(pdi):

式中,αi、βi、γi为第i个用户成本函数的系数,为第i个用户初始提供的需求响应量,nd为用户的数目。用户成本函数的可以用效益函数公式求解,从而计算出式中的参数值。因此,用户的需求响应成本可由成本函数计算出来,当用户提供正输出,即pdi>0,实际响应量大于计划值时,其成本可视为效益损失;当用户提供负输出,即pdi<0,实际响应量小于计划值时,其成本可视作效率损失。同时用户的响应量需要满足不等式的上下限约束。

b、计算需求响应资源的价格:

λi为第i个用户收到的需求响应资源的报价;

c、针对一个报价,用户修改提交的需求响应供应量,返回步骤(3-2)直至满足σ≤ε。

(3-4)当各用户提供的需求响应供应量满足发电商的总的需求响应资源量时,即认为达成交易共识。

(4)构建用户与发电商的交易结算智能合约:当系统运行时,智能电表记录下用户在一定时间内的用电量,并打包发送至区块链中,当结算时间到达时,交易结算智能合约根据电表发送到区块链中的用电量数据进行结算,自动实现资金的转移。

其中,合约内容、电能数据都不可篡改地保存在区块链中,这解决了交易双方的信任问题,保障了交易的安全性;并且该清算过程无需第三方的参与,减少了交易成本。

为了正确评估用户的负荷削减能力,采用基线负荷来定量评估电力用户负荷减少程度,这也是对用户进行补偿结算的重要前提。用户的基线负荷是指电力用户如果没有参加需求响应项目时,根据现有的负荷数据预测的负荷值。将预测到的用户基线负荷与智能电表实时监测到负荷值相对比可以得到用户的负荷削减量。

每笔智能合约包含响应量、价格、响应时间、违约金额、用户与发电商的交易结算期限等属性。在进行响应量计算时,本发明中采用响应事件前几个相似日的负荷数据进行线性拟合。考虑到需求响应事件发生当天的天气等因素的影响,基线负荷的数值可能会发生一定的调整。为了使得预测出的负荷数据更加符合当天的实际用电情况,将根据前几个相似日计算出的基线负荷数据乘上调整因子,将调整后的负荷数据作为新的基线负荷。具体如图3所示,包括以下步骤:

计算调整因子,即事件之前2小时的实际负荷和预测负荷的比值

式中,c(i,j)为第i日第j小时的负荷调整因子;pr(i,j-2)、pr(i,j-1)分别为第i日第j-2和j-1小时的实际负荷值;pb(i,j-2)、pb(i,j-1)分别为第i日第j-2和j-1小时的基线负荷值;

根据之前几个相似日的用户实际负荷值,计算得到基线负荷值pb(i,k)为:

式中,pr(i-m,k)为第i日之前第m个相似日第k小时的实际负荷值,n为相似日的天数;

根据基线负荷后计算削减量,依据计算得到的削减量将响应可以分为三类:过响应、欠响应以及适中响应:分类计算结算金额,其中结算金额公式为:

结算金额=(实际出力-基线出力)*标准价格*惩罚参数

适中响应类惩罚参数值为0,其他类惩罚参数为预设值;

当到达约定的交易期限时,交易结算智能合约将根据用户的实际用电情况自动的进行结算,并实现资金的转移。

下面以太坊作为交易平台,进行合约的部署与交易的实施。实施算例的参数设置情况:本方法中的用户参数、用电量以及价格均为参考实际调研所得。以太坊作为一个基于区块链技术具有智能合约功能的平台,为去中心化的不同的区块链应用提供服务,为实现分布式电能多边交易提供了良好的技术支撑,使得参与者可以在没有中央监督的分布式系统中建立可信的合作关系。本实施例中选取以太坊作为交易平台,进行合约的部署与交易的实施,并使用以太坊中的虚拟货币以太币进行交易支付。

(1)数据准备:设定有4个智能居民用户以及3个分布式可再生能源发电商,各用户的特性参数如表1所示,配网中的发电商发布的需求响应量目标值为5mw。以其中一个用户为例,其钱包地址为:"0xb868ab9cf247345f586fa0f0750ce110c2202db3",一个发电商的钱包地址为:"0x14723a09acff6d2a60dcdf7aa4aff308fddc160c"。设定合约的交易期限为15分钟,即每隔15分钟发电商根据需求量发出一次交易请求,然后进行交易结算。设定构造函数的初始值为5ether/mw,1ether=1018wei,其中ether与wei均为以太坊虚拟钱币以太币的单位。

需要说明的是,由于solidity语言中不支持小数型数值存储,为保证计算结果的准确性,在输入初始值时,需要对数据进行适当的放大处理。

规定用户的实际出力在目标值上下浮动10%以内为适中响应,此时按标准价格进行结算;若响应越限(过响应、欠响应)则按标准价格的90%进行结算。

表1需求响应用户的特性参数

(2)部署计算总需求响应量的智能合约:该合约包含构造函数、需求量上报函数及需求量查询三个函数及其相关辅助函数。构造函数是在创建合约时运行,通过该函数可实现合约的基本构建以及初始化;需求量上报函数用来记录交易时段以及发电商的需求量;需求量查询函数是为合约参与者提供了交易信息的查询接口。在remix环境下用虚拟账户模拟部署合约需求量计算合约,显示的信息表明了合约部署成功的状态,合约的地址、执行者的地址、生成该合约消耗的gas值以及该合约的hash值。

这笔交易产生时,需要将交易信息通过数字加密处理后得到的hash值广播给其他节点进行验证,数笔未验证的新交易放入区块中。如果其他节点确认了该区块所包含的交易的有效性,此时该合约正式部署成功,参与者的信息会上传至区块链当中。

(3)部署计算各用户需求响应量的合约:根据用户上传的出力数据进行需求响应资源价格的调整,此部分可以分为两个合约进行部署,分别负责响应量提交与价格更新。根据用户上传的需求响应资源的出力量,计算出新的需求侧资源的报价,如果该价格下各用户的出力总和不足发电商的总需求,继续进行迭代。否则输出用户的出力量,从而得到各需求响应用户的响应量。

a)记录下发电商的初始报价,调用数据传递函数将报价传输到合约b中,并用事件记录下来。之后各用户的出力情况由合约b更新并传输过来,在总出力情况未满足目标值时继续进行报价更新。

b)依据由a合约得到的报价按照对用户的出力进行结算,初始报价下四位用户的出力情况分别为:690,680,820,650kw。

通过调用call()函数可将用户的出力情况传输到合约a中,输入a合约的地址后,如果将用户功率值成功传输到a中,则返回一个布尔型的参数true。

经过6次循环迭代达到收敛,最终输出在5mw的资源需求量下,4位智能居民用户的出力情况,分别为:1.16,1.16,1.51,1.14mw,此时报价为36.64ether/mw。

(4)用户与发电商的交易结算合约:该合约主要包含构造函数、基线负荷计算函数、用户交易金额计算函数、转移支付函数以及其他的辅助函数。

a)构造函数:该函数与合约同名,通过该函数可实现合约的基本构建以及初始值输入。需要输入的初始量包含:用户钱包地址、用户的目标出力值以及出力的价格。各用户的目标出力值如表2所示。

b)基线负荷计算函数:该函数主要是实现根据用户的历史负荷数据计算其基线负荷值的功能。函数的输入值包括了该用户日前相近时段的历史用电数据、日内需求响应事件前两小时数据以及需求响应事件中的实际用电数据,具体的数值如表3所示。

c)双方交易金额计算:根据数值准备部分对适中响应、过响应以及欠响应的价格规定,计算出支付给用户的金额。根据用户1的历史出力数据计算出的发电商应当支付给用户1的金额并用事件形式记录两个钱包地址之间的代币转移。将金额单位转化为ether可得到发电商根据用户响应量的值支付给用户1的金额为1.58328ether。将合约部署在以太坊轻钱包metamask中。其余用户获得的补偿金额如表4所示。

表2用户的目标出力值

表3用户的实际出力值

表4用户的补偿金额

以上所揭露的仅为本发明一种较佳实施例而已,不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1