【科研工作站】【免费】基于主从博弈的电热综合能源系统动态定价与能量管理

文摘   2024-09-28 23:23   河北  

   主要内容   

该模型主要做的是电热综合能源系统的动态定价问题,采用是主从博弈方法,上层领导者问题上,以综合能源系统整体的收益作为目标函数,考虑电价以及热价等相关约束,在下层跟随者模型上,以用户用能满意度最高为目标函数,构建了领导者-跟随者Stackelberg博弈模型,同时还考虑了系统的功率平衡条件以及热能平衡条件等约束,模型的上层求解采用粒子群算法,下层求解采用混合整数规划算法,采用的求解器为CPLEX,也可自行替换成gurobi进行求解。

   部分程序   

%% 决策变量定义P_buy=sdpvar(N,T);   %%%向配电网购电功率P_sell=sdpvar(N,T);   %%%向配电网售电功率U_buy=binvar(N,T);   %%%向配电网购电变量U_sell=binvar(N,T);   %%%向配电网售电变量P_cut=sdpvar(N,T);    %%%可削减电负荷功率U_cut=binvar(N,T);    %%%可削减电负荷变量P_dis=sdpvar(N,T);    %%%储能向各园区放电功率P_ch=sdpvar(N,T);    %%%储能向各园区充电功率u_dis=binvar(N,T);    %%%储能放电状态u_ch=binvar(N,T);    %%%储能充电状态E_ess=sdpvar(1,T);    %%%储能电量P_chwind=sdpvar(1,T);    %%%储能从风场充电功率P_chgrid=sdpvar(1,T);    %%%储能从配电网充电功率P_wind=sdpvar(N,T);    %%%风场向各园区售电功率P_windgrid=sdpvar(1,T);    %%%风场向配电网售电功率G_gas=sdpvar(2,T);    %%%各园区购气功率G_gaschp=sdpvar(2,T);G_gasgb=sdpvar(2,T);P_12=sdpvar(1,T);    %%%园区12间功率交换P_21=sdpvar(1,T);    %%%园区21间功率交换P_23=sdpvar(1,T);    %%%园区23间功率交换P_32=sdpvar(1,T);    %%%园区32间功率交换P_13=sdpvar(1,T);    %%%园区13间功率交换P_31=sdpvar(1,T);    %%%园区31间功率交换U_jsell=binvar(N,T);    %%%园区间售电变量U_jbuy=binvar(N,T);    %%%园区间购电变量P_CHP=sdpvar(2,T);      %%%园区2和3的CHP发电功率Q_WHB=sdpvar(N,T);    %%%余热锅炉功率Q_GB=sdpvar(2,T);    %%%燃气锅炉功率Q_CHP=sdpvar(2,T);      %%%园区2和3的CHP发热功率C_CHP=sdpvar(1,T);      %%%园区3的CHP冷功率T_in=sdpvar(1,T);      %%%室内温度H_in=sdpvar(2,T);      %%%园区2和3的转入热负荷H_out=sdpvar(2,T);     %%%园区2和3的转出热负荷U_hin=binvar(2,T);      %%%园区2和3的转入热负荷状态变量U_hout=binvar(2,T);      %%%园区2和3的转出热负荷状态变量H_cut=binvar(2,T);      %%%园区2和3的削减热负荷 P_in=sdpvar(N,T);      %%%园区的转入电负荷P_out=sdpvar(N,T);     %%%园区的转出电负荷U_pin=binvar(N,T);      %%%园区的转入电负荷状态变量U_pout=binvar(N,T);      %%%园区的转出电负荷状态变量P_air=sdpvar(1,T);       %%%园区3耗电功率C_air=sdpvar(1,T);       %%%园区3空调冷出力Pload_dr=sdpvar(N,T);Hload_dr=sdpvar(2,T);%% 约束条件C=[];%%%电需求响应约束C=[C,Pload_dr==Pload+P_in-P_out-P_cut];C=[C,Pload_dr>=0];for i=1:1:NC=[C,sum(P_in(i,:)-P_out(i,:))==0];C=[C,sum(U_pin(i,:)+U_pout(i,:))<=8];C=[C,sum(U_cut(i,:))<=6];endC=[C,U_pin+U_pout<=1];C=[C,0<=P_in<=U_pin*300];C=[C,0<=P_out<=U_pout*300];C=[C,0<=P_cut<=U_cut*0.2.*Pload];%%%电功率平衡C=[C,P_CHP==0.35*10*G_gaschp];%园区1C=[C,P_buy(1,:)-P_sell(1,:)-P_12+P_21-P_13+P_31+P_dis(1,:)-P_ch(1,:)+P_wind(1,:)+sum(P_pv)==Pload_dr(1,:)];%园区2C=[C,P_buy(2,:)-P_sell(2,:)+P_12-P_21-P_23+P_32+P_dis(2,:)-P_ch(2,:)+P_wind(2,:)+P_CHP(1,:)==Pload_dr(2,:)];%园区3C=[C,P_buy(3,:)-P_sell(3,:)+P_13-P_31+P_23-P_32+P_dis(3,:)-P_ch(3,:)+P_wind(3,:)+P_CHP(2,:)-P_air==Pload_dr(3,:)];
%%%热功率平衡C=[C,U_hin+U_hout<=1];C=[C,0<=H_in<=U_hin*300];C=[C,0<=H_out<=U_hout*300];C=[C,0<=H_cut<=H_cut*0.2.*Hload];C=[C,Hload_dr==Hload+H_in-H_out-H_cut];%余热锅炉热量收集模型C=[C,Q_CHP==2.58*P_CHP];C=[C,Q_GB==1.06*G_gasgb*8.6];C=[C,G_gas==G_gasgb+G_gaschp];%园区2C=[C,Q_GB(1,:)+Q_CHP(1,:)==Hload_dr(1,:)];%园区3C=[C,Q_GB(2,:)+Q_CHP(2,:)==Hload_dr(2,:)];
%%%冷功率平衡%冷负荷需求响应负荷

