当前位置:文档之家› 电力系统短路故障分析的MATLAB辅助程序设计,短路计算程序

电力系统短路故障分析的MATLAB辅助程序设计,短路计算程序

电力系统短路故障分析的MATLAB辅助程序设计,短路计算程序
电力系统短路故障分析的MATLAB辅助程序设计,短路计算程序

电力系统短路故障分析的MATLAB辅助程序设计

电力系统短路故障可分为三相对称短路故障(three-phase balanced faults)和不对称短路故障(unbalanced faults )。不对称短路故障又分为单相接地短路故障(single line-to-ground fault)、两相短路故障 (line-to-line fault)以及两相接地短路故障(double line-to-ground fault)。根据故障分析结果可以对继电保护装置、自动装置进行整定计算,我们可以建立算法来形成节点阻抗矩阵,利用节点阻抗矩阵来计算短路故障情况下的节点电压和线路电流。

一、三相对称短路故障

进行三相短路计算需要两个程序:zbuild /zbuildpi和symfault程序,zbuild、zbuildpi用来在MATLAB中形成节点阻抗矩阵,symfault用来计算三相对称故障。

Zbus=zbuild(zdata)这里的参数zdata是一个(e×4)阶矩阵,e是拓扑图的总支路数目。第一列和第二列为元素两端的节点编号,第三列和第四列分别是线路的电阻、电抗的标幺值。连接在0节点和发电机节点之间的发电机阻抗可能是次暂态电抗、暂态电抗或同步电抗,而且这个矩阵中还包含并联电抗器和负荷阻抗。

Zbus=zbuildpi(linedata,gendata,yload)这个函数与潮流计算程序是相容的,第一个参数linedat a与潮流计算程序中的文件是一致的。第一列和第二列为节点编号;第三列到第五列分别是线路的电阻、电抗以及1/2线路电纳值,这三项都为在统一基准容量下的标幺值;最后一列是变压器分接头位置,对线路来说,必须输入1;线路无输入顺序。发电机参数不包含在Linedata参数中,而是包含在第二个参数gendata中,gendata是一个g×4阶矩阵,g是发电机总数。第一列和第二列为0节点、发电机节点编号,第三列和第四列为发电机的暂态电阻和暂态电抗。最后一个参数yload是可选择的,这个矩阵有两列,第一列为节点编号,第二列为复数导纳值,yload可以由潮流程序lfguss,lfnewton 或者decouple自动生成。

Zbuild和zbuildpi两个函数可以通过建立算法求出节点阻抗矩阵。首先添加所有与参考节点相连的树支,然后添加其余的树支,最后添加共轭连支。

程序symfault(zdata,Zbus,V)用来计算三相对称故障,程序要求输入zdata 和Zbus两个矩阵,第三个参数V是可选的。如果V不存在,程序将默认故障前所有的节点电压标幺值为1.0,如果变量V存在,那么V包括节点编号和复数电压值。电压向量V也可以由潮流计算程序自动生成。当symfault程序运行时,用户要输入故障节点编号和故障阻抗,运行可得到总的故障电流,节点电压幅值以及故障情况下的线路电流。

在三相短路计算中,zbuild 和symfault程序,zbuildpi和symfault程序都可以进行计算,下面是三相短路计算使用的程序代码:

(1)Zbuild.m程序代码:

function [Zbus] = zbuild(linedata)

nl = linedata(:,1); nr = linedata(:,2); R = linedata(:,3);

X = linedata(:,4);

nbr=length(linedata(:,1)); nbus = max(max(nl), max(nr));

for k=1:nbr

if R(k) == inf | X(k) ==inf

R(k) = 999999999; X(k) = 999999999;%无穷

else, end

end

ZB = R + j*X;

Zbus = zeros(nbus, nbus);

tree=0;

%从参考总线0上添加一个分支

for I = 1:nbr

ntree(I) = 1;

if nl(I) == 0 | nr(I) == 0

if nl(I) == 0 n = nr(I);

elseif nr(I) == 0 n = nl(I);

end

if abs(Zbus(n, n)) == 0 Zbus(n,n) = ZB(I);tree=tree+1; %%new else Zbus(n,n) = Zbus(n,n)*ZB(I)/(Zbus(n,n) + ZB(I));

end

ntree(I) = 2;

else,end

end

% 添加一个新总线分支到现有总线上

while tree < nbus

for n = 1:nbus

nadd = 1;

if abs(Zbus(n,n)) == 0

for I = 1:nbr

if nadd == 1;

if nl(I) == n | nr(I) == n

if nl(I) == n k = nr(I);

elseif nr(I) == n k = nl(I);

end

if abs(Zbus(k,k)) ~= 0

for m = 1:nbus

if m ~= n

Zbus(m,n) = Zbus(m,k);

Zbus(n,m) = Zbus(m,k);

else, end

end

Zbus(n,n) = Zbus(k,k) + ZB(I); tree=tree+1;

nadd = 2; ntree(I) = 2;

else, end

else, end

else, end

end

else, end

end

end

%增加两个原有总线间的支路阻抗

for n = 1:nbus

for I = 1:nbr

if ntree(I) == 1

if nl(I) == n | nr(I) == n

if nl(I) == n k = nr(I);

elseif nr(I) == n k = nl(I);

end

DM = Zbus(n,n) + Zbus(k,k) + ZB(I) - 2*Zbus(n,k);

for jj = 1:nbus

AP = Zbus(jj,n) - Zbus(jj,k);

for kk = 1:nbus

AT = Zbus(n,kk) - Zbus(k, kk);

DELZ(jj,kk) = AP*AT/DM;

end

end

Zbus = Zbus - DELZ;

ntree(I) = 2;

else,end

else,end

end

end

(2)Zbuildpi.m程序代码:

% This program forms the complex bus impedance matrix by the method % of building algorithm. Bus zero is taken as reference.

% This program is compatible with power flow data.

function [Zbus, linedata] = zbuildpi(linedata, gendata, yload)

ng=length(gendata(:,1));

nlg=gendata(:,1);

nrg=gendata(:,2);

zg= gendata(:,2) + j*gendata(:,3);

nl = linedata(:,1); nr = linedata(:,2); R = linedata(:,3);

X = linedata(:,4);

nbr=length(linedata(:,1)); nbus = max(max(nl), max(nr));

nc = length(linedata(1,:));

for k=1:nbr

if R(k) == inf | X(k) == inf

R(k) = 99999999; X(k) = 99999999;

else, end

end

if nc > 4

BC = linedata(:,5);

for n = 1:nbus

yc(n) = 0;

nlc(n) = 0; nrc(n) = n;

for k = 1:nbr

if nl(k) == n | nr(k) == n

yc(n) = yc(n) + j*BC(k);

else, end

end

end

elseif nc==4 yc= zeros(1, nbr); end

nlc=nlc'; nrc=nrc'; yc=yc.';

ZB = R + j*X;

if exist('yload') == 1

yload = yload.';

yc =yc + yload;

else, end

m = 0;

for n = 1:nbus

if abs(yc(n)) ~=0

m=m+1;

nlcc(m) = nlc(n);

nrcc(m) = nrc(n);

zc(m) = 1/yc(n);

else, end

end

nlcc=nlcc'; nrcc=nrcc'; zc=zc.';

nl=[nlg; nlcc; nl]; nr = [nrg; nrcc; nr]; ZB = [zg; zc; ZB]; linedata=[nl nr real(ZB) imag(ZB)];

nbr= length(nl);

Zbus = zeros(nbus, nbus);

tree=0;

%%从参考总线0上添加一个分支

for I = 1:nbr

ntree(I) = 1;

if nl(I) == 0 | nr(I) == 0

if nl(I) == 0 n = nr(I);

elseif nr(I) == 0 n = nl(I);

end

if abs(Zbus(n, n)) == 0 Zbus(n,n) = ZB(I);

tree=tree+1;

else Zbus(n,n) = Zbus(n,n)*ZB(I)/(Zbus(n,n) + ZB(I)); end

ntree(I) = 2;

else,end

end

%% 添加一个新总线分支到现有总线上

while tree < nbus

for n = 1:nbus

nadd = 1;

if abs(Zbus(n,n)) == 0

for I = 1:nbr

if nadd == 1

if nl(I) == n | nr(I) == n

if nl(I) == n k = nr(I);

elseif nr(I) == n k = nl(I);

end

if abs(Zbus(k,k)) ~= 0

for m = 1:nbus

if m ~= n

Zbus(m,n) = Zbus(m,k);

Zbus(n,m) = Zbus(m,k);

else, end

end

Zbus(n,n) = Zbus(k,k) + ZB(I); tree=tree+1;

nadd = 2; ntree(I) = 2;

else, end

else, end

else, end

end

else, end

end

end

%增加两个原有总线间的支路阻抗

for n = 1:nbus

for I = 1:nbr

if ntree(I) == 1

if nl(I) == n | nr(I) == n

if nl(I) == n k = nr(I);

elseif nr(I) == n k = nl(I);

end

DM = Zbus(n,n) + Zbus(k,k) + ZB(I) - 2*Zbus(n,k); for jj = 1:nbus

AP = Zbus(jj,n) - Zbus(jj,k);

for kk = 1:nbus

AT = Zbus(n,kk) - Zbus(k, kk);

DELZ(jj,kk) = AP*AT/DM;

end

end

Zbus = Zbus - DELZ;

ntree(I) = 2;

else,end

else,end

end

end

