| 
 | 
 
含分布式电源的配电网可靠性评估: 
该系统有 23 个负荷点、1 个隔离开关、23 台配电变压器、4 台断路器、23个熔断器(装设在负荷线路首端)。隔离开关操作时间为20 分钟。 
- % 含分布式电源的配电网可靠性评估_吴颖超,P29-
 
 - % 基于对偶抽样蒙特卡洛发求配电系统可靠性
 
 - clc,clear,close all
 
 - warning off;
 
 - tic;
 
 - nl=30;         % 线路数
 
 - nt=23;         % 变压器及负荷点数
 
 - nk=5;          % 开关数
 
 - n=nl+nt+nk;    % 总的元件数
 
 - % 线路长度
 
 - xlcd=[2.8,2.5,1.6,0.9,1.6,2.5,0.6,1.6,0.75,0.9,3.2,2.8,0.6,3.5,1.6,2.8,3.2,2.5,3.2,1.6,0.8,2.8,2.5,3.2,2.8,2.5,0.75,1.6,3.2,2.8];
 
 - % 各个负荷点的平均负荷
 
 - lppjfh=[0.1659,0.1808,0.2501,0.2633,0.2070,0.1659,0.3057,0.1554,0.2831,0.1585,0.1554,0.1585,0.2501,0.1554,0.1929,0.1585,0.2501,0.2633,0.1554,0.1929,0.2831,0.1585,0.3057];
 
 - % 各个负荷点的用户数
 
 - lpyhs=[147,126,1,1,132,147,1,79,1,76,79,76,1,79,1,76,1,1,79,1,1,76,1];
 
 - xlgzl=0.05;                 % 线路故障率
 
 - byqgzl=0.015;               % 变压器故障率
 
 - kggzl=0.006;                % 开关故障率
 
 - xlxfsj=5;                   % 线路修复时间
 
 - byqxfsj=30;                 % 变压器修复时间
 
 - kgxfsj=4;                   % 开关修复时间
 
 - lpgzcs=zeros(1,nt);         % 初始化各个负荷点的故障次数
 
 - lpgzsj=zeros(1,nt);         % 初始化各个负荷点的故障时间
 
 - lpgzl=zeros(1,nt);          % 初始化各个负荷点的故障率
 
 - lpgzcxsj=zeros(1,nt);       % 初始化各个负荷点的平均故障持续时间
 
 - lpngzsj=zeros(1,nt);        % 初始化各个负荷点的年平均故障时间
 
 - % 初始化各个元件的故障率和修复时间
 
 - for i=1:nl
 
 -     yjgzl(i)=xlgzl*xlcd(i);    % 故障率
 
 -     yjxfsj(i)=xlxfsj;          % 修复时间
 
 - end
 
 - for i=nl+1:nl+nt
 
 -     yjgzl(i)=byqgzl;
 
 -     yjxfsj(i)=byqxfsj;
 
 - end
 
 - for i=nl+nt+1:n
 
 -     yjgzl(i)=kggzl;
 
 -     yjxfsj(i)=kgxfsj;
 
 - end
 
 - % 各个负荷点供电路径的元件组成
 
 - lp1=[1,31,54];
 
 - lp2=[1,2,32,54];
 
 - lp3=[1,2,3,33,54];
 
 - lp4=[1,2,3,4,34,54];
 
 - lp5=[1,2,3,4,5,35,54];
 
 - lp6=[1,2,3,4,5,6,7,36,54];
 
 - lp7=[1,2,3,4,5,6,8,9,37,54];
 
 - lp8=[1,2,3,4,5,6,8,10,11,38,54,56];
 
 - lp9=[1,2,3,4,5,6,8,10,11,12,13,39,54,56];
 
 - lp10=[1,2,3,4,5,6,8,10,11,12,14,40,54,56];
 
 - lp11=[1,2,3,4,5,6,8,10,11,12,14,15,16,41,54,56,57];
 
 - lp12=[1,2,3,4,5,6,8,10,11,12,14,15,16,17,42,54,56,57];
 
 - lp13=[1,2,3,4,5,6,8,10,11,12,14,15,16,17,18,43,54,56,57];
 
 - lp14=[1,2,3,4,5,6,8,10,19,44,54,55];
 
 - lp15=[1,2,3,4,5,6,8,10,19,20,21,45,54,55];
 
 - lp16=[1,2,3,4,5,6,8,10,19,20,22,46,54,55];
 
 - lp17=[1,2,3,4,5,6,8,10,19,20,22,23,47,54,55];
 
 - lp18=[1,2,3,4,5,6,8,10,19,20,22,23,24,48,54,55];
 
 - lp19=[1,2,3,4,5,6,8,10,11,12,14,15,25,49,54,56,58];
 
 - lp20=[1,2,3,4,5,6,8,10,11,12,14,15,25,26,27,50,54,56,58];
 
 - lp21=[1,2,3,4,5,6,8,10,11,12,14,15,25,26,28,51,54,56,58];
 
 - lp22=[1,2,3,4,5,6,8,10,11,12,14,15,25,26,28,29,52,54,56,58];
 
 - lp23=[1,2,3,4,5,6,8,10,11,12,14,15,25,26,28,29,30,53,54,56,58];
 
 - %% loop
 
 - SUMTTF=0;    % 初始化仿真时间
 
 - while SUMTTF<=20000
 
 -     E1=rand(1,n);        % 对每个元件产生一个随机数
 
 -     % 计算每个随机数的对偶随机数
 
 -     for i=1:n
 
 -         E2(i)=1-E1(i);
 
 -     end
 
 -     % 利用转换公式计算各个元件的TTF
 
 -     for i=1:n
 
 -         TTF1(i)=-1/yjgzl(i)*log(E1(i));
 
 -     end
 
 -     for i=1:n
 
 -         TTF2(i)=-1/yjgzl(i)*log(E2(i));
 
 -     end
 
 -     % 确定故障元件
 
 -     m1=TTF1(1);
 
 -     t1=1;
 
 -     for i=1:n
 
 -         if TTF1(i)<m1
 
 -             m1=TTF1(i);
 
 -             t1=i;
 
 -         end
 
 -     end
 
 -     % 利用转换公式计算故障元件的TTR
 
 -     TTR1=-yjxfsj(t1)*log(rand(1));
 
 -     % 确定故障元件
 
 -     m2=TTF2(1);
 
 -     t2=1;
 
 -     for i=1:n
 
 -         if TTF2(i)<m2
 
 -             m2=TTF2(i);
 
 -             t2=i;
 
 -         end
 
 -     end
 
 -     % 利用转换公式计算故障元件的TTR
 
 -     TTR2=-yjxfsj(t2)*log(rand(1));
 
 -     % 计算仿真时间
 
 -     SUMTTF=SUMTTF+m1+m2;       
 
 -     
 
 -     % 计算各个负荷点的故障次数与故障时间
 
 -     % 计算负荷点1的故障次数与故障时间
 
 -     for i=1:3
 
 -         if lp1(i)==t1
 
 -             lpgzcs(1)=lpgzcs(1)+1;
 
 -             lpgzsj(1)=lpgzsj(1)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:3
 
 -         if lp1(i)==t2
 
 -             lpgzcs(1)=lpgzcs(1)+1;
 
 -             lpgzsj(1)=lpgzsj(1)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 -     % 计算负荷点2的故障次数与故障时间
 
 -     for i=1:4
 
 -         if lp2(i)==t1
 
 -             lpgzcs(2)=lpgzcs(2)+1;
 
 -             lpgzsj(2)=lpgzsj(2)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:4
 
 -         if lp2(i)==t2
 
 -             lpgzcs(2)=lpgzcs(2)+1;
 
 -             lpgzsj(2)=lpgzsj(2)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 -     % 计算负荷点3的故障次数与故障时间
 
 -     for i=1:5
 
 -         if lp3(i)==t1
 
 -             lpgzcs(3)=lpgzcs(3)+1;
 
 -             lpgzsj(3)=lpgzsj(3)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:5
 
 -         if lp3(i)==t2
 
 -             lpgzcs(3)=lpgzcs(3)+1;
 
 -             lpgzsj(3)=lpgzsj(3)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 -     % 计算负荷点4的故障次数与故障时间
 
 -     for i=1:6
 
 -         if lp4(i)==t1
 
 -             lpgzcs(4)=lpgzcs(4)+1;
 
 -             lpgzsj(4)=lpgzsj(4)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:6
 
 -         if lp4(i)==t2
 
 -             lpgzcs(4)=lpgzcs(4)+1;
 
 -             lpgzsj(4)=lpgzsj(4)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 -     % 计算负荷点5的故障次数与故障时间
 
 -     for i=1:7
 
 -         if lp5(i)==t1
 
 -             lpgzcs(5)=lpgzcs(5)+1;
 
 -             lpgzsj(5)=lpgzsj(5)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:7
 
 -         if lp5(i)==t2
 
 -             lpgzcs(5)=lpgzcs(5)+1;
 
 -             lpgzsj(5)=lpgzsj(5)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 -     % 计算负荷点6的故障次数与故障时间
 
 -     for i=1:9
 
 -         if lp6(i)==t1
 
 -             lpgzcs(6)=lpgzcs(6)+1;
 
 -             lpgzsj(6)=lpgzsj(6)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:9
 
 -         if lp6(i)==t2
 
 -             lpgzcs(6)=lpgzcs(6)+1;
 
 -             lpgzsj(6)=lpgzsj(6)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 -     % 计算负荷点7的故障次数与故障时间
 
 -     for i=1:10
 
 -         if lp7(i)==t1
 
 -             lpgzcs(7)=lpgzcs(7)+1;
 
 -             lpgzsj(7)=lpgzsj(7)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:10
 
 -         if lp7(i)==t2
 
 -             lpgzcs(7)=lpgzcs(7)+1;
 
 -             lpgzsj(7)=lpgzsj(7)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 -     % 计算负荷点8的故障次数与故障时间
 
 -     for i=1:12
 
 -         if lp8(i)==t1
 
 -             lpgzcs(8)=lpgzcs(8)+1;
 
 -             lpgzsj(8)=lpgzsj(8)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:12
 
 -         if lp8(i)==t2
 
 -             lpgzcs(8)=lpgzcs(8)+1;
 
 -             lpgzsj(8)=lpgzsj(8)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 -     % 计算负荷点9的故障次数与故障时间
 
 -     for i=1:14
 
 -         if lp9(i)==t1
 
 -             lpgzcs(9)=lpgzcs(9)+1;
 
 -             lpgzsj(9)=lpgzsj(9)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:14
 
 -         if lp9(i)==t2
 
 -             lpgzcs(9)=lpgzcs(9)+1;
 
 -             lpgzsj(9)=lpgzsj(9)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 -     % 计算负荷点10的故障次数与故障时间
 
 -     for i=1:14
 
 -         if lp10(i)==t1
 
 -             lpgzcs(10)=lpgzcs(10)+1;
 
 -             lpgzsj(10)=lpgzsj(10)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:14
 
 -         if lp10(i)==t2
 
 -             lpgzcs(10)=lpgzcs(10)+1;
 
 -             lpgzsj(10)=lpgzsj(10)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 -     % 计算负荷点11的故障次数与故障时间
 
 -     for i=1:17
 
 -         if lp11(i)==t1
 
 -             lpgzcs(11)=lpgzcs(11)+1;
 
 -             lpgzsj(11)=lpgzsj(11)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:17
 
 -         if lp11(i)==t2
 
 -             lpgzcs(11)=lpgzcs(11)+1;
 
 -             lpgzsj(11)=lpgzsj(11)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 -     % 计算负荷点12的故障次数与故障时间
 
 -     for i=1:18
 
 -         if lp12(i)==t1
 
 -             lpgzcs(12)=lpgzcs(12)+1;
 
 -             lpgzsj(12)=lpgzsj(12)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:18
 
 -         if lp12(i)==t2
 
 -             lpgzcs(12)=lpgzcs(12)+1;
 
 -             lpgzsj(12)=lpgzsj(12)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 -     % 计算负荷点13的故障次数与故障时间
 
 -     for i=1:19
 
 -         if lp13(i)==t1
 
 -             lpgzcs(13)=lpgzcs(13)+1;
 
 -             lpgzsj(13)=lpgzsj(13)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:19
 
 -         if lp13(i)==t2
 
 -             lpgzcs(13)=lpgzcs(13)+1;
 
 -             lpgzsj(13)=lpgzsj(13)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 -     % 计算负荷点14的故障次数与故障时间
 
 -     for i=1:12
 
 -         if lp14(i)==t1
 
 -             lpgzcs(14)=lpgzcs(14)+1;
 
 -             lpgzsj(14)=lpgzsj(14)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:12
 
 -         if lp14(i)==t2
 
 -             lpgzcs(14)=lpgzcs(14)+1;
 
 -             lpgzsj(14)=lpgzsj(14)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 -     % 计算负荷点15的故障次数与故障时间
 
 -     for i=1:14
 
 -         if lp15(i)==t1
 
 -             lpgzcs(15)=lpgzcs(15)+1;
 
 -             lpgzsj(15)=lpgzsj(15)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:14
 
 -         if lp15(i)==t2
 
 -             lpgzcs(15)=lpgzcs(15)+1;
 
 -             lpgzsj(15)=lpgzsj(15)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 -     % 计算负荷点16的故障次数与故障时间
 
 -     for i=1:14
 
 -         if lp16(i)==t1
 
 -             lpgzcs(16)=lpgzcs(16)+1;
 
 -             lpgzsj(16)=lpgzsj(16)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:14
 
 -         if lp16(i)==t2
 
 -             lpgzcs(16)=lpgzcs(16)+1;
 
 -             lpgzsj(16)=lpgzsj(16)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 -     % 计算负荷点17的故障次数与故障时间
 
 -     for i=1:15
 
 -         if lp17(i)==t1
 
 -             lpgzcs(17)=lpgzcs(17)+1;
 
 -             lpgzsj(17)=lpgzsj(17)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:15
 
 -         if lp17(i)==t2
 
 -             lpgzcs(17)=lpgzcs(17)+1;
 
 -             lpgzsj(17)=lpgzsj(17)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 -     % 计算负荷点18的故障次数与故障时间
 
 -     for i=1:16
 
 -         if lp18(i)==t1
 
 -             lpgzcs(18)=lpgzcs(18)+1;
 
 -             lpgzsj(18)=lpgzsj(18)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:16
 
 -         if lp18(i)==t2
 
 -             lpgzcs(18)=lpgzcs(18)+1;
 
 -             lpgzsj(18)=lpgzsj(18)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 -     % 计算负荷点19的故障次数与故障时间
 
 -     for i=1:17
 
 -         if lp19(i)==t1
 
 -             lpgzcs(19)=lpgzcs(19)+1;
 
 -             lpgzsj(19)=lpgzsj(19)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:17
 
 -         if lp19(i)==t2
 
 -             lpgzcs(19)=lpgzcs(19)+1;
 
 -             lpgzsj(19)=lpgzsj(19)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 -     % 计算负荷点20的故障次数与故障时间
 
 -     for i=1:19
 
 -         if lp20(i)==t1
 
 -             lpgzcs(20)=lpgzcs(20)+1;
 
 -             lpgzsj(20)=lpgzsj(20)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:19
 
 -         if lp20(i)==t2
 
 -             lpgzcs(20)=lpgzcs(20)+1;
 
 -             lpgzsj(20)=lpgzsj(20)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 -     % 计算负荷点21的故障次数与故障时间
 
 -     for i=1:19
 
 -         if lp21(i)==t1
 
 -             lpgzcs(21)=lpgzcs(21)+1;
 
 -             lpgzsj(21)=lpgzsj(21)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:19
 
 -         if lp21(i)==t2
 
 -             lpgzcs(21)=lpgzcs(21)+1;
 
 -             lpgzsj(21)=lpgzsj(21)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 -     % 计算负荷点22的故障次数与故障时间
 
 -     for i=1:20
 
 -         if lp22(i)==t1
 
 -             lpgzcs(22)=lpgzcs(22)+1;
 
 -             lpgzsj(22)=lpgzsj(22)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:20
 
 -         if lp22(i)==t2
 
 -             lpgzcs(22)=lpgzcs(22)+1;
 
 -             lpgzsj(22)=lpgzsj(22)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 -     % 计算负荷点23的故障次数与故障时间
 
 -     for i=1:21
 
 -         if lp23(i)==t1
 
 -             lpgzcs(23)=lpgzcs(23)+1;
 
 -             lpgzsj(23)=lpgzsj(23)+TTR1;
 
 -         end
 
 -     end
 
 -     for i=1:21
 
 -         if lp23(i)==t2
 
 -             lpgzcs(23)=lpgzcs(23)+1;
 
 -             lpgzsj(23)=lpgzsj(23)+TTR2;
 
 -         end
 
 -     end
 
 -     
 
 - end
 
 - toc
 
 - %% 结果分析
 
 - for i=1:nt
 
 -     lpgzl(i)=lpgzcs(i)/SUMTTF;                  % 计算各个负荷点的故障率 λ
 
 -     lpgzcxsj(i)=lpgzsj(i)/lpgzcs(i);            % 计算各个负荷点的平均故障持续时间 r
 
 -     lpngzsj(i)=lpgzl(i)*lpgzcxsj(i);            % 计算各个负荷点的年平均故障时间 U
 
 - end
 
 - a=0;                                            % 计算系统可靠性指标
 
 - b=0;
 
 - for i=1:nt
 
 -     A(i)=lpgzl(i)*lpyhs(i);                     % 各个负荷点的用户数 lpyhs
 
 -     a=a+A(i);
 
 -     b=b+lpyhs(i);
 
 - end
 
 - SAIFI=a/b;                                      % 计算系统平均停电频率指标SAIFI
 
 - disp(['计算系统平均停电频率指标SAIFI: ', num2str(SAIFI)])
 
  
