分布式电源后配电网的可靠性评估附matlab代码
分布式电源后配电网的可靠性评估附matlab代码
TT_Matlab
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。
1 简介
电力系统可靠性是对电力系统按可接受的质量标准和所需数量不间断地向电 力用户供应电力和电能能力的度量,据不完全统计用户停电故障中以上是由配电系 统故障引起的,因此对配电网进行可靠性评估具有十分重大的意义。
2 完整代码
function [branch1]=zuixiaolufa(branch)
[row,colum]= size(branch);
branch(
:
,
9
:
23
)=
0
;
m=
1
;
n=
2
;
k=
1
;%用来记录主节点个数
flag=
0
;
%**********确定主网络*******
branch(row,
10
)=
1
;%branch第十列表征主网络节点
zhuwangluojiedian=branch(row,
1
);%主网络节点
zhuwangluo(k)=branch(row,
1
);
zhesuanguzhanglv=
0
;
zhesuanxiufushijian=
0
;
while
zhuwangluojiedian~=branch(
1
,
1
)
for
i=
1
:row
if
branch(i,
2
)==zhuwangluojiedian
branch(i,
10
)=
1
;
zhuwangluojiedian=branch(i,
1
);
k=k+
1
;
zhuwangluo(k)=branch(i,
1
);
zhesuanguzhanglv=zhesuanguzhanglv+branch(i,
4
);
zhesuanxiufushijian=zhesuanxiufushijian+branch(i,
4
)*branch(i,
5
);
branch(i,
22
)=zhesuanguzhanglv;
branch(i,
23
)=zhesuanxiufushijian;
branch(i,
23
)=zhesuanxiufushijian/branch(i,
22
);
if
branch(i,
3
)==
4
zhesuanguzhanglv=
0
;
zhesuanxiufushijian=branch(i,
7
);
end
break
end
end
end
%*******确定孤岛支路*******
m=
0
;
for
i=
1
:row
if
branch(i,
9
)==
0
&&branch(i,
3
)~=
7
%*****后续改动
for
j=
1
:row
if
j~=i
if
branch(j,
1
)==branch(i,
1
)&&branch(j,
3
)~=
7
%*****后续改动
branch(i,
9
)=branch(i,
9
)+
1
;%第九列存放节点的支路数;
m=m+
1
;
duozhilu(m)=j;
end
end
end
while
m~=
0
branch(duozhilu(m),
9
)=branch(i,
9
);
m=m-
1
;
end
end
end
branch=gudaojisian(branch);
% branch=gudaojisuanqian(branch);
% branch=gudaojisuanhou(branch);
%********确定最小路*****
% m=
1
;
% v=
1
;
%
for
i=
1
:row
%
if
branch(i,
3
)==
7
% % zuixiaozhilu(m,
1
)=branch(i,
1
);%zuixiaozhilu中存放所有最小支路
% zuixiaozhilu(m,
1
)=i;%zuixiaozhilu中存放最小支路的行数
% chuanlianjiedian=branch(i,
1
);
%
while
chuanlianjiedian~=branch(
1
,
1
)
%
for
j=
1
:row
%
if
branch(j,
2
)==chuanlianjiedian
% % zuixiaozhilu(m,n)=branch(j,
1
);
% zuixiaozhilu(m,n)=j;
%
if
branch(j,
10
)==
2
&&branch(j,
19
)==
0
&&branch(j,
3
)==
3
% branch(i,
19
)=branch(i,
19
)+branch(j,
14
);
% branch(i,
20
)=branch(i,
20
)+branch(j,
14
)*branch(j,
15
);
%
end
%
if
branch(j,
10
)==
1
&&branch(j,
19
)~=
0
% branch(i,
19
)=branch(j,
4
)+branch(i,
19
)*branch(j,
4
)*(branch(i,
20
)+branch(j,
5
));
% branch(i,
20
)=branch(j,
5
)*branch(j,
4
)+branch(i,
20
)*branch(j,
2
)/(branch(i,
20
)+branch(j,
5
));
%
end
%
if
branch(j,
10
)==
1
&&branch(j,
19
)==
0
% branch(i,
19
)=branch(i,
19
)+branch(j,
4
);
% branch(i,
20
)=branch(i,
20
)+branch(j,
4
)*branch(j,
5
);
%
end
% n=n+
1
;
% chuanlianjiedian=branch(j,
1
);
%
break
;
%
end
%
end
%
end
% m=m+
1
;
% n=
2
;
%
end
%
end
% l=zuixiaozhilu
%******非最小路上的参数折算*********
%*******首先对主网络上的节点进行折算*****************************************************
%*
m=
1
;
for
i=
1
:row
if
branch(i,
3
)==
7
jiedian=branch(i,
1
);
hangshu=i;
branch(hangshu,
11
)=branch(hangshu,
4
);
branch(hangshu,
12
)=branch(hangshu,
5
)*branch(hangshu,
4
);
while
branch(hangshu,
9
)==
0
for
j=
1
:row
if
branch(j,
2
)==jiedian&&branch(j,
9
)==
0
branch(j,
11
)=branch(j,
4
)+branch(hangshu,
11
);%branch的
11
列
12
列用来表示非最小路的指标归算——初次归算
branch(j,
12
)=branch(j,
4
)*branch(j,
5
)+branch(hangshu,
12
);
hangshu=j;
jiedian=branch(j,
1
);
break
end
if
branch(j,
2
)==jiedian&&branch(j,
9
)~=
0
branch(j,
13
)=branch(j,
13
)+
1
; %用第十三列表示已经进行过归算的标记
branch(j,
11
)=branch(j,
4
)+branch(hangshu,
11
);%branch的
11
列
12
列用来表示非最小路的指标归算
branch(j,
12
)=branch(j,
4
)*branch(j,
5
)+branch(hangshu,
12
);
hangshu=j;
break
end
end
end
branch(j,
12
)=branch(j,
12
)/branch(j,
11
);
end
end
%***************************
for
i=
1
:row
% branch(i,
17
)=
1
;%
17
列表示已归算支路数
if
branch(i,
13
)~=
0
&&branch(i,
16
)==
0
%改动
branch(i,
14
)=branch(i,
11
);
branch(i,
15
)=branch(i,
12
);
for
j=
1
:row
if
branch(j,
1
)==branch(i,
1
)&&branch(j,
13
)~=
0
&&i~=j
branch(i,
14
)=branch(i,
14
)+branch(j,
11
);
branch(i,
15
)=branch(i,
15
)+branch(j,
7
)*branch(j,
11
);
% branch(i,
14
)=branch(i,
14
)*branch(j,
11
)*(branch(i,
15
)+branch(j,
12
));%用branch的第
14
,
15
列表征二次归算
% branch(i,
15
)=branch(i,
15
)*branch(j,
12
)/(branch(i,
15
)+branch(j,
12
));
branch(i,
16
)=
2
;%用第
16
列表示二次归算行存放值
branch(j,
16
)=
1
;%表示已经进行了二次归算
branch(i,
17
)=branch(i,
17
)+
1
;
end
end
end
if
branch(i,
17
)==branch(i,
9
)&&branch(i,
16
)~=
0
branch(i,
18
)=
1
;%
18
列表示支路归算完成
end
for
t=
1
:k%k
中存放主节点个数
if
branch(i,
1
)==zhuwangluo(t)
if
branch(i,
10
)~=
1
branch(i,
10
)=
2
;
end
if
branch(i,
17
)==(branch(i,
9
)-
1
)&&branch(i,
16
)~=
0
branch(i,
18
)=
1
;
break
end
end
end
end
%*******************************
for
i=
1
:row
if
branch(i,
18
)==
1
&&branch(i,
10
)~=
2
%表示已经进行过二次归算且二次归算完毕
sanjiedian=branch(i,
1
);
panduan=branch(i,
10
);
while
panduan~=
2
&&panduan~=
1
%没有到达主节点
for
j=
1
:row
if
branch(j,
2
)==sanjiedian
branch(j,
14
)=branch(j,
4
);
branch(j,
15
)=branch(j,
5
)*branch(j,
4
);
branch(j,
14
)=branch(j,
14
)+branch(i,
14
);
branch(j,
15
)=branch(i,
14
)*branch(i,
15
)+branch(j,
15
);
sanjiedian=branch(j,
1
);
panduan=branch(j,
10
);
zhiliudian=j;
if
branch(zhiliudian,
9
)~=
0
for
t=
1
:row
if
(branch(t,
1
)==branch(zhiliudian,
1
)&&t~=zhiliudian&&branch(t,
13
)==
1
&&branch(t,
16
)==
0
)
||
(branch(t,
1
)==branch(zhiliudian,
1
)&&t~=zhiliudian&&branch(t,
16
)==
2
)
if
branch(t,
14
)~=
0
&&branch(t,
3
)~=
4
&&branch(t,
3
)~=
3
% branch(t,
14
)=branch(t,
14
)*branch(zhiliudian,
14
)*(branch(t,
15
)+branch(zhiliudian,
15
));%用branch的第
14
,
15
列表征二次归算
% branch(t,
15
)=branch(t,
15
)*branch(zhiliudian,
15
)/(branch(t,
15
)+branch(zhiliudian,
15
));
branch(t,
14
)=branch(t,
14
)+branch(zhiliudian,
14
);
branch(t,
15
)=branch(t,
15
)+branch(zhiliudian,
7
)*branch(zhiliudian,
14
);
end
if
branch(t,
14
)==
0
&&branch(t,
3
)~=
4
&&branch(t,
3
)~=
3
% branch(t,
14
)=branch(t,
11
)*branch(zhiliudian,
14
)*(branch(t,
12
)+branch(zhiliudian,
15
));%用branch的第
14
,
15
列表征二次归算
% branch(t,
15
)=branch(t,
12
)*branch(zhiliudian,
15
)/(branch(t,
12
)+branch(zhiliudian,
15
));
branch(t,
14
)=branch(t,
11
)+bracn(zhiliudian,
14
);
branch(t,
15
)=branch(t,
12
)+branch(zhiliudian,
7
)*branch(zhiliudian,
14
);
end
branch(t,
16
)=
2
;
branch(t,
17
)=branch(t,
17
)+
1
;
zhiliudian=t;
if
branch(t,
17
)==branch(t,
9
)
branch(t,
18
)=
1
;
% bianzhijiedian2=branch(t,
18
);
sanjiedian=branch(t,
1
);
panduan=branch(t,
10
);
break
end
if
branch(t,
17
)~=branch(t,
9
)
break
end
end
if
branch(t,
1
)==branch(zhiliudian,
1
)&&t~=zhiliudian&&branch(t,
13
)==
0
&&branch(t,
10
)~=
1
branch(t,
14
)=branch(zhiliudian,
14
);
branch(t,
15
)=branch(zhiliudian,
15
);
branch(t,
16
)=
2
;
branch(t,
17
)=branch(t,
17
)+
1
;
panduan=
2
;
break
end
end
end
branch(j,
15
)=branch(j,
15
)/branch(j,
14
);
break
end
end
end
end
end
%************************
for
i=
1
:row
if
branch(i,
10
)==
2
&&branch(i,
21
)==
0
%&&branch(i,
16
)==
2
branch(i,
19
)=branch(i,
14
);
branch(i,
20
)=branch(i,
15
);
if
branch(i,
9
)==
1
branch(i,
21
)=
2
;
end
if
branch(i,
9
)~=
1
&&branch(i,
16
)==
2
for
j=
1
:row
if
branch(i,
18
)==
1
branch(i,
21
)=
2
;
break
end
if
branch(j,
1
)==branch(i,
1
)&&branch(j,
10
)==
2
&&i~=j&&branch(j,
16
)==
0
if
branch(j,
14
)~=
0
&&branch(j,
3
)~=
4
&&branch(j,
3
)~=
3
% branch(i,
19
)=branch(i,
19
)*branch(j,
14
)*(branch(i,
20
)+branch(j,
15
));
% branch(i,
20
)=branch(i,
20
)*branch(j,
15
)/(branch(i,
20
)+branch(j,
15
));
branch(i,
19
)=branch(i,
19
)+branch(j,
14
);
branch(i,
20
)=branch(i,
20
)+branch(j,
7
)*branch(j,
14
);
branch(j,
21
)=
1
;
branch(i,
21
)=
2
;
end
if
branch(j,
14
)==
0
&&branch(j,
3
)~=
4
&&branch(j,
3
)~=
3
% branch(i,
19
)=branch(i,
19
)*branch(j,
11
)*(branch(i,
20
)+branch(j,
12
));
% branch(i,
20
)=branch(i,
20
)*branch(j,
12
)/(branch(i,
20
)+branch(j,
12
));
branch(i,
19
)=branch(i,
19
)+branch(j,
11
);
branch(i,
20
)=branch(i,
20
)+branch(j,
7
)*branch(j,
11
);
branch(j,
21
)=
1
;
branch(i,
21
)=
2
;
end
end
end
branch(i,
20
)=branch(i,
20
)/branch(i,
19
);
end
end
end
%**************************************************************************
%********最小路参数求解****************************************************
for
i=
1
:row
if
branch(i,
21
)==
2
for
j=
1
:row
if
branch(j,
1
)==branch(i,
1
)&&branch(j,
10
)==
1
branch(j,
19
)=branch(i,
19
);
branch(j,
20
)=branch(i,
20
);
if
branch(i,
19
)==
0
%gaidong
branch(j,
19
)=branch(i,
11
);
branch(j,
20
)=branch(i,
12
);
end
break
end
end
end
end
for
i=
1
:row
if
branch(i,
10
)==
1
&&branch(i,
19
)~=
0
&&branch(i,
3
)~=
4
&&branch(i,
3
)~=
3
% branch(i,
19
)=branch(i,
19
)*branch(i,
22
)*(branch(i,
20
)+branch(i,
23
));
% branch(i,
20
)=branch(i,
20
)*branch(i,
23
)/(branch(i,
20
)+branch(i,
23
));
branch(i,
19
)=branch(i,
19
)+
0
.
8
*branch(i,
22
);
branch(i,
20
)=branch(i,
20
)+branch(i,
7
)*branch(i,
22
);
end
end
% m=
1
;
%
for
i=
1
:v
% shenchajiedian=zuixiaozhilu(i,
1
);
%
while
shenchajiedian~=
0
%
if
branch(shenchajiedian,
10
)==
1
||
branch(shenchajiedian,
1
)==branch(
1
,
1
)
% branch(zuixiaozhilu(i,
1
),
19
)=branch(zuixiaozhilu(i,
1
),
19
)+branch(zuixiaozhilu(i,m),
19
)+branch(zuixiaozhilu(i,m),
4
);
% branch(zuixiaozhilu(i,
1
),
20
)=branch(zuixiaozhilu(i,
1
),
20
)+branch(zuixiaozhilu(i,m),
19
)*branch(zuixiaozhilu(i,m),
20
)+branch(zuixiaozhilu(i,m),
4
)*branch(zuixiaozhilu(i,m),
5
);
%
end
% m=m+
1
;
%
if
m<=(c+
1
)
% shenchajiedian=zuixiaozhilu(i,m);
%
else
%
break
%
end
%
end
%
end
%*********************************************************
m=
1
;
for
i=
1
:row
flag=
0
;
if
branch(i,
3
)==
7
%&&branch(i,
8
)==
0
% zuixiaozhilu(m,
1
)=branch(i,
1
);%zuixiaozhilu中存放所有最小支路
zuixiaozhilu(m,
1
)=i;%zuixiaozhilu中存放最小支路的行数
chuanlianjiedian=branch(i,
1
);
branch(i,
19
)=branch(i,
4
);
branch(i,
20
)=branch(i,
4
)*branch(i,
5
);
while
chuanlianjiedian~=branch(
1
,
1
)
for
j=
1
:row
if
branch(j,
2
)==chuanlianjiedian
% zuixiaozhilu(m,n)=branch(j,
1
);
zuixiaozhilu(m,n)=j;
if
flag==
1
if
branch(j,
9
)==
0
&&branch(j,
10
)==
0
branch(i,
19
)=branch(i,
19
)+branch(j,
4
);
% branch(i,
20
)=branch(i,
20
)+branch(j,
4
)*branch(j,
5
);
end
if
branch(j,
9
)~=
0
&&branch(j,
10
)==
0
branch(i,
19
)=branch(i,
19
)+branch(j,
4
);
% branch(i,
20
)=branch(i,
20
)+branch(j,
4
)*branch(j,
5
);
for
v=
1
:row
if
branch(v,
1
)==branch(j,
1
)&&v~=j&&branch(v,
3
)~=
4
if
branch(v,
13
)~=
0
branch(i,
19
)=branch(i,
19
)+
0
.
8
*branch(v,
11
);
branch(i,
20
)=branch(i,
20
)+branch(v,
7
)*branch(v,
11
);
end
if
branch(v,
13
)==
0
branch(i,
19
)=branch(i,
19
)+
0
.
8
*branch(v,
14
);
branch(i,
20
)=branch(i,
20
)+branch(v,
7
)*branch(v,
14
);
end
end
end
end
if
branch(j,
10
)==
2
%&&branch(j,
19
)==
0
%&&branch(j,
3
)==
3
branch(i,
19
)=branch(i,
19
)+branch(j,
4
);
% branch(i,
20
)=branch(i,
20
)+branch(j,
4
)*branch(j,
5
);
for
t=
1
:row
if
branch(t,
1
)==branch(j,
1
)&&branch(t,
3
)~=
4
&&t~=j%&&branch(t,
3
)~=
3
branch(i,
19
)=branch(i,
19
)+
0
.
8
*branch(t,
14
);
% branch(i,
20
)=branch(i,
20
)+branch(t,
7
)*branch(t,
4
);
end
end
end
if
branch(j,
10
)==
1
&&branch(j,
3
)~=
4
%branch(i,
19
)=branch(j,
4
)+branch(i,
19
)*branch(j,
4
)*(branch(i,
20
)+branch(j,
5
));
% branch(i,
20
)=branch(j,
5
)*branch(j,
4
)+branch(i,
20
)*branch
% (j,
2
)/(branch(i,
20
)+branch(j,
5
));
%
if
flag==
0
branch(i,
19
)=branch(i,
19
)+branch(j,
4
);%+branch(j,
19
);
% branch(i,
20
)=branch(i,
20
)+branch(j,
4
)*branch(j,
5
);%+
0
.
02
*branch(j,
20
);
if
branch(j,
3
)~=
4
&&branch(j,
3
)~=
3
%&&branch(j,
3
)~=
5
branch(i,
19
)=branch(i,
19
)+
0
.
2
*branch(j,
19
);
% branch(i,
20
)=branch(i,
20
)+branch(j,
7
)*branch(j,
4
);
end
end
n=n+
1
;
chuanlianjiedian=branch(j,
1
);
break
;
end
if
flag==
0
if
branch(j,
9
)==
0
&&branch(j,
10
)==
0
branch(i,
19
)=branch(i,
19
)+branch(j,
4
);
branch(i,
20
)=branch(i,
20
)+branch(j,
4
)*branch(j,
5
);
end
if
branch(j,
9
)~=
0
&&branch(j,
10
)==
0
branch(i,
19
)=branch(i,
19
)+branch(j,
4
);
branch(i,
20
)=branch(i,
20
)+branch(j,
4
)*branch(j,
5
);
for
v=
1
:row
if
branch(v,
1
)==branch(j,
1
)&&v~=j&&branch(v,
3
)~=
4
if
branch(v,
13
)~=
0
branch(i,
19
)=branch(i,
19
)+
0
.
3
*branch(v,
11
);
branch(i,
20
)=branch(i,
20
)+
0
.
7
*branch(v,
7
)*branch(v,
11
);
end
if
branch(v,
13
)==
0
branch(i,
19
)=branch(i,
19
)+
0
.
3
*branch(v,
14
);
branch(i,
20
)=branch(i,
20
)+
0
.
7
*branch(v,
7
)*branch(v,
14
);
end
end
end
end
if
branch(j,
10
)==
2
%&&branch(j,
19
)==
0
%&&branch(j,
3
)==
3
branch(i,
19
)=branch(i,
19
)+branch(j,
4
);
branch(i,
20
)=branch(i,
20
)+branch(j,
4
)*branch(j,
5
);
for
t=
1
:row
if
branch(t,
1
)==branch(j,
1
)&&branch(t,
3
)~=
4
&&t~=j&&branch(t,
3
)~=
3
branch(i,
19
)=branch(i,
19
)+
0
.
3
*branch(t,
14
);
branch(i,
20
)=branch(i,
20
)+
0
.
7
*branch(t,
7
)*branch(t,
14
);
end
end
if
branch(i,
8
)==
1
% chuanlianjiedian=branch(
1
,
1
);
flag=
1
;
branch(i,
20
)=branch(i,
20
)+
0
.
7
*branch(j,
7
)*branch(j,
19
);
end
end
if
branch(j,
10
)==
1
&&branch(j,
3
)~=
4
%branch(i,
19
)=branch(j,
4
)+branch(i,
19
)*branch(j,
4
)*(branch(i,
20
)+branch(j,
5
));
% branch(i,
20
)=branch(j,
5
)*branch(j,
4
)+branch(i,
20
)*branch
% (j,
2
)/(branch(i,
20
)+branch(j,
5
));
%
if
flag==
0
branch(i,
19
)=branch(i,
19
)+branch(j,
4
);%+branch(j,
19
);
branch(i,
20
)=branch(i,
20
)+branch(j,
4
)*branch(j,
5
);%+
0
.
02
*branch(j,
20
);
if
branch(j,
3
)~=
4
&&branch(j,
3
)~=
3
%&&branch(j,
3
)~=
5
branch(i,
19
)=branch(i,
19
)+
0
.
3
*branch(j,
19
);
branch(i,
20
)=branch(i,
20
)+
0
.
7
*branch(j,
7
)*branch(j,
19
);
end
%
end
%
if
flag==
1
% branch(i,
19
)=branch(i,
19
)+branch(j,
4
);
%
if
branch(j,
3
)~=
4
&&branch(j,
3
)~=
3
% branch(i,
19
)=branch(i,
19
)+
0
.
8
*branch(j,
19
);
%
end
%
end
end
%
if
branch(j,
10
)==
1
&&branch(j,
19
)==
0
% branch(i,
19
)=branch(i,
19
)+branch(j,
4
);
% branch(i,
20
)=branch(i,
20
)+branch(j,
4
)*branch(j,
5
);
%
end
n=n+
1
;
chuanlianjiedian=branch(j,
1
);
break
;
end
end
end
end
m=m+
1
;
n=
2
;
branch(i,
20
)=branch(i,
20
)/branch(i,
19
);
%
if
branch(i,
3
)==
7
&&branch(i,
8
)==
1
% % branch(i,
19
)=
0
.
0163
;
% % branch(i,
20
)=
3
*
0
.
0163
;
% jiedian=branch(i,
1
);
% hang=i;
%
while
branch(hang,
10
)~=
2
%
for
j=
1
:row
%
if
branch(j,
2
)==jiedian
% jiedian=branch(j,
1
);
% hang=j;
% %
if
branch(j,
9
)~=
0
% % branch(i,
19
)=branch(i,
19
)+branch(j,
11
);
% % branch(i,
20
)=branch(i,
20
)+branch(j,
12
);
% %
for
t=
1
:row
% %
if
branch(t,
1
)==branch(j,
1
)&&t~=j
% %
if
branch(t,
14
)~=
0
% % branch(i,
19
)=branch(i,
19
)+branch(t,
14
);
% % branch(i,
20
)=branch(i,
20
)+
0
.
02
*branch(t,
15
);
% %
end
% %
if
branch(t,
14
)==
0
% % branch(i,
19
)=branch(i,
19
)+branch(t,
11
);
% % branch(i,
20
)=branch(i,
20
)+
0
.
02
*branch(t,
12
);
% %
end
% %
end
% %
end
%
end
%
break
%
end
%
end
%
end
% branch(i,
20
)=branch(i,
20
)/branch(i,
19
);
%
end
end
end
branch1=branch;
end
function [branch2]=gudaojisuan(branch)
[row,colum]=size(branch);
jiedian=branch(row,
1
);
gonglv=
0
;
fuhegonglv=
2.5
;
% edinggonglv=input(
’请输入恒定备用电源的额定功率:’
);
edinggonglv=
2.5
;
while
gonglv<edinggonglv
for
i=
1
:row
m=
1
;
n=
1
;
if
branch(i,
2
)==jiedian
branch(i,
8
)=
1
;
jiedian=branch(i,
1
);
if
branch(i,
9
)~=
0
hangshu(
1
)=
1
;
% m=m+
1
;
zhilushu(
1
)=
1
;
jiedian2=branch(i,
1
);
if
branch(i,
10
)~=
1
branch(i,
10
)=
2
;
end
while
zhilushu(
1
)~=
0
&&gonglv<edinggonglv
for
j=
1
:row
if
branch(j,
1
)==jiedian2&&branch(j,
8
)==
0
branch(j,
8
)=
1
;
jiedian2=branch(j,
2
);
if
branch(j,
9
)~=
0
&&branch(hangshu(n),
1
)~=branch(j,
1
)%&&shengyuzhilushu~=
0
hangshu(m)=j;
zhilushu(m)=branch(j,
9
);
n=m;
m=m+
1
;
% jiedian3=branch(hangshu(m),
1
);
end
if
branch(j,
3
)==
7
gonglv=gonglv+fuhegonglv;
% m=m-
1
;
% jiedian3=branch(hangshu(n),
1
);
zhilushu(n)=zhilushu(n)-
1
;
%
if
zhilushu(n)==-
1
&&n>=
2
% n=n-
1
;
% zhilushu(n)=zhilushu(n)-
1
;
%
if
zhilushu(n)==
0
%
break
%
end
while
zhilushu(n)==-
1
&&n>=
2
%||
(zhilushu(n)==
0
&&n==
1
)
n=n-
1
;
zhilushu(n)=zhilushu(n)-
1
;
end
jiedian3=branch(hangshu(n),
1
);
if
n==
1
&&zhilushu(n)==
0
break
end
for
t=
1
:row
if
branch(t,
1
)==jiedian3&&branch(t,
8
)==
0
jiedian2=branch(t,
2
);
branch(t,
8
)=
1
;
break
end
end
end
break
end
end
end
end
break
end
end
end
branch2=branch;
function [U] = canshujisuan(branchzuixiaolu,n)%n为每个负荷点的用户数
[row,column] = size(branchzuixiaolu);
%计算负荷点个数lp
lp = 0;
for i = 1:row
if branchzuixiaolu(i,3) == 7
lp = lp+1;
end
end
%求年平均停电持续时间U
U = zeros(3,lp);
j = 1;
for i = 1:row
if branchzuixiaolu(i,3) == 7
U(1,j) = branchzuixiaolu(i,19);%把branch_up_down矩阵中的λ存储到U中
U(2,j) = branchzuixiaolu(i,20);%把branch_up_down矩阵中的r存储到U中
U(3,j) = U(1,j)*U(2,j);%平均停电持续时间U为上述二者相乘
j = j+1;
end
end
U = U’;
%求系统平均停电频率SAIFI(次/户?年)、系统平均停电持续时间SAIDI(小时/用户?年)、用户平均停电持续时间CAIDI(小时/停电用户?年)、平均供电可靠率ASAI(%)
[rowU,columnU] = size(U);
SAIFI = 0;
SAIDI = 0;
ASAI = 0;
sum = 0;
for i = 1:rowU
SAIFI = SAIFI+U(i,1)*n;
SAIDI = SAIDI+U(i,3)*n;
sum = sum+8760*n;
ASAI = ASAI+U(i,3)*n;
if U(i,1) < 3
U(i,4) = 0;
else
U(i,4) = 1;
end
end
%% 系统可靠性指标
% 第七个指标
SAIFI = SAIFI/(rowU*n)
% 第八个指标
SAIDI = SAIDI/(rowU*n)
% 第九个指标
CAIDI = SAIDI/SAIFI
% 第十个指标
ASAI = 100*(sum-ASAI)/sum
%% 用户可靠性数据
% 第一个指标
disp(’用电可靠率(%)’)
U_ASAI = (1-U(:,3)./8760).*100;
disp(U_ASAI’)
% 第二个指标
disp(’用户平均停电次数(次/年)’)
disp(U(:,1)’)
% 第三个指标
disp(’用户平均停电时间(h/年)’)
disp(U(:,3)’)
% 第四个指标
disp(’重复停电概率’)
P_IU = U(:,4)./rowU;
disp(P_IU’)
% 第五个指标
disp(’中低压用户可靠率差(%)’)
Delta_U_ASAI = ASAI-(1-U(:,3)./8760).*100;
disp(Delta_U_ASAI’)
% 第六个指标
disp(’用户平均停电时长(h/次)’)
disp(U(:,2)’)
function [branch1]=zuixiaolufa(branch)
[row,colum]= size(branch);
branch(
:
,
9
:
23
)=
0
;
m=
1
;
n=
2
;
k=
1
;%用来记录主节点个数
flag=
0
;
%**********确定主网络*******
branch(row,
10
)=
1
;%branch第十列表征主网络节点
zhuwangluojiedian=branch(row,
1
);%主网络节点
zhuwangluo(k)=branch(row,
1
);
zhesuanguzhanglv=
0
;
zhesuanxiufushijian=
0
;
while
zhuwangluojiedian~=branch(
1
,
1
)
for
i=
1
:row
if
branch(i,
2
)==zhuwangluojiedian
branch(i,
10
)=
1
;
zhuwangluojiedian=branch(i,
1
);
k=k+
1
;
zhuwangluo(k)=branch(i,
1
);
zhesuanguzhanglv=zhesuanguzhanglv+branch(i,
4
);
zhesuanxiufushijian=zhesuanxiufushijian+branch(i,
4
)*branch(i,
5
);
branch(i,
22
)=zhesuanguzhanglv;
branch(i,
23
)=zhesuanxiufushijian;
branch(i,
23
)=zhesuanxiufushijian/branch(i,
22
);
if
branch(i,
3
)==
4
zhesuanguzhanglv=
0
;
zhesuanxiufushijian=branch(i,
7
);
end
break
end
end
end
%*******确定孤岛支路*******
m=
0
;
for
i=
1
:row
if
branch(i,
9
)==
0
&&branch(i,
3
)~=
7
%*****后续改动
for
j=
1
:row
if
j~=i
if
branch(j,
1
)==branch(i,
1
)&&branch(j,
3
)~=
7
%*****后续改动
branch(i,
9
)=branch(i,
9
)+
1
;%第九列存放节点的支路数;
m=m+
1
;
duozhilu(m)=j;
end
end
end
while
m~=
0
branch(duozhilu(m),
9
)=branch(i,
9
);
m=m-
1
;
end
end
end
branch=gudaojisian(branch);
% branch=gudaojisuanqian(branch);
% branch=gudaojisuanhou(branch);
%********确定最小路*****
% m=
1
;
% v=
1
;
%
for
i=
1
:row
%
if
branch(i,
3
)==
7
% % zuixiaozhilu(m,
1
)=branch(i,
1
);%zuixiaozhilu中存放所有最小支路
% zuixiaozhilu(m,
1
)=i;%zuixiaozhilu中存放最小支路的行数
% chuanlianjiedian=branch(i,
1
);
%
while
chuanlianjiedian~=branch(
1
,
1
)
%
for
j=
1
:row
%
if
branch(j,
2
)==chuanlianjiedian
% % zuixiaozhilu(m,n)=branch(j,
1
);
% zuixiaozhilu(m,n)=j;
%
if
branch(j,
10
)==
2
&&branch(j,
19
)==
0
&&branch(j,
3
)==
3
% branch(i,
19
)=branch(i,
19
)+branch(j,
14
);
% branch(i,
20
)=branch(i,
20
)+branch(j,
14
)*branch(j,
15
);
%
end
%
if
branch(j,
10
)==
1
&&branch(j,
19
)~=
0
% branch(i,
19
)=branch(j,
4
)+branch(i,
19
)*branch(j,
4
)*(branch(i,
20
)+branch(j,
5
));
% branch(i,
20
)=branch(j,
5
)*branch(j,
4
)+branch(i,
20
)*branch(j,
2
)/(branch(i,
20
)+branch(j,
5
));
%
end
%
if
branch(j,
10
)==
1
&&branch(j,
19
)==
0
% branch(i,
19
)=branch(i,
19
)+branch(j,
4
);
% branch(i,
20
)=branch(i,
20
)+branch(j,
4
)*branch(j,
5
);
%
end
% n=n+
1
;
% chuanlianjiedian=branch(j,
1
);
%
break
;
%
end
%
end
%
end
% m=m+
1
;
% n=
2
;
%
end
%
end
% l=zuixiaozhilu
%******非最小路上的参数折算*********
%*******首先对主网络上的节点进行折算*****************************************************
%*
m=
1
;
for
i=
1
:row
if
branch(i,
3
)==
7
jiedian=branch(i,
1
);
hangshu=i;
branch(hangshu,
11
)=branch(hangshu,
4
);
branch(hangshu,
12
)=branch(hangshu,
5
)*branch(hangshu,
4
);
while
branch(hangshu,
9
)==
0
for
j=
1
:row
if
branch(j,
2
)==jiedian&&branch(j,
9
)==
0
branch(j,
11
)=branch(j,
4
)+branch(hangshu,
11
);%branch的
11
列
12
列用来表示非最小路的指标归算——初次归算
branch(j,
12
)=branch(j,
4
)*branch(j,
5
)+branch(hangshu,
12
);
hangshu=j;
jiedian=branch(j,
1
);
break
end
if
branch(j,
2
)==jiedian&&branch(j,
9
)~=
0
branch(j,
13
)=branch(j,
13
)+
1
; %用第十三列表示已经进行过归算的标记
branch(j,
11
)=branch(j,
4
)+branch(hangshu,
11
);%branch的
11
列
12
列用来表示非最小路的指标归算
branch(j,
12
)=branch(j,
4
)*branch(j,
5
)+branch(hangshu,
12
);
hangshu=j;
break
end
end
end
branch(j,
12
)=branch(j,
12
)/branch(j,
11
);
end
end
%***************************
for
i=
1
:row
% branch(i,
17
)=
1
;%
17
列表示已归算支路数
if
branch(i,
13
)~=
0
&&branch(i,
16
)==
0
%改动
branch(i,
14
)=branch(i,
11
);
branch(i,
15
)=branch(i,
12
);
for
j=
1
:row
if
branch(j,
1
)==branch(i,
1
)&&branch(j,
13
)~=
0
&&i~=j
branch(i,
14
)=branch(i,
14
)+branch(j,
11
);
branch(i,
15
)=branch(i,
15
)+branch(j,
7
)*branch(j,
11
);
% branch(i,
14
)=branch(i,
14
)*branch(j,
11
)*(branch(i,
15
)+branch(j,
12
));%用branch的第
14
,
15
列表征二次归算
% branch(i,
15
)=branch(i,
15
)*branch(j,
12
)/(branch(i,
15
)+branch(j,
12
));
branch(i,
16
)=
2
;%用第
16
列表示二次归算行存放值
branch(j,
16
)=
1
;%表示已经进行了二次归算
branch(i,
17
)=branch(i,
17
)+
1
;
end
end
end
if
branch(i,
17
)==branch(i,
9
)&&branch(i,
16
)~=
0
branch(i,
18
)=
1
;%
18
列表示支路归算完成
end
for
t=
1
:k%k
中存放主节点个数
if
branch(i,
1
)==zhuwangluo(t)
if
branch(i,
10
)~=
1
branch(i,
10
)=
2
;
end
if
branch(i,
17
)==(branch(i,
9
)-
1
)&&branch(i,
16
)~=
0
branch(i,
18
)=
1
;
break
end
end
end
end
%*******************************
for
i=
1
:row
if
branch(i,
18
)==
1
&&branch(i,
10
)~=
2
%表示已经进行过二次归算且二次归算完毕
sanjiedian=branch(i,
1
);
panduan=branch(i,
10
);
while
panduan~=
2
&&panduan~=
1
%没有到达主节点
for
j=
1
:row
if
branch(j,
2
)==sanjiedian
branch(j,
14
)=branch(j,
4
);
branch(j,
15
)=branch(j,
5
)*branch(j,
4
);
branch(j,
14
)=branch(j,
14
)+branch(i,
14
);
branch(j,
15
)=branch(i,
14
)*branch(i,
15
)+branch(j,
15
);
sanjiedian=branch(j,
1
);
panduan=branch(j,
10
);
zhiliudian=j;
if
branch(zhiliudian,
9
)~=
0
for
t=
1
:row
if
(branch(t,
1
)==branch(zhiliudian,
1
)&&t~=zhiliudian&&branch(t,
13
)==
1
&&branch(t,
16
)==
0
)
||
(branch(t,
1
)==branch(zhiliudian,
1
)&&t~=zhiliudian&&branch(t,
16
)==
2
)
if
branch(t,
14
)~=
0
&&branch(t,
3
)~=
4
&&branch(t,
3
)~=
3
% branch(t,
14
)=branch(t,
14
)*branch(zhiliudian,
14
)*(branch(t,
15
)+branch(zhiliudian,
15
));%用branch的第
14
,
15
列表征二次归算
% branch(t,
15
)=branch(t,
15
)*branch(zhiliudian,
15
)/(branch(t,
15
)+branch(zhiliudian,
15
));
branch(t,
14
)=branch(t,
14
)+branch(zhiliudian,
14
);
branch(t,
15
)=branch(t,
15
)+branch(zhiliudian,
7
)*branch(zhiliudian,
14
);
end
if
branch(t,
14
)==
0
&&branch(t,
3
)~=
4
&&branch(t,
3
)~=
3
% branch(t,
14
)=branch(t,
11
)*branch(zhiliudian,
14
)*(branch(t,
12
)+branch(zhiliudian,
15
));%用branch的第
14
,
15
列表征二次归算
% branch(t,
15
)=branch(t,
12
)*branch(zhiliudian,
15
)/(branch(t,
12
)+branch(zhiliudian,
15
));
branch(t,
14
)=branch(t,
11
)+bracn(zhiliudian,
14
);
branch(t,
15
)=branch(t,
12
)+branch(zhiliudian,
7
)*branch(zhiliudian,
14
);
end
branch(t,
16
)=
2
;
branch(t,
17
)=branch(t,
17
)+
1
;
zhiliudian=t;
if
branch(t,
17
)==branch(t,
9
)
branch(t,
18
)=
1
;
% bianzhijiedian2=branch(t,
18
);
sanjiedian=branch(t,
1
);
panduan=branch(t,
10
);
break
end
if
branch(t,
17
)~=branch(t,
9
)
break
end
end
if
branch(t,
1
)==branch(zhiliudian,
1
)&&t~=zhiliudian&&branch(t,
13
)==
0
&&branch(t,
10
)~=
1
branch(t,
14
)=branch(zhiliudian,
14
);
branch(t,
15
)=branch(zhiliudian,
15
);
branch(t,
16
)=
2
;
branch(t,
17
)=branch(t,
17
)+
1
;
panduan=
2
;
break
end
end
end
branch(j,
15
)=branch(j,
15
)/branch(j,
14
);
break
end
end
end
end
end
%************************
for
i=
1
:row
if
branch(i,
10
)==
2
&&branch(i,
21
)==
0
%&&branch(i,
16
)==
2
branch(i,
19
)=branch(i,
14
);
branch(i,
20
)=branch(i,
15
);
if
branch(i,
9
)==
1
branch(i,
21
)=
2
;
end
if
branch(i,
9
)~=
1
&&branch(i,
16
)==
2
for
j=
1
:row
if
branch(i,
18
)==
1
branch(i,
21
)=
2
;
break
end
if
branch(j,
1
)==branch(i,
1
)&&branch(j,
10
)==
2
&&i~=j&&branch(j,
16
)==
0
if
branch(j,
14
)~=
0
&&branch(j,
3
)~=
4
&&branch(j,
3
)~=
3
% branch(i,
19
)=branch(i,
19
)*branch(j,
14
)*(branch(i,
20
)+branch(j,
15
));
% branch(i,
20
)=branch(i,
20
)*branch(j,
15
)/(branch(i,
20
)+branch(j,
15
));
branch(i,
19
)=branch(i,
19
)+branch(j,
14
);
branch(i,
20
)=branch(i,
20
)+branch(j,
7
)*branch(j,
14
);
branch(j,
21
)=
1
;
branch(i,
21
)=
2
;
end
if
branch(j,
14
)==
0
&&branch(j,
3
)~=
4
&&branch(j,
3
)~=
3
% branch(i,
19
)=branch(i,
19
)*branch(j,
11
)*(branch(i,
20
)+branch(j,
12
));
% branch(i,
20
)=branch(i,
20
)*branch(j,
12
)/(branch(i,
20
)+branch(j,
12
));
branch(i,
19
)=branch(i,
19
)+branch(j,
11
);
branch(i,
20
)=branch(i,
20
)+branch(j,
7
)*branch(j,
11
);
branch(j,
21
)=
1
;
branch(i,
21
)=
2
;
end
end
end
branch(i,
20
)=branch(i,
20
)/branch(i,
19
);
end
end
end
%**************************************************************************
%********最小路参数求解****************************************************
for
i=
1
:row
if
branch(i,
21
)==
2
for
j=
1
:row
if
branch(j,
1
)==branch(i,
1
)&&branch(j,
10
)==
1
branch(j,
19
)=branch(i,
19
);
branch(j,
20
)=branch(i,
20
);
if
branch(i,
19
)==
0
%gaidong
branch(j,
19
)=branch(i,
11
);
branch(j,
20
)=branch(i,
12
);
end
break
end
end
end
end
for
i=
1
:row
if
branch(i,
10
)==
1
&&branch(i,
19
)~=
0
&&branch(i,
3
)~=
4
&&branch(i,
3
)~=
3
% branch(i,
19
)=branch(i,
19
)*branch(i,
22
)*(branch(i,
20
)+branch(i,
23
));
% branch(i,
20
)=branch(i,
20
)*branch(i,
23
)/(branch(i,
20
)+branch(i,
23
));
branch(i,
19
)=branch(i,
19
)+
0
.
8
*branch(i,
22
);
branch(i,
20
)=branch(i,
20
)+branch(i,
7
)*branch(i,
22
);
end
end
% m=
1
;
%
for
i=
1
:v
% shenchajiedian=zuixiaozhilu(i,
1
);
%
while
shenchajiedian~=
0
%
if
branch(shenchajiedian,
10
)==
1
||
branch(shenchajiedian,
1
)==branch(
1
,
1
)
% branch(zuixiaozhilu(i,
1
),
19
)=branch(zuixiaozhilu(i,
1
),
19
)+branch(zuixiaozhilu(i,m),
19
)+branch(zuixiaozhilu(i,m),
4
);
% branch(zuixiaozhilu(i,
1
),
20
)=branch(zuixiaozhilu(i,
1
),
20
)+branch(zuixiaozhilu(i,m),
19
)*branch(zuixiaozhilu(i,m),
20
)+branch(zuixiaozhilu(i,m),
4
)*branch(zuixiaozhilu(i,m),
5
);
%
end
% m=m+
1
;
%
if
m<=(c+
1
)
% shenchajiedian=zuixiaozhilu(i,m);
%
else
%
break
%
end
%
end
%
end
%*********************************************************
m=
1
;
for
i=
1
:row
flag=
0
;
if
branch(i,
3
)==
7
%&&branch(i,
8
)==
0
% zuixiaozhilu(m,
1
)=branch(i,
1
);%zuixiaozhilu中存放所有最小支路
zuixiaozhilu(m,
1
)=i;%zuixiaozhilu中存放最小支路的行数
chuanlianjiedian=branch(i,
1
);
branch(i,
19
)=branch(i,
4
);
branch(i,
20
)=branch(i,
4
)*branch(i,
5
);
while
chuanlianjiedian~=branch(
1
,
1
)
for
j=
1
:row
if
branch(j,
2
)==chuanlianjiedian
% zuixiaozhilu(m,n)=branch(j,
1
);
zuixiaozhilu(m,n)=j;
if
flag==
1
if
branch(j,
9
)==
0
&&branch(j,
10
)==
0
branch(i,
19
)=branch(i,
19
)+branch(j,
4
);
% branch(i,
20
)=branch(i,
20
)+branch(j,
4
)*branch(j,
5
);
end
if
branch(j,
9
)~=
0
&&branch(j,
10
)==
0
branch(i,
19
)=branch(i,
19
)+branch(j,
4
);
% branch(i,
20
)=branch(i,
20
)+branch(j,
4
)*branch(j,
5
);
for
v=
1
:row
if
branch(v,
1
)==branch(j,
1
)&&v~=j&&branch(v,
3
)~=
4
if
branch(v,
13
)~=
0
branch(i,
19
)=branch(i,
19
)+
0
.
8
*branch(v,
11
);
branch(i,
20
)=branch(i,
20
)+branch(v,
7
)*branch(v,
11
);
end
if
branch(v,
13
)==
0
branch(i,
19
)=branch(i,
19
)+
0
.
8
*branch(v,
14
);
branch(i,
20
)=branch(i,
20
)+branch(v,
7
)*branch(v,
14
);
end
end
end
end
if
branch(j,
10
)==
2
%&&branch(j,
19
)==
0
%&&branch(j,
3
)==
3
branch(i,
19
)=branch(i,
19
)+branch(j,
4
);
% branch(i,
20
)=branch(i,
20
)+branch(j,
4
)*branch(j,
5
);
for
t=
1
:row
if
branch(t,
1
)==branch(j,
1
)&&branch(t,
3
)~=
4
&&t~=j%&&branch(t,
3
)~=
3
branch(i,
19
)=branch(i,
19
)+
0
.
8
*branch(t,
14
);
% branch(i,
20
)=branch(i,
20
)+branch(t,
7
)*branch(t,
4
);
end
end
end
if
branch(j,
10
)==
1
&&branch(j,
3
)~=
4
%branch(i,
19
)=branch(j,
4
)+branch(i,
19
)*branch(j,
4
)*(branch(i,
20
)+branch(j,
5
));
% branch(i,
20
)=branch(j,
5
)*branch(j,
4
)+branch(i,
20
)*branch
% (j,
2
)/(branch(i,
20
)+branch(j,
5
));
%
if
flag==
0
branch(i,
19
)=branch(i,
19
)+branch(j,
4
);%+branch(j,
19
);
% branch(i,
20
)=branch(i,
20
)+branch(j,
4
)*branch(j,
5
);%+
0
.
02
*branch(j,
20
);
if
branch(j,
3
)~=
4
&&branch(j,
3
)~=
3
%&&branch(j,
3
)~=
5
branch(i,
19
)=branch(i,
19
)+
0
.
2
*branch(j,
19
);
% branch(i,
20
)=branch(i,
20
)+branch(j,
7
)*branch(j,
4
);
end
end
n=n+
1
;
chuanlianjiedian=branch(j,
1
);
break
;
end
if
flag==
0
if
branch(j,
9
)==
0
&&branch(j,
10
)==
0
branch(i,
19
)=branch(i,
19
)+branch(j,
4
);
branch(i,
20
)=branch(i,
20
)+branch(j,
4
)*branch(j,
5
);
end
if
branch(j,
9
)~=
0
&&branch(j,
10
)==
0
branch(i,
19
)=branch(i,
19
)+branch(j,
4
);
branch(i,
20
)=branch(i,
20
)+branch(j,
4
)*branch(j,
5
);
for
v=
1
:row
if
branch(v,
1
)==branch(j,
1
)&&v~=j&&branch(v,
3
)~=
4
if
branch(v,
13
)~=
0
branch(i,
19
)=branch(i,
19
)+
0
.
3
*branch(v,
11
);
branch(i,
20
)=branch(i,
20
)+
0
.
7
*branch(v,
7
)*branch(v,
11
);
end
if
branch(v,
13
)==
0
branch(i,
19
)=branch(i,
19
)+
0
.
3
*branch(v,
14
);
branch(i,
20
)=branch(i,
20
)+
0
.
7
*branch(v,
7
)*branch(v,
14
);
end
end
end
end
if
branch(j,
10
)==
2
%&&branch(j,
19
)==
0
%&&branch(j,
3
)==
3
branch(i,
19
)=branch(i,
19
)+branch(j,
4
);
branch(i,
20
)=branch(i,
20
)+branch(j,
4
)*branch(j,
5
);
for
t=
1
:row
if
branch(t,
1
)==branch(j,
1
)&&branch(t,
3
)~=
4
&&t~=j&&branch(t,
3
)~=
3
branch(i,
19
)=branch(i,
19
)+
0
.
3
*branch(t,
14
);
branch(i,
20
)=branch(i,
20
)+
0
.
7
*branch(t,
7
)*branch(t,
14
);
end
end
if
branch(i,
8
)==
1
% chuanlianjiedian=branch(
1
,
1
);
flag=
1
;
branch(i,
20
)=branch(i,
20
)+
0
.
7
*branch(j,
7
)*branch(j,
19
);
end
end
if
branch(j,
10
)==
1
&&branch(j,
3
)~=
4
%branch(i,
19
)=branch(j,
4
)+branch(i,
19
)*branch(j,
4
)*(branch(i,
20
)+branch(j,
5
));
% branch(i,
20
)=branch(j,
5
)*branch(j,
4
)+branch(i,
20
)*branch
% (j,
2
)/(branch(i,
20
)+branch(j,
5
));
%
if
flag==
0
branch(i,
19
)=branch(i,
19
)+branch(j,
4
);%+branch(j,
19
);
branch(i,
20
)=branch(i,
20
)+branch(j,
4
)*branch(j,
5
);%+
0
.
02
*branch(j,
20
);
if
branch(j,
3
)~=
4
&&branch(j,
3
)~=
3
%&&branch(j,
3
)~=
5
branch(i,
19
)=branch(i,
19
)+
0
.
3
*branch(j,
19
);
branch(i,
20
)=branch(i,
20
)+
0
.
7
*branch(j,
7
)*branch(j,
19
);
end
%
end
%
if
flag==
1
% branch(i,
19
)=branch(i,
19
)+branch(j,
4
);
%
if
branch(j,
3
)~=
4
&&branch(j,
3
)~=
3
% branch(i,
19
)=branch(i,
19
)+
0
.
8
*branch(j,
19
);
%
end
%
end
end
%
if
branch(j,
10
)==
1
&&branch(j,
19
)==
0
% branch(i,
19
)=branch(i,
19
)+branch(j,
4
);
% branch(i,
20
)=branch(i,
20
)+branch(j,
4
)*branch(j,
5
);
%
end
n=n+
1
;
chuanlianjiedian=branch(j,
1
);
break
;
end
end
end
end
m=m+
1
;
n=
2
;
branch(i,
20
)=branch(i,
20
)/branch(i,
19
);
%
if
branch(i,
3
)==
7
&&branch(i,
8
)==
1
% % branch(i,
19
)=
0
.
0163
;
% % branch(i,
20
)=
3
*
0
.
0163
;
% jiedian=branch(i,
1
);
% hang=i;
%
while
branch(hang,
10
)~=
2
%
for
j=
1
:row
%
if
branch(j,
2
)==jiedian
% jiedian=branch(j,
1
);
% hang=j;
% %
if
branch(j,
9
)~=
0
% % branch(i,
19
)=branch(i,
19
)+branch(j,
11
);
% % branch(i,
20
)=branch(i,
20
)+branch(j,
12
);
% %
for
t=
1
:row
% %
if
branch(t,
1
)==branch(j,
1
)&&t~=j
% %
if
branch(t,
14
)~=
0
% % branch(i,
19
)=branch(i,
19
)+branch(t,
14
);
% % branch(i,
20
)=branch(i,
20
)+
0
.
02
*branch(t,
15
);
% %
end
% %
if
branch(t,
14
)==
0
% % branch(i,
19
)=branch(i,
19
)+branch(t,
11
);
% % branch(i,
20
)=branch(i,
20
)+
0
.
02
*branch(t,
12
);
% %
end
% %
end
% %
end
%
end
%
break
%
end
%
end
%
end
% branch(i,
20
)=branch(i,
20
)/branch(i,
19
);
%
end
end
end
branch1=branch;
end
%% 加入分布式电源后的可靠性评估
clc;
clear;
%% 读取数据
branch=load(’算例dg.txt’);
%% 主程序
tic
branchzuixiaolu=zuixiaolufa(branch); % 调用最小路法
zuixiaolufacanshujisuan=canshujisuan(branchzuixiaolu,1); % 计算可靠性指标
toc; % 计算时间
1 17 4 0
.006
4 0
.2
0
2 18 5 0
.037
1 0 1
.2
3 19 5 0
.037
1 0 1
.2
4 20 5 0
.037
1 0 1
.2
5 21 5 0
.037
1 0 1
.2
6 22 5 0
.037
1 0 1
.2
7 23 5 0
.037
1 0 1
.2
8 24 5 0
.037
1 0 1
.2
9 25 5 0
.037
1 0 1
.2
10 26 5 0
.037
1 0 1
.2
11 27 5 0
.037
1 0 1
.2
12 28 5 0
.037
1 0 1
.2
13 29 5 0
.037
1 0 1
.2
14 30 4 0
.006
4 0
.2
0
15 31 5 0
.037
1 0 1
.2
17 2 1 0
.0163
4 0 0
18 3 1 0
.0163
4 0 0
19 4 1 0
.0163
4 0 0
20 5 1 0
.0163
4 0 0
21 6 1 0
.0163
4 0 0
22 7 1 0
.0163
4 0 0
23 8 1 0
.0163
4 0 0
24 9 1 0
.0163
4 0 0
25 10 1 0
.0163
4 0 0
26 11 1 0
.0163
4 0 0
27 12 1 0
.0163
4 0 0
28 13 1 0
.0163
4 0 0
29 14 1 0
.0163
4 0 0
30 15 1 0
.0163
4 0 0
31 16 1 0
.0163
4 0 0
2 32 2 0
.003
3 0 0
3 33 2 0
.003
3 0 0
4 34 2 0
.003
3 0 0
5 35 2 0
.003
3 0 0
6 36 2 0
.003
3 0 0
7 37 2 0
.003
3 0 0
8 38 2 0
.003
3 0 0
9 39 4 0
.006
4 0
.2
0
10 40 2 0
.003
3 0 0
11 41 2 0
.003
3 0 0
12 42 2 0
.003
3 0 0
13 43 4 0
.006
4 0
.2
0
14 44 2 0
.003
3 0 0
15 45 2 0
.003
3 0 0
32 47 7 0
.002
2 0 0
33 48 7 0
.002
2 0 0
34 49 7 0
.002
2 0 0
35 50 7 0
.002
2 0 0
36 51 7 0
.002
2 0 0
37 52 7 0
.002
2 0 0
38 53 7 0
.002
2 0 0
40 55 7 0
.002
2 0 0
41 56 7 0
.002
2 0 0
42 57 7 0
.002
2 0 0
44 59 7 0
.002
2 0 0
45 60 7 0
.002
2 0 0
46 61 7 0
.002
2 0 0
39 106 5 0
.037
1 0 1
.2
62 107 5 0
.037
1 0 1
.2
63 108 5 0
.037
1 0 1
.2
64 109 5 0
.037
1 0 1
.2
65 110 5 0
.037
1 0 1
.2
106 62 1 0
.0163
4 0 0
107 63 1 0
.0163
4 0 0
108 64 1 0
.0163
4 0 0
109 65 1 0
.0163
4 0 0
110 66 1 0
.0163
4 0 0
39 67 2 0
.003
3 0 0
62 68 2 0
.003
3 0 0
63 69 2 0
.003
3 0 0
64 70 2 0
.003
3 0 0
65 71 2 0
.003
3 0 0
66 72 2 0
.003
3 0 0
67 73 1 0
.0163
4 0 0
68 74 1 0
.0163
4 0 0
69 75 1 0
.0163
4 0 0
70 76 1 0
.0163
4 0 0
71 77 1 0
.0163
4 0 0
72 78 1 0
.0163
4 0 0
73 79 7 0
.002
2 0 0
74 80 7 0
.002
2 0 0
75 81 7 0
.002
2 0 0
76 82 7 0
.002
2 0 0
77 83 7 0
.002
2 0 0
43 112 5 0
.037
1 0 1
.2
85 113 5 0
.037
1 0 1
.2
87 114 5 0
.037
1 0 1
.2
88 115 5 0
.037
1 0 1
.2
112 85 1 0
.0163
4 0 0
113 87 1 0
.0163
4 0 0
114 88 1 0
.0163
4 0 0
115 89 1 0
.0163
4 0 0
43 90 2 0
.003
3 0 0
85 91 2 0
.003
3 0 0
87 92 2 0
.003
3 0 0
88 93 2 0
.003
3 0 0
89 94 2 0
.003
3 0 0
90 95 1 0
.0163
4 0 0
91 96 1 0
.0163
4 0 0
92 97 1 0
.0163
4 0 0
93 98 1 0
.0163
4 0 0
94 99 1 0
.0163
4 0 0
95 100 7 0
.002
2 0 0
96 101 7 0
.002
2 0 0
97 102 7 0
.002
2 0 0
98 103 7 0
.002
2 0 0
99 104 7 0
.002
2 0 0
16 46 2 0
.003
3 0 0
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