(3)symfault.m程序代码:

% 此程序用来计算电网的三相对称故障

% 计算前需要用户生成节点阻抗矩阵

% 节点阻抗矩阵可由函数Zbus = zbuild(zdata)生成

%此程序需要用户按提示输入短路节点编号和过度电阻Zf

% 向量V是可选参数,包含节点编号和复数电压

%V可由潮流程序lfgauss, lfnewton,decouple自动生成.

% 如果V不存在,程序将默认故障前所有的节点电压标幺值为1.0

% 程序可得到总的故障电流, 节点电压幅值及输电线路的电流

function symfaul(zdata, Zbus, V)

nl = zdata(:,1); nr = zdata(:,2); R = zdata(:,3);

X = zdata(:,4);

nc = length(zdata(1,:));

if nc > 4

BC = zdata(:,5);

elseif nc ==4, BC = zeros(length(zdata(:,1)), 1);

end

ZB = R + j*X;

nbr=length(zdata(:,1)); nbus = max(max(nl), max(nr));

if exist('V') == 1

if length(V) == nbus

V0 = V;

else, end

else, V0 = ones(nbus, 1) + j*zeros(nbus, 1);

end

fprintf('\Three-phase balanced fault analysis \n')

ff = 999;

while ff > 0

nf = input('Enter Faulted Bus No. -> ');

rtn=isempty(nf);

if rtn==1; nf=-1; end

while nf <= 0 | nf > nbus

fprintf('Faulted bus No. must be between 1 & %g \n', nbus)

nf = input('Enter Faulted Bus No. -> ');

rtn=isempty(nf);

if rtn==1; nf=-1; end

end

rtz=1;

while rtz==1

fprintf('\nEnter Fault Impedance Zf = R + j*X in ')

Zf = input('complex form (for bolted fault enter 0). Zf = ');

rtz=isempty(Zf);

end

fprintf(' \n')

fprintf('Balanced three-phase fault at bus No. %g\n', nf)

If = V0(nf)/(Zf + Zbus(nf, nf));

Ifm = abs(If); Ifmang=angle(If)*180/pi;

fprintf('Total fault current = %8.4f per unit \n\n', Ifm)

%fprintf(' p.u. \n\n', Ifm)

fprintf('Bus Voltages during fault in per unit \n\n')

fprintf(' Bus Voltage Angle\n')

fprintf(' No. Magnitude degrees\n')

for n = 1:nbus

if n==nf

Vf(nf) = V0(nf)*Zf/(Zf + Zbus(nf,nf)); Vfm = abs(Vf(nf));

angv=angle(Vf(nf))*180/pi;

else, Vf(n) = V0(n) - V0(n)*Zbus(n,nf)/(Zf + Zbus(nf,nf));

Vfm = abs(Vf(n)); angv=angle(Vf(n))*180/pi;

end

fprintf(' %4g', n), fprintf('%13.4f', Vfm),fprintf('%13.4f\n', angv) end

fprintf(' \n')

fprintf('Line currents for fault at bus No. %g\n\n', nf)

fprintf(' From To Current Angle\n')

fprintf(' Bus Bus Magnitude degrees\n')

for n= 1:nbus

for I = 1:nbr

if nl(I) == n | nr(I) == n

if nl(I) ==n k = nr(I);

elseif nr(I) == n k = nl(I);

end

if k==0

Ink = (V0(n) - Vf(n))/ZB(I);

Inkm = abs(Ink); th=angle(Ink);

if real(Ink) > 0

fprintf(' G '), fprintf('%7g',n), fprintf('%12.4f', Inkm)

fprintf('%12.4f\n', th*180/pi)

elseif real(Ink) ==0 & imag(Ink) < 0

fprintf(' G '), fprintf('%7g',n), fprintf('%12.4f', Inkm)

fprintf('%12.4f\n', th*180/pi)

else, end

Ign=Ink;

elseif k ~= 0

Ink = (Vf(n) - Vf(k))/ZB(I)+BC(I)*Vf(n);

Inkm = abs(Ink); th=angle(Ink);

if real(Ink) > 0

fprintf('%7g', n), fprintf('%10g', k),

fprintf('%12.4f', Inkm), fprintf('%12.4f\n', th*180/pi)

elseif real(Ink) ==0 & imag(Ink) < 0

fprintf('%7g', n), fprintf('%10g', k),

fprintf('%12.4f', Inkm), fprintf('%12.4f\n', th*180/pi)

else, end

else, end

else, end

end

if n==nf

fprintf('%7g',n), fprintf(' F'), fprintf('%12.4f', Ifm)

fprintf('%12.4f\n', Ifmang)

else, end

end

resp=0;

while strcmp(resp, 'n')~=1 & strcmp(resp, 'N')~=1 & strcmp(resp, 'y')~=1

& strcmp(resp, 'Y')~=1

resp = input('Another fault location? Enter ''y'' or ''n'' within single quote -> ');

if strcmp(resp, 'n')~=1 & strcmp(resp, 'N')~=1 & strcmp(resp, 'y')~=1 & strcmp(resp, 'Y')~=1

fprintf('\n Incorrect reply, try again \n\n'), end

end

if resp == 'y' | resp == 'Y'

nf = 999;

else ff = 0; end

end

二、不对称短路故障

不对称故障包括单相接地短路(single line-to-ground fault),两相短路(line-to-line fault ),和两相接地短路(double line-to-ground fault)。这里介绍三个程序来分析不对称短路故障:

单相接地lgfault(zdata0,zbus0,zdata1,zbus1,zdata2,zbus2,V)

两相短路llfault(zdata1,zbus1,zdata2,zbus2,V)

两相接地短路dlgfault(zdata0,zbus0,zdata1,zbus1,zdata2,zbus2,V)对于lgfault和dlgfault需要输入正序、零序、负序节点阻抗矩阵Zbus1、Zbus0和Zbus2,而llfault只需输入正序和负序节点阻抗矩阵Zbus1、Zbus2,最后参数V是可以选择的。如果用户未输入V,程序则默认所有故障前的电压为1.0pu。如果用户输入参数V,则需要输入节点编号以及节点电压的复数值。变量V可由潮流计算程序获得。

零序网络和正序网络的节点阻抗矩阵分别通过函数Zbus0=zbuild(zdata0)和Zbus1=zbuild(zdata1)获得。参数zdata1包含正序网络阻抗,参数zdata0包含零序网络阻抗。参数zdata1、zdata2、zdata0均为e×4阶矩阵,e为元件的个数。第一列和第二列是节点编号,第三列和第四列分别是线路电阻和电抗(均为标幺值)。节点0为参考节点,发电机节点到节点0的阻抗为发电机阻抗,可以是发电机的次暂态电抗、暂态电抗或者同步电抗,而且矩阵还包括并联电容和负荷阻抗等。

负序网络和正序网络有同样的拓扑结构。线路和变压器的负序阻抗等于正序阻抗,而发电机的负序阻抗不等于正序阻抗,但在大型电力系统故障分析中通常按相等来计算。零序网络的拓扑结构不同于正序网络,零序网络的构建取决于变压器的绕组连接方式,除了两侧中性点都接地的Y-Y连接的变压器,对于其他连接方式的变压器,一次侧和二次侧的零序网络都是隔离开的。在这样的连接方式的零序网络中,,用inf填写对应的电阻和电抗列。对于Y-△(中性点接地)连接的变压器,Y侧的阻抗到节点0的数据需要填写。当中性点接地阻抗为Xn时,需要填写为3Xn。

在不对称故障计算时,还需要一个函数用来求节点阻抗矩阵,Zbus=zbuildpi (linedata,gendata,yload),函数与潮流计算程序是相容的。第一个参数linedata与潮流程序所需要的数据相同。第一列和第二列是节点编号;第三列到第五列分别是线路的电阻、电抗、1/2线路电纳(均为标幺值,以指定的MVA

为基准功率);最后一列为变压器分接头位置,对于线路,在这一列中必须填写1。在潮流计算程序中,发电机电抗不包含在参数linedata中,而是包含在参数gendat a中。参数gendata是一个(g×4)阶矩阵,其四列分别为参考节点0、发电机节点编号、发电机电阻和电抗。最后一个参数yload是可选的,这是一个两列的矩阵,包括节点编号和负荷复数导纳值。这些数据可以从潮流计算程序lfgauss,lfnewton,decouple执行过程中自动生成。程序运行时会提示用户输入故障节点编号和故障阻抗Zf,运行结果可得到故障电流,节点电压和线路电流。

不对称短路故障计算使用的程序如下:

(1)lgfault.m程序代码:

% The program lgfault is designed for the single line-to-ground

% fault analysis of a power system network. The program requires

% the positive-, negative- and zero-sequence bus impedance matrices, % Zbus1 Zbus2,and Zbus0.The bus impedances matrices may be defined

% by the user, obtained by the inversion of Ybus or it may be

% determined either from the function Zbus = zbuild(zdata)

% or the function Zbus = zbuildpi(linedata, gendata, yload).

% The program prompts the user to enter the faulted bus number

% and the fault impedance Zf. The prefault bus voltages are

% defined by the reserved Vector V. The array V may be defined or

% it is returned from the power flow programs lfgauss, lfnewton,

% decouple or perturb. If V does not exist the prefault bus voltages % are automatically set to 1.0 per unit. The program obtains the

% total fault current, bus voltages and line currents during the fault.

