




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电力系统分析实验报告 院 系: 电气学院电气工程系 班 级: 姓 名: 学 号: 联系方式: 实验一:节点导纳阵和短路实验1.1自导纳和互导纳的计算原理 1.1.1节电导纳矩阵的定义及物理意义:节点导纳阵是一个稀疏的对称矩阵。一般的,对于有n个独立节点的网络,可以列写n个节电方程,或用矩阵缩记写成YV=I的形式,其中矩阵Y称为节点导纳矩阵。它的对角线元素Yii称为节点i的自导纳,其值等于接于节点i的所有支路导纳之和。换句话说,自导纳Yii是节点i以外的所有节点都接地时节点i对地的总导纳。非对角线元素Yij称为节点i、j之间的互导纳,它等于直接连接于节点i、j间的支路导纳的负值。由此可见,若节点
2、i、j之间不存在直接支路,则Yij=0。 1.1.2节点导纳矩阵的主要特点: (1)导纳矩阵的元素很容易根据网络接线图和支路参数直观地求得,形成节点导纳矩阵的程序比较简单。 (2)导纳矩阵是稀疏矩阵,其对角线元素一般不为零,但在非对角线元素中则存在不少零元素。在电力系统的接线图中,一半每个节点同平均3-4个其他节点有直接的支路连接,因此在导纳矩阵的非对角线元素中每行平均仅有3-4个非零元素,其余的都是零元素。 c.自导纳与互导纳的计算原理 一般网络: 一般地,对于有n个独立节点的网络,可以列写n个节电方程: 也可以用矩阵写成: 根据上述节点导纳矩阵的物理意义及定义特点,我们容易得出节点导纳矩阵
3、中元素的计算方法和原理:对于节点自导纳,有:即Yii等于与节点i相接的所有支路的导纳之和。对于节点间互导纳,有:即Yik等于节点k、i之间的支路导纳的负值。对于含变压器的支路: 根据型等值电路,可以写出节点p、q的自导纳和节点间的互导纳分别为: 1.2给定计算条件及程序如何修改: 给定计算条件:在2节点处增加一个发电机,其有功功率为5,无功功率为3j; 程序修改方法:无需修改程序; 原因:节点导纳矩阵反映了网络元件的结构特点,而与电源或负载无关。自导纳反应了节点i以外的所有节点都接地时节点i对地的总导纳,互导纳反应了两节点之间的支路导纳负值。因此,增加发电机,节点导纳矩阵无需修改。1.3程序代
4、码及计算结果: 程序代码:#include "stdio.h"int nNode,nBranch;/*定义结构体*/struct BranchInfo int i; int j; float r; float x; float yb; int flag; float IR; float IX;Branch10;/*读取数据函数*/void data_read() FILE* fp; fp=fopen("node5.txt","rb"); fscanf(fp,"%d%dn",&nNode,&nBran
5、ch);printf("%3d %3dn",nNode,nBranch);for(int k =0; k<nBranch;k+)fscanf(fp,"%d%d%f%f%f%dn",&Branchk.i,&Branchk.j,&Branchk.r,&Branchk.x,&Branchk.yb,&Branchk.flag);printf("%d %d %f %f %f %dn",Branchk.i,Branchk.j,Branchk.r,Branchk.x,Branchk.yb,Bra
6、nchk.flag);fclose(fp);float YR1010,YB1010;/*计算导纳参数矩阵*/void ComputeYmatrix() for(int i=0;i<10;i+)for (int j=0;j<10;j+)YRij=0.0f;YBij=0.0f;float temp;int ii,jj,flag;float rr,xx,yb,yb1,yr;for(int k=0;k<nBranch;k+) ii=Branchk.i;jj=Branchk.j;rr=Branchk.r;xx=Branchk.x;yb1=Branchk.yb;flag=Branchk.
7、flag;temp=rr*rr+xx*xx;yr=rr/temp;yb=-xx/temp;if(flag)/line YRiiii+= yr;YRjjjj+= yr; YBiiii+= yb;YBjjjj+= yb; YBiiii+= yb1;YBjjjj+= yb1; YRiijj= -yr;YRjjii= -yr; YBiijj= -yb;YBjjii= -yb;else/transformer YRiijj=0;YRjjii=0; YBiijj=1/(xx*yb1);YBjjii=1/(xx*yb1); if(ii<2|ii>4)YRiiii=0;YBiiii=-(1/xx)
8、;else if(jj<2|jj>4)YRjjjj=0;YBjjjj=-(1/xx); if(ii%2=0) YBiiii+= -1/(yb1*yb1*xx); else if (jj%2=0) YBjjjj+= -1/(yb1*yb1*xx); /*数据输出函数*/void data_output() FILE* fp;fp=fopen("Ymatrix.txt","wb");for(int i=1;i<=nNode;i+)for(int j=1;j<=nNode;j+)fprintf(fp," %8.5f+j %8.
9、5f ",YRij,YBij);fprintf(fp," n");fclose(fp);/*主函数*/void main()data_read();ComputeYmatrix();data_output();计算结果: 1.4短路实验计算条件:(1) 短路实验计算基本原理和方法:(2) 程序框图:(3) 短路实验计算的条件: 短路实验计算的条件为,三号节点故障,过渡阻抗zf为1j。 1.5短路实验相关代码:用MATLAB计算节点阻抗矩阵: 代码:Y=0.00000+-9.52381j,0.00000+9.07030j,0.00000+0.00000j,0.000
10、00+0.00000j,0.00000+0.00000j;0.00000+9.07030j,9.10855+-33.10012j,-4.99896+13.53885j,-4.10959+10.95890j,0.00000+0.00000j;0.00000+0.00000j,-4.99896+13.53885j,11.37290+-31.21523j,-6.37394+17.70538j,0.00000+0.00000j;0.00000+0.00000j,-4.10959+10.95890j,-6.37394+17.70538j,10.48353+-34.52840j,0.00000+5.661
11、23j;0.00000+0.00000j,0.00000+0.00000j,0.00000+0.00000j,0.00000+5.66123j ,0.00000+-5.43478j Z=inv(Y) 运行结果:相关C语言程序代码:#include "stdio.h"int nNode,nBranch;/*定义结构体*/struct BranchInfo int i; int j; float r; float x; float yb; int flag; float IR; float IX;Branch10;/*读数据函数*/void data_read() FILE*
12、fp;fp=fopen("node5.txt","rb"); fscanf(fp,"%d%dn",&nNode,&nBranch);printf("%3d %3dn",nNode,nBranch);for(int k =0; k<nBranch;k+)fscanf(fp,"%d%d%f%f%f%dn",&Branchk.i,&Branchk.j,&Branchk.r,&Branchk.x,&Branchk.yb,&Branch
13、k.flag);printf("%d %d %f %f %f %dn",Branchk.i,Branchk.j,Branchk.r,Branchk.x,Branchk.yb,Branchk.flag);fclose(fp);float YR1010,YB1010;/*计算导纳参数矩阵*/void ComputeYmatrix() for(int i=0;i<10;i+)for (int j=0;j<10;j+) YRij=0.0f;YBij=0.0f;float temp;int ii,jj,flag;float rr,xx,yb,yb1,yr;for(int
14、k=0;k<nBranch;k+) ii=Branchk.i;jj=Branchk.j;rr=Branchk.r;xx=Branchk.x;yb1=Branchk.yb;flag=Branchk.flag;temp=rr*rr+xx*xx;yr=rr/temp;yb=-xx/temp;if(flag)/line YRiiii+= yr;YRjjjj+= yr;YBiiii+= yb;YBjjjj+= yb;YBiiii+= yb1;YBjjjj+= yb1;YRiijj= -yr;YRjjii= -yr;YBiijj= -yb;YBjjii= -yb;else/transformer Y
15、Riijj=0;YRjjii=0;YBiijj=1/(xx*yb1);YBjjii=1/(xx*yb1); if(ii<2|ii>4)YRiiii=0;YBiiii=-(1/xx);else if(jj<2|jj>4)YRjjjj=0;YBjjjj=-(1/xx);if(ii%2=0) YBiiii+= -1/(yb1*yb1*xx); else if (jj%2=0) YBjjjj+= -1/(yb1*yb1*xx);/*计算短路电流电压函数*/void ShortcutCurrent()float ZR10,ZX10,vr10,vx10; float voltage
16、R10,voltageX10; float IFR,IFX,temp;int i; ZR1=-0.0026; ZR2=-0.0027; ZR3=0.0052; ZR4=-0.0016; ZR5=-0.0016; ZX1=- 9.7241; ZX2=-10.2103; ZX3=-10.1887; ZX4=-10.2074; ZX5=-10.6327; ZX3+=1; temp=ZR3*ZR3+ZX3*ZX3; IFR=1.0*ZR3/temp; IFX=-1.0*ZX3/temp;for (i=1;i<=nNode;i+) vri = ZRi*IFR - ZXi*IFX;vxi = ZXi
17、*IFR + ZRi*IFX;voltageRi = 1.0 - vri;voltageXi = -vxi;voltageR3=0;voltageX3=0; for (int k=0;k<nBranch;k+) float temp; int ii,jj,flag; float rr,xx,yb,yb1,yr;ii=Branchk.i;jj=Branchk.j;rr=Branchk.r;xx=Branchk.x;yb1=Branchk.yb;flag=Branchk.flag;temp=rr*rr+xx*xx;yr=rr/temp;yb=-xx/temp; if(flag) Branch
18、k.IR=(vrii-vrjj)*yr-(vxii-vxjj)*yb;Branchk.IX=(vrii-vrjj)*yb+(vxii-vxjj)*yr;elseBranchk.IR=(yb1*vrii-vrjj)*yr-(yb1*vxii-vxjj)*yb;Branchk.IX=(yb1*vrii-vrjj)*yb+(yb1*vxii-vxjj)*yr; printf("I%d%d= %f %f n",Branchk.i,Branchk.j,Branchk.IR,Branchk.IX);/*打印输出数据函数*/void data_output2()FILE* fp1;fp1
19、=fopen("Branchcurrent.txt","wb");for(int k=0;k<=4;k+)fprintf(fp1," %9.6f+j %9.6f ",Branchk.IR,Branchk.IX);fprintf(fp1," n");fclose(fp1);/*主函数*/void main()data_read();ComputeYmatrix();data_output();ShortcutCurrent();data_output2();1.6短路实验相关计算结果:实验二:简单系统的牛顿法潮
20、流计算的上机实验2.1计算程序框图2.2程序清单(1) 首先运用C语言程序计算已知网络参数计算节点导纳矩阵;(2) 构建函数给电压赋初值;(3) 构建函数计算迭代过程中节点不平衡量;(4) 构建函数计算雅可比矩阵元素;(5) 运用函数将雅克比矩阵变形,计算修正方程;(6) 构建函数按公式计算修正各节点的电压;(7) 在主函数中构建goto函数,进行迭代关系;(8) 结束迭代,计算平衡节点的功率和网络的功率分布;2.3程序代码#include "stdio.h"/*定义节点支路结构体*/struct BranchInfo int i; int j; float r; floa
21、t x; float yb; int flag;Branch10;/*定义PQN结构体*/struct PQNodeint i;float p;float qv;int flag;nodepq10;int pqsum,pvsum,SlackNo;float slackVoltage,eps;double imb102;double tempimb102;float PP101;int nNode, nBranch;float YR1010, YB1010;float e010,f010;float w1010;float errorMax; /*数据读取函数*/void data_read()
22、 FILE* fp;fp=fopen("node4.txt","rb"); fscanf(fp,"%d%d%d%d%d%f%fn",&nNode,&nBranch,&pqsum,&pvsum,&SlackNo,&slackVoltage,&eps);printf("%3d %3d %3d %3d %3d %f %fn",nNode,nBranch,pqsum,pvsum,SlackNo,slackVoltage,eps);for(int k =0; k<
23、nBranch;k+)fscanf(fp,"%d%d%f%f%f%dn",&Branchk.i,&Branchk.j,&Branchk.r,&Branchk.x,&Branchk.yb,&Branchk.flag);printf("%d %d %f %f %f %dn",Branchk.i,Branchk.j,Branchk.r,Branchk.x,Branchk.yb,Branchk.flag);for (int i=0;i<nNode-1;i+)fscanf(fp,"%d%f%f%dn&
24、quot;,&nodepqi.i,&nodepqi.p,&nodepqi.qv,&nodepqi.flag); printf("%d %f %f %dn",nodepqi.i,nodepqi.p,nodepqi.qv,nodepqi.flag);fclose(fp);/*计算导纳参数矩阵*/void computeYmatrix() for(int i=0;i<10;i+)for (int j=0;j<10;j+)YRij=0.0f;YBij=0.0f;float temp;int ii,jj,flag;float rr,xx,y
25、b,yb1,yr;for(int k=0;k<nBranch;k+) ii=Branchk.i;jj=Branchk.j;rr=Branchk.r;xx=Branchk.x;yb1=Branchk.yb;flag=Branchk.flag;temp=rr*rr+xx*xx;yr=rr/temp;yb=-xx/temp;if(flag)/line YRiiii+= yr;YRjjjj+= yr;YBiiii+= yb;YBjjjj+= yb;YBiiii+= yb1;YBjjjj+= yb1;YRiijj= -yr;YRjjii= -yr;YBiijj= -yb;YBjjii= -yb;e
26、lse/transformer yb1=1/yb1;YRiijj=0;YRjjii=0;YBiijj=1/(xx*yb1);YBjjii=1/(xx*yb1); if(ii=3)YRiiii=0;YBiiii=-(1/xx); else if(jj=3)YRjjjj=0;YBjjjj=-(1/xx);if(ii=1) YBiiii+= -1/(yb1*yb1*xx); else if (jj=1) YBjjjj+= -1/(yb1*yb1*xx); /*数据输出函数,输出到Ymatrix.txt文本文档*/void data_output()FILE* fp;fp=fopen("Ym
27、atrix.txt","wb");for(int i=1;i<=nNode;i+)for(int j=1;j<=nNode;j+)fprintf(fp," %8.5f+j %8.5f ",YRij,YBij);fprintf(fp," n");fclose(fp);/*电压初始化函数*/void initializeVoltage() int k,flag; for(k=0;k<nNode;k+) flag=nodepqk.flag; if(flag)e0nodepqk.i=1.0; f0nodepqk.i
28、=0.0; elsee0nodepqk.i=nodepqk.qv; f0nodepqk.i=0.0; e0SlackNo=slackVoltage;f0SlackNo=0.0; for(k=1;k<=nNode;k+) printf("%f %fn", e0k,f0k);/*计算DeltaPQV函数*/void ComputeDeltaPQV()int ii,flag;float gg,bb,PP,QQ;float pp,qq,vv;for(int k=0;k<3;k+)flag=nodepqk.flag;if(flag)ii=nodepqk.i;pp=node
29、pqk.p;qq=nodepqk.qv; gg=bb=0;for(int j=1;j<=nNode;j+)gg += YRiij*e0j-YBiij*f0j;bb += YRiij*f0j+YBiij*e0j; PP=e0ii*gg+f0ii*bb;QQ=f0ii*gg-e0ii*bb;imbii0=pp-PP;imbii1=qq-QQ;printf("%f %fn",imbii0,imbii1);elseii=nodepqk.i;pp=nodepqk.p;vv=nodepqk.qv;gg=bb=0;for(int j=1;j<=nNode;j+)gg += Y
30、Riij*e0j-YBiij*f0j;bb += YRiij*f0j+YBiij*e0j; PP=e0ii*gg+f0ii*bb;imbii0=pp-PP;imbii1=vv*vv-e0ii*e0ii-f0ii*f0ii;/*数据输出函数,把数据输出到DealtaPQV.txt文本文档*/void data_output2() FILE* fp;fp=fopen("DealtaPQV.txt","wb");int ii;int k; for(k=0;k<3;k+) ii=nodepqk.i;fprintf(fp,"%f %f n"
31、;,imbii0,imbii1); fprintf(fp," n"); fclose(fp);/*计算雅可比矩阵*/ void J_matrix()int i,flag,j,k,m;double p,qv,temp1,temp2,temp3,temp4;temp1=0;temp2=0;temp3=0;temp4=0;for(j=0;j<=nNode;j+) i=nodepqj.i;flag=nodepqj.flag;p=nodepqj.p;qv=nodepqj.qv;for(m=1;m<=nNode;m+)if(flag=1) /PQ节点if(i=m) /i与j
32、相同for(k=1;k<=nNode;k+)temp1 += (YRik*e0k-YBik*f0k);temp2 += (YRik*f0k+YBik*e0k);temp3=YRii*e0i+YBii*f0i;temp4=YRii*f0i-YBii*e0i;w2*i-12*i-1=-temp1-temp3;w2*i-12*i=-temp2-temp4;w2*i2*i-1=temp2-temp4;w2*i2*i=-temp1+temp3;temp1=0;temp2=0;temp3=0;temp4=0; else w2*i-12*m-1=-YRim*e0i-YBim*f0i;w2*i-12*m
33、=YBim*e0i-YRim*f0i;w2*i2*m-1=YBim*e0i-YRim*f0i;w2*i2*m=YRim*e0i+YBim*f0i; if(flag=0) if(i=m) /i与j相同for(k=1;k<=nNode;k+)temp1 += (YRik*e0k-YBik*f0k);temp2 += (YRik*f0k+YBik*e0k);temp3=YRii*e0i+YBii*f0i;temp4=YRii*f0i-YBii*e0i;w2*i-12*i-1=-temp1-temp3;w2*i-12*i=-temp2-temp4;w2*i2*i-1=-2*e0i;w2*i2*i
34、=-2*f0i;temp1=0;temp2=0;temp3=0;temp4=0; else w2*i-12*m-1=-YRim*e0i-YBim*f0i;w2*i-12*m=YBim*e0i-YRim*f0i;w2*i2*m-1=0;w2*i2*m=0; for(m=1;m<7;m+)for (j=1;j<7;j+)printf("%f ", wmj);printf("n");/*数据输出函数,输出到Jcobi.txt文本文档*/void data_output3() FILE* fp;fp=fopen("Jcobi.txt&quo
35、t;,"wb");int i,j;for (i=1;i<7;i+) for(j=1;j<7;j+) fprintf(fp,"%f ",wij);fprintf(fp,"n"); fclose(fp);/*雅可比矩阵转化*/void Transform_Jacobi()for (int i=1;i<nNode;i+) for(int j=1;j<=6;j+) float t; t=w2*i-1j; w2*i-1j=w2*ij; w2*ij=t; for (i=1;i<=6;i+) for (int j=1;
36、j<=6;j+) printf("%f ",wij); printf("n"); /*数据输出函数,数据输出到Transformed_J.txt文本文档*/void data_output4() FILE* fp; fp=fopen("Transformed_J.txt","wb");for (int i=1;i<=6;i+) for (int j=1;j<=6;j+) fprintf(fp,"%f ",wij); fprintf(fp,"n"); fclo
37、se(fp);float error10;/*高斯判据函数*/void gauss() int i,j,k,m;double t;m=2*nNode-2;for(i=1;i<=nNode;i+) printf("ll%f %f n",imbi1,imbi0);error2*i-1=imbi1;error2*i=imbi0;printf("ee%f %f n",error2*i-1,error2*i);for(i = 1;i <= m; i+)t = -1.0/wii;for(j =i+1;j<=m;j+)wij = wij*t;erro
38、ri = errori*t;for(k=i+1; k<=m;k+)for(j = i+1; j<=m;j+)wkj=wkj+wki*wij;errork = errork+wki*errori;for(i =m;i>=1;i-)for(k=i+1;k<=m;k+)errori= errori+wik*errork;for(i=1;i<=6;i+) printf("%f n",errori);/*电压计算函数*/void VoltageModify()int i; for (i=1;i<=3;i+) e0i=e0i+error2*i-1;
39、f0i=f0i+error2*i; for (i=1;i<=3;i+) printf("%f +j%f n",e0i,f0i); /*数据输出函数,数据输出到error.txt文本文档*/void data_output5() FILE* fp; fp=fopen("error.txt","wb");for(int i=1;i<=6;i+) fprintf(fp,"%f +j%f n",e0i,f0i); fclose(fp);/*误差计算函数*/float Maxerror() /p maxfor(int i=0;i<nNode;i+) if(imbi0<0)te
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司疫情防护管理制度
- 公司行政后期管理制度
- 公司设计岗位管理制度
- 河南省平顶山市2024~2025学年 高三下册开学摸底考试数学试卷附解析
- 广东省中山市2024~2025学年 高二下册第二次统测(4月)数学试卷附解析
- 广东省部分学校2025届高三年级5月月考数学试卷附解析
- 量子退火算法在金融投资组合优化中的应用案例-洞察阐释
- 2024年陕西水务发展集团招聘真题
- 2024年嘉兴市嘉善教育系统招聘教师真题
- 幼儿园水饺的活动方案
- 2025届高三语文最后一课
- 中国数据中心产业发展白皮书023年
- 创新创业创造:职场竞争力密钥智慧树知到期末考试答案章节答案2024年上海对外经贸大学
- 医院检验科实验室生物安全程序文件SOP
- 中外古典园林史-南京林业大学中国大学mooc课后章节答案期末考试题库2023年
- 回弹法检测混凝土强度计算表(自动计算)
- 少儿编程scratch3.0安装使用说明文档
- 行业标准:GB∕T 9254.2-2021 信息技术设备、多媒体设备和接收机 电磁兼容 第2部分:抗扰度要求
- 小班音乐游戏《会跳舞的跳跳糖》原版有声动态PPT课件
- 羽毛球课教学大纲
- YORK(约克)-多联式空调-安装、操作和维护手册
评论
0/150
提交评论