搜档网
当前位置:搜档网 › 华北电力大学潮流计算上机实验概要

华北电力大学潮流计算上机实验概要

华北电力大学潮流计算上机实验概要
华北电力大学潮流计算上机实验概要

院系:电气与电子工程学院

班级:电气1006

学号

学生姓名:

指导教师:孙英云

设计周数:两周

成绩:

日期:2013 年1 月10 日

一、 目的与要求

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

二、 主要内容

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

为平衡节点,电压?∠=00.11U ,节点2为PQ 节点,负荷功率6.08.0~

2

j S +=,节点3是PV 节点,1.1,4.033==U P ,两条支路分别为

04.001.013j Z +=,

2.005.012j Z +=,对地支路3

3.030j y =。

2. 计算机计算(详见附录)

3. 思考题

3.1潮流计算的方法有哪些?各有何特点?

答:潮流计算分为手算和机算两大类,其中机算又有高斯-赛德尔迭代法、牛顿-拉夫逊迭代法、P-Q 分解法等算法。 迭特点:

手算求解潮流一般只用在简单的网络中,其计算量大,对于多节点的网络用手算一般难以解决问题,但通过手算可以加深物理概念的理解,还可以在运用计算机计算前以手算求取某些原始数据。

高斯-赛德尔迭代法:算法简单,对初值的要求不高,但需要迭代的次数多,收敛的速度慢,在早期的潮流计算程序中应用很多,之后逐渐被牛顿-拉夫逊迭代法所取代,但仍可作为计算程序前几次迭代的算法,以弥补后者对初值要求高的缺点。

牛顿-拉夫逊迭代法:是常用的解非线性方程组的方法,也是当前广泛采用的计算潮流的方法,其收敛速度快,几次迭代就可以得到最终的结果。但其缺点是要求初值的选择得比较接近它们的精确值,否则迭代过程可能不收敛。

P-Q 分解法潮流计算:派生于以极坐标表示时的牛顿-拉夫逊法,其根据电力系统的特点,对后者的修正方程做了简化,P-Q 分解法的系数矩阵B ’和B ”代替了牛拉法中的雅可比矩阵J ,阶数降低,其中的元素在迭代过程中不发生变化,而且元素对称,这些都大大提高了运算速度,而且精确度几乎不受影响。

P-Q 分解法的收敛特性接近于直线,而牛顿-拉夫逊的收敛速度要比P-Q 分解法快, 但是由于牛顿-拉夫逊每次迭代都要形成雅客比矩阵,所以一次代的时间比P-Q 分解法长。

3.2如果交给你一个任务,请你用已有的潮流计算软件计算北京城市电网的潮

流,你应该做哪些工作?(收集哪些数据,如何整理,计算结果如何分析 答:

(1)所需要收集的数据:

A.电网中所有节点的数据:

a.各节点的类型,包括平衡节点、PV 节点、PQ 节点;b. 对于平衡节点要了解节点的电压大小相位、及节点所能提供的最大最小有功无功功率;c. PV节点要知道节点电压大小注入有功功率及节点所能提供的最大和最小无功功.率;d. PQ节点要知道节点的注入有功和无功功率

B.电网中所有支路的数据:

a.各支路类型,即是否含有变压器;

b.各支路的电阻、电感、电纳;

c.各变压器的变比。(2)数据整理:将上述数据资料进行分类整理,并为每个节点及支路编上编号。将整理的结果写成本实验中所要求的格式(原始数据的 txt 文档),再用本实验所编制的程序进行求解,得到各节点电压、相位,各线路传输功率、损耗,平衡节点注入功率等数值。(3)计算结果分析:可以大致了解整个电网的运行状况并按照电力系统知识依次进行所需的调整。如调节各节点电压的大小以防止超出规定限度,调整各线路的有功无功分布状况分析整个系统的网损是否达到标准等。

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

1)设计中遇到是对C++部分指令的不熟悉,通过老师讲解、看书和向他人询问减小了编程语言上的障碍;

2)在设计中,由于一开始知识脉络以及思维脉络都不是很清晰,导致在程序设计过程中的各种误操作,例如在写不平衡量的时候对定义数组的下脚标标注不清。最好经过老师的教导和我们自己的仔细排查,终于排除掉各类错误,得到结果。

在形成雅克比矩阵的过程中,存在雅克比矩阵的坐标与节点的坐标对应和转化的问题。

附录(设计流程图、程序、表格、数据等)一、流程图

二、程序

/*

Purpose: for undergraduate power flow calculation course Example2

Author: Sun Yingyun

Date: 9-Jun-2010

Version: 1.0.0

This class is to help the students to solve pf problems. */

#include"pf.h"

using namespace std;

pf::pf(void)

{

m_Line = NULL;

m_Bus = NULL;

m_Bus_newIdx = NULL;

m_pv_Num = 0;

m_sw_Num = 0;

m_pq_Num = 0;

}

pf::~pf(void)