function lgfault(zdata0, Zbus0, zdata1, Zbus1, zdata2, Zbus2, V)

if exist('zdata2') ~= 1

zdata2=zdata1;

else, end

if exist('Zbus2') ~= 1

Zbus2=Zbus1;

else, end

nl = zdata1(:,1); nr = zdata1(:,2);

nl0 = zdata0(:,1); nr0 = zdata0(:,2);

nbr=length(zdata1(:,1)); nbus = max(max(nl), max(nr));

nbr0=length(zdata0(:,1));

R0 = zdata0(:,3); X0 = zdata0(:,4);

R1 = zdata1(:,3); X1 = zdata1(:,4);

R2 = zdata1(:,3); X2 = zdata1(:,4);

for k=1:nbr0

if R0(k)==inf | X0(k) ==inf

R0(k) = 99999999; X0(k) = 99999999;

else, end

end

ZB1 = R1 + j*X1; ZB0 = R0 + j*X0;

ZB2 = R2 + j*X2;

if exist('V') == 1

if length(V) == nbus

V0 = V;

else, end

else, V0 = ones(nbus, 1) + j*zeros(nbus, 1);

end

fprintf('\nLine-to-ground fault analysis \n')

ff = 999;

while ff > 0

nf = input('Enter Faulted Bus No. -> ');

rtn=isempty(nf);

if rtn==1; nf=-1; end

while nf <= 0 | nf > nbus

fprintf('Faulted bus No. must be between 1 & %g \n', nbus)

nf = input('Enter Faulted Bus No. -> ');

rtn=isempty(nf);

if rtn==1; nf=-1; end

end

rtz=1;

while rtz==1

fprintf('\nEnter Fault Impedance Zf = R + j*X in ')

Zf = input('complex form (for bolted fault enter 0). Zf = ');

rtz=isempty(Zf);

end

fprintf(' \n')

fprintf('Single line to-ground fault at bus No. %g\n', nf)

a =cos(2*pi/3)+j*sin(2*pi/3);

sctm = [1 1 1; 1 a^2 a; 1 a a^2];

Ia0 = V0(nf)/(Zbus1(nf,nf)+Zbus2(nf, nf)+ Zbus0(nf, nf)+3*Zf); Ia1=Ia0; Ia2=Ia0;

I012=[Ia0; Ia1; Ia2];

Ifabc = sctm*I012;

Ifabcm = abs(Ifabc);

fprintf('Total fault current = %9.4f per unit\n\n', Ifabcm(1))

fprintf('Bus Voltages during the fault in per unit \n\n')

fprintf(' Bus -------Voltage Magnitude------- \n')

fprintf(' No. Phase a Phase b Phase c \n')

for n = 1:nbus

Vf0(n)= 0 - Zbus0(n, nf)*Ia0;

Vf1(n)= V0(n) - Zbus1(n, nf)*Ia1;

Vf2(n)= 0 - Zbus2(n, nf)*Ia2;

Vabc = sctm*[Vf0(n); Vf1(n); Vf2(n)];

Va(n)=Vabc(1); Vb(n)=Vabc(2); Vc(n)=Vabc(3);

fprintf(' %5g',n)

fprintf(' %11.4f', abs(Va(n))),fprintf(' %11.4f', abs(Vb(n))) fprintf(' %11.4f\n', abs(Vc(n)))

end

fprintf(' \n')

fprintf('Line currents for fault at bus No. %g\n\n', nf)

fprintf(' From To -----Line Current Magnitude---- \n') fprintf(' Bus Bus Phase a Phase b Phase c \n') for n= 1:nbus

for I = 1:nbr

if nl(I) == n | nr(I) == n

if nl(I) ==n k = nr(I);

elseif nr(I) == n k = nl(I);

end

if k ~= 0

Ink1(n, k) = (Vf1(n) - Vf1(k))/ZB1(I);

Ink2(n, k) = (Vf2(n) - Vf2(k))/ZB2(I);

else, end

else, end

end

for I = 1:nbr0

if nl0(I) == n | nr0(I) == n

if nl0(I) ==n k = nr0(I);

elseif nr0(I) == n k = nl0(I);

end

if k ~= 0

Ink0(n, k) = (Vf0(n) - Vf0(k))/ZB0(I);

else, end

else, end

end

for I = 1:nbr

if nl(I) == n | nr(I) == n

if nl(I) ==n k = nr(I);

elseif nr(I) == n k = nl(I);

end

if k ~= 0

Inkabc = sctm*[Ink0(n, k); Ink1(n, k); Ink2(n, k)];

Inkabcm = abs(Inkabc); th=angle(Inkabc);

if real(Inkabc(1)) > 0

fprintf('%7g', n), fprintf('%10g', k),

fprintf(' %11.4f', abs(Inkabc(1))),fprintf(' %11.4f', abs(Inkabc(2))) fprintf(' %11.4f\n', abs(Inkabc(3)))

elseif real(Inkabc(1)) ==0 & imag(Inkabc(1)) < 0

fprintf('%7g', n), fprintf('%10g', k),

fprintf(' %11.4f', abs(Inkabc(1))),fprintf(' %11.4f', abs(Inkabc(2))) fprintf(' %11.4f\n', abs(Inkabc(3)))

else, end

else, end

else, end

end

if n==nf

fprintf('%7g',n), fprintf(' F'),

fprintf(' %11.4f', Ifabcm(1)),fprintf(' %11.4f', Ifabcm(2))

fprintf(' %11.4f\n', Ifabcm(3))

else, end

end

resp=0;

while strcmp(resp, 'n')~=1 & strcmp(resp, 'N')~=1 & strcmp(resp, 'y')~=1 & strcmp(resp, 'Y')~=1

resp = input('Another fault location? Enter ''y'' or ''n'' within single quote -> ');

if strcmp(resp, 'n')~=1 & strcmp(resp, 'N')~=1 & strcmp(resp, 'y')~=1 & strcmp(resp, 'Y')~=1

fprintf('\n Incorrect reply, try again \n\n'), end

end

if resp == 'y' | resp == 'Y'

nf = 999;

else ff = 0; end

end

(2)llfault.m程序代码:

% The program llfault is designed for the line-to-line

% fault analysis of a power system network. The program requires

% the positive- and negative-sequence bus impedance matrices,

% Zbus1, and Zbus2.The bus impedances matrices may be defined

% by the user, obtained by the inversion of Ybus or it may be

% determined either from the function Zbus = zbuild(zdata)

% or the function Zbus = zbuildpi(linedata, gendata, yload).

% The program prompts the user to enter the faulted bus number

% and the fault impedance Zf. The prefault bus voltages are

% defined by the reserved Vector V. The array V may be defined or

% it is returned from the power flow programs lfgauss, lfnewton,

% decouple or perturb. If V does not exist the prefault bus voltages % are automatically set to 1.0 per unit. The program obtains the

% total fault current, bus voltages and line currents during the fault.

function llfault(zdata1, Zbus1, zdata2, Zbus2, V)

if exist('zdata2') ~= 1

zdata2=zdata1;

else, end

if exist('Zbus2') ~= 1

Zbus2=Zbus1;

else, end

nl = zdata1(:,1); nr = zdata1(:,2);

R1 = zdata1(:,3); X1 = zdata1(:,4);

R2 = zdata2(:,3); X2 = zdata2(:,4);

ZB1 = R1 + j*X1; ZB2 = R2 + j*X2;

nbr=length(zdata1(:,1)); nbus = max(max(nl), max(nr));

if exist('V') == 1

if length(V) == nbus

V0 = V;

else, end

else, V0 = ones(nbus, 1) + j*zeros(nbus, 1);

end

fprintf('\nLine-to-line fault analysis \n')

ff = 999;

while ff > 0

nf = input('Enter Faulted Bus No. -> ');

rtn=isempty(nf);

if rtn==1; nf=-1; end

while nf <= 0 | nf > nbus

fprintf('Faulted bus No. must be between 1 & %g \n', nbus)

nf = input('Enter Faulted Bus No. -> ');

rtn=isempty(nf);

if rtn==1; nf=-1; end

end

rtz=1;

while rtz==1

fprintf('\nEnter Fault Impedance Zf = R + j*X in ')

Zf = input('complex form (for bolted fault enter 0). Zf = ');

rtz=isempty(Zf);

end

fprintf(' \n')

fprintf('Line-to-line fault at bus No. %g\n', nf)

a =cos(2*pi/3)+j*sin(2*pi/3);

sctm = [1 1 1; 1 a^2 a; 1 a a^2];

Ia0=0;

Ia1 = V0(nf)/(Zbus1(nf,nf)+Zbus2(nf, nf)+Zf); Ia2=-Ia1;

I012=[Ia0; Ia1; Ia2];

Ifabc = sctm*I012;

Ifabcm = abs(Ifabc);

fprintf('Total fault current = %9.4f per unit\n\n', Ifabcm(2))

fprintf('Bus Voltages during the fault in per unit \n\n')

fprintf(' Bus -------Voltage Magnitude------- \n')

fprintf(' No. Phase a Phase b Phase c \n')

for n = 1:nbus

Vf0(n)= 0;

Vf1(n)= V0(n) - Zbus1(n, nf)*Ia1;

Vf2(n)= 0 - Zbus2(n, nf)*Ia2;

Vabc = sctm*[Vf0(n); Vf1(n); Vf2(n)];

Va(n)=Vabc(1); Vb(n)=Vabc(2); Vc(n)=Vabc(3);

