EI论文复现:基于储能电站服务的多园区综合能源系统/微电网/虚拟电厂双层优化配置程序代码!

2023-12-15 11:36:00

本程序参考EI论文《基于储能电站服务的冷热电多微网系统双层优化配置》,文章利用共享储能作为出发点,建立了基于共享储能服务的微电网双层优化配置模型;算例中包含冷热电数据,双层优化和多阶段类似,小编在复现时考虑了程序的通用性,稍加改动(数据+气网模型)就可得到新的结果。程序中算例丰富、注释清晰、干货满满,创新性很高,小编非常推荐!下面对文章和程序做简要介绍!

创新点:

1. 共享储能—可改进:博弈+市场手段/盈利机制;

2. 双层优化配置—可改进:多阶段优化配置:

3. KKT+Big-M法—可改进:分布鲁棒/随机优化/区间优化;

4:多能互补—可改进:多园区共享储能;

随着储能技术的进步和共享经济的发展,共享储能电站服务模式将成为未来用户侧储能应用的新形态。提出基于储能电站服务的冷热电联供型多微网系统双层优化配置方法。首先,提出储能电站服务这种新型的共享储能模式,分析共享储能电站的运行方式和盈利机制。其次,将储能电站服务应用到冷热电联供型多微网系统中, 建立考虑两个不同时间尺度问题的双层规划模型,上层模型负责求解长时间尺度的储能电站配置问题,下层模型负责求解短时间尺度的多微网系统优化运行问题。再次,根据下层优化模型的Karush-Kuhn-Tucher(KKT)条件将下层模型转换为上层模型的约束条件,采用Big-M法对非线性问题线性化。最后,通过3个场景的算例分析验证所提双层规划模型的合理性和有效性,并证明所提出的共享储能服务能够有效降低用户成本,节约储能资源,实现用户与储能电站运营商的互利共赢。

文章框架:

文中结果:

程序结果:

部分程序:

%% 选择用哪个求解器求解
ANSWER=questdlg('选择Yalmip使用的求解器:','电网技术论文复现',...
    'Cplex求解器','Gurobi求解器','Cplex求解器');

UseCplex=strcmp(ANSWER,'Cplex求解器');
UseGurobi=strcmp(ANSWER,'Gurobi求解器');

%% 模型参数设定
W=1;              %典型日个数为1
Tw=91;            %典型日天数为91
N=3;              %微网数为3
M=1E8;            %Big-M法中的M
NT=24;            %调度时段数为24;
%微网向储能电站的售电电价
sddj=[0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.20,0.95,0.95,0.95,0.95,0.55,0.55,0.55,0.55,0.95,0.95,0.95,0.95,0.95,0.55,0.55,0.55];
%微网从储能电站购电的电价
gddj=[0.40,0.40,0.40,0.40,0.40,0.40,0.40,0.40,1.15,1.15,1.15,1.15,0.75,0.75,0.75,0.75,1.15,1.15,1.15,1.15,1.15,0.75,0.75,0.75];
%微网向储能电站缴纳的服务费单价
fwf=0.05*ones(1,24);
%微网从电网的购电电价
dwdj=[0.37,0.37,0.37,0.37,0.37,0.37,0.37,0.37,1.36,1.36,1.36,1.36,0.82,0.82,0.82,0.82,1.36,1.36,1.36,1.36,1.36,0.82,0.82,0.82];

%% 决策变量初始化
Pessmax=sdpvar(1);     %储能电站最大充放电功率
Eessmax=sdpvar(1);     %储能电站的最大容量
Pessswi=sdpvar(3,24);  %第i个微网向储能电站的售电功率
Pessbwi=sdpvar(3,24);  %第i个微网向储能电站的购电功率
PGTwi=sdpvar(3,24);    %第i个微网的燃气轮机输出功率
Pgridwi=sdpvar(3,24);  %第i个微网从电网的购电功率
PECwi=sdpvar(3,24);    %第i个微网电制冷机消耗的电功率
QACwi=sdpvar(3,24);    %第i个微网制冷机的输出制冷功率
QGBwi=sdpvar(3,24);    %第i个电网的燃气轮机输出热功率
PHXwi=sdpvar(3,24);    %第i个电网的换热装置输出制热功率
Eess=sdpvar(1,24);     %储能电站存储的能量
Pessabs=sdpvar(1,24);  %储能电站充电功率
Pessrelea=sdpvar(1,24);%储能电站放电功率
Uabs=binvar(1,24);     %储能电站充放电状态,0-1变量
Urelea=binvar(1,24);   %储能电站充放电状态,0-1变量

%% 上层储能电站的目标函数
Cinvw=0.95*(Pessmax+Eessmax)/(8*365)+72*Pessmax/365;                       %储能电站日平均投资和维护成本
Cesssw=Pessswi(1,:)*sddj'+ Pessswi(2,:)*sddj'+ Pessswi(3,:)*sddj';         %每个典型日储能电站从微网购电成本
Cessbw=Pessbwi(1,:)*gddj'+ Pessbwi(2,:)*gddj'+ Pessbwi(3,:)*gddj';         %每个典型日储能电站向微网的售电效益
Cservew=Pessswi(1,:)*fwf'+ Pessswi(2,:)*fwf'+ Pessbwi(1,:)*fwf'+ Pessbwi(2,:)*fwf'...
    + Pessswi(3,:)*fwf'+ Pessbwi(3,:)*fwf';                                %每个典型日储能电站从微网收取服务费
objective=Tw*(Cinvw + Cesssw - Cessbw - Cservew);                          %上层优化目标为储能电站年运行成本最小

%% 上层储能电站的约束条件
Con=[Eessmax==2.6658*Pessmax,     %式(6)中储能电站容量和额定功率约束
    Eess(1)==0.2*Eessmax,];       %式(7)中储能电站初始存储的能量约束
for i=2:24
    Con=[Con,
        0.1*Eessmax<=Eess(i)<=0.9*Eessmax, %储能电站容量上下限
        Eess(i)==(Eess(i-1)+(0.95*Pessabs(i)-(1/0.95)*Pessrelea(i))), %储能电站与上一时段的能量变化约束
        ];
end
for i=1:24
    %这里做一点说明,和论文中式(7)不太一样,因为不能出现两个决策变量相乘,故这里用类似于大M法的思路代替
    Con=[Con,
        0<=Pessabs(i)<=Pessmax,
        0<=Pessabs(i)<=Uabs(i)*M,
        0<=Pessrelea(i)<=Pessmax,
        0<=Pessrelea(i)<=Urelea(i)*M,
        Uabs(i) + Urelea(i)<=1,       %确定充放电状态不可能同时发生
        ];
end

欢迎感兴趣的小伙伴关注下方公众号获取完整版代码,小编会不定期更新高质量的学习资料、文章和程序代码,为您的科研加油助力!

文章来源:https://blog.csdn.net/weixin_48747334/article/details/135009703
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。