开源代码分享(27)-基于主从博弈理论的共享储能与综合能源微网优化运行研究

参考文献:

[1]帅轩越,马志程,王秀丽,等.基于主从博弈理论的共享储能与综合能源微网优化运行研究[J].电网技术,2023,47(02):679-690.DOI:10.13335/j.1000-3673.pst.2021.2191.

1.背景介绍

        综合能源微网与共享储能在提高系统能源利用率方面具有显著效益,逐渐成为目前研究热点,如何建立一套共享储能背景下综合能源微网优化运行模型是当下亟待解决的问题。首先,本文介绍了系统运行框架,分析了系统内各利益体的功能。其次,分别针对微网运营商、共享储能服务商以及用户聚合商建立优化运行模型。进一步,分析了微网运营商与用户聚合商间的博弈关系,提出共享储能背景下微网运营商与用户聚合商间的 Stackelberg 博弈模型,并证明Stackelberg 均衡解的存在性与唯一性。最后,在 MATLAB平台上进行算例仿真,通过 Yalmip 工具与 CPLEX 求解器进行建模与求解,利用启发式算法与求解器相结合的方法优化微网运营商与用户聚合商的策略。结果表明,本文所提模型所提模型不仅能有效权衡微网运营商与用户聚合商的利益,也实现了用户聚合商与共享储能运营商的收益双赢,所采用的求解算法保护了微网运营商与用户聚合商间的数据
隐私。

2.数学模型

        为了统一优化安排,将微网内分布式用户群等效为一个用户聚合商。假定社区型综合能源微
网主要由微网运营商、用户聚合商以及共享储能运营商三个对象组成,具体场景如图 1 所示。

2.1微网运营商模型

        设一天可分为 H 个时间段,微网运营商将售电价与售热价作为策略,相应约束为

2.2 共享储能服务商模型

        假设共享储能系统独立配置于共享储能运营商侧,主要针对用户群进行电能存储 /取用服务。考虑一个含 n 个用户的社区型综合能源微网,设一天可分为 H 个时间段,则共享储能系统的容量在一天内第 h +1 个时刻的容量可表示为

2.3 用户侧模型

        考虑到用户侧具有灵活电负荷资源,可将电负荷分为刚性电负荷与柔性电电荷。刚性电负荷的灵活性较差,只能在固定时间段接受供电;而柔性电负荷灵活性较强,对供电时间的固定性没有要求,用户可以根据电价调整供电时间,从而实现需求侧响应。同时用户侧配有电制热设备对用户供热,在使用电制热设备时需要消耗额外电能。综上,用户聚合商在一天内第 h 个时间段内的电负荷可表示为

2.4模型求解方法与流程

        对于微网运营商(leader),目标函数为一天内收益最大,求解一天内最优电价与热价;对于用户聚合商(follower),目标函数为一天内收益最大,求解一天内最优柔性电负荷分布、热负荷消减量以及参与共享储能服务的电能。
        利用遗传算法初始化、更新上层微网运营商的售电价与购电价,下层问题直接用 CPLEX 求解器进行求解,具体求解流程如下:
        1)初始化微网运营商、共享储能服务商以及用户聚合商的参数, k= 0 ,设定种群数 m 40,迭代次数为 20 ,种群变异率为 5% ,交叉概率为 80%, 收敛误差 0.01
        2)利用遗传算法初始随机生成 m 组微网运营商的售电价与售热价,将参数传至用户聚合商。
        3) k= k +1
        4)用户聚合商接收 m 组微网运营商的售电价与售热价,利用 CPLEX 求解器求解柔性电负荷分布、热负荷消减量及参与共享储能服务的电能,计算并保留当前收益E_k^l  ,并通过用户侧管理系统将购电量与购热量返回至微网运营商。

3.运行结果

4.matlab代码

%% 基于主从博弈理论的共享储能与综合能源微网优化运行研究——帅轩越
%场景 4:含有共享储能和电制热设备

clc;clear;close all;% 程序初始化
%% 读取数据
shuju=xlsread('share+EtoH数据.xlsx'); %把一天划分为24小时
load_e=shuju(2,:); %初始电负荷
load_h=shuju(3,:); %初始热负荷
P_PV=shuju(4,:);    %光电预测
pe_grid_S=shuju(5,:); %电网售电价
pe_grid_B=shuju(6,:); %电网购电价
ph_max=shuju(7,:); %热价上限
ph_min=shuju(8,:); %热价下限

%% 主从博弈过程

F = 0.5;   % 缩放因子
CR = 0.9;  % 交叉因子
%参数设置
groupSize =40;        %个体数目(Number of individuals)
groupDimension=48;  %染色体长度
MAXGEN =80;      %最大遗传代数(Maximum number of generations)
v=zeros(groupSize,groupDimension);    % 变异种群
u=zeros(groupSize,groupDimension);    % 交叉种群
Unew=zeros(groupSize,groupDimension); % 边界处理后的种群
%初始种群
population = smartGroupInit(groupSize,groupDimension);% 初始化群体
gen=0;                                         %种群世代计数器
fitness=0; %初始适应度
user=0;%用户收益
while gen<MAXGEN
   gen=gen+1 
%计算目标函数值   
    [P_MT,F_user,F_share,Eload,Hload,ES,P_h,Prl,P_buy,P_sell] = computeObj(population,load_e,load_h,P_PV,pe_grid_B);
