EI论文联合复现:考虑碳交易及柔性负荷的综合能源系统低碳经济调度程序代码!

2023-12-16 11:34:38

本程序参考EI论文《考虑用户侧柔性负荷的社区综合能源系统日前优化调度》和C类期刊论文《考虑柔性负荷的综合能源系统低碳经济优化调度》,程序中基于能源集线器构建包含储能、燃气轮机发电系统、柔性负荷等在内的社区综合能源系统数学模型。小编在复现时考虑了程序的通用性,程序中算例丰富、注释清晰、干货满满,创新性很高!下面对文章和程序做简要介绍!

概念解释:

1. 柔性负荷:柔性负荷是指能够根据电力系统需求灵活调整其电能消耗或生产的设备或系统。与传统的固定负荷相比,柔性负荷具有更强的适应性和可调性,可以在需要时降低或增加其电力消耗,以更好地匹配电力系统的实际需求。

柔性负荷的特点包括:

可调性(可平移、可削减、可转移);响应速度快;支持新能源集成;智能控制;多样性;

2. 需求响应:需求响应(Demand Response)是一种管理电力系统的策略,通过调整电力需求以响应电力市场条件或电网的需要。需求响应的目标是在电力系统面临高负荷或其他紧急情况时,通过减少电力需求来平衡供需关系,提高电力系统的稳定性和可靠性。这是一种有效的方式,可以在不建设新的发电设备的情况下应对电力需求的峰值。

需求响应的主要特点包括:

灵活性;参与多样性;激励机制;技术支持;市场参与;

针对综合能源系统中存在潜在的可调度资源,基于能源集线器构建包含储能、燃气轮机发电系统、柔性负荷等在内的社区综合能源系统数学模型。该模型综合考虑用户侧柔性负荷的可平移、可转移、可削减的负荷特性。最终建立以总运行成本最小为目标的综合能源系统供需联合日前优化调度模型,采用 Yalmip工具箱和 Cplex求解器对算例进行求解,得到3种场景下柔性电、热负荷参与调度的优化结果,并对比分析电热独立调度的经济效益。仿真结果表明:电热耦合调度,柔性电、热负荷的参与互动能明显降低系统运行成本,减小负荷峰谷差,缓解高峰用电压力。

程序结果:

部分程序:

clc;clear;close all;
%读取数据 
%电负荷、热负荷、光伏、风机、购电价、售电价
e_load=[160	150	140	140	130	135	150	180	215	250	275	320	335	290	260	275	270	280	320	360	345	310	220	160];%电负荷
h_load=[135	140 150 135 140 120 115 100 115 115 160 180 190 170 140 130 145 200 220 230 160 150 140 130];%热负荷
ppv=[0 0 0	0 0	10 15 25 45 75 90 100 80 100 50  40 30 15 10 0 0 0 0 0  ];%光伏预测数据
pwt=[60 65  70 75 80 85 90 100 125 150 130 110 100 120 125 130 140 160 180 200 175 160 155 150];%风机预测数据
buy_price=[0.25	0.25 0.25 0.25 0.25 0.25 0.25 0.53 0.53 0.53 0.82 0.82 0.82 0.82 0.8 0.53 0.53 0.53 0.82 0.82 0.82 0.53 0.53 0.53];%购电价
sell_price=[0.22 0.22 0.22 0.22 0.22 0.22 0.22 0.42 0.42 0.42 0.65 0.65 0.65 0.65 0.65 0.42 0.42 0.42 0.65 0.65 0.65 0.42 0.42 0.42];%售电价
%需求响应数据
Pcut=[10 10 10 10 10 10 15 15 25 50 50 50 50 50 50 50 50 50 50 50 40 40 15 10];%可削减电负荷
Temp_Pcut=binvar(1,24,'full'); % 电负荷削减标志
PPcut=sdpvar(1,24,'full');%电负荷消减量
n1=zeros(1,1);%消减连续
Hcut=[25 25 25 25 25 25 25 25 30 40 40 40 40 40 40 40 40 40 50 50 30 30 20 15];%可削减热负荷
Temp_Hcut=binvar(1,24,'full'); % 热负荷削减标志
HHcut=sdpvar(1,24,'full');%热负荷消减量
n2=zeros(1,1);%消减连续

Ptran=[0 0 0 0 0 0 0 0 0 0 0 0 25 25 25 25 0 0 0 0 0 0 0 0 ];%可转移电负荷
Temp_Ptran=binvar(1,24,'full'); % 可转移电负荷 转移标志
PPtran=sdpvar(1,24,'full');%电负荷转移量

Pshift1=[0 0 0 0 0 0 0 0 0 0 0 25 25 0 0 0 0 0 0 0 0 0 0 0 ];%可平移电负荷1
Temp_Pshift1=binvar(1,24,'full'); % 可平移电负荷1 平移标志
PPshift1=sdpvar(1,24,'full');%可平移电负荷1量
Pshift2=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  25 25 25 0 0 ];%可平移电负荷2
Temp_Pshift2=binvar(1,24,'full'); % 可平移电负荷2 平移标志
PPshift2=sdpvar(1,24,'full');%可平移电负荷2量
Hshift=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 45 45 45 0 0 0 0 ];%可平移热负荷
Temp_Hshift=binvar(1,24,'full'); % 可平移热负荷 平移标志
HHshift=sdpvar(1,24,'full');%可平移热负荷量

for i=1:24
    Pfix(i)=e_load(i)-Pshift1(i)-Pshift2(i)-Ptran(i)-Pcut(i);%基础电负荷
end
for i=1:24
    Hfix(i)=h_load(i)-Hshift(i)-Hcut(i);%基础热负荷
end


%定义机组变量
P_pv=sdpvar(1,24,'full');%光伏电输出功率
P_wt=sdpvar(1,24,'full');%风机电输出功率
P_mt=sdpvar(1,24,'full');%燃气轮机电输出功率
P_GB=sdpvar(1,24,'full');%燃气锅炉输出热功率

Pbuy=sdpvar(1,24,'full');%从电网购电电量
Psell=sdpvar(1,24,'full');%向电网售电电量
Pnet=sdpvar(1,24,'full');%与电网交换功率
Temp_net=binvar(1,24,'full'); % 购|售电标志

Pcharge=sdpvar(1,24,'full');%充电功率
UPcharge=binvar(1,24,'full');%充电标志  
Pdischarge=sdpvar(1,24,'full');%放电功率
UPdischarge=binvar(1,24,'full');%放电标志  
B=sdpvar(1,24,'full');%电储能余量

Hcharge=sdpvar(1,24,'full');%储热系统充热
Hdischarge=sdpvar(1,24,'full');%储热系统放热
UHcharge=binvar(1,24,'full'); %储热系统充热标志
UHdischarge=binvar(1,24,'full'); %储热系统放热标志
H=sdpvar(1,24,'full'); %热储能余量


%储能参数
%电储能参数
E_storage_max=0.95*100;E_storage_min=0.4*100;e_loss=0.001;e_charge=0.9;e_discharge=0.9;%电储能容量/自损/充电/放电
%热储能参数
H_storage_max=0.95*100;H_storage_min=0.4*100;h_loss=0.001;h_charge=0.9;h_discharge=0.9;%热储能容量//自损/充热/放热
%约束条件
Constraints =[];
 %% 电储能容量约束、SOC约束、充电约束、放电约束、充放电状态约束、爬坡约束

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

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