收藏 分销(赏)

电力系统分析课设-C语言.doc

上传人:人****来 文档编号:4133402 上传时间:2024-07-31 格式:DOC 页数:25 大小:157.04KB
下载 相关 举报
电力系统分析课设-C语言.doc_第1页
第1页 / 共25页
电力系统分析课设-C语言.doc_第2页
第2页 / 共25页
电力系统分析课设-C语言.doc_第3页
第3页 / 共25页
电力系统分析课设-C语言.doc_第4页
第4页 / 共25页
电力系统分析课设-C语言.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、电力系统分析课程设计目录1课程设计说明12编程语言的选择及理由13程序设计23。1主体流程图23。2详细流程图33。2。1创建系统(create)流程图33。2。2加载系统函数(load)流程图33.2。3计算子函数(calculate)流程图43.2.4改变短路节点(change)流程图43.3数据及变量说明53.4程序代码及注释63.5测试算例64设计体会13参考文献13附录13i1 课程设计说明本课程设计根据电力系统分析课程中所讲的基于节点方程的三相短路计算的原理和方法。采用c语言编程 。实现了三相短路计算的计算机实现。本程序输入含有网络拓扑信息和电器元件的参数,输出三相短路的短路电流和

2、短路后网络各节点的电压参数和各支路的电流参数.并以文件的形式保存,方便用户的读取,打印.实现了设计的要求。三相短路在电力系统中虽然发生的概率很小,但一旦发生产生的影响非常严重,电力系统中设备的动稳定和热稳定校验都要以三相短路电流为依据,因此我选择做是电力系统三相短路的计算程序,觉得更有意义.应用计算机进行电力系统计算,首先要建立电力系统相应的数学模型,如建立电力系统等效网络和节点方程;其次是运用合理的计算方法计算结果,如三角分解法,LDU分解法等;第三则是选择合适的计算机语言编制计算程序,实现程序的准确性,提高精确度.本设计利用节点方程来实现电力系统三相短路计算。首先,根据给定的电力系统运行方

3、式制定系统的一相等值网络,计算出各元器件的参数,其次根据网络方程利用变压器和线路参数形成不含发电机和负荷的节点导纳矩阵Y;然后,利用系统形成的节点导纳矩阵求解系统阻抗矩阵Z;第三则是应用节点阻抗矩阵计算短路电流。电力系统短路电流的实际工程计算中,许多实际问题的解决并不需要十分精确的结果.因此采用近似计算法,在建立系统节点方程时,采用网络模型和参数做简化处理,等值电路的制定通常将发电机作为含源支路,表示为节点注入电流源和节点电抗的形式;系统中存在同步发电机时,按发电机支路处理;同时,忽略发电机、变压器和输电线路的电阻,不计线路的电容,略去变压器的励磁电流,负荷忽略不计;在标幺参数计算时,选取各级

4、平均额定电压作为基准电压,忽略元件的额定电压和平均电压的差别,认为变压器变比的标幺值为1;此外,还假定所有的发电机的电势具有相同的相位,所有的元件仅用电抗表示,避免复数运算。三相对称短路为金属性短路.本课程设计的关键部分是利用系统节点导纳矩阵形成节点阻抗矩阵,本程序采用LDU分解法,然后利用节点导纳矩阵和阻抗矩阵的乘积为单位矩阵列写方程,节点导纳矩阵经LDU分解后,回代求解系统阻抗矩阵.利用节点阻抗矩阵进行短路计算,首先利用故障前的节点注入电流和系统节点阻抗矩阵求取故障前系统的各节点电压;然后,利用金属短路时短路点残压为0,对地电阻为0,计算短路点电流;最后,利用故障前节点电压、节点阻抗和短路

5、点电流求得短路后各节点电压和各支路电流.2 编程语言的选择及理由能够实现程序编写的语言有多种,本课程设计中采用C语言进行电力系统对称短路计算程序的编写.个人对c语言和metlab相对较熟悉。之所以选择C语言编程,从主观上说,是因为我学过C语言课程,相对于其他的编程语言而言,C语言的应用更为熟悉和了解。另外,从客观上说,C语言是目前世界上最为流行、使用最为广泛的高级程序设计语言.,C的效率MATLAB比高多了,MATLAB虽然语法简单,但执行效率不高.MATLAB是用于特定的方面的,比如说矩阵运算方面、DSP就很有优势,而C语言不同.很多软件的底层都是C编写的。MATLAB提供的是一种基于解释的

