1 主要内容
该程序复现文献《碳交易机制下考虑需求响应的综合能源系统优化运行》,解决碳交易机制下考虑需求响应的综合能源系统优化运行问题,根据负荷响应特性将需求响应分为价格型和替代型 2 类, 分别建立了基于价格弹性矩阵的价格型需求响应模型,及考虑用能侧电能和热能相互转换的替代型需求响应模型; 其次, 采用基准线法为系统无偿分配碳排放配额,并考虑燃气轮机和燃气锅炉的实际碳排放量,构建一种面向综合能源系统的碳交易机制; 最后,以购能成本、碳交易成本及运维成本之和最小为目标函数,建立综合能源系统低碳优化运行模型,并通过 4 类典型场景对所提模型的有效性进行了验证。程序采用matlab+yalmip(cplex作为求解器)求解。
架构模型:
在该系统中,电能和气能分别由上级电网、气网供 应,从上级气网购气用来供给热电 联产装置( combined heat and power,CHP) 和燃气锅炉( gas boiler,GB) ,剩余电能可出售给上级电网; 能量耦合设备有 CHP、热泵( heat pump,HP) 和 GB,能实现电热能 量 双 向 流 动; CHP 由 燃 气 轮 机 ( gas turbine,GT) 、余热锅炉( waste heat boiler,WHB) 和基于有机朗肯循环( organic Rankine cycle,ORC) 的低温余热发电装置组成,运行方式为热电解耦,该运行方式能适应系统不同运行工况; HP 和 GB 消纳风电并承担部分热负荷。引入 DR 可以平抑负荷曲线波动,实现电热的交互耦合、削峰填谷并降低运行成本。
需求响应模型:
本程序将价格型需求响应和替代型需求响应均进行了实现。
目标函数:
对比算例设计:
程序采用四种对比算例,分别是仅包括碳交易、碳交易+需求响应、仅包括需求响应、均不包括四种情况。
2 部分程序
%% 碳交易机制下考虑需求响应的综合能源系统优化运行——魏震波 %场景 2: 碳交易机制下考虑需求响应 clc;clear;close all;% 程序初始化 %% 读取数据 shuju=xlsread('carbon+DR数据.xlsx'); %把一天划分为24小时 load_e=shuju(2,:); %初始电负荷 load_h=shuju(3,:); %初始热负荷 P_PV=shuju(4,:); %光电预测 P_WT=shuju(5,:); %风电预测 pe_b=shuju(6,:); %需求响应前电价 pe_a=shuju(7,:); %需求响应电价 ph_b=shuju(8,:); %需求响应前热价 ph_a=shuju(9,:); %需求响应热价 %% 需求侧定义变量 Z=zeros(24,24); %需求弹性矩阵 e_W1=0.5;e_W2=0.3;e_W3=0.15;e_W4=0.05;%约束:固定、可转移、可消减、可替代负荷占比50%,30%,15%,5% %这里进行4. 2. 2 需求响应灵敏度分析 h_W1=0.5;h_W2=0.2;h_W3=0.2;h_W4=0.1;%约束:固定、可转移、可消减、可替代负荷占比50%,30%,15%,5% %这里进行4. 2. 2 需求响应灵敏度分析 Psl_e=zeros(1,24);%转移电负荷量 Pcl_e=zeros(1,24);%消减电负荷量 Prl_e=zeros(1,24);%电负荷被替代量 Psl_h=zeros(1,24);%转移热负荷量 Pcl_h=zeros(1,24);%消减热负荷量 Prl_h=zeros(1,24);%热负荷被替代量 P2H=1.83; %电转热系数 OP_load_e=zeros(1,24);%优化后的电负荷 OP_load_h=zeros(1,24);%优化后的热负荷 %% IES电网交互电价 price_buy_grid=shuju(7,:); %向电网购电价 price_sell_grid=shuju(10,:); %向电网售电价 %% 供应测定义机组变量 %CHP P_GT=sdpvar(1,24,'full');%燃气轮机输出功率 e_GT=0.3;%燃气轮机供电效率 h_GT=0.4;%燃气轮机供热效率 P_WHB=sdpvar(1,24,'full');%余热锅炉输出功率 r_WHB=0.80;%热回收效率 P_ORC=sdpvar(1,24,'full');%ORC输出功率 r_ORC=0.80;%ORC效率 P_GB=sdpvar(1,24,'full');%燃气锅炉输出功率 h_GB=0.9;%燃气锅炉供热效率 P_HP=sdpvar(1,24,'full');%热泵输入功率 COP_HP=4.4;%电制冷机冷系数 B_grid=sdpvar(1,24,'full');%购电电量 S_grid=sdpvar(1,24,'full');%售电电量 B_grid_sign=binvar(1,24,'full'); %购电标志 ES_char=sdpvar(1,24,'full');%储电系统充电 ES_dischar=sdpvar(1,24,'full');%储电系统放电 ES_char_sign=binvar(1,24,'full');%储电系统充电标志 ES_max=400; ES_loss=0.01;ES_c_char=0.95;ES_c_discharge=0.9;%电储能最大容量;自损系数;充、放能效率 HS_char=sdpvar(1,24,'full');%储热系统充热 HS_dischar=sdpvar(1,24,'full');%储热系统放热 HS_char_sign=binvar(1,24,'full'); %储热系统充热标志 HS_max=400; HS_loss=0.01;HS_c_char=0.95;HS_c_discharge=0.9;%热储能最大容量;自损系数;充、放能效率;原文0.8 %% DR-需求侧响应优化 Z_e=ElasticityMatrix(pe_a); %电价需求弹性矩阵 Z_e_CL=diag(diag(Z_e)); %消减电负荷弹性矩阵,对角阵 Z_e_SL=Z_e-Z_e_CL; %转移电负荷弹性矩阵 Z_h=ElasticityMatrix(ph_a); %热价需求弹性矩阵 Z_h_CL=diag(diag(Z_h)); %消减热负荷弹性矩阵,对角阵 Z_h_SL=Z_h-Z_h_CL; %转移热负荷弹性矩阵 %价格型需求响应 [Psl_e,Pcl_e]=IBDR(Z_e_SL,Z_e_CL,load_e,pe_a,pe_b,e_W2,e_W3); [Psl_h,Pcl_h]=IBDR(Z_h_SL,Z_h_CL,load_h,ph_a,ph_b,h_W2,h_W3); %替代型需求响应 [Prl_e,Prl_h]=RBDR(pe_a,ph_a,e_W4,h_W4); OP_load_e=load_e+Psl_e+Pcl_e-Prl_e+Prl_h/P2H;%优化后的电负荷 OP_load_h=load_h+Psl_h+Pcl_h-Prl_h+Prl_e*P2H;%优化后的热负荷 %% IES供应侧储能约束 ES_start=80; HS_start=50; %电储能和热储能的初始能量 for i=1:24 ES(1,i)=ES_start+ES_char(1,i)*ES_c_char-ES_dischar(1,i)/ES_c_discharge; %储电初始容量约束 ES_start=ES(1,i); end for i=1:23 ES(1,i+1)= ES(1,i)*(1-ES_loss)+ES_char(1,i)*ES_c_char-ES_dischar(1,i)/ES_c_discharge; %储电容量约束 end ES_start=ES(1,24); for i=1:24 EH(1,i)=HS_start+HS_char(1,i)*HS_c_char-HS_dischar(1,i)/HS_c_discharge; %储热初始容量约束 HS_start=EH(1,i); end for i=1:23 EH(1,i+1)= EH(1,i)*(1-HS_loss)+HS_char(1,i)*HS_c_char-HS_dischar(1,i)/HS_c_discharge; %储热容量约束 end HS_start=EH(1,24); %% IES供应侧优化 % 约束条件 C=[]; %%电储能设备运行约束 for i=1:24 %运行约束 C=[C,0<=ES_char(1,i)<=250*ES_char_sign(1,i)]; C=[C,0<=ES_dischar(1,i)<=250*(1-ES_char_sign(1,i))]; end for i=1:24 %余量约束 C=[C,0<=ES(1,i)<=400]; end %热储能设备运行约束 for i=1:24 %运行约束 C=[C,0<=HS_char(1,i)<=250*HS_char_sign(1,i)]; C=[C,0<=HS_dischar(1,i)<=250*(1-HS_char_sign(1,i))]; end for i=1:24 %余量约束 C=[C,0<=EH(1,i)<=400]; end a=0.5; %这里进行4. 2. 3 GT 产热分配比例的影响 %各个机组约束 for i=1:24 C = [C,0<=P_GT(i)<=4000];%燃气轮机上下限约束 C = [C,0<=P_GB(i)<=1000];%燃气锅炉上下限约束 C = [C,0<=P_HP(i)<400];%热泵上下限约束 C = [C,0<=P_ORC(i)<=400];%ORC上下限约束 C = [C,P_GT(i)*h_GT*r_WHB*a<=P_WHB(i)<=P_GT(i)*h_GT*r_WHB*a];%余热回收分配公式,a为分配系数 C = [C,P_GT(i)*h_GT*r_ORC*(1-a)<= P_ORC(i)<=P_GT(i)*h_GT*r_ORC*(1-a)]; C = [C, 0<= B_grid(i)<= B_grid_sign*1500]; C = [C, 0<= S_grid(i)<=(1-B_grid_sign)*1500]; %外部电网联络线约束 end
3 程序结果
上述图为case2的出图结果,其他场景出图类型一致,不再重复粘贴。