前言
在分布式发电市场化交易中,传统交易中心在面对分布式能源海量、高频、小额交易时,存在着平台运维成本高、资金结转不及时、交易信息不透明等缺点,因此,需要探索相应的应对方法。微电网通过源荷本地互济互补,有效提高了新能源消纳水平,是构建新型电力系统的重要途径。在单微电网基础上提出的多微电网技术,通过微电网间能量互济,能够进一步提高供电可靠性和新能源渗透率。多微电网协调优化技术保证了微电网间能量最优互济。集中分级式和分布式优化调度方法是协调优化的两类典型结构,集中分级式具有通信依赖度高、鲁棒性低和涉及用户隐私等缺点,难以适应未来电力市场的开放、多主体特点。分布式结构下点对点(Peer to Peer,P2P)交易将成为智能电网的下一代能量管理技术,在P2P架构下,利用价值信号调度区域内产消者直接参与能量交易,相对于余量上网机制,P2P可激励产消者更加积极参与电力市场。
多微电网P2P结构
物理结构中,假设电力市场区域内存在4(程序中6个)个微电网,每个微电网包括以风机、光伏、储能为代表的新能源设备,燃气轮机为代表的分布式不可再生能源设备以及需求响应负荷。在上网电价补贴政策下,传统微电网被动的同主网进行能量交易,功率盈余时出售电力获得利润,功率不足时作为消费者从主网购电满足自身需求。但随着补贴电价的逐年降低,势必影响微电网提高自身新能源渗透率和参与电力市场交易的积极性。与此同时,不同时段不同微电网中,新能源出力、负荷需求存在差异,含有高比例新能源容量的微电网具备成为电能产消者的能力。微电网以个体利益最大为目标,同其它微电网进行交易,实现能量互补。最终形成微电网同主网能量交易、微电网和微电网能量交易共存的新模式,有助于提升各自收益,促进新能源合理消纳。
为适应上述新场景,并保证交易的安全性和有效性,可在P2P市场中建立分布式、中心化并存的信息通信网络,设置P2P市场运营商及交易平台,传统运营商的职责可以是收集各参与者的用能或售电数据,以及参与P2P交易的报价情况,从而对报价进行撮合,并发布实时P2P电价,每个参与者根据实时的P2P电价进行本地优化控制以参与P2P市场交易。交易平台既不储存能量也不购买或出售能量,其主要工作是提供信息交互的媒介。
程序介绍
程序中定义了6个微电网及相应的风电数据,对每个节点进行仿真,仿真结果包括节点的实际功率、购买和销售功率以及储能状态等。根据时间段设置不同的交易电价和电量,使用循环来模拟每个时间段内的买卖交易,将节点划分为卖方和买方,并按照电价排序。根据交易结果更新买方和卖方的状态,并记录成交情况,主要作用是根据买方和卖方的价格和需求量,进行匹配和交易,最终形成P2P交易的卖方与买方列表。根据基本交易策略,高价卖方匹配高价买方,低价卖方匹配低价买方。在交易过程中,根据买卖双方的价格和剩余功率量,确定是否可以进行交易。如果可以交易,则更新买卖双方的功率量和标记,并将交易对的信息添加到P2P列表中。如果买卖双方无法完成交易,则继续循环。综上所述,程序用于模拟卖方与买方之间的P2P交易过程,提供了一种简单的交易策略来实现买卖双方的匹配和交易。程序中算例丰富,注释清晰,干货满满,创新性和可扩展性很高,足以撑起一篇高水平论文!下面对程序做简要介绍!
程序适用平台:Matlab+Yalmip+Cplex
程序结果
部分程序
%% 交易策略
% 基本思想:高价匹配高价,低价匹配低价
% input:seller:P富余的功率;Ptemp=P;flag标记,flag=1未卖完
% buyer:P富余的功率;Ptemp=P;flag标记,flag=1未满足
NIR = 10; %迭代次数Nc = size(buyer, 1); %消费者数目
Np = size(seller, 1); %卖出者数目pair = {};IrPair = 1;
seller(index).Ptemp = seller(index).P * seller(index).flag;
buyer(index).Ptemp = buyer(index).P * buyer(index).flag;
if (buyer(buy).price >= seller(sell).price) && (buyer(buy).flag == 1 && seller(sell).flag == 1)
if (buyer(buy).Ptemp > seller(sell).Ptemp)
buyer(buy).P = buyer(buy).P - seller(sell).P;buyer(buy).Ptemp = buyer(buy).P;
% pair = [pair, [buy, sell, seller(sell).P, seller(sell).price]];
% pair(IrPair) = {buy, sell, seller(sell).P, seller(sell).price};
pair(IrPair).buyername = buyer(buy).name;
pair(IrPair).sellername = seller(sell).name;
pair(IrPair).power = seller(sell).P;
pair(IrPair).price = seller(sell).price;
IrPair = IrPair + 1;seller(sell).P = 0;
seller(sell).flag = 0;seller(sell).Ptemp = 0;sell = sell + 1;
elseif (buyer(buy).Ptemp < seller(sell).Ptemp) seller(sell).P = seller(sell).P - buyer(buy).P;
seller(sell).Ptemp = seller(sell).P;
% pair = [pair, [buy, sell, buyer(buy).P, seller(sell).price]];
% pair(IrPair) = {buy, sell, seller(sell).P, seller(sell).price};
buyer(buy).flag = 0;buyer(buy).Ptemp = 0; buy = buy + 1;
elseif (buyer(buy).Ptemp == seller(sell).Ptemp)
% pair = [pair, [buy, sell, buyer(buy).P, seller(sell).price]];
% pair(IrPair) = {buy, sell, seller(sell).P, seller(sell).price};
seller(sell).Ptemp = 0;buyer(buy).P = 0; buyer(buy).flag = 0;
buyer(buy).Ptemp = 0;sell = sell + 1;buy = buy + 1;
部分内容源自网络,侵权联系删除!
欢迎感兴趣的关注并私信获取完整版代码,小编会不定期更新高质量的学习资料、文章和程序代码,为您的科研加油助力!