电力系统短路故障分析的MATLAB辅助程序设计短路计算程序.docx
- 文档编号:1610722
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:41
- 大小:132.11KB
电力系统短路故障分析的MATLAB辅助程序设计短路计算程序.docx
《电力系统短路故障分析的MATLAB辅助程序设计短路计算程序.docx》由会员分享,可在线阅读,更多相关《电力系统短路故障分析的MATLAB辅助程序设计短路计算程序.docx(41页珍藏版)》请在冰豆网上搜索。
电力系统短路故障分析的MATLAB辅助程序设计短路计算程序
电力系统短路故障分析的MATLAB辅助程序设计
电力系统短路故障可分为三相对称短路故障(three-phasebalancedfaults)和不对称短路故障(unbalanced faults)。
不对称短路故障又分为单相接地短路故障(singleline-to-groundfault)、两相短路故障(line-to-linefault)以及两相接地短路故障(doubleline-to-groundfault)。
根据故障分析结果可以对继电保护装置、自动装置进行整定计算,我们可以建立算法来形成节点阻抗矩阵,利用节点阻抗矩阵来计算短路故障情况下的节点电压和线路电流。
一、三相对称短路故障
进行三相短路计算需要两个程序:
zbuild/zbuildpi和symfault程序,zbuild、zbuildpi用来在MATLAB中形成节点阻抗矩阵,symfault用来计算三相对称故障。
Zbus=zbuild(zdata) 这里的参数zdata是一个(e×4)阶矩阵,e是拓扑图的总支路数目。
第一列和第二列为元素两端的节点编号,第三列和第四列分别是线路的电阻、电抗的标幺值。
连接在0节点和发电机节点之间的发电机阻抗可能是次暂态电抗、暂态电抗或同步电抗,而且这个矩阵中还包含并联电抗器和负荷阻抗。
Zbus=zbuildpi(linedata,gendata,yload) 这个函数与潮流计算程序是相容的,第一个参数linedata与潮流计算程序中的文件是一致的。
第一列和第二列为节点编号;第三列到第五列分别是线路的电阻、电抗以及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));
fork=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上添加一个分支
forI=1:
nbr
ntree(I)=1;
ifnl(I)==0|nr(I)== 0
if nl(I)==0 n = nr(I);
elseifnr(I) ==0n =nl(I);
end
ifabs(Zbus(n, n))== 0 Zbus(n,n) =ZB(I);tree=tree+1;%%new
elseZbus(n,n) =Zbus(n,n)*ZB(I)/(Zbus(n,n) + ZB(I));
end
ntree(I)=2;
else,end
end
%添加一个新总线分支到现有总线上
while tree forn=1: nbus nadd= 1; ifabs(Zbus(n,n))==0 for I=1: nbr ifnadd==1; ifnl(I)==n|nr(I) ==n ifnl(I)==n k =nr(I); elseifnr(I)==n k= nl(I); end ifabs(Zbus(k,k)) ~= 0 form =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 forI=1: nbr ifntree(I) ==1 ifnl(I)== n|nr(I)==n ifnl(I) ==n k= nr(I); elseifnr(I) == nk=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); forkk=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程序代码: %Thisprogramformsthecomplexbusimpedance matrixbythe method %ofbuildingalgorithm. Buszero istaken asreference. % Thisprogramiscompatible with powerflow 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 ifR(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; fork =1: nbr ifnl(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; forn= 1: nbus ifabs(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=[nlnr real(ZB)imag(ZB)]; nbr=length(nl); Zbus=zeros(nbus,nbus); tree=0; %%从参考总线0上添加一个分支 for I=1: nbr ntree(I)= 1; ifnl(I) ==0|nr(I) ==0 ifnl(I)==0 n=nr(I); elseifnr(I) ==0n=nl(I); end ifabs(Zbus(n,n))==0Zbus(n,n)=ZB(I); tree=tree+1; elseZbus(n,n)= Zbus(n,n)*ZB(I)/(Zbus(n,n) +ZB(I)); end ntree(I)=2; else,end end %% 添加一个新总线分支到现有总线上 whiletree< nbus forn=1: nbus nadd= 1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电力系统 短路 故障 分析 MATLAB 辅助 程序设计 计算 程序
![提示](https://static.bdocx.com/images/bang_tan.gif)