👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆下载资源链接👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆
《《《《《《《《更多资源还请持续关注本专栏》》》》》》》
论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html
需求响应聚合商通过需求响应聚合用户的可转移负荷和可削减负荷,提高区域综合能源系统运行的灵活性和经济性。考虑综合能源系统运营商和需求响应聚合商之间的交互博弈关系,建立了计及需求响应的区域综合能源系统双层优化调度模型。上下层分别以区域综合能源系统运营商和需求响应聚合商经济收益最大为目标,利用KKT条件和线性化方法将双层模型转化为单层混合整数线性优化模型进行求解。结果显示,通过分时电价和需求响应补偿价格引导用户调整用能计划,可在提高综合能源系统运营商和需求响应聚合商的利润的同时实现削峰填谷,减少对电网安全稳定运行造成的影响。
部分代码展示:
%========================================================================
%中国电力期刊论文
%论文题目---《计及需求响应的区域综合能源系统双层优化调度策略》
%双层优化:KKT条件(双层模型转化为单层模型)+ Big-M法(非线性模型转化为混合整数线性模型)
%========================================================================
clc;
clear;
close all;
warning off;
tic
%% 选择用哪个求解器求解
%% 常量定义
WT=xlsread('data','B2:B25'); %风机出力数据导入
Ee0=xlsread('data','C2:C25'); %原始电负荷数据导入
Eh1=xlsread('data','D2:D25'); %热负荷数据导入
WT=WT';
Ee0=Ee0';
Eh1=Eh1';
M=1E8; %Big-M法中的M
Pgbuy=1.2*ones(1,24); %RIESO向电网购电电价
Pgsell=0.5*ones(1,24); %RIESO向电网售电电价
Phbuy=0.3*ones(1,24); %RIESO向热网购热价格
Phsell=0.2*ones(1,24); %RIESO向热网售热价格
Pesell=[0.4*ones(1,6),0.7*ones(1,2),1.2*ones(1,3),0.7*ones(1,5),...
1.2*ones(1,4),0.7*ones(1,2),0.4*ones(1,2)]; %RIESO向用户的售电电价
Phsell_u=0.3*ones(1,24); %RIESO向用户的售热价格
CLS=0.55*ones(1,24); %向DRA购买转移负荷的价格
CLC=0.55*ones(1,24); %向DRA购买削减负荷的价格
CLScus=0.3*ones(1,24); %向用户购买单位负荷转移量成本
CLCcus=0.5*ones(1,24); %向用户购买单位负荷削减量的补偿成本
%% 决策变量定义
ELSdown=sdpvar(1,24); %电负荷需求响应转出量
ELSup=sdpvar(1,24); %电负荷需求响应转入量
ELC=sdpvar(1,24); %电负荷需求响应削减量
Ee=sdpvar(1,24); %RIESO向电网的购/售电量
Ee_b=sdpvar(1,24); %RIESO向电网的购电量
Ee_s=sdpvar(1,24); %RIESO向电网的售电量
Eh=sdpvar(1,24); %RIESO向热网的购/售热量
Eh_b=sdpvar(1,24); %RIESO向热网的购热量
Eh_s=sdpvar(1,24); %RIESO向热网的售热量
EICE=sdpvar(1,24); %内燃发电机的输出功率
EGB=sdpvar(1,24); %燃气锅炉的输出功率
ERE=sdpvar(1,24); %余热锅炉的输出功率
Ee1=sdpvar(1,24); %用户参与需求响应后的电负荷
Temp_b_e=binvar(1,24); %RIESO向电网买电标识
Temp_s_e=binvar(1,24); %RIESO向电网售电标识
Temp_static_e=binvar(1,24); %RIESO购/售电静置标识
Temp_b_h=binvar(1,24); %RIESO向热网购热标识
Temp_s_h=binvar(1,24); %RIESO向热网售热标识
Temp_static_h=binvar(1,24); %RIESO购/售热静置标识
%% 上层RIESO的约束条件
C= [];
for t=1:24
%电功率平衡约束
C=[C,Ee0(1,t)-ELSdown(1,t)+ELSup(1,t)-ELC(1,t)==WT(1,t)+EICE(1,t)+Ee(1,t)];
%热功率平衡约束
C=[C,Eh1(1,t)==((EICE(1,t)*0.65*0.83/0.35)*0.85+EGB(1,t)*0.85)+Eh(1,t)];
%需求响应后的电负荷
C=[C,Ee1(1,t)==Ee0(1,t)-ELSdown(1,t)+ELSup(1,t)-ELC(1,t)];
%余热锅炉的输出功率
C=[C,ERE(1,t)==EICE(1,t)*0.65*0.83/0.35];
%机组出力上下限约束
C=[C,0<=EICE(1,t)<=500,0<=EGB(1,t)<=800];
%与电网热网能量交互约束
C=[C,-1000<=Ee(1,t)<=1000,0<=Ee_b(1,t)<=1000,-1000<=Ee_s(1,t)<=0];
C=[C,implies(Temp_b_e(1,t),[Ee(1,t)>=0,Ee_b(1,t)==Ee(1,t),Ee_s(1,t)==0])];
C=[C,implies(Temp_s_e(1,t),[Ee(1,t)<=0,Ee_b(1,t)==0,Ee_s(1,t)==Ee(1,t)])];
C=[C,implies(Temp_static_e(1,t),[Ee(1,t)==0,Ee_b(1,t)==0,Ee_s(1,t)==0])];
C=[C,Temp_b_e(1,t)+Temp_s_e(1,t)+Temp_static_e(1,t)==1];
C=[C,-100<=Eh(1,t)<=100,0<=Eh_b(1,t)<=100,-100<=Eh_s(1,t)<=0];
C=[C,implies(Temp_b_h(1,t),[Eh(1,t)>=0,Eh_b(1,t)==Eh(1,t),Eh_s(1,t)==0])];
C=[C,implies(Temp_s_h(1,t),[Eh(1,t)<=0,Eh_b(1,t)==0,Eh_s(1,t)==Eh(1,t)])];
C=[C,implies(Temp_static_h(1,t),[Eh(1,t)==0,Eh_b(1,t)==0,Eh_s(1,t)==0])];
C=[C,Temp_b_h(1,t)+Temp_s_h(1,t)+Temp_static_h(1,t)==1];
效果展示:
👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆下载资源链接👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆
《《《《《《《《更多资源还请持续关注本专栏》》》》》》》
论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html