
《电力系统暂态分析》课程设计
题目:电力系统短路故障电流计算
姓 名 刘 彪
年 级 04级
专 业 电气工程及其自动化
学 号 0441025035
院 系 信息与电气工程系
指导老师 黄 肇 王晓芳
信息与电气工程系电气工程及其自动化教研室制
目 录
第一部分 电力系统短路故障电流计算任务……..…......(1)
一.题目
二.设计目的与要求
三.主要内容
四.基本原理
五、计算实例
六、短路电流计算的步骤
七、对称短路计算原理框图
第二部分 手工计算所得结果…..…………………….......(8)
一、元件参数计算及等值电路
二、三相对称短路电流和容量的计算
第三部分 本题目的计算机解法………………..……..…(13)
一、计算机程序编写
二、计算机设计序所得结果
第四部分 课程设计总结……………………….……….. (20)
第一部分 电力系统短路故障电流计算任务
一.题目
电力系统短路故障电流的计算机计算
二.设计目的与要求
电力系统发生短路故障造成的危害性是最大的。作为电力系统三大计算之一,分析短路故障的参数更为重要。通过课程设计, 使学生巩固电力系统三相短路计算的基本原理与方法,掌握短路电流的数值求解方法,开发系统短路故障电流的计算程序。同时,通过软件开发,也有助于计算机操作能力和软件开发能力的提高。
要求手工计算和计算机仿真出给定系统短路后的短路电流(含支路电流)和节点电压。开发语言:FORTRAN 或C 语言或MATLAB软件。
三.主要内容
1. 形成算例系统节点导纳矩阵,准备原始数据,并手工计算短路电流。
2. 复习系统三相短路的基本原理,建立数学模型。
3. 确定合适的数值计算方法(矩阵直接求逆,节点优化编号,LR 分解)。
4. 上机编程调试,分析。
5. 仿真算例系统的短路电流﹑支路电流和节点电压,并与手工计算比较。
6. 上机演示答辩,书写该课程设计说明书。
四.基本原理
1、数学模型的建立
电力网络的数学模型是指将网络的有关参数和变量及其相互关系归纳起来所组成的﹑可反映网络性能的数学方程式。(节点电压方程﹑回路电流方程)
2、本次设计,拟采用运用节点导纳矩阵的节点电压方程。
IB=YBUB
3、三相对称短路计算原理及不对称短路计算原理
2、计算方法的确定
本次设计采用“线性方程组求解的直接法与LR 分解法”。
五、计算实例
1.电力系统图
电力系统图如上图所示,系统中点发生三相短路故障,编程分析与计算产生最大可能的故障电流和功率。
2.电力系统参数
(1)发电机参数
发电机:额定的有功功率,额定电压;次暂态电抗标幺值,功率因数。
发电机:火电厂共两台机组,每台机组参数为额定的有功功率;额定电压;次暂态电抗标幺值;功率因数。
(2)变压器铭牌参数可从参考文献中的《新编工厂电气设备手册》查得。
变压器:型号,变压器额定容量,一次电压,短路损耗,空载损耗,阻抗电压百分值,空载电流百分值。
变压器:型号,变压器额定容量,一次电压,短路损耗,空载损耗,阻抗电压百分值,空载电流百分值。
变压器:型号,变压器额定容量,一次电压,短路损耗,空载损耗,阻抗电压百分值,空载电流百分值。
(3)线路参数可从参考文献中的《新编工厂电气设备手册》查得。
线路1:钢芯铝绞线,截面,长度为,每条线路单位长度的正序电抗;每条线路单位长度的对地电容。
对下标的说明,。
线路2:钢芯铝绞线,截面,长度为,每条线路单位长度的正序电抗,零序电抗;每条线路单位长度的对地电容。
线路3:钢芯铝绞线,截面,长度为,每条线路单位长度的正序电抗;每条线路单位长度的对地电容。
(4)负载:容量,负载的电抗标幺值为;电动机为,起动系数,额定功率因数为。
3.基准数据选取
设基准容量;基准电压
六、短路电流计算的步骤:
1.做出电力系统计算系统图
在计算用图中应包括与短路电流计算有关的全部电力元件(如系统、发电机、变压器、输电线路等),以及它们之间的连接关系。在元件旁边应注明它们的技术数据,如额定电压、额定容量、线路的长度及线路型号等。另外,在计算图上应标明短路点。为了便于计算,每个元件按顺序编号。
2.计算各元件参数
根据给定的电力系统,首先确定是用标幺值的计算方法计算短路电流,还是用实际值计算的方法。一般在有两个及两个以上的电压等级情况下用标幺值的方法较实际值的方法计算简便。
用实际值计算时,首先选定一个基准值(即电压等级),此基准值应选被计算短路电流短路点的电压等级,然后将其他电压等级所有的阻抗用变压器变比原理换算到基本级上来。
用标幺值计算时,首先选定一个基准容量,此基准容量的选择应上“便于计算”,使x值小数点前后的0最少。一般选取整数,如:系统大,取Sb=1000MVA;系统小,取Sb=100MVA.
基准电压一般选取平均电压:Ub=Uav比额定电压高5%,Un(kV) 220 110 35 10 0.38 ;Uav(kV) 230 115 37 10.5 0.4 然后算出基准电流值。
3.绘制等值网络图
绘制电力系统等值网络图的目的是便于短路电流计算。图中应标明各元件的序号及阻抗。
4.网络化简
网络化简是将等值网络化简到最简单的形式,若有两个及两个以上的电源,则归并成一个电源。有并联的回路化简成串联。采取多电源归并成一个电源的方法,是因为我们采取了一系列的假设条件,所以在计算中可以用电源的阻抗相并联的方法。
5.进行短路电流计算
通过以上工作,把一个复杂的系统化简成只有一个等效元件的系统,等效元件的一端是综合电动势,另一端是综合阻抗和短路点,这样就可以用最简单的欧姆定律来计算短路电路,即I=E/X;式中E----系统电源对短路点的综合次暂态电动势,在化简计算中取1;X-----系统对短路点的综合阻抗。
必须注意:根据以上步骤,用实际值求得的短路电流,都是归算到基本级的数值,要想得到非基本级的短路电流,必须根据变压器的变比换算到要计算短路电流的那个电压等级。用标幺值方法计算求得的短路电流,要想得到实际值,还必须乘以相应电压等级的基准电流值。
七、对称短路计算原理框图
1.以下子程序实现的是短路电流、节点电压和各支路电流的流程图:
2.以下实现的是节点导纳矩阵的程序流程图:
3.以下实现的是根据节点导钠矩阵求因子表的流程图:
第二部分 手工计算所得结果
一、元件参数计算及等值电路
1.各元件电抗标幺值计算
解:选取基准容量;基准电压;负荷用额定标幺值为,电势为0.8的电源表示;设短路前系统满载运行。
汽轮发电机G1:
汽轮发电机G2:
负载电动机M:
变压器T1:
变压器T2:
变压器T3:
线路L1:
线路L2:
线路L3:
负荷:
2.等值电路图
3.等值简化电路图
4.等值网络化简计算过程:
二、三相对称短路电流和容量的计算
1.短路点的次暂态短路电流的计算:
2.冲击电流的计算:
3.短路容量的计算:
第三部分 本题目的计算机解法(C语言设计)
一、计算机程序编写
/************************************************************************
* 各序导纳矩阵计算程序中所用的变量说明如下: *
* N:网络节点总数. *
* L:网络的支路总数. *
* N1:N0+1 K:打印开关.K=1,则打印;否则,不打印. *
* G(I,J):Ybus的电导元素(实部). *
* B(I,J):Ybus的电纳元素(虚部). *
* G1(I) :第I支路的串联电导. B1(I):第I支路的串联电纳. *
* C1(I) :第I支路的pie型对称接地电纳. *
* C(I,J):第I节点J支路不对称接地电纳. *
* CO(I) :第I节点的接地电纳. *
* S1(I) :第I节点的起始节点号. E1(I):第I节点的终止节点号. *
************************************************************************/
#include #include #define N 7 #define L 12 #define f1(i) (i-1) /* 把习惯的一阶矩阵的下标转化为C语言数组下标*/ #define f2(i,j,n) ((i-1)*(n)+j-1) /* 把习惯的二阶矩阵的下标转化为C语言数组下标*/ FILE*file2=NULL,*file4=NULL,*file6=NULL; /********************************************************* * 本子程序根据所给的支路导纳及有关信息,形成结点 * * 导纳矩阵,如打印参数K=1,则输出电导矩阵G和电纳矩B * *********************************************************/ void ybus(int n,int l,float *g,float *b,float *g1,float *b1,float *c1,float *c,float *co,int k,int *s1,int *e1) {extern FILE *file4;FILE *fp;int i,j,io,i0;int pos1,pos2;int st,en; if(file4==NULL){fp=stdout;} else{fp=file4; /* 输出到文件 */} /* 初始化矩阵G,B */ for(i=1;i<=n;i++){for(j=1;j<=n;j++) {pos2=f2(i,j,n);g[pos2]=0;b[pos2]=0;}} / * 计算支路导纳 */ for(i=1;i<=l;i++){ /* 计算对角元 */ pos1=f1(i);st=s1[pos1];en=e1[pos1]; pos2=f2(st,st,n);g[pos2]+=g1[pos1];b[pos2]+=b1[pos1]+c1[pos1]; pos2=f2(en,en,n);g[pos2]+=g1[pos1]; b[pos2]+=b1[pos1]+c1[pos1]; /* 计算非对角元 */ pos2=f2(st,en,n);g[pos2]-=g1[pos1];b[pos2]-=b1[pos1]; g[f2(en,st,n)]=g[f2(st,en,n)];b[f2(en,st,n)]=b[f2(st,en,n)];} /* 计算接地支路导纳 */ for(i=1;i<=n;i++) {/* 对称部分 */b[f2(i,i,n)]+=co[f1(i)]; /* 非对称部分 */ for(j=1;j<=l;j++){b[f2(i,i,n)]+=c[f2(i,j,l)];} } if(k!=1) { return;} /* 如果K不为 1,则返回;否则,打印导纳矩阵 */ fprintf(fp,"\\n jie dian dao na ju zhen Y12(BUS):"); fprintf(fp,"\\n ******************* dian dao G ********************"); for(io=1;io<=n;io+=5) { i0=(io+4)>n?n:(io+4);fprintf(fp,"\\n"); for(j=io;j<=i0;j++){ fprintf(fp,"%13d",j);} for(i=1;i<=n;i++){fprintf(fp,"\\n%2d",i); for(j=io;j<=i0;j++){fprintf(fp,"%13.6f",g[f2(i,j,n)]);}} fprintf(fp,"\\n"); } fprintf(fp,"\\n ******************* dian na B ********************"); for(io=1;io<=n;io+=5) { i0=(io+4)>n?n:(io+4); fprintf(fp,"\\n"); for(j=io;j<=i0;j++){fprintf(fp,"%13d",j);} for(i=1;i<=n;i++){fprintf(fp,"\\n%2d",i); for(j=io;j<=i0;j++){fprintf(fp,"%13.6f",b[f2(i,j,n)]);} } fprintf(fp,"\\n"); } fprintf(fp,"\\n************************************************"); } /********************************************************************** * 因子表、节点阻抗矩阵、短路电流节点电压及各支路电流 * * 计算程序中所用的变量说明如下: * * m:网络节点总数 * * y[3][m][m]: 各序导纳信息 * * I: 电流变量 V :电压变量 * * f: 短路点 * * P: 短路类型 i,j,k,b: 循环控制变量 * * Va 、Ia:a相电压相电流变量 * * Bc1 Bc2 Bc3:导纳虚部变量 * * t1 t2 t3 t4:三角分解变量 * * Id :短路点电流 * ***********************************************************************/ #include #include #include #define m 7 void dldl(int p,int q,float *p0,float *q0,float *v,float *v0,int m,int n,int *e,int *f) {int i=0,j=0,k=0,f=0,b=0; double sqrt(double t); double pow(double n,double x); float t1=0.0,t2=0.0,t3=0.0,t4=0.0,s1=0.0,s2=0.0,p=0.0; static float Bc1[m][m],Bc2[m][m],Bc0[m][m],Va[m],V[m][3],Ia[m],Id[m][3],l1[m][m], l2[m][m],l0[m][m], la[m][m],F1[m][3],F0[m][3],h1[m][3],h0[m][3],z1[m][m],z2[m][m],z0[m][m], y[3][m]={{10.841 0 0 -6.006 0 0 0}, {0 6.426 -1.524 0 0 0 0}, {0 -1.524 4.761 -3.236 0 0 0}, {-6.006 0 -3.236 15.8 -3.300 -3.356 0}, {0 0 0 -3.300 3.482 0 0}, {0 0 0 -3.356 0 4.308 -0.952}, {0 0 0 0 0 -0.952 2.578}} } /*************************************************** * 本子程序根据所给的支路导纳及有关信息,形成 * * 因子表及与短路点有关的那一列节点阻抗矩阵 * ***************************************************/ void jdjz(float *p0,float *q0,float *a,float *v0,int n,float *jm) {int i,j; float m0;j=4*(n-1)*(n-1); for(i=0;i for(b=0;b<3;b++) { if(b!=0) { for(i=1;i for(k=1;k t1+=pow(Bc1[k][i], 2)*Bc1[k][k]; Bc1[i][i]=Bc2[i][i]=y[b][i][i]-t1; for(j=i+1;j Bc1[i][j]=Bc2[i][j]=(y[b][i][j]-t2)/Bc1[i][i];}} } if(b==0) { for(i=2;i Bc0[i][i]=y[0][i][i]-t3; for(j=i+1;j Bc0[i][j]=(y[0][i][j]-t4)/Bc0[i][i];} } } } } for(i=1;i printf("\\nBc0[i][j]=%f",Bc0[i][j]);} printf("\\nplease input duan lu dian f= "); scanf("%d", &f); f=3; for(b=0;b<3;b++) { if(b!=0) { for(i=1;i if(i if(i>f) for(k=f;k F1[i][b]+=-Bc1[k][i]*F1[k][b];} for(i=1;i for(i=m-1;i>0;i--) {for(k=i+1;k z1[i][f]=z2[i][f]=h1[i][b]-s1;} } } if(b==0) { for(i=2;i if(i>f) for(k=f;k F0[i][b]+=-Bc0[k][i]*F0[k][b];} for(i=2;i for(i=m-2;i>1;i--) { for(k=i+1;k z0[i][f]=h0[i][b]-s2;} } /********************************************************* * 本子程序根据所给的短路阻抗及有关信息,结合故障类型计算 * * 故障处的各序短路电流、电压,各相短路电流、电压 * *********************************************************/ void gzdcl(int n,int l,int m,float g[],float b[],float e[],float f[],\ int e1[],int s1[],float g1[],float b1[],float c1[],float c[],\ float co[],float p1[],float q1[],float p2[],float q2[],float p3[],\ float q3[],float p[],float q[],float v[],float angle[],int k1) {extern FILE *file4;/**file6;*/ FILE *fp; float t1,t2,st,en,cm,x,y,z,x1,x2,y1,y2; int i,i1,j,m1,ns,pos1,pos2,km;ns=n-1; printf("\\nplease input duan lu lei xing p= "); scanf("%f",&p); if(p==3) { Ia[f]=Id[f][1]=1/z1[f][f]; Id[f][2]=Id[f][0]=0; } if(p==1.1) {Id[f][1]=1/(z1[f][f]+z0[f][f]*z2[f][f]/(z0[f][f]+z2[f][f])); Ia[f]=Id[f][1]*sqrt(3)*sqrt(1-z2[f][f]*z0[f][f]/pow(z0[f][f]+z2[f][f], 2)); Id[f][0]=-z2[f][f]/(z2[f][f]+z0[f][f])*Id[f][1]; Id[f][2]=-z0[f][f]/(z2[f][f]+z0[f][f])*Id[f][1];} if(p==1) {Id[f][1]=Id[f][2]=Id[f][0]=1/(z0[f][f]+z1[f][f]+z2[f][f]); Ia[f]=3*Id[f][1];} if(p==2) {Id[f][1]=1/(z1[f][f]+z2[f][f]); Id[f][2]=-Id[f][1]; Id[f][0]=0; Ia[f]=0;} for(i=1;i V[i][2]=-z2[i][f]*Id[f][2]; V[i][0]=-z0[i][f]*Id[f][0];} for(i=1;i l1[i][j]=(V[i][1]-V[j][1])*(-y[1][i][j]); l2[i][j]=(V[i][2]-V[j][2])*(-y[2][i][j]); l0[i][j]=(V[i][0]-V[j][0])*(-y[0][i][j]);} printf("\\nIa[f]=%f",Ia[f]); for(i=1;i Va[i]+=V[i][b]; printf("\\nVa[i]=%f",Va[i]);} for(i=1;i printf("\\nla[i][j]=%f",la[i][j]);} } } main() { int n,m,l,k,z;float g[N][L],b[N][L]; float g1[L]={0,0,0,0,0,0,0,0}, b1[L]={-1.633,-1.126,-3.300,-3.300,-3.3560,-0.952,0.1566,0.3879}, c1[L]={0,0.039,0,0,0.02,0,0.039,0}, c[N][L]={{0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}}, co[N]={0,0,0,0}; float d,*D;int n0,n1,row,line; int s1[L]={1,1,2,2,3,3,4,4}, e1[L]={1,2,2,3,2,3,2,4}; printf("shu ru jie dian shu "); scanf("%d",&z); printf("shu ru zhi lu shu "); scanf("%d",&z); D=&d;n0=2*N-2;n1=n0+1;n=4;l=8;k=1; ybus0(n,l,g,b,g1,b1,c1,c,co,k,s1,e1); scanf("%d",&z); dldl((p,q,p0,q0,v,v0,m,n,e,f,k,g); jdjz(n,l,m,g,b,e,f,e1,s1,g1,b1,c1,c,co,p1,q1,p2,q2,p3,q3,p,q,v,angle,k1); printf("\\n************************************************"); scanf("%d",&z); void gzdcl( n, l,m, g[], b[], e[], f[],e1[], s1[], g1[], b1[], c1[], c[], co[],p1[],q1[],p2[],q2[], p3[],q3[], p[], q[], v[], angle[], k1) printf("\\n************************************************"); scanf("%d",&z); } 二、计算机设计序所得结果 1.导纳的计算: 导纳矩阵: 2.因子表的求法: 注:求因子表(用MATLAB求解)的程序为: %Ex0906 Y=[10.841 0 0 -6.006 0 0 0; 0 6.426 -1.524 0 0 0 0; 0 -1.524 4.761 -3.236 0 0 0; -6.006 0 -3.236 15.8 -3.300 -3.356 0; 0 0 0 -3.300 3.482 0 0; 0 0 0 -3.356 0 4.308 -0.952; 0 0 0 0 0 -0.952 2.578]; for i=1:7 Y(i,i)=1./Y(i,i); for j=i+i:7 Y(i,j)=Y(i,j)*Y(i,i); end for k=i+1:7 for j=i+1:7 B(k,j)=Y(k,j)-Y(k,i)*Y(i,j); end end end >> disp(Y) 因子表: 这次通过对电力系统短路故障电流计算的课程设计,加深了我对电力系统暂态分析的了解和整体认识,特别是对电力系统短路电流的计算,巩固了我对短路的计算能力。同时,通过此次设计也熟练了电脑上的一些基本操作,如:autoCAD,WORD等软件以及巩固了C语言编程的相关知识。当然,在这次设计中,离不开老师的指导和很多同学的共同努力,让我意识到个人能力的局限性和团队合作的重要性。由于本人能力有限,知识上还有不足之处。因此,在设计上可能存在一些错误,希望各位老师予以够斧正! 本次课程设计使我感受最深的是计算机在电力系统领域里的巨大应用价值。在这次设计中,用手工计算是相当麻烦的,短路电流所涉及的参数众多,计算公式也是相当繁冗,手工计算起来十分地乏味,且需要有相当的耐心和精力,稍有不慎,即会出错。而通过计算机来进行计算,我们只需要把计算的流程搞懂了,设计出相关的程序,简简单单地敲击键盘就可以得出答案来了,且答案与实际值相差无几。我想,计算机不仅仅在这一次设计中体现出其价值,在今后的学习里,我们还一定会用到计算机编程来解决问题的情况。因此,我觉得学好计算机,掌握好一门计算机语言是非常有必要的。 电力系统短路电流故障是电力系统三大计算之一,学好它对于学好电力系统这门课程,对以后的毕业设计和实际工作具有十分重要的意义。而利用计算机来计算和分析其大小、流向是十分方便的。因此,在今后的学习中,我会继续努力学好《电力系统分析》这门课程,并学习另外一些相关的课外知识,开阔自己的视野。 5.3.2因子表的计算 Matlab语言程序编写 %Ex0906 Y=[10.841,0,0,-6.006,0,0,0;0,6.426,-1.524,0,0,0,0;0,-1.524,4.761,-3.236,0,0,0;-6.006,0,-3.236,15.8,-3.300,-3.356,0;0,0,0,-3.300,3.482,0, 0; 0,0,0,-3.356,0,4.308,-0.952; 0,0,0,0,0,-0.952,2.578]; for i=1:7 Y(i,i)=1./Y(i,i); for j=i+i:7 Y(i,j)=Y(i,j)*Y(i,i); end for k=i+1:7 for j=i+1:7 B(k,j)=Y(k,j)-Y(k,i)*Y(i,j); end end end >> disp(Y) 因子表:
3.计算机所求结果:D U L 0.0922 0 0 -0.5540 0 0 0 0 0.1556 -1.5240 0 0 0 0 0 -1.5240 0.2100 -3.2360 0 0 0 -0.5440 0 -3.2360 0.0629 -3.3000 -3.3560 0 0 0 0 -3.3000 0.2872 0 0 0 0 0 -3.3560 0 0.2321 -0.9520 0 0 0 0 0 -0.9520 0.3879
第四部分 课程设计总结故障接点标号 短路点的次暂态的短路电流() 冲击电流() 短路容量(功率) 7 1.96382 45.7388kA 195.7836KM·A D U L 0.0922 0 0 -0.5540 0 0 0 0 0.1556 -1.5240 0 0 0 0 0 -1.5240 0.2100 -3.2360 0 0 0 -0.5440 0 -3.2360 0.0629 -3.3000 -3.3560 0 0 0 0 -3.3000 0.2872 0 0 0 0 0 -3.3560 0 0.2321 -0.9520 0 0 0 0 0 -0.9520 0.3879
