0.932:1 -j/0.04190.25202j1-j/0.0510.05403+0.22304j560.12291+0.25581j120.22092+0.19988j0.01938+0.05917j0.05695+0.17388j0.01335+0.04211j0.09498+0.1989j0.06615+0.13027j2-j/0.0826-j/0.0234411130.05811+0.17632j0.08205+0.19207j0.969:10.55618j0.17093+0.34802j0.04699+0.19797j0.978:10.20912j70.06701+0.17103j0.11011j100.03181+0.0845j0.17615j90.12711+0.27038j-j/0.193-j/0.0283814
方法1,追加支路顺序表见下表
注意:对地支路的添加相当于是添加了树,所有树支支路均用红色表示。
i j 阻抗值z k 0 1 -j/0.051 0 2 -j/0.0826
1 2 0.01938+0.05917j 0 3 -j/0.0283
2 3 0.04699+0.19797j 0 4 -j/0.0234
2 4 0.05811+0.17632j 3 4 0.06701+0.17103j 0 5 -j/0.0419
1 5 0.05403+0.22304j 2 5 0.05695+0.17388j 4 5 0.01335+0.04211j
5 6 0.932^2*0.25202j 1/0.932 4 7 0.978^2*0.20912j 1/0.978 7 8 0.17615j 0 9 -j/0.19
4 9 0.969^2*0.55618j 7 9 0.11001j
9 10 0.03181+0.0845j 10 11 0.08205+0.19207j 6 12 0.12291+0.25581j 6 11 0.09498+0.1989j 6 13 0.06615+0.13027j 12 13 0.22092+0.19988j 9 14 0.12711+0.27038j 13 14 0.17093+0.34802j 将其改写成B矩阵:
1/0.969
B=[ 0 1 -1i/0.051 1 0; 0 2 -1i/0.0826 1 0; 1 2 0.01938+0.05917j 1 0; 0 3 -1i/0.0283 1 0; 2 3 0.04699+0.19797j 1 0; 0 4 -1i/0.0234 1 0; 2 4 0.05811+0.17632j 1 0; 3 4 0.06701+0.17103j 1 0; 0 5 -1i/0.0419 1 0; 1 5 0.05403+0.22304j 1 0; 2 5 0.05695+0.17388j 1 0; 4 5 0.01335+0.04211j 1 0; 5 6 0.25202j 0.932 1; 4 7 0.20912j 0.978 1; 7 8 0.17615j 1 0; 0 9 -1i/0.19 1 0; 4 9 0.55618j 0.969 1; 7 9 0.11001j 1 0; 9 10 0.03181+0.0845j 1 0; 10 11 0.08205+0.19207j 1 0; 6 12 0.12291+0.25581j 1 0; 6 11 0.09498+0.1989j 1 0; 6 13 0.06615+0.13027j 1 0; 12 13 0.22092+0.19988j 1 0; 9 14 0.12711+0.27038j 1 0; 13 14 0.17093+0.34802j 1 0;
];
说明:第四列值为1表明是输电线路,否则为变压器;
第五列值为1表明实际变比应为1/k,实际变压器阻抗应为k^2*z
以上仅为了说明主函数impedence.m中B矩阵的形成过程。 在命令窗口中输入impedence即可。
还有四个辅助的M文件分别是add_tree.m、add_chain.m、add_tree_tra.m、 add_chain_tra.m;依次实现的功能是将不含变压器的支路作为树支,将不含变
压器的支路作为链支,将变压器支路作为树支,将变压器支路作为链支。详细内容见附录。
方法2,追加支路顺序表见下表
注意:对地支路的添加相当于是添加了树,所有树支支路均用红色表示。
i j 阻抗值 k 0 1 -j/0.051 0 2 -j/0.0826
1 2 0.01938+0.05917j 0 3 -j/0.0283
2 3 0.04699+0.19797j 0 4 -j/0.0234 3 4 0.06701+0.17103j 2 4 0.05811+0.17632j 0 5 -j/0.0419
4 5 0.01335+0.04211j 2 5 0.05695+0.17388j 1 5 0.05403+0.22304j 5 6 0.932^2*0.25202j 4 7 0.978^2*0.20912j 7 8 0.17615j 0 9 -j/0.19 7 9 0.11001j
9 4 0.55618j 9 10 0.03181+0.0845j 10 11 0.08205+0.19207j 6 11 0.09498+0.1989j 6 12 0.12291+0.25581j 12 13 0.22092+0.19988j 6 13 0.06615+0.13027j 13 14 0.17093+0.34802j 9 14 0.12711+0.27038j
将其改写成B矩阵:
B=[
0 1 -j/0.051 1 0 2 -j/0.0826 1 1 2 0.01938+0.05917j 0 3 -j/0.0283 1 2 3 0.04699+0.19797j 0 4 -j/0.0234
1 3 4 0.06701+0.17103j 2 4 0.05811+0.17632j 0 5 -j/0.0419
1
1/0.932 1/0.978 0.969 0; 0; 1 0; 0; 1 0; 0;
1 0; 1 0; 0;
4 5 0.01335+0.04211j 1 0; 2 5 0.05695+0.17388j 1 0; 1 5 0.05403+0.22304j 1 0; 5 6 0.25202j 4 7 0.20912j 7 8 0.17615j 0 9 -j/0.19
7 9 0.11001j
0.932 1; 0.978 1; 1 0;
1 0;
0;
1 0;
1 0; 1 0;
9 4 0.55618j 0.969 9 10 0.03181+0.0845j 6 11 0.09498+0.1989j 10 11 0.08205+0.19207j 1 0; 6 12 0.12291+0.25581j 1 0; 12 13 0.22092+0.19988j 1 0; 6 13 0.06615+0.13027j 1 0; 13 14 0.17093+0.34802j 1 0; 9 14 0.12711+0.27038j 1 0; ];
可以将impedence.m程序中的B阵作出修改后,再算一遍,与之前的结果进行比较。
附录:
1,IEEE14部分数据: 线路参数 序号 节点i 节点j R X b/2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 1 2 2 2 3 4 6 6 6 7 7 9 12 13 14 10 2 5 3 4 5 4 5 11 12 13 8 9 10 13 14 9 11 0.01938 0.05403 0.04699 0.05811 0.05695 0.06701 0.01335 0.09498 0.12291 0.06615 0.0 0.0 0.03181 0.22092 0.17093 0.12711 0.08205 0.05917 0.22304 0.19797 0.17632 0.17388 0.17103 0.04211 0.19890 0.25581 0.13027 0.17615 0.11001 0.08450 0.19988 0.34802 0.27038 0.19207 0.0264 0.0246 0.0219 0.0170 0.0173 0.0064 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 接地支路参数 变压器参数 节点号 导纳 9 序号 0.190 节点i 节点j R X ___k 0.978 0.969 0.932 kk 1 2 3 4 4 5 7 9 6 0.0 0.0 0.0 0.20912 0.55618 0.25202 0.9 0.9 0.9 1.1 1.1 1.1 2,add_tree.m %本函数的作用是向阻抗矩阵X增添一条树支,i是已有的节点编号,j是新添的节点编号,z是树支阻抗。
%i为0时需谨慎,一般表示添加对地树支 %需要保证的是i不能超过方阵X的维数 function Y=add_tree(X,i,j,z) [m,n]=size(X); if(m==n) if(i==0) o=zeros(m);
cl=o(:,1); % 获得与X有相同维数的全零列向量
Y=[X,cl;cl.',z]; else try
cl=vpa(X(:,i),6); % 获得与X(n阶)有相同维数的列向量
z1=vpa(X(i,i)+z,6); Y=[X,cl;cl.',z1]; catch
disp('节点编号超过了矩阵的维数。'); disp(lasterr); end end else
disp('增加对地支路时出错了,输入的阻抗矩阵不是方阵') Y=X; end
3,add_chain.m
%本函数实现的功能是向阻抗矩阵X的第i和第j节点间追加一个链支,该链支阻抗为z,输出为修改后的矩阵(阶数不变)。 %节点编号时注意,不能从参考节点引出链支
function Y=add_chain(X,i,j,z) [m,n]=size(X); if(m==n)
o=zeros(m);
cl=o(:,1); % 获得与X(n阶)有相同维数的全零列向量 try
cl(i)=1; cl(j)=-1; Zl=X*cl;
Zll=cl.'*Zl+z;
Y=vpa(X-Zl*Zl.'/Zll,6); %Zl.'是Zl直接的转置 catch
disp('节点编号超过了矩阵的维数。'); disp(lasterr); end else
disp('增加链支时出错了,输入的阻抗矩阵不是方阵') Y=X; end
4,add_tree_tra.m
%本函数实现的功能是添加一个变压器作树支。i是已有的节点编号,j是新添的节点编号
%i为0时需谨慎,一般表示添加对地树支 %需要保证的是i不能超过方阵X的维数 %k为变比(要求i侧的值为1) %z为i侧变压器等值阻抗
function Y=add_tree_tra(X,i,j,k,z) [m,n]=size(X); if(m==n) if(i==0) o=zeros(m);
cl=o(:,1); % 获得与X有相同维数的全零列向量
temp=vpa(k^2*z,6); Y=[X,cl;cl.',temp]; else try
cl=vpa(k*X(:,i),6); % 获得与X(n阶)有相同维数的列向量
temp1=vpa(k^2*(X(i,i)+z),6); Y=[X,cl;cl.',temp1]; catch
disp('节点编号超过了矩阵的维数。');
disp(lasterr); end end else
disp('增加对地支路时出错了,输入的阻抗矩阵不是方阵') Y=X; end
5,add_chain_tra.m
%本函数实现的功能是添加一个变压器作链支。i,j都是已有的节点编号 %需要保证的是i,j不能超过方阵X的维数,而且任意一个都不能是0 %k为变比(要求i侧的值为1) %z为i侧变压器等值阻抗
function Y=add_chain_tra(X,i,j,k,z) [m,n]=size(X); if(m==n)
o=zeros(m);
cl=o(:,1); % 获得与X(n阶)有相同维数的全零列向量 try
cl(i)=k; cl(j)=-1; Zl=X*cl;
Zll=cl.'*Zl+k^2*z;
Y=vpa(X-Zl*Zl.'/Zll,6); %Zl.'是Zl直接的转置 catch
disp('节点编号超过了矩阵的维数。'); disp(lasterr); end else
disp('增加链支时出错了,输入的阻抗矩阵不是方阵') Y=X; end
6,impedence.m(主程序) clc clear
n=14; %阻抗矩阵有14阶 nl=26; %总共用了26步 B=[
0 1 -1i/0.051 1 0; 0 2 -1i/0.0826 1 0; 1 2 0.01938+0.05917j 1 0; 0 3 -1i/0.0283 1 0; 2 3 0.04699+0.19797j 1 0;
0 4 -1i/0.0234 1 0; 3 4 0.06701+0.17103j 1 0; 2 4 0.05811+0.17632j 1 0; 0 5 -1i/0.0419 1 0; 4 5 0.01335+0.04211j 1 0; 2 5 0.05695+0.17388j 1 0; 1 5 0.05403+0.22304j 1 0; 5 6 0.25202j 0.932 1; 4 7 0.20912j 0.978 1; 7 8 0.17615j 1 0; 0 9 -1i/0.19 1 0; 7 9 0.11001j 1 0;
9 4 0.55618j 0.969 0; 9 10 0.03181+0.0845j 1 0; 10 11 0.08205+0.19207j 1 0; 6 11 0.09498+0.1989j 1 0; 6 12 0.12291+0.25581j 1 0; 12 13 0.22092+0.19988j 1 0; 6 13 0.06615+0.13027j 1 0; 13 14 0.17093+0.34802j 1 0; 9 14 0.12711+0.27038j 1 0; ];
Z=B(1,3);
m=1;%用于存储最大节点号 for k1=2:nl
p=B(k1,1); q=B(k1,2);z=B(k1,3);k=B(k1,4);f=B(k1,5); if p==0 %追加接地树支 Z=add_tree(Z,p,q,z); m=m+1; else
if q>m %添加的是一般的树支,通过k来区分是变压器或者是输电线路
if k==1 %一般输电线路
Z=add_tree(Z,p,q,z);
else %变压器,通过f来区分高低压侧
if f==0 %i侧为低压侧,数据不需要处理
Z=add_tree_tra(Z,p,q,k,z);
else %i侧为高压侧,数据需要进一步处理
Z=add_tree_tra(Z,p,q,1/k,k^2*z);
end end m=m+1;
else %添加的是链支,通过k来区分是变压器或者是输电线路 if k==1 %一般输电线路
Z=add_chain(Z,p,q,z);
else %变压器,通过f来区分高低压侧
if f==0 %i侧为低压侧,数据不需要处理
Z=add_chain_tra(Z,p,q,k,z);
else %i侧为高压侧,数据需要进一步处理
Z=add_chain_tra(Z,p,q,1/k,k^2*z);
end
end end end end
disp('阻抗矩阵Z='); disp(Z);
因篇幅问题不能全部显示,请点此查看更多更全内容