{

if (m_Line!=NULL) delete [] m_Line;

if (m_Bus!=NULL) delete [] m_Bus;

if (m_Bus_newIdx!=NULL) delete[] m_Bus_newIdx;

int pf::readDataFromFile(string fileName)

{

string strLine,strTemp;

ifstream fin;

// open file for read;

fin.open(fileName.c_str());

if(!fin.fail())

{

// 1. read SBase;

getline(fin,strLine);

strTemp.assign(strLine,31,6);

m_SBase = atof(strTemp.c_str());

// 2. read Bus Data here ;

// 2.1 read Bus num;

getline(fin,strLine);

size_t pos_begin, pos_end;

pos_begin = strLine.find("FOLLOWS");

pos_begin = pos_begin + size_t(10);

pos_end = strLine.find("ITEM");

strTemp = strLine.substr(pos_begin, pos_end - pos_begin);

m_Bus_Num = atoi(strTemp.c_str());//读入节点个数

cout<<"系统共有"<

cout<<"Type"<

<<"LoadP"<

<<"GenP"<

<

// 2.2 read each bus data here

// allocate memory for m_Bus(为节点数据定义数组)

m_Bus = new Bus[m_Bus_Num]; //建立结构体保存节点数据

m_Bus_newIdx = new int[m_Bus_Num];

for (int i = 0; i

{

getline(fin,strLine);

strTemp = strLine.substr(0,4);

// read bus num

m_Bus[i].Num = atoi(strTemp.c_str());

// read bus Name;

strTemp = strLine.substr(5,7);

m_Bus[i].Name = strTemp;

// read bus type PQ: Type = 1; PV: Type = 2; swing: Type = 3;

strTemp = strLine.substr(24,2);

if (atoi(strTemp.c_str())<=1)

{

m_Bus[i].Type = 1;

m_pq_Num ++;

}

else if(atoi(strTemp.c_str())==2)

{

m_Bus[i].Type = 2;

m_pv_Num ++;

}

else if(atoi(strTemp.c_str())==3)

{

m_Bus[i].Type = 3;

m_sw_Num ++;

}

strTemp = strLine.substr(27,6);

m_Bus[i].V = atof(strTemp.c_str());//读入节点电压V

strTemp = strLine.substr(33,6);

m_Bus[i].theta = atof(strTemp.c_str());//读入节点相角

strTemp = strLine.substr(39,9);

m_Bus[i].LoadP = atof(strTemp.c_str());//读入节点有功负荷

strTemp = strLine.substr(49,10);

m_Bus[i].LoadQ = atof(strTemp.c_str());//读入节点无功负荷

strTemp = strLine.substr(59,8);

m_Bus[i].GenP = atof(strTemp.c_str());//读入节点电压V

strTemp = strLine.substr(67,8);

m_Bus[i].GenQ= atof(strTemp.c_str());//读入节点电压V

strTemp = strLine.substr(114,8);

m_Bus[i].ShuntB = atof(strTemp.c_str());//input into ShuntB in system strTemp = strLine.substr(106,8);

m_Bus[i].ShuntG = atof(strTemp.c_str());//input into ShuntG in system

cout<

<

<

}

// 3. read Line Data here ;

// 3.1 read Line num;

getline(fin,strLine);

getline(fin,strLine);

pos_begin = strLine.find("FOLLOWS");

pos_begin = pos_begin + size_t(10);

pos_end = strLine.find("ITEM");

strTemp = strLine.substr(pos_begin, pos_end - pos_begin);

m_Line_Num = atoi(strTemp.c_str());

m_Line = new Line[m_Line_Num];

for (int i = 0; i

{

getline(fin,strLine);

strTemp = strLine.substr(0,4);

m_Line[i].NumI = atoi(strTemp.c_str());

strTemp = strLine.substr(5,4);

m_Line[i].NumJ = atoi(strTemp.c_str());// read line

strTemp = strLine.substr(19,10);

m_Line[i].R= atof(strTemp.c_str());// read bus R;

strTemp = strLine.substr(29,10);

m_Line[i].X= atof(strTemp.c_str());// read bus X;

strTemp = strLine.substr(40,11);

m_Line[i].B= atof(strTemp.c_str());// read bus B;

m_Line[i].K=1; // read bus K;

strTemp = strLine.substr(18,1);

m_Line[i].Type= atoi(strTemp.c_str());// read bus Type

}

// 4. close the file;

fin.close();

}

else

cout<<"file open fail!"<

return 0;

}

//重新编号pq、pv、sw

int pf::initPFData()

{

// according to Page 132 of ref book 3,

// reindex the bus num ase the sequence [PQ PV SW];

int iPQ,iPV,iSW;

iPQ = 0;

iPV = 0;

iSW = 0;

int i;

for( i = 0; i

{

switch (m_Bus[i].Type)

{

case 1:

m_Bus_newIdx[i] = iPQ;

iPQ++;

break;

case 2:

m_Bus_newIdx[i] = iPV + m_pq_Num;

iPV++;

break;

case 3:

m_Bus_newIdx[i] = iSW + m_pq_Num + m_pv_Num;

iSW++;

break;

}

}

for (i =0; i

cout<

//分别给出jacobi矩阵和B\G矩阵的空间

m_Jacobi.setSize(2*m_pq_Num+m_pv_Num,2*m_pq_Num+m_pv_Num);

m_Matrix_B.setSize( m_Bus_Num,m_Bus_Num);

m_Matrix_G.setSize(m_Bus_Num,m_Bus_Num);

return 0;

}

//????

int pf::getBusIdx(int busNum)

{

// return the index of bus from busNum

int i,idx = -1;

for (i = 0; i

{

if (m_Bus[i].Num == busNum)

idx = i;

}

return idx;

}

//做jacobi矩阵

int pf::makeYMatrix()

{

//做导纳矩阵

int ii,jj;

double YG,YB;

double Z2;

for(int i=0;i

{

ii=m_Line[i].NumI-1;

jj=m_Line[i].NumJ-1;

Z2= m_Line[i].R*m_Line[i].R+ m_Line[i].X*m_Line[i].X;

YG=m_Line[i].R/Z2;

YB=-1*m_Line[i].X/Z2;

m_Matrix_G(ii,ii)+=YG;

m_Matrix_B(ii,ii)+=YB+m_Line[i].B/2;

m_Matrix_G(jj,jj)+=YG;

m_Matrix_B(jj,jj)+=YB+m_Line[i].B/2;

m_Matrix_G(ii,jj)-=YG;

m_Matrix_B(ii,jj)-=YB;

m_Matrix_G(jj,ii)-=YG;

m_Matrix_B(jj,ii)-=YB;

}

m_Matrix_B.outputMatrix();

m_Matrix_G.outputMatrix();

return 0;

}

//做jacobi矩阵

int pf::makeJacobi()

{

// TODO

int i,j,k=0,l=0,n=0,h;

struct Bus a[9];

int b[9];

for(i=0;i

{

if(m_Bus[i].Type==1)

{

a[k]=m_Bus[i];

b[k]=i;

k++;

}

if(m_Bus[i].Type==2)

{

a[l+m_pq_Num]=m_Bus[i];

b[l+m_pq_Num]=i;

l++;

}

if(m_Bus[i].Type==3)

{

a[n+m_pq_Num+m_pv_Num]=m_Bus[i];

b[n+m_pq_Num+m_pv_Num]=i;

n++;

}

}

//计算jacobi矩阵中A区元素

for(i=0;i

{

for(j=0;j

{

if(i==j)

{

for(h=0;h

{

if(h!=i)

{

m_Jacobi(2*i,2*i)+=a[i].V*a[h].V*(m_Matrix_G(b[i],b[h])*sin(a[i].theta*3.14/180-a[h].th eta*3.14/180)-m_Matrix_B(b[i],b[h])*cos(a[i].theta*3.14/180-a[h].theta*3.14/180));

m_Jacobi(2*i,2*i+1)-=a[i].V*a[h].V*(m_Matrix_G(b[i],b[h])*cos(a[i].theta*3.14/180-a[h].theta *3.14/180)+m_Matrix_B(b[i],b[h])*sin(a[i].theta*3.14/180-a[h].theta*3.14/180));

m_Jacobi(2*i+1,2*i)-=a[i].V*a[h].V*(m_Matrix_G(b[i],b[h])*cos(a[i].theta*3.14/180-a[h].theta *3.14/180)+m_Matrix_B(b[i],b[h])*sin(a[i].theta*3.14/180-a[h].theta*3.14/180));

m_Jacobi(2*i+1,2*i+1)-=a[i].V*a[h].V*(m_Matrix_G(b[i],b[h])*sin(a[i].theta*3.14/180-a[h].the ta*3.14/180)-m_Matrix_B(b[i],b[h])*cos(a[i].theta*3.14/180-a[h].theta*3.14/180));

}

else

continue;

}

m_Jacobi(2*i,2*i+1)-=2*a[i].V*a[i].V*m_Matrix_G(b[i],b[i]);

m_Jacobi(2*i+1,2*i+1)+=2*a[i].V*a[i].V*m_Matrix_B(b[i],b[i]);

}

else

{

m_Jacobi(2*i,2*j)=-a[i].V*a[j].V*(m_Matrix_G(b[i],b[j])*sin(a[i].theta*3.14/180-a[j].th eta*3.14/180)-m_Matrix_B(b[i],b[j])*cos(a[i].theta*3.14/180-a[j].theta*3.14/180));

m_Jacobi(2*i,2*j+1)=-a[i].V*a[j].V*(m_Matrix_G(b[i],b[j])*cos(a[i].theta*3.14/180-a[j]. theta*3.14/180)+m_Matrix_B(b[i],b[j])*sin(a[i].theta*3.14/180-a[j].theta*3.14/180));

m_Jacobi(2*i+1,2*j)=a[i].V*a[j].V*(m_Matrix_G(b[i],b[j])*cos(a[i].theta*3.14/180-a[j].theta* 3.14/180)+m_Matrix_B(b[i],b[j])*sin(a[i].theta*3.14/180-a[j].theta*3.14/180));

m_Jacobi(2*i+1,2*j+1)=-a[i].V*a[j].V*(m_Matrix_G(b[i],b[j])*sin(a[i].theta*3.14/180-a[j ].theta*3.14/180)-m_Matrix_B(b[i],b[j])*cos(a[i].theta*3.14/180-a[j].theta*3.14/180));

}

}

}

//计算jacobi矩阵中B区的元素

for(i=k;i

{

for(j=k;j

{

if(i==j)

{

for(h=0;h

{

if(i!=h)

{

m_Jacobi(i+k,i+k)+=a[i].V*a[h].V*(m_Matrix_G(b[i],b[h])*sin(a[i].theta*3.14/180-a[h].th eta*3.14/180)-m_Matrix_B(b[i],b[h])*cos(a[i].theta*3.14/180-a[h].theta*3.14/180));

}

else

continue;

}

}

else

m_Jacobi(k+i,k+j)=-a[i].V*a[j].V*(m_Matrix_G(b[i],b[j])*sin(a[i].theta*3.14/180-a[j].th eta*3.14/180)-m_Matrix_B(b[i],b[j])*cos(a[i].theta*3.14/180-a[j].theta*3.14/180));

}

}

//计算jacobi矩阵中C区元素

for(i=0;i

{

for(j=k;j

{

m_Jacobi(2*i,k+j)=-a[i].V*a[j].V*(m_Matrix_G(b[i],b[j])*sin(a[i].theta*3.14/180-a[j].th eta*3.14/180)-m_Matrix_B(b[i],b[j])*cos(a[i].theta*3.14/180-a[j].theta*3.14/180));

m_Jacobi(2*i+1,k+j)=a[i].V*a[j].V*(m_Matrix_G(b[i],b[j])*cos(a[i].theta*3.14/180-a[j].t heta*3.14/180)+m_Matrix_B(b[i],b[j])*sin(a[i].theta*3.14/180-a[j].theta*3.14/180));

}

}

//计算jacobi矩阵中D区元素

for(i=k;i

{

for(j=0;j

{

m_Jacobi(k+i,2*j)=-a[i].V*a[j].V*(m_Matrix_G(b[i],b[j])*sin(a[i].theta*3.14/180-a[j].th eta*3.14/180)-m_Matrix_B(b[i],b[j])*cos(a[i].theta*3.14/180-a[j].theta*3.14/180));

m_Jacobi(k+i,2*j+1)=-a[i].V*a[j].V*(m_Matrix_G(b[i],b[j])*cos(a[i].theta*3.14/180-a[j]. theta*3.14/180)+m_Matrix_B(b[i],b[j])*sin(a[i].theta*3.14/180-a[j].theta*3.14/180));

}

}

m_Jacobi.outputMatrix();

return 0;

}

int pf::solveLF()

{

// TODO

int i;

// 1. initialize

for ( i = 0; i

{

if(m_Bus[i].Type==1)

{

m_Bus[i].V = 1;

m_Bus[i].theta = 0;

}

if(m_Bus[i].Type==2)

{

m_Bus[i].theta = 0;

}

}

// 2. iterate

double *bph=new double[2*m_pq_Num+m_pv_Num];

int maxIter = 20;

double epsilon=0.000001;

for(int iter=0;iter

{

int k=0,l=0;

// 2.1 calDeltaS

calcDeltaS(bph);

double error=0;

for(int k=0;k<2*m_pq_Num+m_pv_Num;k++)

{

error+=bph[k]*bph[k];

}

//cout<<"误差"<

if(error

{

//cout<

break;

}

this->makeJacobi();

// 2.2 calJacobi;

m_Jacobi.solve(2*m_pq_Num+m_pv_Num,bph);

for ( i = 0; i<2*m_pq_Num+m_pv_Num; i++)

{

for ( int j = 0; j<2*m_pq_Num+m_pv_Num;j++)

{

m_Jacobi(i,j)=0.0;

}

}

// 2.4 update variables

for ( i = 0; i

{

if(m_Bus[i].Type==1)

{

m_Bus[i].V -=bph[2*k+1]*m_Bus[i].V;

m_Bus[i].theta -= bph[2*k]*180/3.14;

k++;

}

if(m_Bus[i].Type==2)

{

m_Bus[i].theta -= bph[2*m_pq_Num+l]*180/3.14;

l++;

}

}

outputResult();

//cout<

}

// 3. output the result.

outputResult();

return 0;

}

int pf::calcDeltaS(double* bph)

{

// TODO

// calculate the active and reactive power equation and store the result to the double array bph

double deltaP,deltaQ;

double Ui,Uj;

double thetai,thetaj;

int k=0,l=0;

for(int i=0;i

{

Ui=m_Bus[i].V;

thetai=m_Bus[i].theta*3.14/180;

deltaP=(m_Bus[i].GenP-m_Bus[i].LoadP)/100;

deltaQ=(m_Bus[i].GenQ-m_Bus[i].LoadQ)/100;

for(int j=0;j

{

Uj=m_Bus[j].V;

thetaj=m_Bus[j].theta*3.14/180;

if(m_Bus[i].Type==1)

{

deltaP-=Ui*Uj*(m_Matrix_G(i,j)*cos(thetai-thetaj)+m_Matrix_B(i,j)*sin(thetai-thetaj));

deltaQ-=Ui*Uj*(m_Matrix_G(i,j)*sin(thetai-thetaj)-m_Matrix_B(i,j)*cos(thetai-thetaj));

}

if(m_Bus[i].Type==2)

{

deltaP-=Ui*Uj*(m_Matrix_G(i,j)*cos(thetai-thetaj)+m_Matrix_B(i,j)*sin(thetai-thetaj));

}

}

if(m_Bus[i].Type==1)

{

bph[k]=deltaP;

bph[++k]=deltaQ;

//cout<

//cout<

k++;

}

if(m_Bus[i].Type==2)

{

bph[l+2*m_pq_Num]=deltaP;

//cout<

l++;

}

}

for(k=0;k<2*m_pq_Num+m_pv_Num;k++)

cout<

return 0;

}

int pf::outputResult()

{

// TODO

for (int i = 0; i

switch (m_Bus[i].Type)

{

case 1:

cout<<"节点"<

cout<<"节点"<

break;

case 2:

cout<<"节点"<

break;

case 3:

break;

}

return 0;

}

三、表格

导纳矩阵G

0000000

0000000

0000000

000 3.30738-1.36519-1.942190

000-1.36519 2.552790-1.1876

000-1.942190 3.22420

0000-1.18760 2.80473

000000-1.61712

00000-1.282010

导纳矩阵B

-17.36110017.3611000 0-16000016

00-17.06480000

17.361100-39.308911.604110.51070

00011.6041-17.33820 5.97513

00010.51070-15.84090

01600 5.975130-35.4456

00000013.698

0017.064800 5.588240

第一次迭代

不平衡量

节点4有功2.22045E-16

节点4无功0.861444

节点5有功-1.25

节点5无功-0.259

节点6有功-0.9

节点6无功-0.042

节点7有功0

节点7无功0.6275

节点8有功-1

节点8无功-0.171

雅克比矩阵

-41.930 -3.543 12.130 1.063 11.154 1.766 0.000 -0.000 0.000 -0.000 0.000 -0.000 0.000 0.000 3.521 -42.030 -1.063 12.130 -1.766 11.154 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 12.046 1.781 -18.061 -1.308 0.000 -0.000 6.015 2.103 0.000 -0.000 0.000 -0.000 0.000 0.000 -1.781 12.046 3.884 -17.204 0.000 0.000 -2.103 6.015 0.000 0.000 0.000 0.000 0.000 0.000 11.048 2.336 -0.000 -0.000 -16.814 -2.426 0.000 -0.000 0.000 -0.000 5.766 1.978 0.000 0.000 -2.336 11.048 0.000 -0.000 4.314 -16.299 0.000 0.000 0.000 0.000 -1.978 5.766 0.000 0.000 -0.000 -0.000 6.362 0.358 -0.000 -0.000 -37.948 -3.060 14.658 0.931 -0.000 -0.000 16.927 0.000 0.000 -0.000 -0.358 6.362 0.000 -0.000 2.975 -38.323 -0.930 14.658 0.000 -0.000 -1.688 0.000 -0.000 -0.000 -0.000 -0.000 -0.000 -0.000 14.472 2.509 -24.887 -1.861 10.415 1.474 0.000 0.000 0.000 -0.000 0.000 -0.000 0.000 -0.000 -2.509 14.472 3.983 -24.236 -1.474 10.415 0.000 0.000 -0.000 -0.000 -0.000 -0.000 6.052 0.733 0.000 -0.000 10.472 0.992 -34.693 -2.663 0.000 18.169 0.000 -0.000 0.000 -0.000 -0.733 6.052 0.000 0.000 -0.992 10.472 2.609 -34.858 0.000 -0.884 -0.000 -0.000 -0.000 -0.000 -0.000 -0.000 16.927 -1.688 -0.000 -0.000 -0.000 -0.000 -16.927 -0.000节点2的相角0.172632

节点3的相角0.0907544

节点4的相角-0.0371077

节点4的幅值1.03342

节点5的相角-0.0668222

节点5的幅值1.00845

节点6的相角-0.0627586

节点6的幅值1.02235

节点7的相角0.0732415

节点7的幅值1.03724

节点8的相角0.0190912

节点8的幅值1.02664

节点9的相角0.0421593

节点9的幅值1.03997

第二次迭代

雅克比矩阵

-41.930 -3.543 12.130 1.063 11.154 1.766 0.000 -0.000 0.000 -0.000 0.000 -0.000 0.000 0.000 3.521 -42.030 -1.063 12.130 -1.766 11.154 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 12.046 1.781 -18.061 -1.308 0.000 -0.000 6.015 2.103 0.000 -0.000 0.000 -0.000 0.000 0.000 -1.781 12.046 3.884 -17.204 0.000 0.000 -2.103 6.015 0.000 0.000 0.000 0.000 0.000 0.000 11.048 2.336 -0.000 -0.000 -16.814 -2.426 0.000 -0.000 0.000 -0.000 5.766 1.978 0.000 0.000 -2.336 11.048 0.000 -0.000 4.314 -16.299 0.000 0.000 0.000 0.000 -1.978 5.766 0.000 0.000 -0.000 -0.000 6.362 0.358 -0.000 -0.000 -37.948 -3.060 14.658 0.931 -0.000 -0.000 16.927 0.000 0.000 -0.000 -0.358 6.362 0.000 -0.000 2.975 -38.323 -0.930 14.658 0.000 -0.000 -1.688 0.000 -0.000 -0.000 -0.000 -0.000 -0.000 -0.000 14.472 2.509 -24.887 -1.861 10.415 1.474 0.000 0.000 0.000 -0.000 0.000 -0.000 0.000 -0.000 -2.509 14.472 3.983 -24.236 -1.474 10.415 0.000 0.000 -0.000 -0.000 -0.000 -0.000 6.052 0.733 0.000 -0.000 10.472 0.992 -34.693 -2.663 0.000 18.169 0.000 -0.000 0.000 -0.000 -0.733 6.052 0.000 0.000 -0.992 10.472 2.609 -34.858 0.000 -0.884节点2的相角0.162138

节点3的相角0.0815663

节点4的相角-0.0386656

节点4的幅值1.02588

节点5的相角-0.0695638

节点5的幅值0.995802

节点6的相角-0.0643198

节点6的幅值1.01277

节点7的相角0.0650806

节点7的幅值1.02591

节点8的相角0.0128221

节点8的幅值1.01601

节点9的相角0.0344697

节点9的幅值1.03244

第三次次迭代

雅克比矩阵

《计算方法》课内实验报告

《计算方法》实验报告 姓名: 班级: 学号: 实验日期: 2011年10月26日

一、实验题目: 数值积分 二、实验目的: 1.熟悉matlab 编写及运行数值计算程序的方法。 2.进一步理解数值积分的基础理论。 3.进一步掌握应用不同的数值积分方法求解给定的积分并给出数据结果及误差分析。 三、实验内容: 1.分别用复合梯形求积公式及复合辛普森求积公式计算积分xdx x ln 10 ? , 要求计算精度达到410-,给出计算结果并比较两种方法的计算节点数. 2.用龙贝格求积方法计算积分dx x x ?+3 021,使误差不超过510-. 3.用3=n 的高斯-勒让德公式计算积分?3 1 sin x e x ,给出计算结果. 4.用辛普森公式(取2==M N ) 计算二重积分.5 .00 5 .00 dydx e x y ? ? - 四、实验结果: 1.(1)复合梯形法: 将区间[a,b]划分为n 等份,分点n k n a b h kh a x k ,2,1,0,,=-=+=在每个区间[1,+k k x x ](k=0,1,2,···n-1)上采用梯形公式,则得 )()]()([2)()(1 11 1 f R x f x f h dx x f dx x f I n n k k k b a n k x x k k ++===∑?∑? -=+-=+ 故)]()(2)([21 1 b f x f a f h T n k k n ++=∑-=称为复合梯形公式 计算步长和划分的区间 Eps=1E-4 h1=sqrt(Eps/abs(-(1-0)/12*1/(2+1))) h1 =0.0600 N1=ceil(1/h1) N1 =17 用复合梯形需要计算17个结点。 复合梯形: function T=trap(f,a,b,n) h=(b-a)/n;

matlab电力系统潮流计算

华中科技大学 信息工程学院课程设计报告书题目: 电力系统潮流计算 专业:电气工程及其自动化 班级: 学号: 学生姓名: 指导教师: 2015年 11 月 10 日

2015年11月12日

信息工程学院课程设计成绩评定表

摘要 电力系统稳态分析包括潮流计算和静态安全分析。本文主要运用的事潮流计算,潮流计算是电力网络设计与运行中最基本的运算,对电力网络的各种设计方案及各种运行方式进行潮流计算,可以得到各种电网各节点的电压,并求得网络的潮流及网络中的各元件的电力损耗,进而求得电能损耗。本位就是运用潮流计算具体分析,并有MATLAB仿真。 关键词:电力系统潮流计算 MATLAB仿真

Abstract Electric power system steady flow calculation and analysis of the static safety analysis. This paper, by means of the calculation, flow calculation is the trend of the power network design and operation of the most basic operations of electric power network, various design scheme and the operation ways to tide computation, can get all kinds of each node of the power grid voltage and seek the trend of the network and the network of the components of the power loss, and getting electric power. The standard is to use the power flow calculation and analysis, the specific have MATLAB simulation. Key words: Power system; Flow calculation; MATLAB simulation

计算方法上机实验报告

《计算方法》上机实验报告 班级:XXXXXX 小组成员:XXXXXXX XXXXXXX XXXXXXX XXXXXXX 任课教师:XXX 二〇一八年五月二十五日

前言 通过进行多次的上机实验,我们结合课本上的内容以及老师对我们的指导,能够较为熟练地掌握Newton 迭代法、Jacobi 迭代法、Gauss-Seidel 迭代法、Newton 插值法、Lagrange 插值法和Gauss 求积公式等六种算法的原理和使用方法,并参考课本例题进行了MATLAB 程序的编写。 以下为本次上机实验报告,按照实验内容共分为六部分。 实验一: 一、实验名称及题目: Newton 迭代法 例2.7(P38):应用Newton 迭代法求 在 附近的数值解 ,并使其满足 . 二、解题思路: 设'x 是0)(=x f 的根,选取0x 作为'x 初始近似值,过点())(,00x f x 做曲线)(x f y =的切线L ,L 的方程为))((')(000x x x f x f y -+=,求出L 与x 轴交点的横坐标) (') (0001x f x f x x - =,称1x 为'x 的一次近似值,过点))(,(11x f x 做曲线)(x f y =的切线,求该切线与x 轴的横坐标) (') (1112x f x f x x - =称2x 为'x

的二次近似值,重复以上过程,得'x 的近似值序列{}n x ,把 ) (') (1n n n n x f x f x x - =+称为'x 的1+n 次近似值,这种求解方法就是牛顿迭代法。 三、Matlab 程序代码: function newton_iteration(x0,tol) syms z %定义自变量 format long %定义精度 f=z*z*z-z-1; f1=diff(f);%求导 y=subs(f,z,x0); y1=subs(f1,z,x0);%向函数中代值 x1=x0-y/y1; k=1; while abs(x1-x0)>=tol x0=x1; y=subs(f,z,x0); y1=subs(f1,z,x0); x1=x0-y/y1;k=k+1; end x=double(x1) K 四、运行结果: 实验二:

电力系统自动化试卷及思考题答案2014年(华北电力大学)

1.那些实验是在EMS平台下进行?那些实验是在DTS平台下进行? EMS:1)电力系统有功功率分布及分析;2)电力系统无功功率分布及分析;3)电力系统综合调压措施分析;4)电力系统有功-频率分布;5)电力系统潮流控制分析;6)电力系统对称故障计算及分析;7)电力系统不对称故障及计算分析 DTS:1)电力系统继电保护动作特性分析;2)电力系统稳定性计算及分析;3)电力系统继电保护动作情况与系统稳定性关系分析 2.欲调节电压幅值,调有功P有效还是无功Q有效?为什么? 1)电压对无功变化更敏感,有功虽然对电压也有影响但是比较小 2)只考虑电压降落的纵分量:△U=(PR+QX)/U,从公式看出,电压降落跟有功P和无功Q 都有关系,只不过在高压输电系统中,电抗X>>R,这样,QX在△U的分量更大,调节电压幅值就是在调节无功。 3.重合闸有什么好处?若电气故障设为三相短路,故障分别持续t1和t2时长,则两个实验结果有什么不同? 重合闸好处:1)在线路发生暂时性故障时,迅速恢复供电,从而提高供电可靠性;2)对于有双侧电源的高压输电线路,可以提高系统并列运行的稳定性,从而提高线路的输送容量;3)可以纠正由于断路器机构不良,或继电器误动作引起的误跳闸 故障延时长的接地距离一段动作次数,相间距离一段动作次数,三相跳开次数比故障延时短的多,开关三相跳开的次数多。 4,.以实验为例,举例说明继电保护对暂态稳定的影响? 实验八中,实验项目一体现出选保护具有选择性,当其故障范围内出现故障时,有相应的断路器动作跳闸。实验项目二体现出保护是相互配合的。当本段拒动时,由上一级出口动作跳闸。实验项目三做的是自动重合闸的“前加速”和“后加速”保护。继电保护快速切除故障和自动重合闸装置就是使故障对系统的影响降到最低,尽早的将故障切除能避免故障电流对设备的冲击减小对系统的扰动,有利于暂态稳定的实现。 5.·在电力系统潮流控制分析试验中,可以通过改变发电机的无功进行潮流调整,也可以通过改变发电机所连升压变压器的分接头进行潮流调整,实验过程中这两项调整对发电机的设置有何不同?为什么? 改变发电机无功:设置发电机无功时以10MV AR增长。不能保证发电机有功功率和发电机电压恒定,他们可能会随着无功功率的改变有微小的变化。 改变变压器分接头:设置此时发电机相当于一个PV节点,即恒定的有功P和不变的电压U。原因:发电机是无功电源,也是有功电源,是电能发生元件;变压器是电能转换元件,不产生功率。 7在实验中考虑了哪些调压措施?若某节点电压(kv)/无功……电压升高3kv,则应补偿多少电容? 【实验】调节发电机端电压(调节有功,调节无功),调整变压器分接头 【百度】电力系统的调压措施主要有: 1靠调节发电机机端电压调压 2靠改变变压器分接头调压 3靠无功补偿调压 4靠线路串连电容改变线路参数调压 我的实验灵敏度系数为0.075,所以若电压升高3kv,应补偿3/0.075=40Mvar的电容 8在调频实验中。对单机单负荷系统,若发电机的额定功率……频率怎么变化?当负荷功率大于发电机功率的额定功率…… 通过K=△p/△f来判断f如何变化 9、几个实验步骤 实验九试探法求故障切除实验的实验步骤

太原理工大学数值计算方法实验报告

本科实验报告 课程名称:计算机数值方法 实验项目:方程求根、线性方程组的直接解 法、线性方程组的迭代解法、代数插值和最 小二乘拟合多项式 实验地点:行勉楼 专业班级: ******** 学号: ********* 学生姓名: ******** 指导教师:李誌,崔冬华 2016年 4 月 8 日

y = x*x*x + 4 * x*x - 10; return y; } float Calculate(float a,float b) { c = (a + b) / 2; n++; if (GetY(c) == 0 || ((b - a) / 2) < 0.000005) { cout << c <<"为方程的解"<< endl; return 0; } if (GetY(a)*GetY(c) < 0) { return Calculate(a,c); } if (GetY(c)*GetY(b)< 0) { return Calculate(c,b); } } }; int main() { cout << "方程组为:f(x)=x^3+4x^2-10=0" << endl; float a, b; Text text; text.Getab(); a = text.a; b = text.b; text.Calculate(a, b); return 0; } 2.割线法: // 方程求根(割线法).cpp : 定义控制台应用程序的入口点。// #include "stdafx.h" #include"iostream"

心得体会 使用不同的方法,可以不同程度的求得方程的解,通过二分法计算的程序实现更加了解二分法的特点,二分法过程简单,程序容易实现,但该方法收敛比较慢一般用于求根的初始近似值,不同的方法速度不同。面对一个复杂的问题,要学会简化处理步骤,分步骤一点一点的循序处理,只有这样,才能高效的解决一个复杂问题。

电力系统潮流计算课程设计报告

课程设计报告 学生:学号: 学院: 班级: 题目: 电力系统潮流计算课程设计

课设题目及要求 一 .题目原始资料 1、系统图:两个发电厂分别通过变压器和输电线路与四个变电所相连。 2、发电厂资料: 母线1和2为发电厂高压母线,发电厂一总装机容量为( 300MW ),母线3为机压母线,机压母线上装机容量为( 100MW ),最大负荷和最小负荷分别为50MW 和20MW ;发电厂二总装机容量为( 200MW )。 3、变电所资料: (一) 变电所1、2、3、4低压母线的电压等级分别为:35KV 10KV 35KV 10KV (二) 变电所的负荷分别为: 60MW 40MW 40MW 50MW (三) 每个变电所的功率因数均为cos φ=0.85; 变电所1 变电所母线 电厂一 电厂二

(四) 变电所1和变电所3分别配有两台容量为75MVA 的变压器,短路损 耗414KW ,短路电压(%)=16.7;变电所2和变电所4分别配有两台容 量为63MVA 的变压器,短路损耗为245KW ,短路电压(%)=10.5; 4、输电线路资料: 发电厂和变电所之间的输电线路的电压等级及长度标于图中,单位长度的电阻为Ω17.0,单位长度的电抗为Ω0.402,单位长度的电纳为S -610*2.78。 二、 课程设计基本容: 1. 对给定的网络查找潮流计算所需的各元件等值参数,画出等值电路图。 2. 输入各支路数据,各节点数据利用给定的程序进行在变电所在某一负荷 情况下的潮流计算,并对计算结果进行分析。 3. 跟随变电所负荷按一定比例发生变化,进行潮流计算分析。 1) 4个变电所的负荷同时以2%的比例增大; 2) 4个变电所的负荷同时以2%的比例下降 3) 1和4号变电所的负荷同时以2%的比例下降,而2和3号变电所的 负荷同时以2%的比例上升; 4. 在不同的负荷情况下,分析潮流计算的结果,如果各母线电压不满足要 求,进行电压的调整。(变电所低压母线电压10KV 要求调整围在9.5-10.5 之间;电压35KV 要求调整围在35-36之间) 5. 轮流断开支路双回线中的一条,分析潮流的分布。(几条支路断几次) 6. 利用DDRTS 软件,进行绘制系统图进行上述各种情况潮流的分析,并进 行结果的比较。 7. 最终形成课程设计成品说明书。 三、课程设计成品基本要求: 1. 在读懂程序的基础上画出潮流计算基本流程图 2. 通过输入数据,进行潮流计算输出结果 3. 对不同的负荷变化,分析潮流分布,写出分析说明。 4. 对不同的负荷变化,进行潮流的调节控制,并说明调节控制的方法,并 列表表示调节控制的参数变化。 5. 打印利用DDRTS 进行潮流分析绘制的系统图,以及潮流分布图。

c 计算器实验报告

简单计算器 姓名: 周吉祥 实验目的:模仿日常生活中所用的计算器,自行设计一个简单的计算器程序,实现简单的计算功能。 实验内容: (1)体系设计: 程序是一个简单的计算器,能正确输入数据,能实现加、减、乘、除等算术运算,运算结果能正确显示,可以清楚数据等。 (2)设计思路: 1)先在Visual C++ 6.0中建立一个MFC工程文件,名为 calculator. 2)在对话框中添加适当的编辑框、按钮、静态文件、复选框和单 选框 3)设计按钮,并修改其相应的ID与Caption. 4)选择和设置各控件的单击鼠标事件。 5)为编辑框添加double类型的关联变量m_edit1. 6)在calculatorDlg.h中添加math.h头文件,然后添加public成 员。 7)打开calculatorDlg.cpp文件,在构造函数中,进行成员初始 化和完善各控件的响应函数代码。 (3)程序清单:

