电力系统潮流上机操作实例.docx

上传人:b****6 文档编号:7801605 上传时间:2023-01-26 格式:DOCX 页数:17 大小:108.16KB
下载 相关 举报
电力系统潮流上机操作实例.docx_第1页
第1页 / 共17页
电力系统潮流上机操作实例.docx_第2页
第2页 / 共17页
电力系统潮流上机操作实例.docx_第3页
第3页 / 共17页
电力系统潮流上机操作实例.docx_第4页
第4页 / 共17页
电力系统潮流上机操作实例.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

电力系统潮流上机操作实例.docx

《电力系统潮流上机操作实例.docx》由会员分享,可在线阅读,更多相关《电力系统潮流上机操作实例.docx(17页珍藏版)》请在冰豆网上搜索。

电力系统潮流上机操作实例.docx

电力系统潮流上机操作实例

《电力系统潮流上机》课程设计

任务书

一、目的与要求

培养学生的电力系统潮流计算机编程能力,掌握计算机潮流计算的相关知识

二、主要内容

1.手算:

要求应用牛顿-拉夫逊法或P-Q分解法手算求解,要求精度为0.001。

节点1为平衡节点,电压

,节点2为PQ节点,负荷功率

,节点3是PV节点,

,两条支路分别为

,对地支路

2.编写潮流计算程序,要求如下:

2.1据给定的潮流计算任务书整理潮流计算的基础数据:

节点的分类,线路模型,等值变压器模型,电压等级的归算,标幺值的计算;

2.2基础数据的计算机存储:

节点数据,支路数据(包括变压器);

2.3用牛顿-拉夫逊法计算;

2.4根据所选潮流计算方法画流程图,划分出功能模块,有数据输入模块,导纳阵形成模块,解线性方程组模块,计算不平衡功率模块,形成雅可比矩阵模块,解修正方程模块,计算线路潮流,网损,PV节点无功功率和平衡节点功率,数据输出模块;

2.5据上述模块编制程序并上机调试程序,得出潮流计算结果;

2.6源程序及其程序中的符号说明集、程序流图

 

简单系统如下图所示,支路数据如下:

支路14,27,39为变压器支路,参数为

其余支路为线路支路,参数为

节点数据如下:

3.思考题

3.1潮流计算的方法有哪些?

各有何特点?

3.2如果交给你一个任务,请你用已有的潮流计算软件计算北京城市电网的潮流,你应该做哪些工作?

(收集哪些数据,如何整理,计算结果如何分析)

3.3设计中遇到的问题和解决的办法。

三、进度计划

序号

设计内容

完成时间

备注

1

教师讲解本次设计的任务及相关知识

课程设计开始前

2

整理潮流计算的原始数据,完成数据的读入读出模块

一天

3

编写及调试形成导纳矩阵模块

一天

4

计算不平衡功率

一天

5

形成系数矩阵(牛顿-拉夫逊法形成雅可比矩阵)

一天

6

解修正方程

一天

7

解修正方程

一天

8

计算线路潮流,网损,PV节点无功功率和平衡节点功率

一天

9

写设计报告

一天

10

验收

一天

四、设计成果要求

1.手算潮流;

2.计算机计算潮流程序流程图;

3.完整的潮流程序(包括变量的定义,子程序的调用等,计算结果),并有程序注释。

4.回答思考题

五、考核方式

总成绩=考勤+设计报告+面试成绩

学生姓名:

指导教师:

2009年6月12日

//chaoliu2.cpp:

主项目文件。

#include"stdafx.h"

#include

#include

usingnamespaceSystem;

usingnamespacestd;

#include"nequation.h"

structBusDataStruct

{

intID;

floatU,A,PG,QG,PL,QL;

intType;

}bus[9];

structBranchDataStruct

{

intID;

intFisrtBus;

intEndBus;

floatR,X,B,K;

}Branch[9];

floatYG[9][9],YB[9][9];

intmain(array

:

String^>^args)