6、语言,虽然也是一种高级语言,但是还是很简单的,它的目标在于用户方便,开发简单。而实际上这些方便也是有代价的,编译器承受了这些代价,程序执行效率方面也有损失。另一方面MATLAB这么做也是基于其专用于科学计算的目的来考虑的,无法应用于通用的程序设计。c语言这么做保持了其编译的速度,便于大型程序设计,执行效率也很高,因此我选择用c语言编写程序 。3 程序设计3.1 主体流程图开始欢迎使用用户选择操作,按键123进入创建系统子函数(create)进入加载系统子函数(load)进入退出子函数进入计算子函数(calculate)改短路点子函数(change)是否改路点?结束是图31 主体流程图3.2 详

7、细流程图3.2.1 创建系统(create)流程图输入文件名输入电抗支路参数结束输入节点数、支路数、故障节点输入发电机支路参数输入电容支路参数图3-2 create函数流程图3.2.2 加载系统函数(load)流程图输入系统文件名输出查看系统参数选择进入下一个子函数图33 节点导纳矩阵形成流程图3.2.3 计算子函数(calculate)流程图 文件读入电路参数求取LDU分解的因子表矩阵下三角求取DUZj向量求解完毕?否是结束求取节点阻抗矩阵列向量根据支路参数建立节点导纳矩阵求取短路点电流求取节点电压求取支路电流建立文件存储计算结果结束图34 计算子函数流程图3.2.4 改变短路节点(chan

8、ge)流程图输入短路点从新读取文件中的参数选择进入下一个子函数计算图35 change函数流程图3.3 数据及变量说明本程序中将电路的支路分为三类:电抗支路、电流支路、发电机直流,数据输入时分开输入格式如下:电抗支路:支路数、节点首端好、节点末端好,支路电抗值.发电机支路:发电机台数、发电机接入点,发电机电势、发电机之路电抗。电容支路:支路数、电容节点号,电容支路电抗值.程序中的变量定义如下: FILE fp; /文件指针 float If; /短路电流 float V010; /节点电压初值 float In10; /注入电流 float V10; /节点电压 float I10; /支路电

9、流int count210; /数组用于储存支路号float z1010; /储存支路电抗值float yjs1010; /存放计算导纳矩阵中的中间值float ye10; /储存发电机支路导纳float Y1010; /节点导纳矩阵float Z1010; /阻抗矩阵float dk; /电抗值int e110;float yc10; /节点对地电抗float ycjs10;int e10; /发电机接入点float E10; float Ig10;float Emid10;float ze10; /储存发电机支路导纳int m,n,a,f,i=0,j=0,sd,md,butn,times,

10、timesc;/n是节点数,a是支路数,f是短路点,i为行标,j为列标*/1、文件读入程序如下: printf(请输入系统的节点数,支路数,故障节点n); scanf(”%d%dd,&n,a,f); fp=fopen(name,”w+); fprintf(fp,”系统参数如下所示:nn”); fprintf(fp,1.系统的节点数为dn2。系统的支路数为%dn3。系统的短路点为%dnn,n,a,f); fprintf(fp,”支路电抗参数如下n);2、计算主程序如下: (1)、 If=V0f-1/Zf-1f1;(短路电流计算) for(i=0;in;i+) Vi=V0i-Zif1If; (2)

11、、for(i=0;in;i+)(导纳矩阵计算) for(j=0;jn;j+) Yii=Yiiyjsij; Yii=Yiiyeiycjsi; for(i=0;in;i+) for(j=i+1;jn;j+) Yij=yjsij; Yji=yjsij; 3.4 程序代码及注释 具体源程序代码及其注释见附录。3.5 测试算例【例6-3】在如图35所示的电力系统中分别在节点1和节点5接入发电机支路,其标幺值参数为:。在节点3发生三相短路,计算短路电流及网络中的电流分布。线路的电阻和电容略去不计,变压器的标幺变比等于1。各元件参数的标幺值如下:图3-6 电力系统等值网络图图37 三相短路时的等值网络图由以