fprintf(' %5g',n)

fprintf(' %11.4f', abs(Va(n))),fprintf(' %11.4f', abs(Vb(n)))

fprintf(' %11.4f\n', abs(Vc(n)))

end

fprintf(' \n')

fprintf('Line currents for fault at bus No. %g\n\n', nf)

fprintf(' From To -----Line Current Magnitude---- \n') fprintf(' Bus Bus Phase a Phase b Phase c \n')

for n= 1:nbus

for I = 1:nbr

if nl(I) == n | nr(I) == n

if nl(I) ==n k = nr(I);

elseif nr(I) == n k = nl(I);

end

if k ~= 0

Ink0(n, k) = 0;

Ink1(n, k) = (Vf1(n) - Vf1(k))/ZB1(I);

Ink2(n, k) = (Vf2(n) - Vf2(k))/ZB2(I);

Inkabc = sctm*[Ink0(n, k); Ink1(n, k); Ink2(n, k)];

Inkabcm = abs(Inkabc); th=angle(Inkabc);

if real(Inkabc(2)) < 0

fprintf('%7g', n), fprintf('%10g', k),

fprintf(' %11.4f', abs(Inkabc(1))),fprintf(' %11.4f', abs(Inkabc(2)))

fprintf(' %11.4f\n', abs(Inkabc(3)))

elseif real(Inkabc(2)) ==0 & imag(Inkabc(2)) > 0

fprintf('%7g', n), fprintf('%10g', k),

fprintf(' %11.4f', abs(Inkabc(1))),fprintf(' %11.4f', abs(Inkabc(2))) fprintf(' %11.4f\n', abs(Inkabc(3)))

else, end

else, end

else, end

end

if n==nf

fprintf('%7g',n), fprintf(' F'),

fprintf(' %11.4f', Ifabcm(1)),fprintf(' %11.4f', Ifabcm(2))

fprintf(' %11.4f\n', Ifabcm(3))

else, end

end

resp=0;

while strcmp(resp, 'n')~=1 & strcmp(resp, 'N')~=1 & strcmp(resp, 'y')~=1 & strcmp(resp, 'Y')~=1

resp = input('Another fault location? Enter ''y'' or ''n'' within single quote -> ');

if strcmp(resp, 'n')~=1 & strcmp(resp, 'N')~=1 & strcmp(resp, 'y')~=1 & strcmp(resp, 'Y')~=1

fprintf('\n Incorrect reply, try again \n\n'), end

end

if resp == 'y' | resp == 'Y'

nf = 999;

else ff = 0; end

end

(3)dlgfault.m程序代码:

% The program dlgfault is designed for the double line-to-ground

% fault analysis of a power system network. The program requires

% the positive-, negative- or zero-sequence bus impedance matrices,

% Zbus1 Zbus2,and Zbus0. The bus impedances matrices may be defined

% by the user, obtained by the inversion of Ybus or it may be

% determined either from the function Zbus = zbuild(zdata)

% or the function Zbus = zbuildpi(linedata, gendata, yload).

% The program prompts the user to enter the faulted bus number

% and the fault impedance Zf. The prefault bus voltages are

% defined by the reserved Vector V. The array V may be defined or

% it is returned from the power flow programs lfgauss, lfnewton,

% decouple or perturb. If V does not exist the prefault bus voltages

% are automatically set to 1.0 per unit. The program obtains the

% total fault current, bus voltages and line currents during the fault. function dlgfault(zdata0, Zbus0, zdata1, Zbus1, zdata2, Zbus2, V)

if exist('zdata2') ~= 1

zdata2=zdata1;

else, end

if exist('Zbus2') ~= 1

Zbus2=Zbus1;

else, end

nl = zdata1(:,1); nr = zdata1(:,2);

nl0 = zdata0(:,1); nr0 = zdata0(:,2);

nbr=length(zdata1(:,1)); nbus = max(max(nl), max(nr));

nbr0=length(zdata0(:,1));

R0 = zdata0(:,3); X0 = zdata0(:,4);

R1 = zdata1(:,3); X1 = zdata1(:,4);

R2 = zdata2(:,3); X2 = zdata2(:,4);

for k = 1:nbr0

if R0(k) == inf | X0(k) == inf

R0(k) = 99999999; X0(k) = 999999999;

else, end

end

ZB1 = R1 + j*X1; ZB0 = R0 + j*X0;

ZB2 = R2 + j*X2;

if exist('V') == 1

if length(V) == nbus

V0 = V;

else, end

else, V0 = ones(nbus, 1) + j*zeros(nbus, 1);

end

fprintf('\nDouble line-to-ground fault analysis \n')

ff = 999;

while ff > 0

nf = input('Enter Faulted Bus No. -> ');

rtn=isempty(nf);

if rtn==1; nf=-1; end

while nf <= 0 | nf > nbus

fprintf('Faulted bus No. must be between 1 & %g \n', nbus)

nf = input('Enter Faulted Bus No. -> ');

rtn=isempty(nf);

if rtn==1; nf=-1; end

end

rtz=1;

while rtz==1

fprintf('\nEnter Fault Impedance Zf = R + j*X in ')

Zf = input('complex form (for bolted fault enter 0). Zf = '); rtz=isempty(Zf);

end

fprintf(' \n')

fprintf('Double line-to-ground fault at bus No. %g\n', nf)

a =cos(2*pi/3)+j*sin(2*pi/3);

sctm = [1 1 1; 1 a^2 a; 1 a a^2];

Z11 = Zbus2(nf, nf)*(Zbus0(nf, nf)+ 3*Zf)/(Zbus2(nf, nf)+Zbus0(nf, nf)+3*Zf);

Ia1 = V0(nf)/(Zbus1(nf,nf)+Z11);

Ia2 =-(V0(nf) - Zbus1(nf, nf)*Ia1)/Zbus2(nf,nf);

Ia0 =-(V0(nf) - Zbus1(nf, nf)*Ia1)/(Zbus0(nf,nf)+3*Zf);

I012=[Ia0; Ia1; Ia2];

Ifabc = sctm*I012; Ifabcm=abs(Ifabc);

Ift = Ifabc(2)+Ifabc(3);

Iftm = abs(Ift);

fprintf('Total fault current = %9.4f per unit\n\n', Iftm)

fprintf('Bus Voltages during the fault in per unit \n\n')

fprintf(' Bus -------Voltage Magnitude------- \n')

fprintf(' No. Phase a Phase b Phase c \n')

for n = 1:nbus

Vf0(n)= 0 - Zbus0(n, nf)*Ia0;

Vf1(n)= V0(n) - Zbus1(n, nf)*Ia1;

Vf2(n)= 0 - Zbus2(n, nf)*Ia2;

Vabc = sctm*[Vf0(n); Vf1(n); Vf2(n)];

Va(n)=Vabc(1); Vb(n)=Vabc(2); Vc(n)=Vabc(3);

fprintf(' %5g',n)

fprintf(' %11.4f', abs(Va(n))),fprintf(' %11.4f', abs(Vb(n)))

fprintf(' %11.4f\n', abs(Vc(n)))

end

fprintf(' \n')

fprintf('Line currents for fault at bus No. %g\n\n', nf)

fprintf(' From To -----Line Current Magnitude---- \n') fprintf(' Bus Bus Phase a Phase b Phase c \n')

for n= 1:nbus

for I = 1:nbr

if nl(I) == n | nr(I) == n

if nl(I) ==n k = nr(I);

elseif nr(I) == n k = nl(I);

end

if k ~= 0

Ink1(n, k) = (Vf1(n) - Vf1(k))/ZB1(I);

Ink2(n, k) = (Vf2(n) - Vf2(k))/ZB2(I);

else, end

else, end

end

for I = 1:nbr0

if nl0(I) == n | nr0(I) == n

if nl0(I) ==n k = nr0(I);

elseif nr0(I) == n k = nl0(I);

end

if k ~= 0

Ink0(n, k) = (Vf0(n) - Vf0(k))/ZB0(I);

else, end

else, end

end

for I = 1:nbr

if nl(I) == n | nr(I) == n

if nl(I) ==n k = nr(I);

elseif nr(I) == n k = nl(I);

end

if k ~= 0

Inkabc = sctm*[Ink0(n, k); Ink1(n, k); Ink2(n, k)];

Inkabcm = abs(Inkabc); th=angle(Inkabc);

if real(Inkabc(2)) < 0

fprintf('%7g', n), fprintf('%10g', k),

fprintf(' %11.4f', abs(Inkabc(1))),fprintf(' %11.4f', abs(Inkabc(2))) fprintf(' %11.4f\n', abs(Inkabc(3)))

elseif real(Inkabc(2)) ==0 & imag(Inkabc(2)) > 0

fprintf('%7g', n), fprintf('%10g', k),

fprintf(' %11.4f', abs(Inkabc(1))),fprintf(' %11.4f', abs(Inkabc(2))) fprintf(' %11.4f\n', abs(Inkabc(3)))

else, end

else, end

else, end

end

if n==nf

fprintf('%7g',n), fprintf(' F'),

fprintf(' %11.4f', Ifabcm(1)),fprintf(' %11.4f', Ifabcm(2))

fprintf(' %11.4f\n', Ifabcm(3))

else, end

end

resp=0;

while strcmp(resp, 'n')~=1 & strcmp(resp, 'N')~=1 & strcmp(resp, 'y')~=1 & strcmp(resp, 'Y')~=1

