电力系统短路故障的计算机算法程序设计.doc_第1页
电力系统短路故障的计算机算法程序设计.doc_第2页
电力系统短路故障的计算机算法程序设计.doc_第3页
电力系统短路故障的计算机算法程序设计.doc_第4页
电力系统短路故障的计算机算法程序设计.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计报告电力系统短路故障的计算机算法程序设计专 业:电气工程及其自动化 班 级: 设 计 者: 学 号: 华中科技大学电气与电子工程学院目录一课程设计说明-(3)二选用所用语言的理由-(3)三程序主框图子框图及主要数据变量的说明-(3)四程序说明(计算公式及出处)-(4)五设计实际应用-(4)六.设计体会-(10)七参考资料-(10)八附录(程序源代码)-(10)一课程设计说明1.课程设计题目为:电力系统短路故障的计算机算法程序设计。2.实际任务为:编写计算机程序完成三相对称短路电流的实际计算。要求形成可执行文件,程序合格,输入输出数据以文件形式。其中,输入数据为:节点数,支路数,故障节点,支路首段号,支路末端号,支路电抗值。输出数据为:节点导纳矩阵,阻抗矩阵,故障点,故障点电流,支路电流,各节点电压。并以电力系统分析课本例题6-1,习题6-10,6-11为例进行计算和验算。二选用所用语言的理由 这次课程设计我选用的语言是C语言,原因是在大学阶段只接触过C语言,C语言有一定的基础,而且C语言完全能胜任这次编程任务。三程序主框图子框图及主要数据变量的说明从duanlu.txt输入数据根据输入形成导纳矩阵对导纳矩阵求逆,得到阻抗矩阵通过课本上的公式,通过阻抗矩阵求故障时各点电压,各支路电流用户输入短路点和短路前电压(设负荷电流无影响)输出结果到result.txt文件主要变量说明如下:init ();(数据输入函数,形成节点导纳矩阵)brinv(double a, int n);(矩阵求逆函数)out_Y();(形成节点阻抗矩阵)short_Select();(输入短路点)Count_If();(计算出短路时各节点电压和各支路电流)float yyMM(导纳矩阵),zzMM(阻抗矩阵); float IfM(短路节点电流);float VolM(各节点电压);float IIIM(各支路电流);struct powernet BYTE node; BYTE line; BYTE hanghao; int head_node;int end_node;float react;netN;(电力网络 结构体,用来表示电力网络各参数)四程序说明(计算公式及出处) 短路计算过程如下:输入数据形成节点导纳矩阵并求逆节点阻抗矩阵选择短路点f, 输入短路前电压通过公式(6-10)计算短路电流If通过公式(6-11)计算节点电压用公式(6-9)计算短路后支路电流。IfVf(0)/Zff (6-10)ViVi(0)-Zif* If (6-11)Ipq=(Vp-Vq)*(-Ypq) ( 6-9 )各公式引自电力系统分析上册第六章。五设计实际应用例6-3题输入数据如下:5 5 71,1,0.151,2,0.1052,3,0.0652,4,0.083,4,0.054,5,0.1845,5,0.22.txt文件输出数据:节点导纳矩阵为:-16.19047546*j9.52380943*j0.00000000*j0.00000000*j0.00000000*j9.52380943*j-37.40842819*j15.38461590*j12.50000000*j0.00000000*j0.00000000*j15.38461590*j-35.38461685*j20.00000000*j0.00000000*j0.00000000*j12.50000000*j20.00000000*j-37.93478394*j5.43478251*j0.00000000*j0.00000000*j0.00000000*j5.43478251*j-9.98023701*j节点阻抗矩阵为:0.11813837*j0.09583523*j0.09017095*j0.08581381*j0.04673029*j0.09583523*j0.16291989*j0.15329060*j0.14588347*j0.07944150*j0.09017095*j0.15329060*j0.18598767*j0.16113926*j0.08774910*j0.08581381*j0.14588347*j0.16113926*j0.17287450*j0.09413958*j0.04673029*j0.07944150*j0.08774910*j0.09413958*j0.15146215*j短路节点为: 3短路前电压为(忽略负荷电流的影响):1.000000短路点的电流为: If3=-5.376700*j短路节点电压为:Vol1= 0.515178Vol2= 0.175802Vol3= 0.000000Vol4= 0.133602Vol5= 0.528199各支路电流为:III11= -3.232147*jIII12= -3.232147*jIII23= -2.704651*jIII24= -0.527499*jIII34= 2.672048*jIII45= 2.144548*jIII55= -2.144548*j习题610输入数据:5 5 71,1,0.231,3,0.1052,2,0.282,4,0.213,4,0.435543,5,0.29044,5,0.2541输出数据:节点导纳矩阵为:-13.87163544*j 0.0000000*j9.52380943*j0.00000000*j 0.0000000*j0.00000000*j-8.33333302*j0.00000000*j4.76190472*j0.00000000*j9.52380943*j0.000000*j -15.26333618*j 2.29600048*j 3.44352627*j0.00000000*j4.76190472*j2.29600048*j-10.99336338*j3.93545866*j0.00000000*j0.00000000*j3.44352627*j3.93545866*j-7.37898493*j节点阻抗矩阵为:0.18042089*j0.06035720*j0.15778695*j0.10562509*j0.12996729*j0.06035720*j0.20652170*j0.08791157*j0.15141298*j0.12177899*j0.15778695*j0.08791157*j0.22982012*j0.15384525*j0.18930019*j0.10562509*j0.15141298*j0.15384525*j0.26497272*j0.21311322*j0.12996729*j0.12177899*j0.18930019*j0.21311322*j0.33752048*j短路节点为: 5短路前电压为(忽略负荷电流的影响):1.000000短路点的电流为: If5=-2.962783*j短路节点电压为:Vol1= 0.614935Vol2= 0.639195Vol3= 0.439145Vol4= 0.368592Vol5= 0.000000各支路电流为:III11= -1.674195*jIII13= -1.674195*jIII22= -1.288588*jIII24= -1.288588*jIII34= -0.161989*jIII35= -1.512206*jIII45= -1.450577*j习题611312输入数据:3 3 41,1,0.21,2,0.22,3,0.13,3,0.15输出数据:节点导纳矩阵为:-10.00000000*j5.00000000*j0.00000000*j5.00000000*j-15.00000000*j10.00000000*j0.00000000*j10.00000000*j-16.66666603*j节点阻抗矩阵为:0.13846155*j0.07692308*j0.04615385*j0.07692308*j0.15384616*j0.09230770*j0.04615385*j0.09230770*j0.11538462*j短路节点为: 3短路前电压为(忽略负荷电流的影响):1.050000短路点的电流为: If3=-9.099999*j短路节点电压为:Vol1= 0.630000Vol2= 0.210000Vol3= -0.000000各支路电流为:III11= -2.100000*jIII12= -2.100000*jIII23= -2.100000*jIII33= -7.000000*j六设计体会这次设计体会良多,首先是通过短路电流的计算,熟悉了以前电力系统分析的课程,巩固了专业知识,同时通过C语言的使用也使几乎已经忘干净的C语言技能得以回复和巩固。七参考资料 电力系统分析上册,第三版,何仰赞 温增银 华中科技大学出版社程序设计基础(C语言) 王载新 曾大亮 杨有安 崔珂梅 清华大学出版社八附录(程序源代码)#include #include #include #include #include #include #define N 100#define M 100#define BYTE unsigned charinit ();int brinv(double a, int n);out_Y();int short_Select();Count_If();struct powernet BYTE node; BYTE line; BYTE hanghao; int head_node; int end_node; float react;netN;float yyMM,zzMM; float IfM;float VolM;float IIIM;void main() init(); /输入原始数据 out_Y(); /形成节点导纳、节点阻抗 Count_If(); /计算短路电流,节点电压,支路电流init() int i,j; float temp=0; FILE *fp; if (fp = fopen (duanlu.txt,r) = NULL) printf (程序使用方法:nn在与程序的同一文件夹下建立duanlu.txt文本文件nduanlu.txt文本文件第一行输入的是:节点数 支路数 输入数据的行数。n(例如: 3 3 5)。表示3个节点,3个支路 ,txt文件里输入有5行数据(不包括本行)。n回车另起一行为:首节点,末节电,支路电抗。(例如: 1,2,0.15)nn);B: goto B; fscanf(fp,%d %d %d,&net0.node,&net0.line,&net0.hanghao); printf(本系统节点数:%d, 支路数:%d nn,net0.node,net0.line); printf (以下为线路阻抗:nn); printf (始节点 末节电 电抗n); for (i=0; inet0.hanghao; i+ ) fscanf (fp,%d,%d,%f,&neti.head_node,&neti.end_node,&neti.react); printf (%4d,%8d,%15f*jn,neti.head_node,neti.end_node,neti.react); printf(n); for (i=0;i=net0.hanghao-1;i+ ) / 互导纳形成 yyneti.head_node-1neti.end_node-1=-1/neti.react; yyneti.end_node-1neti.head_node-1=-1/neti.react; for (i=0;i=net0.hanghao-1;i+ ) /自导纳形成 for (j=0;j=net0.hanghao-1;j+ ) if (netj.head_node=(i+1)|netj.end_node=(i+1) temp =1/netj.react+temp; yyii=temp; temp=0; fclose (fp); fp = fopen (result.txt,w); fprintf(fp,%s,节点导纳矩阵为:n); fclose(fp); printf (*节点导纳矩阵为:*nn); for (i=0; inet0.node; i+ ) for (j=0; jnet0.node; j+ ) printf (%.8f*jt,-yyij); fp = fopen (result.txt,a); fprintf(fp,%.8f*jt,-yyij); fclose(fp);printf (n); fp = fopen (result.txt,a); fprintf(fp,n); fclose(fp); printf (n);fp = fopen (result.txt,a); fprintf(fp,n); fclose(fp);int brinv(double a,int n) int *is,*js,i,j,k,l,u,v; double d,p; is=(int*)malloc(n*sizeof(int); js=(int*)malloc(n*sizeof(int); for (k=0; k=n-1; k+) d=0.0; for (i=k; i=n-1; i+) for (j=k; jd) d=p; isk=i; jsk=j; if (d+1.0=1.0) free(is); free(js); printf(该矩阵为奇异矩阵n); return(0); if (isk!=k) for (j=0; j=n-1; j+) u=k*n+j; v=isk*n+j; p=au; au=av; av=p; if (jsk!=k) for (i=0; i=n-1; i+) u=i*n+k; v=i*n+jsk; p=au; au=av; av=p; l=k*n+k; al=1.0/al; for (j=0; j=n-1; j+) if (j!=k) u=k*n+j; au=au*al; for (i=0; i=n-1; i+) if (i!=k) for (j=0; j=n-1; j+) if (j!=k) u=i*n+j; au=au-ai*n+k*ak*n+j; for (i=0; i=0; k-) if (jsk!=k) for (j=0; j=n-1; j+) u=k*n+j; v=jsk*n+j; p=au; au=av; av=p; if (isk!=k) for (i=0; i=n-1; i+) u=i*n+k; v=i*n+isk; p=au; au=av; av=p; free(is); free(js); return(1); out_Y() int i,j; double *a; a=(float *)malloc(net0.node*net0.node*sizeof(float);/为矩阵分配动态存储空间 for (i=0;inet0.node;i+)ai=(float*)malloc(net0.node*sizeof(float); FILE *fp; fp=fopen(result.txt,a); fprintf(fp,%s,节点阻抗矩阵为:n); fclose(fp); for (i=0;inet0.node;i+ ) for (j=0;jnet0.node;j+ ) aij=yyij; i=brinv(*a,net0.node); for (i=0;inet0.node;i+ ) for (j=0;jnet0.node;j+ ) zzij=(float) aij; printf (*节点阻抗矩阵为:*nn); for (i=0; inet0.node; i+ ) for (j=0; jnet0.node|sss1)printf (短路点选择错误,);goto AAA; IIsss=1; Num=net0.node; Ifsss=E/zzsss-1sss-1;fp=fopen(result.txt,a);fprintf(fp,%s If%d=%f*jnn%snn ,短路点的电流为:,sss,-Ifsss,短路节点电压为:);fclose(fp); printf (*短路电流为*n); printf (If%d=%f*j nn,sss,-Ifsss); printf (*短路节点电压为:*n); for (i=0;inet0.node;i+ ) Voli=(float)(E-z

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论