12、上网络图可得计算过程如下:(1)、形成输入文件:系统参数如下所示:1。系统的节点数为52。系统的支路数为53。系统的短路点为3支路电抗参数如下z12=0.1050z23=0。0650z24=0.0800z43=0.0500z54=0.1840发电机接入点及其电抗如下:共2台发电机进入系统z1=0。1500z5=0。2200e1=1.0000e5=1.0000共0个节点有接地电容(2)、计算后得到的输出文件:计算结果如下:1、节点导纳矩阵:-16。1905 9.5238 9.5238 -37.4084 15.3846 12.5000 15。3846 -35.3846 20。0000 12。500

13、0 20.0000 -37。9348 5.4348 5。4348 -9。9802 2、节点阻抗矩阵: 0.1181 0.0958 0.0902 0。0858 0.0467 0.0958 0.1629 0.1533 0.1459 0。0794 0。0902 0.1533 0.1860 0.1611 0.0877 0.0858 0。1459 0。1611 0。1729 0.0941 0.0467 0。0794 0.0877 0.0941 0。1515 3、短路节点是:34、短路电流:If=5.37675、各节点电压:V1=0.5152V2=0.1758V3=0V4=0。1336V5=0.52826

14、、发电机支路电流如下:Ig10=-3。2321Ig50=-2.14457、各支路电流:I12=-3。2321I23=-2。7046I24=-0.5275I43=2。6720I54=-2。1445图38 对称短路计算结果图38 改变短路点后计算结果【习题6-10】如图3-9所示网络,略去负荷,试用节点阻抗矩阵法求节点5发生三相短路时,短路点的短路电流及线路L2、L3的电流。已知各元件参数如下:发电机G1: SN = 120 MVA, x”d = 0。23; G2: SN = 60 MVA, x”d = 0。14变压器T-1: SN = 120 MVA, Vs = 10。5%; T2: SN =

15、60 MVA, Vs = 10。5%线路参数 x1 = 0。4/km, b1 = 2.810-6 S/km线路长度 L1: 120 km, L2: 80 km, L3: 70 km取SB = 120 MVA, VB = VavGGG-1G-2T-1T-2L-1L-2L-312345图3-9 电力系统网络图图3-10 三相短路时的等值网络图(1)、形成输入文件:系统参数如下所示:1。系统的节点数为:52.系统的支路数为:53。系统的短路点为:5支路电抗参数如下:z3 5=0。29036 z4 5=0.25406 z3 4=0.43554z1 3=0。1050z2 4=0.2100发电机接入点及其

16、电抗如下:共2台发电机进入系统:z1=0。2300z2=0.2800e1=1。0500e2=1.0500共3个节点有接地电容:Y3=32。372299Y4=34。077000Y5=43。185200(2)、得到的输出文件:计算结果如下:1、节点导纳矩阵:-13.8716 9。5238 8.3333 4.7619 9.5238 15.2329 2。2960 3.4440 4。7619 2.2960 -10。9646 3.9361 3。4440 3.9361 -7.3569 2、节点阻抗矩阵: 0。1819 0。0616 0。1600 0。1079 0。1326 0。0616 0。2078 0。0

17、898 0.1536 0.1242 0。1600 0.0898 0.2330 0.1571 0。1932 0。1079 0。1536 0。1571 0.2689 0.2174 0。1326 0.1242 0.1932 0.2174 0。3427 3、短路节点是:54、短路电流:If=3.12635、各节点电压:V1=0。6471V2=0.6723V3=0.4632V4=0。3890V5=06、发电机支路电流如下:Ig10=1。7516Ig20=-1。34917、各支路电流:I35=-1.5954I45=1.5310I34=0。1705I13=-1。7516I24=1.3491图311 对称短路

18、计算结果【习题6-11】电力系统等值电路如图3-13所示,支路阻抗的标幺值已注明图中.(1)形成节点导纳矩阵(或节点阻抗矩阵),并用以计算节点3的三相短路电流.(2)另选一种方法计算短路电流,并用以验证(1)的计算结果.图312 电力系统等值电路图图313 经Norton变换后的等值电路图图313 最终计算等值电路图由以上网络可得输入文件如下:系统参数如下所示:1.系统的节点数为:32。系统的支路数为:23。系统的短路点为:3支路电抗参数如下:z1 2=0.2000z2 3=0。1000发电机接入点及其电抗如下:共2台发电机进入系统:z1=0.2000z3=0.130435e1=1.0500e

