具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
接下来对本申请实施例公开的基于区块链的储能电站的电费结算方法进行介绍,如图1所示的,为本申请提供的一种基于区块链的储能电站的电费结算方法实施例1的流程图,可以包括以下步骤:
步骤S11、可信终端采集储能电站的双向电量数据,将所述双向电量数据发布到区块链。
本实施例中,储能电站,可以理解为:在负荷端建设的、根据当地的峰谷电价时间段进行充电和放电的系统,一般为电化学储能电站,即电池介质为铅炭电池或锂电池;储能电站直接接入到负荷端(如商业综合体、工业企业等)的400V/10kV/35kV母线上,通过在电价低谷时充电,电价高峰时放电,来获取电价差额收益,或者相应电网调度要求进行充放电,并获取一定的经济收益,在稳定电网的同时,达到降低企业的电费支出的目的。
双向电量数据,可以理解为:正向电量数据和反向电流数据。正向电量数据,可以理解为:储能电站放电时的放电量数据。反向电量数据,可以理解为:储能电站充电时的充电量数据。其中,“放电时的电价*放电电量-充电时的电价*充电电量”可以作为节约的电费。
需要说明的是,可信终端为区块链中的一个节点。可信终端成为区块链中节点的过程,可以包括:可信终端通过将自身的物联网唯一标志编码、终端硬件信息、网络地址等相关信息上传至区块链进行注册申请,经区块链查验、认证通过后,将所有信息打包生成区块数据发布到区块链上进行广播,共识成功后,可信终端成为区块链节点,并拥有公私钥对,至此,可信终端成为区块链上的身份唯一的节点。
步骤S12、所述区块链中的用电企业共识节点和储能电站投资运营商共识节点对所述双向电量数据进行共识计算,达成共识后,从所述用电企业共识节点和所述储能电站投资运营商共识节点中选择一个作为第一记账节点。
用电企业共识节点,可以理解为:用电企业在其公司本地部署的区块链共识节点。用电企业共识节点部署的过程,可以包括:用电企业通过将自身的营业执照、银行资信等证明文件上传至区块链进行注册申请,经区块链查验、认证通过后,将所有信息打包生成区块数据发布到区块链上进行广播,共识成功后,部署得到用电企业共识节点。用电企业可信共识节点成为区块链上的身份唯一的节点。其中,用电企业共识节点拥有公私钥对。
储能电站投资运营商共识节点,可以理解为:储能电站投资运营商在其公司本地部署的区块链共识节点。储能电站投资运营商共识节点部署的过程,可以包括:储能电站投资运营商通过将自身的营业执照、银行资信等证明文件上传至区块链进行注册申请,经区块链查验、认证通过后,将所有信息打包生成区块数据发布到区块链上进行广播,共识成功后,部署得到储能电站投资运营商共识节点。储能电站投资运营商可信共识节点成为区块链上的身份唯一的节点。其中,储能电站投资运营商共识节点拥有公私钥对。
在可信终端将双向电量数据发布到区块链之后,所述区块链中的用电企业共识节点和储能电站投资运营商共识节点可以但不局限于采用BFT共识算法对所述双向电量数据进行共识计算。
步骤S13、所述第一记账节点对所述双向电量数据进行处理,得到第一目标区块,将所述第一目标区块写入区块链。
第一记账节点可以按照设定的区块生成规则,对双向电量数据进行处理,得到第一目标区块。
写入区块链可以理解为:写入区块链中的分布式账本。
步骤S14、执行结算智能合约,从所述区块链中获取结算基础数据,并基于所述结算基础数据,进行电费结算,得到电费结算结果,并将所述电费结算结果发布到所述区块链,所述结算基础数据至少包括:所述第一目标区块中的双向电量数据。
本实施例中,可以设置结算智能合约执行的触发条件,在达到触发条件时,由区块链中的各共识节点均参与,执行结算智能合约。
达到触发条件,可以包括但不局限于:到达约定的结算日期,如,每月的1号零时。
本实施例中,结算基础数据可以包括:分时电价、用电企业和储能电站投资运营商双方的分成比例及第一目标区块中的双向电量数据。其中,分时电价、用电企业和储能电站投资运营商双方的分成比例是双方经过线下协商之后,生成合同,并在开发智能合约时,将合同提前写到智能合约中的。
本实施例中,在将所述电费结算结果发布到所述区块链之后,还可以将所述基于所述双向电量数据,进行电费结算的过程中产生的数据发布到所述区块链。
步骤S15、所述用电企业共识节点和所述储能电站投资运营商共识节点在对所述电费结算结果达成共识后,从所述用电企业共识节点和所述储能电站投资运营商共识节点中选择一个作为第二记账节点。
在将电费结算结果发布到区块链之后,所述用电企业共识节点和所述储能电站投资运营商共识节点可以但不局限于采用BFT共识算法对所述电费结算结果进行共识计算,在达成共识后,从所述用电企业共识节点和所述储能电站投资运营商共识节点中选择一个作为第二记账节点。
步骤S16、所述第二记账节点对所述电费结算结果,进行处理,得到第二目标区块,将所述第二目标区块写入所述区块链。
本实施例中,第二记账节点可以按照设定的区块生成规则,对电费结算结果进行处理,得到第二目标区块。
本实施例中,基于所述双向电量数据,进行电费结算的过程中产生的数据会自动存储到区块链中,以实现过程中产生的数据的可追溯。
本实施例中,监管部门、司法部门、行业协会或金融机构等也能注册到区块链,成为区块链中的共识节点。
当用电企业共识节点、储能电站投资运营商共识节点或其它节点对电费结算结果存在疑问时,可以对区块链中的电费结算的全流程数据进行验证和追溯。
在本申请中,通过可信终端直接采集储能电站的双向电量数据,并将双向电量数据发布到区块链,并由区块链中的用电企业共识节点和储能电站投资运营商共识节点对所述双向电量数据进行计算,达成共识后,将双向电量数据写入区块链,保证双向电量数据的准确性和不可篡改,从而保证双向电量数据的真实性。并通过执行结算智能合约,依据区块链上真实可信的双向电量数据自动生成电费结算结果,保证电费结算结果的真实性,并将电费结算结果写入区块链,保证电费结算结果不可篡改。
作为本申请另一可选实施例,参照图2,为本申请提供的一种基于区块链的储能电站的电费结算方法实施例2的流程图,本实施例主要是对上述实施例1描述的基于区块链的储能电站的电费结算方法的细化方案,如图2所示,该方法可以包括但并不局限于以下步骤:
步骤S21、可信终端采集储能电站的双向电量数据。
可信终端采集储能电站的双向电量数据的详细过程,可以参见实施例1中步骤S11的相关介绍,在此不再赘述。
步骤S22、可信终端判断所述双向电量数据是否满足精度要求。
若满足,则执行步骤S23;若不满足,则执行步骤S24。
步骤S23、将所述双向电量数据发布到区块链。
步骤S24、对所述双向电量数据进行补偿,将补偿后的双向电量数据替换所述双向电量数据,并返回执行所述判断所述双向电量数据是否满足精度要求的步骤。
步骤S21-S24为实施例1中步骤S11的一种具体实施方式。
步骤S25、所述区块链中的用电企业共识节点和储能电站投资运营商共识节点对所述双向电量数据进行共识计算,达成共识后,从所述用电企业共识节点和所述储能电站投资运营商共识节点中选择一个作为第一记账节点。
步骤S26、所述第一记账节点对所述双向电量数据进行处理,得到第一目标区块,将所述第一目标区块写入区块链。
步骤S27、执行结算智能合约,从所述区块链中获取结算基础数据,并基于所述结算基础数据,进行电费结算,得到电费结算结果,并将所述电费结算结果发布到所述区块链,所述结算基础数据至少包括:所述第一目标区块中的双向电量数据。
步骤S28、所述用电企业共识节点和所述储能电站投资运营商共识节点在对所述电费结算结果达成共识后,从所述用电企业共识节点和所述储能电站投资运营商共识节点中选择一个作为第二记账节点。
步骤S29、所述第二记账节点对所述电费结算结果,进行处理,得到第二目标区块,将所述第二目标区块写入所述区块链。
步骤S25-S29的详细过程可以参见实施例1中步骤S12-S16的相关介绍,在此不再赘述。
本实施例中,可信终端通过判断所述双向电量数据是否满足精度要求,在满足精度要求时,将所述双向电量数据发布到区块链,在不满足精度要求时,对所述双向电量数据进行补偿,将补偿后的双向电量数据替换所述双向电量数据,并返回执行所述判断所述双向电量数据是否满足精度要求的步骤,保证采集到的双向计量数据的准确性和精度,在采集到的双向计量数据的准确性和精度的情况下,将双向电量数据发布到区块链,确保数据的准确性与不可篡改。
作为本申请另一可选实施例,参照图3,为本申请提供的一种基于区块链的储能电站的电费结算方法实施例3的流程图,本实施例主要是对上述实施例2描述的基于区块链的储能电站的电费结算方法的细化方案,如图3所示,该方法可以包括但并不局限于以下步骤:
步骤S31、可信终端采集储能电站的双向电量数据。
可信终端采集储能电站的双向电量数据的详细过程,可以参见实施例2中步骤S21的相关介绍,在此不再赘述。
步骤S32、可信终端判断所述双向电量数据是否满足精度要求。
若满足,则执行步骤S33;若不满足,则执行步骤S34。
步骤S31-S32的详细过程可以参见实施例2中步骤S21-S22的相关介绍,在此不再赘述。
步骤S33、对所述双向电量数据进行加密,将加密后的双向电量数据发布到区块链。
对所述双向电量数据进行加密,可以理解为:对所述双向电量数据进行哈希计算和非对称加密。
步骤S34、对所述双向电量数据进行补偿,将补偿后的双向电量数据替换所述双向电量数据,并返回执行所述判断所述双向电量数据是否满足精度要求的步骤。
步骤S35、所述区块链中的用电企业共识节点和储能电站投资运营商共识节点对所述双向电量数据进行共识计算,达成共识后,从所述用电企业共识节点和所述储能电站投资运营商共识节点中选择一个作为第一记账节点。
步骤S36、所述第一记账节点对所述双向电量数据进行处理,得到第一目标区块,将所述第一目标区块写入区块链。
步骤S37、执行结算智能合约,从所述区块链中获取结算基础数据,并基于所述结算基础数据,进行电费结算,得到电费结算结果,并将所述电费结算结果发布到所述区块链,所述结算基础数据至少包括:所述第一目标区块中的双向电量数据。
步骤S38、所述用电企业共识节点和所述储能电站投资运营商共识节点在对所述电费结算结果达成共识后,从所述用电企业共识节点和所述储能电站投资运营商共识节点中选择一个作为第二记账节点。
步骤S39、所述第二记账节点对所述电费结算结果,进行处理,得到第二目标区块,将所述第二目标区块写入所述区块链。
步骤S35-S39的详细过程可以参见实施例2中步骤S25-S29的相关介绍,在此不再赘述。
本实施例中,通过对所述双向电量数据进行加密,将加密后的双向电量数据发布到区块链,保证双向电量数据传输的安全性,进一步保证电费结算时所基于的数据的准确性和真实性。
作为本申请另一可选实施例,参照图4,为本申请提供的一种基于区块链的储能电站的电费结算方法实施例4的流程图,本实施例主要是对上述实施例2描述的基于区块链的储能电站的电费结算方法的细化方案,如图4所示,该方法可以包括但并不局限于以下步骤:
步骤S41、可信终端采集储能电站的双向电量数据。
可信终端采集储能电站的双向电量数据的详细过程,可以参见实施例2中步骤S21的相关介绍,在此不再赘述。
步骤S42、获取所述可信终端的采样误差值、所述储能电站中电流互感器的采样误差值及电压互感器的采样误差值,将所述可信终端的采样误差值、所述电流互感器的采样误差值及所述电压互感器的采样误差值,输入到预先训练好的BP神经网络模型中,得到所述预先训练好的BP神经网络模型输出的电量预测值。
本实施例中,所述BP神经网络模型的训练过程,可以包括:
S421、初始化BP神经网络模型中各层的参数。
本实施例中,如图5所示,BP神经网络模型可以包括:输入层、隐含层和输出层。其
中,输入层的输入变量为可信终端的采样误差值、所述储能电站中电流互感器的采样误差
值及电压互感器的采样误差值。
为输入层第j个节点与隐含层第i个节点的连接权值,
为隐含层第i个节点到输出层之间的权值,
表示隐含层第i个节点的输出阈值,
表示输出层第k个节点的输出阈值,隐含层的激活函数为
,输出层的激活函数为
;
本实施例中,隐含层的节点数量可以通过经验公式
来确认。
其中,N表示BP神经网络模型的输入层节点数量,L表示BP神经网络模型的输出层节点数量。
S422、从样本集中选择一个训练样本,将所述训练样本输入到所述BP神经网络模型,得到所述BP神经网络模型输出的电量预测值,所述训练样本为所述可信终端的采样误差值、所述储能电站中电流互感器的采样误差值及电压互感器的采样误差值。
S423、将所述电量预测值及所述储能电站的双向电量数据输入到神经网络误差函
数
中,得到误差。
其中,
表示电量预测值,
表示储能电站的双向电量数据,
表示训练样本
的数量,q表示训练样本,
表示BP神经网络模型的输出层的节点数量,
表示BP神经网
络模型的输出层的节点,E表示误差。
S424、判断所述电量预测值与基准电量值之间的误差是否在设定范围内。
若是,则执行步骤S425;若否,则执行步骤S426。
基准电量值和设定范围可以根据实际需要进行设置,在本申请中不做限制。
S425、结束训练;
S426、按照所述BP神经网络模型中的输出层到输入层的顺序,将所述误差分别传递给所述BP神经网络模型中的各个层,更新所述BP神经网络模型中各个层的参数,并返回从样本集中选择一个训练样本的步骤。
按照所述BP神经网络模型中的输出层到输入层的顺序,将所述误差分别传递给所述BP神经网络模型中的各个层,更新所述BP神经网络模型中各个层的参数可以理解为:利用反向传播原理,更新BP神经网络模型中各个层的参数。
本实施例中,更新BP神经网络模型中各个层的参数的过程,可以包括但不局限于:
按照输出层权值的修正量
及输出层阈值的修正量
及误差梯度下降法,对输出层的权值和阈值进行更新;
按照隐含层权值修正量
及隐含层阈值的修正量
及误差梯度下降法,对隐含层的权值和阈值进行更新;
步骤S43、判断所述电量预测值与所述可信终端采集的所述双向电量数据之间的误差是否超过设定阈值。
若未超过设定阈值,则执行步骤S44;若超过设定阈值,则执行步骤S45。
本实施例中,设定阈值可以根据需要进行设置,在本申请中不做限制。
步骤S42-S43为实施例2中步骤S22的一种具体实施方式。
步骤S44、将所述双向电量数据发布到区块链。
步骤S45、利用补偿关系式
,对所述双向电量数据
进行补偿,将补偿后的双向电量数据替换所述双向电量数据,并返回执行所述判断所述双
向电量数据是否满足精度要求的步骤。
其中,
表示电量预测值,
表示储能电站的双向电量数据,
表示隐含层
第i个节点到输出层之间的权值,
表示网络学习率,
表示补偿后的双向电量数据。
需要说明的是,
中的
和
虽然与
中的
和
相同,但是
中
表示的
是训练过程中BP神经网络模型输出的电流预测值,
表示训练BP神经网络模型时,采集的
储能电站的双向电量数据。
中的
表示的是预先训练好
的BP神经网络模型输出的电流预测值,
表示应用预先训练好的BP神经网络模型时,所采
集的储能电站的双向电量数据。
步骤S46、所述区块链中的用电企业共识节点和储能电站投资运营商共识节点对所述双向电量数据进行共识计算,达成共识后,从所述用电企业共识节点和所述储能电站投资运营商共识节点中选择一个作为第一记账节点。
步骤S47、所述第一记账节点对所述双向电量数据进行处理,得到第一目标区块,将所述第一目标区块写入区块链。
步骤S48、执行结算智能合约,从所述区块链中获取结算基础数据,并基于所述结算基础数据,进行电费结算,得到电费结算结果,并将所述电费结算结果发布到所述区块链,所述结算基础数据至少包括:所述第一目标区块中的双向电量数据。
步骤S49、所述用电企业共识节点和所述储能电站投资运营商共识节点在对所述电费结算结果达成共识后,从所述用电企业共识节点和所述储能电站投资运营商共识节点中选择一个作为第二记账节点。
步骤S410、所述第二记账节点对所述电费结算结果,进行处理,得到第二目标区块,将所述第二目标区块写入所述区块链。
本实施例中,通过BP神经网络模型实现对双向电量数据的精度要求的判断,能够提高精度要求判断的准确性,提高采集到的双向计量数据的准确性和精度,在提高采集到的双向计量数据的准确性和精度的情况下,将双向电量数据发布到区块链,进一步确保数据的准确性。
接下来对本申请提供的基于区块链的储能电站的电费结算系统进行介绍,下文介绍的基于区块链的储能电站的电费结算系统与上文介绍的基于区块链的储能电站的电费结算方法可相互对应参照。
请参见图6,基于区块链的储能电站的电费结算系统包括:可信终端100、区块链中的用电企业共识节点200和储能电站投资运营商共识节点300和智能合约执行节点400。
可信终端100,用于采集储能电站的双向电量数据,将所述双向电量数据发布到区块链;
所述区块链中的用电企业共识节点200和储能电站投资运营商共识节点300,用于对所述双向电量数据进行共识计算,达成共识后,从所述用电企业共识节点200和所述储能电站投资运营商共识节点300中选择一个作为第一记账节点;
所述第一记账节点,用于对所述双向电量数据进行处理,得到第一目标区块,将所述第一目标区块写入区块链;
将所述第一目标区块写入区块链,可以理解为:将所述第一目标区块写入区块链中的分布式账本。
智能合约执行节点400,用于执行结算智能合约,从所述区块链中获取结算基础数据,并基于所述结算基础数据,进行电费结算,得到电费结算结果,并将所述电费结算结果发布到所述区块链,所述结算基础数据至少包括:所述第一目标区块中的双向电量数据;
所述用电企业共识节点200和所述储能电站投资运营商共识节点300,还用于在对所述电费结算结果达成共识后,从所述用电企业共识节点200和所述储能电站投资运营商共识节点300中选择一个作为第二记账节点;
所述第二记账节点,用于对所述电费结算结果,进行处理,得到第二目标区块,将所述第二目标区块写入所述区块链。
将所述第二目标区块写入所述区块链,可以理解为:将所述第二目标区块写入所述区块链中的分布式账本。
本实施例中,所述可信终端100,具体可以用于:
采集储能电站的双向电量数据,判断所述双向电量数据是否满足精度要求;
若满足,则将所述双向电量数据发布到区块链;
若不满足,则对所述双向电量数据进行补偿,将补偿后的双向电量数据替换所述双向电量数据,并返回执行所述判断所述双向电量数据是否满足精度要求的步骤。
本实施例中,所述可信终端100,具体可以用于:
对所述双向电量数据进行加密,将加密后的双向电量数据发布到区块链。
本实施例中,所述可信终端100,具体可以用于:
获取所述可信终端100的采样误差值、所述储能电站中电流互感器的采样误差值及电压互感器的采样误差值,将所述可信终端100的采样误差值、所述电流互感器的采样误差值及所述电压互感器的采样误差值,输入到预先训练好的BP神经网络模型中,得到所述预先训练好的BP神经网络模型输出的电量预测值;
判断所述电量预测值与所述可信终端100采集的所述双向电量数据之间的误差是否超过设定阈值;
所述BP神经网络模型的训练过程,包括:
初始化BP神经网络模型中各层的参数;
从样本集中选择一个训练样本,将所述训练样本输入到所述BP神经网络模型,得到所述BP神经网络模型输出的电量预测值,所述训练样本为所述可信终端100的采样误差值、所述储能电站中电流互感器的采样误差值及电压互感器的采样误差值;
将所述电量预测值及所述储能电站的双向电量数据输入到神经网络误差函数
中,得到误差,其中,
表示电量预测值,
表示储能电站的双向电
量数据,
表示训练样本的数量,q表示训练样本,
表示BP神经网络模型的输出层的
节点数量,
表示BP神经网络模型的输出层的节点,E表示误差;
判断所述电量预测值与基准电量值之间的误差是否在设定范围内;
若是,则结束训练;
若否,则按照所述BP神经网络模型中的输出层到输入层的顺序,将所述误差分别传递给所述BP神经网络模型中的各个层,更新所述BP神经网络模型中各个层的参数,并返回从样本集中选择一个训练样本的步骤;
所述可信终端100,具体可以用于:
本实施例中,所述智能合约执行节点400,还可以用于:
将所述基于所述双向电量数据,进行电费结算的过程中产生的数据发布到所述区块链;
所述第二记账节点,还可以用于对所述基于所述双向电量数据,进行电费结算的过程中产生的数据,进行处理,得到第三目标区块,将所述第三目标区块写入所述区块链500。
将所述第三目标区块写入所述区块链,可以理解为:将所述第三目标区块写入所述区块链中的分布式账本。
需要说明的是,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
以上对本申请所提供的一种基于区块链的储能电站的电费结算方法及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。