牛顿-拉夫逊法潮流计算总体设计_第1页
牛顿-拉夫逊法潮流计算总体设计_第2页
牛顿-拉夫逊法潮流计算总体设计_第3页
牛顿-拉夫逊法潮流计算总体设计_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、牛顿 -拉夫逊法潮流计算总体设计1 程序接口输入文件包括五个测试文件,分别为5.txt, 14.txt, 30.txt, 57.txt, 118.txt 。(具体格式说明见第 4 节)。 每个算例的程序输出文件为计算结果.xls,导纳矩阵 .txt,迭代结果 .txt。2 设计语言采用 c+ 语言 ,模块化编程 ,可以方便安全的实现函数调用功能.。3 设计思路源 程 序 包 括 以 下 文 件 :ReadData.h, CReadData.cpp, GeneralInfo.h,GeneralInfo.cpp,NodeOptimize.h, NodeOptimize.cpp, YMatrix.h

2、, YMatrix.cpp, Jacobi.h, Jacobi.cpp, PowerFlow.h, PowerFlow.cpp, Flowmain.cpp.头文件主要完成导入程序运行所用的各文件包,对各种数据/结构体、类的定义。(对变量和类的说明参见程序中的注释部分)。 各 cpp 文件主要是对类的实现,包括子函数的实现和对象的使用。牛顿 -拉夫逊潮流计算的主流程如下图所示:主程序开始定义所需变量读入原始数据节点优化编号形成导纳阵形成修正方程及其因子表 ,迭代求解打印输出结果下面就详细说明各功能块的实现3.1定义计算所用的系统变量程序的具体实现由GeneralInfo.h 和 GeneralI

3、nfo.cpp 完成。具体定义的系统变量如下表:内容变量名称类型说明系统信息m_SystemInfoSystemInfo一般线路信息*m_LineInfoLineInfo结构体中的变量详细见 GeneralInfo.h变压器支路信息*m_TransformerInfoTransformerInfo节点信息*m_BusInfoBusInfo作为程序计算的全局变量,在进行某一类潮流计算中这些变量成为公用变量。在进行计算时,减少了数据声明的冗余,也方便了对于统一参数的调用。3.2读入原始数据信息程序具体实现由 ReadData.h 和 CReadData.cpp 完成。其中,完成这一功能的实体函数是

4、 CReadData 类中的 Read (char *) 函数,传递的形参为原始数据文件名。由于原始数据文件的特点,每一组数据的长度未知,所以先利用标准程序库中的vector容器可以自动动态分配内存的特性,使用 vector 对原始数据文件进行读取,然后将读入的数据赋值到相应的变量中。 在程序中还对原始数据中没有, 但是进行计算时需要的信息进行了计算,比如节点个数,节点电压模值等。3.3节点优化编号程序具体实现由NodeOptimize.h 和 NodeOptimize.cpp 完成。程序中实现了静态优化编号、半动态优化编号和动态优化编号三种优化编号方式。三种节点优化方式分别由NodeOpti

5、mize 类中 StaticOptimize ()函数、 HalfDymOptimize() 函数和 DynamicOptimize() 函数实现。具体优化算法见现代电力系统分析32 页。节点优化编号完成后,将一般支路的端点号、变压器支路的端点号和节点编号进行调整,使原始的节点号更新为新的节点编号,并且将节点信息数组按照新的节点编号大小重新排列, 即使其数组下标和节点编号对应, 方便在以后的计算中读取节点信息。 这个功能是由 NodeOptimize 类中 AdjustNodeNo() 函数实现的。3.4形成导纳矩阵程序具体实现由YMatrix.h和 YMatrix.cpp完成。程序中实现了稀

6、疏导纳矩阵的形成,由YMatrix类中 SpareYMatrix() 函数实现。首先,将一般支路和变压器支路的端点编号进行调整,将编号较小的端点统一作为一般支路和变压器支路的出点, 将编号较大的端点统一作为一般支路和变压器支路的收点。在形成导纳阵时,通过对支路 (包括一般支路和接地支路) 和变压器支路节点出点和收点的遍历, 可以得到每行对应的非零元素的位置信息, 然后通过对支路类型的判断, 根据不同的支路按照不同方式计算导纳,最后放到稀疏矩阵的相应的位置上去。在程序中考虑了双回线的影响。因为双回线始终是排在相邻的两个支路,所以通过比较当前处理的支路和上一条处理的支路的端点号是否一致,就可以判断

7、出是否为双回线。形成导纳阵之后,得到了导纳阵的上三角非零元素,对角元素, 上三角非零元素的行首地址和列号。3.5形成修正方程程序具体实现由Jacobi.h 和 Jacobi.cpp 完成。在程序中对修正方程式采取了按节点边形成边消去的过程,在形成雅克比矩阵元素的同时积累常数项,减少了迭代过程中的运算量。这个功能主要是由Jacobi 类中 FormJacobi()和 FormFactorTable(int) 函数完成的。因为在对雅克比矩阵进行消去形成因子表的过程中,会产生注入新的注入元,使得因子表的稀疏存储结构和雅克比矩阵不一样,所以在程序中预先计算出注入元的个数,位置。这个功能是由 GetNe

8、wInNum ()函数完成的,在这个函数中还根据导纳阵的存储结构,消除掉平衡节点所对应的行和列,建立了雅克比矩阵的存储结构。3.6进行潮流计算程序具体实现由PowerFlow.h 和 PowerFlow.cpp 实现。PowerFlow 类的 GetDeltaV() 函数对修正方程就行回代运算,得到了各节点电压的修正量。然后, PowerFlow 类的 PFlow() 函数根据个节点功率误差的情况和最大的迭代次数,进行迭代,最终计算出各节点的电压幅值和相角。3.7打印输出结果程序具体实现由PowerFlow.h 和 PowerFlow.cpp 实现。利用计算出得节点电压幅值和相角进行节点相关数据计算和支路相关数据计算,并且将结果输出到输出文件中。这个功能由PowerFlow 类的 OutputResult ()函数实现。4 输入文件说明数据文件存储基本信息包括:1控制信息:节点优化方式最大允许迭代次数迭代精度基准容量基准电压end方式名称值为0,计算时采用直角坐标形式;为1,则采用极坐标形式。2线路数据和接地支路数据:线路数据:首端节点名末端节点名接地支路数据(两端节点名相同):节点名节点名线路电阻电导电抗电纳充电电容容纳之半任意数end3.变压器数据:标准侧节点名非标准侧节点名电阻电抗非标准变比end4.发电机数据:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论