●添加的public成员: double tempvalue; //存储中间变量 double result; //存储显示结果的值 int sort; //判断后面是何种运算:1.加法2.减法3. 乘法 4.除法 int append; //判断后面是否添加数字 ●成员初始化: CCalculatorDlg::CCalculatorDlg(CWnd* pParent /*=NULL*/) : CDialog(CCalculatorDlg::IDD, pParent) { //{{AFX_DATA_INIT(CCalculatorDlg) m_edit1 = 0.0; //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); tempvalue=0; result=0; sort=0; append=0; }

电力系统潮流计算

第四章 电力系统潮流分析与计算 电力系统潮流计算是电力系统稳态运行分析与控制的基础,同时也是安全性分析、稳定性分析电磁暂态分析的基础(稳定性分析和电磁暂态分析需要首先计算初始状态,而初始状态需要进行潮流计算)。其根本任务是根据给定的运行参数,例如节点的注入功率,计算电网各个节点的电压、相角以及各个支路的有功功率和无功功率的分布及损耗。 潮流计算的本质是求解节点功率方程,系统的节点功率方程是节点电压方程乘以节点电压构成的。要想计算各个支路的功率潮流,首先根据节点的注入功率计算节点电压,即求解节点功率方程。节点功率方程是一组高维的非线性代数方程,需要借助数字迭代的计算方法来完成。简单辐射型网络和环形网络的潮流估算是以单支路的潮流计算为基础的。 本章主要介绍电力系统的节点功率方程的形成,潮流计算的数值计算方法,包括高斯迭代法、牛顿拉夫逊法以及PQ 解藕法等。介绍单电源辐射型网络和双端电源环形网络的潮流估算方法。 4-1 潮流计算方程--节点功率方程 1. 支路潮流 所谓潮流计算就是计算电力系统的功率在各个支路的分布、各个支路的功率损耗以及各个节点的电压和各个支路的电压损耗。由于电力系统可以用等值电路来模拟,从本质上说,电力系统的潮流计算首先是根据各个节点的注入功率求解电力系统各个节点的电压,当各个节点的电压相量已知时,就很容易计算出各个支路的功率损耗和功率分布。 假设支路的两个节点分别为k 和l ,支路导纳为kl y ,两个节点的电压已知,分别为k V 和l V ,如图4-1所示。 图4-1 支路功率及其分布 那么从节点k 流向节点l 的复功率为(变量上面的“-”表示复共扼): )]([l k kl k kl k kl V V y V I V S (4-1) 从节点l 流向节点k 的复功率为: )]([k l kl l lk l lk V V y V I V S (4-2) 功率损耗为: 2)()(kl kl l k kl l k lk kl kl V y V V y V V S S S (4-3)

计算方法第二章方程求根上机报告

实验报告名称 班级:学号:姓名:成绩: 1实验目的 1)通过对二分法与牛顿迭代法作编程练习与上级运算,进一步体会二分法与牛顿迭代法的不同特点。 2)编写割线迭代法的程序,求非线性迭代法的解,并与牛顿迭代法。 2 实验内容 用牛顿法和割线法求下列方程的根 x^2-e^x=0; x*e^x-1=0; lgx+x-2=0; 3实验步骤 1)根据二分法和牛顿迭代法,割线法的算法编写相应的求根函数; 2)将题中所给参数带入二分法函数,确定大致区间; 3)用牛顿迭代法和割线法分别对方程进行求解; 3 程序设计 牛顿迭代法x0=1.0; N=100; k=0; eps=5e-6; delta=1e-6; while(1) x1=x0-fc1(x0)/fc2(x0); k=k+1; if k>N disp('Newmethod failed')