%变异操作
   v=mutate(population,F,MAXGEN,gen); %针对整个种群的变异
%交叉操作
   u=crossover(population,v,CR);
%边界处理
   Unew = boundaryprocess(u,pe_grid_S,pe_grid_B,ph_max,ph_min);
% 选择操作 (计算新的适应度)
[Newpopulation,fitbest,best] =select(Unew,population,P_MT,P_h,P_buy,pe_grid_S);
trace(gen,1)=gen; %赋值世代数
    population=Newpopulation;
    %追踪最优适应度和售电售热价
    if fitness<=fitbest
    fitness = fitbest;  
    trace(gen,2)=fitbest;
    remainbest=best;
    else
    trace(gen,2)=fitness;
    end
    trace(gen,3)=F_share; %共享储能商的收益
%追踪最优目标函数
if user<=F_user
    user=F_user;
    trace(gen,4)=F_user;%用户收益曲线
else
    trace(gen,4)=user;
end
end

%% 画图
figure(1)
plot(trace(:,2),'c-*','linewidth',2)
hold on
xlabel('迭代次数');
ylabel('综合能源系统目标函数');
yyaxis right
plot(trace(:,4),'g-*','linewidth',2);
ylabel('用户聚合商目标函数');
title('迭代过程');
legend('微网运营商收益曲线','用户收益曲线')

figure(2)
bar(P_PV)
hold on
plot(load_e,'g-*','linewidth',2)
hold on
plot(load_h,'y-*','linewidth',2)
hold on
xlabel('时间/h');
ylabel('曲线/kW');
legend('光伏出力','电负荷','热负荷');

figure(3)
bar(load_e-Eload);
hold on 
ylabel('负荷/kW');
yyaxis right
plot(shuju(5,:),'g-*','linewidth',2)
xlabel('时间/h');
ylabel('电价');
title('电负荷优化结果');
legend('负荷转移结果','市场电价');


figure(4)
bar(load_e,'b');
hold on
plot(Eload,'r-*','linewidth',2)
hold on 
xlabel('时间/h');
ylabel('电负荷/kW');
title('电负荷变化');
legend('原始电负荷值','优化电负荷值');


figure(5)
bar(load_h,'b');
hold on
plot(Hload,'r-*','linewidth',2)
hold on 
xlabel('时间/h');
ylabel('热负荷/kW');
title('热负荷变化');
legend('原始热负荷值','优化热负荷值');


figure(6)
xx=1:24;
stairs(pe_grid_S,'r--*','linewidth',2);
hold on
stairs(pe_grid_B,'b--*','linewidth',2);
hold on
stairs(best(1,xx),'y--','linewidth',2);
xlabel('时间/h');
ylabel('电价/元');
title('微网运营商电价');
legend('电网售电价','电网购电价','微网运营商售电价');


figure(7)
xx=1:24;
stairs(ph_min,'c--*','linewidth',2);
hold on
stairs(ph_max,'g--*','linewidth',2);
hold on
stairs(best(1,xx+24),'b--*','linewidth',2);
xlabel('时间/h');
ylabel('电价/元');
title('微网运营商热价');
axis([1,24,0.1,0.6]);
legend('热价下限','热价上限','微网聚合商售热价');

figure(8)
bar(ES,'stack')
hold on
xlabel('时间/h');
ylabel('功率/kW');
yyaxis right
plot(shuju(5,:),'r--*','linewidth',2)
xlabel('时间/h');
ylabel('电价');
title('共享储能聚合商');
legend('储能容量','市场电价');

xx=1:24;
PP=value([P_h;Prl]);
figure(9)
bar(PP',0.5,'stack');
hold on
plot(value(P_h+Prl),'g--*','linewidth',2);
legend('购入热功率','电制热出力','优化后的热负荷');
xlabel('时段');ylabel('功率/kW');


        以上仅为主函数部分的代码,完整代码获取方式如下:

开源代码分享(27)-基于主从博弈理论的共享储能与综合能源微网优化运行研究资源-CSDN文库

  • 29
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
很抱歉,根据提供的引用内容,没有完整的主从博弈模型的Matlab代码。引用提到了一个基于主从博弈的智能小区电动汽车充电管理及代理商定价策略的Matlab项目全套源码,但是没有提供具体的代码。引用中提到了一个基于主从博弈的社区综合能源系统分布式协同优化运行策略的Matlab代码,但是并没有提供代码的详细信息。因此,无法提供完整的主从博弈模型的Matlab代码。如果您对主从博弈模型有兴趣,可以参考相关的研究论文和学术资源,或者尝试搜索相关的源项目和代码库。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [stackelberg_game基于主从博弈的智能小区电动汽车充电管理及代理商定价策略,matlab源码](https://download.csdn.net/download/m0_53407570/84989623)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [MATLAB代码:基于元模型优化的虚拟电厂主从博弈优化调度模型 关键词:元模型 虚拟电厂 主从博弈 优化调度 ...](https://download.csdn.net/download/2301_78312041/87810698)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [基于主从博弈的社区综合能源系统分布式协同优化运行策略(Matlab代码实现)](https://blog.csdn.net/2301_77414277/article/details/129994765)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

配电网和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值