用c语言进行复杂电力系统的潮流计算_第1页
用c语言进行复杂电力系统的潮流计算_第2页
用c语言进行复杂电力系统的潮流计算_第3页
用c语言进行复杂电力系统的潮流计算_第4页
用c语言进行复杂电力系统的潮流计算_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

...电力系统课程设计报告 班级:学号:姓名:用C语言进行复杂电力系统的潮流计算电力系统的潮流计算是对电力系统分析的最基本步骤也是最重要的步骤,是指在一定的系统结构和运行条件下,确定系统运行状态的计算,也即是对各母线(节点)电压,各元件(支路)传输电线或功率的计算。通过计算出的节点电压和功率分布用以检查系统各元件是否过负荷,各点电压是否合理,以及功率损耗等。即使对于一个简单的电力系统,潮流计算也不是一件简单就可以完成的事,其运算量很大,因此如果对于一个大的、复杂的电网来说的话,由于其节点多,分支杂,其计算量可想而知,人工对其计算也更是难上加难了。特别是在现实生活中,遇到一个电力系统不会像我们期望的那样可以知道它的首端电压和首端功率或者是末端电压和末端功率,而是只知道它的首端电压和末端功率,更是使计算变的头疼万分。为了使计算变的简单,我们就可以利用计算机,用C语言编程来实现牛顿-拉夫逊(Newton-Raphson)迭代法,最终实现对电力系统潮流的计算。用牛顿-拉夫逊迭代法进行电力系统潮流计算的相关概念1.节点导纳矩阵如图所示的电力网络,将节点i和j的电压用i和j表示,它们之间的支路导纳表示为yij,那么有基尔霍夫电流定律可知注入接点I的电流i(设流入节点的电流为正)等于离开节点I的电流之和,因此有jI(1-1)(1-2)如令则可将(1-2)改写为:I=1,2,…,n.(1-3)上式也可以写为:I=YU(1-4)其中Y为节点导纳矩阵,也称为稀疏的对称矩阵,它是n×n阶方阵。对角元Yii称为自导纳,它等于与该节点I直接相连的所有支路导纳总和;非对角元Yij(i≠j)称为互导纳或转移导纳,它等于连结节点I,j支路导纳的负数,且有Yij=Yji,当节点I,j之间没有支路直接相连时,Yij=Yji=0。电力系统的分析计算中,往往要作不同的运行方式下的潮流计算,如果系统发生变化,如投切一条线路或一台变压器,由于改变了一条支路的状态或参数只影响该支路两端节点的自导纳和他们之间的互导纳,因而对每一种运行方式不必重新形成导纳矩阵,只需对原有导纳矩阵作相应的修改即可。2.潮流计算的功率方程在实际的电力系统中,已知的条件往往不是节点的注入电流而是负荷和发电机功率,且这些功率一般不随节点的电压变化而变化,而节点的电流则是随电压的变化而变化的,因此在已知节点导纳矩阵的情况下,必须用已知的节点功率来替代未知的节点注入电流,才能求出节点电压,每一个节点的注入功率方程式为:GGI(1-5)(1-6)(1-7)节点注入电流用功率和电压表示为:(1-8) 功率方程可以表示为:(1-9)3.节点分类对于有n个节点的电力网络,可以列出n个功率方程,由图可知一个节点有四个变量:注入有功功率Pi,注入无功功率Qi,节点电压幅值Ui和相角。n个节点有4n个变量,但只有2n个关系式,所以为了使潮流有确定解,必须给定其中2n个变量。根据给定节点变量的不同,可以有以下三种类型的节点:PQ节点:给定注入功率Pi,Qi,即已知PGi,PLi,QGi,QLi,待求Ui,δi。例如:降压变电所母线(负荷节点),固定出力的发电厂母线。PV节点:给定了注入有功功率Pi(PGi,PLi),Ui和QLi,待求QGi(Qi),δi。例如:有一定无功电源的降压变电所母线,有一定储备的发电厂母线。平衡节点:给定了Ui,δi和PLi,QLi,待求PGi,QGi,即Pi,Qi,用来平衡全电网的功率,通常在一个独立的电力系统中只设一个平衡节点。4.牛顿-拉夫逊迭代法牛顿-拉夫逊迭代法将解非线性方程组的过程转化为反复求与之相对应的线性方程的求解过程。对于一个n维非线性方程组:n=1,2,3,…,n假定其初值为x1(0),x2(0),…,xn(0),也即其近似解,它与真值之间的误差为也即各变量与真解之间的修正量。将这n个方程式都在初值的附近展开成Taylor级数且忽略二次项及高次项,则可得修正方程,I=1,2,…n.(1-10)将修正方程写成矩阵形式:(1-11)其中令J=,称之为雅可比(Jacobi)方阵。它的第I行,第j列交点的元素为第I个函数对第j个变量xj的偏导数在点(x1(0),x2(0),…,xn(0))的值,所以方程组是线性方程,可用于求出,从而得到新的近似解,(1-12)

