电力系统潮流上机操作实例.docx
- 文档编号:7801605
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:17
- 大小:108.16KB
电力系统潮流上机操作实例.docx
《电力系统潮流上机操作实例.docx》由会员分享,可在线阅读,更多相关《电力系统潮流上机操作实例.docx(17页珍藏版)》请在冰豆网上搜索。
电力系统潮流上机操作实例
《电力系统潮流上机》课程设计
任务书
一、目的与要求
培养学生的电力系统潮流计算机编程能力,掌握计算机潮流计算的相关知识
二、主要内容
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; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电力系统 潮流 上机 操作 实例
![提示](https://static.bdocx.com/images/bang_tan.gif)