电力系统分析实验DOCWord文档格式.docx

上传人:b****4 文档编号:16726073 上传时间:2022-11-25 格式:DOCX 页数:35 大小:234.71KB
下载 相关 举报
电力系统分析实验DOCWord文档格式.docx_第1页
第1页 / 共35页
电力系统分析实验DOCWord文档格式.docx_第2页
第2页 / 共35页
电力系统分析实验DOCWord文档格式.docx_第3页
第3页 / 共35页
电力系统分析实验DOCWord文档格式.docx_第4页
第4页 / 共35页
电力系统分析实验DOCWord文档格式.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

电力系统分析实验DOCWord文档格式.docx

《电力系统分析实验DOCWord文档格式.docx》由会员分享,可在线阅读,更多相关《电力系统分析实验DOCWord文档格式.docx(35页珍藏版)》请在冰豆网上搜索。

电力系统分析实验DOCWord文档格式.docx

对于节点间互导纳,有:

即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<

nBranch;

k++)

{

%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);

%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<

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>

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()

Ymatrix.txt"

wb"

for(inti=1;

=nNode;

for(intj=1;

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语言程序代码:

inti;

/*读数据函数*/

FILE*fp;

{fscanf(fp,"

YR[i][j]=0.0f;

/*计算短路电流电压函数*/

voidShortcutCurrent()

floatZR[10],ZX[10],vr[10],vx[10];

floatvoltageR[10],voltageX[10];

floatIFR,IFX,temp;

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;

{

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;

floattemp;

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;

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"

=4;

fprintf(fp1,"

%9.6f+j%9.6f"

Branch[k].IR,Branch[k].IX);

fclose(fp1);

ShortcutCurrent();

data_output2();

1.6短路实验相关计算结果:

实验二:

简单系统的牛顿法潮流计算的上机实验

2.1计算程序框图

2.2程序清单

(1)首先运用C语言程序计算已知网络参数计算节点导纳矩阵;

(2)构建函数给电压赋初值;

(3)构建函数计算迭代过程中节点不平衡量;

(4)构建函数计算雅可比矩阵元素;

(5)运用函数将雅克比矩阵变形,计算修正方程;

(6)构建函数按公式计算修正各节点的电压;

(7)在主函数中构建goto函数,进行迭代关系;

(8)结束迭代,计算平衡节点的功率和网络的功率分布;

2.3程序代码

/*定义节点支路结构体*/

/*定义PQN结构体*/

structPQNode

floatp;

floatqv;

}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;

/*数据读取函数*/

node4.txt"

%d%d%d%d%d%f%f\n"

nBranch,&

pqsum,&

pvsum,&

SlackNo,&

slackVoltage,&

eps);

%3d%3d%3d%3d%3d%f%f\n"

nNode,nBranch,pqsum,pvsum,SlackNo,slackVoltage,eps);

fscanf(fp,"

printf("

for(inti=0;

nNode-1;

%d%f%f%d\n"

nodepq[i].i,&

nodepq[i].p,&

nodepq[i].qv,&

nodepq[i].flag);

%d%f%f%d\n"

nodepq[i].i,nodepq[i].p,nodepq[i].qv,nodepq[i].flag);

voidcomputeYmatrix()

yb1=1/yb1;

if(ii==3)

elseif(jj==3)

if(ii==1)

{

YB[ii][ii]+=-1/(yb1*yb1*xx);

elseif(jj==1)

YB[jj][jj]+=-1/(yb1*yb1*xx);

/*数据输出函数,输出到Ymatrix.txt文本文档*/

/*电压初始化函数*/

voidinitializeVoltage()

intk,flag;

for(k=0;

nNode;

{flag=nodepq[k].flag;

{e0[nodepq[k].i]=1.0;

f0[nodepq[k].i]=0.0;

else

e0[nodepq[k].i]=nodepq[k].qv;

f0[nod

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1