电力系统潮流上机设计教学指导书(适用于VC) 下载本文

电力系统潮流上机课程设计教学指导书

电力系统潮流上机课程设计教学指导书(适用于VC)

一、基础知识的要求

1. 掌握VC环境的建立,建立一个空的或者“hello world”的DOS工作平台。

2. 掌握函数的定义,头文件的使用,函数调用方法。了解类的概念,建立类对象,学

会调用类成员函数。

3. 掌握数据文件的打开和关闭,学会自己根据系统数据建立数据文件,并读取数据。

学会将计算结果写到文件中。 4. 对VC环境的掌握:

i. 打开工作平台:file->open workspace(file->recent workspace)

ii. 打开工作平台中的文件:选择fileview页,在source file中双击想打开的.cpp文

件,或者在header file中双击想打开的.h文件。 iii. 保存文件:ctrl+s

iv. 将已有文件加入当前工作平台中:如果是cpp文件,则选中source file,单击右

键,选择add file to folder,加入希望加入的cpp文件。如果是.h文件,则选中header file,单击右键,选择add file to folder,加入希望加入的头文件。

v. 编译:所有的程序写完之后需要进行编译。编译可以选择Build按钮,也可以用

快捷键F7进行编译。如果有语法错误,则会在output的build页显示出来,逐个双击定位,处理错误,解决问题。 vi. 调试:设置断点(F9),进入调试状态或者执行至下一个断点(F5,或者点击界

面上的“Go”按钮),单步执行(F10),进入子函数(F11),执行到鼠标所在位置(ctrl+F10),结束调试(shift+F5)。

vii. 运行:运行可以点击界面上的“叹号”按钮,也可以使用快捷键ctrl+F5,使用

这个命令时,所设置的断点是不起作用的。

5. 《电力系统稳态分析》教材中第四章涉及到的基本知识。

二、设计注意事项

1. 变量的定义要写在变量被使用之前,变量不能被重复定义。 2. VC是区分大小写的。

3. VC数组或结构体从0开始计数。

4. 循环语句只对它后面的第一语句起作用,如果想对多个语句起作用,则用{}括起来。 5. “Break”语句必须在一个循环体里。

6. 文件的读写目录用“\\\\”表示,如果文件与工作平台在同一目录下,读取文件时可

以不加路径,只写文件名即可。

三、程序设计指导

1. 数据的读入和读出:潮流计算的原始数据存放在in.txt,计算的最终结果存放在

out.txt文件中。下面以形成导纳矩阵为例,说明数据的读写,导纳矩阵存储在GGBB.txt中。

2. 数据文件的建立是根据IEEE9.doc建立的,数据格式根据个人读取数据的喜好建立,

不做具体要求,原则是能够取到自己希望取到的数据即可。

3. 前代回代法求解线性方程组的计算方法可以参考,在头文件NEquation.h中定义和

实现。这个文件定义了一个NEquation类,该类有四个公有成员函数,对一个线性方程AX=b,他们的使用方法分别是:

1

电力系统潮流上机课程设计教学指导书

首先定义一个类对象:NEquation equ;这表明equ是一个类NEquation的实例,对该对象赋值调用成员函数来实现方程的求解。

ii. 定义方程维数:equ.SetSize(n),表明这是一个求解n维线性方程的问题,即

A是一个n×n阶矩阵,而x和b都是n维列向量。

iii. 给系数矩阵赋值:equ.Data(i, j)=aij,给矩阵A的每个元素赋值aij。 iv. 给自由矢量b赋值:equ.Value(i)=bi,给矢量b的每个元素赋值bi。 v. 解方程:equ.Run(),方程求解,将计算结果放在矢量b中,要想查看计算结

果,必须使用Value这个函数将其输出,即输出到程序中定义好的数组或者直接写到文件中。例如对9节点系统:

int x[9];

ofstream out(“out.txt”); for( int i=0; i<9; i++ ) {

x[i]=equ.Value(i);

out << “x[” << i << “]=” << equ.Value(i) << endl; }

4. 导纳矩阵的形成,可以参考函数MakeY。使用函数MakeY必须建立相应的数据结构,

如果不希望建立相应的数据结构,可以根据其中的方法自己编写适用于自身数据结构的函数模块或程序。MakeY输入参数有5个,第一个是节点个数,第二个支路个数,第三个是支路参数信息,这里是一个数据结构,包含支路首末端节点编号以及支路参数和类型。第四个和第五个参数分别是用来存储节点导纳矩阵的实部和虚部的矩阵,这两个矩阵在函数执行结束后被修改,记录了计算结果。函数参考MakeY.cpp,其中数据定义见头文件DataDesign.h。

i.

四、基础知识

1. 支路追加法形成导纳矩阵。

一条首末端节点分别为i和j,并且支路导纳为yb的支路对节点导纳矩阵的贡献表

现在四个位置上,即

那么节点导纳矩阵则为:

相当于b个单元的叠加,每个单元表示一条支路对节点导纳矩阵的贡献。如果把每个单元想象成一个N×N见方的透明胶片,每片最多在四个位置上有非零元素,把b片这样的单元叠在一起,透过胶片看过去,我们就得到了Y矩阵。

2

电力系统潮流上机课程设计教学指导书

2. 失配量的求解。

《电力系统稳态分析》P161页,极坐标潮流计算方程,失配量即是?P和?Q。

?Pi?PGi?PLi??UiUj??Gijcos(?i??j)?Bijsin(?i??j)??j?1n

?Qi?QGi?QLi??UiUj??Gijsin(?i??j)?Bijcos(?i??j)??j?1n

3. 牛顿法潮流计算。

《电力系统稳态分析》P157页,牛顿法潮流计算方法的思想是将电力系统非线性方程组一阶泰勒展开,忽略高阶项,得到如下的迭代形式:

J?x(k)?f(x(k))x(k?1)?x(k)??x(k)

可以看出,第一式即是形如AX=b的线性方程,可以采用求解线性方程组的模块进行计算。其中f(x(k))就是根据当前电压和相角计算得到的?P和?Q。只是需要注意的是,采用极坐标形式进行潮流计算时,?P的维数对应PV和PQ节点个数的总和,也就是对每个PV或PQ节点,都有一个有功失配量方程,而?Q的维数对应PQ节点的个数,即对每个PQ节点,才有无功失配量的方程,这样方程个数和状态量的个数是相等的。 4. 形成雅克比矩阵。

雅克比矩阵就是牛顿法潮流计算中的系数矩阵J。

雅克比矩阵的形成可参见《电力系统稳态分析》P161-P162,其中r是PV节点的个数,n-r是PQ节点的个数。

编写:刘崇茹

3