于是得到一般迭代式:(1-13)于是得到近似解:(1-14)迭代一直进行到Max{|yi-fi(x1(0),x2(0),…,xn(0))|}<ε或Max{|Δxi(k)|}<ε为止。用牛顿-拉夫逊迭代法进行潮流计算设网络中除参考节点外有n个节点,其中1个平衡节点(并令第n个节点为平衡节点),m个PQ节点(为第1~m个节点),有n-m-1个PV节点。运用牛顿-拉夫逊法直接求解功率方程(1-9),并将Yij=Gij+jBij及代入得:将实部和虚部分开得:(2-1)(2-2)此外由于系统中还有PV节点,所以还应补充一组方程:(2-3)在式(2-3)中,ei、fi分别为迭代过程中求得的节点电压的实部和虚部,Pi为PQ节点和PV节点的注入有功功率,Qi为PQ节点的注入无功功率,Ui为PV节点的电压大小。由(2-1),(2-2),(2-3)三式所组成的方程组一共有2(n-1)个独立方程,其中,式(2-1)类型的有(n-1)个,包括除平衡节点以外所有节点的有功功率Pi的表达式;式(3-2)类型的有(m-1)个,包括所有PQ节点无功功率Qi的表达式,式(2-3)类型的有(n-m)个,包括所有PV节点电压Ui2的表达式.平衡节点s的功率和电压之所以不包括在这方程组内,是由于平衡节点的注入功率不可能事先给定,从而不可能列出Ps,Qs的表达式,而平衡节点的电压则不必求取.于是建立修正方程式如下:(2-4)式中的(2-5)(2-6)(2-7)当j≠I时雅可比方阵的各个元素分别为:;;;;当j=I时雅可比方阵的各个元素分别为:;;;;;其中:用C语言编程计算潮流的流程图k>km?增大迭代次数,k->k+1计算各节点电压新值:置迭代次数k=1计算ΔPi(k),ΔQi(k),ΔUi(k)2迭代是否收敛,|Δe(k)|max、|Δf(k)|max≤ε?设节点电压初值ei(0)k>km?增大迭代次数,k->k+1计算各节点电压新值:置迭代次数k=1计算ΔPi(k),ΔQi(k),ΔUi(k)2迭代是否收敛,|Δe(k)|max、|Δf(k)|max≤ε?设节点电压初值ei(0),fi(0)停止计算平衡节点功率和线路功率求出|Δe(k)|max、|Δf(k)|max求各节点电压变量Δei(k),Δfi(k)形成雅可比矩阵形成节点导纳矩阵YB输入原始数据开始始否是否是用编程方法求解实际问题如图所示的一个电力网络,如何来求解它的潮流分布呢?已知:为定值,其余四个节点都是PQ节点,且给定的注入功率分别为:程序清单如下:#include<stdio.h>#include<math.h>floatdivRe(b1,b2,b3,b4)floatb1,b2,b3,b4;{floata1r;a1r=(b1*b3+b2*b4)/(b3*b3+b4*b4);return(a1r);}floatdivIm(b1,b2,b3,b4)floatb1,b2,b3,b4;{floata1i;a1i=(b2*b3-b1*b4)/(b3*b3+b4*b4);return(a1i);}floatmulRe(b1,b2,b3,b4)floatb1,b2,b3,b4;{floata2r;a2r=b1*b3-b2*b4;return(a2r);}floatmulIm(b1,b2,b3,b4)floatb1,b2,b3,b4;{floata2i;a2i=b2*b3+b1*b4;return(a2i);}floatMax(floata[],intn){inti;floatmax;for(i=0;i<n-1;i++)if(a[i]>a[i+1]){max=a[i];a[i]=a[i+1];a[i+1]=max;}return(max);}main(){inti,j,k,n,km;floateps,sumpi1,sumpi2,sumqi1,sumqi2,max,sumir,sumii,I1r,I1i;floatpi0[5],qi0[5],detpi[5],detqi[5],Iir0[5],Iii0[5],J0[8][8],detsi[8],detui[8],u[8][8],l[8][8],y[8],ui1[8],H[4][4],N[4][4],J[4][4],L[4][4],ei1[5],fi1[5];staticfloatybr[5][5]={{6.250,-5.000,-1.250,0,0},{-5.000,10.834,-1.667,-1.667,-2.500}, {-1.250,-1.667,12.917,-10.000,0},{0,-1.667,-10.000,12.917,-1.250}, {0,-2.500,0,-1.250,3.750}};staticfloatybi[5][5]={{-18.750,15.000,3.750,0,0},{15.000,-32.500,5.000,5.000,7.500}, {3.750,5.000,-38.750,30.000,0},{0,5.000,30.000,-38.750,3.750}, {0,7.500,0,3.750,-11.250}};floatei0[5]={1.06,1.0,1.0,1.0,1.0};floatfi0[5]={0,0,0,0,0};floatpi[5]={0,0.2,-0.45,-0.4,-0.6};floatqi[5]={0,0.2,-0.15,-0.05,-0.1};k=0;km=6;eps=0.00001;do{k+=1;printf("Nowstart...\n");printf("The%dtimes\n",k);for(i=1;i<5;i++)printf("pi[%d]=%f",i,pi[i]);sumpi2=0;sumqi2=0;for(i=1;i<5;i++){for(j=0;j<5;j++) { sumpi1=(ei0[i]*(ybr[i][j]*ei0[j]-ybi[i][j]*fi0[j])+fi0[i]*(ybr[i][j]*fi0[j]+ybi[i][j]*ei0[j])); sumpi2+=sumpi1; }pi0[i]=sumpi2;printf("pi0[%d]=%f\t",i,pi0[i]);sumpi2=0;}for(i=1;i<5;i++){for(j=0;j<5;j++) { sumqi1=(fi0[i]*(ybr[i][j]*ei0[j]-ybi[i][j]*fi0[j])-ei0[i]*(ybr[i][j]*fi0[j]+ybi[i][j]*ei0[j])); sumqi2+=sumqi1; }qi0[i]=sumqi2;printf("qi0[%d]=%f\t",i,qi0[i]);sumqi2=0;}for(i=1;i<5;i++){detpi[i]=pi[i]-pi0[i];detqi[i]=qi[i]-qi0[i];printf("detpi[%d]=%f\t",i,detpi[i]);printf("detqi[%d]=%f\t",i,detqi[i]);}for(i=1;i<5;i++){Iir0[i]=divRe(pi0[i],-qi0[i],ei0[i],-fi0[i]);Iii0[i]=divIm(pi0[i],-qi0[i],ei0[i],-fi0[i]);printf("Iir0[%d]=%f\t",i,Iir0[i]);printf("Iii0[%d]=%f\t",i,Iii0[i]);}for(i=0;i<4;i++){for(j=0;j<4;j++) if(i==j){ H[i][j]=-ybi[i+1][j+1]*ei0[i+1]+ybr[i+1][j+1]*fi0[i+1]+Iii0[i+1]; N[i][j]=ybr[i+1][j+1]*ei0[i+1]+ybi[i+1][j+1]*fi0[i+1]+Iir0[i+1]; J[i][j]=-ybr[i+1][j+1]*ei0[i+1]-ybi[i+1][i+1]*fi0[i+1]+Iir0[i+1]; L[i][j]=-ybi[i+1][j+1]*ei0[i+1]+ybr[i+1][j+1]*fi0[i+1]-Iii0[i+1]; } else{ H[i][j]=ybr[i+1][j+1]*fi0[i+1]-ybi[i+1][j+1]*ei0[i+1]; N[i][j]=ybr[i+1][j+1]*ei0[i+1]+ybi[i+1][j+1]*fi0[i+1]; J[i][j]=-ybi[i+1][j+1]*fi0[i+1]-ybr[i+1][j+1]*ei0[i+1]; L[i][j]=ybr[i+1][j+1]*fi0[i+1]-ybi[i+1][j+1]*ei0[i+1]; }}for(i=0;i<8;i++)for(j=0;j<8;j++){ if(i%2==0&&j%2==0)J0[i][j]=H[i/2][j/2]; elseif(i%2==0&&j%2!=0)J0[i][j]=N[i/2][(j-1)/2]; elseif(i%2!=0&&j%2==0)J0[i][j]=J[(i-1)/2][j/2]; elseJ0[i][j]=L[i/2][(j-1)/2];}for(i=0;i<8;i++)for(j=0;j<8;j++)printf("J0[%d][%d]=%f\t",i,j,J0[i][j]);for(i=0;i<8;i++) {if(i%2==0)detsi[i]=detpi[(i+2)/2]; elsedetsi[i]=detqi[(i+1)/2]; printf("detsi[%d]=%f\t",i,detsi[i]); }for(i=0;i<8;i++)u[i][i]=1.000;for(n=0;n<8;n++){for(i=n;i<8;i++) {l[i][n]=J0[i][n]; for(j=0;j<=n-1;j++) l[i][n]-=(l[i][j]*u[j][n]); }for(j=n+1;j<8;j++) {u[n][j]=J0[n][j]; for(i=0;i<=n-1;i++) u[n][j]-=(l[n][i]*u[i][j]); u[n][j]/=l[n][n]; }}for(i=0;i<8;i++){y[i]=detsi[i];for(j=0;j<=i-1;j++) y[i]-=(l[i][j]*y[j]); y[i]/=l[i][i];}for(i=7;i>=0;i--){detui[i]=y[i];for(j=i+1;j<n;j++) detui[i]-=(u[i][j]*detui[j]);}for(i=0;i<8;i++)printf("detui[%d]=%f\t",i,detui[i]);for(i=0;i<8;i++){ {if(i%2==0)ui1[i]=detui[i]+fi0[i/2+1]; elseui1[i]=detui[i]+ei0[(i+1)/2]; }printf("ui1[%d]=%f\t",i,ui1[i]);}for(i=1;i<5;i++){ei1[i]=ui1[2*i-1];fi1[i]=ui1[2*i-2];}for(i=1;i<5;i++){printf("ei1[%d]=%f\t",i,ei1[i]);printf("fi1[%d]=%f\t",i,fi1[i]);}max=Max(detui,8);printf("max=%f",max);for(i=1;i<5;i++){ei0[i]=ei1[i];fi0[i]=fi1[i];}for(i=1;i<5;i++){pi[i]=detpi[i]+pi0[i];qi[i]=detqi[i]+qi0[i];}}while(max>eps&&k<km);printf("Alldo%dtimes\n",k);sumir=0;sumii=0;for(i=0;i<5;i++){I1r=mulRe(ybr[0][i],-ybi[0][i],ei0[i],-fi0[i]);I1i=mulIm(ybr[0][i],-ybi[0][i],ei0[i],-fi0[i]);sumir+=I1r;sumii+=I1i;}pi[0]=mulRe(ei0[0],fi0[0],sumir,sumii);qi[0]=mulIm(ei0[0],fi0[0],sumir,sumii);printf("S1=%f+j%f\n",pi[0],qi[0]);ei1[0]=ei0[0];fi1[0]=fi0[0];for(i=0;i<5;i++)printf("u%d=%f<%f\n",i+1,sqrt(ei1[i]*ei1[i]+fi1[i]*fi1[i]),atan(fi1[i]/ei1[i])*180/3.14159);}最终求出平衡节点的功率和线路的功率以及各个节点的电压为:利用这中方法进行潮流的计算,其收敛的速度是显而易见的,如上面这到题,在经过三次迭代以后已经达到我们要求的水平,但必须建立在有一个比较优的初值的基础上。实验总结通过这次为期两周的课程设计,让我知道了潮流计算的基本步骤和方法,要让电力系统稳定运行,必须进行精密的计算和设计,明白了潮流计算对于电力系统的重要性,尤其是对牛顿拉夫逊法进行潮流计算有了深刻的理解。在用牛顿拉夫逊法进行潮流计算的过程中,用到了导纳矩阵,雅可比方阵等数学方法,用建立的数学模型结合C语言进行编程,这就要求掌握C语言的编程方法,还要熟悉VisualC++编程软件,复习以前学习过的知识,查阅相关的资料,完成课程设计。这次实习忙碌但是充实,在其中我发现了自己的不足,自己知识的很多漏洞,和基础知识不扎实,课外知识知之甚少。看到了自己理论联系实际的能力还需提高,也知道了自己以后学习的方向和目的。这次课程设计对自己意义很大,自己从中获得很多东西。这次课程设计让我学到不少东西,不但对电力系统稳态分析的知识巩固了,也加强了C语言软件使用的学习,在设计中遇到了很多编程问题,最后在自己和同学相互协助下,都的到了解决。