19、3=0。913043共1个节点有接地电容:Y2=2.000000(2)、得到的输出文件:计算结果如下:1、节点导纳矩阵:-10。0000 5。0000 5。0000 14.5000 10。0000 10.0000 17。6667 2、节点阻抗矩阵: 0。1394 0.0789 0.0446 0.0789 0。1577 0.0893 0。0446 0.0893 0.1071 3、短路节点是:34、短路电流:If=9。18755、各节点电压:V1=0。6344V2=0。2188V3=06、发电机支路电流如下:Ig10=2.0781Ig30=-7。00007、各支路电流:I12=-2。0781I23

20、=-2.1875图315 对称短路计算结果通过计算结果与算例答案的对比,计算结果与算例 标准答案一样,说明了程序计算方法和思路的准确性。说明本次课程设计基本达到了设计的要求。4 设计体会通过本次课程设计让自己学到了很多东西,包括电力系统分析、和c语言的很知识.通过做课程设计自己又仔细的将两门课程相关章节看了一遍,特别是c语言,几乎把整个课本都看了一遍,并自学了很多相关的知识,重新看书的时候才发现,虽然以前学过,但几年不用已经忘得差不多啦!当然,重新看书也发现了许多新的知识,学到不少的东西。本次做课程设计老师给我们留了充足的时间,让我们耐心去学习知识,而不像以前一样赶任务。通过这次课程设计,我更

21、好的掌握了电力系统短路计算的方法。我想作为一个学电气的人这是非常关键的。在刚接到题目时,我感觉很迷茫,觉得很难,当我仔细准备的时候发现这也不是想象中的难,最终通过自己的努力和通过学的帮助完成了课程设计。这次设计给我最大的收获并不仅仅是相关的专业知识,这是我第一次做这种要几门课结合的课程设计,我觉得这使自己应用知识的能力得到了锻炼,本次课程设计用c语言编程序实现了电力系统的三相短路计算。虽然程序能够计算,但我也知道还有很多的问题。还需要努力.第一次不自己学的知识结合在一起,觉得很有用,自己没白学。在答辩的过程老师对程序提出了修改意见,是自己的程序更加实用,在这里感谢老师的指导,让我受益匪浅。同时

22、在做的过程中我也和很多的同学交流、讨论,大家交流自己的想法,觉得是很开心的一件事。参考文献1 何仰赞,温增银电力系统分析(上册)(第三版)武汉:华中科技大学出版社,20022 何仰赞,温增银电力系统分析题解(上、下)(第三版)武汉:华中科技大学出版社,20023 郑平安,曾大亮编程序设计基础(C语言)第二版北京:清华大学出版社,2006附录主程序及注释(这里只给出主要计算程序):include stdio。h#include conio.h#include windows.h声明外部函数 extern void create(); extern void load(); extern void

23、 quit();extern void change(char name20); extern void calculate(char name20) FILE fp; /文件指针 float If; /短路电流 float V010; /节点电压初值 float In10; /注入电流 float V10; /节点电压 float I10; /支路电流int count210; /数组用于储存支路号float z1010; /储存支路电抗值float yjs1010; /存放计算导纳矩阵中的中间值float ye10; /储存发电机支路导纳float Y1010; /节点导纳矩阵float

24、Z1010; /阻抗矩阵float dk; /电抗值int e110;float yc10; /节点对地电抗float ycjs10;int e10; /发电机接入点float E10; float Ig10;float Emid10;float ze10; /储存发电机支路导纳int m,n,a,f,g,i=0,j=0,sd,md,butn,times,timesc;/n是节点数,a是支路数,f是短路点,i为行标,j为列标for(i=0;i10;i+)yci=0; ycjsi=0; Ei=0; Emidi=0;for(i=0;i10;i+) /初始赋 V0i=0; for(j=0;j10;j

25、+) zij=0; Yij=0; /*读取系统参数*/ fp=fopen(name,”r); fscanf(fp,”系统参数如下所示:nn); fscanf(fp,1。系统的节点数为%dn2.系统的支路数为dn3。系统的短路点为dnn”,n,&a,f); /*读电抗*/ fscanf(fp,”支路电抗参数如下n); for(m=0;ma;m+) fscanf(fp,zd %d=%ft”,&sd,md,dk); i=sd1; j=md1; count0m=sd; count1m=md; zij=dk; zji=dk; printf(”系统支路电抗如下:n); for(m=0;ma;m+) i=c

