1、电力系统潮流上机操作实例电力系统潮流上机课程设计任 务 书一、 目的与要求培养学生的电力系统潮流计算机编程能力,掌握计算机潮流计算的相关知识二、 主要内容1 手算: 要求应用牛顿-拉夫逊法或P-Q分解法手算求解,要求精度为0.001。节点1为平衡节点,电压,节点2为PQ节点,负荷功率,节点3是PV节点,两条支路分别为,对地支路。2 编写潮流计算程序,要求如下:2.1据给定的潮流计算任务书整理潮流计算的基础数据:节点的分类,线路模型,等值变压器模型,电压等级的归算,标幺值的计算;2.2基础数据的计算机存储:节点数据,支路数据(包括变压器);2.3用牛顿-拉夫逊法计算;2.4根据所选潮流计算方法画
2、流程图,划分出功能模块,有数据输入模块,导纳阵形成模块,解线性方程组模块,计算不平衡功率模块,形成雅可比矩阵模块,解修正方程模块,计算线路潮流,网损,PV节点无功功率和平衡节点功率,数据输出模块;2.5据上述模块编制程序并上机调试程序,得出潮流计算结果;2.6源程序及其程序中的符号说明集、程序流图简单系统如下图所示,支路数据如下:支路14,27,39为变压器支路,参数为,其余支路为线路支路,参数为,节点数据如下:,,3思考题3.1潮流计算的方法有哪些?各有何特点?3.2如果交给你一个任务,请你用已有的潮流计算软件计算北京城市电网的潮流,你应该做哪些工作?(收集哪些数据,如何整理,计算结果如何分
3、析)3.3设计中遇到的问题和解决的办法。三、 进度计划序号设计内容完成时间备注1教师讲解本次设计的任务及相关知识课程设计开始前2整理潮流计算的原始数据,完成数据的读入读出模块一天3编写及调试形成导纳矩阵模块一天4计算不平衡功率一天5形成系数矩阵(牛顿-拉夫逊法形成雅可比矩阵)一天6解修正方程一天7解修正方程一天8计算线路潮流,网损,PV节点无功功率和平衡节点功率一天9写设计报告一天10验收一天四、 设计成果要求1 手算潮流;2 计算机计算潮流程序流程图;3 完整的潮流程序(包括变量的定义,子程序的调用等,计算结果),并有程序注释。4 回答思考题五、 考核方式总成绩=考勤+设计报告+面试成绩 学
4、生姓名:指导教师: 2009年6月12日/ chaoliu2.cpp: 主项目文件。#include stdafx.h#include #include using namespace System;using namespace std;#include nequation.h struct BusDataStruct int ID; float U,A,PG,QG,PL,QL; int Type;bus9; struct BranchDataStruct int ID; int FisrtBus; int EndBus; float R,X,B,K;Branch9;float YG99,
5、YB99;int main(array args) /-输入数据- ifstream ob(F:yangyuanyuandata.txt); for(int i=0;i busi.ID busi.U busi.A busi.PG busi.QG busi.PL busi.QL busi.Type; for(int i=0;i Branchi.ID Branchi.FisrtBus Branchi.EndBus Branchi.R Branchi.X Branchi.B Branchi.K; ob.close(); /-节点导纳矩阵- for(int i=0;i9;i+) for(int j=0
6、;j9;j+) YGij = YBij = 0.0; for(int i=0;i9;i+) float yG = Branchi.R / ( Branchi.R* Branchi.R + Branchi.X * Branchi.X); float yB =- Branchi.X / ( Branchi.R* Branchi.R + Branchi.X * Branchi.X); int ii = Branchi.FisrtBus - 1; int jj = Branchi.EndBus - 1; YGiiii += yG; YGjjjj += yG; YGiijj += -yG; YGjjii
7、 += -yG; YBiiii += yB + Branchi.B; YBjjjj += yB + Branchi.B; YBiijj += -yB; YBjjii += -yB; ofstream ob2(F:yangyuanyuanYmatric.txt); for(int i=0;i9;i+) for(int j=0;j=0) ob2YGij+YBijjt; else ob2YGijYBijjt; ob2n; ob2.close(); /-设电压初值- float Ue9,Uf9; for (int i=0;i9;i+) Uei=busi.U; Ufi=0.0; /-循环-ofstrea
8、m ob3(f:yangyuanyuandelta.txt);ofstream ob4(f:yangyuanyuanJacobian.txt);ofstream ob6(f:yangyuanyuandeltaEF.txt);ofstream ob7(f:yangyuanyuanU.txt); for (int step=1;step5;step+) ob3 endl endl step step endl; ob4 endl endl step step endl; ob6 endl endl step step endl; ob7 endl endl step step endl;/-求不平
9、衡量- float P9,Q9; for (int i=0;i9;i+) Pi=busi.PG-busi.PL; Qi=busi.QG-busi.QL; float deltaP9,deltaQ9,deltaUU9; float aii9=0,bii9=0; for (int i=0;i9;i+) for (int j=0;j9;j+) aiii+=YGij*Uej-YBij*Ufj; biii+=YGij*Ufj+YBij*Uej; deltaPi=Pi-Uei*aiii-Ufi*biii; deltaQi=Qi-Ufi*aiii+Uei*biii; deltaUUi=busi.U*busi
10、.U-Uei*Uei-Ufi*Ufi; for(int i=0;i9;i+) ob3 deltaP i = deltaPi endl; for(int i=0;i9;i+) ob3 deltaQ i = deltaQi endl; for(int i=0;i9;i+) ob3 deltaUU i = deltaUUi endl; /-形成雅可比矩阵- float H99,N99,J99,L99,R99,S99; for(int i=0;i9;i+) for(int j=0;j9;j+) Hij=0; Nij=0; Jij=0; Lij=0; Rij=0; Sij=0; for(int i=0;
11、i9;i+) for(int j=0;j9;j+) if(i=j) Hij=YGij*Ufi-YBij*Uei+biii; Nij=YGij*Uei+YBij*Ufi+aiii; else Hij=YGij*Ufi-YBij*Uei; Nij=YGij*Uei+YBij*Ufi; for(int i=3;i9;i+) for(int j=0;j9;j+) if(i=j) Jij=-YGij*Uei-YBij*Ufi+aiii; Lij=YGij*Ufi-YBij*Uei-biii; else Jij=-YGij*Uei-YBij*Ufi; Lij=YGij*Ufi-YBij*Uei; for(
12、int i=0;i3;i+) for(int j=0;j9;j+) if(i=j) Rii=2*Ufi; Sii=2*Uei; else Rij=0; Sij=0; float Jacobian1616; for(int i=0;i16;i+) for(int j=0;j16;j+) Jacobianij=0; for(int i=0;i2;i+) for(int j=0;j8;j+) Jacobian2*i2*j=Hi+1j+1; Jacobian2*i2*j+1=Ni+1j+1; Jacobian2*i+12*j=Ri+1j+1; Jacobian2*i+12*j+1=Si+1j+1; f
13、or(int i=2;i8;i+) for(int j=0;j8;j+) Jacobian2*i2*j=Hi+1j+1; Jacobian2*i2*j+1=Ni+1j+1; Jacobian2*i+12*j=Ji+1j+1; Jacobian2*i+12*j+1=Li+1j+1; for(int i=0;i16;i+) for(int j=0;j16;j+) ob4 Jacobianij t; ob4 endl; /-解修正方程- NEquation ob5; ob5.SetSize(16); for(int i=0;i=15;i+) for(int j=0;j=15;j+) ob5.Data
14、(i,j)=Jacobianij; for(int i=2;i8;i+) ob5.Value(2*i)=deltaPi+1; ob5.Value(2*i+1)=deltaQi+1; for(int i=0;i2;i+) ob5.Value(2*i)=deltaPi+1; ob5.Value(2*i+1)=deltaUUi+1; ob5.Run(); float deltaF9,deltaE9; for (int i=0;i8;i+) deltaFi+1=ob5.Value(2*i); deltaEi+1=ob5.Value(2*i+1);deltaF0=deltaE0=0; for(int i
15、=1;i9;i+) ob6deltaFi=deltaFit; ob6deltaEi=deltaEiendlendl; /-电压新值- for(int i=0;i9;i+) Uei+=deltaEi; Ufi+=deltaFi; for(int i=1;i9;i+) ob7Ufi=Ufiendl; ob7Uei=Ueiendlendl; /-循环结束- ob3.close();ob4.close();ob6.close();ob7.close();/-输出1.2.3节点功率-float Pin9=0,Qin9=0;float aii9=0,bii9=0;ofstream ob9(f:yangyu
16、anyuanend.txt);for (int i=0;i9;i+) for (int j=0;j9;j+) aiii+=YGij*Uej-YBij*Ufj; biii+=YGij*Ufj+YBij*Uej; Pini=Uei*aiii+Ufi*biii; Qini=Ufi*aiii-Uei*biii; for (int i=0;i3;i+) ob9 Pini=Pinit;ob9 Qini=Qini endl;/-网损-float Pl99=0,Ql99=0,Pll99=0,Qll99=0; ob9endl; for(int i=0;i9;i+) float yG = Branchi.R /
17、( Branchi.R* Branchi.R + Branchi.X * Branchi.X); float yB =- Branchi.X / ( Branchi.R* Branchi.R + Branchi.X * Branchi.X); int ii = Branchi.FisrtBus - 1; int jj = Branchi.EndBus - 1; float a=Ueii*Ueii+Ufii*Ufii-Ueii*Uejj-Ufii*Ufjj; float b=Ueii*Ufjj-Uejj*Ufii; Pliijj=a*yG+b*yB; Qliijj=b*yG-a*yB-Branc
18、hi.B*(Ueii*Ueii+Ufii*Ufii); float c=Uejj*Uejj+Ufjj*Ufjj-Uejj*Ueii-Ufjj*Ufii; float d=Uejj*Ufii-Ueii*Ufjj; Pljjii=c*yG+d*yB; Qljjii=d*yG-c*yB-Branchi.B*(Uejj*Uejj+Ufjj*Ufjj); Plliijj=Pliijj+Pljjii; Qlliijj=Qliijj+Qljjii; ob9 Plliijj=Plliijjt; ob9 Qlliijj=Qlliijjendl;float Pwhole=0,Qwhole=0;for(int i=0;i9;i+) for(int j=0;j=0) ob9 Swhole=Pwhole+jQwholeendl; else ob9 Swhole=PwholeQwholejendl; ob9.close(); return 0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1