基于EFC、ELCC定义下的风电可信容量计算matlab程序
- 格式:docx
- 大小:14.14 KB
- 文档页数:5
%% 4.1计算风电等值容量(EFC定义下)
%相关可靠性计算方法参见百度文库“含风电的发电系统可靠性评估(MC法)matlab程序”
clear
load process
loadresultwind
load result0
% 计算EFC定义下风电等值容量
P0=0;%设定初值Pe下限为0
R0=EENS2;
P=[];%设定变量P、R存储每次迭代后Pe和对应的可靠性指标
R=[];
% 计算初值P(1)的可靠性指标,P(1)对应等值容量上限,和风电容量相同
P(1)=Generator.Wind.Pr*N;
Generator.Norm=[Generator.Norm;[P(1),0]];%第12行【15 0】是EFC定义下的理想机组
I=0;
sumDNS=0;
DNS=zeros(100000,1);
K=rand(100000,12);%1-11常规 12理想机组
for k1=1:100000
Pout=zeros(12,1);
%得到一次抽样常规机组状态
fori=1:12
if K(k1,i)>Generator.Norm(i,2)
Pout(i)=Generator.Norm(i,1);
else
Pout(i)=0;
end
end
sumPout=sum(Pout);%发电系统出力
% 统计系统状态参数
% 持续峰荷185MW
RBTSload=185;
DNS(k1)=max([0;RBTSload-sumPout]);
if DNS(k1)>0
I=I+1; %I用来记录发生却负荷的次数
sumDNS=sumDNS+DNS(k1);
end
end
% 计算指标 EENS=sumDNS/100000*8760;
R(1)=EENS;
% 以下进行可信容量的搜索(弦截法)
g=1;
deta=10;
while abs(EENS1-R(g))>=deta
P(g+1)=(EENS1-R0)*P(g)/(R(g)-R0);
Generator.Norm=[Generator.Norm(1:11,:);[P(g+1),0]];
% 重复进行含理想机组的可靠性评估
I=0;
sumDNS=0;
DNS=zeros(100000,1);
K=rand(100000,12);%1-11常规 12理想机组
for k1=1:100000
Pout=zeros(12,1);
%得到一次抽样常规机组状态
fori=1:12
if K(k1,i)>Generator.Norm(i,2)
Pout(i)=Generator.Norm(i,1);
else
Pout(i)=0;
end
end
sumPout=sum(Pout);%发电系统出力
% 统计系统状态参数
% 持续峰荷185MW
RBTSload=185;
DNS(k1)=max([0;RBTSload-sumPout]);
if DNS(k1)>0
I=I+1; %I用来记录发生却负荷的次数
sumDNS=sumDNS+DNS(k1);
end
end
EENS=sumDNS/100000*8760;
R(g+1)=EENS;
g=g+1;
end
Peq=P(g);
rate_credict=Peq/15; disp('风电等值容量');
disp(Peq);
disp('风电容量可信度');
disp(rate_credict);
resultEFC.Peq=Peq;
resultEFC.rate_credict=rate_credict;
save('result_WindCredict.mat','resultEFC')
%% 4.2计算风电可信容量(ELCC定义下)
clear
load result0
load process
loadresultwind
D=[];
R=[];
% 计算200MW负荷对应的可靠性指标R1
I=0;
sumDNS=0;
DNS=zeros(200000,1);
K=rand(200000,12);%1-11常规 12风电
pwind=zeros(200000,1);
for k=1:200000
Pout=zeros(12,1);
%得到一次抽样常规机组状态
fori=1:11
if K(k,i)>Generator.Norm(i,2)
Pout(i)=Generator.Norm(i,1);
else
Pout(i)=0;
end
end
%得到一次抽样风电场的出力
t=0;
fori=1:M
t=t+StateFORWeibull6(i,2);
if K(k,12)-t>=0
continue
else
Pout(12)=StateFORWeibull6(i,1);
pwind(k)= Pout(12);
break end
end
sumPout=sum(Pout);%发电系统出力
% 统计系统状态参数
% 持续峰荷185MW
D(1)=200;
RBTSload=D(1);
DNS(k)=max([0;RBTSload-sumPout]);
if DNS(k)>0
I=I+1; %I用来记录发生却负荷的次数
sumDNS=sumDNS+DNS(k);
end
end
EENS=sumDNS/200000*8760;
R(1)=EENS;
% 计算ELCC定义下的可信容量
g=1;
deta=10;
while abs(R(g)-EENS2)>deta
D(g+1)=(EENS2-EENS1)/(R(g)-EENS1)*(D(g)-185)+185;
I=0; %I用来记录发生却负荷的次数
sumDNS=0;
DNS=zeros(200000,1);
K=rand(200000,12);%1-11常规 12风电
pwind=zeros(200000,1);
for k=1:200000
Pout=zeros(12,1);
%得到一次抽样常规机组状态
fori=1:11
if K(k,i)>Generator.Norm(i,2)
Pout(i)=Generator.Norm(i,1);
else
Pout(i)=0;
end
end
%得到一次抽样风电场的出力
t=0;
fori=1:M t=t+StateFORWeibull6(i,2);
if K(k,12)-t>=0
continue
else
Pout(12)=StateFORWeibull6(i,1);
pwind(k)= Pout(12);
break
end
end
sumPout=sum(Pout);%发电系统出力
% 统计系统状态参数
% 持续峰荷185MW
RBTSload=D(g+1);
DNS(k)=max([0;RBTSload-sumPout]);
if DNS(k)>0
I=I+1; %I用来记录发生却负荷的次数
sumDNS=sumDNS+DNS(k);
end
end
EENS=sumDNS/200000*8760;
R(g+1)=EENS;
g=g+1;
end
Deq=D(g)-185;
rate_credict=Deq/15;
disp('风电等值容量');
disp(Deq);
disp('风电容量可信度');
disp(rate_credict);
resultELCC.Deq=Deq;
resultELCC.rate_credict=rate_credict;
save('result_WindCredict.mat','resultELCC','-append')