社会实践报告系别:班级:学号:姓名:作为祖国未来的事业的继承人,我们这些大学生应该及早树立自己的历史责任感,提高自己的社会适应能力。假期的社会实践就是很好的锻炼自己的机会。当下,挣钱早已不是打工的唯一目的,更多的人将其视为参加社会实践、提高自身能力的机会。许多学校也积极鼓励大学生多接触社会、了解社会,一方面可以把学到的理论知识应用到实践中去,提高各方面的能力;另一方面可以积累工作经验对日后的就业大有裨益。进行社会实践,最理想的就是找到与本专业对口单位进行实习,从而提高自己的实战水平,同时可以将课本知识在实践中得到运用,从而更好的指导自己今后的学习。但是作为一名尚未毕业的大学生,由于本身具备的专业知识还十分的有限,所以我选择了打散工作为第一次社会实践的方式。目的在于熟悉社会。就职业本身而言,并无高低贵贱之分,存在即为合理。通过短短几天的打工经历可以让长期处于校园的我们对社会有一种更直观的认识。实践过程:自从走进了大学,就业问题就似乎总是围绕在我们的身边,成了说不完的话题。在现今社会,招聘会上的大字报都总写着“有经验者优先”,可还在校园里面的我们这班学子社会经验又会拥有多少呢?为了拓展自身的知识面,扩大与社会的接触面,增加个人在社会竞争中的经验,锻炼和提高自己的能力,以便在以后毕业后能真正真正走入社会,能够适应国内外的经济形势的变化,并且能够在生活和工作中很好地处理各方面的问题,我开始了我这个假期的社会实践-走进天源休闲餐厅。实践,就是把我们在学校所学的理论知识,运用到客观实际中去,使自己所学的理论知识有用武之地。只学不实践,那么所学的就等于零。理论应该与实践相结合。另一方面,实践可为以后找工作打基础。通过这段时间的实习,学到一些在学校里学不到的东西。因为环境的不同,接触的人与事不同,从中所学的东西自然就不一样了。要学会从实践中学习,从学习中实践。而且在中国的经济飞速发展,又加入了世贸,国内外经济日趋变化,每天都不断有新的东西涌现,在拥有了越来越多的机会的同时,也有了更多的挑战,前天才刚学到的知识可能在今天就已经被淘汰掉了,中国的经济越和外面接轨,对于人才的要求就会越来越高,我们不只要学好学校里所学到的知识,还要不断从生活中,实践中学其他知识,不断地从各方面武装自已,才能在竞争中突出自已,表现自已。在餐厅里,别人一眼就能把我人出是一名正在读书的学生,我问他们为什么,他们总说从我的脸上就能看出来,也许没有经历过社会的人都有我这种不知名遭遇吧!我并没有因为我在他们面前没有经验而退后,我相信我也能做的像他们一样好.我的工作是在那做传菜生,每天9点钟-下午2点再从下午的4点-晚上8:30分上班,虽然时间长了点但,热情而年轻的我并没有丝毫的感到过累,我觉得这是一种激励,明白了人生,感悟了生活,接触了社会,了解了未来.在餐厅里虽然我是以传菜为主,但我不时还要做一些工作以外的事情,有时要做一些清洁的工作,在学校里也许有老师分配说今天做些什么,明天做些什么,但在这里,不一定有人会告诉你这些,你必须自觉地去做,而且要尽自已的努力做到最好,一件工作的效率就会得到别人不同的评价。在学校,只有学习的氛围,毕竟学校是学习的场所,每一个学生都在为取得更高的成绩而努力。而这里是工作的场所,每个人都会为了获得更多的报酬而努力,无论是学习还是工作,都存在着竞争,在竞争中就要不断学习别人先进的地方,也要不断学习别人怎样做人,以提高自已的能力!记得老师曾经说过大学是一个小社会,但我总觉得校园里总少不了那份纯真,那份真诚,尽管是大学高校,学生还终归保持着学生的身份。而走进企业,接触各种各样的客户、同事、上司等等,关系复杂,但我得去面对我从未面对过的一切。记得在我校举行的招聘会上所反映出来的其中一个问题是,学生的实际操作能力与在校理论学习有一定的差距。在这次实践中,这一点我感受很深。在学校,理论的学习很多,而且是多方面的,几乎是面面俱到;而在实际工作中,可能会遇到书本上没学到的,又可能是书本上的知识一点都用不上的情况。或许工作中运用到的只是很简单的问题,只要套公式似的就能完成一项任务。有时候我会埋怨,实际操作这么简单,但为什么书本上的知识让人学得这么吃力呢?这是社会与学校脱轨了吗?也许老师是正确的,虽然大学生生活不像踏入社会,但是总算是社会的一个部分,这是不可否认的事实。但是有时也要感谢老师孜孜不倦地教导,有些问题有了有课堂上地认真消化,有平时作业作补充,我比一部人具有更高的起点,有了更多的知识层面去应付各种工作上的问题,作为一名大学生,应该懂得与社会上各方面的人交往,处理社会上所发生的各方面的事情,这就意味着大学生要注意到社会实践,社会实践必不可少。毕竟,很快我就不再是一名大学生,而是社会中的一分子,要与社会交流,为社会做贡献。只懂得纸上谈兵是远远不及的,以后的人生旅途是漫长的,为了锻炼自己成为一名合格的、对社会有用的人才.很多在学校读书的人都说宁愿出去工作,不愿在校读书;而已在社会的人都宁愿回校读书。我们上学,学习先进的科学知识,为的都是

温馨提示

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

最新文档

评论

0/150

提交评论