- c=0;
 
 - for i=1:nt
 
 -     C(i)=lpngzsj(i)*lpyhs(i);
 
 -     c=c+C(i);
 
 - end
 
 - SAIDI=c/b;                                        % 计算系统平均停电持续时间指标SAIDI  
 
 - CAIDI=c/a;                                        % 计算用户平均停电持续时间指标CAIDI
 
 - disp(['计算系统平均停电持续时间指标SAIDI: ', num2str(SAIDI)])
 
 - disp(['计算用户平均停电持续时间指标CAIDI: ', num2str(CAIDI)])
 
  
- d=0;
 
 - for i=1:nt
 
 -     D(i)=lpyhs(i)*8760;
 
 -     d=d+D(i);
 
 - end
 
 - ASAI=(d-c)/d;                                     % 计算平均供电可用率指标ASAI
 
 - disp(['计算平均供电可用率指标ASAI: ', num2str(ASAI)])
 
  
- ENS=0;
 
 - for i=1:nt
 
 -     F(i)=lpngzsj(i)*lppjfh(i);
 
 -     ENS=ENS+F(i);
 
 - end                                               % 计算电量不足指标ENS
 
 - ENS;
 
 - disp(['计算电量不足指标ENS: ', num2str(ENS)])
 
  
- % f=0;
 
 - % for i=1:nt
 
 - %     F(i)=lpyhs(i)./(lpgzl(i)+eps);
 
 - %     f=f+F(i);
 
 - % end
 
 - % CAIFI=f/a;                                        % 计算用户平均停电频率指标CAIFI
 
 - % disp(['计算用户平均停电频率指标CAIFI: ', num2str(CAIFI)])
 
 - fprintf('\n')
 
 - %% 配网系统指标
 
 - [SAIFI, SAIDI, CAIDI, ASAI, CAIFI, ENS] = Index_PeiWang(lpyhs, lpgzl, lpngzsj, lppjfh);
 
 
  复制代码 计算系统平均停电频率指标SAIFI: 0.88498 
计算系统平均停电持续时间指标SAIDI: 4.7817 
计算用户平均停电持续时间指标CAIDI: 5.4032 
计算平均供电可用率指标ASAI: 0.99945 
计算电量不足指标ENS: 28.5165 
计算用户平均停电频率指标CAIFI: 6.3135 
 
代码分享: 
 
参考文献: 
含分布式电源的配电网可靠性评估_吴颖超,P29- 
 
 
 
 
 
 |   
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册  
 
x
 
 
 
 
 |