resp = input('Another fault location? Enter ''y'' or ''n'' within single quote -> ');

if strcmp(resp, 'n')~=1 & strcmp(resp, 'N')~=1 & strcmp(resp, 'y')~=1 & strcmp(resp, 'Y')~=1

fprintf('\n Incorrect reply, try again \n\n'), end

end

if resp == 'y' | resp == 'Y'

nf = 999;

else ff = 0; end

end

三、短路故障计算实例

一个简单的11节点电力系统网络如图1所示,发电机的正序、零序电抗以及中性点接地电抗见表1。变压器连接方式如图1所示,节点11和节点7之间的变压器为△-Y连接,接地电抗为0.08pu。线路和变压器正序、零序电抗标幺值见表2,基准功率为100MVA。忽略电阻、并联电抗和负荷,并假设所有的负序电抗等于正序电抗。试用函数zbuild求正序和零序网络的节点阻抗矩阵,假定故障前所有的节点电压都为1.0,用lgfault,llfault,dlgfault和symfault计算下列故障情况下的故障电流、节点电压和线路电流。

(a)母线2处发生金属性单相接地故障;

(b)母线4处发生金属性两相短路故障

(c)母线6处发生金属性两相接地短路故障;

(d)母线8处发生三相对称故障;

基于MATLAB的电力系统潮流计算

基于MATLAB的电力系统潮流计算 %简单潮流计算的小程序,相关的原始数据数据数据输入格式如下: %B1是支路参数矩阵,第一列和第二列是节点编号。节点编号由小到大编写%对于含有变压器的支路,第一列为低压侧节点编号,第二列为高压侧节点%编号,将变压器的串联阻抗置于低压侧处理。 %第三列为支路的串列阻抗参数。 %第四列为支路的对地导纳参数。 %第五烈为含变压器支路的变压器的变比 %第六列为变压器是否是否含有变压器的参数,其中“1”为含有变压器,%“0”为不含有变压器。 %B2为节点参数矩阵,其中第一列为节点注入发电功率参数;第二列为节点%负荷功率参数;第三列为节点电压参数;第六列为节点类型参数,其中 %“1”为平衡节点,“2”为PQ节点,“3”为PV节点参数。 %X为节点号和对地参数矩阵。其中第一列为节点编号,第二列为节点对地%参数。 n=input('请输入节点数:n='); n1=input('请输入支路数:n1='); isb=input('请输入平衡节点号:isb='); pr=input('请输入误差精度:pr='); B1=input('请输入支路参数:B1='); B2=input('请输入节点参数:B2='); X=input('节点号和对地参数:X='); Y=zeros(n); Times=1; %置迭代次数为初始值 %创建节点导纳矩阵 for i=1:n1 if B1(i,6)==0 %不含变压器的支路 p=B1(i,1); q=B1(i,2); Y(p,q)=Y(p,q)-1/B1(i,3); Y(q,p)=Y(p,q); Y(p,p)=Y(p,p)+1/B1(i,3)+0.5*B1(i,4); Y(q,q)=Y(q,q)+1/B1(i,3)+0.5*B1(i,4); else %含有变压器的支路 p=B1(i,1); q=B1(i,2); Y(p,q)=Y(p,q)-1/(B1(i,3)*B1(i,5)); Y(q,p)=Y(p,q); Y(p,p)=Y(p,p)+1/B1(i,3);

基于MATLAB的电力系统短路故障分析与仿真

· ……………………. ………………. ………………… 毕 业 论 文 基于MATLAB 的电力系统短路故障分析与仿真 院 部 机械与电子工程学院 专业班级 电气工程及其自动化 届 次 2015届 学生姓名 学 号 指导教师 装 订 线 ……………….……. …………. …………. ………

摘要.................................................................................................................................................. I Abstract .......................................................................................................................................... II 1 引言 (1) 1.1 课题研究的背景 (1) 1.2 课题研究的国内外现状 (1) 2 短路故障分析 (1) 2.1 近年来短路故障 (1) 2.2 短路的定义及其分类 (2) 2.3 短路故障产生的原因及危害 (4) 2.4 预防措施 (4) 2.5 短路故障的分析诊断方法 (5) 3 仿真与建模 (6) 3.1 仿真工具简介 (6) 3.1.1 MATLAB的特点 (6) 3.1.2 Simulink简介 (7) 3.1.3 SPS(SimPowerSystems) (8) 3.1.4 GUI(图形用户界面) (8) 3.2 模型的建立 (8) 3.2.1 无限大电源系统短路故障仿真模型 (8) 3.2.2 仿真参数的设置 (9) 4 仿真结果分析 (16) 4.1 三相短路分析 (16) 4.2 单相短路分析(以A相短路为例) (18) 4.3 两相短路(以A、B相短路为例) (22) 4.4 两相接地短路(以A、B相短路为例) (25) 5 结论 (28) 6 前景与展望 (28) 参考文献 (29) 致谢 (30)

电力系统练习题

第八章电力系统不对称故障的分析计算 例题: 1、图8-7所示为具有两根架空地线且双回路共杆塔的输电线路导线和地线的

2、如图8-8所示电力系统,试分别作出在k1, k2, K3点发生不对称故障时的正序、负序、零序等值电路,并写出,,120X X X ∑∑∑ 的表达式。(取0m X ≈∞)

习题: 1、什么是对称分量法?ABC分量与正序、负序、零序分量具有怎样的关系? 2、如何应用对称分量法分析计算电力系统不对称短路故障? 3、电力系统各元件序参数的基本概念如何?有什么特点? 4、输电线路的零序参数有什么特点?主要影响因素有哪些? 5、自耦变压器零序等值电路有什么特点?其参数如何计算? 6、电力系统不对称故障(短路和断线故降)时,正序、负序、零序等值电路如何 制定?各有何特点? 7、三个序网(正序、负序、零序)以及对应的序网方程是否与不对称故障的形式有关?为什么? 8、电力系统不对称故障的边界条件指的是什么? 9、试述电力系统不对称故障(短路和断线故障)的分析计算步骤. 10、如何制定电力系统不对称故障的复合序网(简单故障和经过渡电阻故障)? 11、何谓正序等效定则? 12、电力系统不对称故障时,电压和故障电流的分布如何计算? 13、为什么说短路故障通常比断线故障要严重? 14、电力系统不对称故障电流、电压经变压器后,其对称分量将发生怎样的变化?如何计算? 15、电力系统发生不对称故障时,何处的正序电压、负序电压、零序电压最高?何处最低? 16、电力系统两处同时发生复杂故障时,应怎样计算?为什么复合序网的连接必 须要经过理想移相变压器? 17、图8-34所示电力系统,在k点发生单相接地故障,试作正序、负序、零序等值电路. 18、图8-35〔a)、(b)、(c)所示三个系统.在k点发生不对称短路故障时,试画出

不对称短路计算与分析

题目: 电力系统不对称短路计算与分析 初始条件: 系统接线如下图,线路f处发生金属性B、C相接地短路。已知各元件参为:发电机G:S N=60MV A, V N=10.5KV,X d″=0.2, X2=0.25,E″=11KV; 变压器T-1:S N=60MV A, Vs(%)=10.5,K T1=10.5 / 115kV; 变压器T-2:S N=60MV A, Vs(%)=10.5,K T2=115 / 10.5kV; 线路L:长L=90km, X1=0.4Ω/km, X0=3.5X1; 负荷LD:S LD=40MV A,X1=1.2, X2=0.35。 要求完成的主要任务: 选取基准功率S B=60MV A,基准电压为平均额定电压,要求: (1)制定正、负、零序网,计算网络各元件序参数标幺值。 (2)计算各序组合电抗及电源组合电势并绘制复合序网。 (3)计算短路点的入地电流有名值和A相电压有名值。 (4)计算短路时发电机侧线路流过的各相电流有名值。 时间安排: 熟悉设计任务 5.27 收集相关资料 5.28 选定设计原理 5.29 计算分析及结果分析 5.30 --6.6 撰写设计报告 6.7 指导教师签名:年月日 系主任(或责任教师)签名:年月日

摘要 本次课程设计的步骤为先进行正、负、零序参数的标幺值转化,再分别用戴维南定理做出各序等值电路得到各序的短路电抗,然后根据两相接地短路的边界条件绘制复合网络电路,并求出各序短路电流、总短路电流和A相电压,最后根据电力系统的具体电路计算发电机侧的相电流。根据标幺值计算出有名值。本文最后还总结了各种简单短路情况的短路电流的计算方法。 关键词:标幺值两相接地短路复合网络电路

基于Matlab的电力系统故障研究仿真

