1、课程设计(综合实验)报告( 2010 - 2011 年度第二学期)名 称:电力系统故障分析 题 目: 故障上机计算 院 系: 电力工程系 班 级: 电自 学 号: 2008 学生姓名: 李 博 指导教师: 余 洋 设计周数: 2 周 成 绩: 日期: 年 月 一、概论:电力系统故障分析课程设计是“电力系统故障分析”课程的实践性教学环节,具有很强的实践性和现实意义。通过这次的课程设计可以使我们对用计算机计算电力系统故障的原理和过程有更为清晰和深刻的理解,同时进一步掌握电力系统故障计算的基本知识和方法,提高动手编制计算程序的能力,为今后进行电力系统故障计算打下初步的基础。而随着计算机技术在电力系统
2、中应用的日益普及,这次的实践对自己在日后的工作和学习中运用计算机解决实际问题有很大的帮助。经过约一周时间的编程和调试,在指导老师和同学的帮助下,编制出了电力系统短路故障计算程序,完成了课程设计指定的各项基本要求任务。二、任务:1、 对于给定的系统接线图,按照要求手工计算出各种简单故障的电气量值;2、 用 C 语言或相关的语言编制一个电力系统短路故障的计算程序并上机调试,要求该程序能处理各种简单的故障,并将计算结果以文件形式输出。三、任务设计阶段:(一) 计算的假设1、 不计各元件的电阻,即 R=0;2、 各元件的正序和负序电抗相等,即 X1=X2;3、 不计线路电容电流的影响;4、 计算简单短
3、路故障时,各发电机电势的标幺值均为 E=j1。5、 各种短路均为金属性短路,纵向不对称故障指一相断相和两相断相;6、 故障形式取 A 相为特殊相,故障计算以 A 相为基准相。(二) 准备工作1、 始数据计算根据给定的系统原始数据计算系统各元件的标幺值参数,取。avBBUMVS,0(1)发电机参数计算公式:X = X “d“NBS2计算结果厂名 编号 X“dS (MVA)U (KV)NX (标幺值)“d1#,2# 0.188 62.5 10.5 3.008A 厂3#,4# 0.145 75.0 10.5 1.9331# 0.141 62.5 10.5 2.256B 厂2#,3# 0.162 31
4、.25 6.3 5.184(2)变压器计算公式:X = , T10kUNBS)(21gkjkijkiki U(i,j,k,=1,2,3)计算结果:厂站 编号 )(MVASN21kU31k32k1X23TX1#、2# 60.0 11.16 1.86A厂 3#、4# 90.0 10.25 1.1391# 63.0 10.5 1.667B厂 2#、3# 31.5 10.5 3.333C站 31.5 9.81 16.16 5.91 3.184 -0.070 1.946D站 50.0 9.82 17.5 6.23 2.109 -0.145 1.391(3) 线路 计算公式: , , ,114.0LX21
5、BUSX KV15103 计算结果:线路 A-C A-D C-D D-E E-B长度 L(Km) 40 25 30 60 80X1(标幺值) 1.210 0.756 0.907 1.815 2.420X0(标幺值) 3.629 2.268 2.722 5.444 7.260(4)系统系统:X1=0.36 X0=0.87系统:X1=0.38 X0=0.512、序网络的制定根据上面的基本数据可以制定出系统的正序、负序、零序网络图。由假设 2 可知,正、负序网络相同,故在此只需制定正、零序网络。网络如下所示:2.041.850.97.3836214化1.65化72.720639098134说明:正序
6、网络中电源支路的等效电抗为发电机电抗与变压器电抗之和,系统、均处理为发电机模型。(三) 、手工计算系统故障时各电气量为了便于验证程序运行的正确性,在编制程序之前先对系统进行手工的故障计算,确定故障时系统的各个电气量。其大体步骤是:化简序网络,计算出各个序网的电流分布系数,计算特定故障点的正、零序综合电抗并由此确定故障点的短路电流,利用分布系数求出各支路电流,计算各节点电压。1、化简序网络对系统网络进行“星-三角”变换,得下图:0.34529.803CD化A1.7化0.4631.765.9ADC2、计算电流分支系数 在特定故障点加入单位电流,求出各支路电流,该电流即为支路的电流分支系数。而原网络
7、三角形回路的支路电流可由星形支路电流求得,其关系如下: DCDCACACDADA ZIIZIZII ,现将计算结果列表如下:故障点 网络类型 DACCDBEC正序 0.0275 0.1307 0.1972 0.0122母线 C零序 0.0008 0.0823 0.1104 0.00523、计算故障点综合阻抗母线 C: 379.0254.01X,4、计算故障口电流各种类型的故障口基准相正序电流计算公式如下: ;:;: 011)(1)3( 2XIKIKkk011),(11)2( /IXIkk:;:而基准相的负、零序电流与正序电流又存在如下关系:n )3(K)1()2(),(KkkI120 1 -1
8、 10XkkIn100 1 0 10X据此可求出各类故障的故障口基准相(以 A 相为基准相)序电流:C 母线故障 )3(K)1(2(1,(KkI13.92 1.13 1.96 2.4620.00 1.13 -1.96 -1.46kI00.00 1.13 0.00 -1.005、利用分布系数求解各线路的序电流C 母线故障 网络类型 DAICIDIBEI正序 0.1077 0.5117 0.772 0.0478负序 0.00 0.00 0.00 0.00)3(K零序 0.00 0.00 0.00 0.00正序 0.0538 0.2559 0.3861 0.0239负序 -0.0537 -0.255
9、9 -0.3861 -0.0239)2(零序 0.00 0.00 0.00 0.00正序 0.0311 0.1477 0.2228 0.0138负序 0.0311 0.1477 0.2228 0.0138)1(K零序 0.0009 0.0930 0.1248 0.0059),(正序 0.06765 0.3215 0.4851 0.0300负序 -0.0402 -0.1908 -0.2879 -0.0178零序 -0.0008 -0.0823 -0.1104 -0.0052相电流计算 Ia=Ia1+Ia2+Ia3; Ib= aIa1+aIa2+Ia3;Ic= aIa1+Ia2+Ia3C 母线故障
10、 相别 DAICDIBEIA 0.1077 0.5117 0.772 0.0478B 0.1077240 0.5177240 0.772240 0.0478240)3(KC 0.1077120 0.5117120 0.772240 0.0478120A 0 0 0 0B -j0.0932 -j0.4432 -j0.6687 -j0.0414)2(C j0.0932 j0.4432 j0.6687 j0.0414A 0.0631 0.3884 0.5704 0.0335B -0.0302 -0.0547 -0.098 -0.0075)1(KC -0.0302 -0.0547 -0.098 -0.
11、0075A 0.0267 0.0484 0.0868 0.007B 0.094261.2 0.4392250 0.700253 0.0429254 )1,(KC 0.09498.8 0.4392110 0.700107 0.04291066、节点电压的计算(计算 A 母线即节点 1 的电压)C 母线故障 网络类型正序 j0.6191负序 0.00)3(K零序 0.00正序 j0.8096负序 j0.1904)2(零序 0正序 j0.89负序 -j0.1099)1(K零序 -j0.085正序 j0.7628负序 j0.1431)1,(零序 j0.0752计算各相电压:Ua=Ua1+Ua2+Ua3
12、;Ub= aUa1+aUa2+Ua3; Uc= aUa1+ aUa2+Ua3C 母线故障 网络类型Ua j0.6191Ub 0.6191-30)3(KUc 0.6191-150Ua j1.000Ub 0.7332-43)2(Uc 0.7332-137Ua j0.695Ub 0.974128.8)1(KUc 0.9741151.2Ua j0.9811Ub 0.6584-35.4)1,(Uc 0.6584-144.6(四)故障计算程序的编制1、 数学模型的选择电力系统网络的数学建模主要有节点阻抗方程和节点导纳方程两种,节点导纳方程与节点阻抗方程相比较,Y 阵稀疏,占用内存少,Z 阵为满阵,占用内存
13、多;Y 阵形成容易,速度块,Z 阵形成较难,速度也慢。然而,在电力系统故障计算中,节点的注入电流通常为已知量,用节点阻抗方程进行故障计算比较直观,解算简单且物理意义明确。因此,选用节点阻抗方程法计算故障系统的电气量值,而节点阻抗矩阵的形成采用 Y 阵求逆法。2、 程序设计的总体思想系统的原始数据以文件的形式输入,程序根据这些信息形成导纳矩阵,再对之求逆形成阻抗矩阵,由阻抗矩阵求得故障口三序电流,进而求得各节点的三序电压,并由之求得各支路三序电流,最后将序分量合成相分量,完成一个完整的故障电气量计算。程序流程图(见附录 1)。3、 程序的主要功能(1) 形成网络的节点导纳矩阵和节点阻抗矩阵;(2
14、) 可以计算各种短路故障:A) 故障口的序电流和相电流;B) 网络中各支路的序电流C) 网络中各节点的序电压和相电压。(3) 能够以文件的形式清楚地输出计算结果。4、 程序使用说明本程序使用简单,只需按规定格式输入电力系统的网络信息到一个名为“in.txt”的文本文件,再运行可执行文件后按屏幕提示输入即可。运行结果保存在指定的文件里,打开它便可查看计算结果。 5、 运行结果分析经核对,程序的运行结果与指导书和手算结果基本一致,故本程序能正确地实现故障计算的功能。手算过程与计算机计算过程之间的差别在于所选取的计算模型不同,手算的关键在于正确地化简网络,求得网络的电流分支系数和故障点综合阻抗;而计
15、算机则是以线性方程组作为计算模型,它的关键是要形成一个正确的阻抗矩阵与及能正确求解线性方程组。解算过程虽不一样但结果是基本吻合的。四、总结、体会、建议:通过这次电力系统故障分析课程设计我加深了对电力系统故障分析课程的基本原理和知识的理解。检验和锻炼自己综合运用知识的能力。经过了这一次的课程设计,我已经初步掌握了如何利用计算机求解电力系统的潮流分布和故障状态下的各个电气量的方法和技巧,具备了一定的编制、调试计算程序的能力。掌握这些能里又为我今后的学习和分析解决电力系统问题时提供帮助。这次课程设计已达到了设计任务的基本要求,但就程序本身来说还是存在许多不足之处的。首先,故障计算是在作了很多简化处理
16、的假设基础上进行的,因此其计算结果的准确性是不够的;其次,处理的故障类型仅限于简单的短路计算,还不具备处理断相及复合故障的能力;再次,计算结果只反映出电气量的模值和它们之间的相对相位关系,没有给出各电气量的相角;最后就是该计算没有考虑故障时的过渡过程。还有 c 语言的应用上还有不足。这些问题都有待日后的不断完善。总之,在这次实践中我获益非浅,在老师的指导下,深刻的了解了故障上机分析的步骤和方法,有了一定的时间能力。附录 1 开 始 数组、变量的定义 从文件输入原始数据 形成正、零序网的导纳矩阵,并输出对导纳矩阵求逆形成阻抗矩阵,并输出计算各节点电压的正常分量,并输出故障类型 FType FTy
17、pe=1 FType=2 FType=3 FType=4 K(3)故障 K(1)故障 K(2)故障 K(1,1)故障 各节点序电压各节点序电流各电气量的相量输出计算结果 结 束 附录 2 短 路 计 算 程 序 的 源 程 序 清 单#include #include #define N1 5 /*正序结点数*/#define M1 9 /*正序支路数*/#define N0 5 /*零序结点数*/#define M0 9 /*零序支路数*/float SR33,SI33; /*算子矩阵*/FILE *rf,*wf; /*输入,输出文件指针*/main()void prog1();void p
18、rog2();void prog3();void prog4();void prog5();float Y1N1N1,Y0N0N0,Z1N1N1,Z0N0N0; /*结点导纳,阻抗矩阵*/float I0N1; /*结点注入电流正常分量*/float UNN13,UN13,ILM13,IM13; /*结点序相电压,支路序相电流*/float UP1,ZP1,ZP2,ZP0,IF3,IFX3; /*故障口电压,口阻抗,口电流*/float z1M1,z0M0; /*正,零序支路阻抗*/int n11M1,n12M1,n01M0,n02M0,zl1M1,zl0M0; /*支路相关结点,支路编号*/
19、int i,j,t,p; /*控制循环变量*/int kp,sign; /*故障类型,故障结点*/int n1,m1,n0,m0; /*正零序结点数支路数*/rf=fopen(“d:in.txt“,“r“); /*打开文件*/wf=fopen(“d:out.txt“,“w“);if(rf=NULL)fprintf(wf,“不能打开文件!“);return;fscanf(rf,“%d%d“, /*读入数据*/fscanf(rf,“%d%d“,fscanf(rf,“%d%d“,for(i=0;i=0;k-)for(j=k+1;jn;j+)Uk-=Ljk*Uj;for(k=0;kn;k+)Zki=U
20、k;void prog3(float A3,float B3,int n) /*由序分量形成相分量*/float RM13,IM13;int i,j,k;for(i=0;in;i+)for(j=0;j3;j+)Rij=Iij=0;for(i=0;in;i+)for(j=0;j3;j+)for(k=0;k3;k+)Rij+=SRjk*Aik;Iij+=SIjk*Aik;Bij=Rij*Rij+Iij*Iij;Bij=sqrt(Bij);void prog4(float YN1,int n) /*输出矩阵*/int i,j;for(i=0;in;i+)for(j=0;jn;j+)fprintf(wf,“%f “,Yij);fprintf(wf,“n“);void prog5(float A3,float B3,int n) /*输出矩阵*/int i,j;for(i=0;in;i+)fprintf(wf,“%d “,i+1);for(j=0;j3;j+)fprintf(wf,“%f “,Aij);for(j=0;j3;j+)fprintf(wf,“%f “,Bij);fprintf(wf,“n“);