26、ount0m1; j=count1m1; printf(z%dd = %.4fn,count0m,count1m,zij); fscanf(fp,”nn发电机接入点及其电抗如下:); fscanf(fp,”共%d台发电机进入系统n”,×); for(m=0;mtimes;m+) fscanf(fp,”z%d=%ft”,em,&zem); fscanf(fp,”n); for(m=0;mtimes;m+) fscanf(fp,e%d=ft,em,&Em); printf(”输入的发电机支路电抗为n); for(m=0;mtimes;m+) printf(zd=ft”,em,zem);

27、for(m=0;mtimes;m+) for(m=0;mtimes;m+) printf(e%d=ft,em,Em); for(m=0;mtimes;m+) printf(”d”,em); /*读取节点对地电容*/ fscanf(fp,n共%d个节点有接地电容n”,timesc); if(timesc0) for(m=0;mtimesc;m+) fscanf(fp,Y%d=%ft,e1m,&ycm); printf(n系统有%d个节点电容n”,timesc); for(m=0;mtimesc;m+) printf(z%d0=%f ,e1m,ycm); fclose(fp);/*计算节点阻抗矩阵

28、*/ for(m=0;m10;m+) yem=0; for(m=0;mtimes;m+) for(j=0;jn;j+) if(j=(em1)) yej=1/zem; Emidj=Em; for(m=0;mtimesc;m+) for(j=0;jn;j+) if(j=(e1m1) ycjsj=1/ycm; /*系统支路导纳*/ for(i=0;in;i+) for(j=0;jn;j+) if(zij=0) yjsij=0; else yjsij=1/zij; /*导纳矩阵*/ for(i=0;in;i+) for(j=0;jn;j+) Yii=Yiiyjsij; Yii=Yii-yeiycjsi

29、; for(i=0;in;i+) for(j=i+1;jn;j+) Yij=yjsij; Yji=yjsij; printf(”nn节点导纳矩阵为”); for(i=0;in;i+) printf(”n); for(j=0;jn;j+) if(Yij=0) printf(” ”); else printf(8。4f ”,Yij); float l1010; float d1010; float u1010; int kk; float sum; for(i=0;i10;i+) for(j=0;j10;j+) lij=0; dij=0; uij=0; for(i=0;i10;i+) lii=1;

30、 uii=1; /*迭代法求解*/ for(i=0;in;i+) sum=0; if(i1) dii=Yii; else for(kk=0;kki;kk+) sum=sum+ukkiukkidkkkk; dii=Yiisum; for(j=i+1;jn;j+) sum=0; if(i1) uij=Yij/dii; else for(kk=0;kki;kk+) sum=sum+ukki*ukkjdkkkk; uij=(Yij-sum)/dii; /*LDU屏幕显示*/ printf(”nD矩阵如下所示”); for(i=0;in;i+) printf(”n”); for(j=0;jn;j+) i

31、f(dij=0) printf( ); else printf(”%8。4f ”,dij); printf(”nU矩阵如下所示”); for(i=0;in;i+) printf(”n”); for(j=0;jn;j+) if(uij=0) printf( ”); else printf(”8。4f”,uij); printf(”n节点阻抗矩阵如下所示); float fi10; float h10; for(j=0;j10;j+) fij=0; hj=0; for(j=0;jn;j+) for(i=0;i=0;i-) if(i=(n1)) Zij=hi; else sum=0; for(kk=i+1;kkn;kk+) sum=sum-uikk*Zkkj; Zij=hi+sum ; for(i=0;in;i+) for(j=0;jn;j+) Zij=-Zij; for(i=0;in;i+) printf(”n”); for(j=0;jn;j+) printf(”%.4f ”,Zij); getch(); system(”cls”);/*计算短路电压电流网络中电流分布*/ /*注入电流计算*/ printf(”tttt短路计算结果如下nn); for(i=0;in;i+) Ini=((Emidi)*(yei);/*

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服