基于Matlab的电力系统故障分析与仿真 摘要:本文介绍了MATLAB软件在电力系统中的应用,以及利用动态仿真工具Simulink和电力系统工具箱PSD进行仿真的基本方法。在仿真平台上,以单机—无穷大系统为建模对象,通过选择模块,参数设置,以及连线,对电力系统的多种故障进行仿真分析。同时,设计一个GUI图形界面,将仿真波形清晰地显示在界面上以便比较和分析。结果表明,仿真波形基本符合理论分析,说明了MATLAB是电力系统仿真研究的有力工具。 关键词:电力系统;仿真;故障;MATLAB;GUI Abstract:This paper introduces the applications of MATLAB in power system analysis, and the basic simulation method of taking use of Simulink and PSD. On MATLAB simulation platform, take a single machine-infinite-bus system as modeling objects, by selecting the module, parameter settings, and connectingmodules to simulate and analysevariousfault of power system. At the same time, in order to facilitate comparison and analysis simulation waveform, design a GUI for showing waveform clearly.The results show that the simulation waveform in line with theoretical analysis, indicates that MATLAB is a powerful tool for researching simulation of power system. Keywords:PowerSystem。 Simulation。 Fault。 Matlab。 GUI 0 前言[1,2] 随着电力工业的发展,电力系统规划、运行和控制的复杂性亦日益增加,电力系统的生产和研究中仿真软件的应用也越来越广泛。现在,我们主要使用的电力系统仿真软件有:EMTP程序,用于电力系统电磁暂态计算,电力系统暂态过电压分析,暂态保护装置的综合选择等。PSCAD/EMTDC程序,典型应用是计算电力系统遭受扰动或参数变化时,参数随时间变化的规律。PSASP,其功能主要有稳态分析、故障分析和机电暂态分析。还有MathWorks公司开发的MATLAB软件。在MATLAB中,电力系统模型可以在Simulink环境下直接搭建,也可以进行封装和自定义模块库,充分显现了其仿真平台的优越性。更重要的是,MATLAB提供了丰富的工具箱资源,以及大量的实用模块,使我们可以更加深入地研究电力系统的行为特性。本篇论文将在熟练掌握MATLAB软件的基础上,对电力系统的故障进行建模、仿真、分析,并且设计一个GUI图形用户界面来反映故障波形。

matlab仿真电力系统短路故障分析

本科生毕业设计(论文) 题目:运用Matlab仿真分析短路故障 学生姓名: 系别:机电系 专业年级:电气工程及其自动化专业 指导教师: 2013年 6 月 20 日

摘要 本文先对电力系统的短路故障做了简要介绍,分析了线路运行的基本原理及其运行特点,并对短路故障的过程进行了理论分析。在深入分析三相短路故障的稳态和暂态电气量的基础上,总结论述了当今三相短路的的各种流行方案,分别阐述了其基本原理和存在的局限性。并运用派克变换及d.q.o坐标系统的发电机基本方程和拉氏运算等对其中的三相短路故障电流等做了详细的论述。并且利用Matlab中的simulink仿真软件包,建立了短路系统的统一模型,通过设置统一的线路参数、仿真参数。给出了仿真结果及线路各主要参数的波形图。最后根据仿真结果,分析目前自动选线法存在的主要问题及以后的发展方向。 关键词:短路故障;派克变换;拉氏运算;Matlab

ABSTRACT This paper first on the three-phase short circuit of electric power system is briefly introduced, analyzed the basic principle of operation of three-phase circuit and its operation characteristic, and the three-phase short circuit fault process undertook theoretical analysis. In depth analysis of three-phase short circuit fault of steady state and transient electrical quantities based on the summary, the three-phase short circuit of various popular programs, respectively, expounds its basic principles and limitations. And the use of Peck transform and d.q.o coordinate system of the generator basic equation and Laplace operator on the three-phase short-circuit current in detail. And the use of Matlab in the Simulink simulation software package, to establish a unified model of three-phase short-circuit system, by setting the unified circuit parameters, the simulation parameters. The simulation results are presented and the main parameters of the waveform of line. Finally, according to the simulation results, analysis of the current automatic line selection method the main existing problems and the future direction of development. Keywords:Short-circuit failure ;Peck transform;The Laplace operator;M atlab

不对称短路例题

例一 系统接线如图所示,已知各元件参数如下。发电机G :S N =30MVA , ()2.02==''x x d ;变压器T-1:S N =30MVA ,U k %=,中性点接地阻抗z n =j10Ω;线路L :l =60km ,x (1)=Ω/km ,x (0)=3x (1);变压器T-2:S N =30MVA ,U k %=;负荷:S LD =25MVA 。试计算各元件电抗的标幺值,并作出各序网络图。 解:(1)求各元件参数标幺值 SB=30MVA ,UB=Uav ()2.030 30 2.02.02=?==''=GN B d S S x X 105.030 301005.10100%1=?=?= NT B k T S S U X ()()()0544.011530 604.02 2 121=??===av B L L U S l x X X ()()1633.00544.03310=?==L L X X 44.125302.12 .1)1(=?==LD B LD S S X 42.025 30 35.035 .0)2(=?==LD B LD S S X 0227.0115 301010 2 2j j U S j Z av B n =?== 06805.00227.033j j Z n =?= (2)各序网络如图所示。

例题二电力系统接线如图所示,试分别作出f1和f2点发生接地短路时的系统零序网络图。

jX 23j3X 17 jX 23 j3X 17 ) 0( 例三 系统接线如图所示。已知各元件参数如下。发电机G :S N =100MVA , ()18.02==''x x d ;变压器T-1:S N =120MVA ,U k %=;变压器T-2:S N =100MVA ,U k %=;线路L :l =140km ,x (1)=Ω/km ,x (0)=3x (1)。在线路的中点发生单相接地短路,试计算短路点入地电流及线路上各相电流的有名值,并作三线图标明线路各相电流的实际方向。 解:S B =100MVA ,U B =U av )(251.0230 31003kA U S I B B B =?== ,取?∠=9005.1E ()18.0100 100 18.018.02=?=?==''GN B d S S x X 0875.01201001005.10100%111=?=?= N T B k T S S U X 105.0100 100 1005.10100%222=?=?= N T B k T S S U X ()()10586.0230100 1404.02 211=??==B B L U S l x X

基于matlab的电力系统短路电流计算

湖北民族学院 信息工程学院 题目: 基于matlab的电力系统短路电流计算 专业:电气工程及其自动化 班级: 0308407 学号: 030840705 学生姓名: 指导教师: 2011年6 月1 日

信息工程学院课程设计任务书 年月日

信息工程学院课程设计成绩评定表

摘要 随着电力工业的发展,电力系统的规模越来越大,在这种情况下,许多大型的电力科研实验很难进行,尤其是电力系统中对设备和人员等危害最大的事故故障,尤其是短路故障,而在分析解决事故故障时要不断的实验,在现实设备中很难实现,一是实际的条件难以满足;二是从系统的安全角度来讲也是不允许进行实验的。考虑这两种情况,寻求一种最接近于电力系统实际运行状况的数字仿真工具十分重要,而MATLAB软件中的SIMULINK是用来对动态系统进行建模、仿真和分析的集成开发环境,是结合了框图界面和交互仿真能力的非线性动态系统仿真工具,为解决具体的工程问题提供了更为快速、准确和简洁的途径。 关键词:短路电流计算,MATLAB,仿真 Abstract Along with the development of the electric power industry, the scale of the power system is more and more big, in this case, many large power research is difficult to, especially in the power system, equipment and personnel to the harm such as the biggest accident, especially fault fault location, and on the analysis of the accident to solve the fault of the experiment, in the reality constantly in equipment, it is difficult to accomplish a is practical conditions to meet; The security of the system from the perspective is not allowed in the experiment. Consider the two kinds of circumstances, for one of the most close to power system actual the operation condition of digital simulation tool is very important, and MATLAB software SIMULINK is used for the dynamic system modeling, simulation and analysis of the integrated development environment, is combined with the block diagram interface and interactive simulation of nonlinear dynamic system ability of simulation tools, to solve the specific engineering problem, provides a more rapid, accurate and simple way. Keywords: short-circuit current calculation, MATLAB, the simulatio

电力电子技术与电力系统分析matlab仿真

电气2013级卓班电力电子技术与电力系统分析 课程实训报告 专业:电气工程及其自动化 班级: 姓名: 学号: 指导教师:

兰州交通大学自动化与电气工程学院 2016 年 1 月日

电力电子技术与电力系统分析课程实训报告 1 电力电子技术实训报告 1.1 实训题目 1.1.1电力电子技术实训题目一 一.单相半波整流 参考电力电子技术指导书中实验三负载,建立MATLAB/Simulink环境下三相半波整流电路和三相半波有源逆变电路的仿真模型。仿真参数设置如下: (1)交流电压源的参数设置和以前实验相关的参数一样。 (2)晶闸管的参数设置如下: R=0.001Ω,L =0H,V f=0.8V,R s=500Ω,C s=250e-9F on (3)负载的参数设置 RLC串联环节中的R对应R d,L对应L d,其负载根据类型不同做不同的调整。 (4)完成以下任务: ①仿真绘出电阻性负载(RLC串联负载环节中的R d= Ω,电感L d=0,C=inf,反电动势为0)下α=30°,60°,90°,120°,150°时整流电压U d,负载电流L 和晶闸管两端电压U vt1的波形。 d ②仿真绘出阻感性负载下(负载R d=Ω,电感L d为,反电动势E=0)α=30°,60°,90°,120°,150°时整流电压U d,负载电流L d和晶闸管两端电压U vt1的波形。 ③仿真绘出阻感性反电动势负载下α=90°,120°,150°时整流电压U d,负载电流L d和晶闸管两端电压U vt1的波形,注意反电动势E的极性。 (5)结合仿真结果回答以下问题: ①该三项半波可控整流电路在β=60°,90°时输出的电压有何差异?

基于MATLABSimulink电力系统短路故障分析与仿真

基于MATLAB/Simulink电力系统短路故障分析与仿真 摘要: MATLAB有强大的运算绘图能力,给用户提供了各种领域的工具箱,而且编程语法简单易学。论文对电力系统的短路故障做了简要介绍并对短路故障的过程进行了理论分析和MATLAB软件在电力系统中的应用,介绍了Matlab/Simulink的基本特点及利用MATLAB进行电力系统仿真分析的基本方法和步骤。在仿真平台上,以单机—无穷大系统为建模对象,通过选择模块,参数设置,以及连线,对电力系统的多种故障进行仿真分析。 关键词:MATLAB、短路故障、仿真、电力系统 Abstract: MATLAB has powerful operation ability to draw, toolkit provides users with a variety of fields, and easy to learn programming grammar. Paper to give a brief introduction of fault of the power system and the process of fault are analyzed in theory and the application of MATLAB software in power system, this paper introduces the basic characteristics of MATLAB/Simulink and MATLAB power system simulation analysis of the basic methods and steps. On the simulation platform, with single - infinity system for modeling object, by selecting module, parameter Settings, as well as the attachment, a variety of fault simulation analysis of power system. Keyword:MATLAB;Fault analysis;Simulation;Power System;

不对称短路计算题

不对称短路计算题 --------------------------------------------------------------------------作者: _____________ --------------------------------------------------------------------------日期: _____________

计算题部分: 1、电力系统如图所示,变压器T 2 低压侧开路。在输电线中间发生单相短路时,计算:(1)故障点的次暂态短路电流;(2)变压器T1,变压器T2中性线中的次暂态短路电流。 解:1)画出正序、负序、零序网,求正序、负序、零序等值电抗: 125 .0 ) 18 .0 087 .0 //( ) 18 .0 056 .0( 19 .0 06 .0 056 .0 074 .0 176 .0 06 .0 056 .0 06 .0 2 1 = + + = = + + = = + + = ∑ ∑ ∑ x x x 2)画出复合序网,求故障点正序、负序、零序电流: ) ( 51 .0 230 3 100 ) 125 .0 19 .0 176 .0( 1 I I I 2 1 kA j j a a a = ? ? + + = = =& & & 3)故障点的次暂态短路电流:) ( 53 .1 51 .0 3 I3 I 1 kA a fa = ? = =& & 4)在零序网中求流过变压器T1,变压器T2的零序电流: ) ( 24 .0 27 .0 51 .0 ) ( 27 .0 18 .0 056 .0 125 .0 51 .0 20 10 kA I kA I T T = - = = + ? = & & 5)求流过变压器T1,变压器T2中性线中的次暂态短路电流 ) ( 72 .0 24 .0 3 3 ) ( 81 .0 27 .0 3 3 20 2 10 1 kA I I kA I I T N T T N T = ? = = = ? = = & & & &

