请检查以下代码,验证能量转换系数的合理性:clc
clear
%% 综合能源系统包括:
% 电系统:风机、光伏、燃气轮机
% 热系统:余热锅炉、电锅炉、热泵、蓄热罐
% 冷系统:吸收式制冷机、电制冷机、热泵、蓄冰槽
%% 导入电、热、冷负荷数据
P_Load_e0 = [6150,5347,4737,4886,4960,4830,4998,6056,7004,9140,9938,10645,11331,11443,11499,11292,11212,11595,10822,9441,9092,7794,7174,6777];
P_Load_h0 = [5986,5952,6033,5722,5977,6060,5872,5815,5562,5424,5320,5124,4962,4986,4962,5019,5017,5179,5181,5305,5454,5643,5964,6033];
P_Load_c0 = [4626,4725,4947,4822,4977,5060,4872,4815,4662,4484,4290,4184,3992,3986,3923,4089,4017,4179,4261,4383,4458,4724,5012,5423];
% ========== 计算风机、光伏出力功率 ==========
% 光照辐射度
gz = [0;0;0;0;0.0708300000000000;0.170690000000000;0.325740000000000;0.380270000000000;0.340240000000000;0.453630000000000;0.855530000000000;0.742260000000000;0.666500000000000;0.699100000000000;0.535630000000000;0.227290000000000;0.179330000000000;0.0335400000000000;0;0;0;0;0;0];
P_pv_max = zeros(1,24);
for t=1:24
P_stc = 0.26; G_stc = 1; n = 0.9645; PV_k = 5000;
P_pv_max(t) = (P_stc * gz(t) / G_stc * n) * PV_k; % 光伏出力功率
end
% 风速
fs = [10.7391000000000;11.6160000000000;9.85170000000000;9.98270000000000;10.5166000000000;5.91910000000000;4.21130000000000;4.73580000000000;2.89860000000000;5.54320000000000;4.93960000000000;2.99680000000000;3.64480000000000;5.17060000000000;2.45990000000000;5.43100000000000;6.83090000000000;10.5836000000000;10.8847000000000;12.3629000000000;14.4617000000000;12.1296000000000;10.5531000000000;12.8199000000000];
P_wt_max = zeros(1,24);
for t=1:24
V_ci = 3; V_co = 25; V_ra = 11; Pwt_r = 10; WT_k = 50;
if fs(t) < V_ci || fs(t) > V_co
P_wt_max(t) = 0;
elseif fs(t) >= V_ci && fs(t) <= V_ra
P_wt_max(t) = Pwt_r * (fs(t) - V_ci) / (V_ra - V_ci) * WT_k;
else
P_wt_max(t) = 10 * WT_k;
end
end
% ========== 加载外部市场数据 ==========
% 常规能源市场价格(元/kWh)
C_buy_e = [0.30,0.32,0.33,0.35,0.35,0.34,0.36,1.16,1.19,1.14,1.16,1.15,0.62,0.73,0.70,0.64,0.71,0.65,1.17,1.12,1.11,1.12,0.34,0.28];
% 天然气价格数据(元/m3)
C_buy_gas = [2.58*ones(1,8),2.18*ones(1,14),2.58*ones(1,1),2.18*ones(1,1)];
%% 决策变量初始化
% ========== 需求响应初始化 ==========
P_Load_e = sdpvar(1,24,'full'); % 经过需求响应后实际的电负荷
P_Load_h = sdpvar(1,24,'full'); % 经过需求响应后实际的热负荷
P_Load_c = sdpvar(1,24,'full'); % 经过需求响应后实际的热负荷
P_e_cut = sdpvar(1,24,'full'); % 可削减电负荷
P_e_tra = sdpvar(1,24,'full'); % 可转移电负荷
P_h_DR = sdpvar(1,24,'full'); % 可削减热负荷
P_c_DR = sdpvar(1,24,'full'); % 可削减热负荷
% ========== 设备变量初始化 ==========
% 蓄电池
SOC_ESS = sdpvar(1,24,'full'); % 储电设备的储电余量
P_ESS_cha = sdpvar(1,24,'full'); % 储电设备的充电功率
P_ESS_dis = sdpvar(1,24,'full'); % 储电设备的放电功率
B_Ess_cha = binvar(1,24,'full'); % 储电设备的放电状态位,取1时为放电,0为未放电
B_Ess_dis = binvar(1,24,'full'); % 储电设备的充电状态位,取1时为充电,0为未充电
% 蓄热罐
SOC_HSS = sdpvar(1,24,'full'); % 储热设备的储热余量
P_HSS_cha = sdpvar(1,24,'full'); % 储热设备的充热功率
P_HSS_dis = sdpvar(1,24,'full'); % 储热设备的放热功率
B_Hss_cha = binvar(1,24,'full'); % 储热设备的放热状态位,取1时为放热,0为未放热
B_Hss_dis = binvar(1,24,'full'); % 储热设备的充热状态位,取1时为充热,0为未充热
% 蓄冰槽
SOC_CSS = sdpvar(1,24,'full'); % 储冷设备的储冷余量
P_CSS_cha = sdpvar(1,24,'full'); % 储冷设备的充冷功率
P_CSS_dis = sdpvar(1,24,'full'); % 储冷设备的放冷功率
B_Css_cha = binvar(1,24,'full'); % 储冷设备的放冷状态位,取1时为放冷,0为未放冷
B_Css_dis = binvar(1,24,'full'); % 储冷设备的充冷状态位,取1时为充冷,0为未充冷
% 风机、光伏
P_wt_e = sdpvar(1,24,'full'); % 风力的实际出力值
P_pv_e = sdpvar(1,24,'full'); % 光伏的实际出力值
% ========== CCHP系统部分 ==========
% 燃气轮机(GT)
P_g_GT = sdpvar(1,24,'full'); % 燃气轮机的天然气耗气量
P_GT_e = sdpvar(1,24,'full'); % 燃气轮机的实际电出力值
P_GT_fh = sdpvar(1,24,'full');% 燃气轮机的废热
% 余热锅炉(WB)
P_WB_h = sdpvar(1,24,'full'); % 余热锅炉的实际热出力值
P_fh_WB = sdpvar(1,24,'full'); % 余热锅炉吸收的废热
% 吸收式制冷机(AC)
P_AC_c = sdpvar(1,24,'full'); % 吸收式制冷机的实际冷出力值
P_fh_AC = sdpvar(1,24,'full'); % 吸收式制冷机吸收的废热
% 电锅炉部分
P_EB_h = sdpvar(1,24,'full');
P_e_EB = sdpvar(1,24,'full');
% 电制冷机部分
P_EC_c = sdpvar(1,24,'full');
P_e_EC = sdpvar(1,24,'full');
% 热泵部分
P_e_HP = sdpvar(1,24,'full');
P_HP_h = sdpvar(1,24,'full'); % 热泵制热出力
P_HP_c = sdpvar(1,24,'full'); % 热泵制冷出力
% 电力市场部分
P_buy_e = sdpvar(1,24,'full'); % 电力市场购电量
P_buy_g = sdpvar(1,24,'full'); % 购买的天然气量
%% 加载设备数据
% CCHP系统:燃气轮机、余热锅炉、吸收式制冷机
k_eff_CCHP_e = 0.38;
k_eff_CCHP_h = 0.46;
k_eff_CCHP_c = 0.72;
% 燃气轮机(GT)
%(1)燃气最大出力
P_GT_max = 9000;
%(2)燃气轮机热损率
rs_GT = 0.03;
% 余热锅炉(WB)
P_WB_max = 9000;
% 吸收式制冷机(AC)
P_AC_max = 7000;
% 电制冷机EC
%(1)电制冷机最大出力
P_EC_max = 4000;
%(2)电制冷机效率
k_COP_EC = 3.2;
% 电锅炉EB
%(1)电锅炉最大出力
P_EB_max = 4000;
%(2)电锅炉效率
k_eff_EB = 0.45;
% 热泵HP
P_HP_c_max = 4000;
P_HP_h_max = 4000;
k_COP_HP_c = 0.85;
k_COP_HP_h = 0.71;
% 蓄电池
k_eff_ess_cha = 0.9; % 蓄电池充电效率
k_eff_ess_dis = 0.9; % 蓄电池放电效率
SOC_ESS(1) = 0.5;
P_Ess_cha_max = 4800;
P_Ess_dis_max = 4800;
Eb_ess = 5000;
% 蓄热罐
k_eff_hss_cha = 0.95; % 蓄热罐充热效率
k_eff_hss_dis = 0.95; % 蓄热罐放热效率
SOC_HSS(1)=0.5;
P_Hss_cha_max = 4500;
P_Hss_dis_max = 4500;
Hb_ess = 5000;
% 冷储能
k_eff_css_cha = 0.95; % 蓄冰槽充冷效率
k_eff_css_dis = 0.95; % 蓄冰罐放冷效率
SOC_CSS(1) = 0.5;
P_Css_cha_max = 4500;
P_Css_dis_max = 4500;
Cb_ess = 5000;
%% 约束条件
Cons=[];
% 电、热、冷负荷需求响应部分
for t=1:24
Cons=[Cons,
P_Load_e(t)==P_Load_e0(t)-P_e_cut(t)-P_e_tra(t), % 电负荷功率平衡约束
P_Load_h(t)==P_Load_h0(t)-P_h_DR(t), % 热负荷功率平衡约束
P_Load_c(t)==P_Load_c0(t)-P_c_DR(t), % 冷负荷功率平衡约束
0 <=P_e_cut(t)<= 0.05*P_Load_e0(t), % 可削减电功率上下限约束
-0.1*P_Load_e0(t)<=P_e_tra(t)<=0.1*P_Load_e0(t), % 可转移电功率上、下限约束
-0.1*P_Load_h0(t)<=P_h_DR(t) <=0.1*P_Load_h0(t), % 可削减热功率上、下限约束
-0.1*P_Load_c0(t)<=P_c_DR(t) <=0.1*P_Load_c0(t)]; % 可削减热功率上、下限约束
end
Cons=[Cons,sum(P_e_tra)==0,]; % 转移的电负荷总量为0约束
Cons=[Cons,sum(P_h_DR)==0,]; % 转移的热负荷总量为0约束
Cons=[Cons,sum(P_c_DR)==0,]; % 转移的冷负荷总量为0约束
% ========== 设备约束条件部分 ==========
% 1.CCHP(冷热电三联供)
%(1)燃气轮机GT
% 最大出力约束
for t=1:24
Cons=[Cons,0<=P_GT_e(t)<=P_GT_max,
P_GT_e(t)==P_g_GT(t)*k_eff_CCHP_e*9.88,
P_GT_fh(t)==P_GT_e(t)*(1-k_eff_CCHP_e-rs_GT)/k_eff_CCHP_e];
end
% 机组爬坡约束
for t=1:23
Cons=[Cons,-0.2*2000<=P_GT_e(t+1)-P_GT_e(t)<=0.2*2000];
end
%(2)余热锅炉WB
% 最大出力约束
for t=1:24
Cons=[Cons,P_WB_h(t)==P_fh_WB(t)*k_eff_CCHP_h,0<=P_WB_h(t)<=P_WB_max,]
end
% 机组爬坡约束
Cons=[Cons,-0.2*1000 <=P_WB_h(2:24)-P_WB_h(1:23)<=0.2*1000];
%(3)吸收式制冷机AC
for t=1:24
Cons=[Cons, 0<=P_AC_c(t)<=P_AC_max,
P_AC_c(t)==P_fh_AC(t)*k_eff_CCHP_c];
end
% CCHP废气约束
for t=1:24
Cons=[Cons,P_fh_WB(t)+0.56*P_fh_AC(t)<=P_GT_fh(t)];
end
% 蓄电池约束条件
% 1)蓄电池的约束条件:蓄电池功率约束在[min,max]内,且统一时刻只允许充电、放电、不充不放的三种状态中的一种
Cons=[Cons,P_ESS_cha>=0,P_ESS_cha<=P_Ess_cha_max*B_Ess_cha,
0<=P_ESS_dis,P_ESS_dis<=P_Ess_dis_max*B_Ess_dis,
B_Ess_cha+B_Ess_dis<=1]; % 充、放电状态唯一
% 2)蓄电池的约束条件:蓄电池功率与容量耦合约束,始末时刻负荷电量相等约束,与容量被限制在[min,max]
for i=1:23
Cons=[Cons,SOC_ESS(i+1)==SOC_ESS(i)+(P_ESS_cha(i)*k_eff_ess_cha-P_ESS_dis(i)/k_eff_ess_dis)/Eb_ess];
end
Cons=[Cons,SOC_ESS(24)==SOC_ESS(1),SOC_ESS>=0.2,SOC_ESS<=0.9];
% 蓄热罐约束条件
% 1)蓄热罐的约束条件:蓄热罐功率约束在[min,max]内,且统一时刻只允许充热、放热、不充不放的三种状态中的一种
Cons=[Cons,P_HSS_cha>=0,P_HSS_cha<=P_Hss_cha_max*B_Hss_cha,
P_HSS_dis>=0,P_HSS_dis<=P_Hss_dis_max*B_Hss_dis,
B_Hss_cha+B_Hss_dis<=1]; % 充、放热状态唯一
% 2)蓄热罐的约束条件:蓄热罐功率与容量耦合约束,始末时刻负荷电量相等约束,与容量被限制在[min,max]
for i=1:23
Cons=[Cons,SOC_HSS(i+1)==SOC_HSS(i)+(P_HSS_cha(i)*k_eff_hss_cha-P_HSS_dis(i)/k_eff_hss_dis)/Hb_ess];
end
Cons=[Cons,SOC_HSS(24)==SOC_HSS(1),SOC_HSS>=0.2,SOC_HSS<=0.9];
% 蓄冰槽约束条件
% 1)蓄冰槽的约束条件:蓄冰槽功率约束在[min,max]内,且统一时刻只允许充冷、放冷、不充不放的三种状态中的一种
Cons=[Cons,P_CSS_cha>=0,P_CSS_cha<=P_Css_cha_max*B_Css_cha,
P_CSS_dis>=0,P_CSS_dis<=P_Css_dis_max*B_Css_dis,
B_Css_cha+B_Css_dis<=1]; % 充、放冷状态唯一
% 2)蓄冰槽的约束条件:蓄冰槽功率与容量耦合约束,始末时刻负荷电量相等约束,与容量被限制在[min,max]
for i=1:23
Cons=[Cons,SOC_CSS(i+1)==SOC_CSS(i)+(P_CSS_cha(i)*k_eff_css_cha-P_CSS_dis(i)/k_eff_css_dis)/Cb_ess];
end
Cons=[Cons,SOC_CSS(24)==SOC_CSS(1),SOC_CSS>=0.2,SOC_CSS<=0.9];
% 电制冷机EC约束
Cons=[Cons,P_EC_c==P_e_EC*k_COP_EC,0<=P_EC_c<=P_EC_max];
% 电锅炉EB约束
Cons=[Cons,P_EB_h==P_e_EB*k_eff_EB,0<=P_EB_h<=P_EB_max];
% 热泵HP约束条件
Cons=[Cons,P_HP_c==P_e_HP*k_COP_HP_c,
P_HP_h==P_e_HP*k_COP_HP_h,
0<=P_HP_c,P_HP_c<=P_HP_c_max,
0<=P_HP_h,P_HP_h<=P_HP_h_max];
% 光伏、风机约束条件
for t=1:24
Cons=[Cons,
0<=P_wt_e(t)<=P_wt_max(t),
0<=P_pv_e(t)<=P_pv_max(t)];
end
% 电力购买约束条件
for t=1:24
Cons=[Cons,P_buy_e(t)>=0,P_buy_e(t)<=10000];
end
% 天然气购买约束条件
for t=1:24
Cons=[Cons, 0<=P_g_GT(t)<=6000];
end
%% 阶梯碳交易成本
% 碳排放权配额模型
E_e_buy=0.728*sum(P_buy_e); % 购电配额
E_CCHP=(sum(P_GT_e)/(0.375*9.88))*0.385; % CCHP配额
E_IES=E_e_buy+E_CCHP; % IES总碳排放配额
% 实际碳排放模型
E_e_buy_a=1.08*sum(P_buy_e);
E_CCHP_a=7.234*(sum(P_GT_e)/(0.375*9.88));
E_IES_a=E_e_buy_a+E_CCHP_a;
E=E_IES_a-E_IES; % 实际IES总碳排放
% 阶梯碳交易成本(分段线性化)
E_v=sdpvar(1,7) % 每段区间内的长度,分为5段,每段长度是2000
lamda=0.250; % 碳交易基价
Cons=[Cons,
E==sum(E_v), % 总长度等于E
0<=E_v(1:6)<=2000, % 除了最后一段,每段区间长度小于等于2000
0<=E_v(7)];
% 碳交易成本
C_CO2=0;
for v=1:7
C_CO2=C_CO2+(lamda+(v-1)*0.25*lamda)*E_v(v);
end
%% 电平衡约束、热平衡约束、冷平衡约束
for t=1:24
Cons=[Cons,P_wt_e(t)+P_pv_e(t)+P_GT_e(t)+P_ESS_dis(t)+P_buy_e(t)==P_Load_e(t)+P_ESS_cha(t)+P_e_EB(t)+P_e_EC(t)+P_e_HP(t), % 电平衡
P_WB_h(t)+P_HSS_dis(t)+P_EB_h(t)+P_HP_h(t)==P_Load_h(t)+P_HSS_cha(t), % 热平衡
P_AC_c(t)+P_CSS_dis(t)+P_HP_c(t)+P_EC_c(t)==P_Load_c(t)+P_CSS_cha(t), % 冷平衡
P_buy_g(t)==P_g_GT(t)]
end
%% 目标函数(购能成本+运行成本+响应成本+环境成本)
Cost_f1 = sum(P_buy_e .* C_buy_e);
Cost_f2 = sum(P_buy_g .* C_buy_gas);
Cost_f3 = sum(P_GT_e)*0.04+sum(P_WB_h)*0.025+sum(P_AC_c)*0.025+0.02*sum(P_EC_c)+0.02*sum(P_EB_h)+0.026*sum(P_e_HP)+sum(P_wt_max)*0.016+sum(P_pv_max)*0.018+sum(P_HSS_cha)*0.016+sum(P_HSS_dis)*0.016+sum(P_CSS_cha)*0.017+sum(P_CSS_dis)*0.017+sum(P_ESS_cha)*0.018+sum(P_ESS_dis)*0.018;
Cost_f4 = 0.3*sum(abs(P_e_tra))+0.3*sum(abs(P_e_cut))+ +0.016*sum(abs(P_h_DR))+0.016*sum(abs(P_c_DR));
Cost_f5 = C_CO2;
F_all = Cost_f1+Cost_f2+Cost_f3+Cost_f4+Cost_f5;
%% 求解器相关配置
ops=sdpsettings('solver','cplex','verbose',0,'showprogress',0);
ops.cplex.mip.tolerances.mipgap=1e-6;
% 进行求解计算:
sol=optimize(Cons,F_all,ops);
if sol.problem==0
disp('>>求解成功!')
else
disp('>>求解失败,失败原因:')
disp(sol.info)
end
% 输出求解结果:
F_all = value(F_all);
display(['>>>园区综合能源系统的全局最优规划值为 : ', num2str(F_all)]);
Cost_f1=value(Cost_f1);
display(['1、园区综合能源系统的购电成本为 : ', num2str(Cost_f1)]);
Cost_f2=value(Cost_f2);
display(['2、园区综合能源系统的购气成本为 : ', num2str(Cost_f2)]);
Cost_f3=value(Cost_f3);
display(['3、园区综合能源系统的运维成本为 : ', num2str(Cost_f3)]);
Cost_f4=value(Cost_f4);
display(['4、园区综合能源系统的需求成本为 : ', num2str(Cost_f4)]);
Cost_f5=value(Cost_f5);
display(['5、园区综合能源系统的环境成本为 : ', num2str(Cost_f5)]);
最新发布