欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    电力系统潮流计算C语言程序及说明.docx

    • 资源ID:1356177       资源大小:66.86KB        全文页数:16页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    电力系统潮流计算C语言程序及说明.docx

    实验目的根据所给的电力系统,编制潮流计算程序,通过计算机进行调试,最后完成一个切实可行的电力系统计算应用程序。通过自己设计电力系统计算程序使同学对电力系统分析有进一步理解,同时加强计算机实际应用能力的训练。程序计算原理1、概述应用计算机进行电力系统计算,首先要掌握电力系统相应计算的数学模型;其次是运用合理的计算方法;第三那么是选择适宜的计算机语言编制计算程序。建立电力系统计算的相关数学模型,就是建立用于描述电力系统相应计算的有关参数间的相互关系的数学方程式。该数学模型的建立往往要突出问题的主要方面,即考虑影响问题的主要因素,而忽略些次要因素,使数学模型既能正确地反映实际问题,又使计算不过于复杂。运用合理的计算方法,就是要求所选用的计算方法能快速准确地得出正确结果,同时还应要求在解算过程中占用内存少,以利提高计算机的解题规模。选择适宜的语言编写程序,就是首先确定用什么计算机语言来编制程序;其次是作出计算的流程图;第三根据流程图用选择的语言编写计算程序。然后上机调试,直到语法上无错误。本程序采用C语言进行编程。所编制的程序难免存在逻辑错误,因此先用一个结果的系统作为例题进行计算。用程序计算的结果和结果相比拟,如果结果相差甚远就要逐步分析程序的计算步骤,查出问题的出处:如果结果比拟接近,那么逐步分析误差来源;直到结果正确为止。2、电力系统潮流计算的程序算法潮流计算是电力系统分析中的一-种最根本的计算,它的任务是对给定的运行条件确定系统的运行状态,如母线上的电压(幅值及相角)、网络中的功率分布及功率损耗等。目前计算机潮流计算的方法主要有牛顿拉夫逊算法和PQ分解法。牛顿拉夫逊算法是数学上求解非线形方程组的有效方法,具有较好的收敛性,曾经是潮流计算中应用比拟普遍的方法。PQ快速分解法是从牛顿拉夫逊算法演变而来的,是将纯数学的牛顿拉夫逊算法与电力系统具体特点相结合并进行简化与改良而得出的。PQ快速分解法比牛顿-拉夫逊算法大大提高了计算速度和节省了内存,故而本程序以PQ快速分解法进行潮流计算。1)形成节点导纳矩阵(1)自导纳的形成对节点i其自导纳Yii是节点i以外的所有节点都接地时节点i对地的总导纳。显然,Yii应等于与节点i相接的各支路导纳之和,即1.=%+z%j式中,y©为节点i与零电位节点之间的支路导纳;yu为节点i与节点j之间的支路导纳。(2)互导纳的形成对节点i与节点k之间的互导纳是节点i、k之间的支路导纳的负值,即不难理解=%。假设节点i和k没有支路直接相连时,便有Yik=O(3)含变压器支路的处理假设节点p、q间接有变压器,如以下图所示,那么可作出其n型等值电路为:图1变压n型等值电路那么p、q的自导纳和节点间的互导纳分别为2)计算不平衡功率AP、ZkQ并形成修正方程式对每一个PQ节点或每一个PV节点都可以根据以下公式计算出有功功率增量AP而对于每一个PQ节点还可以根据下面的公式计算出无功功率增量AQ在有功功率增量和无功功率增量不满足如下约束条件时利用PQ分解法那么可以形成如下修正方程3)利用因子表法求解修正方程在电网计算中经常遇到这样的问题,对方程组需要反复屡次求解,而每次求解仅改变常数项F,系数矩阵保持不变。按照一般的高斯消去法,对每一改变的常数项,形成包括常数项及系数矩阵在内的增广矩阵,然后消去回代求出其解。可以看出,每次对增广矩阵中A矩阵元素的消元都是重复的,为了防止这种重复,我们把对相同的系数矩阵重复进行的消去与对不同的常数项进行的消去分开进行,因此对系数矩阵的消去只需进行一次,并在消去的过程中将对常数项进行消去运算的运算因子保存下来,形成所谓因子表,这就是因子表法。因为因子表记录了高斯消去法对常数项进行消去的全部信息,利用它便可对不同常数项进行消去,形成上三角矩阵,最后求出全部未知数。在使用PQ分解法时,其系数矩阵是在迭代过程中保持不变的,所以为了节省内存和缩短运算时间我们采取了因子表法。同时由于电网的节点导纳矩阵矩阵是稀疏阵和对称阵,于是我们可以采取只保存系数矩阵的上三角阵来使运算更为简化。假设线性方程组一般形式如下:a2。13ana22°23'-'a2n其中A=43称为系数矩阵,X=1.X2毛XZJ称为未知数向量,F=fif2f3,/称为常数项向量。将矩阵A的元素进行如下处理:得到因子表其中6=1/若D,Ujj=甯(Kj);再利用因子表进行前代过程,求出每次迭代后的常数项。其前代公式是:求得向量产=工管腔打子;再由因子表与前代得到的向量F,得到方程组求解出此方程即可得到线性方程组的解向量X=x2x3xtl'4)屡次迭代最终求得V和以及全线路功率利用上面所介绍的方法求解修正方程组可以求得,V=1.xAKA%-匕/和应电J。再利用W""=rw+aW幻,片"”二片幻+.M")求得每次迭代后的结果。屡次迭代当其满足约束条件max*vj和max%Qfl<%时,迭代结束。迭代结束后即可得到各节点的V和3,再根据V、J来计算PV节点的无功功率Q和平衡节点的功率以及网络中的功率分布。PV节点及平衡节点无功功率计算公式为:平衡节点有功功率计算公式为:以以下图所标示的正方向,输电线路功率的计算公式如下:图2支路功率计算对其进行实部虚部进行分解可得P、Q计算公式为:程序及说明1、主要变量说明1)结构体类型说明(1)节点功率结构体structNodetypefloatP,Q;;其中,P为节点的有功功率,Q为无功功率。节点功率不区分负荷功率和发电机功率,其值为本节点连接的各支路输入功率及节点所接负荷、发电机功率之和,且规定功率流入节点为正,流出为负。详细说明参见下一章“算例及结果”的第二节“源数据格式说明:(2)线路参数结构体struct1.inetype(floatG,B,B0,k;;其中,G、B为线路的导纳和容纳;BO为线路的考虑变压器口型等值电路后的对地充电容纳的一半Bc/2;k为折算到标准变压器支路后的变压器变比。详细说明参见下一章“算例及结果”的第二节“源数据格式说明2)变量说明表2程序主要变量说明主要变量类型含义Nodeint系统总节点数NPintPV+PQ节点数,即非平衡节点数NQintPQ节点数Numint*原始节点编号与程序表示编号映射数组NostructNodetype*节点功率数组Vfloat*节点电压有效值数组Dltafloat*节点电压相角数组Ystruct1.inetype*线路参数矩阵BP、BQfloat*有功、无功简化雅克比矩阵B,、B”countunsignedintPQ迭代次数eP、eQconst有功、无功迭代精度控制kp>kqint有功、无功迭代结束标志dP、dQfloat*有功、无功不平衡量数组3、程序流程图读取节点数据读取线路数据并形成Y矩阵形成矩阵B,及B”并求取因子表设定PQ节点电压初值及各节点电压相角的初值迭代计算计算平衡节点功率及全部线路功率图3程序主流程图4、程序代码图4迭代局部流程图*FUNCTION:POWERF1.OW*/*WRITTENBY:HUANG&YANG&TONG*/*1.ASTEDITED:2008-11-24*/#include<stdio.h>#include<math.h>/*宏定义*/#defineeP0.00001#defineeQ0.00001#defineY_(i,j)(*(*(Y+i)-i+j)#defineYij(*(Yi+j)#defineYji(*(*(Y+j)-j+i)#definePjiYji.G*cos(tmp)+Yji.B*sin(tmp)#definePijYij.G*cos(tmp)+Yij.B*sin(tmp)#defineQjiYji.G*sin(tmp)-Yji.B*cos(tmp)#defineQijYij.G*sin(tmp)-Yij.B*cos(tmp)/*结构体变量定义*/structNodetype*节点功率*/floatP,Q;;struct1.inetype*线路类型*/floatG,B,B0,k;);/*子函数声明*/voidin_node();*读节点功率*/voidinjine();*读线路参数*/voidB_Form();*生成BP、BQ矩阵*/voidfactor();*求因子表*/voidsolve(float*B,float*X,intN);*解方程组*/voidPrtNode();建打印节点参数列voidErrorMsg(intFlag);/*错误提示信息*/*全局变量声明*/intNode;/*节点数*/int*Num;/*保存原始节点序号*/intNP,NQ=0;*PV+PQsPQ节点数*/structNodetype*No;/*节点数据*/struct1.inetype*Y;线路参数*/float*BP,*BQ;/*有功、无功简化雅克比矩阵B*/float*V;/*节点电压有效值*/float*Dlta;/*节点电压相角值*/unsignedintcount=0;/*迭代计数*/intij,k,m;/*通用下标值*/floattmp;/*临时数据暂存刃char*Type;/*节点类型*/FI1.E*in,*out;/*输入、输出文件指针*/*/W函*木*木*/*I*I*I*主函数*I*I*I*/intmain(void)(intkp=l,kq=h*PsQ精度判断:1不满足,O-满足精度要求*/float*dP,*dPi,*dQ,*dQi;*PsQ*/floatDltai;struct1.inetype*Yi;structNodetype*Noi;floattP,tQ;if(in=fopen("Data.txt,"r")=NU1.1.)ErrorMsg(I);if(out=fopen("out.txt","w")=NU1.1.)ErrorMsg(2);in_node();*读取节点参数并统计PQ、PV节点数*/injine();*读取线路参数并形成Y矩阵*/B_Form();/*形成B(BP&BQ)矩阵*/factor();/*求B因子式(仍保存于BP&BQ)*/for(i=0;i<NQ;i+)*(V+i)=l;/*对PQ节点电压V赋初值*/dP=(float*)malloc(sizeof(float)*NP);/*P*/dQ=dP;*Q*/*PsAQ不同时存在,故而可共用空间*/loop:/*开始迭代*/if(kp=O&&kq=O)goto100pEnd;COUnt+;/*迭代次数加*/if(count=65535)ElTorMSg(99);/*不收敛,退出*/kp=O;for(i=0;i<NP;i+)(dPi=dP+i;Yi=*(Y+i)-i;Dltai=*(Dlta+i);*dPi=O;for(j=0;j<Node;j+)(tmp=Dltai-*(Dlta+j);*tmp即ij*/if(i>j)*dPi+=*(V+j)*(Pji);else*dPi+=*(V+j)*(Pij);)/*注意到Y矩阵为上三角矩阵,i>j时要交换下标*/*dPi*=*(V+i);*dPi=(*(No+i).P-*dPi;/*求得Pi*/if(fabs(*dPi)>0x8fffffff)ErrorMsg(99);/*不收敛,退出*/if(fabs(*dPi)>eP)kp=l;/*有不满足精度的P即令kp=l*/*dPi=*(V+i);/*求得常数项PiVi*/1if(kp=O)goto100pQ;solve(BP,dP,NP);for(i=0;i<NP;i+)*(Dlta÷i)+=(*(dP+i)(*(V+i);/*修正相角+=*/100pQ:if(kp=O&&kq=O)goto100pEnd;kq=O;for(i=0;i<NQ;i+)(dQi=dQ+i;Yi=*(Y+i)-i;DItai=*(Dlta+i);*dQi=O;for(j=0;j<Node;j+)(tmp=Dltai-*(Dlta+j);*tmp即ij*/if(i>j)*dQi+=*(V+j)*(Qji);else*dQi+=*(V+j)*(Qij);*注意到Y矩阵为上三角矩阵,i>j时要交换下标*/*dQi*=*(V+i);*dQi=(*(No+i).Q-*dQi;/*求得Qi*/if(fabs(*dQi)>0x8fffffff)ErrorMsg(99);/*不收敛,退出*/if(fabs(*dQi)>eQ)kq=l;/*有不满足精度的AQ即令kq=l*/*dQi=*(V+i);/*求得常数项QiVi*/)if(kq=O)gotoloop;solve(BQ,dQ,NQ);for(i=0;i<NQ;i+)*(V+i)÷=*(dQ+i);/*修正PQ节点电压V+=V*/gotoloop;/*无功迭代,那么必定需要下一轮回迭代判断*/100pEnd:/*迭代结束*/free(dP);/*释放内存空间*/*计算pv节点和平衡节点的无功功率Q*/for(i=NQ;i<Node;i+)(Noi=No+i;Yi=*(Y+i)-i;Dltai=*(Dlta+i);for(j=0;j<Node;j+)(tmp=Dltai-*(Dlta+j);*tmp即ij*/if(i>j)(*Noi).Q+=*(V+j)*(Qji);else(*Noi).Q+=*(V+j)*(Qij);/*注意到Y矩阵为上三角矩阵,i>j时要交换下标*/(*Noi),Q*=*(V+i);)/*计算平衡节点的有功功率P*/i=NP;Noi=No+i;Dltai=*(Dlta+i);for(j=0;j<Node;j+)tmp=Dltai-*(Dlta÷j);*tmp即ij*/(*Noi).P+=*(V+j)*(Pji);)/*注意到Y矩阵为上三角矩阵,i>j时要交换下标*/(*Noi).P*=*(V+i);/*输出最终结果*/fprintf(out,"nn【潮流计算结果(节点)(迭代次数k=%3d)n",countl);PrtNode();/*计算全部线路功率*刃fprintf(out,"nn潮流计算结果(线路)n");fprintf(out,"线路PQW");for(k=0;k<Node;k+)(i=*(Num+k);Yi=*(Y+i)-i;DItai=*(Dlta+i);Noi=No+i;fbr(m=0;m<Node;m+)(j=*(Num+m);if(j=i)continue;tmp=Dltai-*(Dlta+j);*tmp即ij*/if(j<i)(if(Yji.B=O)continue;/*假设Bij=0,那么节点i、j无直接联系*/tP=*(V+j)*(Pji);tp=*(V+i)*Yji.G-tP;tp*=*(V+i);tQ=-*(V+j)*(Qji);tQ.=*(V+i)*(Yji.B-Yji.BOYji.k);tQ*=*(V+i);)else(if(Yij.B=O)continue;*三lBij=O,那么节点i、j无直接联系*/tp=*(V+j)*(Pij);tp=*(V+i)*Yij.G-tP;tp*=*(V+i);tQ=-*(V+j)*(Qij);tQ-=*(V+i)*(Yij.B-Yij.BO);tQ*=*(V+i);)fprintf(out,"S%d,%d=(%10.6f,%10.6f)n",k+l,m+l,-tP,-tQ);1)fclose(out);system("cmd/cstartout.txf,);return(O);*I*木*I求*I*1函数*I*I木*I*/*求*求函*求*/*味*函(读点数*/voidin_node()structNodetype*Noi;*临时变量*/fscanf(in,%d%d”,&Node,&k);/*读取节点数Node*/NP=Node-1;/*PV+PQ节点数,即非平衡节点数目*/Num=(int*)maIloc(sizeof(int)*Node);/*开Node个空间,每节点一个*/V=(float*)malloc(sizeof(float)*Node);*ffi*/DIta=(float*)malloc(sizeof(float)*Node);/*电压相角*/No=(structNodetype*)malloc(sizeof(structNOdetyPe)*Node);/*节点功率*/户1;While(k!=0)/*假设k=0,说明节点数据读取完毕*/(switch(k)(case1:k=NQ;NQ+;break;*NQ统计PQ节点个数*/case2:k=NP-j;j+;break;/*从NP-I个空间倒着保存PV节点*/case3:k=NP;break;/*平衡节点*/default:ErrOrMSg;)Noi=No+k;fscanf(in,"%d%f%f%f%f',&i,&(*Noi).P,&(*Noi).Q,V+k,Dlta+k);i-;/*节点编号减一,以和程序表达方式兼容号*(Num+i)=k;/*第i个Num元素中存放i节点在No中的下标*/fscanf(in,"%d",(fek);/*读取节点类型*/)if(NQ+j!=Node)EiTOrMSg(4);/*检验节点数据个数是否够Node个*/fprintf(out,"节点参数表】n't);PrtNode();fprintf(out,"总节点:%dnPQ节点:%dnPV节点:%dn,Node,NQ,NP-NQ);)/*子函数:读线路数据,并形成节点导纳矩阵Y*/voidinjine()struct1.inetype*Yi;floatR,X,k,B;m=sizeof(struct1.inetype);Y=(struct1.inetype*)malloc(m*Node);*先开Node行,每一个节点一行*/for(i=0;i<Node;i+)/*再在第i行上面开辟Node-i列*/*即以上三角存储Y矩阵*/*(Y+i)=(struct1.inetype*)malloc(m*(Node-i);Yi=*(Y+i)-i;for(j=i;j<Node;j+)Yij.G=Yij.B=Yij.BO=Yij.k=0;)*初始化*/1While(feof(in)=0)*文件指针到文件末*/(fscanf(in,"%d%d%f%f%f%F',&i,&j,&R,&X,&k,&B);i=*(Num+i);/*转换节点号为该节点在程序中的储存编号*/j=*(Num+j);(*(*(Y+i).B+=B;/*将对地充电导纳累加到自导纳*/(*(*(Y+j)B+=B;if(k!=1.0)(X*=k;R=0;tmp=(l-k)X;(*(*(Y+i).B÷=tmp;/*将变压器的对地充电容纳累加到自导纳(*(*(Y+j).B+=-(tmpk);B=tmp;k=-k;1if(i>j)tmp=i;ij;j=tmp;k=1/k;B*=k;Yi=*(Y+i)-i;/*以Yi代替*(Y+i)i,简化表达式并防止重复计算*/Yij.B0=B;/*保存ijO、ji对地充电电容到BijO*/Yij.k=k;/*且有BOji=BOijZk*/tmp=R*R+X*X;R=tmp;X=tmp;Yij.G=-R;/*生成互导纳*/Yij.B=X;(*(*(Y+i).G+=R;/*将线路互导纳累加到自导纳*/(*(*(Y+i).B+=-X;(*(*(Y+j).G+=R;(*(*(Y+j),B+=-X;1fclose(in);fprintf(out,"n节点导纳矩阵Yn");for(k=0;k<Node;k+)i=k;i=*(Num+i);/*查取第i节点在程序中存储序号*/for(j=0;j<k;j+)fprintf(out,"ttt");for(m=k;m<Node;m+)(j=*(Num+m);/*查取第j节点在程序中存储序号*/if(i<j)rintf(out,"(%10.6f,%10.6f)M,Y_(ij).G,Y_(i,j).B);elserintf(out,(%10.6f,%10.6f)'Y_(j,i).G,Y_(j,i).B);fprintf(out,"n");/*求*P函BP、BQ*水*/voidB_Form()float*BPi,*BQi;struct1.inetype*Yi;intsize=sizeof(float);BP=(float*)malloc(size*NP);*以上三角存储*/for(i=0;i<NP;i+)*(BP+i)=(float*)malloc(size*(NP-i);for(i=0;i<NP;i+)(BPi=*(BP+i)-i;*以BPi代替*(BP+i)-i,防止重复计算*/Yi=*(Y+i)-i;for(j=i;j<NP;j+)*(BPi÷j)=Yij.B;*(BPi+j)即相当于BPij*/1BQ=BP;/*BP包含BQ,BP左上角的NQ*NQ子阵即BQ*/)/*求*子函因*7*求*求*/voidfactor()float*BPi,*BPk,*BQi;for(i=0;i<NP;i+)(BPi=*(BP+i)-i;for(k=0;k<i;k+)(BPk=*(BP+k)-k;tmp=(*(BPk+i)(*(BPk+k);for(j=i;j<NP;j+)(*(BPi+j)-=tmp*(*(BPk+j);)*(BPi+i)=l(*(BPi+i);for(j=i+l;j<NP;j+)*(BPi+j)*=*(BPi+i);)*味*函,星*/voidsolve(float*B,float*X,intN)float*Bi,*Xi;for(i=0;i<N;i+)*(X+i)=-*(X+i);/*对常数项取负*/*对常数列进行前代*/for(i=0;i<N;i+)(Bi=*(B+i)-i;Xi=X+i;for(j=i+l;j<N:j+)*(X+j)-=*(Bi÷j)*Xi;*Xi*=*(Bi+i);)/*回代以求解方程组*s*7for(i=N-l;i>=0;i)(Bi=*(B+i)-i;Xi=X+i;for(j=N-l;j>i;j)*Xi-=*(Bi+j)*(X+j);1)/*打印节点参数*/voidPrtNode()n");structNodetype*Noi;fprintf(out,”节点类型PQVfor(i=0;i<Node;)j=*(Num+i);/*查取第i节点在程序中存储序号*/Noi=No+j;if(j<NQ)Type=,'PQ"elseType=uPV"if(j=NP)Type=uBS"fprintf(out,"%3d%s%10.6f%l0.6f%10.6f%10.6n'+i,Type,(*Noi).P,(*Noi).Q,*(V+j),*(Dlta+j)0.017453);1/*木*子函与昔信息*木*木*/voidErrorMsg(intFlag)Switch(FIag)(case1:printf("ntError(1):FailedtoOpenFile"Data.txt"!");break;case2:printf("ntError(2):FailedtoCreatFile',out.txtV,!H);break;case3:printf("ntError(3):NodeDataError,PleaseCheck!");break;case4printf(,'ntError(4):1.ackNodeData,PleaseCheck!")jbreak;case99:printf("k=%dntError(99):It'sEmanative!",count)break;1getch();fclose(out);exit(Flag);)算例及结果1、原始数据程序编写过程中,采用了电力系统分析教材的4节点、IEEE9节点参数进行了验证。本说明书中仅列出4节点验算过程。4节点测试数据来源于参考文献中的电力系统分析(下册)第61页例11-5,用于检验程序正确性的参考计算结果见67页。对其根本情况总结如下。1)网络连接图图6算例电力系统网络图2)节点参数表4算例节点参数表节点类型节点编号有功功率P无功功率Q电压V电压相角611-0.30-0.180012-0.55-0.1300230.501.10034001.0503)线路参数表5算例线路参数表节点1节点2阻抗R感抗X变压器变比k充电容纳Bc/2120.10.410.01528140.120.510.01920240.080.410.014133100.30.90909104)数据文件data.txt434001.050230.501.10011-0.30-0.180012-0.55-0.13000120.10.410.015283100.30.9090910140.120.510.01920240.080.410.01413图7数据文件格式2、源数据格式说明源数据有功功率、无功功率、电压、阻抗、感抗、对地充电容纳均以标幺值表示。数据文件必须命名为datatxt且与潮流计算程序放置于同一个文件中。数据文件data.txt包含两类参数:节点参数和线路参数。节点数据块与线路数据块之间用数字O作为间隔,即在节点数据块结束后,另起一行输入0,然后再在后面按格式要求录入线路参数1)节点参数节点参数包括:系统节点数NOde、节点功率(有功P、无功Q),节点电压(有效值V、相角Deha)参数组织格式:(1)节点数NOde节点数NOde写在参数文件的开头,如:4说明为四节点系统。(2)功率和电压PQVDeha首先给出节点参数例如:230.501.100第一列数字2说明该节点的类型为2-PV节点;第二列数字3说明该行数据为节点3的参数;后面三列依次为P、Q、V的给定值,给定值为0,说明该项参数未知;第六列为相角5,非平衡节点的6即为PQ迭代的初始相角值,平衡节点的即为给定的相角值。节点功率为各支路输入功率之和,且规定功率流入节点为正,流出为负。故而负荷功率为负值,发电机功率为正值。(3)节点类型的判断根据节点的给定参数可以将节点分为三种类型:1) PQ节点:给定P、Q初始值的节点,用数字代码1表示;2) PV节点:给定P、V初始值的节点,用数字代码2表示;3)平衡节点:没有给定P、Q初始值,仅给定V的初始值,用数字代码3表示;节点本身不分先后,不必刻意按编号大小来列写各节点,只需将每一个节点的参数按格式列写即可。2)线路参数线路参数包括:线路阻抗(R,X)、变压器变比k和对地充电(接地支路)容纳b0每一条线路包括节点号在内共有6个参数,6个参数缺一不可。(1)线路阻抗Z首先给出线路参数例如:140.120.510.01920前两列代表线路两端的节点编号,亦即线路编号14(即41);第三四列代表线路阻抗Z=0.12+j0.5;第五列为变压器变比k;最后一列为线路的对地充电电容的一半,即B/2。k不为0。当k=l那么说明该支路为普通支路;否那么该支路为变压器支路。普通支路没有任何特殊要求,但对于变压器支路,有以下考前须知。(2)变压器支路首先给出变压器线路例如:3100.30.90909101)变比k为转换为变压器支路的标准等值电路(如以下图)后的变比。图8变压器n型等值电路2)变压器线路的编号31有特定含义:3对应节点p,1对应节点q,即变压器支路的编号对节点顺序有要求,p节点编号在前,q节点在后。3) q节点为全系统参考电压侧。程序智能化读取线路数据,用户无需刻意对线路参数进行归类、排序,可随意输入,只要每行数据都各自符合格式要求即可。3、计算结果4、输出数据说明(1)节点参数表节点参数表实际上只是对源数据的重现,用于对源数据的整理以及检验程序是否成功读取原始数据。其中,节点类型列中,BS代表平衡节点、PQ代表PQ节点、PV代表PV节点。参数表后紧随的是对各类节点数目的统计结果。该表属于对原始数据的根本统计处理。(2)节点导纳矩阵节点导纳矩阵以上三角方式按照节点编号顺序输出,括号内部逗号前为导纳Gij、逗号后为容纳Bijo下三角局部可由上三角局部对称得到。(3)潮流计算结果(节点)该局部计算结果包含PQ迭代次数k和节点参数计算结果。迭代次数k在65535次以内均可正常显示。一般PQ迭代不会到达这个数值,否那么可以认为PQ迭代是发散的。节点参数计算结果表,展示了PQ迭代收敛时的计算结果,包括非平衡节点的电压相角8、PQ节点的电压V、PV节点的无功功率Q和平衡节点的功率。(4)潮流计算结果(线路)线路功率计算结果表,展示了PQ迭代收敛时的线路功率计算结果S,包括线路有功功率P和无功功率Q。程序按节点编号顺序仅输出了实际存在的线路或变压器支路上的功率。课设心得参考文献1、何仰赞,温增银.电力系统分析(上、下册)(第三版).武汉:华中科技大学出版社,20022、周全仁,张清益.电网计算与程序设计.长沙:湖南科学技术出版社,19833、杨健需.C语言程序设计.武汉:武汉大学出版社,2006

    注意事项

    本文(电力系统潮流计算C语言程序及说明.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开