资源描述
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。
实验三: 发电系统裕度表生成及可靠性指标计算
clear;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%形成第一台发电机组停运表%%%%%%%%%%%%%%%%%%%%%%%%%%
C1=input('请输入第一台发电机的容量:C1=');
q1=input('请输入第一台发电机的强迫停运率:q1=');
t=input('请输入发电机的平均修复时间:t=');
DX=input('请输入所设置的计算步长:DX=');
Na=C1/DX;AF=zeros(Na+1,6);ui=1/t;
for i=0:Na
j=i+1;
AF(j,1)=i;
end
for i=0:Na
j=i+1;
AF(j,2)= AF(j,1)*DX;
end
for i=0:Na
j=i+1;
if AF(j,2)<=0
AF(j,5)=1-q1;
AF(j,4)=0;
else if AF(j,2)>=C1
AF(j,5)=q1;
AF(j,4)=q1*ui;
else
AF(j,5)=0;
AF(j,4)=q1*ui;
end
end
end
for i=0:Na
sum=0;
for j=i:Na
j=j+1;
sum=sum+AF(j,5);
end
AF(i+1,3)=sum;
end
for i=0:Na
if i~=Na
AF(i+1,6)=AF(i+1,4)-AF(i+2,4);
else
AF(i+1,6)=AF(i+1,4);
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%形成第二台发电机组停运表%%%%%%%%%%%%%%%%%%%%%%%%%%
C2=input('请输入第二台发电机的容量:C2=');
q2=input('请输入第二台发电机的强迫停运率:q2=');
Nb=C2/DX;
BF=zeros(Nb+1,5);
for i=0:Nb
BF(i+1,1)=i;
end
for i=0:Nb
BF(i+1,2)= BF(i+1,1)*DX;
end
for i=0:Nb
if BF(i+1,2)<=0
BF(i+1,5)=1-q2;
BF(i+1,4)=0;
elseif BF(i+1,2)>=C2
BF(i+1,5)=q2;
BF(i+1,4)=q2*ui;
else
BF(i+1,5)=0;
BF(i+1,4)=q2*ui;
end
end
for i=0:Nb
sum=0;
for j=i:Nb
sum=sum+BF(j+1,5);
end
BF(i+1,3)=sum;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%第一台和第二台发电机并联后的停运表%%%%%%%%%%%%%%%%%%%
Nd=Na+Nb;
DF=zeros(Nd+1,5);
for i=0:Nd
DF(i+1,1)=i;
DF(i+1,2)=DF(i+1,1)*DX;
end
for k=0:Nd
for i=0:k
if k<=Na
DF(k+1,5)=AF(i+1,5)*BF(k+1-i,5)+DF(k+1,5);
else
sum=0;
for i=k-Nb:Na
sum=AF(i+1,5)*BF(k+1-i,5)+sum;
end
DF(k+1,5)=sum;
end
end
end
for k=0:Nd
for i=0:Na
if k<=Na
if k+1-i>0
DF(k+1,4)=AF(i+1,5)*BF(k+1-i,4)+AF(i+1,6)*BF(k+1-i,3)+DF(k+1,4);
else
DF(k+1,4)=AF(i+1,6)+DF(k+1,4);
end
else
sum2=0;
for i=k-Nb:Na
sum2=AF(i+1,5)*BF(k+1-i,4)+AF(i+1,6)*BF(k+1-i,3)+sum2;
end
DF(k+1,4)=sum2;
end
end
end
for k=0:Nd
sum1=0;
for j=k:Nd
sum1=DF(j+1,5)+sum1;
end
DF(k+1,3)=sum1;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%形成第三台发电机组停运表%%%%%%%%%%%%%%%%%%%%%%%%%%
C3=input('请输入第三台发电机的容量:C3=');
q3=input('请输入第三台发电机的强迫停运率:q3=');
Nc=C3/DX;
CF=zeros(Nc+1,6);
for i=0:Nc
CF(i+1,1)=i;
end
for i=0:Nc
CF(i+1,2)= CF(i+1,1)*DX;
end
for i=0:Nc
if CF(i+1,2)<=0
CF(i+1,5)=1-q3;
CF(i+1,4)=0;
else if CF(i+1,2)>=C3
CF(i+1,5)=q3;
CF(i+1,4)=q3*ui;
else
CF(i+1,5)=0;
CF(i+1,4)=q3*ui;
end
end
end
for i=0:Nc
sum=0;
for j=i:Nc
sum=sum+CF(j+1,5);
end
CF(i+1,3)=sum;
end
for i=0:Nc
if i~=Nc
CF(i+1,6)=CF(i+1,4)-CF(i+2,4);
else
CF(i+1,6)=CF(i+1,4);
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%形成发电系统的停运表%%%%%%%%%%%%%%%%%%%%%%%%%
Ne=Nd+Nc;
EF=zeros(Ne+1,5);
for i=0:Ne
EF(i+1,1)=i;
EF(i+1,2)=EF(i+1,1)*DX;
end
for k=0:Ne
for i=0:k
if k<=Nc
EF(k+1,5)=CF(i+1,5)*DF(k+1-i,5)+EF(k+1,5);
else if k<=Nd
sum=0;
for i=0:Nc
sum=CF(i+1,5)*DF(k+1-i,5)+sum;
end
EF(k+1,5)=sum;
else
sum=0;
for i=k-Nd:Nc
sum=CF(i+1,5)*DF(k+1-i,5)+sum;
end
EF(k+1,5)=sum;
end
end
end
end
for k=0:Ne
for i=0:Nc
if k<=Nc
if k+1-i>0
EF(k+1,4)=CF(i+1,5)*DF(k+1-i,4)+CF(i+1,6)*DF(k+1-i,3)+EF(k+1,4);
else
EF(k+1,4)=CF(i+1,6)+EF(k+1,4);
end
elseif k<=Nd
sum1=0;
for i=0:Nc
sum1=CF(i+1,5)*DF(k+1-i,4)+CF(i+1,6)*DF(k+1-i,3)+sum1;
end
EF(k+1,4)=sum1;
else
sum2=0;
for i=k-Nd:Nc
sum2=CF(i+1,5)*DF(k+1-i,4)+CF(i+1,6)*DF(k+1-i,3)+sum2;
end
EF(k+1,4)=sum2;
end
end
end
end
for i=0:Ne
sum=0;
for j=i:Ne
sum=EF(j+1,5)+sum;
end
EF(i+1,3)=sum;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%形成负荷停运表%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
L=input('请输入系统的日负荷曲线对应的负荷L:L=');
Pmax=input('请输入系统最大负荷Pmax: Pmax=');
Nl=Pmax/DX;POWER=zeros(Nl+1,6);LF=zeros(Nl+1,1);T=length(L);
for i=0:Nl
POWER(i+1,1)=i;
end
for i=0:Nl
POWER(i+1,2)= POWER(i+1,1)*DX;
end
for i=0:Nl
for j=1:T
if L(j)==POWER(i+1,2);
LF(i+1)=LF(i+1)+1;
end
end
end
for i=0:Nl
if LF(i+1)~=0
POWER(i+1,5)=LF(i+1)/T;
end
end
for i=0:Nl
for j=i:Nl
POWER(i+1,3)=POWER(i+1,3)+POWER(j+1,5);
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%形成负荷频率表%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
f=zeros(Nl+1,T+2);NS=L(T)/DX+1;
for I=1:T
NS1=L(I)/DX+1;
if NS>NS1
K=NS1+1;
for K=NS1+1:NS
f(K,T+2)=f(K,T+2)+1;
f(K,I)=1;
end
NS=NS1;I=I+1;
else
K=NS;
for K=NS:NS1-1
f(K,I)=-1;
end
NS=NS1;I=I+1;
end
end
for i=0:Nl
for j=1:T
f(i+1,T+1)=f(i+1,T+1)+f(i+1,j);
end
end
for i=0:Nl
POWER(i+1,4)=f(i+1,T+2);
end
for i=0:Nl
if i~=Nl
POWER(i+1,6)=POWER(i+1,4)-POWER(i+2,4);
else
POWER(i+1,6)=POWER(i+1,4);
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%形成发电系统裕度表%%%%%%%%%%%%%%%%%%%%%%%%%%
Nf=Ne+Nl;
FF=zeros(Nf+1,5);
for k=5:Nf
for i=0:k
if k<=Nl
FF(k+1,5)= POWER (i+1,5)*EF(k+1-i,5)+FF(k+1,5);
elseif k<=Ne
sum=0;
for i=0:Nl
sum= POWER (i+1,5)*EF(k+1-i,5)+sum;
end
FF(k+1,5)=sum;
else
sum=0;
for i=k-Ne:Nl
sum= POWER (i+1,5)*EF(k+1-i,5)+sum;
end
FF(k+1,5)=sum;
end
end
end
for k=0:Nf
for i=0:Nl
if k<=Nl
if k+1-i>0
FF(k+1,4)=POWER(i+1,5)*EF(k+1-i,4)+POWER(i+1,6)*EF(k+1-i,3)+FF(k+1,4);
else
FF(k+1,4)= POWER (i+1,6)+FF(k+1,4);
end
elseif k<=Ne
sum1=0;
for i=0:Nl
sum1=POWER(i+1,5)*EF(k+1-i,4)+POWER(i+1,6)*EF(k+1-i,3)+sum1;
end
FF(k+1,4)=sum1;
else
sum2=0;
for i=k-Ne:Nl
sum2=POWER(i+1,5)*EF(k+1-i,4)+POWER(i+1,6)*EF(k+1-i,3)+sum2;
end
FF(k+1,4)=sum2;
end
end
end
for i=0:Nf
for j=i:Nf
FF(i+1,3)=FF(i+1,3)+FF(j+1,5);
end
end
for i=0:Nf
FF(i+1,1)=i;
end
for i=0:Nf
FF(i+1,2)= (Ne-i)*DX;
end
disp('第一台发电机组停运表AF');
AF
disp('第二台发电机组停运表BF');
BF
disp('第一台和第二台发电机组并联后的停运表DF');
DF
disp('第三台发电机组停运表CF');
CF
disp('形成系统的停运表EF');
EF
disp('形成负荷的停运表POWER');
POWER
disp('形成发电系统的裕度表FF');
FF
展开阅读全文