%园区3C=[C,C_air+C_CHP==Cload];
%%%园区间传输功率约束C=[C,P_12-P_21+P_13-P_31+P_23-P_32==0];C=[C,0<=P_12<=500];C=[C,0<=P_13<=500];C=[C,0<=P_23<=500];C=[C,0<=P_21<=500];C=[C,0<=P_31<=500];C=[C,0<=P_32<=500];%%%园区与配电网传输功率C=[C,U_buy+U_sell<=1];C=[C,0<=P_buy<=800*U_buy];C=[C,0<=P_sell<=800*U_sell];
%%%设备出力C=[C,0<=P_CHP<=500];C=[C,0<=Q_CHP<=1500];C=[C,0<=Q_GB<=3000];C=[C,C_CHP==0.72*(Q_CHP(2,:)+P_CHP(2,:))];C=[C,0<=C_CHP<=1000];C=[C,C_air==P_air*3];C=[C,0<=C_air<=6000];
%%% 储能装置(ESS)约束%充放电状态约束C = [C, u_dis + u_ch <= 1];%表示充电,放电,不充不放三种状态%功率约束C = [C, 0 <= P_dis <= u_dis*1500];C = [C, 0 <= P_ch<= u_ch*1500];%容量约束for t = 1:23 C = [C, E_ess(t+1) == E_ess(t) + 0.9*(sum(P_ch(:,t))+P_chwind(t)+P_chgrid(t)) - 0.9*sum(P_dis(:,t))]; end

   结果一览   

上述6图为部分运行结果,程序总出图为15个。

   “阅读原文”获取程序源码   

注:程序标价即是原价,不存在二次消费,保证运行成功,放心下单!

电力程序
打造电力专业最新原创程序集散地,免费分享基础编程资料,在这里,带着希望而来,带着知识而归~
 最新文章