📄 buduichen.m
字号:
function buduichen
%数据来源于教材《电力系统暂态分析》P129例(5-1)
%给学生提供的不对称短路故障的部分程序。
%要求的工作(1)自动形成导纳阵;(2)完善短路类型,两相相间短路和两相短路接地;(3)求短路后发电机的电压
clear %清除所有变量的值
N1=3; %输入网络的节点数
N2=5; %输入包括所有发电机节点的网络的节点数
k=3;%输入短路点的节点号
fault=1; %输入短路类型 ;f(1)=1单相短路接地;f(2)=2两相相间短路;f(1,1)=3两相短路接地
%输入支路各序阻抗,ZZ1表示支路正序阻抗,ZZ2表示支路负序阻抗,ZZ0表示支路零序阻抗
ZZ1=[j*0.15 j*0.1 j*0.1
j*0.1 j*0.075 j*0.1
j*0.1 j*0.1 0 ];
ZZ0=[j*0.05 j*0.2 j*0.2
j*0.2 j*0.025 j*0.2
j*0.2 j*0.2 0 ];
ZG1=[0 j*0.1 j*0.1 j*0.05 0
j*0.1 0 j*0.1 0 j*0.025
j*0.1 j*0.1 0 0 0
j*0.05 0 0 j*0.1 0
0 j*0.025 0 0 j*0.05];
ZZ2=zeros(3,3);
ZZ2=ZZ1;
%不计及发电机节点的节点导纳矩阵
%求得正序节点导纳矩阵
Y1=zeros(3,3);
for i=1:N1
for p=1:N1
if ZZ1(i,p)~=0
Y1(i,i)=Y1(i,i)+1/ZZ1(i,p);
if i~=p
Y1(i,p)=-1/ZZ1(i,p);
end
end
end
end
Y1
%求得负序节点导纳矩阵
Y2=zeros(3,3);
Y2=Y1
%求得零序节点导纳矩阵
Y0=zeros(3,3);
for i=1:N1
for p=1:N1
if ZZ0(i,p)~=0
Y0(i,i)=Y0(i,i)+1/ZZ0(i,p);
if i~=p
Y0(i,p)=-1/ZZ0(i,p);
end
end
end
end
Y0
%计及发电机节点的节点导纳矩阵
%YY1和YY2分别是此时的正序、负序节点导纳矩阵
YY1=zeros(5,5);
for i=1:N2
for p=1:N2
if ZG1(i,p)~=0
YY1(i,i)=YY1(i,i)+1/ZG1(i,p);
if i~=p
YY1(i,p)=-1/ZG1(i,p);
end
end
end
end
YY1
YY2=zeros(5,5);
YY2=YY1
%第一部分:计算所有节点的a,b,c三相电压
for p=1:N1
if p==k
I(p)=1;
else
I(p)=0;
end
end
%正序
Z1=eye(N1)/Y1;% eye(N1)是3阶的单位矩阵,求节点导纳矩阵Y1的逆阵,即节点阻抗矩阵Z
Z1(:,k)=Z1*I';%短路点k的自阻抗和互阻抗
Zk1=Z1(:,k);
%负序
Z2=eye(N1)/Y2;
Z2(:,k)=Z2*I';
Zk2=Z2(:,k);
%零序
Z0=eye(N1)/Y0;
Z0(:,k)=Z0*I';
Zk0=Z0(:,k);
%计根据故障类型选择不同的计算公式,算故障点各序电流
if fault==1
Ik1=1/(Z1(k,k)+Z2(k,k)+Z0(k,k));
Ik2=Ik1; %单相短路接地时的各序电流分量
Ik0=Ik1;
else
if fault==2
Ik1=1/(Z1(k,k)+Z2(k,k));
Ik2=-1*Ik1; %两相相间短路时的各序电流分量
Ik0=0;
else
if fault==3
Ik1=1/(Z1(k,k)+Z2(k,k)*Z0(k,k)/(Z2(k,k)+Z0(k,k)));
Ik2=-Ik1*Z0(k,k)/(Z2(k,k)+Z0(k,k)); %两相短路接地时的各序电流分量
Ik0=-Ik1*Z2(k,k)/(Z2(k,k)+Z0(k,k));
end
end
end
end
%计算各序电流的故障分量
for p=1:N1
p;
if p==k
I1(p)=-1*Ik1;
I2(p)=-1*Ik2;
I0(p)=-1*Ik0;
else
I1(p)=0;
I2(p)=0;
I0(p)=0;
end
end
%计算故障点各序电压的故障分量 P96公式(4-13)
uu1(:,k)=Y1\I1.' %“\”表示左除 A\B=inv(A)*B inv是求逆阵。 即AX=B
uu2(:,k)=Y2\I2.'
uu0(:,k)=Y0\I0.'
%假设故障前空载,各节点电压正序分量为1
for p=1:N1
U1(p)=1;
end
%计算故障点发生故障后的电压值:正常运行的分量+故障分量,P37公式(5-39)
u1=U1'+uu1(:,k) %计算所有节点正序电压
u2=uu2(:,k) %计算所有节点负序电压
u0=uu0(:,k) %计算所有节点零序电压
a=-0.5+j*sqrt(3)/2
T=[1 1 1 % T为对称分量法的变换矩阵,见P94公式(4-4)
a^2 a 1
a a^2 1]
for p=1:N1
U=[u1(p) u2(p) u0(p)]
p
Uabc=T*U.' %Uabc表示p节点的a,b,c三相电压向量,见P94公式(4-4)
UUabc=abs(Uabc) %UUabc表示p节点的a,b,c三相电压有效值
end
%第二部分:计算支路电流
for m=1:N1
for n=1:N1
if m<n
mn(1)=m;mn(2)=n;
mn
I1(m,n)=(u1(m)-u1(n))/ZZ1(m,n); %支路正序电流
I2(m,n)=(u2(m)-u2(n))/ZZ2(m,n); %支路负序电流
I0(m,n)=(u0(m)-u0(n))/ZZ0(m,n); %支路零序电流
Iabc=T*[I1(m,n) I2(m,n) I0(m,n)].';%由序分量合成相分量
Iabc
abs(Iabc)
end
end
end
%第三部分:计算发电机的端电压,只写了部分程序,余下的工作由同学们完成。要考虑变压器绕组是11点接线的
for p=1:N2
if p==k
II(p)=-Ik1;
else
II(p)=0;
end
end
vv1(:,k)=YY1\II.';
vv2(:,k)=YY2\II.';
for p=1:N2
V1(p)=1;
end
%计算发机障后的电压值=正常运行分量+故障分量
v1=V1'+vv1(:,k) %计算发电机节点的正序分量
v2=vv2(:,k) %计算发电机节点的负序分量
%计及11点接线形式
c=sqrt(3)/2+j*0.5 %正序分量三角形侧电压较星型侧超前30度(11点钟)
d=sqrt(3)/2-j*0.5 %负序分量三角形侧电压较星型侧落后30度(11点钟)
v1(4)=v1(4)*c;
v2(4)=v2(4)*d;
v1(5)=v1(5)*c;
v2(5)=v2(5)*d;
VG1=[v1(4) v2(4) 0 ]
VG1abc=T*VG1.'
VG1abc1=abs(VG1abc) %VG1abc是发电机1的机端三相电压
VG2=[v1(5) v2(5) 0 ]
VG2abc=T*VG2.'
VG2abc1=abs(VG2abc) %VG2abc是发电机1的机端三相电压
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -