含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度
关键词:冰蓄冷空调 CCHP-MG 多时间尺度优化 冷热电联供
参考文档:《含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度》完全复现
仿真平台:MATLAB yalmip+cplex
主要内容:代码主要做的是一个含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度模型,研究冰蓄冷空调的不同运行方式对优化调度的影响。日前计划中通过多场景描述可再生能源的不确定性,侧重于一个运行优化周期内CCHP-MG的经济运行;日内调度基于日前计划方案,根据冷热电在不同时间尺度上的相关性和互补性,提出考虑冷热负荷变化的双层滚动优化平抑模型,求解各联供设备的调整出力。
% 冷热联合调度
%24个时段
H_n=0.98;
a1=3;%CHP
a2=1;%Qa
a3=0.8;%H
a4=1;%pEH
ahead_Phot(1,1:24)=Phot(1,1:24);
for i=1:24
if Peh(1,i)>0;
Upeh(1,i)=1;
else
Upeh(1,i)=0;
end
if H(1,i)>0
Uh(1,i)=1;
else
Uh(1,i)=0;
end
end
%24个时段
for i=1:24
if i>=7&&i<=24
Uair(1,i)=0;
end
end
ahead_Pcool(1,1:24)=Pcool(1,1:24);
%冷调整
% ahead_air(1,1:24)=air(1,1:24);
ahead_Qa(1,1:24)=Qa(1,1:24);
ahead_P(1,1:24)=CHP2(1,1:24);%机组2
ahead_Uair(1,1:1:24)=Uair(1,1:24);%电空调运行状态
ahead_Uqa(1,1:1:24)=Uqa(1,1:24);%空调运行状态
ahead_UP(1,1:1:24)=UP(1,1:24);%机组2运行状态
%冷调整
ahead_Peh(1,1:24)=Peh(1,1:24);
ahead_H(1,1:24)=H(1,1:24);
ahead_P(1,1:24)=CHP2(1,1:24);%机组2
ahead_Upeh(1,1:1:24)=Upeh(1,1:24);%电空调运行状态
ahead_Uh(1,1:1:24)=Uh(1,1:24);%空调运行状态
ahead_UP(1,1:1:24)=UP(1,1:24);%机组2运行状态
in_Phot=[1761.17958244146,1931.65990788515,1953.00477468475,1786.24206052847,1650.18077549779,1769.30734937107,1777.68579736516,1708.35877738027,1794.91836340735,1756.01486054762,1758.77304765643,1487.76648955772,1553.56796402631,1411.17531943374,1454.93316015657,1408.12676340638,1585.26625587444,1544.34286025911,1566.71738397612,1901.15796560962,1961.89184039815,1821.01567269546,1981.51603298454,1874.85919967141];
in_Pcool=[237.830495106222;238.594402523506;173.317789345471;215.735847668562;158.712757209158;253.595380517192;448.233131862804;498.925560903918;606.606945499653;826.13199006337;1022.14235515329;1088.19612878573;1208.98715345546;784.07521297430;832.05706141356;839.783664273780;761.345819100683;720.085176608632;560.534563077819;660.863939320159;451.534247973092;558.669842183285;215.258643184284;243.487151224426]';
buy_Price=[0.35 0.69 0.86];%谷/峰 购电价
aF=[2.64 2.7 0.605]';%机组参数
bF=[66.2 50 12]';
aH=[1.36 1.4 0.308]';
bH=[30.2 30.2 11.1]';
Cgas=0.6;
for i=1:24
min_hot(1,i)=in_Phot(1,i)-ahead_Phot(1,i);%热偏差;
end
for i=1:24
min_cool(1,i)=in_Pcool(1,i)-ahead_Pcool(1,i);%冷偏差;
end
%%参与调整设备(调整量)(热)
mpeh=sdpvar(1,24,'full');%电空调
mP2=sdpvar(1,24,'full');%机组2
mH=sdpvar(1,24,'full');%空调模式
%%参与调整设备(调整量)(冷)
mP=sdpvar(1,24,'full');%机组2
mQa=sdpvar(1,24,'full');%空调模式
mH1=sdpvar(1,24,'full');%燃气锅炉
%%目标函数
moneypeh=0;
moneyP=0;
moneyH=0;
moneyQa=0;
for i=1:24
if i<=6%%谷
moneypeh=moneypeh+a4.*abs(mpeh(1,i));
moneyP=moneyP+Cgas*aF(1)*(CHP2(1,i)+mP2(1,i)+mP(1,i))+abs(mP2(1,i))*a1+abs(mP(1,i)*a1);
moneyH=moneyH+Cgas*(H(1,i)+mH(1,i)+mH1(1,i))/H_n+abs(mH1(1,i)*a3)+abs(mH(1,i)*a3);
moneyQa=moneyQa+abs(mQa(1,i))*a2;
jq1(i)=a4.*abs(mpeh(1,i))+Cgas*aF(1)*(CHP2(1,i)+mP2(1,i)+mP(1,i))+abs(mP2(1,i))*a1+abs(mP(1,i)*a1)+Cgas*(H(1,i)+mH(1,i)+mH1(1,i))/H_n+abs(mH1(1,i)*a3)+abs(mH(1,i)*a3)+abs(mQa(1,i))*a2;
elseif i<=11&&i>=7%峰
moneypeh=moneypeh+a4.*abs(mpeh(1,i))*100;
moneyP=moneyP+Cgas*aF(1)*(CHP2(1,i)+mP2(1,i)+mP(1,i))+abs(mP2(1,i))*a1+abs(mP(1,i)*a1);
moneyH=moneyH+Cgas*(H(1,i)+mH(1,i)+mH1(1,i))/H_n+abs(mH1(1,i)*a3)+abs(mH(1,i)*a3);
moneyQa=moneyQa+abs(mQa(1,i))*a2*100;
jq1(i)=a4.*abs(mpeh(1,i))*100+Cgas*aF(1)*(CHP2(1,i)+mP2(1,i)+mP(1,i))+abs(mP2(1,i))*a1+abs(mP(1,i)*a1)+Cgas*(H(1,i)+mH(1,i)+mH1(1,i))/H_n+abs(mH1(1,i)*a3)+abs(mH(1,i)*a3)+abs(mQa(1,i))*a2;
elseif i>=12&&i<=17%平
moneypeh=moneypeh+a4.*abs(mpeh(1,i))*100;
moneyP=moneyP+Cgas*aF(1)*(CHP2(1,i)+mP2(1,i)+mP(1,i))+abs(mP2(1,i))*a1+abs(mP(1,i)*a1);
moneyH=moneyH+Cgas*(H(1,i)+mH(1,i)+mH1(1,i))/H_n+abs(mH1(1,i)*a3)+abs(mH(1,i)*a3);
moneyQa=moneyQa+abs(mQa(1,i))*a2*100;
jq1(i)=a4.*abs(mpeh(1,i))*100+Cgas*aF(1)*(CHP2(1,i)+mP2(1,i)+mP(1,i))+abs(mP2(1,i))*a1+abs(mP(1,i)*a1)+Cgas*(H(1,i)+mH(1,i)+mH1(1,i))/H_n+abs(mH1(1,i)*a3)+abs(mH(1,i)*a3)+abs(mQa(1,i))*a2;
elseif i>=18&&i<=22%峰
moneypeh=moneypeh+a4.*abs(mpeh(1,i))*100;
moneyP=moneyP+Cgas*aF(1)*(CHP2(1,i)+mP2(1,i)+mP(1,i))+abs(mP2(1,i))*a1+abs(mP(1,i)*a1);
moneyH=moneyH+Cgas*(H(1,i)+mH(1,i)+mH1(1,i))/H_n+abs(mH1(1,i)*a3)+abs(mH(1,i)*a3);
moneyQa=moneyQa+abs(mQa(1,i))*a2*100;
jq1(i)=a4.*abs(mpeh(1,i))*100+Cgas*aF(1)*(CHP2(1,i)+mP2(1,i)+mP(1,i))+abs(mP2(1,i))*a1+abs(mP(1,i)*a1)+Cgas*(H(1,i)+mH(1,i)+mH1(1,i))/H_n+abs(mH1(1,i)*a3)+abs(mH(1,i)*a3)+abs(mQa(1,i))*a2;
else i>=23&&i<=24%谷
moneypeh=moneypeh+a4.*abs(mpeh(1,i))+abs(mP2(1,i))*a1+abs(mP(1,i)*a1);
moneyP=moneyP+aF(1)*(CHP2(1,i)+mP2(1,i)+mP(1,i));
moneyH=moneyH+Cgas*(H(1,i)+mH(1,i)+mH1(1,i))/H_n+abs(mH1(1,i)*a3)+abs(mH(1,i)*a3);
moneyQa=moneyQa+abs(mQa(1,i))*a2;
jq1(i)=a4.*abs(mpeh(1,i))+abs(mP2(1,i))*a1+abs(mP(1,i)*a1)+Cgas*aF(1)*(CHP2(1,i)+mP2(1,i)+mP(1,i))+abs(mP2(1,i))*a1+abs(mP(1,i)*a1)+Cgas*(H(1,i)+mH(1,i)+mH1(1,i))/H_n+abs(mH1(1,i)*a3)+abs(mH(1,i)*a3)+abs(mQa(1,i))*a2;
end
end
%%%%%%%%%%%%%%%%%%%%%%%
%约束条件
constraints=[];
for i=1:24%热平衡调度策略
if min_hot(1,i)<0 %供给大于需求
if i<=6%谷
constraints=[constraints,mH(1,i)<=0];
constraints=[constraints,mpeh(1,i)==0];
constraints=[constraints,mP2(1,i)<=0];
elseif i<=22&&i>=7%峰
constraints=[constraints,mH(1,i)<=0];
constraints=[constraints,mP2(1,i)==0];
constraints=[constraints,mpeh(1,i)<=0];
elseif i>=23&&i<=24%谷
constraints=[constraints,mH(1,i)<=0];
constraints=[constraints,mpeh(1,i)==0];
constraints=[constraints,mP2(1,i)<=0];
end
else
if i<=6%谷
constraints=[constraints,mH(1,i)>=0];
constraints=[constraints,mpeh(1,i)>=0];
constraints=[constraints,mP2(1,i)==0];
elseif i<=22&&i>=7%峰
constraints=[constraints,mH(1,i)>=0];
constraints=[constraints,mP2(1,i)>=0];
constraints=[constraints,mpeh(1,i)==0];
elseif i>=23&&i<=24%谷
constraints=[constraints,mH(1,i)>=0];
constraints=[constraints,mpeh(1,i)>=0];
constraints=[constraints,mP2(1,i)==0];
end
end
end