{

//------------------------------------输入数据------------------------------------------------

ifstreamob("F:

\\yangyuanyuan\\data.txt");

for(inti=0;i<9;i++)

{

ob>>bus[i].ID>>bus[i].U>>bus[i].A>>bus[i].PG>>bus[i].QG>>bus[i].PL>>bus[i].QL>>bus[i].Type;

}

for(inti=0;i<9;i++)

{

ob>>Branch[i].ID>>Branch[i].FisrtBus>>Branch[i].EndBus>>Branch[i].R>>Branch[i].X>>Branch[i].B>>Branch[i].K;

}

ob.close();

//------------------------------------节点导纳矩阵------------------------------------------------

for(inti=0;i<9;i++)

for(intj=0;j<9;j++)

{

YG[i][j]=YB[i][j]=0.0;

}

for(inti=0;i<9;i++)

{

floatyG=Branch[i].R/(Branch[i].R*Branch[i].R+Branch[i].X*Branch[i].X);

floatyB=-Branch[i].X/(Branch[i].R*Branch[i].R+Branch[i].X*Branch[i].X);

intii=Branch[i].FisrtBus-1;

intjj=Branch[i].EndBus-1;

YG[ii][ii]+=yG;

YG[jj][jj]+=yG;

YG[ii][jj]+=-yG;

YG[jj][ii]+=-yG;

YB[ii][ii]+=yB+Branch[i].B;

YB[jj][jj]+=yB+Branch[i].B;

YB[ii][jj]+=-yB;

YB[jj][ii]+=-yB;

}

ofstreamob2("F:

\\yangyuanyuan\\Ymatric.txt");

for(inti=0;i<9;i++)

{for(intj=0;j<9;j++)

{if(YB[i][j]>=0)

ob2<

else

ob2<

}

ob2<<"\n";

}

ob2.close();

//------------------------------------设电压初值------------------------------------------------

floatUe[9],Uf[9];

for(inti=0;i<9;i++)

{Ue[i]=bus[i].U;

Uf[i]=0.0;

}

//-------------------------------------循环----------------------------------------------------

ofstreamob3("f:

\\yangyuanyuan\\delta.txt");

ofstreamob4("f:

\\yangyuanyuan\\Jacobian.txt");

ofstreamob6("f:

\\yangyuanyuan\\deltaEF.txt");

ofstreamob7("f:

\\yangyuanyuan\\U.txt");

for(intstep=1;step<5;step++)

{

ob3<

ob4<

ob6<

ob7<

//------------------------------------求不平衡量------------------------------------------------

floatP[9],Q[9];

for(inti=0;i<9;i++)

{P[i]=bus[i].PG-bus[i].PL;

Q[i]=bus[i].QG-bus[i].QL;

}

floatdeltaP[9],deltaQ[9],deltaUU[9];

floataii[9]={0},bii[9]={0};

for(inti=0;i<9;i++)

{for(intj=0;j<9;j++)

{aii[i]+=YG[i][j]*Ue[j]-YB[i][j]*Uf[j];

bii[i]+=YG[i][j]*Uf[j]+YB[i][j]*Ue[j];}

deltaP[i]=P[i]-Ue[i]*aii[i]-Uf[i]*bii[i];

deltaQ[i]=Q[i]-Uf[i]*aii[i]+Ue[i]*bii[i];

deltaUU[i]=bus[i].U*bus[i].U-Ue[i]*Ue[i]-Uf[i]*Uf[i];

}

for(inti=0;i<9;i++)

ob3<<"deltaP["<

for(inti=0;i<9;i++)

ob3<<"deltaQ["<

for(inti=0;i<9;i++)

ob3<<"deltaUU["<

//-----------------------------------形成雅可比矩阵------------------------------------------------

floatH[9][9],N[9][9],J[9][9],L[9][9],R[9][9],S[9][9];

for(inti=0;i<9;i++)

{

for(intj=0;j<9;j++)

{

H[i][j]=0;

N[i][j]=0;

J[i][j]=0;

L[i][j]=0;

R[i][j]=0;

S[i][j]=0;

}

}

for(inti=0;i<9;i++)

{for(intj=0;j<9;j++)

{

if(i==j)

{

H[i][j]=YG[i][j]*Uf[i]-YB[i][j]*Ue[i]+bii[i];

N[i][j]=YG[i][j]*Ue[i]+YB[i][j]*Uf[i]+aii[i];

}

else

{

H[i][j]=YG[i][j]*Uf[i]-YB[i][j]*Ue[i];

N[i][j]=YG[i][j]*Ue[i]+YB[i][j]*Uf[i];

}

}

}

for(inti=3;i<9;i++)

{for(intj=0;j<9;j++)

{

if(i==j)

{

J[i][j]=-YG[i][j]*Ue[i]-YB[i][j]*Uf[i]+aii[i];

L[i][j]=YG[i][j]*Uf[i]-YB[i][j]*Ue[i]-bii[i];

}

else

{

J[i][j]=-YG[i][j]*Ue[i]-YB[i][j]*Uf[i];

L[i][j]=YG[i][j]*Uf[i]-YB[i][j]*Ue[i];

}

}

}

for(inti=0;i<3;i++)

for(intj=0;j<9;j++)

{

if(i==j)

{

R[i][i]=2*Uf[i];

S[i][i]=2*Ue[i];

}

else

{

R[i][j]=0;

S[i][j]=0;

}

}

floatJacobian[16][16];

for(inti=0;i<16;i++)

{for(intj=0;j<16;j++)

{

Jacobian[i][j]=0;

}

}

for(inti=0;i<2;i++)

for(intj=0;j<8;j++)

{Jacobian[2*i][2*j]=H[i+1][j+1];

Jacobian[2*i][2*j+1]=N[i+1][j+1];

Jacobian[2*i+1][2*j]=R[i+1][j+1];

Jacobian[2*i+1][2*j+1]=S[i+1][j+1];

}

for(inti=2;i<8;i++)

for(intj=0;j<8;j++)

{Jacobian[2*i][2*j]=H[i+1][j+1];

Jacobian[2*i][2*j+1]=N[i+1][j+1];

Jacobian[2*i+1][2*j]=J[i+1][j+1];

Jacobian[2*i+1][2*j+1]=L[i+1][j+1];

}

for(inti=0;i<16;i++)

{

for(intj=0;j<16;j++)

{

ob4<

}ob4<

}

//-----------------------------------解修正方程------------------------------------------------

NEquationob5;

ob5.SetSize(16);

for(inti=0;i<=15;i++)

{for(intj=0;j<=15;j++)

{ob5.Data(i,j)=Jacobian[i][j];}

}

for(inti=2;i<8;i++)

{

ob5.Value(2*i)=deltaP[i+1];

ob5.Value(2*i+1)=deltaQ[i+1];

}

for(inti=0;i<2;i++)

{ob5.Value(2*i)=deltaP[i+1];

ob5.Value(2*i+1)=deltaUU[i+1];

}

ob5.Run();

floatdeltaF[9],deltaE[9];

for(inti=0;i<8;i++)

{deltaF[i+1]=ob5.Value(2*i);

deltaE[i+1]=ob5.Value(2*i+1);

deltaF[0]=deltaE[0]=0;

}

for(inti=1;i<9;i++)

{ob6<<"deltaF["<

ob6<<"deltaE["<

}

//------------------------------------电压新值------------------------------------------------

for(inti=0;i<9;i++)

{

Ue[i]+=deltaE[i];

Uf[i]+=deltaF[i];

}

for(inti=1;i<9;i++)

{ob7<<"Uf["<

ob7<<"Ue["<

}

}

//---------------------------------------------循环结束----------------------------------------

ob3.close();

ob4.close();

ob6.close();

ob7.close();

//----------------------------------------------输出1.2.3节点功率-----------------------------------------

floatPin[9]={0},Qin[9]={0};

floataii[9]={0},bii[9]={0};

ofstreamob9("f:

\\yangyuanyuan\\end.txt");

for(inti=0;i<9;i++)

{

for(intj=0;j<9;j++)

{aii[i]+=YG[i][j]*Ue[j]-YB[i][j]*Uf[j];

bii[i]+=YG[i][j]*Uf[j]+YB[i][j]*Ue[j];

Pin[i]=Ue[i]*aii[i]+Uf[i]*bii[i];

Qin[i]=Uf[i]*aii[i]-Ue[i]*bii[i];}

}

for(inti=0;i<3;i++)

{

ob9<<"Pin["<

ob9<<"Qin["<

//----------------------------------------------网损-------------------------------------------------

floatPl[9][9]={0},Ql[9][9]={0},Pll[9][9]={0},Qll[9][9]={0};

ob9<

for(inti=0;i<9;i++)

{floatyG=Branch[i].R/(Branch[i].R*Branch[i].R+Branch[i].X*Branch[i].X);

floatyB=-Branch[i].X/(Branch[i].R*Branch[i].R+Branch[i].X*Branch[i].X);

intii=Branch[i].FisrtBus-1;

intjj=Branch[i].EndBus-1;

floata=Ue[ii]*Ue[ii]+Uf[ii]*Uf[ii]-Ue[ii]*Ue[jj]-Uf[ii]*Uf[jj];

floatb=Ue[ii]*Uf[jj]-Ue[jj]*Uf[ii];

Pl[ii][jj]=a*yG+b*yB;

Ql[ii][jj]=b*yG-a*yB-Branch[i].B*(Ue[ii]*Ue[ii]+Uf[ii]*Uf[ii]);

floatc=Ue[jj]*Ue[jj]+Uf[jj]*Uf[jj]-Ue[jj]*Ue[ii]-Uf[jj]*Uf[ii];

floatd=Ue[jj]*Uf[ii]-Ue[ii]*Uf[jj];

Pl[jj][ii]=c*yG+d*yB;

Ql[jj][ii]=d*yG-c*yB-Branch[i].B*(Ue[jj]*Ue[jj]+Uf[jj]*Uf[jj]);

Pll[ii][jj]=Pl[ii][jj]+Pl[jj][ii];

Qll[ii][jj]=Ql[ii][jj]+Ql[jj][ii];

ob9<<"Pll["<

ob9<<"Qll["<

floatPwhole=0,Qwhole=0;

for(inti=0;i<9;i++)

{

for(intj=0;j<9;j++)

{Pwhole+=Pll[i][j];

Qwhole+=Qll[i][j];}

}

if(Qwhole>=0)

ob9<<"Swhole="<

else

ob9<<"Swhole="<

ob9.close();

return0;

}

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

当前位置:首页 > 高等教育 > 管理学

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

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