基于MATLAB的电力系统仿真

《电力系统设计》报告题目: 基于MATLAB的电力系统仿 学院:电子信息与电气工程学院 班级: 13级电气 1 班 姓名:田震 学号: 日期:2015年12月6日 基于MATLAB的电力系统仿真 摘要:目前,随着科学技术的发展和电能需求量的日益增长,电力系统规模越来 越庞大,超高压远距离输电、大容量发电机组、各种新型控制装置得到了广泛的应用,这对于合理利用能源,充分挖掘现有的输电潜力和保护环境都有重要意义。另一方面,随着国民经济的高速发展,以城市为中心的区域性用电增长越来越快,大电网负荷中心的用电容量越来越大,长距离重负荷输电的情况日益普遍,电力系统在人们的生活和工作中担任重要角色,电力系统的稳定运行直接影响着人们的日常生活。从技术和安全上考虑直接进行电力试验可能性很小,因此迫切要求运用电力仿真来解决这些问题。 电力系统仿真是将电力系统的模型化、数学化来模拟实际的电力系统的运行,可以帮助人们通过计算机手段分析实际电力系统的各种运行情况,从而有效的了解电力系统概况。本文根据电力系统的特点,利用MATLAB的动态仿真软件Simulink搭建了无穷大电源的系统仿真模型,得到了在该系统主供电线路电源端发生三相短路接地故障并由故障器自动跳闸隔离故障的仿真结果,并分析了这一暂态过程。通过仿真结果说明MATLAB 电力系统工具箱是分析电力系统的有效工具。 关键词:电力系统;三相短路;故障分析;MATLAB仿真 目录 一.前言.............................................. 二.无穷大功率电源供电系统仿真模型构建............... 1.总电路图的设计......................................

基于MATLAB的单机无穷大系统短路故障分析

基于MATLAB的单机无穷大系统短路故障分析 【摘要】本文以MATLAB7.0软件为平台构建了一个单机无穷大系统的仿真模型,并以电力系统中最常见的单相短路故障为例,分析了短路中的电压电流波形,对研究电力系统的暂态过程打下基础。 【关键词】单机无穷大系统; MATLAB;暂态稳定 随着电系统规模逐渐扩大,对电力系统的稳定性要求越来越高,然而电力系统运行中的各种短路故障、负荷的突变现象时候发生,这些扰动会对电力系统的稳定造成很大的影响。 我国电力工业参数高、容量大,为了排除一些因素的干扰,尽可能的使仿真模型贴近实际,在对电力系统稳态分析中常采用单机对无穷大系统(SIMB),单机—无穷大系统认为电源的电压幅值和频率在系统发生故障时仍能保持恒定,通过这样近似处理得到的仿真结果更贴近生产实际。 1.单机大无穷系统的原理分析 图1是某单机无穷大系统的电路简化模型,左侧是模拟的无限个并联运行的发电机组经过变压器和双回路输电线路向无穷大母线VS供电。根据图1基础接下来用Simulink搭建上述电路模型并进行故障分析。 图1 单机一无穷大系统电路简化模型 2.单机无穷大系统的simulink建模 打开Simulink的扩展工具箱中电力系统模块(SimPowerSystems),选择合适的模块建模[1]。使用同步发电机(Synchronous Machine pu Standard),励磁系统(Excitation System)和水轮机调速器(Hydraulic Turbine and Governor)来组成发电机组,其中额定电压Vt=13.8KV,额定频率fn=50Hz,额定容量Pn=300E6V A,无穷大电源电压VS=220KV,转子类型(Rotor type):凸极(Salient—Pole)。三相变压器联结组为Yd11型,采输电线路采用分布参数模型(Distributed Parameter Line)模拟220(KM)的高压线。 图2 单机一大无穷系统simulink仿真图 图3 单机大无穷系统A相短路时A、B、C三相电压波形 具体Simulink仿真如图2所示,在三相短路故障模块选择A项和接地故障(Ground Fault),故障电阻和接地电阻都采用默认的0.001,在Transition times 栏设置故障开始和结束时间段为[0.15 0.26]。另外由于此系统是带发电机的非线性系统[2],所以算法可以采ode23tb,仿真总时间设为0.5秒。

不对称短路计算题

计算题部分: 1、电力系统如图所示,变压器T 2低压侧开路。在输电线中间发生单相短路时,计算:(1)故障点的次暂态短路电流;(2)变压器T1,变压器T2中性线中的次暂态短路电流。 解:1)画出正序、负序、零序网,求正序、负序、零序等值电抗: 125 .0)18.0087.0//()18.0056.0(19 .006.0056.0074.0176.006.0056.006.0021=++==++==++=∑∑∑x x x 2)画出复合序网,求故障点正序、负序、零序电流: )(51.0230 3100 )125.019.0176.0(1I I I 021kA j j a a a =??++= == 3)故障点的次暂态短路电流:)(53.151.03I 3I 1kA a fa =?== 4)在零序网中求流过变压器T1,变压器T2的零序电流: ) (24.027.051.0) (27.018.0056.0125 .051.020 10kA I kA I T T =-==+?= 5)求流过变压器T1,变压器T2中性线中的次暂态短路电流 )(72.024.033)(81.027.03320 2101kA I I kA I I T N T T N T =?===?==

2、电力系统如图所示,变压器T 2低压侧开路。在输电线中间发生两相接地短路时,计算:(1)故障点的次暂态短路电流;(2)变压器T1,变压器T2中性线中的次暂态短路电流。 解:1)画出正序、负序、零序网,求正序、负序、零序等值电抗: 08 .0)09.0087.0//()09.006.0(16.003.0056.0074.015.003.006.006.0021=++==++==++=∑∑∑x x x ; 2)画出复合序网,求故障点正序、零序电流: ) (36.024 .016.025.1)(I I ) (25.1230 3100 )08.0//16.015.0(1I 02210 1kA x x x kA j j a a a =?=+==??+=∑∑∑ 3)故障点的次暂态短路电流: )(687.4)08.0(0.160.08 0.16-125.13I ) (x x - 13I I 2 12 0202kA x x a fc fb =+???=+==∑∑∑ ∑ 4)在零序网中求流过变压器T1,变压器T2的零序电流: )(168.0192.036.0);(192.009 .006.008.036.020 10kA I kA I T T =-==+? = 5)求流过变压器T1,变压器T2中性线中的次暂态短路电流 ) (504.0168.033);(576.0192.033202101kA I I kA I I T N T T N T =?===?==

基于MATLAB的电力系统仿真

《电力系统设计》报告 题目: 基于MATLAB的电力系统仿学院:电子信息与电气工程学院 班级: 13级电气 1 班 姓名:田震 学号: 20131090124 日期:2015年12月6日

