1主要内容
程序主要复现《计及调度经济性的光热电站储热容量配置方法》,综合考虑火电机组发电成本、光热发电并网消纳的环境效益和运行维护成本、系统旋转备用成本等调度经济性因素,求解光热电站调度日的最佳储热容量,并在此基础上探究储热装置配置成本与调度经济性的平衡点,确定光热电站储热容量配置。最后,基于MATLAB+Yalmip得到光热电站数据,通过IEEE-30节点系统验证所提方法的可行性与有效性。
源程序仅采用微网形式,未考虑30节点系统,在网上误导了很多同学,为了有效展示在IEEE-30节点系统中运行情况,在原程序中增加节点系统,将原微网扩展为30节点系统,并采用直流潮流方式,确实将原文献模型进行了复现,下载链接中附有两部分程序,一个是原基于微网的光热电站储热容量配置程序,一个是基于IEEE30节点系统光热电站储热容量配置程序,方便同学对照学习,很快上手微网转带节点电网的编程方式!
2部分代码
%% 参数定义
T=24; %调度时刻
yita_c = 0.9; %热储能充热效率
yita_f = 0.9; %热储能放热效率
yita_d = 0.4; %储热系统热电转换效率
N_i=6; %火电机组台数
a=[0.2625 1.224 4.375 0.5838 1.75 1.75];%机组燃料成本系数
b=[140 122.5 70 227.5 210 210];
S=[150 141 121 133 111 141]; %启停成本
P_max=[100 80 50 35 30 40]; %火电机组出力上限
P_min=[53 41 26 18 16 21]; %火电机组出力下限
k_G=230; %环境效益系数230元/MW
alpha=157; %正旋转备用系数
beta=134; %负旋转备用系数
gama=132; %事故旋转备用系数
k_s=120; %集热装置供热发电的成本系数
k_Ts=100; %储热装置供热发电的成本系数
c=420000; %单位储热容量配置成本
mpc=case30;
l=sum(mpc.bus(:,3));
A=[0.95 0.965 0.925 0.945 0.965 0.976 0.953 0.942 0.934 0.943 0.934 0.98 0.96 0.93 0.94 0.967 0.935 0.95 0.98 0.99 0.97 0.94 0.95 0.97];
load = A*l;
% load=[220 230 230 230 198 220 208 250 280 303 300 259 255 230 235 253 290 308 307 280 274 260 252 238];
%% 变量定义
P_cspr=[10.05 10.05 10.05 10.05 10.89 10.05 10.89 10.05 84.59 386.10 427.97 383.58 427.14 505.03 355.11 11.73 87.94 10.89 10.05 10.05 10.05 10.05 10.05 10.05]; %CSP集热装置吸收热功率
P_SFr=sdpvar(1,T,'full'); %集热装置直接发电的热功率
P_HT=sdpvar(1,T,'full'); %集热装置供给储热系统的热功率
P_SFd=sdpvar(1,T,'full'); %集热装置输出电功率
P_TH=sdpvar(1,T,'full'); %储热装置传递至传热流体的热功率
P_TSc=sdpvar(1,T,'full'); %储热装置的储热功率
P_TSf=sdpvar(1,T,'full'); %储热装置的放热功率
u_TSc=binvar(1,T,'full'); %储热装置的储热状态
u_TSf=binvar(1,T,'full'); %储热装置的放热状态
P_TSdf=sdpvar(1,T,'full'); %储热装置输出电功率
C_TSr=sdpvar(1,T,'full'); %储热量
P_G=sdpvar(1,T,'full'); %光热电站的输出功率
P=sdpvar(N_i,T,'full'); %火电机组功率
u=binvar(N_i,T,'full'); %火电机组运行状态
U=sdpvar(N_i,T,'full'); %火电机组正旋转备用容量
D=sdpvar(N_i,T,'full'); %火电机组负旋转备用容量
R=sdpvar(N_i,T,'full'); %火电机组事故旋转备用容量
%% 光热电站运行模型
C=[];
%集热装置运行特性
C=[C,P_SFr+P_HT == P_cspr];
% C=[C,P_SFr>=0];
% C=[C,P_HT>=0];
%储热装置运行特性
C=[C,P_TSc==yita_c*P_HT, P_TSf==P_TH/yita_f];
%光热电站发电
C=[C,P_G==yita_d*(P_cspr-P_TSc/yita_c+yita_f*P_TSf)];
C=[C,P_SFd==yita_d*P_SFr];
C=[C,P_TSdf==(1-0.03)*yita_d*P_TSf];
%% 约束条件
%功率平衡约束
C=[C,sum(P)+P_G==load];
% 火电机组约束
for n=1:1:N_i
for t=1:1:T
C=[C,0<=P(n,t)<=P_max(n)]; %火电机组出力约束
end
end
for t=1:1:T-1
C=[C,-20<=P(:,t+1)-P(:,t)<=30]; %火电爬坡约束
end
for n=1:1:N_i
for t=2:1:T
C=[C,implies(u(n,t-1)==0&u(n,t)==1,P(n,t)==P_min(n))];
end
for t=1:1:T-1 %火电机组启停时刻出力约束
C=[C,implies(u(n,t+1)==0&u(n,t)==1,P(n,t)==P_min(n))];
end
end
for n=1:1:N_i
for t=1:1:T
C=[C,U(n,t)==min(P_max(n)-P(n,t),30)]; %火电机组正旋转备用容量约束
C=[C,0.05*load(t)<=U(n,t)];
C=[C,D(n,t)==min(P(n,t)-0,20)]; %火电机组负旋转备用容量约束
C=[C,0.05*load(t)<=D(n,t)];
C=[C,0.05*max(load)<=R(n,t)<=0.1*max(load)] %%%事故备用容量约束
end
end
%%%%%%光热电站出力约束%%%%%%%
C=[C,0<=P_G<=100]; %光热电站出力约束
for t=2:1:T
C=[C,-20<=P_G(t)-P_G(t-1)<=30]; %爬坡约束
end
%%%%%光热电站储热约束%%%%%%
for t=1:1:T
C=[C,0<=C_TSr(t)<=1000];
C=[C,0<=P_TSc(t)<=u_TSc(t)*500];
C=[C,0<=P_TSf(t)<=u_TSf(t)*500];
C=[C,u_TSc(t)+u_TSf(t)<=1];
end
for t=1:1:T-1
C=[C,C_TSr(t+1)==C_TSr(t)+P_TSc(t)-P_TSf(t)]; %储热装置储热量约束
end
C=[C,C_TSr(1)==C_TSr(24)];
%% 目标函数
%%%%火电机组发电成本%%%%%
e1=0;
e2=0;
for n=1:1:N_i
for t=1:1:T
e1=e1+a(n)*P(n,t)^2+b(n)*P(n,t);
end
for t=2:1:T
e2=e2+u(n,t)*(1-u(n,t-1))*S(n);
end
end
E1=e1+e2;
%%%%%光热发电环境效益%%%%
E2=0;
E2=k_G*sum(P_G);
%%%%%旋转备用成本%%%%%%
E3=0;
for n=1:1:N_i
for t=1:1:T
E3=E3+alpha*U(n,t)+beta*D(n,t)+gama*R(n,t);
end
end
%%%%%运行维护费用%%%%%%
E4=0;
E4=sum(k_s*P_SFd+k_Ts*P_TSdf);
%%%%储能容量配置成本%%%%%
F=0;
C_set=max(C_TSr) ; %储能配置容量
F=c*C_set;
%%%%%总费用
E=(E1-E2+E3+E4)*365;
f=F+E;
3程序结果
微网模型结果
IEEE30节点模型结果
两种模型下除了设备出力结果图存在差异外,配置结果也存在差异:
1.微网模型:最 优 热 储 能 容 量 为 886.437 M W h
2.IEEE30节点系统模型:最 优 热 储 能 容 量 为 896.437 M W h
4下载链接
扫码或阅读原文即可跳转程序页面:
想了解更多程序?按照下面教程查看程序目录!