电力系统下课程设计短路电流计算.docx
《电力系统下课程设计短路电流计算.docx》由会员分享,可在线阅读,更多相关《电力系统下课程设计短路电流计算.docx(17页珍藏版)》请在冰豆网上搜索。
电力系统下课程设计短路电流计算
《电力系统分析》课程设计报告
题目:
3G9bus短路电流计算
系别电气工程学院
专业班级10级电气四班
学生姓名
学号
指导教师
提交日期2012年12月10日
一、设计目的
1.掌握电力系统短路计算的基本原理;
2.掌握并能熟练运用一门计算机语言(MATLAB语言或FORTRAN或C语言或C++语言);
3.采用计算机语言对短路计算进行计算机编程计算。
二、短路电流计算的基本原理和方法
2.1电力系统节点方程的建立
利用节点方程作故障计算,需要形成系统的节点导纳(或阻抗)矩阵。
一般短路电流计算以前要作电力系统的潮流计算,假定潮流计算的节点导纳矩阵已经形成,在此基础上通过追加支路的方式形成电力短路电流计算的节点导纳矩阵YN。
1)对发电机节点
在每一发电机节点增加接地有源支路
与
串联
求短路稳态解:
求短路起始次暂态电流解:
一般情况下发电机定子绕组电阻忽略掉,并将
与
的有源支路转化成电流源
与导纳
并联的形式
2)负荷节点的处理
负荷节点在短路计一算中一般作为节点的接地支路,并用恒定阻抗表示,其数值由短路前瞬间的负荷功率和节点实际电压算出,即首先根据给定的电力系统运行方式制订系统的等值电路,并进行各元件标么值参数的计算,然后利用变压器和线路的参数形成不含发电机和负荷的节点导纳矩阵YN。
3)如果短路故障发生在输电线路内,在短路点要增加新节点,将一条输电线分成两段,并形成短路电流计算的节点导纳矩阵Y,最后形成包括所有发电机支路和负荷支路的节点方程如下:
一般,节点导纳矩阵Y阵与YN阶次相同。
其差别只在于YN阵不含发电机和负荷的阻抗;节点注入电流向量I中只有发电机端节点的电流不为零。
有非零电流源注人的节点称为有源节点。
系统中的同步调相机可按发电机处理。
任进行起始次暂态电流计算时,大型同步电动机、感应电动机以及以电动机为主要成分的综合负荷,特别是在短路点近处的这些负荷,必要时也可以用有源支路表示,并仿照发电机进行处理。
必须指出,在计算机已普遍应用的情况下,如果有必要的话,只要能提供短路计算所需的准确的原始数据,对短路进行更精确的计算并不存在什么障碍。
2.2利用节点阻抗矩阵计算短路电流
假定系统中的节点f经过渡阻抗zf发生短路。
过渡阻抗渡阻抗zf,不参与形成网络的节点导纳(或阻抗)矩阵。
图6-3中方框内的有源网络代表系统正常状态的单相等值网络。
现在我们保持故障处的边界条件不变,把网络的原有部分同故障支路分开(见图6-3)。
容易看出,对于正常状态的网络而言,发生短路相当于在故障节点f增加了一个注人电流一If(短路电流以流出故障点为正,节点电流则以注入为正)。
因此,网络中任一节点i的电压可表示为:
(6-3)
由式(6-3)可见,任一节点i的电压郁由两项叠加而成。
第一项表示当If=0时由网络内所有电源在节点i产生的电压,也就是短路前瞬间正常运行状态一F的节点电压,这是节点电压的正常分量,记为
是电网的潮流解。
第二项是当网络中所有电流源都断开,仅仅由短路电流If在节点i产生的电压,这就是节点电压的故障分童。
上述两个分量的叠加,就等于发生短路后节点,的实际电压,即
(6-4)
式中,
是短路前故障点的正常电压;当i=f时,
是故障节点f的自阻抗,也称输入阻抗。
(边界条件方程)带入
可得:
对于非变压器支路,令k=1。
从计算公式(6-7)和(6-8)可以看到,式中所用到的阻抗矩阵元素都带有列标f。
这就是说,如果网络在正常状态下的节点电压为已知,为了进行短路计算,只须利用节点阻抗矩阵中与故障点f对应的一列元素。
因此,尽管是采用了阻抗型的节点方程,但是并不需要作出全部阻抗矩阵。
在短路的实际计一算中,一般只需形成网络的节点导纳矩阵.并根据具体要求,用第四章所讲的方法求出阻抗矩阵的某一列或某几列元素即可。
在应用节点阻抗矩阵进行短路计算时,我们都将采用这种算法。
1)解潮流计算,
2)修正解潮流的YN形成Y
3)指定短路点f
4)计算节点阻抗矩阵第k列
5)计算短路电流:
6)计算节点电压:
7)计算支路电流:
8)输出计算结果
三、3G9bus短路电流在计算机的编程
3.1、三机九节点系统
图1三机九节点系统
表1九节点系统支路参数
支路
R(p.u.)
X(p.u.)
B/2(p.u.)
1~4
0
0.0576
1.0
2~7
0
0.0625
1.0
3~9
0
0.0586
1.0
4~5
0.01
0.085
0.088
4~6
0.017
0.092
0.079
5~7
0.032
0.161
0.153
6~9
0.039
0.17
0.179
7~8
0.0085
0.072
0.0745
8~9
0.0119
0.1008
0.1045
表2九节点系统发电机参数
发电机编号
节点类型
PG(p.u.)
VG(p.u.)
(p.u.)
(p.u.)
1
Vδ
1.04
0.3
1.137
2
PV
1.63
1.025
0.3
1.211
3
PV
0.85
1.025
0.3
1.043
表3九节点系统负荷参数
节点编号
节点类型
Pi(p.u.)
Qi(p.u.)
4
PQ
0
0
5
PQ
1.25
0.5
6
PQ
0.9
0.3
7
PQ
0
0
8
PQ
1
0.35
9
PQ
0
0
主程序
3.2程序设计
主函数
Sbase_MVA=100.
fid=fopen('Nodedata.txt');
N=textscan(fid,'%s%u%d%f%f%f%f%f%f')
fclose(fid);
busnumber=size(N{1},1)
fori=1:
busnumber
Bus(i).name=N{1}(i);
Bus(i).type=N{2}(i);
Bus(i).no=i;
Bus(i).Base_KV=N{3}(i);
Bus(i).PG=N{4}(i);
Bus(i).QG=N{5}(i);
Bus(i).PL=N{6}(i);
Bus(i).QL=N{7}(i);
Bus(i).pb=N{8}(i);
Bus(i).V=1.0;
Bus(i).angle=0;
end
fid=fopen('Aclinedata.txt');
A=textscan(fid,'%s%s%f%f%f%f')
fclose(fid);
aclinenumber=size(A{1},1)
fori=1:
aclinenumber
Acline(i).fbname=A{1}(i);
Acline(i).tbname=A{2}(i);
Acline(i).Base_KV=A{3}(i);
Acline(i).R=A{4}(i);
Acline(i).X=A{5}(i);
Acline(i).hB=A{6}(i);
fork=1:
busnumber
ifstrcmp(Acline(i).fbname,Bus(k).name)
Acline(i).fbno=Bus(k).no;
end
ifstrcmp(Acline(i).tbname,Bus(k).name)
Acline(i).tbno=Bus(k).no;
end
end
end
fid=fopen('Transdata.txt');
T=textscan(fid,'%s%f%f%s%f%f%f%f')
fclose(fid);
tansnumber=size(T{1},1)
fori=1:
tansnumber
Trans(i).fbname=T{1}(i);
Trans(i).fbBase_KV=T{2}(i);
Trans(i).fbrated_KV=T{3}(i);
Trans(i).tbname=T{4}(i);
Trans(i).tbBase_KV=T{5}(i);
Trans(i).tbrated_KV=T{6}(i);
Trans(i).R=T{7}(i);
Trans(i).X=T{8}(i);
fork=1:
busnumber
ifstrcmp(Trans(i).fbname,Bus(k).name)
Trans(i).fbno=Bus(k).no;
end
ifstrcmp(Trans(i).tbname,Bus(k).name)
Trans(i).tbno=Bus(k).no;
end
end
Trans(i).k=Trans(i).tbrated_KV*Trans(i).fbBase_KV/Trans(i).fbrated_KV/Trans(i).tbBase_KV;
tempx=Trans(i).fbrated_KV^2/Trans(i).fbBase_KV^2;
Trans(i).X=tempx*Trans(i).X;
Trans(i).R=tempx*Trans(i).R;
end
%N=0
%Trans
(1)
%Trans
(2)
%forY=G+jBmatrix
[G,B,B2]=FormYmatrix(Bus,busnumber,Acline,aclinenumber,Trans,tansnumber);
%B:
=B';B2:
=B"
dlmwrite('Gmatrix.txt',G,'delimiter','\t','precision',6);
dlmwrite('Bmatrix.txt',B,'delimiter','\t','precision',6);
G
B
B2
pause
[JP,JQ]=FormJPQmatrix(Bus,B,B2,busnumber);
JP
iJP=-inv(JP)
JQ
iJQ=-inv(JQ)
pause
%maxiteration=0
fori=1:
busnumber
NodeV(i)=Bus(i).V;
Nodea(i)=Bus(i).angle;
VX(i)=Bus(i).V*cos(Bus(i).angle);
VY(i)=Bus(i).V*sin(Bus(i).angle);
dQGQL(i)=Bus(i).QG-Bus(i).QL;
dPGPL(i)=Bus(i).PG-Bus(i).PL;
end
NodeV=NodeV'
Nodea=Nodea'
%VX=VX'
%VY=VY'
dQGQL=dQGQL'
dPGPL=dPGPL'
pause
%fornointer=1:
10
maxdP=1.;
maxdQ=1.;
epsilon=0.000001;
noiteration=0;
while(maxdP>epsilon)&(maxdP>epsilon)
[deltaP,deltaQ,maxdP,maxdQ]=FormdPQvector(Bus,NodeV,Nodea,dQGQL,dPGPL,B,G,busnumber);
deltaP;
deltaQ;
maxd