基于节点分层的配网潮流前推回代方法matlab程序(IEEE33节点潮流计算)
摘要:结合配电网特有的辐射状特点,提出了一种新的基于节点分层的配网潮流前推回代方法。该方法利用配网支路及其节点参数所形成的节点-节点关联矩阵推导出节点分层矩阵及其对应的上层节点矩阵,再根据所形成的分层矩阵及其对应的上层节点矩阵利用前推支路电流和回代电压进行计算。通过对算例的编程计算,结果表明所提的算法有效、快速及实用。
关键词:配电网;潮流;前推回代算法
1 配电网节点分层拓扑分析
1.1 配电网原始数据描述
结合配电网呈辐射状的特点,用节点分层方法来描述,配电网的原始数据采用下面的格式:
支路参数矩阵BranchM:
{支路所连节点1 支路所连节点2 支路阻抗参数}
节点参数矩阵NodeM:
{节点号有功负荷无功负荷}
根据以上的参数矩阵容易求得配网此种结构运行时的节点-节点关联矩阵 NodeN ,再利用下述方法求得两个关键矩阵:节点分层矩阵 LayerM 及其对应的上层节点矩阵 NU 。其中 LayerM 矩阵大小根据具体分层来定, NU 为1× N , N 为节点数,其中每列的元素是以此列数为节点号对应的上层节点号。
以图1所示8节点辐射状网络为例,图中1、2、3、 4、5、6、7、8为母线节点编号,①②③④⑤⑥⑦为支路(分段开关)编号,⑧⑨为支路(联络开关)编号。
1.2 形成节点分层矩阵 LayerM 及其对应的上层节点矩阵 NU
正常运行时联络开关是打开的,分段开关是闭合的,则此时图1所示网络的节点-节点关联矩阵为:
这是个对称阵,这里取 NodeN 的上三角矩阵NodeN′ 进行节点分层拓扑分析。具体步骤如下:
步骤一:电源结点号为3,则记节点分层矩阵的第1列第1行为“3”,即 LayerM = [3] ,相应的NU=[0 0 0 0 0 0 0 0]。
步骤二:找下一层节点。取 LayerM 中的第一列元素,这里为“3”,所以从 NodeN′ 的第3行找“1”元素所在列。这里第3行中没有“1”,再从 NodeN′的第3列中找出“1”元素所在的行为“2”,查找LayerM 中是否有“2”,有则不记,没有则把“2”记入节点分层矩阵 LayerM 的第2列第1行。节点分层矩阵就变为 3 20 0 LayerM =
相应地,NU 中的第二列就为3,即 NU=[0 3 0 0 0 0 0 0]。
步骤三:继续找下一层节点。取 LayerM 中的第二列元素,这里仅有“2”,找 NodeN′ 中第2行为“1”所在列为“3”和“4”,查找 LayerM 中是否有“3”和“4”,没有则把“4” 记入节点分层矩阵LayerM 第3列第1行,再从 NodeN′ 的第2列中找出“1”元素所在的行。这里没有,所以经过分析后节点分层矩阵就变为LayerM=
相应地,NU 中的第四列就为2,即 NU=[0 3 0 2 0 0 0 0]。
骤四:再找下一层节点,取 LayerM 中的第三列元素,这里仅有“4”,找 NodeN′ 中第 4 行为“1”所在列为“5”和“8”,查找 LayerM 中是否有“5”和“8”,没有则把“5”和“8”分别记入节点分层矩阵 LayerM 第 4 列第 1、2 行,再从 NodeN′的第 4 列中找出“1”元素所在的行,这里没有,所以经过分析后节点分层矩阵就变为LayerM =
相应地,NU 中的第五列和第八列都为 4,即 NU=[0 3 0 2 4 0 0 4]。
步骤五:还要再找下一层节点。取 LayerM 中的第 4 列元素,这里为“5”和“8”,首先找 NodeN′中第 5 行和第 5 列中“1”。其中第 5 行没有“1”, 第 5 列中“1”在第 1、4 行,查找 LayerM 中是否有“1”和“4”,没有则把“1”记入节点分层矩阵LayerM 第 5 列第 1 行,相应地, NU 中的第 1 列 为 5,即NU=[5 3 0 2 4 0 0 4]。再找 NodeN′ 中第8 行和第 8 列中“1”,其中第 8 行没有“1”,第 8列中“1”在第 4、6、7 行,查找 LayerM 中是否有“4”、“6”、“7”,没有则把“6”、“7”分别记入节点分层矩阵 LayerM 第 5 列第 2、3 行,相应地,NU中的第 6 列和第 7 列都为 8 , 即5 NU=[ 3 0 2 4 8 8 4],节点分层矩阵已经变为LayerM =
此时所有节点都查找过,结束查找,以上就为最后的拓扑分析结果。从LayerM 中节点分层一目了然,并且从 NU 中也能很快地得到末梢节点 1,6,7 以及每个节点对应的上层节点,这非常有利于后面的求解。分层拓扑分析的同时,其潮流的方向也得以确定(如图 2 所示)。
2 算例
以IEEE33节点配电网系统参数为算例。
系统结构如下:
3 matlab程序
%编程思路见《李如琦.基于节点分层的配网潮流前推回代方法,电力系统保护与控制》
clc
clear
tic
b=32;%支路数
n=33;%节点数
LL=5; %联络开关数
Sb=10; %MW
Vb=12.66; %KV
Zb=Vb^2/Sb; %ohm
BranchM=[1 1 2 0.0922+i*0.047 %支路参数矩阵
2 2 3 0.4930+i*0.2511
3 3 4 0.3660+i*0.1864
4 4 5 0.3811+i*0.1941
5 5 6 0.8190+i*0.7070
6 6 7 0.1872+i*0.6188
7 7 8 0.7114+i*0.2351
8 8 9 1.0300+i*0.7400
9 9 10 1.0440+i*0.7400
10 10 11 0.1966+i*0.0650
11 11 12 0.3744+i*0.1238
12 12 13 1.4680+i*1.1550
13 13 14 0.5416+i*0.7129
14 14 15 0.5910+i*0.5260
15 15 16 0.7463+i*0.5450
16 16 17 1.2890+i*1.7210
17 17 18 0.3720+i*0.5740
18 2 19 0.1640+i*0.1565
19 19 20 1.5042+i*1.3554
20 20 21 0.4095+i*0.4784
21 21 22 0.7089+i*0.9373
22 3 23 0.4512+i*0.3083
23 23 24 0.8980+i*0.7091
24 24 25 0.8960+i*0.7011
25 6 26 0.2030+i*0.1034
26 26 27 0.2842+i*0.1447
27 27 28 1.0590+i*0.9337
28 28 29 0.8042+i*0.7006
29 29 30 0.5075+i*0.2585
30 30 31 0.9744+i*0.9630
31 31 32 0.3105+i*0.3619
32 32 33 0.3410+i*0.5362
33 8 21 2.0+i*2.0
34 9 15 2.0+i*2.0
35 12 22 2.0+i*2.0
36 18 33 0.5+i*0.5
37 25 29 0.5+i*0.5 ];
NodeM=[1 0
2 0.1000+i*0.0600 %节点参数矩阵(电源节点负荷为0)
3 0.0900+i*0.0400
4 0.1200+i*0.0800
5 0.0600+i*0.0300
6 0.0600+i*0.0200
7 0.2000+i*0.1000
8 0.2000+i*0.1000
9 0.0600+i*0.0200
10 0.0600+i*0.0200
11 0.0450+i*0.0300
12 0.0600+i*0.0350
13 0.0600+i*0.0350
14 0.1200+i*0.0800
15 0.0600+i*0.0100
16 0.0600+i*0.0200
17 0.0600+i*0.0200
18 0.0900+i*0.0400
19 0.0900+i*0.0400
20 0.0900+i*0.0400
21 0.0900+i*0.0400
22 0.0900+i*0.0400
23 0.0900+i*0.0500
24 0.4200+i*0.2000
25 0.4200+i*0.2000
26 0.0600+i*0.0250
27 0.0600+i*0.0250
28 0.0600+i*0.0200
29 0.1200+i*0.0700
30 0.2000+i*0.6000
31 0.1500+i*0.0700
32 0.2100+i*0.1000
33 0.0600+i*0.0400 ];
%_________________________________________________________________________
%定义负荷因子,用以在不同负荷水平下观察静态电压稳定性的变化规律
f=1;
NodeM(:,2)=NodeM(:,2)*f;
%_________________________________________________________________________
BranchM(:,4)=BranchM(:,4)/Zb; %阻抗标幺化
NodeM(:,2)=NodeM(:,2)/Sb; %功率标幺化
a=[33 34 35 36 37]; %原始网络
%a=[7 14 9 32 37]; %139.4731kw文献 基于十进制编码的差分进化算法在配电网重构中的应用
for i1=1:LL %按照断开开关矩阵,剔除Z矩阵中的断开支路
j=i1-1;
for i2=1:b+LL-j
if BranchM(i2,1)==a(1,i1)
BranchM(i2,:)=[];
break
end
end
end
。。。。。。。。。略