版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 电力系统潮流上机课程设计报告 院 系:电气与电子工程学院 班 级: 电气1108 学 号: 1111550112 学生姓名: 龙日尚 指导教师: 刘宝柱 设计周数: 两周 成 绩: 日期:2014年1月10日 课程 课程设计报告一、课程设计的目的与要求培养学生的电力系统潮流计算机编程能力,掌握计算机潮流计算的相关知识二、设计正文(详细内容见附录)1 手算2 计算机计算3 思考题三、课程设计总结或结论(详细内容见附录)四、参考文献1. 电力系统计算:电子数字计算机的应用,西安交通大学等合编。北京:水利电力出版社;2. 现代电力系统分析,王锡凡主编,科学出版社;3. 电力系统稳态分析,陈珩,中国
2、电力出版社,1995年,第三版;附录(设计流程图、程序、表格、数据等)4. 机算潮流程序及结果/ dierti.cpp : 定义控制台应用程序的入口点。/#include "stdafx.h"struct Line /线路结构体 int Num,NumI,NumJ; /线路号 左节点名 右节点名 float R,X,B,K; /电阻 电抗 电纳 变比(K等于1为普通支路, 不等于1为变压器支路的变比) ;struct Bus /节点结构体 int Num ; float Volt,Phase,GenP,GenQ,LoadP,LoadQ; int Type; ;#includ
3、e"stdio.h"#include"string.h"#include"math.h"#include"stdlib.h"#define NBUS 4#define NLINE 4/* Global variables */int nL,nB,nVA,nSH;float XNBUS;int L;double def2*NBUS;double mn50;void Gauss(double a5050,double b50, int n) /*定义高斯法 */ int JS50; int i,j,k; float d
4、,t,x50; FILE *fp; int L=1; for(i=0;i<50;i+) JSi=0; for(k=0;k<n;k+) d=0.0; for(j=k;j<n;j+) if(fabs(akj)>d) /*在一行中找到一个最大值赋值d,并用JSK记住这个最大值所在的列号*/ d=fabs(akj); JSk=j; if(fabs(d)<0.000001) /*如果d的数值太小,做为被除数将带来很大的误差 */ L=0; else if(JSk!=k)for(i=0;i<n;i+) t=aik; aik=aiJSk; /*进行列交换,让最大值始终在对
5、角元上*/ aiJSk=t; if(L=0)break; for(j=k+1;j<n;j+)akj=akj/akk; /*对角元上的元素消为1*/ bk=bk/akk; for(i=k+1;i<n;i+) for(j=k+1;j<n;j+)aij=aij-aik*akj; /*使下三角阵的元素为0*/ bi=bi-aik*bk; if(fabs(an-1n-1)>0.00001) /*用追赶法,解方程组,求未知数x*/ xn-1=bn-1; for(i=n-2;i>=0;i-) t=0.0; for(j=i+1;j<n;j+)t=t+aij*xj; xi=(
6、bi-t); if(fp=fopen("gauss.txt","w")=NULL) /*将结果写到TXT文件中*/ printf("err");exit(0); for(i=0;i<n;i+) fprintf(fp,"%lf",xi); mni=xi; fprintf(fp,"n"); fclose(fp); if(fp!=NULL) fclose(fp);int _tmain(int argc, _TCHAR* argv)FILE *fp;FILE *fpout;int i,j,k,l,
7、h,n,v;int i1,i2,i3,kp,kq;float d1,d2,d3,d4,d5,d6,r,x,g,b,tt,LL,e,ps,qs,shsh,m;struct Line sLNLINE;struct Bus sBNBUS;float YGNBUS+1NBUS+1,YBNBUS+1NBUS+1;double u502;i1=i2=i3=0;d1=d2=d3=d4=d5=d6=ps=qs=0.0;for(i=0;i<NBUS;i+)if(fp=fopen("in.txt","r")=NULL) printf("Can not ope
8、n the file named 'in.txt' n");exit(0); fscanf(fp,"%d,%d,%d",&nB,&nL,&nSH);for(i=0;i<nB;i+)sBi.Num=sBi.Type=0;sBi.Volt=1.0;sBi.Phase=sBi.GenP=sBi.GenQ=sBi.LoadP=sBi.LoadQ=0.0; fscanf(fp,"%d,%f,%f,%f,%f,%f,%f,%d",&i1,&d1,&d2,&d3,&d4,&
9、amp;d5,&d6,&i2);sBi.Num=i1;sBi.Volt=d1;sBi.Phase=d2;sBi.GenP=d3;sBi.GenQ=d4;sBi.LoadP=d5,sBi.LoadQ=d6;sBi.Type=i2; ;for(i=0;i<nL;i+)sLi.Num=sLi.NumI=sLi.NumJ=0;sLi.R=sLi.X=sLi.B=0.0;sLi.K=1.0;fscanf(fp,"%2d %3d %3d %f %f %f %f",&i1,&i2,&i3,&d1,&d2,&d3,&am
10、p;d4); sLi.Num=i1;sLi.NumI=i2;sLi.NumJ=i3;sLi.R=d1;sLi.X=d2;sLi.B=d3;sLi.K=d4; if(fp!=NULL) fclose(fp);/*Make Y Matrix*/for(i=1;i<nB+1;i+)for(j=1;j<nB+1;j+) YGij=0.0; YBij=0.0; ;for(l=0; l<nL; l+)i=sLl.NumI; j=sLl.NumJ; r=sLl.R; x=sLl.X; d1=r*r+x*x; g=r/d1; b=-x/d1; m=sLl.K; if(fabs(sLl.K-1
11、.0)<0.000001) /普通支路 YGii=YGii+g; YGjj=YGjj+g; YBii=YBii+b+sLl.B; YBjj=YBjj+b+sLl.B; YGij=YGij-g; YGji=YGji-g; YBij=YBij-b; YBji=YBji-b; else /变压器支路YGii=YGii+g/m+g*(m-1)/m; YGjj=YGjj+g/m+g*(1-m)/m/m; YBii=YBii+b/m+b*(m-1)/m; YBjj=YBjj+b/m+b*(1-m)/m/m; YGij=YGij-g/m; YGji=YGji-g/m; YBij=YBij-b/m; Y
12、Bji=YBji-b/m; /* Check the Y matrix */if(fp=fopen("GGBB.txt","w")=NULL)printf("Can not open the file named 'GGBB.txt' n");exit(0);fprintf(fp,"-Y Matrix-n");for(i=1;i<nB+1;i+)for(j=1;j<nB+1;j+)if(fabs(YBij-0.0)>0.000001)fprintf(fp,"Y(%3d,%
13、-3d)=(%10.5f,%10.5f)n",i,j,YGij,YBij);if(fp!=NULL) fclose(fp);/* 节点电压附初值 */for(i=1;i<nB+1;i+)if(sBi-1.Type=0)ui0=0.0;ui1=1.0;else if(sBi-1.Type=1)ui1=sBi-1.Volt;ui0=0.0;else if(sBi-1.Type=2)ui1=sBi-1.Volt;ui0= sBi-1.Phase;for(v=1;v+)/* 迭代次数可以无限大 */* 节点电压附初值 */ printf("迭代第%d次赋予的电压初值为e+jf
14、:n",v);for(i=1;i<nB+1;i+)printf("%lf,%lfn",ui1,ui0);printf("n");printf("n");/* 求偏移量 */double P_P10;double P_Q10;double P_UU10;for(i=1;i<nB+1;i+)if(sBi-1.Type=2)P_Pi=0.0; P_Qi=0.0; P_UUi=1.05;if(sBi-1.Type=0)double tempP=0.0;double tempQ=0.0;for(j=1;j<nB+1;
15、j+)tempP+=YGij*uj1-YBij*uj0;tempQ+=YGij*uj0+YBij*uj1;P_Pi=(sBi-1.GenP-sBi-1.LoadP)-tempP*ui1-tempQ*ui0; P_Qi=(sBi-1.GenQ-sBi-1.LoadQ)-tempP*ui0+tempQ*ui1; P_UUi=0.0;if(sBi-1.Type=1)double tempP=0.0;double tempQ=0.0;for(j=1;j<nB+1;j+)tempP+=YGij*uj1-YBij*uj0;tempQ+=YGij*uj0+YBij*uj1;P_Pi=(sBi-1.Ge
16、nP-sBi-1.LoadP)-tempP*ui1-tempQ*ui0;P_UUi=sBi-1.Volt*sBi-1.Volt-ui1*ui1-ui0*ui0;P_Qi=0.0;/* 偏移量阵 */double P_PQ6;int a=0;for(i=1;i<3;i+)P_PQa=P_Pi;a=a+2;a=1;for(i=1;i<3;i+)P_PQa=P_Qi;a=a+2;P_PQ4=P_P3;P_PQ5=P_UU3;printf("迭代第%d次的偏移量为:n",v);for(i=0;i<6;i+)printf("%f",P_PQi);
17、printf("n");printf("n");printf("n");/* 雅可比矩阵 */double H66,N66,J66,L66,R66,S66,aa6,bb6;for(i=1;i<5;i+) if(fabs(sBi-1.Type-2.0)<0.000001) continue;elsefor(j=1;j<5;j+)if(i!=j)Hij=-YBij*ui1+YGij*ui0; Nij=YGij*ui1+YBij*ui0; Jij=-Nij; Lij=Hij; Rij=0; Sij=0;elseaai=bb
18、i=0.0;for(n=1;n<5;n+)aai+=YGin*un1-YBin*un0;bbi+=YGin*un0+YBin*un1;Hii=-YBii*ui1+YGii*ui0+bbi;Nii=YGii*ui1+YBii*ui0+aai;Jii=-YGii*ui1-YBii*ui0+aai;Lii=YGii*ui0-YBii*ui1-bbi;Rii=2*ui0;Sii=2*ui1;double ss5050;for(i=0;i<6;i+)for(j=0;j<6;j+)ssij=0.0;for(i=1;i<3;i+)for(j=1;j<4;j+)ss2*i-22*
19、j-2=Hij;ss2*i-22*j-1=Nij;ss2*i-12*j-2=Jij;ss2*i-12*j-1=Lij;i=3;for(j=1;j<4;j+)for(j=1;j<4;j+)ss2*i-22*j-2=Hij;ss2*i-22*j-1=Nij;ss2*i-12*j-2=Rij;ss2*i-12*j-1=Sij;printf("迭代第%d次的雅可比矩阵为:n",v);for(i=0;i<6;i+)for(j=0;j<6;j+)printf("%10f",ssij);printf("n");printf(
20、"n");printf("n"); Gauss(ss,P_PQ,6); for(i=1;i<nB;i+)ui0=ui0+mn2*(i-1);ui1=ui1+mn2*i-1;double max;max=fabs(P_PQ0);for(i=0;i<=5;i+)if (max<fabs(P_PQi)max=fabs(P_PQi);if(fabs(max)<0.0001)printf("满足精度要求,迭代终止,迭代次数为%dn",v);printf("n");printf("n"
21、;); break; /* 叠代循环的括号 */printf("最终求得的节点电压值为e+jf:n");for(i=1;i<nB+1;i+)printf("%lf,%lfn",ui1,ui0);printf("n");printf("n");double uu5,Phase5;for(i=1;i<nB+1;i+)uui=sqrt(ui1*ui1+ui0*ui0);Phasei=atan(ui0/ui1);for(i=1;i<nB+1;i+)printf("%lf,%lfn",u
22、ui,Phasei);*计算线路功率和平衡节点 PV节点功率*/ double P5,Q5; double tempP=0.0;double tempQ=0.0;for(i=1;i<nB+1;i+)for(j=1;j<nB+1;j+)tempP+=YGij*uj1-YBij*uj0;tempQ+=YGij*uj0+YBij*uj1; Pi=tempP*ui1+tempQ*ui0; Qi=tempP*ui0-tempQ*ui1; tempP=0.0; tempQ=0.0;for(i=1;i<nB+1;i+)printf("节点%d注入功率为%lf,%lfn"
23、,i,Pi,Qi);/* 支路功率 */ double V42; for(i=1;i<5;i+) for(j=0;j<3;j+) Vij=uij; double sP55,sQ55; double dsq,dsp,dp,sumgen;for(i=1;i<NBUS+1;i+)for(j=1;j<NBUS+1;j+)sPij=0.0;sQij=0.0;for(l=0; l<nL; l+)i=sLl.NumI; j=sLl.NumJ; r=sLl.R; x=sLl.X; d1=r*r+x*x; g=r/d1; b=-x/d1;if(fabs(sLl.K-1.0)<
24、0.000001) /*Normal lines or transformers*/sPij=Vi1*Vi1*g-Vi1*Vj1*(g*cos(Vi0-Vj0)+b*sin(Vi0-Vj0);sQij=-(Vi1*Vi1*sLl.B+Vi1*Vi1*b+Vi1*Vj1*(g*sin(Vi0-Vj0)-b*cos(Vi0-Vj0);sPji=Vj1*Vj1*g-Vi1*Vj1*(g*cos(Vj0-Vi0)+b*sin(Vj0-Vi0);sQji=-(Vj1*Vj1*sLl.B+Vj1*Vj1*b+Vi1*Vj1*(g*sin(Vj0-Vi0)-b*cos(Vj0-Vi0); else /*ab
25、normal transformer ratio*/sPij=Vi1*Vi1*g/sLl.B/sLl.B-Vi1*Vj1*(g*cos(Vi0-Vj0)/sLl.B+b*sin(Vi0-Vj0)/sLl.B);sQij=-(Vi1*Vi1*b/sLl.B/sLl.B+Vi1*Vj1*(g*sin(Vi0-Vj0)/sLl.B-b*cos(Vi0-Vj0)/sLl.B);sPji=Vj1*Vj1*g-Vi1*Vj1*(g*cos(Vj0-Vi0)/sLl.B+b*sin(Vj0-Vi0)/sLl.B);sQji=-(Vi1*Vi1*b+Vi1*Vj1*(g*sin(Vj0-Vi0)/sLl.B-
26、b*cos(Vj0-Vi0)/sLl.B); /* 输电效率 */dsp=P4;dsq=Q4;sumgen=P4;for(i=0;i<NBUS;i+)dsp+=sBi.GenP-sBi.LoadP;dsq+=sBi.GenQ-sBi.LoadQ;sumgen+=sBi.GenP;dp=dsp/sumgen*100;/* 输出功率情况 */if(fp=fopen("功率情况.txt","w")=NULL)printf("Can not open the file named '功率情况.txt' n");exit(0);fprin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论