电力系统分析课设 C语言.docx
- 文档编号:23070847
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:40
- 大小:256.87KB
电力系统分析课设 C语言.docx
《电力系统分析课设 C语言.docx》由会员分享,可在线阅读,更多相关《电力系统分析课设 C语言.docx(40页珍藏版)》请在冰豆网上搜索。
电力系统分析课设C语言
目录
1课程设计说明1
2编程语言的选择及理由1
3程序设计2
3.1主体流程图2
3.2详细流程图3
3.2.1创建系统(create)流程图3
3.2.2加载系统函数(load)流程图3
3.2.3计算子函数(calculate)流程图4
3.2.4改变短路节点(change)流程图4
3.3数据及变量说明5
3.4程序代码及注释6
3.5测试算例6
4设计体会13
参考文献13
附录13
1课程设计说明
本课程设计根据电力系统分析课程中所讲的基于节点方程的三相短路计算的原理和方法。
采用c语言编程。
实现了三相短路计算的计算机实现。
本程序输入含有网络拓扑信息和电器元件的参数,输出三相短路的短路电流和短路后网络各节点的电压参数和各支路的电流参数。
并以文件的形式保存,方便用户的读取,打印。
实现了设计的要求。
三相短路在电力系统中虽然发生的概率很小,但一旦发生产生的影响非常严重,电力系统中设备的动稳定和热稳定校验都要以三相短路电流为依据,因此我选择做是电力系统三相短路的计算程序,觉得更有意义。
应用计算机进行电力系统计算,首先要建立电力系统相应的数学模型,如建立电力系统等效网络和节点方程;其次是运用合理的计算方法计算结果,如三角分解法,LDU分解法等;第三则是选择合适的计算机语言编制计算程序,实现程序的准确性,提高精确度。
本设计利用节点方程来实现电力系统三相短路计算。
首先,根据给定的电力系统运行方式制定系统的一相等值网络,计算出各元器件的参数,其次根据网络方程利用变压器和线路参数形成不含发电机和负荷的节点导纳矩阵Y;然后,利用系统形成的节点导纳矩阵求解系统阻抗矩阵Z;第三则是应用节点阻抗矩阵计算短路电流。
电力系统短路电流的实际工程计算中,许多实际问题的解决并不需要十分精确的结果。
因此采用近似计算法,在建立系统节点方程时,采用网络模型和参数做简化处理,等值电路的制定通常将发电机作为含源支路,表示为节点注入电流源和节点电抗的形式;系统中存在同步发电机时,按发电机支路处理;同时,忽略发电机、变压器和输电线路的电阻,不计线路的电容,略去变压器的励磁电流,负荷忽略不计;在标幺参数计算时,选取各级平均额定电压作为基准电压,忽略元件的额定电压和平均电压的差别,认为变压器变比的标幺值为1;此外,还假定所有的发电机的电势具有相同的相位,所有的元件仅用电抗表示,避免复数运算。
三相对称短路为金属性短路。
本课程设计的关键部分是利用系统节点导纳矩阵形成节点阻抗矩阵,本程序采用LDU分解法,然后利用节点导纳矩阵和阻抗矩阵的乘积为单位矩阵列写方程,节点导纳矩阵经LDU分解后,回代求解系统阻抗矩阵。
利用节点阻抗矩阵进行短路计算,首先利用故障前的节点注入电流和系统节点阻抗矩阵求取故障前系统的各节点电压
;然后,利用金属短路时短路点残压为0,对地电阻为0,计算短路点电流;最后,利用故障前节点电压、节点阻抗和短路点电流求得短路后各节点电压和各支路电流。
2编程语言的选择及理由
能够实现程序编写的语言有多种,本课程设计中采用C语言进行电力系统对称短路计算程序的编写。
个人对c语言和metlab相对较熟悉。
之所以选择C语言编程,从主观上说,是因为我学过C语言课程,相对于其他的编程语言而言,C语言的应用更为熟悉和了解。
另外,从客观上说,C语言是目前世界上最为流行、使用最为广泛的高级程序设计语言。
,C的效率MATLAB比高多了,MATLAB虽然语法简单,但执行效率不高。
MATLAB是用于特定的方面的,比如说矩阵运算方面、DSP就很有优势,而C语言不同。
很多软件的底层都是C编写的。
MATLAB提供的是一种基于解释的语言,虽然也是一种高级语言,但是还是很简单的,它的目标在于用户方便,开发简单。
而实际上这些方便也是有代价的,编译器承受了这些代价,程序执行效率方面也有损失。
另一方面MATLAB这么做也是基于其专用于科学计算的目的来考虑的,无法应用于通用的程序设计。
c语言这么做保持了其编译的速度,便于大型程序设计,执行效率也很高,因此我选择用c语言编写程序。
3程序设计
主体流程图
图3-1主体流程图
详细流程图
创建系统(create)流程图
图3-2create函数流程图
加载系统函数(load)流程图
图3-3节点导纳矩阵形成流程图
计算子函数(calculate)流程图
图3-4计算子函数流程图
改变短路节点(change)流程图
图3-5change函数流程图
数据及变量说明
本程序中将电路的支路分为三类:
电抗支路、电流支路、发电机直流,数据输入时分开输入格式如下:
电抗支路:
支路数、节点首端好、节点末端好,支路电抗值。
发电机支路:
发电机台数、发电机接入点,发电机电势、发电机之路电抗。
电容支路:
支路数、电容节点号,电容支路电抗值。
程序中的变量定义如下:
FILE*fp;//文件指针
floatIf;//短路电流
floatV0[10];//节点电压初值
floatIn[10];//注入电流
floatV[10];//节点电压
floatI[10];//支路电流
intcount[2][10];//数组用于储存支路号
floatz[10][10];//储存支路电抗值
floatyjs[10][10];//存放计算导纳矩阵中的中间值
floatye[10];//储存发电机支路导纳
floatY[10][10];//节点导纳矩阵
floatZ[10][10];//阻抗矩阵
floatdk;//电抗值
inte1[10];
floatyc[10];//节点对地电抗
floatycjs[10];
inte[10];//发电机接入点
floatE[10];
floatIg[10];
floatEmid[10];
floatze[10];//储存发电机支路导纳
intm,n,a,f,i=0,j=0,sd,md,butn,times,timesc;/*n是节点数,a是支路数,f是短路点,i为行标,j为列标*/
1、文件读入程序如下:
printf("请输入系统的节点数,支路数,故障节点\n");
scanf("%d%d%d",&n,&a,&f);
fp=fopen(name,"w+");
fprintf(fp,"系统参数如下所示:
\n\n");
fprintf(fp,"1.系统的节点数为%d\n2.系统的支路数为%d\n3.系统的短路点为%d\n\n",n,a,f);
fprintf(fp,"支路电抗参数如下\n");
2、计算主程序如下:
(1)、If=V0[f-1]/Z[f-1][f-1];(短路电流计算)
for(i=0;i V[i]=V0[i]-Z[i][f-1]*If; (2)、for(i=0;i { for(j=0;j Y[i][i]=Y[i][i]-yjs[i][j]; Y[i][i]=Y[i][i]-ye[i]-ycjs[i]; } for(i=0;i for(j=i+1;j { Y[i][j]=yjs[i][j]; Y[j][i]=yjs[i][j]; } 程序代码及注释 具体源程序代码及其注释见附录。 测试算例 【例6-3】在如图3-5所示的电力系统中分别在节点1和节点5接入发电机支路,其标幺值参数为: 。 在节点3发生三相短路,计算短路电流及网络中的电流分布。 线路的电阻和电容略去不计,变压器的标幺变比等于1。 各元件参数的标幺值如下: 图3-6电力系统等值网络图 图3-7三相短路时的等值网络图 由以上网络图可得计算过程如下: (1)、形成输入文件: 系统参数如下所示: 1.系统的节点数为5 2.系统的支路数为5 3.系统的短路点为3 支路电抗参数如下 z12=0.1050z23=0.0650z24=0.0800z43=0.0500z54=0.1840 发电机接入点及其电抗如下: 共2台发电机进入系统 z1=0.1500z5=0.2200 e1=1.0000e5=1.0000 共0个节点有接地电容 (2)、计算后得到的输出文件: 计算结果如下: 1、节点导纳矩阵: -16.19059.5238 9.5238-37.408415.384612.5000 15.3846-35.384620.0000 12.500020.0000-37.93485.4348 5.4348-9.9802 2、节点阻抗矩阵: 0.11810.09580.09020.08580.0467 0.09580.16290.15330.14590.0794 0.09020.15330.18600.16110.0877 0.08580.14590.16110.17290.0941 0.04670.07940.08770.09410.1515 3、短路节点是: 3 4、短路电流: If=5.3767 5、各节点电压: V1=0.5152V2=0.1758V3=0V4=0.1336V5=0.5282 6、发电机支路电流如下: Ig[1][0]=-3.2321 Ig[5][0]=-2.1445 7、各支路电流: I12=-3.2321I23=-2.7046I24=-0.5275I43=-2.6720I54=-2.1445 图3-8对称短路计算结果 图3-8改变短路点后计算结果 【习题6-10】如图3-9所示网络,略去负荷,试用节点阻抗矩阵法求节点5发生三相短路时,短路点的短路电流及线路L-2、L-3的电流。 已知各元件参数如下: 发电机G-1: SN=120MVA,x”d=0.23;G-2: SN=60MVA,x”d=0.14 变压器T-1: SN=120MVA,Vs=10.5%;T-2: SN=60MVA,Vs=10.5% 线路参数x1=0.4Ω/km,b1=2.8×10-6S/km 线路长度L-1: 120km,L-2: 80km,L-3: 70km 取SB=120MVA,VB=Vav 图3-9电力系统网络图 图3-10三相短路时的等值网络图 (1)、形成输入文件: 系统参数如下所示: 1.系统的节点数为: 5 2.系统的支路数为: 5 3.系统的短路点为: 5 支路电抗参数如下: z35=0.29036z45=0.25406z34=0.43554z13=0.1050z24=0.2100 发电机接入点及其电抗如下: 共2台发电机进入系统: z1=0.2300z2=0.2800 e1=1.0500e2=1.0500 共3个节点有接地电容: Y3=-32.372299Y4=-34.077000Y5=-43.185200 (2)、得到的输出文件: 计算结果如下: 1、节点导纳矩阵: -13.87169.5238 -8.33334.7619 9.5238-15.23292.29603.4440 4.76192.2960-10.96463.9361 3.44403.9361-7.3569 2、节点阻抗矩阵: 0.18190.06160.16000.10790.1326 0.06160.20780.08980.15360.1242 0.16000.08980.23300.15710.1932 0.10790.15360.15710.26890.2174 0.13260.12420.19320.21740.3427 3、短路节点是: 5 4、短路电流: If=3.1263 5、各节点电压: V1=0.6471V2=0.6723V3=0.4632V4=0.3890V5=0 6、发电机支路电流如下: Ig[1][0]=-1.7516 Ig[2][0]=-1.3491 7、各支路电流: I35=-1.5954I45=-1.5310I34=-0.1705I13=-1.7516I24=-1.3491 图3-11对称短路计算结果 【习题6-11】电力系统等值电路如图3-13所示,支路阻抗的标幺值已注明图中。 (1)形成节点导纳矩阵(或节点阻抗矩阵),并用以计算节点3的三相短路电流。 (2)另选一种方法计算短路电流,并用以验证 (1)的计算结果。 图3-12电力系统等值电路图 图3-13经Norton变换后的等值电路图 图3-13最终计算等值电路图 由以上网络可得输入文件如下: 系统参数如下所示: 1.系统的节点数为: 3 2.系统的支路数为: 2 3.系统的短路点为: 3 支路电抗参数如下: z12=0.2000z23=0.1000 发电机接入点及其电抗如下: 共2台发电机进入系统: z1=0.2000z3=0.130435 e1=1.0500e3=0.913043 共1个节点有接地电容: Y2=-2.000000 (2)、得到的输出文件: 计算结果如下: 1、节点导纳矩阵: -10.00005.0000 5.0000-14.500010.0000 10.0000-17.6667 2、节点阻抗矩阵: 0.13940.07890.0446 0.07890.15770.0893 0.04460.08930.1071 3、短路节点是: 3 4、短路电流: If=9.1875 5、各节点电压: V1=0.6344V2=0.2188V3=0 6、发电机支路电流如下: Ig[1][0]=-2.0781 Ig[3][0]=-7.0000 7、各支路电流: I12=-2.0781I23=-2.1875 图3-15对称短路计算结果 通过计算结果与算例答案的对比,计算结果与算例标准答案一样,说明了程序计算方法和思路的准确性。 说明本次课程设计基本达到了设计的要求。 4设计体会 通过本次课程设计让自己学到了很多东西,包括电力系统分析、和c语言的很知识。 通过做课程设计自己又仔细的将两门课程相关章节看了一遍,特别是c语言,几乎把整个课本都看了一遍,并自学了很多相关的知识,重新看书的时候才发现,虽然以前学过,但几年不用已经忘得差不多啦! 当然,重新看书也发现了许多新的知识,学到不少的东西。 本次做课程设计老师给我们留了充足的时间,让我们耐心去学习知识,而不像以前一样赶任务。 通过这次课程设计,我更好的掌握了电力系统短路计算的方法。 我想作为一个学电气的人这是非常关键的。 在刚接到题目时,我感觉很迷茫,觉得很难,当我仔细准备的时候发现这也不是想象中的难,最终通过自己的努力和通过学的帮助完成了课程设计。 这次设计给我最大的收获并不仅仅是相关的专业知识,这是我第一次做这种要几门课结合的课程设计,我觉得这使自己应用知识的能力得到了锻炼,本次课程设计用c语言编程序实现了电力系统的三相短路计算。 虽然程序能够计算,但我也知道还有很多的问题。 还需要努力。 第一次不自己学的知识结合在一起,觉得很有用,自己没白学。 在答辩的过程老师对程序提出了修改意见,是自己的程序更加实用,在这里感谢老师的指导,让我受益匪浅。 同时在做的过程中我也和很多的同学交流、讨论,大家交流自己的想法,觉得是很开心的一件事。 参考文献 [1]何仰赞,温增银.电力系统分析(上册)(第三版).武汉: 华中科技大学出版社,2002. [2]何仰赞,温增银.电力系统分析题解(上、下)(第三版).武汉: 华中科技大学出版社,2002. [3]郑平安,曾大亮编.程序设计基础(C语言)第二版.北京: 清华大学出版社,2006. 附录 主程序及注释(这里只给出主要计算程序): #include #include #include 声明外部函数 externvoidcreate(); externvoidload(); externvoidquit(); externvoidchange(charname[20]); externvoidcalculate(charname[20]) { FILE*fp;//文件指针 floatIf;//短路电流 floatV0[10];//节点电压初值 floatIn[10];//注入电流 floatV[10];//节点电压 floatI[10];//支路电流 intcount[2][10];//数组用于储存支路号 floatz[10][10];//储存支路电抗值 floatyjs[10][10];//存放计算导纳矩阵中的中间值 floatye[10];//储存发电机支路导纳 floatY[10][10];//节点导纳矩阵 floatZ[10][10];//阻抗矩阵 floatdk;//电抗值 inte1[10]; floatyc[10];//节点对地电抗 floatycjs[10]; inte[10];//发电机接入点 floatE[10]; floatIg[10]; floatEmid[10]; floatze[10];//储存发电机支路导纳 intm,n,a,f,g,i=0,j=0,sd,md,butn,times,timesc;/*n是节点数,a是支路数,f是短路点,i为行标,j为列标 for(i=0;i<10;i++) {yc[i]=0; ycjs[i]=0; E[i]=0; Emid[i]=0;} for(i=0;i<10;i++)//初始赋 { V0[i]=0; for(j=0;j<10;j++) { z[i][j]=0; Y[i][j]=0; } } /******************************读取系统参数**************************/ fp=fopen(name,"r"); fscanf(fp,"系统参数如下所示: \n\n"); fscanf(fp,"1.系统的节点数为%d\n2.系统的支路数为%d\n3.系统的短路点为%d\n\n",&n,&a,&f); /**************读电抗*************/ fscanf(fp,"支路电抗参数如下\n");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电力系统分析课设 C语言 电力系统 分析 语言