电力系统湖流上机课程设计教学指导书 电力系统潮流上机课程设计教学指导书(适用于Vc) 一、基础知识的要求 掌握VC环境的建立,建立一个空的或者“hello world”的DOs工作平台 2。学握函数的定义,头文件的使用,函数调用方法。了解类的概念,建立类对象,学 会调用类成员函数。 3.掌握数据文件的打开和关闭,学会自己根据系统数据建立数据文件,并读取数据。 学会将计算结果写到文件中 4.对VC环境的掌据 i打开工作平台:fle->open workspace(file->recent workspace) i打开工作平台中的文件:选择fileview页,在source file中双击想打开的.cpp文 件,或者在header file中双击想打开的.h文件。 ii.保存文件:ctrl+s 将已有文件加入当前工作平台中:如果是 cpp文件,则选中0 e。单击 键,选择add file to folder,.加入希望加入的cpp文件。如果是h文件,则选中 header file,单击右键,选择add file to folder,.加入希望加入的头文件, 编译:所有的程序写完之后需要进行编译。编译可以选择Build按钮,也可以用 快捷键F7进行编译。如果有语法错误,则会在output的build页显示出来,逐 个双击定位,处理错误。解决间懒 调试: 设置断点 9),进入调试状态或者执行至下一个断点(F5,或者点击界 面上的“Go”按钮),单步执行(FI0),进入子函数(FI1),执行到鼠标所在位 置(ctr+F10),结束调试(shif+F5), vi运行:运行可以点击界面上的“叹号”按钮,也可以使用快捷键ct+F5,使用 这个命令时,所设置的断点是不起作用的 5. 《电力系统稳态分析》教材中第四章涉及到的基本知识 二、设计注意事项 1,变最和数组的定义要写在函数的开头。 2.语句的结尾需要用分号(:) 3 注意英文字符和中文字符 C+中大小写敏感, 5.数组或结构体从0开始计数 6.循环语句只对它后面的第一语句起作用,如果想对多个语句起作用,则用{括起来。 7.同样的符号不能既定义成单独变量,又定义成数组,这样程序会出错。 R“Bk”语句必须在一个环体里。 9 文件的读写目录用“”表示,如果写在程序目录中则不用加目录 10. 建议用《电力系统稳态分析》书中的例4-3来校验结果是否正确。 11. 不要在实验室吃东西 三、程序设计指导 文件读入 和输出(Example2) 1.数据的读入和读出:潮流计算的原始数据存放在009ieee.dat当中,文件格式说明 为cdf.txt 2.这里用到了两个结构数组Bus和Line,分别用于存储节点数据和支路数据,具体 1
电力系统潮流上机课程设计教学指导书 1 电力系统潮流上机课程设计教学指导书(适用于 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. 语句的结尾需要用分号(;) 3. 注意英文字符和中文字符 4. C++中大小写敏感。 5. 数组或结构体从 0 开始计数。 6. 循环语句只对它后面的第一语句起作用,如果想对多个语句起作用,则用{}括起来。 7. 同样的符号不能既定义成单独变量,又定义成数组,这样程序会出错。 8. “Break”语句必须在一个循环体里。 9. 文件的读写目录用“\\”表示,如果写在程序目录中则不用加目录。 10. 建议用《电力系统稳态分析》书中的例 4-3 来校验结果是否正确。 11. 不要在实验室吃东西 三、程序设计指导 文件读入和输出(Example2): 1. 数据的读入和读出:潮流计算的原始数据存放在 009ieee.dat 当中,文件格式说明 为 cdf.txt。 2. 这里用到了两个结构数组 Bus 和 Line,分别用于存储节点数据和支路数据,具体
电力系统湖流上机课程设计教学指导书 定义参见pfDatatype.h文件 3.为读取文件,需要用到C+语言中文件输入输出和字符串功能,通过头文件引入到 程序当中 具体用法参见Example2 #include #include #include "pfDataType.h" sinclude 4.输出有两种选择 一种是输出到文件,一种是输出至窗口 节点导纳矩阵的生成(Example3) 1.在读入所有母线数据和线路数据之后,即可生成节点导纳阵。在数学上,节点导纳 阵是一个复矩阵,由于标准C+中不支持复数运算,我们采用实部和虚部分别计算 存放的方式来进行。节点导纳矩阵的生成方法可参见《电力系统稳态分析》一书 D115118页 2. 为降低同学们的编程难度,Example3中提供了pfMatrix类,用于对矩阵的处理和 求解。具体参见Example3 功率方程计算(Example4) 1.利用节点电压、相角及节点导纳阵即可进行功率方程的计算。具体参见《电力系统 稳杰分析》一书p123-126页 需要注意方程的顺序和母线顺序 不完全相同 Jacobi矩阵生成及线性方程组的求解(Example5) 1,利用节点电压、相角及节点导纳阵即可进行功率方程的计算。具体参见《电力系统 稳态分析》一书P132~134页 2,需要注意Tacobi矩阵的顺序和母线的顺序 3 线性方程组A求解方法已经给出 pfMatrix类的solve方法。 量传入solve方法,求解结果存储于b数组当中. 牛顿法计算潮流 1.在上述工作的基础上,就可以用牛顿法计算潮流。需要学生新建 一个新的Proiec 并结合前期工作,完成最终的湖流程序,这个版本也 是最终上交版本。牛顿法具付 流程可参见《电力系统稳态分析》一书P134~135页 四、基础知识 1.支路追加法形成导纳矩阵 条首末端节点分别为1和j,并且支路导纳为,的支路对节点导纳矩阵的贡献表 现在四个位置上,即 -yy 那么节点导纳矩阵则为: - 2
电力系统潮流上机课程设计教学指导书 2 定义参见 pfDatatype.h 文件。 3. 为读取文件,需要用到 C++语言中文件输入输出和字符串功能,通过头文件引入到 程序当中,具体用法参见 Example2. #include // #include #include "pfDataType.h" #include 4. 输出有两种选择,一种是输出到文件,一种是输出至窗口. 节点导纳矩阵的生成(Example3) 1. 在读入所有母线数据和线路数据之后,即可生成节点导纳阵。在数学上,节点导纳 阵是一个复矩阵,由于标准 C++中不支持复数运算,我们采用实部和虚部分别计算 存放的方式来进行。节点导纳矩阵的生成方法可参见《电力系统稳态分析》一书 P115~118 页。 2. 为降低同学们的编程难度,Example3 中提供了 pfMatrix 类,用于对矩阵的处理和 求解。具体参见 Example3 功率方程计算(Example4) 1. 利用节点电压、相角及节点导纳阵即可进行功率方程的计算。具体参见《电力系统 稳态分析》一书 P123~126 页 2. 需要注意方程的顺序和母线顺序并不完全相同。 Jacobi 矩阵生成及线性方程组的求解(Example5) 1. 利用节点电压、相角及节点导纳阵即可进行功率方程的计算。具体参见《电力系统 稳态分析》一书 P132~134 页 2. 需要注意 Jacobi 矩阵的顺序和母线的顺序 3. 线性方程组 AX=b 求解方法已经给出,采用 LU 分解及前代回代算法。具体参见 pfMatrix 类的 solve 方法。其中 A 矩阵就是 pfMatrix 的矩阵,b 为数组,作为变 量传入 solve 方法,求解结果存储于 b 数组当中。 牛顿法计算潮流 1. 在上述工作的基础上,就可以用牛顿法计算潮流。需要学生新建一个新的 Project, 并结合前期工作,完成最终的潮流程序,这个版本也是最终上交版本。牛顿法具体 流程可参见《电力系统稳态分析》一书 P134~135 页 四、基础知识 1. 支路追加法形成导纳矩阵。 一条首末端节点分别为 i 和 j,并且支路导纳为 b y 的支路对节点导纳矩阵的贡献表 现在四个位置上,即 那么节点导纳矩阵则为:
电力系统湖流上机课程设计教学指导书 相当于b个单元的叠加,每个单元表示一条支路对节点导纳矩阵的贡献。如果 把每个单元想象成一个NXN见方的透明胶片,每片最多在四个位置上有非零元素, 把b片这样的单元叠在一起,透过胶片看过去,我们就得到了Y矩阵 Y- 为% 2.失配量的求解 《电力系统稳态分析》P161页,极坐标潮流计算方程,失配量即是△P和AQ, AP=Pa-P-UU,[G,cos(0-0,)+B,sin(-0] AQ.=Qa-Q-UU,[G,sin(@.-0)-B,cos(0-0,)] 3.牛顿法潮流计算。 《电力系统稳态分析》P157页,牛顿法潮流计算方法的思想是将电力系统非线性方 程组一阶泰勒展开,忽略高阶顶,得到如下的迭代形式: 可以看出,第一式即是形如AX电的线性方程,可以采用求解线性方程组的模 块进行计算。其中x“)就是根据当前电压和相角计算得到的△P和△Q。只是需要 注意的是,采用极坐标形式进行潮流计算时,AP的维数对应PV和PQ节点个数的 总和,也就是对每个PV或PQ节点,都有一个有功失配量方程,而AO的维数对应 PQ节点的个数,即对每个PQ节点,才有无功失配最的方程, 这样方程个数和状态 量的个数是相等的。 4.形成雅克比矩阵。 雅克比矩阵就是牛顿法潮流计算中的系数矩阵J。 J= TH NT LM LI 雅克比矩阵的形成可参见《电力系统稳态分析》P161一P162,其中r是PV节点的 个数,n-r是PQ节点的个数
电力系统潮流上机课程设计教学指导书 3 相当于 b 个单元的叠加,每个单元表示一条支路对节点导纳矩阵的贡献。如果 把每个单元想象成一个 N×N 见方的透明胶片,每片最多在四个位置上有非零元素, 把 b 片这样的单元叠在一起,透过胶片看过去,我们就得到了 Y 矩阵。 2. 失配量的求解。 《电力系统稳态分析》P161 页,极坐标潮流计算方程,失配量即是 P 和 Q 。 1 1 cos( ) sin( ) sin( ) cos( ) n i Gi Li i j ij i j ij i j j n i Gi Li i j ij i j ij i j j P P P U U G B Q Q Q U U G B 3. 牛顿法潮流计算。 《电力系统稳态分析》P157 页,牛顿法潮流计算方法的思想是将电力系统非线性方 程组一阶泰勒展开,忽略高阶项,得到如下的迭代形式: ( ) ( ) ( 1) ( ) ( ) ( ) k k k k k J x f x x x x 可以看出,第一式即是形如 AX=b 的线性方程,可以采用求解线性方程组的模 块进行计算。其中 ( ) ( ) k f x 就是根据当前电压和相角计算得到的 P 和 Q 。只是需要 注意的是,采用极坐标形式进行潮流计算时, P 的维数对应 PV 和 PQ 节点个数的 总和,也就是对每个 PV 或 PQ 节点,都有一个有功失配量方程,而 Q 的维数对应 PQ 节点的个数,即对每个 PQ 节点,才有无功失配量的方程,这样方程个数和状态 量的个数是相等的。 4. 形成雅克比矩阵。 雅克比矩阵就是牛顿法潮流计算中的系数矩阵 J。 雅克比矩阵的形成可参见《电力系统稳态分析》P161-P162,其中 r 是 PV 节点的 个数,n-r 是 PQ 节点的个数。 编写:刘崇茹 修正:孙英云 2010 年 12 月 13 日