电力系统分析实验DOC.docx
- 文档编号:3819822
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:35
- 大小:234.71KB
电力系统分析实验DOC.docx
《电力系统分析实验DOC.docx》由会员分享,可在线阅读,更多相关《电力系统分析实验DOC.docx(35页珍藏版)》请在冰豆网上搜索。
电力系统分析实验DOC
电力系统分析实验报告
院系:
电气学院电气工程系
班级:
姓名:
学号:
联系方式:
实验一:
节点导纳阵和短路实验
1.1自导纳和互导纳的计算原理
1.1.1节电导纳矩阵的定义及物理意义:
节点导纳阵是一个稀疏的对称矩阵。
一般的,对于有n个独立节点的网络,可以列写n个节电方程,或用矩阵缩记写成YV=I的形式,其中矩阵Y称为节点导纳矩阵。
它的对角线元素Yii称为节点i的自导纳,其值等于接于节点i的所有支路导纳之和。
换句话说,自导纳Yii是节点i以外的所有节点都接地时节点i对地的总导纳。
非对角线元素Yij称为节点i、j之间的互导纳,它等于直接连接于节点i、j间的支路导纳的负值。
由此可见,若节点i、j之间不存在直接支路,则Yij=0。
1.1.2节点导纳矩阵的主要特点:
(1)导纳矩阵的元素很容易根据网络接线图和支路参数直观地求得,形成节点导纳矩阵的程序比较简单。
(2)导纳矩阵是稀疏矩阵,其对角线元素一般不为零,但在非对角线元素中则存在不少零元素。
在电力系统的接线图中,一半每个节点同平均3-4个其他节点有直接的支路连接,因此在导纳矩阵的非对角线元素中每行平均仅有3-4个非零元素,其余的都是零元素。
c.自导纳与互导纳的计算原理
一般网络:
一般地,对于有n个独立节点的网络,可以列写n个节电方程:
也可以用矩阵写成:
根据上述节点导纳矩阵的物理意义及定义特点,我们容易得出节点导纳矩阵中元素的计算方法和原理:
对于节点自导纳,有:
即Yii等于与节点i相接的所有支路的导纳之和。
对于节点间互导纳,有:
即Yik等于节点k、i之间的支路导纳的负值。
对于含变压器的支路:
根据∏型等值电路,可以写出节点p、q的自导纳和节点间的互导纳分别为:
1.2给定计算条件及程序如何修改:
给定计算条件:
在2节点处增加一个发电机,其有功功率为5,无功功率为3j;
程序修改方法:
无需修改程序;
原因:
节点导纳矩阵反映了网络元件的结构特点,而与电源或负载无关。
自导纳反应了节点i以外的所有节点都接地时节点i对地的总导纳,互导纳反应了两节点之间的支路导纳负值。
因此,增加发电机,节点导纳矩阵无需修改。
1.3程序代码及计算结果:
程序代码:
#include"stdio.h"
intnNode,nBranch;
/*定义结构体*/
structBranchInfo
{inti;
intj;
floatr;
floatx;
floatyb;
intflag;
floatIR;
floatIX;
}Branch[10];
/*读取数据函数*/
voiddata_read()
{FILE*fp;
fp=fopen("node5.txt","rb");
fscanf(fp,"%d%d\n",&nNode,&nBranch);
printf("%3d%3d\n",nNode,nBranch);
for(intk=0;k { fscanf(fp,"%d%d%f%f%f%d\n",&Branch[k].i,&Branch[k].j,&Branch[k].r,&Branch[k].x,&Branch[k].yb,&Branch[k].flag); printf("%d%d%f%f%f%d\n",Branch[k].i,Branch[k].j,Branch[k].r,Branch[k].x,Branch[k].yb,Branch[k].flag); } fclose(fp); } floatYR[10][10],YB[10][10]; /*计算导纳参数矩阵*/ voidComputeYmatrix() { for(inti=0;i<10;i++) for(intj=0;j<10;j++) { YR[i][j]=0.0f; YB[i][j]=0.0f; } floattemp; intii,jj,flag; floatrr,xx,yb,yb1,yr; for(intk=0;k { ii=Branch[k].i; jj=Branch[k].j; rr=Branch[k].r; xx=Branch[k].x; yb1=Branch[k].yb; flag=Branch[k].flag; temp=rr*rr+xx*xx; yr=rr/temp; yb=-xx/temp; if(flag)//line { YR[ii][ii]+=yr; YR[jj][jj]+=yr; YB[ii][ii]+=yb; YB[jj][jj]+=yb; YB[ii][ii]+=yb1; YB[jj][jj]+=yb1; YR[ii][jj]=-yr; YR[jj][ii]=-yr; YB[ii][jj]=-yb; YB[jj][ii]=-yb; } else//transformer { YR[ii][jj]=0; YR[jj][ii]=0; YB[ii][jj]=1/(xx*yb1); YB[jj][ii]=1/(xx*yb1); if(ii<2||ii>4) { YR[ii][ii]=0; YB[ii][ii]=-(1/xx); } elseif(jj<2||jj>4) { YR[jj][jj]=0; YB[jj][jj]=-(1/xx); } if(ii%2==0) {YB[ii][ii]+=-1/(yb1*yb1*xx); } elseif(jj%2==0) {YB[jj][jj]+=-1/(yb1*yb1*xx); } } } } /*数据输出函数*/ voiddata_output() {FILE*fp; fp=fopen("Ymatrix.txt","wb"); for(inti=1;i<=nNode;i++) { for(intj=1;j<=nNode;j++) { fprintf(fp,"%8.5f+j%8.5f",YR[i][j],YB[i][j]); } fprintf(fp,"\n"); } fclose(fp); } /*主函数*/ voidmain() { 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.00000+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.66123j;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" intnNode,nBranch; /*定义结构体*/ structBranchInfo { inti; intj; floatr; floatx; floatyb; intflag; floatIR; floatIX; }Branch[10]; /*读数据函数*/ voiddata_read() { FILE*fp; fp=fopen("node5.txt","rb"); fscanf(fp,"%d%d\n",&nNode,&nBranch); printf("%3d%3d\n",nNode,nBranch); for(intk=0;k {fscanf(fp,"%d%d%f%f%f%d\n",&Branch[k].i,&Branch[k].j,&Branch[k].r,&Branch[k].x,&Branch[k].yb,&Branch[k].flag); printf("%d%d%f%f%f%d\n",Branch[k].i,Branch[k].j,Branch[k].r,Branch[k].x,Branch[k].yb,Branch[k].flag); } fclose(fp); floatYR[10][10],YB[10][10]; /*计算导纳参数矩阵*/ voidComputeYmatrix() { for(inti=0;i<10;i++) for(intj=0;j<10;j++) { YR[i][j]=0.0f; YB[i][j]=0.0f; } floattemp; intii,jj,flag; floatrr,xx,yb,yb1,yr; for(intk=0;k { ii=Branch[k].i; jj=Branch[k].j; rr=Branch[k].r; xx=Branch[k].x; yb1=Branch[k].yb; flag=Branch[k].flag; temp=rr*rr+xx*xx; yr=rr/temp; yb=-xx/temp; if(flag)//line { YR[ii][ii]+=yr; YR[jj][jj]+=yr; YB[ii][ii]+=yb; YB[jj][jj]+=yb; YB[ii][ii]+=yb1; YB[jj][jj]+=yb1; YR[ii][jj]=-yr; YR[jj][ii]=-yr; YB[ii][jj]=-yb; YB[jj][ii]=-yb; } else//transformer { YR[ii][jj]=0; YR[jj][ii]=0; YB[ii][jj]=1/(xx*yb1); YB[jj][ii]=1/(xx*yb1); if(ii<2||ii>4) { YR[ii][ii]=0; YB[ii][ii]=-(1/xx); } elseif(jj<2||jj>4) { YR[jj][jj]=0; YB[jj][jj]=-(1/xx); } if(ii%2==0) {YB[ii][ii]+=-1/(yb1*yb1*xx); } elseif(jj%2==0) {YB[jj][jj]+=-1/(yb1*yb1*xx); } } } } /*计算短路电流电压函数*/ voidShortcutCurrent() { floatZR[10],ZX[10],vr[10],vx[10]; floatvoltageR[10],voltageX[10]; floatIFR,IFX,temp; inti; ZR[1]=-0.0026; ZR[2]=-0.0027; ZR[3]=0.0052; ZR[4]=-0.0016; ZR[5]=-0.0016; ZX[1]=-9.7241; ZX[2]=-10.2103; ZX[3]=-10.1887; ZX[4]=-10.2074; ZX[5]=-10.6327; ZX[3]+=1; temp=ZR[3]*ZR[3]+ZX[3]*ZX[3]; IFR=1.0*ZR[3]/temp; IFX=-1.0*ZX[3]/temp; for(i=1;i<=nNode;i++) { vr[i]=ZR[i]*IFR-ZX[i]*IFX; vx[i]=ZX[i]*IFR+ZR[i]*IFX; voltageR[i]=1.0-vr[i]; voltageX[i]=-vx[i]; voltageR[3]=0; voltageX[3]=0; } for(intk=0;k { floattemp; intii,jj,flag; floatrr,xx,yb,yb1,yr; ii=Branch[k].i; jj=Branch[k].j; rr=Branch[k].r; xx=Branch[k].x; yb1=Branch[k].yb; flag=Branch[k].flag; temp=rr*rr+xx*xx; yr=rr/temp; yb=-xx/temp; if(flag) {Branch[k].IR=(vr[ii]-vr[jj])*yr-(vx[ii]-vx[jj])*yb; Branch[k].IX=(vr[ii]-vr[jj])*yb+(vx[ii]-vx[jj])*yr; } else { Branch[k].IR=(yb1*vr[ii]-vr[jj])*yr-(yb1*vx[ii]-vx[jj])*yb; Branch[k].IX=(yb1*vr[ii]-vr[jj])*yb+(yb1*vx[ii]-vx[jj])*yr; } printf("I%d%d=%f%f\n",Branch[k].i,Branch[k].j,Branch[k].IR,Branch[k].IX); } } /*打印输出数据函数*/ voiddata_output2() { FILE*fp1; fp1=fopen("Branchcurrent.txt","wb"); for(intk=0;k<=4;k++) { fprintf(fp1,"%9.6f+j%9.6f",Branch[k].IR,Branch[k].IX); fprintf(fp1,"\n"); } fclose(fp1); } /*主函数*/ voidmain() { data_read(); ComputeYmatrix(); data_output(); ShortcutCurrent(); data_output2(); } 1.6短路实验相关计算结果: 实验二: 简单系统的牛顿法潮流计算的上机实验 2.1计算程序框图 2.2程序清单 (1)首先运用C语言程序计算已知网络参数计算节点导纳矩阵; (2)构建函数给电压赋初值; (3)构建函数计算迭代过程中节点不平衡量; (4)构建函数计算雅可比矩阵元素; (5)运用函数将雅克比矩阵变形,计算修正方程; (6)构建函数按公式计算修正各节点的电压; (7)在主函数中构建goto函数,进行迭代关系; (8)结束迭代,计算平衡节点的功率和网络的功率分布; 2.3程序代码 #include"stdio.h" /*定义节点支路结构体*/ structBranchInfo { inti; intj; floatr; floatx; floatyb; intflag; }Branch[10]; /*定义PQN结构体*/ structPQNode { inti; floatp; floatqv; intflag; }nodepq[10]; intpqsum,pvsum,SlackNo; floatslackVoltage,eps; doubleimb[10][2]; doubletempimb[10][2]; floatPP[10][1]; intnNode,nBranch; floatYR[10][10],YB[10][10]; floate0[10],f0[10]; floatw[10][10]; floaterrorMax; /*数据读取函数*/ voiddata_read() { FILE*fp; fp=fopen("node4.txt","rb"); fscanf(fp,"%d%d%d%d%d%f%f\n",&nNode,&nBranch,&pqsum,&pvsum,&SlackNo,&slackVoltage,&eps); printf("%3d%3d%3d%3d%3d%f%f\n",nNode,nBranch,pqsum,pvsum,SlackNo,slackVoltage,eps); for(intk=0;k { fscanf(fp,"%d%d%f%f%f%d\n",&Branch[k].i,&Branch[k].j,&Branch[k].r,&Branch[k].x,&Branch[k].yb,&Branch[k].flag); printf("%d%d%f%f%f%d\n",Branch[k].i,Branch[k].j,Branch[k].r,Branch[k].x,Branch[k].yb,Branch[k].flag); } for(inti=0;i { fscanf(fp,"%d%f%f%d\n",&nodepq[i].i,&nodepq[i].p,&nodepq[i].qv,&nodepq[i].flag); printf("%d%f%f%d\n",nodepq[i].i,nodepq[i].p,nodepq[i].qv,nodepq[i].flag); } fclose(fp); } /*计算导纳参数矩阵*/ voidcomputeYmatrix() { for(inti=0;i<10;i++) for(intj=0;j<10;j++) { YR[i][j]=0.0f; YB[i][j]=0.0f; } floattemp; intii,jj,flag; floatrr,xx,yb,yb1,yr; for(intk=0;k { ii=Branch[k].i; jj=Branch[k].j; rr=Branch[k].r; xx=Branch[k].x; yb1=Branch[k].yb; flag=Branch[k].flag; temp=rr*rr+xx*xx; yr=rr/temp; yb=-xx/temp; if(flag)//line { YR[ii][ii]+=yr; YR[jj][jj]+=yr; YB[ii][ii]+=yb; YB[jj][jj]+=yb; YB[ii][ii]+=yb1; YB[jj][jj]+=yb1; YR[ii][jj]=-yr; YR[jj][ii]=-yr; YB[ii][jj]=-yb; YB[jj][ii]=-yb; } else//transformer { yb1=1/yb1; YR[ii][jj]=0; YR[jj][ii]=0; YB[ii][jj]=1/(xx*yb1); YB[jj][ii]=1/(xx*yb1); if(ii==3) { YR[ii][ii]=0; YB[ii][ii]=-(1/xx); } elseif(jj==3) { YR[jj][jj]=0; YB[jj][jj]=-(1/xx); } if(ii==1) { YB[ii][ii]+=-1/(yb1*yb1*xx); } elseif(jj==1) { YB[jj][jj]+=-1/(yb1*yb1*xx); } } } } /*数据输出函数,输出到Ymatrix.txt文本文档*/ voiddata_output() { FILE*fp; fp=fopen("Ymatrix.txt","wb"); for(inti=1;i<=nNode;i++) { for(intj=1;j<=nNode;j++) { fprintf(fp,"%8.5f+j%8.5f",YR[i][j],YB[i][j]); } fprintf(fp,"\n"); } fclose(fp); } /*电压初始化函数*/ voidinitializeVoltage() { intk,flag; for(k=0;k {flag=nodepq[k].flag; if(flag) {e0[nodepq[k].i]=1.0; f0[nodepq[k].i]=0.0; } else { e0[nodepq[k].i]=nodepq[k].qv; f0[nod
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电力系统 分析 实验 DOC
![提示](https://static.bdocx.com/images/bang_tan.gif)