基于MATLAB的电力系统仿真 摘要:目前,随着科学技术的发展和电能需求量的日益增长,电力系统规模越来越庞大,超高压远距离输电、大容量发电机组、各种新型控制装置得到了广泛的应用,这对于合理利用能源,充分挖掘现有的输电潜力和保护环境都有重要意义。另一方面,随着国民经济的高速发展,以城市为中心的区域性用电增长越来越快,大电网负荷中心的用电容量越来越大,长距离重负荷输电的情况日益普遍,电力系统在人们的生活和工作中担任重要角色,电力系统的稳定运行直接影响着人们的日常生活。从技术和安全上考虑直接进行电力试验可能性很小,因此迫切要求运用电力仿真来解决这些问题。 电力系统仿真是将电力系统的模型化、数学化来模拟实际的电力系统的运行,可以帮助人们通过计算机手段分析实际电力系统的各种运行情况,从而有效的了解电力系统概况。本文根据电力系统的特点,利用MATLAB的动态仿真软件Simulink搭建了无穷大电源的系统仿真模型,得到了在该系统主供电线路电源端发生三相短路接地故障并由故障器自动跳闸隔离故障的仿真结果,并分析了这一暂态过程。通过仿真结果说明MATLAB电力系统工具箱是分析电力系统的有效工具。 关键词:电力系统;三相短路;故障分析;MATLAB仿真

目录 一.前言 (4) 二.无穷大功率电源供电系统仿真模型构建 (5) 1.总电路图的设计 (5) 2.各个元件的参数设定 (6) 2.1供电模块的参数设定 (6) 2.2变压器模块的参数设置 (6) 2.3输电线路模块的参数设置 (7) 2.4三相电压电流测量模块 (8) 2.5三相线路故障模块参数设置 (8) 2.6三相并联RLC负荷模块参数设置 (9) 3.仿真结果 (9)

用Matlab计算潮流计算电力系统分析

《电力系统潮流上机》课程设计报告 院系:电气工程学院 班级:电088班 学号: 0812002221 学生姓名:刘东昇 指导教师:张新松 设计周数:两周 日期:2010年 12 月 25 日

一、课程设计的目的与要求 目的:培养学生的电力系统潮流计算机编程能力,掌握计算机潮流计算的相关知识 要求:基本要求: 1.编写潮流计算程序; 2.在计算机上调试通过; 3.运行程序并计算出正确结果; 4.写出课程设计报告 二、设计步骤: 1.根据给定的参数或工程具体要求(如图),收集和查阅资料;学习相关软件(软件自选:本设计选择Matlab进行设计)。 2.在给定的电力网络上画出等值电路图。 3.运用计算机进行潮流计算。 4.编写设计说明书。 三、设计原理 1.牛顿-拉夫逊原理 牛顿迭代法是取x0 之后,在这个基础上,找到比x0 更接近的方程的跟,一步一步迭代,从而找到更接近方程根的近似跟。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0 的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根。电力系统潮流计算,一般来说,各个母线所供负荷的功率是已知的,各个节点电压是未知的(平衡节点外)可以根据网络结构形成节点导纳矩阵,然后由节点导纳矩阵列写功率方程,由于功率方程里功率是已知的,电压的幅值和相角是未知的,这样潮流计算的问题就转化为求解非线性方程组的问题了。为了便于用迭代法解方程组,需要将上述功率方程改写成功率平衡方程,并对功率平衡方程求偏导,得出对应的雅可比矩阵,给未知节点赋电压初值,一般为

额定电压,将初值带入功率平衡方程,得到功率不平衡量,这样由功率不平衡量、雅可比矩阵、节点电压不平衡量(未知的)构成了误差方程,解误差方程,得到节点电压不平衡量,节点电压加上节点电压不平衡量构成新的节点电压初值,将新的初值带入原来的功率平衡方程,并重新形成雅可比矩阵,然后计算新的电压不平衡量,这样不断迭代,不断修正,一般迭代三到五次就能收敛。 牛顿—拉夫逊迭代法的一般步骤: (1)形成各节点导纳矩阵Y。 (2)设个节点电压的初始值U和相角初始值e 还有迭代次数初值为0。 (3)计算各个节点的功率不平衡量。 (4)根据收敛条件判断是否满足,若不满足则向下进行。 (5)计算雅可比矩阵中的各元素。 (6)修正方程式个节点电压 (7)利用新值自第(3)步开始进入下一次迭代,直至达到精度退出循环。 (8)计算平衡节点输出功率和各线路功率 2.网络节点的优化 1)静态地按最少出线支路数编号 这种方法由称为静态优化法。在编号以前。首先统计电力网络个节点的出线支路数,然后,按出线支路数有少到多的节点顺序编号。当由n 个节点的出线支路相同时,则可以按任意次序对这n 个节点进行编号。这种编号方法的根据是导纳矩阵中,出线支路数最少的节点所对应的行中非零元素也2)动态地按增加出线支路数最少编号在上述的方法中,各节点的出线支路数是按原始网络统计出来的,在编号过程中认为固定不变的,事实上,在节点消去过程中,每消去一个节点以后,与该节点相连的各节点的出线支路数将发生变化(增加,减少或保持不变)。因此,如果每消去一个节点后,立即修正尚未编号节点的出线支路数,然后选其中支路数最少的一个节点进行编号,就可以预期得到更好的效果,动态按最少出线支路数编号方法的特点就是按出线最少原则编号时考虑了消去过程中各节点出线支路数目的变动情况。 3.MATLAB编程应用 Matlab 是“Matrix Laboratory”的缩写,主要包括:一般数值分析,矩阵运算、数字信号处理、建模、系统控制、优化和图形显示等应用程序。由于使用Matlab 编程运算与人进行科学计算的思路和表达方式完全一致,所以不像学习高级语言那样难于掌握,而且编程效率和计算效率极高,还可在计算机上直接输出结果和精美的图形拷贝,所以它的确为一高效的科研助手。 四、设计内容

基于Matlab计算程序的电力系统运行分析课程设计

课程设计 课程名称:电力系统分析 设计题目:基于Matlab计算程序地电力系统运行分析学院:电力工程学院 专业:电气工程自动化 年级: 学生姓名: 指导教师: 日期: 教务处制

目录 前言 (1) 第一章参数计算 (2) 一、目标电网接线图 (2) 二、电网模型地建立 (3) 第二章潮流计算 (6) 一.系统参数地设置 (6) 二.程序地调试 (7) 三、对运行结果地分析 (13) 第三章短路故障地分析计算 (15) 一、三相短路 (15) 二、不对称短路 (16) 三、由上面表对运行结果地分析及在短路中地一些问题 (21) 心得体会 (26) 参考文献 (27)

前言 电力系统潮流计算是电力系统分析中地一种最基本地计算,是对复杂电力系统正常和故障条件下稳态运行状态地计算.潮流计算地目标是求取电力系统在给定运行状态地计算.即节点电压和功率分布,用以检查系统各元件是否过负荷.各点电压是否满足要求,功率地分布和分配是否合理以及功率损耗等.对现有电力系统地运行和扩建,对新地电力系统进行规划设计以及对电力系统进行静态和暂态稳定分析都是以潮流计算为基础.潮流计算结果可用如电力系统稳态研究,安全估计或最优潮流等对潮流计算地模型和方法有直接影响. 在电力系统中可能发生地各种故障中,危害最大且发生概率较高地首推短路故障.产生短路故障地主要原因是电力设备绝缘损坏.短路故障分为三相短路、两相短路、单相接地短路及两相接地短路.其中三相短路时三相电流仍然对称,其余三类短路统成为不对称短路.短路故障大多数发生在架空输电线路.电力系统设计与运行时,要采取适当地措施降低短路故障地发生概率.短路计算可以为设备地选择提供原始数据.

matlab短路故障分析277664

(此文档为word 格式,下载后您可任意编辑修改!) 南昌大学科学技术学院 课程设计报告 题目电力系统短路故障分析学生姓名杨建伟学科部信息学科部专业班级电气122 课程设计地点电机301 指导教师吴敏黄灿英

目录 课程设计(论文)任务书 一、课题设计(论文)题目: 基于MATLAB勺电力系统单相短路故障分析与仿真 二、课程设计(论文)使用的原始资料(数据)及设计技术要求: 本文介绍了 MATLAB软件在电力系统中的应用,以及利用动态仿真工具Simulink。MATLAB Simulink 的仿真环境中,利用 Simpowersystems 中电气元件对电力系统发生单相短路时电路情况进行仿真与分析,着重分析了中性点 不接地时电压电流的变化情况。结果表明,仿真波形基本符合理论分析,说明了MATLAB!电力系统仿真研究的有力工具。 、课程设计(论文)工作内容及完成时间:

引言 随着电力工业的发展,电力系统的规模越来越大,在这种情况下,许多大型的电力科研实验很难进行,尤其是电力系统中对设备和人员等危害最大的事故 故障,尤其是短路故障,而在分析解决事故故障时要不断的实验,在现实设备中很难实现,一是实际的条件难以满足;二是从系统的安全角度来讲也是不允许进行实验的。考虑这两种情况,寻求一种最接近于电力系统实际运行状况的数字仿真工具十分重要,而MATLAB^件中的SIMULINK是用来对动态系统进行建模、仿真和分析的集成开发环境,是结合了框图界面和交互仿真能力的非线性动态系统仿真工具,为解决具体的工程问题提供了更为快速、准确和简洁的途径。电力系统中输送和分配电能的部分称为电力网,它包括升降压变压器和各种电压等级的输电线路,动力系统、电力系统和电力网简单示意如图1-1 o

相关主题
文本预览
相关文档 最新文档