摘 要
本文分别对4节点电力网络,5节点电力网络和30节点的电力网络进行简单的电力网络的潮流计算,采用 C++软件平台编制潮流程序,分别采用牛拉法和PQ快速解耦法编制了两个程序,通过对比两种算法的计算结果、迭代精度和迭代次数,进而分析得出两种潮流计算机方法的特点。
电力系统的潮流计算是用来监测和研究有关于电力系统稳态运行状况的基本计算,是电力系统规划设计、运行与分析的基本工具。为提高电力网络系统自动化操作的快速性及准确性,而且让系统可以进行安全、系统地进行实时分析,电力网络的潮流变化信息是一项重要的资源,所以对于电力网络进行潮流计算是现在潮流计算的发展的一个方面。
本文的主要内容就是基于简单电力网络地潮流计算设计,结合牛顿-拉夫逊法潮流计算,采用PQ快速解耦发潮流计算程序,完成基于C语言的电力系统潮流计算程序的设计。在电力系统在正常运行的情况下,通过对电力系统的潮流(功率、电压、相角等)来对电力系统网络的某一个特定时间点的运行状态进行描述。本文基于以上的基础知识对于电力系统网络潮流计算进行了设计、仿真,并且分析了在不同场景两种计算方法的结果精确度。
关键词:C++编程;潮流计算;牛顿-拉夫逊算法;PQ快速解耦法;迭代比较
I
湖南工业大学本科生毕业设计(论文)
ABSTRACT
Electric power network, this article respectively to four node 5 node power network with 30 nodes of power network to carry on the simple electric network power flow calculation, using c + + software platform trend program, with rafa and PQ fast decoupling method created two programs, by comparing the calculation results of two algorithms, iterative precision and the number of iterations, then analysis the characteristics of the two methods of trend of the computer。
Flow calculation of power system is used for monitoring and research on the condition of power system steady state operation basic computing, is the analysis of power system planning and design, operation and basic tools.In order to improve the rapidity and accuracy of electric power network automation system, and make the system can real-time security, system analysis, the trend of the power network change is an important information resources, so the power flow calculation for power network is now an aspect of the development of the power flow calculation.
The main content of this article is based on simple network power flow calculation of design, combined with the Newton - Ralph method flow calculation, the PQ fast decoupled power flow calculation program, complete the power system flow calculation based on the C language program design.In the case of a power system in normal operation, through to the trend of the power system (power, voltage, phase Angle, etc.) to the power system network operation state of a particular point in time is described.In this paper, based on the above basic knowledge of network power flow calculation for power system with the design, simulation, and analyzed the result precision of two calculation methods in different scenarios.
Key Words:C + + programming;Power flow calculation; Newton - Ralph monson algorithm; PQ fast decoupled method; Iterative comparison
II
湖南工业大学本科毕业设计(论文)
目录
摘 要 .......................................................................................................................... I ABSTRACT .................................................................................................................II 第一章 绪 论.............................................................................................................. 1
1.1研究背景........................................................................................................ 1 1.2发展历史........................................................................................................ 1 1.3本文主要工作................................................................................................ 2 第二章 电力网络的数学模型及求解方法................................................................ 3
2.1节点导纳矩阵................................................................................................ 3
2.1.1节点导纳矩阵的形成......................................................................... 3 2.1.2变压器的∏型等值电路 ..................................................................... 4 2.1.3节点导纳矩阵的修改......................................................................... 6 2.2高斯消去法.................................................................................................... 7 2.3因子表和三角分解........................................................................................ 9 2.4稀疏技术...................................................................................................... 10 2.5电子网络节点编号优化.............................................................................. 11 第三章 电力系统潮流计算...................................................................................... 14
3.1潮流计算问题的节点类型.......................................................................... 14 3.2潮流计算方法.............................................................................................. 14
3.2.1潮流计算方法简介........................................................................... 14 3.2.2牛顿-拉夫逊法和PQ分解法的特点 .............................................. 15 3.2.3牛顿-拉夫逊潮流计算过程 ............................................................. 17 3.2.4牛顿-拉夫逊潮流计算程序流程图 ................................................. 20 3.3潮流计算的约束条件.................................................................................. 21 第四章 牛拉法编程实现.......................................................................................... 22
4.1算例说明...................................................................................................... 22 4.2算例原始数据(以IEEE-4节点为例).................................................... 22
4.2.1节点数据........................................................................................... 22 4.2.2 第二部分:支路数据...................................................................... 23 4.2.3数据文件输入范例........................................................................... 24 4.3数据结构简介.............................................................................................. 24 4.4子函数功能: ................................................................................................ 27 4.5程序基本流程图: ........................................................................................ 27 4.6潮流计算编程运行...................................................................................... 29
III
湖南工业大学本科生毕业设计(论文)
4.6.1潮流计算编程运行计算结果........................................................... 29 4.6.2潮流计算编程运行计算结导出文件............................................... 29 4.6.5结果校验........................................................................................... 30
第五章PQ快速解耦法编程实现 ............................................................................ 32
5.1算例说明...................................................................................................... 32 5.2算例原始数据(以IEEE-5节点为例).................................................... 32
5.2.1节点数据........................................................................................... 32 5.2.2第二部分:支路数据....................................................................... 33 5.2.3第三部分:节点数据....................................................................... 33 5.2.4数据文件输入范例........................................................................... 34 5.3数据结构简介.............................................................................................. 34 5.4子函数功能: ................................................................................................ 35 5.5程序基本流程图: ........................................................................................ 36 5.6潮流计算编程运行...................................................................................... 38
5.6.1潮流计算编程运行计算结果........................................................... 38 5.6.2潮流计算编程运行计算结导出文件............................................... 38 5.6.3PQ解耦法和牛拉法的比较 ............................................................. 40 5.6.4PQ解耦法和牛拉法的比较结论 ..................................................... 42 5.6.5结果校验........................................................................................... 42
第六章 电力系统潮流分析程序算例应用.............................................................. 46
6.1潮流计算编程运行计算结果...................................................................... 47 6.2潮流计算编程运行计算结导出文件.......................................................... 48 6.3计算结果的对比分析.................................................................................. 49 总结............................................................................................................................ 53 致 谢.......................................................................................................................... 54 参考文献.................................................................................................................... 55
IV
湖南工业大学本科毕业设计(论文)
第一章 绪 论
1.1研究背景
电力系统潮流计算是研究电力系统稳态运行情况的一种基本电气计算。它的任务是根据给定的运行条件和网路结构确定整个系统的运行状态,如各母线上的电压(幅值及相角)、网络中的功率分布以及功率损耗等。它既是对电力系统规划设计和运行 方式的合理性、可靠性及经济性进行定量分析的依据,又是电力系统静态和暂态 稳定计算的基础[1]。如今,常规的潮流计算法大量应用于电力系统的每个不同的领域之中,单一般的潮流计算法不够全面过于单一,所以它并不能充分考虑整个系统在运行时多方面的情况[2]。有时当我们选择不一样的发电机节点来作平衡节点时潮流计算的结果也会因为我们选择的不一样而出现不一样的结果。所以在不同的场合和不同的需求条件下,出现了一些以常规潮流计算作为基础的又在不同的情况下具有相应功能的其他潮流算法。牛顿-拉夫逊计算方法及其变形是如今在电力系统中被人们广泛采用的计方算法,而且这些方法已经成功运用在大部分的输电网络中。
将牛拉法与C + + 语言相结合编制程序的方法,可以用于大规模复杂电力系统潮流问题,具有良好的收敛性[3]。如果想顺利实现C++语言的编程,则必须要结合电力系统潮流分析的计算流程图和C++语言的编程特性,利用C++语言实现电力系统潮流计算,应先对对电力系统潮流分析模型和算法的发展历程进行了综述,然后详细研究了基于PQ分解法的电力系统潮流计算模型,并给出了该潮流算法的计算流程图,研究稀疏技术在潮流计算中的应用,最后利用C语言开发了潮流分析软件[4][5]。
因此,我们需要在学习工作中对于电力系统的潮流计算来研究,通过不断地完善来使得潮流计算法有更大的进步和发展,让潮流计算法可以更好地与快速发展的电力系统相结合,满足我们的要求。
在电力系统分析技术的不断发展、不断进步与电力市场化的发展, 如何应用计算机图形技术有效显示大量潮流和电压等数据是一项非常重要的研究课题[6]。
1.2发展历史
电力系统潮流计算问题在数学上是一组多元非线性方程式求解问题,其解法都离不开迭代。因此,对潮流计算方法,首先要求它能可靠地收敛,并给出正确答案[7]。由于电力系统结构及参数的一些特点,并且随着电力系统不断扩大,潮流问题的方
1
湖南工业大学本科生毕业设计(论文)
程式阶数越来越高,对这样的方程式并不是任何数学方法都能保证给出正确答案的。这种情况成为促使电力系统计算人员不断寻求新的更可靠方法的重要因素[8]。
潮流计算经过了多年的发展和改变,经历了一个由手动到自动化的过程,这也是我们正在追求的,希望可以通过不断地完善、改进使得潮流计算更加的简单快捷。随着科技的不算发展,电子计算机技术的不断提高,1956年计算机潮流计算程序的诞生,也标志了数字电子计算机在潮流计算中的应用。之后在19世纪60年代,人们又提出了用牛顿法来解决电力系统的潮流问题。经过了一代代的不断修改,为了满足不同情况下的需要出现了快速解耦法、直流法等算法。
虽然我们所知道的潮流算法是多种多样的,但是在计算改进的过程中我们需要基于以下四个基本要求;(1)可靠收敛;(2)有较快的运算速度;(3)在使用的过程中方便并且可以满足不同情况下的需要;(4)对于计算机的内存占用量较少。以上四点也是我们一般情况下对于不同的潮流计算法来进行评价的中要依据。
虽然现今的潮流计算计算机算法已比较成熟,但仍存在不少尚待解决的问题,如:各种牛顿潮流算法,对于某些病态条件可能导致不收敛的问题;潮流计算的多解现象及机理;在重负荷情况下,邻近多根与电压不稳定的关联。由于最优潮流能够把系统 的安全性和经济性融为一体,并能够提供用于提高系统安全经济性能的决策依据,将成为现代能量管理系统的核心应用软件之一。当前无论是在实践上还是理论上,均有许多问题需待解决,特别是如何快速求解成千上万个大规模非线性规划问题[9]。
1.3本文主要工作
将牛拉法与C + + 语言相结合编制程序的方法,可以用于大规模复杂电力系统潮流问题,具有良好的收敛性。本文的主要工作是:
(1)渗入研究电力系统潮流分析计算的流程,准备绘制电力系统潮流分析的流程图。
(2)熟悉C++的编译环境,精通其常用语言表达,实现流程图和语言习惯的统一。
(3)在上述的工作中利用潮流计算编写关于牛拉法和PQ快速解耦法这两种潮流计算程序;
(4)对比牛顿法和PQ法对于标准系统IEEE节点的计算结果,迭代次数,迭代精度,说明不同算法的特点和优势。
(5)尝试用所编的程序进行IEEE30等大系统的实例分析。
2
湖南工业大学本科毕业设计(论文)
第二章 电力网络的数学模型及求解方法
2.1节点导纳矩阵
2.1.1节点导纳矩阵的形成
电力网络的节点电压方程:
IBYBUB (2-1) 在公式2-1中IB表示的是节点的输入电流,输入电流是具有方向性的,在实验中我们将输入电流规定为正,将输出电流规定为负。因此,我们规定网络节点电流流入的方向为正方向、电流流出的方向为负方向。公式2-1UB表示的是节点电压的列向量,同时因为节点电压是相对于选取的参考节点所决定的,因此在研究过程中我们需要先设定一个参考节点。 在电网的潮流计算中,通常我们会选定大地作为零电势参考节点,但是,如果在整个电力网络中都没有接地分支,参考节点应选择一个特定的节点。设电力网络中的除去参考节点的节点数,则IB,UB均是N* N列向量。YB为n阶方阵的节点导纳矩阵[13]。
节电导纳矩阵的节点电压方程:
IBYBUB (2-2) 展开为:
Y11I1I2Y21Y31I 3InYn1Y12YY23Y3313Y22Y32Yn2Yn3Yn1U1Y2nU2Y3nU3 (2-3) YnnUn公式2-2中的YB是节点导纳矩阵,它是一个N*N阶的,网络中不算参考节点的节点数就是它的阶数。Yii(i=1,2,n)为系统中的自导纳,指的是节点导纳矩阵中的对角元素。根据定义可以写出自导纳的表达式:
U0,jYiiI/ i) (2-4) iU(ij其中,Yii在数值上为i节点上直接连接的各支路导纳相加而成。
2,,n;i1,2,,n;ji),互导纳Yij指的矩阵中的非对角元素(j1,其数值等于
当其他节点全部接地的情况下,给节点i施加一个单位电压,通过节点j流入电力网络的电流,因此,我们可以写出如下的表达式:
3
湖南工业大学本科生毕业设计(论文)
/U(U0,ji) (2-5) YjiIjiij两个节点之间的互导纳Yij在数值上相当于两个节点之间导纳相加的负值。根据这一特点会有恒Yij等于Yji。我们可以发现出节点导纳矩阵其实就是一个对称的稀疏矩阵。
因此,节点导纳矩阵YB就是一个稀疏矩阵。在电力系统网络中,存在一些节点之间它们没有任何支路相连,这时候Yij=0。这种情况并不是特殊情况,相反在现实中的电力网络这种情况也十分常见。我们可以用稀疏度来定义矩阵的稀疏性,在数
2值方面,稀疏度的数值等于矩阵中的零元素与总元素个数之比,即SZ/n,式中
Z 表示的是YB中的零元素。S的大小它会随着节点数变化,S增大n就会增大,当n=50时,S可以达到92%;当n=100时,S 可以达到90%;当n=500时,S可以达到99%。所以我们可以利用节点导纳矩阵,利用它的稀疏性来减少对计算机储存空间的占用,这样一来就可以提高计算机的运算速度,我们把这样的技术就是稀疏技术。
2.1.2变压器的∏型等值电路
在实际电力网络中纯导纳的网络是很少见的,最常见的便是带有变压器支路的电力网络。变压器型等值电路是在人们不断总结利用计算机计算导纳矩阵的经验,进而总结出的适合复杂网络潮流计算的一个模型。我们可以用一个阻抗、一个理想变压器相串联来表示变压器的π型等值模型,其中有一个理想变压器是一个带有变比KU1/U2参数的变压器。根据变压器阻抗实际变比归算到变压器低压侧为例,可以画出如图2.1、图2.2所示的变压器型的等效电路图。
图2.1双绕组变压器原理图
图2.2变压器阻抗折算到低压侧后的等值模型
流入和流出理想变压器的功率相等
I U11U1I2/K (2-6)
I/K (2-7) I12 4
湖南工业大学本科毕业设计(论文)
式2-7中, KU1/U2是理想变压器的一个变比参数,U1指的是变压器高,U2指的是低绕组的实际电压。由图2.2可以得到:
进而可得:
U1IZ (2-8) U22TK
U1U2YTU1YTU2 I 1 K2ZTKZTK2K(2-9)
UUYU12T1 (2-10) I2=-=-YUT2KZTZTK式2-9、2-10中YT1/ZT,又通过标准节点的电流方程式得到如下形式:
=Y (2-11) I111U1+Y12 U+I -2Y21U1Y2 2 (2-12) 2U将式2-10与2-11、2-12二者进行比较,可得:
Y11=YT/2K,Y12=-YT/K; (2-13)
/ K Y21=-Y,Y22=YT。 (2-14) T因此可得各支路导纳为:
1-KYT (2-15) Y10=Y11-Y12=2KK-1Y20=Y22-Y21=YTK用以上的方法可以得到用导纳表示的变压器,它的等值电路图如图2.3所示:
Y12=-Y21=YT/KY21=-Y12=YT/K
图2.3变压器的∏型等值电路(i,j为节点)
K
5
湖南工业大学本科生毕业设计(论文)
2.1.3节点导纳矩阵的修改
图2.4纯电阻节点导纳的∏型等值电路(i,j为节点)
我们在电力系统的运算中,需要去计算各个的节点的运转情况,如:因投入某个支路的变压器导致影响节点导纳矩阵的数值。在这种情况下两个节点之间的变压器元件实际上只影响该支路两端节点的自导纳数值,并且两个节点本身的互导纳,如果需要来再次计算节点导纳矩阵未免太费时费力。这个时候只需要对原有的矩阵作某些适当的修改,即可形成正确的节点导纳矩阵。
如图,当在电力网络中遇到变压器时,我们可以用上节论述的节点导纳矩阵∏型等值电路模型,依据上述模型先形成纯电阻电路的节点导纳矩阵,以此为基础再形成带有变压器支路的导纳矩阵。通过对比纯电阻节点导纳矩阵和变压器π型等值电路,我们就能够计算出节点p和q之间的自导纳以及节点之间的互导纳增量如下:
节点p的自导纳改变量:
Ypp节点q的自导纳改变量:
Yqq11k122 (2-17) kzkzkz1k11 (2-16) kzkzz增加节点p,q间的互导纳:
YpqYqp1 (2-18) kz假设设接线改变前,纯电阻导纳矩阵元素为Yij(0),那么在接线改变之后后变压器支路导纳矩阵就会变为YijYij(0)Yij。
6
湖南工业大学本科毕业设计(论文)
2.2高斯消去法
在电力系统潮流计算中得到雅可比矩阵后,我们的任务就是需要解一组线性方程,这个时候就需要用到高斯消去法。运用高斯消去法来求解解线性方程组,主要可以把它看作是两个过程,首先是需要进行消去运算,接下来是进行是回代运算。在一般情况下,我们在进行电力系统计算时经常使用的是:消去运是按照每一列来进行,回代运算是按照每一行来进行的。那么下面我们就来介绍一下高斯消去法,其他算法就可以以此类推。
假设现在有一个n阶线性方程组:AX=B。在这个方程组中矩阵A的元素可以为实数也可为负数,向量B的元素可以是实数也可以是复数。
因为消去运算只针对A、B来进行,那我们可以把B作为第n+1列放在A的后面,同时形成如下式中A一样的nn1阶增广矩阵:
a11a AAB21an1a12a1nb1a11a22a2nb2a21an2annbnan1a12a1na1,n1a22a2na2,n1 (2-19)
an2annan,n1上式中用aj4n1替代了bj(j1,2,,n)。 按列消去的过程、运算步骤如下所示:
第一步,消去第一列。
首先,把增广矩阵A的第一行化为 式中:
1a11111 1 a12 a13 … a1,n1 (2-20)
a12 (j2,3,,n1) (2-21) a11然后,用式2-21所表示的行消去A的第一列对角线以下各个元素a21,a31,,an1,消去后使得A的第2~n行其他元素转化为
a11jaijai1a11j (j2,3,,n1;i2,3,,n) (2-22)
在上面的公式中上标为(1)表示的是这个元素第一次运算的结果。这时矩阵A变为A1:
A1=A1111a12a1,n1a11n111aaa222n2,n1B1= (2-23) 111an2annan,n1 7
湖南工业大学本科生毕业设计(论文)
和他所对应的方程组是A1XB1,这个方程组与AX=B有相同的解。在矩阵中没有标出的元素我们则认为他为0。
第二步,消去第二列。
首先,把增广矩阵A1的第二行规格化为
220 1 a23 … a2,n1 (2-24)
式中:
211a2ja2j/a22 (j3,4,,n1) (2-25)
11,…,a1,上面公式2-24表示的行消去A1的第二列对角线以下各元素a32,a42n2消去后使得A1的第3~n行其他元素转化为
2112;i3,4,,n) (2-26) a1ja1jar2a2j (j3,4,,n1在公式中:上标为(2)表示该元素的第二次运算之后得到的结果。然后在这时矩阵A1变为A2:
11a121B2= 1a1a13a111,n1n22a2a23a22,n1n22a3 (2-27) a33a33,n1n222anan,n1ann3A2=A2一般地,要进行下述的运算,来消去k列:
kk1k1 akj (jk1,n1) (2-28) akj/akkkk1k1k,,n1;ik1,,n (2-29) akjakja1kakj jk1紧接着,对上面的矩阵A进行了n次消去运算,矩阵A对角线以下的元素全部化为0,即可得到下面所写的增广矩阵:
11a132a23Bn= 1a1a111,n1n2a2a22,n1n3a3 (2-30) a33,n1nn1an,n1An-An
与之对应的方程组是
AnXBn, (2-31)
即
8
湖南工业大学本科毕业设计(论文)
111x1a12x2a13x3a11nxna1,n1222x2a23x3a2nxna2,n133 x3a3nxna3,n1nxnan,n1 (2-32)
它与原方程组AX=B同解。
接下来我们来研究按行回代过程。对于方程组2-31,回代运算应是自下而上进行。根据第n个方程可得到
n rnan,n1 (2-33)
然后将xn代入第n-1个方程,可得到
n1n1xn1ana1,n1n1,nxn (2-34)
再将xn1、xn代入到第n-2个方程,可得到xn2。以此类推求得xi1,xi2,…,
xn,再把已求出的xi1,xi2,…,xn代入第i个方程,即可求出
1x1a1,n1ji1ax1ijnj (in,,2,1,) (2-35)
式2-35为用行回代的方法得到的一般公式。
2.3因子表和三角分解
在我们实际的运算过程中,总会遇到方程组需要进行多次求解过程,每次仅改变其常数项B,但是系数矩阵A是不会发生变话的。那么我们就需要一个更快速的计算方法,所以我们可以使用因子求解的方法来达到目的。
因子表可以说是高斯消去法解线性方程组的过程中,用来记录常数项B的全部运算的一个表格。上面文章曾提到过关于高斯消去法的分类,从上面文章也可以对两类运算方法有所了解。我们要对常数项进行消去运算,消去运算又称为前代运算,在进行运算的过程中,必须得记录过程中所需的运算因子。我们就以按列消去的计算过程作为例子:在消去的过程中,我们对常数项B中的第i个元素bi(即ai,n1)所进行的的运算,包括:
i1 (i1,2,,n) (2-36) biibii1/ank1kbikbik1aikbk (k1,2,,i1) (2-37)
9
湖南工业大学本科生毕业设计(论文)
t1a 我们再将上式中计算出的运算因子at1,at1一行一行地放2,…,t,t1及attt2在下三角部分,我们将它和三角矩阵的元素合在一起,就得到了因子表
a11a21a 31a41an11a121a221a321a421a131a231a331a4311a14a1n1a241a341a442a2n3a3n 4 (2-38)a4n1an21an31n1anann4对于常数项B进行消去运算之后,因子表也可以表示为如下形式:
d11l21l31l41ln1式中:
u12d22l32l42ln2u13u23d33l43ln3u14u1nu24u2nu34u3n (2-39) d44u4nln4dnnn1 dnan (2-40)
1uijaij i<j (2-41)
j1 lijaij j<i (2-42)
在前文中提到了我们对于那些需要多次来求解的方程组的处理方法,那么在得到了这个因子表之后,我们就可以进行对各种不一样常数项B的求解。也可以用下面的公式来直接进行消去运算:
b1ib1i1/dn (2-43)
b1kb1k1l1kbkk ik1,,n (2-44)
以下公式与公式2-19的功能一样,都可以进行回代运算:
n (2-45) xnbnxibiijcos1unijxj (2-46)
2.4稀疏技术
在上节我们探究了电力网络方程的求解,它的求解其实就是依照顺序,然后用因子表里面的元素来对常数向量运算的一个过程。在上文所叙述的式2-44和式2-46我们不难得知,如果在因子表中的某些元素为零,那么他们所相关的乘加运算就可
10
湖南工业大学本科毕业设计(论文)
以进行省略。我们所说的稀疏技术,就是充分利用了电力网络方程组的稀疏特性,减少一些没有必要的计算从而达到提高计算效率的目的[12]。
2.5电子网络节点编号优化
在很多电力系统的计算程序中,我们要求解网络节点方程I=YV时,一般都是使用直接解法来处理。先对得到的导纳矩阵进行三角分解之后,我们就可以对电力网络方程来进行一次次的求解,对各个不一样的右端常数项进行前代运算和回代运算,即可得到电力网络方程的解。
在前文中讲到,导纳矩阵就是一个有很多的零元素的稀疏矩阵,那么那些由导纳矩阵进行分解后得到的三角阵一般来说也应该是一个稀疏矩阵。正常的情况下,导纳矩阵的非零元素分布与由它分解后的三角阵是不一样的,那是因为在消去过程或分解过程中会产生一种新的非零元素,我们把这类元素称为注入.元素。
正常的情况下,在我们消去节点k的时候,那个以k为中心的星形网络将会成为一个网形网络,这个网形网络的顶点是与节点k直接联系的节点。如果和节点k相连的节点,我们假设他的节点数为Jk,那么这个网形网络支路数量应该就是从Jk个
1节点之中随意选取两个节点的组合数Jk(Jk1)。若在节点k消去之前,节
2点k周围Jk个节点之间已经有了Dk条支路,那么在消去节点k后新增加的支路数也可以说是注入元素的个数为:
bk1Jk(Jk1)Dk (2-47) 2经过了上面的讨论我们可以知道注入元素的数量和消去的顺序或者是节点编号有着密切的关系。如下面的图2.4,它表示了一个简单的电力网络的四种不同的节点的编号方案还有在将导纳矩阵三角分解之后,阵中出现了新的注入元素的现象。我们不难看出,当运用不一样的节点编号方案之后,所得到的注入元素的数目也会不相同。
11
湖南工业大学本科生毕业设计(论文)
图2.5节点编号对注入元素的影响
我们常说的节点编号的优化,其目的就是找出一种可以让注入元素数目变得最少的编号方式。我们可以通过比较各种不同的节点编号方案,在三角分解中出现的新增支路数,即注入元素数目,然后选择一种含有注入元素最少的节点编号方案来进行计算,但这种方法我们就需要分析很多种方案而且工作量很大。因此,我们在实际的计算工作中会常常使用一些简单方便的方法,找一个相对优化的节点编号方案,利用即可,并不需要一定去选择一个最简洁的方法。
我们通常将节点编号优化的方法分为以下三大类:
(1)静态地,按最少出线支路数编号,这种方法又称为静态优化法。通常在进行编号之前,我们要先对电力网络中的各节点的出线支路数进行统计,再按出线支路的数量,由少的节点到多的节点的顺序来进行编号。有时会有这样的情况,在电力网络中有n个节点的出线支路数相同,那么就按任何的顺序来对这n个节点编号。可以说这个静态方法比较简单,所需要的接线方式也比较简单,适用于那些环路少的电力网络。
(2)动态地,按最少出线支路数编号,这种方法中每个节点的出现支路是通过原电力网络统计出来的,我们在编号的过程中就看作它是不会改变的。在节点消去过程中,每消去一个节点之后,与该节点相连的各节点的出线支路数将发生变化,所
12
湖南工业大学本科毕业设计(论文)
以,若在每一次消去节点之后,需要迅速修正没有被编号的节点的出线支路数,再选择在过程中出现支路的数量最少的节点来编号,如此我们会得到一个更好的结果。
(3)动态地,按增加出线数最少编号,又可以叫他动态优化法。前面介绍的两种方法,只有可能减少新支路出现的概率,却不能确定可以保证在消去的过程中,消去的节点会出现最少的新支路。所以通过比较和分析,在我看来比较严格的方法应该是:按照消去节点之后增加的出线数量最少的原则来进行编号,但是要使用这种方法,需要做的的工作量要比前两种介绍的方法大很多。
13
湖南工业大学本科生毕业设计(论文)
第三章 电力系统潮流计算
3.1潮流计算问题的节点类型
在电力系统的潮流计算之中,表征各节点运行状态的参数是该点的电压向量及其复功率,也就是说,每个节点都有四个能够表征其运行状态的变量:V、、P、Q 。所以n个节点的电力系统网络有4n个运行参数。
根据不同的电力系统实际的运行情况,一般来说,每一个节点都会给出两个运行参数作为它的已知条件,而另外的两个运行参数则会作为待求量。则依照IEEE原始数据的要求,我们可以大致把电力系统中的节点分成三类:
(1)PQ节点;
这一类节点,已知条件是节点功率(P、Q),待求未知量是节点电压向量(V、)。在PQ节点上工作的发电机,我们又称之为PQ机。通过资料我们可以了解到,在潮流计算的过程中,我们遇到的绝大部分节点都是属于PQ节点。
(2)PV节点:
PV节点是我们可以知道节点的有功功率P和节点的电压V,需要我们求解这个节点的无功功率Q和节点的电压相角。这一类节点需要配置一个有一定调节能力的无功电源,因为无功电源可以维持给定的电压值,这个电压值可以使节点能够正常运行。
(3)平衡节点:
平衡节点是我们可以知道节点电压V和电压相角,待求节点的功率(P、Q),所以它又称为V、节点,平衡节点在整个电力系统中的主要作用是承担系统的功率平衡。在电力系统网络中,平衡节点一般只会设定一个。
3.2潮流计算方法
3.2.1潮流计算方法简介
电力系统潮流计算原理基本方程式:
或者
PijQiVi^YijVi(i1,2,,n) (3-1)
j1n^PijQiVi^YijVi(i1,2,,n) (3-2)
j1n^^ 14
湖南工业大学本科毕业设计(论文)
上述公式中Yij和Zij分别为节点导纳阵和节点阻抗阵的相对应的元素,其中n 为系统的节点数。事实上,潮流计算方程是一组非线性方程,求解潮流计算都需要对方程进行迭代最终无限接近方程根,本质上可以归根于求解一组非线性方程。通过不同的计算方法对潮流计算方程迭代求解,于是就形成了现在主流的不同潮流算法,比如牛拉法、P-Q快速解耦法等等。
目前最得到认可的算法是无疑是牛顿迭代法。用牛拉法来求解非线性方程组的迭代算法所具有的有效性,使得牛拉法受到各界学者的认可。牛拉法将原来的非线性方程进行线性化处理,并且利用线性方程的系数矩阵在结构上是稀疏的非对称矩阵这一个特点,与稀疏矩阵相结合,让计算机在进行潮流计算的过程中所需要占用的内存变少,有效地提高了计算速度。很多学者在牛拉法的基础上研究出P-Q分解法,它是将有功功率P、无功功率Q分开交替迭代,有了这样的简化过程可以使得计算过程变得更加简单,使得计算速度进一步加快,从而成为现今最为广泛使用用的潮流计算的方法。牛拉法一直以来备受关注,许多国内外研究学者仍在努力改进这个算法。因此在这一次的次毕业设计中,我也将继续沿用这个方法来进行潮流计算的编程设计。
3.2.2牛顿-拉夫逊法和PQ分解法的特点
牛顿-拉夫逊法是潮流计算中最基本方法,有很多潮流计算方法都是建立在牛顿-拉夫逊法的基础上而得到的,也可以说牛顿拉-夫逊方法是潮流算法的基础[12]。
牛顿-拉夫逊法具有以下的三种主要特点;
(1)牛拉法的收敛速度非常快,而且它还具有平方收敛特性。 (2)牛拉法也适用于目前大部分有病态条件难以求解的问题;
(3)牛拉法可以与稀疏性技术相互结合,从而减小在计算时所占用计算机的内存。
然而牛顿法作为最基础的潮流计算方法,也存在着诸多的问题,比如:
(1)牛拉法编程有些复杂;
(2)牛拉法对初值有较苛刻的要求,否则无法收敛或者收敛到不在范围的解上; (3)一般情况下,牛拉法无法解决所有病态条件的问题,对重病态条件可能不收敛;
(4)牛拉法的计算量很大。
一般来说,PQ分解法是根据系统有功主要取决于电压相角的变化,无功主要取决于电压模值的变化这两个规律,在牛拉法的基础上进行简化,从而做出以下合理的假设:
(1)在线路两端的相位角之间的差一直保持在一定误差范围内,而且GijBij,并认为cos1;
15
湖南工业大学本科生毕业设计(论文)
(2)假设Q对应的导纳Q/Ui2远远的小于节点的自导纳Bij, 最后得到修正方程式:
PQ分解法特点:
(1) 降低了非线性方程的阶数,用一个(n-1)阶和一个(n-m-1)阶方程取代了牛顿法的(2n-m-2)阶方程,大大减少了内存需量及计算量。上式中n 为系统节点数;m 为PV 节点数;
(2)以常数矩阵取代了随迭代过程变化的雅克比矩阵J,大幅度缩减了多次迭代多花费的时间;
(3)利用对称阵B'、B''T取代了不对称阵J,缩短了三角分解的计算并节约了内存。
因此总体上的来说PQ分解法是具有简单、快速、内存节省且收敛可靠的优点。但是我们不能忽略PQ分解法也存在着自身一些问题,它并不是适用于所有的电力网络系统。当r / x线比太大或由于电路过载导致两个节点之间的相角相差差太多时,收敛特性不好或收敛失效。
众所周知牛拉法是目前用来求解非线性方程最好的方法。牛顿-拉夫逊法的特点是把对非线性方程的求解过程进行计算之后变成反复对非线性方程所相应的线性方程进行求解的过程,通常称这个过程为逐次线性化过程,这也是牛拉法的核心内容。
对于非线性方程组:
f(x)0 (3-4)
P/UB'Q/UBU'' (3-3)
即
fi(x1,x2,,xn)0 (3-5)
(0)(0)(0)其近似解为x1。如果假设近似解与精确解分别相差x1,x1,,xn,,x2,,xn那么下面的关系式成立
(0) fi(x1(0)x1,x(20)x2,,xnxn)0 (3-6)
将上式按泰勒级数展开得
000 fix11,x2,,xnf1f|0x11|0xn0 (3-7) x1x1可以将上式省略去二阶以及更高的高阶项,就可以得到如下所示的线性化方程组;
fix0fi'x0x00 (3-8)
16
湖南工业大学本科毕业设计(论文)
式3-8我们也可以称之为牛顿法修正方程式。由这个公式通过计算我肯可以算出第一次迭代的修正量;
x0fx00fx (3-9)
10求出变量x0和修正量x0的和,我们就可以得到变量的首次改进值x1,然后把第一次迭代后的改进值x1代入进行上述计算进而得到各元素新的修正值,依次类推,不断循环迭代后最终即可获得的足够精确的可行解。所运用到的牛顿法求解的迭代方程式为:
f'xkxkfxk (3-10) xk1xkxk (3-11)
通过上面的公式我们可以看到,牛顿法最关键的一点就是在于它可以不断地形成并且解修方程式。在牛顿法所给定的初始值并且方程式精确值足够的情况下,牛顿法的收敛速度很快,而且牛顿法具有平方收敛的特性。但是假如给定的初始值误差过大,就有可能导致了牛拉法无法收敛或者收敛到一个不在范围的数值上,所以牛顿法的可靠收敛受到初始值影响很大。 3.2.3牛顿-拉夫逊潮流计算过程
牛拉法潮流计算的关键问题是修正方程式的形成与求解[13]。为了详细说明这一修正方程式的建立过程,首先要对网络中各类节点编号做出一定的规定,一般规定:
网络中包含n个节点,依次规定节点编号为1,2,3,…,n,其中包含一个平衡节点,编号为s;
网络中包含(m-1)个PQ节点,依次规定节点编号为1,2,3,…,m,其中包括编号为s的平衡节点。
至此,就可建立修正方程式为FJ*U (3-12) 式中FPP2Q2PpU1Q1 H 11 N 11 H1mN1m2PPN2Un ' (3-13)
J H m1m1 11 11 1 m 1mLJNNm1HmmNmmm1mmmmH1m1J1mHmm1mm1N1m1H1n1N1n1L1mJ1n1L1n1Nmm1Hmn1Nmn1mm1mn1mn1J= J L J L J J L L
H H N H N H N (3-14) N R
m11m11m1mm1mm1m1m1m1m1n1m1n1m11Sm11Rm1mSm1mRm1m1Sm1m1Rm1n1Sm1n1Rn11 Hn11Nn11Hn1mNn1mHn1m1Nn1m1Hn1n1Nn1n1Sn11Rn1mSn1mRn1m1Sn1m1Rn1n1Sn1n117
湖南工业大学本科生毕业设计(论文)
Uf1e1f2e2fp2epfnen (3-15)
'以上公式中,Pi、Qi、Ui分别为输入有功功率、输入无功功率和节点电压平方的不平衡量,且它们的表达式分别为
nPiPieiGijejBijfjfiGijfjBijejj1n (3-16) QiQifiGijejBijfjeiGijfjBijejj1U2U2e2f2iiii上式中的雅克比矩阵各个元素数值分别为
PPHiji;NIJi;fiejQQ Jiji;Liji; (3-17)
fiej22UUiiRij;Sijfjej我们为了求解这些偏导数的数值,也可以将Pi,Qi,Ui2做如下所示的处理:
nPieiGiieiBiififiGiifiBiieieiGijejBijfjfiGijfjBijejj1jinQifiGiieiBiifieiGiifiBiieifiGijejBijfjeiGijfjBijej (3-18)
j1jiUi2ei2fi2
ji时,为使这些偏导数的表示式更简化,可将引进节点输入电流的表示式如下:
IiYiiUiYijUj
j1jinn GiieiBiifiGijejBijfjj1jinjGijfiBijeiGijfjBijej j1ji aiijbii (3-19)
18
湖南工业大学本科毕业设计(论文)
所以我们可以依据式3-17、3-18和3-19求解得到:
nPiHiifBiiei2GiifiBiieiGiifiBijejBiieiGiifibiij1ijinNPi2GeBfBfGeBfGeBfaiiiiiiiiiijjijjiiiiiiiiiieij1jinQiJii2BiifiGiieiGiieiGijejBijfjGiieiBiifiaiifj1iji (3-20) nQiGiifiGiifi2BiieiGijfjBijejBiieiGiifbiiRiieij1jiUi22fiRiifiUi2Sii2eiei当j~i时,因为对特定节点的j,只有这个节点对应的特定的fi和ei是变量,由公式可以得到:
PiHijfBijeiGijfijPiNGijeiBijfijejQJijiBijfiGijeiNijfj (3-21)
QLijiGijfiBijeiHijej2RUi0ijfjUi20Sijej 19
湖南工业大学本科生毕业设计(论文)
3.2.4牛顿-拉夫逊潮流计算程序流程图
在上节的内容中,我们主要解决了运用牛顿-拉夫逊进行潮流计算的一些问题,形成了雅可比矩阵,并且建立和修正方程,这是也是整个编程的主体部分。结合潮流计算各个步骤,我们可以编制出C++程序的流程图以便于我们清晰编程的思路,流程图如图3.1所示:
启动输入原始数据形成导纳矩阵给定电压初值置K=0对于PQ节点,求ΔP(k), ΔQ(k)对于PU节点,求ΔP(k), ΔQ(k)是否ΔP(k), ΔQ(k),ΔU(k)< ζ ?以K+1代替K计算雅可比矩阵各元素按系统的潮流分布计算平衡节点功率及线路功率修正方程,求Δe(k),Δf(k)输出用e(k+1)=e(k)+Δe(k),f(k+1)=f(k)+Δf(k)修正节点电压以e(k+1)代替e(k),f(k+1)代替f(k)图3.1 潮流程序编制牛顿-拉夫逊法流程图
20
湖南工业大学本科毕业设计(论文)
3.3潮流计算的约束条件
电力系统的运行需要一些计算除了在一些数值上受到约束之外我们还要考虑到一定的技术上的需求,当然在经济上的需求也是一个约束潮流计算结果的条件。公认的约束条件,节点电压应该满足:
UiminUiUimai1,2,,n (3-22) x因为电力系统中规定:电气设备必须确保相应的电能质量和供电的可靠性,在电力系统中的所有电气设备必须运行在额定电压的范围之内。故给出的PV节点电压幅值通常都是根据上述条件给定的。因此,该规定并不适用于PV节点,而主要适用于PQ节点的约束条件。
综上,节点的有功功率和节点的无功功率应满足:
PPGimaxP GiminG1 (3-23)
QG1QGimaxQGimin PQ节点的有功功率、PQ节点的无功功率以及PV节点的有功功率,都是按照节点分类的定义就已经给定了相应的数值,当然也就已经满足上文所叙述的条件,因此,这一约束条件主要适用于平衡节点。
节点之间电压的相位差应满足
ijij<ijmax (3-24)
约束的主要目的就是为了保证系统的稳定运行,因此我们会规定一些输电线路的两端电压相位不能超过某个值。
电力系统的潮流计算可以总结为求解一组非线性方程组,并且让方程组的解满足潮流计算的某些特定的约束条件。在得到了结果之后,我们需要用已知的约束条件来进行检验。若不能满足要求,那么我们就就需要去修改一些变量的给定值,若还是不能满足,那么就需要去修改系统的操作模式然后再进行新一次的计算。
21
湖南工业大学本科生毕业设计(论文)
第四章 牛拉法编程实现
4.1算例说明
在C++程序编制过程中基本算例IEEE-4节点来自于何仰赞老师编著的《电力系统分析下册》例11-5[12]。该基本算例IEEE-4节点系统包括了4 个节点和4条线路支路以及0条对地支路,其发电机为两台[14]。系统结构图如图4.1
图4.1 IEEE-4 节点系统图
4.2算例原始数据(以IEEE-4节点为例)
本程序设计时对于IEEE4 节点系统需要准备的原始数据分为线路参数和功率参数,线路中的参数有线路电阻R 、线路的电抗X 、1/2 对地导纳b / 2、以及变压器的变比。功率参数包括节点电压U 、电压相角δ、节点负荷类型、节点负荷有功、节点负荷无功、发电机有功、发电机无功。线路参数数据文件存储格式为txt,原始输入数据具体格式如下所示。 4.2.1节点数据
基准容量为100MVA,总节点数为4。
表4.1 输入文件节点数据说明
节点编号 节点类型 负荷有功 负荷无功 发电有功 发电无功 电压相角 电压幅值
1 2 3 4
1 1 2 3
30 55 0 0
18 13 0 0
0 0 50 0
0 0 0 0
0 0 0 0
1 1 1.1 1.05
22
湖南工业大学本科毕业设计(论文)
注:
(1)节点类型(1表示PQ节点;2表示PV节点;3表示平衡节点 (2)负荷有功,负荷无功,发电机有功,发电机无功都是为有名值,其余的数据为标幺值。
(3)在平衡节点的注入有功,对于无功的数值并不重要,可以随意写,并不会不影响计算。
(4)对于PV节点的注入无功数值对于计算的结果并没有影响,可以随意填写。
(5)电压相角的输入值都为零。
(6)对于文件中电压幅值,例如平衡节点或者PV节点,他的数据就是指定电压。而对于PQ节点,它的数值为1。 4.2.2 第二部分:支路数据
总支路数为4
表4.2 输入文件支路数据说明
首节点
1 -3 1 2
末节点
2 1 4 4
支路电阻R
0.1 0 0.12 0.08
支路电抗X
0.4 0.24793388
0.5 0.4
接地电纳B或者变比K 0.03056 1.1 0.0384 002826
注:
(1)对于一个变压器线路,非标准变比所在的一侧节点符号为负,应该把它放在首节点。
(2)对于支路首节、末节的点号可以不用按照大小的顺序来进行输入,输出支路结果的顺序需要按照输入支路的顺序。
(3)变压器线路的最后一列数据应为变压器的非标准变比。
(4)支路的电阻,电抗和接地电纳应为标幺值。
23
湖南工业大学本科生毕业设计(论文)
4.2.3数据文件输入范例
图4.2 IEEE-4 节点数据输入文件
4.3数据结构简介
(1)
class BUS//母线类 { public: };
24
int Number;//节点编号
int NodeType;//节点类型(1-pq节点,2-pv节点,3-平衡节点) double LoadP;//负荷有功 double LoadQ;//负荷无功 double GenP;//发电机有功 double GenQ;//发电机无功 double V;//电压幅值
double VoltageAngle;//电压相角 double NodeP;//节点净有功 double NodeQ;//节点净无功 double NodeE;//电压e分量 double NodeF;//电压f分量
BUS():Number(0),NodeType(1),LoadP(0),LoadQ(0),GenP(0),GenQ(0),V(1.}
0),VoltageAngle(0.0),NodeP(0.0),NodeQ(0.0),NodeE(1.0),NodeF(0.0){
湖南工业大学本科毕业设计(论文)
(2)
class BRANCH//支路类 { public:
double R;//支路电阻 double X;//支路电抗
double Y;//线路变压器变比或接地导纳B int NodeI;//节点i侧 int NodeJ;//节点j侧
BRANCH():NodeI(0),NodeJ(0),R(0.0),X(0.0),Y(0.0){ } };(3)
class Yii//存导纳矩阵对角元素 { public: (4)
class Yij//存导纳矩阵非对角元素和列号 { public: (5)
class GROUND//存接地支路数据 { public: int Node;
double G,B; Yii():G(0),B(0){}
};
double G,B; int j;
Yij():G(0),B(0),j(0){ }
};
double G;
25
湖南工业大学本科生毕业设计(论文)
(6)
double B;
};
class CURRENT//存支路电流 { public: (7)
class POWER//存支路功率 { public: (8)
class POWERFLOW { public:
double maxerror;
char *FileName, *ResultName; void InputData();// 读入系统数据 void Tinny2(); void FormY();
void FormJ();//形成雅克比矩阵(边形成边消去) double P1,Q1; double P2,Q2; double E,F; };
};
void branchpower();//计算支路功率 void outputdata();//输出潮流计算结果 private:
int *Number;//按新号顺序存旧号
26
ifstream input; ofstream output; POWERFLOW();
湖南工业大学本科毕业设计(论文)
BUS *bus; BRANCH *branch; GROUND *ground;
POWER *power;//各支路功率 double BaseS;
int *seq;//导纳矩阵各行非对角元素首地址 int *sum;//导纳矩阵各行非对角元素个数 double *a;//电流分量 double *b;//电流分量
double *groundpower;//接地支路功率
CURRENT *I;
int count;//记录迭代次数
4.4子函数功能:
void InputData();// 读入系统数据
void Tinny2();// 节点编号 void FormY();//程序主体部分
4.5程序基本流程图:
程序的基本流程图,如图4.3所示:
27
湖南工业大学本科生毕业设计(论文)
输入数据形成导纳矩阵给定电压初e(0),值f(0)t=0按式(3-16)计算ΔP(t),ΔQ(t),ΔV2(t)是检验是否收敛输出结果否按式(3-18)计算ΔP(t),ΔQ(t),ΔV2(t)求给定电压初值Δe(t),Δf(0)修正各节点电压t=t+1
图4.3 程序基本流程图
按照流程图,首先输入初始数据,形成一个导纳矩阵。然后给定一个初始电压值,根据公式检验是否收敛。
28
湖南工业大学本科毕业设计(论文)
4.6潮流计算编程运行
4.6.1潮流计算编程运行计算结果
图4.5 潮流计算编程运行计算结果
4.6.2潮流计算编程运行计算结导出文件
打开根目录文件,以“节点数”命名的txt文件是原始数据输入文件,以“result+节点数”命名的文件的原始数据输出文件。
图4.6 根目录文件夹
29
湖南工业大学本科生毕业设计(论文)
图4.7 潮流计算编程运行导出文件
导出迭代过程中的误差,记录下潮流计算结果的输出数据。 4.6.5结果校验
表4.3IEEE-4节点潮流计算结果对比
潮流计算结果对比 节点号 1 2 3 4
电压幅值
电压相角
电压幅值 0.984675 0.9798 1.10 1.05
电压相角 -0.500172 -6.450306 6.732347
程序运行数值
标准系统数值
0.982387 0.957605 1.10 1.05
-0.504863 -6.44867 6.74287 0.00
0.00
表4.4IEEE-4功率潮流计算结果对比
潮流计算结果对比 首节点 1 2 3 1 1 4 2 4
程序运行数值 Pij 0.24651 -0.240199 0.499882 -0.499882
Qij -0.00286759 -0.000591 0.1027 -0.0381313
标准系统数值 Pij 0.246244 -0.310010 0.500000 -0.500001 -0.046244 0.048216 -0.239990 0.319666
Qij -0.014651 -0.140627 0.093409 -0.0292
末节点 2 1 1 3 4 1 4 2
-0.046636 -0.140108 0.048745 0.320307
30
-0.136088 0.104522 0.010627 0.160176
0.109195 0.178703
-0.310124 -0.156321
湖南工业大学本科毕业设计(论文)
表4-5迭代次数
迭代次数
1 2 3 4
最大误差 -0.525962 -0.0547115 -0.00105961 -3.8309e-007
通过对数据的对比分析,可以看出,程序运行得到的数值和标准系统数值接近,并且误差十分小,在标准的误差的范围之内。
31
湖南工业大学本科生毕业设计(论文)
第五章PQ快速解耦法编程实现
5.1算例说明
在C++程序编制过程中基本算例IEEE-5节点来自于王锡凡老师编著的《现代电力系统分析》例2-2。该基本算例IEEE-5节点系统包括了5个节点和5条线路支路以及0条对地支路,其发电机为两台[14]。系统结构图如图5.1
图5.1 IEEE-5 节点系统图
5.2算例原始数据(以IEEE-5节点为例)
本程序设计时对于IEEE5节点系统需要准备的原始数据分为线路参数和功率参数,线路参数有线路的电阻R 、线路的电抗X 、1/2 对地导纳b / 2、以及变压器的变比。功率参数包括节点电压U 、电压相角δ、节点负荷类型、节点负荷有功、节点负荷无功、发电机有功、发电机无功。线路参数数据文件存储格式为txt,原始输入数据具体格式如下所示。 5.2.1节点数据
表5.1 输入文件基本系统数据说明
变量 赋值
N 5
Nb 5
Ng 1
Nl 4
V0 1.0
eplilon 0.00001
32
湖南工业大学本科毕业设计(论文)
5.2.2第二部分:支路数据
表5.2 输入文件支路数据说明
首节点 1 1 2 -2 -3
末节点 2 3 3 4 5
支路电阻R
0.04 0.1 0.08 0.0 0.0
支路电抗X 0.25 0.35 0.3 0.015 0.03
接地电纳B 或者变比K 0.5 0.0 0.5 1.05 1.05
注:
(1)对于一个变压器线路,非标准变比所在的一侧节点符号为负,应该把它放在首节点。
(2)对于支路首节、末节的点号可以不用按照大小的顺序来进行输入,输出支路结果的顺序需要按照输入支路的顺序。
(3)变压器线路的最后一列数据应为变压器的非标准变比。
(4)支路的电阻,电抗和接地电纳应为标幺值。 5.2.3第三部分:节点数据
表5.3 输入文件节点数据说明
首节点 1 1 2 -2
末节点
2 3 3 4
负荷有功 负荷无功 电压幅值 0.04 0.1 0.08 0.0
0.25 0.35 0.3 0.015
0.5 0.0 0.5 1.05
注:
(1)负荷有功,负荷无功,发电机有功,发电机无功都是为有名值,其余的数据为标幺值。
(2)在平衡节点的注入有功,对于无功的数值并不重要,可以随意写,并不会不影响计算。
(3)对于PV节点的注入无功数值对于计算的结果并没有影响,可以随意填写。
(4)电压相角的输入值都为零。
33
湖南工业大学本科生毕业设计(论文)
(5)对于文件中电压幅值,例如平衡节点或者PV节点,他的数据就是指定电压。而对于PQ节点,它的数值为1。 5.2.4数据文件输入范例
图5.2 IEEE-5节点数据输入文件
5.3数据结构简介
(1)
struct Branch_Type { int i,j;
double R,X,YK; };
struct Generator_Type { int i; double P,Q; double V; };
struct Load_Type { int i; double P,Q; double V;
34
湖南工业大学本科毕业设计(论文)
};
struct PVNode_Type { int i; double V; };
struct Yii_Type {
double G,B; };
struct Yij_Type {
double G,B; int j; };
struct NodalPow {
double P,Q; };
struct NodalVol {
double V,theta; };
struct GeneratorPower {
double P,Q; };
struct U_Type {
double value; int j; };
5.4子函数功能:
void Datain(); /*从初始数据文件中读入数据*/
35
湖南工业大学本科生毕业设计(论文)
void AdmittanceMatrix(); /*形成导纳矩阵函数*/
void AdmittanceMatrixAdd(); /*形成导纳矩阵追加接地支路函数*/ void Factorial(); /*形成因子表函数*/ void NodePower(); /*节点功率计算函数*/ void Iteration(); /*迭代计算函数*/
void FormulaSolution(); /*线性方程组求解函数*/ void NodeDataOutput(); /*节点数据输出函数*/ void BranchDataOutput(); /*支路数据输出函数*/
5.5程序基本流程图:
程序的基本流程图,如图5.3所示:
36
湖南工业大学本科毕业设计(论文)
开始输入信息和原始数据,并进行处理形成导纳矩阵计算系数矩阵B' ,形成第一因子表计算系数矩阵B' ',形成第二因子表输入个节点电压初始值t=0,K01=0计算[ΔW(K01)/V],ERM(k01)解修正方程并修正V(K01)否K01=0?t=t+1,K01=0是K01=1否ERM(0)<ς˄ ERM(1)<ς 是退出潮流计算结果 图5.3 程序基本流程图
首先先输入原始数据并进行处理,计算系统矩阵B’和B’’形成第一和第二因子表,紧接着输入节点电压初始值按照公式来进行计算。
37
湖南工业大学本科生毕业设计(论文)
5.6潮流计算编程运行
5.6.1潮流计算编程运行计算结果
图5.4 潮流计算编程运行计算结果
利用程序运行得出有功迭代、无功迭代,潮流计算的节点电压和潮流计算中的支路功率。
5.6.2潮流计算编程运行计算结导出文件
打开根目录文件,以“节点数”命名的dat文件是原始数据输入文件,以“节点数+out”命名的文件的原始数据输出文件。
38
湖南工业大学本科毕业设计(论文)
图5.5 根目录文件夹
图5.6 潮流计算编程运行导出文件
39
湖南工业大学本科生毕业设计(论文)
5.6.3PQ解耦法和牛拉法的比较
(a)PQ解耦法计算系统潮流
(b)牛拉法计算系统潮流
图5.8 PQ解耦法和牛拉法IEEE-5计算结果比较
40
湖南工业大学本科毕业设计(论文)
(a)电压幅值和电压相角
(b)有功功率和无功功率
图5.9 PQ解耦法和牛拉法IEEE-5迭代精度和迭代次数比较
41
湖南工业大学本科生毕业设计(论文)
5.6.4PQ解耦法和牛拉法的比较结论
通过了大量的计算我们得出,PQ解耦法和牛拉法在收敛性方面没有显著区别,只要是用牛拉法可以收敛的潮流问题,当我们运用PQ解耦法时是也可以收敛的。PQ分解法在分解的过程中改变了牛顿迭代公式的结构,因此,PQ分解法也就就改变了迭代过程的收敛特性。其实,PQ解耦法就是改变了牛顿法迭代公式的结构,所以迭代过程的收敛性也就随之而发生了改变。事实上,依一个不变的系数矩阵进行非线性方程组的求解迭代,在数学上属于“等斜率法”,其迭代过程是按几何级数收敛的。牛顿法在刚开始开始收敛时的速度会比较慢,收敛到了一定的程度之后,它的收敛速度就会变得十分的快。而PQ解耦法的收敛,是按照相同的速度来进行的。如果我们给出的收敛条件是某个一数值,则使用PQ解耦法所需要进行的迭代次数会比使用牛顿法要多很多次。我们也可以大致的认为在PQ解耦法中,迭代次数和精确度之间有着线性的关系。虽然我们了解到PQ解耦法在计算过程中要比牛顿法所需要迭代的次数更多,但是每次迭代需要进行计算的计算量却没有多少,所以我们可以知道PQ解耦法的计算速度相比于牛顿法来说有着明显的提升。例如,我们对IEEE的118节点电力系统来进行研究,如果使用PQ分解法来进行计算一次潮流可能需要CPU时间大约0.01s,而用牛顿法却需0.1s。 5.6.5结果校验
表5.4IEEE-5节点潮流计算结果对比
潮流计算结果对比
节点号 1 2 3 4 5
PQ程序运行数值 电压幅值
电压相角
牛拉程序运行数值 电压幅值 电压相角 0.862150
-4.77851 17.85353 -4.28193
标准系统数值
电压幅值
电压相角
0.862151 -4.77849 1.0311 -4.281928
0.862151 -4.77849 1.077916 17.85350 1.0311 -4.281928 1.050000 21.84330 1.050000 0.000000
1.077916 17.85350 1.077916
1.0311
1.050000 21.84330 1.050000 1.050000 0.000000 1.050000
21.8433 0.00000
通过对数据的对比,对不同节点的潮流计算,运用PQ解耦法程序和牛拉法在电压幅值的数值上相同,在电压相角的数值上也十分接近。总体来看PQ解耦法程序运行的数值更接近标准系统数值。
42
湖南工业大学本科毕业设计(论文)
表5.5IEEE-5功率潮流计算结果对比
潮流计算结果对比 首节点
1 2 1 3 2 3 2 4 3 5
末节点
2 1 3 1 3 2 4 2 5 3
PQ程序运行数值 Pij -1.4661798 1.5845442 -0.1338176 0.1567862
Qij -0.4090753 0.6725508 -0.3909219 0.4713120
牛拉程序运行数值 Pij
-1.466181 1.584546 -0.133819 0.156788 1.415454 -1.277360 -5.000000 5.000000 -2.579427 2.579427
Qij -0.409076 0.672556 -0.390924 0.471315
1.4154514 -1.2773586 -4.9999993 4.9999993 -2.5794248 2.5794248
-0.244334 0.2031691 -1.428217 1.8130778 -1.974481 2.2993973
-0.244333 0.203170 -1.428223 1.813084 -1.974485 2.299402
从结果中不难看出运用PQ程序和牛拉程序运行处的功率潮流计算结果差距不大。
表5.6 迭代次数比较
节点数 4 5 30
牛拉法 4 4 4
PQ分解法
- 11 38
从表5.6可以看出PQ分解法在计算过程中要比牛拉法在计算过程中要进行的迭代次数很多。
43
湖南工业大学本科生毕业设计(论文)
功率误差10110010-110-210-310-412345 图5.9牛顿法迭代收敛特性
67迭代次数牛顿法在刚开始收敛时的速度会比较慢,收敛到了一定的程度之后,它的收敛速度就会变得十分的快。
功率误差1IE-1IE-2IE-3IE-4IE-5IE-62460 图5.11 PQ解耦法迭代收敛特性
迭代次数 PQ分解法的收敛,是按照相同的速度来进行的。
44
湖南工业大学本科毕业设计(论文)
功率误差1IE-1IE-2IE-3IE-4IE-5AP-Q分解法牛顿法51015迭代次数
图5.12牛顿法与PQ解耦法代收敛特性比较
PQ分解法就是改变了牛顿法迭代公式的结构,所以迭代过程的收敛性也就随之而发生了改变。事实上,依一个不变的系数矩阵进行非线性方程组的求解迭代,在数学上属于“等斜率法”,其迭代过程是按几何级数收敛的,如画在对数坐标上,这种收敛特性基本上接近一条直线。而牛顿法是按平方收敛的,在对数坐标纸上基本是一条抛物线。
45
湖南工业大学本科生毕业设计(论文)
第六章 电力系统潮流分析程序算例应用
IEEE-4、IEEE5节点主要是为了初始化C++语言编程,熟悉潮流计算的各个过程。此节将利用所编程序对IEEE-30节点系统的潮流进行计算分析。
图6.1 30节点系统接线图
46
湖南工业大学本科毕业设计(论文)
6.1潮流计算编程运行计算结果
图6.2 潮流计算编程运行计算结果
47
湖南工业大学本科生毕业设计(论文)
6.2潮流计算编程运行计算结导出文件
图6.3 潮流计算编程运行导出文件
48
湖南工业大学本科毕业设计(论文)
6.3计算结果的对比分析
在潮流计算编程中,最主要的便是节点电压的相角和幅值,在IEEE30节点的标准系统和数据给出了标准节点数据和潮流结果,我们对数据进行处理分析,进行如下比较,校验计算结果。
表6.1IEEE30节点标准系统潮流结果
节点号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
电压辐值 1.050 0 1.045 0 1.020 7 1.013 5 1.010 0 1.011 0 1.002 6 1.010 0 1.037 5 1.033 9 1.050 0 1.045 8 1.050 0 1.031 0 1.026 0 1.033 5 1.028 4 1.016 7 1.014 2 1.018 3 1.021 6 1.022 2 1.016 0 1.010 8 1.009 3
电压相角 发电机有功 发电机无功 负荷有功 负荷无功 0.000 0 -1.852 0 -3.790 7 -4.521 9 -6.504 6
0.987 7 0.800 0 0.000 0 0.000 0 0.500 0
-0.0 9 0.417 1 0.000 0 0.000 0 0.166 6 0.000 0 0.000 0 0.293 1 0.000 0 0.000 0 0.067 1 0.000 0 0.033 7 0.000 0 0.000 0 0.000 0 0.000 0 0.000 0 0.000 0 0.000 0 0.000 0 0.000 0 0.000 0 0.000 0 0.000 0
0.000 0 0.217 0 0.024 0 0.076 0 0.942 0 0.000 0 0.228 0 0.300 0 0.000 0 0.058 0 0.000 0 0.112 0 0.000 0 0.062 0 0.082 0 0.0350 0.090 0 0.032 0 0.095 0 0.022 0 0.175 0 0.000 0 0.032 0 0.087 0 0.000 0
0.000 0 0.127 0 0.012 0 0.016 0 0.190 0 0.000 0 0.109 0 0.300 0 0.000 0 0.020 0 0.000 0 0.075 0 0.000 0 0.016 0 0.025 0 0.018 0 0.058 0 0.009 0 0.034 0 0.007 0 0.112 0 0.000 0 0.016 0 0.067 0 0.000 0
-5.335 2 0.000 0 -6.358 5 0.000 0 -5.2 8 0.200 0 -6.760 3 0.000 0 -8.678 7 0.000 0 -4.571 8 0.200 0 -7.790 6 0.000 0 -6.329 5 0.200 0 -8.729 5 0.000 0 -8.854 0 0.000 0 -8.444 5 0.000 0 -8.820 8 0.000 0 -9.502 4 0.000 0 -9.692 1 0.000 0 -9.497 4 0.000 0 -9.159 7 0.000 0 -9.154 4 0.000 0 -9.348 6 0.000 0 -9.657 8 0.000 0 -9.660 2
0.000 0
49
湖南工业大学本科生毕业设计(论文)
节点号 电压辐值 26 27 28 29 30
0.991 5 1.017 1 1.006 9 0.997 2 0.985 6
电压相角 发电机有功 发电机无功 负荷有功 负荷无功 -10.086 6 -9.395 2 -5.824 9 -10.0 3 -11.534 4
0.000 0 0.000 0 0.000 0 0.000 0 0.000 0 2.887 7
0.000 0 0.000 0 0.000 0 0.000 0 0.000 0 0.912 7
0.035 0
0.023 0
0.000 0 0.000 0 0.000 0 0.000 0 0.024 0 0.009 0 0.106 0 0.019 0 2.834 0
1.262 0
系统总功率
图6.4潮流计算结果对比(结果导出文件)
如下表格数据所示,经过C++程序运行得到的IEEE-30节点数据在一定误差范围内和IEEE-30节点标准系统系统相吻合。其中节点电压幅值误差相对来说最小,节点电压相角还是存在一定误差,经过误差分析排查,有可能和数据文件录入格式有关,也有可能由于该标准系统额外考虑了其他因素。在数值上可以观察出,大体上还是符合标准系统数据的。可以说,以上表格从数据上验证了使用C++语言编程进行潮流计算的准确性。
50
湖南工业大学本科毕业设计(论文)
为了便于数据对比,将程序运行数值和标准系统数值做成如下表格。
表6.2IEEE-30牛拉法程序运算结果比较
潮流计算结果对比
节点号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
程序运行数值
电压幅值
标准系统数值
电压相角 0.000 -1.8520 -3.7907 -4.5219 -6.5046 -5.3552 -6.3585 -5.28 -6.7603 -8.6787 -4.5718 -7.7906 -6.3295 -8.7295 -8.8540 -8.4445 -8.8208 -9.5024 -9.6921 -9.4974 -9.1597 -9.1544 -9.3486 -9.6578 -9.6602 -10.0866 -9.3952 -5.8249 -10.03 -11.5344
电压相角 电压幅值
1.05 1.047 61 1.03942 1.03715 1.01693 1.03543 1.01903 1.02731 1.14161 1.1461 1.19336 1.16153 1.19156 1.18204 1.18525 1.09769 1.12794 1.16119 1.14399 1.13575 1.15111 1.15272 1.19985 1.12629 1.0075 1.05204 1.0221 1.0072 1.03544 0.9856
-0.00 -1.63543 -3.45157 -4.22206 -6.13411 -5.55145 -6.29791 -5.47883 -10.1247 -13.2941 -5.5247 14.7492 12.6563 17.94 17.7888 2.92806 -9.24518 10.9911 4.67616 0.442368 -18.4874 -18.8302 20.1599 -20.1319 -10.02 -8.42975 -9.452 -5.7 -9.98313 -11.52
51
1.0500 1.0450 1.0207 1.0135 1.0100 1.0110 1.0026 1.0100 1.0375 1.0339 1.0500 1.0458 1.0500 1.0310 1.0263 1.0335 1.0284 1.0167 1.0142 1.0183 1.0216 1.0222 1.0160 1.0108 1.0093 0.9915 1.0171 1.0069 0.9972 0.9856
湖南工业大学本科生毕业设计(论文)
通过对程序数据的分析,我们不难看出,程序运行数值与标准运行数值非常接近,误差很小在标准范围之内。证明了我的程序是可以成功进行潮流计算的,也完成了我在本篇论文的任务要求。
52
湖南工业大学本科毕业设计(论文)
总结
随着社会的进步和经济的发展,能源危机、环境污染等问题变得日益严峻起来,电能由于所独有的特性成为了最广泛使用的能源之一。如何安全的监控日益扩大的电力网络是我们急需要解决的问题。
潮流计算是对配电网络进行分析研究的基础,本文中分析了牛顿-拉夫逊与PQ快速解耦法计算的方法和之中存在的不足,并且进行了C语言的编程、模拟、仿真。总体上对于潮流计算有了比较深入的了解,并且完成了任务书中的所有任务。总结了牛拉法程序的运行并进行了比较。
本文的主要工作是:
(1)渗入研究电力系统潮流分析计算的流程,准备绘制电力系统潮流分析的流程图。
(2)熟悉C++的编译环境,精通其常用语言表达,实现流程图和语言习惯的统一。
(3)在此基础上建立了潮流计算类、并编制了基于牛顿一拉夫逊法和PQ快速解耦法的两种潮流计算程序。
(4)对比牛顿法和PQ法对于标准系统IEEE节点的计算结果,迭代次数,迭代精度,说明不同算法的特点和优势。
(5)尝试用所编的程序进行IEEE30大系统的实例分析。
53
湖南工业大学本科生毕业设计(论文)
致 谢
最后要感谢我的指导老师于惠钧老师对我在论文方面的指导,在我不懂的时候给我提供了很多资料的借鉴,并且对已我平时的进度也十分关心,按时的督促我的论文进度。在这次的论文中对我起到了很大的影响也让我学到了很多之前不懂的只是。还有感谢我的两位学长,罗学长和孟哥,没有你们的帮助我也不会完成这篇论文,谢谢你们无私的为我做了很多。
这是我大学学习生活的句号,但也是我学习生涯的新的开始,在这次论文中我学到了很多,不仅仅是在书本上的知识,更多的是在钻研问题的时候的那种韧性。在今后的我会更加努力,认真地去完成每一件学习,每一次工作。宝剑锋从磨砺出,梅花香自苦寒来相信我可以变得更好,感恩、感谢。
54
湖南工业大学本科毕业设计(论文)
参考文献
[1]张甫,郑沛豪. 基于面向对象的牛顿-拉夫逊法潮流计算研究[J]. 河南科技,2013, 25(4):15-17.
[2]黄扬威,吴喜春,郭志峰,张斯翔. 基于Matlab的电力系统潮流编程计算[J]. 科协论坛(下半月),2011,28(6):-66.
[3]殷战稳,韩耀飞,王亚东,臧建伟. 基于Matlab的Gauss-Seidel迭代法电力系统潮流计算[J]. 河南大学学报(自然科学版),2012,24(3):249-253.
[4]王海超,周双喜,鲁宗相,吴俊玲. 含风电场的电力系统潮流计算的联合迭代方法及应用[J]. 电网技术,2005,18(1):59-62.
[5]. “电力系统潮流和最优潮流分析技术的进展”专题简介[J]. 电力系统自动化,2005,16(11):18-25
[7]邱莉. 电力系统潮流分析软件开发[D].华东师范大学,2009.,10(11):18-25 [8]甄鸿越. 含FACTS与新能源的电力系统潮流研究[D].华南理工大学,2013.,5(11):18-25
[9]章美丹. 电力系统优化运行的相关问题研究[D].浙江大学,2013. ,30(11):118-140
[10]刘艺. 面向对象的电力系统分析软件研究与开发[D].广东工业大学,2004,25(3):10-13
[11]李兴华. 基于规则的电力系统潮流自动调整研究[D].华中科技大学,2007,15(1):18-25
[12]何仰赞等.电力系统分析下册.[M].华中理工大学出版社,1988.,38-40 [13]于尔坚,潘毅,王宪荣等.电力系统潮流收敛的实用性改进[J].电网技术,1995.(1):23-26
[14] 何仰赞,温增银.电力系统分析[M],第三版.武汉:华中科技大学出版社2002,8-17
[15] 陈珩.电力系统稳态分析[M],第三版.北京:中国电力出版社,2007,3-250 [16]Yang Yude, Qin Zhijun, Wei hua. Power Flow Calculation Based on Non-linearProgramming Model and Vectorization Mode[D], August 5 - 8, 2007, Harbin, China1
55
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务