break end if(abs(x1-x0)=delta) c=x1; x1=cutnext(x0,x1); x0=c; %x0 x1μYí?μ?μ?x1 x2 è?è?±£′??úx0 x1 end k=k+1; if k>N disp('Cutline method failed') break; end if(abs(x1-x0)

华北电力大学电力系统分析复试面试问题

保定校区电力系统及其自动化(电自) 面试:1。在线路保护中,什么情况下三段动作了,而一段二段都没有动作。 2、线路中的零序电流怎么测得。3、变压器Y-D11接线,正序负序零序电流的相位幅值怎么变化。4、零序电流保护有么有可能存在相继动作,为什么?5、隔离开关和断路器哪个先断开,为什么?6、电厂发电过程。 英语面试问题:先自我介绍,然后问问题1、为什么选择这个专业? 2、大学里最喜欢的课? 3、家庭成员介绍 笔试继电保护:差不多忘记了。。。记得几个大题1、一个环网的最大最小分支系数分析2、消除变压器不平衡电流的方法3、高频相差保护判断4、给一个阻抗继电器动作方程,让你画两个圆5、有零序电流保护计算题6、距离保护计算是被配合段有两条分支(即外汲),记得公式就行。7、振荡考的是大圆套小圆的,让你判断两个启动元件哪个是大圆,阐述短路与振荡的动作原理,及问有可能什么时候振荡是误动。 前面小题都考的很细。 英语听力,笔试很简单,不用准备。 保定校区电力系统及其自动化(电自) 英语面试老师直接叫我翻译学校的名字还有我学的专业课是什么初是的专业课成绩还有专业英语翻译 专业面试 1 船上的频率是多少 2你知道主要有那几中频率,分别是那些国家的 3两种不同的频率是通过什么连接起来的 4什么是

svc hv 5二机管的单向导通原理 6外面高压线路和地压线路的区别7变电站的无功补偿 笔试比较难我都不会那有零序电流保护镇定保护范围距离镇定 我强烈建议把继电保护学好专业课笔试好难 趁还有印象,先回忆一下 北京校区电气与电子工程学院电力系统及自动化 面试题目: 1.变压器中性点为何要接CT? 2.三相线路,a相短路,c相非短路点的电压、电流怎么求? 3.发电机机械时间常数增大,有什么影响? 4.影响无功潮流的因素有哪些? 还有就是电能质量指标等基础问题,当时一慌,回答的都很差 口试: 自我介绍 家乡介绍,说四种电力设备,读一篇科技短文(我读完是基本没什么感觉,英语平时没学好啊) 分在同一组的,大家的问题也都不一样,不过老师们会很和蔼,到了面试时,基本没有太紧张的感觉,希望对准备考研的有所帮助啊!

计算方法实验报告格式

计算方法实验报告格式 小组名称: 组长姓名(班号): 小组成员姓名(班号): 按贡献排序情况: 指导教师评语: 小组所得分数: 一个完整的实验,应包括数据准备、理论基础、实验内容及方法,最终对实验结果进行分析,以达到对理论知识的感性认识,进一步加深对相关算法的理解,数值实验以实验报告形式完成,实验报告格式如下: 一、实验名称 实验者可根据报告形式需要适当写出. 二、实验目的及要求 首先要求做实验者明确,为什么要做某个实验,实验目的是什么,做完该实验应达到什么结果,在实验过程中的注意事项,实验方法对结果的影响也可以以实验目的的形式列出. 三、算法描述(实验原理与基础理论) 数值实验本身就是为了加深对基础理论及方法的理解而设置的,所以要求将实验涉及到的理论基础,算法原理详尽列出. 四、实验内容 实验内容主要包括实验的实施方案、步骤、实验数据准备、实验的算法以及可能用到的仪器设备. 五、程序流程图 画出程序实现过程的流程图,以便更好的对程序执行的过程有清楚的认识,在程序调试过程中更容易发现问题. 六、实验结果 实验结果应包括实验的原始数据、中间结果及实验的最终结果,复杂的结果可以用表格

形式列出,较为简单的结果可以与实验结果分析合并出现. 七、实验结果分析 实验结果分析包括对对算法的理解与分析、改进与建议. 数值实验报告范例 为了更好地做好数值实验并写出规范的数值实验报告,下面给出一简单范例供读者参考. 数值实验报告 小组名称: 小组成员(班号): 按贡献排序情况: 指导教师评语: 小组所得分数: 一、实验名称 误差传播与算法稳定性. 二、实验目的 1.理解数值计算稳定性的概念. 2.了解数值计算方法的必要性. 3.体会数值计算的收敛性与收敛速度. 三、实验内容 计算dx x x I n n ? += 1 10 ,1,2,,10n = . 四、算法描述 由 dx x x I n n ? += 1 10 ,知 dx x x I n n ?+=--101110,则

数值分析上机实验报告

数值分析上机实验报告

《数值分析》上机实验报告 1.用Newton 法求方程 X 7-X 4+14=0 在(0.1,1.9)中的近似根(初始近似值取为区间端点,迭代6次或误差小于0.00001)。 1.1 理论依据: 设函数在有限区间[a ,b]上二阶导数存在,且满足条件 {}α?上的惟一解在区间平方收敛于方程所生的迭代序列 迭代过程由则对任意初始近似值达到的一个中使是其中上不变号 在区间],[0)(3,2,1,0,) (') ()(],,[x |))(),((|,|,)(||)(|.4;0)(.3],[)(.20 )()(.110......b a x f x k x f x f x x x Newton b a b f a f mir b a c x f a b c f x f b a x f b f x f k k k k k k ==- ==∈≤-≠>+ 令 )9.1()9.1(0)8(4233642)(0)16(71127)(0)9.1(,0)1.0(,1428)(3 2 2 5 333647>?''<-=-=''<-=-='<>+-=f f x x x x x f x x x x x f f f x x x f 故以1.9为起点 ?? ?? ? ='- =+9.1)()(01x x f x f x x k k k k 如此一次一次的迭代,逼近x 的真实根。当前后两个的差<=ε时,就认为求出了近似的根。本程序用Newton 法求代数方程(最高次数不大于10)在(a,b )区间的根。

1.2 C语言程序原代码: #include #include main() {double x2,f,f1; double x1=1.9; //取初值为1.9 do {x2=x1; f=pow(x2,7)-28*pow(x2,4)+14; f1=7*pow(x2,6)-4*28*pow(x2,3); x1=x2-f/f1;} while(fabs(x1-x2)>=0.00001||x1<0.1); //限制循环次数printf("计算结果:x=%f\n",x1);} 1.3 运行结果: 1.4 MATLAB上机程序 function y=Newton(f,df,x0,eps,M) d=0; for k=1:M if feval(df,x0)==0 d=2;break else x1=x0-feval(f,x0)/feval(df,x0); end e=abs(x1-x0); x0=x1; if e<=eps&&abs(feval(f,x1))<=eps d=1;break end end

计算方法上机实习题大作业(实验报告).

计算方法实验报告 班级: 学号: 姓名: 成绩: 1 舍入误差及稳定性 一、实验目的 (1)通过上机编程,复习巩固以前所学程序设计语言及上机操作指令; (2)通过上机计算,了解舍入误差所引起的数值不稳定性 二、实验内容 1、用两种不同的顺序计算10000 21n n -=∑,分析其误差的变化 2、已知连分数() 1 01223//(.../)n n a f b b a b a a b =+ +++,利用下面的算法计算f : 1 1 ,i n n i i i a d b d b d ++==+ (1,2,...,0 i n n =-- 0f d = 写一程序,读入011,,,...,,,...,,n n n b b b a a 计算并打印f 3、给出一个有效的算法和一个无效的算法计算积分 1 041 n n x y dx x =+? (0,1,...,1 n = 4、设2 2 11N N j S j == -∑ ,已知其精确值为1311221N N ?? -- ?+?? (1)编制按从大到小的顺序计算N S 的程序 (2)编制按从小到大的顺序计算N S 的程序 (3)按两种顺序分别计算10001000030000,,,S S S 并指出有效位数 三、实验步骤、程序设计、实验结果及分析 1、用两种不同的顺序计算10000 2 1n n -=∑,分析其误差的变化 (1)实验步骤: 分别从1~10000和从10000~1两种顺序进行计算,应包含的头文件有stdio.h 和math.h (2)程序设计: a.顺序计算

#include #include void main() { double sum=0; int n=1; while(1) { sum=sum+(1/pow(n,2)); if(n%1000==0)printf("sun[%d]=%-30f",n,sum); if(n>=10000)break; n++; } printf("sum[%d]=%f\n",n,sum); } b.逆序计算 #include #include void main() { double sum=0; int n=10000; while(1) { sum=sum+(1/pow(n,2)); if(n%1000==0) printf("sum[%d]=%-30f",n,sum); if(n<=1)break; n--; } printf("sum[%d]=%f\n",n,sum); } (3)实验结果及分析: 程序运行结果: a.顺序计算

华北电力大学电力系统分析考研及期末考试必备

华北电力大学电力系统分析考研及期末考试必备 1、什么是动力系统、电力系统、电力网? 答:通常把发电企业的动力设施、设备和发电、输电、变电、配电、用电设备及相应的辅助系统组成的电能热能生产、输送、分配、使用的统一整体称为动力系统; 把由发电、输电、变电、配电、用电设备及相应的辅助系统组成的电能生产、输送、分配、使用的统一整体称为电力系统; 把由输电、变电、配电设备及相应的辅助系统组成的联系发电与用电的统一整体称为电力网。 2、现代电网有哪些特点? 答:1、由较强的超高压系统构成主网架。2、各电网之间联系较强,电压等级相对简化。3、具有足够的调峰、调频、调压容量,能够实现自动发电控制,有较高的供电可靠性。4、具有相应的安全稳定控制系统,高度自动化的监控系统和高度现代化的通信系统。5、具有适应电力市场运营的技术支持系统,有利于合理利用能源。 3、区域电网互联的意义与作用是什么? 答:1、可以合理利用能源,加强环境保护,有利于电力工业的可持续发展。 2、可安装大容量、高效能火电机组、水电机组和核电机组,有利于降低造价,节约能源,加快电力建设速度。 3、可以利用时差、温差,错开用电高峰,利用各地区用电的非同时性进行负荷调整,减少备用容量和装机容量。 4、可以在各地区之间互供电力、互通有无、互为备用,可减少事故备用容量,增强抵御事故能力,提高电网安全水平和供电可靠性。 5、能承受较大的冲击负荷,有利于改善电能质量。 6、可以跨流域调节水电,并在更大范围内进行水火电经济调度,取得更大的经济效益。 4、电网无功补偿的原则是什么? 答:电网无功补偿的原则是电网无功补偿应基本上按分层分区和就地平衡原则考虑,并应能随负荷或电压进行调整,保证系统各枢纽点的电压在正常和事故后均能满足规定的要求,避免经长距离线路或多级变压器传送无功功率。 5、简述电力系统电压特性与频率特性的区别是什么? 答:电力系统的频率特性取决于负荷的频率特性和发电机的频率特性(负荷随频率的变化而变化的特性叫负荷的频率特性。发电机组的出力随频率的变化而变化的特性叫发电机的频率特性),它是由系统的有功负荷平衡决定的,且与网络结构(网络阻抗)关系不大。在非振荡情况下,同一电力系统的稳态频率是相同的。因此,系统频率可以集中调整控制。 电力系统的电压特性与电力系统的频率特性则不相同。电力系统各节点的电压通常情况下是不完全相同的,主要取决于各区的有功和无功供需平衡情况,也与网络结构(网络阻抗)有较大关系。因此,电压不能全网集中统一调整,只能分区调整控制。

计算方法实验报告 拟合

南京信息工程大学实验(实习)报告 一、实验目的: 用最小二乘法将给定的十个点拟合成三次多项式。 二、实验步骤: 用matlab编制以函数为基的多项式最小二乘拟合程序,并用于对下列数据作三次多项式最小二乘拟合(取权函数wi=1) x -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 y -2.30 -1 -0.14 -0.25 0.61 1.03 1.75 2.75 4.42 6.94 给定直线方程为:y=1/4*x3+1/2*x2+x+1 三、实验结论: 最小二乘法:通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。 一般地。当测量数据的散布图无明显的规律时,习惯上取n次代数多项式。 程序运行结果为: a = 0.9731 1.1023 0.4862 0.2238 即拟合的三次方程为:y=0.9731+1.1023x+0.4862*x2+0.2238*x3

-2.5 -2-1.5-1-0.5 00.51 1.52 2.5 -4-20246 81012 x 轴 y 轴 拟合图 离散点 y=a(1)+a(2)*x+a(3)*x.2+a(4)*x.3 结论: 一般情况下,拟合函数使得所有的残差为零是不可能的。由图形可以看出最小二乘解决了残差的正负相互抵消的问题,使得拟合函数更加密合实验数据。 优点:曲线拟合是使拟合函数和一系列的离散点与观测值的偏差平方和达到最小。 缺点:由于计算方法简单,若要保证数据的精确度,需要大量的数据代入计算。

最新华北电力大学电力系统分析

华北电力大学电力系 统分析

课程编号:811 课程名称:电力系统分析基础 一、考试的总体要求 掌握电力系统的基本概念和特点,掌握电力系统各元件的参数和数学模型,掌握电力系统潮流计算的基本原理,掌握电力系统有功和无功优化运行及其调整方法,掌握短路电流计算的基本方法。 二、考试的内容 1. 电力系统的基本概念:电力系统的基本概念及系统运行的基本要求;电力系统中性点运行方式;电力系统主要的电压等级与我国电力系统的发展情况。 2. 电力系统各元件特性和数学模型:发电机组的运行特性与数学模型;输电线路、变压器、负荷的数学模型及参数计算;标幺值计算原理,理想变压器数学模型及多电压级电力网络等效电路的形成。 3. 简单电力网络的计算和分析:基于有名值与标幺值的简单电力网络(环型网、辐射型网)的潮流计算方法;有功、无功的基本电力网络潮流控制方法。 4. 复杂电力系统潮流的计算机算法:节点电压方程和电力网络方程的建立;节点导纳矩阵的形成和修改方法;功率方程及变量、节点的分类;牛顿-拉夫逊迭代法潮流计算的基本原理、数学模型和计算步骤;P-Q分解法潮流计算原理和计算步骤。 5. 电力系统的有功功率和频率调整:电力系统各种有功功率电源及各种有功备用;有功功率的平衡与最优分配方法;电力系统频

率调整的概念,自动调速系统工作原理,发电机和负荷的功频特性及其调速特性,频率的一次调整、二次调整和调频厂的选择,负荷频率控制的基本原理;联合系统调频计算。 6.电力系统的无功功率和电压调整:电力系统中无功功率的平衡和无功电源特点;电力系统中无功功率的最优分布;电力系统中枢点电压管理方式;借发电机、变压器、补偿设备调压和组合调压的原理及特点。 7.电力系统三相短路的分析与计算:电力系统故障的基本概念与危害;各种短路故障的成因;无限大功率电源供电的系统三相短路电流分析;电力系统三相短路电流的实用计算;短路电流交流分量的初始值及任意时刻值的确定方法。 8.电力系统不对称故障的分析与计算:对称分量法的原理及其在不对称故障分析中的应用;电力系统元件的序参数和等效电路;零序网络的构成方法;各种不对称短路时故障处的短路电流和电压的计算;非故障处电流、电压的计算;正序等效定则。 三、考试的题型 判断题、选择题、简答题、计算题。

电力系统潮流计算课程设计论文

课程设计论文 基于MATLAB的电力系统潮流计算 学院:电气工程学院 专业:电气工程及自动化 班级:电自0710班 学号:0703110304 姓名: 马银莎

内容摘要 潮流计算是电力系统最基本最常用的计算。根据系统给定的运行条件,网络接线及元件参数,通过潮流计算可以确定各母线的电压(幅值和相角),各支路流过的功率,整个系统的功率损耗。潮流计算是实现电力系统安全经济发供电的必要手段和重要工作环节。因此,潮流计算在电力系统的规划计算,生产运行,调度管理及科学计算中都有着广泛的应用。 潮流计算在数学上是多元非线性方程组的求解问题,牛顿—拉夫逊Newton-Raphson法是数学上解非线性方程组的有效方法,有较好的收敛性。运用电子计算机计算一般要完成以下几个步骤:建立数学模型,确定解算方法,制订计算流程,编制计算程序。 关键词 牛顿-拉夫逊法(Newton-Raphson)变压器及非标准变比无功调节 高斯消去法潮流计算Mtlab

一 .电力系统潮流计算的概述 在电力系统的正常运行中,随着用电负荷的变化和系统运行方式的改变,网络中的损耗也将发生变化。要严格保证所有的用户在任何时刻都有额定的电压是不可能的,因此系统运行中个节点出现电压的偏移是不可避免的。为了保证电力系统的稳定运行,要进行潮流调节。 随着电力系统及在线应用的发展,计算机网络已经形成,为电力系统的潮流计算提供了物质基础。电力系统潮流计算是电力系统分析计算中最基本的内容,也是电力系统运行及设计中必不可少的工具。根据系统给定的运行条件、网络接线及元件参数,通过潮流计算可以确定各母线电压的幅值及相角、各元件中流过的功率、整个系统的功率损耗等。潮流计算是实现电力系统安全经济发供电的必要手段和重要工作环节,因此潮流计算在电力系统的规划设计、生产运行、调度管理及科学研究中都有着广泛的应用。它的发展主要围绕这样几个方面:计算方法的收敛性、可靠性;计算速度的快速性;对计算机存储容量的要求以及计算的方便、灵活等。 常规的电力系统潮流计算中一般具有三种类型的节点:PQ 、PV 及平衡节点。一个节点有四个变量,即注入有功功率、注入无功功率,电压大小及相角。常规的潮流计算一般给定其中的二个变量:PQ 节点(注入有功功率及无功功率),PV 节点(注入有功功率及电压的大小),平衡节点(电压的大小及相角)。 1、变量的分类: 负荷消耗的有功、无功功率——1L P 、1L Q 、2L P 、2L Q 电源发出的有功、无功功率——1G P 、1G Q 、2G P 、2G Q 母线或节点的电压大小和相位——1U 、2U 、1δ、2δ 在这十二个变量中,负荷消耗的有功和无功功率无法控制,因它们取决于用户,它们就称为不可控变量或是扰动变量。电源发出的有功无功功率是可以控制的自变量,因此它们就称为控制变量。母线或节点电压的大小和相位角——是受控制变量控制的因变量。其中, 1U 、2U 主要受1G Q 、2G Q 的控制, 1δ、2δ主要受 1G P 、2G P 的控制。这四个变量就是简单系统的状态变量。 为了保证系统的正常运行必须满足以下的约束条件: 对控制变量 max min max min ;Gi Gi Gi Gi Gi Gi Q Q Q P P P <<<< 对没有电源的节点则为 0;0==Gi Gi Q P 对状态变量i U 的约束条件则是 m a x m i n i i i U U U <<

计算方法实验报告册

实验一——插值方法 实验学时:4 实验类型:设计 实验要求:必修 一 实验目的 通过本次上机实习,能够进一步加深对各种插值算法的理解;学会使用用三种类型的插值函数的数学模型、基本算法,结合相应软件(如VC/VB/Delphi/Matlab/JAVA/Turbo C )编程实现数值方法的求解。并用该软件的绘图功能来显示插值函数,使其计算结果更加直观和形象化。 二 实验内容 通过程序求出插值函数的表达式是比较麻烦的,常用的方法是描出插值曲线上尽量密集的有限个采样点,并用这有限个采样点的连线,即折线,近似插值曲线。取点越密集,所得折线就越逼近理论上的插值曲线。本实验中将所取的点的横坐标存放于动态数组[]X n 中,通过插值方法计算得到的对应纵坐标存放 于动态数组[]Y n 中。 以Visual C++.Net 2005为例。 本实验将Lagrange 插值、Newton 插值和三次样条插值实现为一个C++类CInterpolation ,并在Button 单击事件中调用该类相应函数,得出插值结果并画出图像。CInterpolation 类为 class CInterpolation { public : CInterpolation();//构造函数 CInterpolation(float *x1, float *y1, int n1);//结点横坐标、纵坐标、下标上限 ~ CInterpolation();//析构函数 ………… ………… int n, N;//结点下标上限,采样点下标上限 float *x, *y, *X;//分别存放结点横坐标、结点纵坐标、采样点横坐标 float *p_H,*p_Alpha,*p_Beta,*p_a,*p_b,*p_c,*p_d,*p_m;//样条插值用到的公有指针,分别存放 i h ,i α,i β,i a ,i b ,i c ,i d 和i m }; 其中,有参数的构造函数为 CInterpolation(float *x1, float *y1, int n1) { //动态数组x1,y1中存放结点的横、纵坐标,n1是结点下标上限(即n1+1个结点) n=n1; N=x1[n]-x1[0]; X=new float [N+1]; x=new float [n+1]; y=new float [n+1];

相关主题