10引言潮流是配电网络分析的基础,用于电网调度、运行分析、操作模拟和设计规划,同时也是电压优化和网络接线变化所要参考的内容。潮流计算通过数值仿真的方法把电力系统的详细运行情况呈现给工作人员,从而便于研究系统在给定条件下的稳态运行特点。随着市场经济的发展,经济利益是企业十分看重的,而线损却是现阶段阻碍企业提高效益的一大因素。及时、准确的潮流计算结果,可以给出配电网的潮流分布、理论线损及其在网络中的分布,从而为配电网的安全经济运行提供参考。从数学的角度来看,牛顿-拉夫逊法能有效进行非线性代数方程组的计算且具有二次收敛的特点,具有收敛快、精度高的特点,在输电网中得到广泛应用。随着现代计算机技术的发展,利用编程和相关软件,可以更好、更快地实现配电网功能,本文就是结合牛顿-拉夫逊法的基本原理,利用C++程序进行潮流计算,计算结果表明该方法具有良好的收敛性、可靠性及正确性。1牛顿-拉夫逊法基本介绍1.1潮流方程对于N个节点的电力网络(地作为参考节点不包括在内),如果网络结构和元件参数已知,则网络方程可表示为:YVI(1-1)式中,Y为N*N阶节点导纳矩阵;V为N*1维节点电压列向量;I为N*1维节点注入电流列向量。如果不计网络元件的非线性,也不考虑移相变压器,则Y为对称矩阵。电力系统计算中,给定的运行变量是节点注入功率,而不是节点注入电流,这两者之间有如下关系:ˆˆEIS(1-2)式中,S为节点的注入复功率,是N*1维列矢量;ˆS为S的共轭;2ˆˆidiagEV是由节点电压的共轭组成的N*N阶对角线矩阵。由(1-1)和(1-2),可得:ˆˆSEYV上式就是潮流方程的复数形式,是N维的非线性复数代数方程组。将其展开,有:ˆiiiijjjiPjQVYVj=1,2,….,N(1-3)式中,ji表示所有和i相连的节点j,包括ji。将节点电压用极坐标表示,即令iiiVV,代入式(1-3)中则有:iiiiijijjjjiPjQVGjBVcossinijijijijijjiVVGjBj故有:cossinsincosiijijijijijjiiijijijijijjiPVVGBQVVGBi=1,2,…,N(1-4)式(1-4)是用极坐标表示的潮流方程。而节点功率误差:(cossin)SPiiijijijijijjiPPVVGB(1-5)(cossin)SPiiijijijijijjiQQVVGB(1-6)式中:SPiP,SPiQ为节点i给定的有功功率及无功功率。1.2牛顿-拉夫逊法基本原理1.2.1牛拉法的一般描述牛拉法是把非线性方程式的求解过程变成反复对相应的线性方程式的求解过程,即非线性问题通过线性化逐步近似,这就是牛拉法的核心。下面以非线性方程式的求解过程来进行说明。设电力网络的节点功率方程一般形式如下:3SPyyx(1-7)式中,SPy为节点注入功率给定值;y为SPy对应的物理量和节点电压之间的函数表达式;x为节点电压。写成功率偏差的形式:SP0fxyyx(1-8)应用牛拉法求解如下。在给定的初值0x处将式(1-8)作一阶泰勒展开:000Txffxxx定义TfJx为潮流方程的雅克比矩阵,0J为J在0x处的值,则有:010xJfx用x修正0x就得到x的新值。如果用k表示迭代次数,写成一般的表达式,有:11kkkkkkxJxfxxxx(1-9)对于潮流收敛的情况,1kx应比kx更接近于解点。收敛条件为:maxkifx由简单迭代法收敛性分析的结论知,越接近解点,牛顿-拉夫逊法收敛越快,它具有二阶收敛速度。由图1.1可以直观地了解牛拉法的步骤:4yxx(1)tx(1)tx()tx()t(1)()tfx()yfx()()tfxo图1.1牛顿-拉夫逊法的几何解释1.2.2极坐标的牛顿-拉夫逊法在极坐标中,fx有如下的形式:,,,,nSPSPnrPVPPVfxQVQQV(1-10)共2n-r个方程,状态变量为:1212TTTnnrVVVxV共2n-r个待求量。r个PV节点的电压幅值给定,不需求解。潮流雅克比矩阵的维数是(2n-r)*(2n-r),结构如下:nTTTTTnrPPfVJxQQV上式右侧的对电压幅值的偏导数项中的电压幅值的阶数减少了1,为使雅克比矩阵的各部分子矩阵具有一致的形式,在实际计算中,常将该项乘以电压幅值,并选取1122////TnrnrVVVVVVVV作为待求的修正量,则雅克比矩阵可写成:5nTTTTTnrPPVfVJxQQVV(1-11)将式(1-10)和(1-11)代入式(1-9)的修正方程即可求得x的修正量x,用它修正x直到maxkifx为止。将式(1-11)用下式表示:HNJML其中每个字块的计算公式如下:对角元素:''2''2''2''2,,,,iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiPQHVHVHBVPPNVVNVNGVVQPMVMVMGVQQLVVLVLBVV(1-12)非对角元素:'''''''''',cossin,cossin,,iijiijjijijijijijjiijjiijjijijijijijjiijiijjijijjiijjiijjijijjPHVHVHBGPNVVNVNGBVQMVMVMNQLVVLVLHV(1-13)2牛顿法潮流计算步骤2.1程序流程图在了解了牛拉法的原理之后,明确程序编写思路,如图2.1、2.2所示。其中图2.1中的“计算电压幅值和角度”步骤较多,单独用图2.2表示出来。6图2.1牛顿法计算潮流的程序框图图2.2电压幅值和角度求解步骤框图当不符合收敛的条件“amontk1”时,即认为计算不收敛。具体程序见附录。2.2计算步骤下面讨论的是极坐标形式的牛顿法求解过程,大致分为以下几个步骤:①形成节点导纳矩阵;②给各节点电压设初值((0)(0),iiV);③根据式(1-12)、(1-13)生成雅克比矩阵(H、N、M、L);④将节点电压初值代入式(1-5)、式(1-6),求出修正方程式的常数项向量,iiPQ;⑤求解修正方程,得到电压幅值和角度;⑥判断是否收敛,若收敛,计算平衡节点和线路功率;⑦输出结果,并结束。开始直角坐标系导纳矩阵转化为极坐标读取PQ和PV节点数据生成雅克比矩阵(H、N、M、L)生成常数向量求解修正方程满足精度要求Amontk=1Amontk1结束NY开始读入数据文件,读取数据生成节点导纳矩阵计算电压幅值和角度收敛(amontk1)计算平衡节点和线路功率结束NY73算例3.1系统模型本文以图3.1所示电力网络为例,调用基于牛顿-拉夫逊法的C++程序。1.1:10.3j0.12+0.5j0.1+0.4j0.08+0.4j①②③④图3.1系统模型其中节点4设为平衡节点,电压标幺值为1.05,计算误差为0.000001。3.2输入与输出将图3.1所示模型的相关数据放在data.dat文件中图3.2输入节点和支路数据8对各个数字含义的解释如下:网络模型有四个节点,四条支路,编号见图3.1。第一个零下面三行数为支路参数,分别表示三条支路的起始和终止节点编号,后面的为电阻、电抗和电纳,电导均为0,例如:120.10.40.01528。第二个零下面的为变压器支路,各数字意义同支路参数。接下去三行均为节点参数,分别表示注入有功功率和无功功率。调用text.cpp文件,得到运行结果,见图3.3和图3.4。图3.3运行结果19图3.4运行结果23.3结果分析将上述仿真结果整理为表格3.1、3.2,其中“+”表示节点i输出功率给节点j,“-”表示节点j输出功率给i(纵向为i,横向为j)。表3.1节点有功功率输入与输出节点号123410+0.245981-0.5-0.0465632-0.2431600-0.31294930.500040.04821430.31967100表3.2节点无功功率输入与输出节点号123410-0.014708-0.029001-0.13618720.011050500-0.1403630.09701600040.104640.16025500根据表格计算:节点1有功功率:0+0.245981-0.5-0.046563=-0.300582无功功率:0-0.014708-0.029001-0.136187=-0.17989610节点2有功功率:-0.24316+0+0-0.312949=-0.556109无功功率:0.0110505+0+0-0.14036=-0.1293095节点3有功功率:0.5+0+0+0=0.5无功功率:0.097016+0+0+0=0.097016节点4有功功率:0.0482143+0.319671+0+0=0.3678853无功功率:0.10464+0.160255+0+0=0.264895根据已知条件,两个PQ节点的注入有功、无功分别为:P1=0.3,Q1=0.18;P2=0.55,Q2=0.13潮流计算误差:10.3005820.3100%0.194%0.3iPP110.180.179896100%0.0578%0.18QQ220.5561090.55100%1.11%0.55PP220.130.1293095100%0.531%0.13QQ可见,误差均在允许范围内。线路损耗:120.2459810.014708(0.24316j0.0110505)0.002821j0.0036575Sj130.50.029001(0.5j0.097016)j0.068015Sj140.0465630.136187(0.0482143j0.10464)0.0016513j0.031547Sj240.3129490.14036(0.319671j0.160255)0.006722j0.019895Sj3.4结论通过上面的分析与计算,验证了程序的正确性。由于编写过程的不足,线路损耗没能直接计算出来,而是需要手算,比较遗憾。程序在运行过程中,需要区分三种不同的节点,这由子程序保证实现。相比于快速分解法,牛拉法程11序较为复杂,但更精确一点,潮流误差较小。4总结本文基于牛顿-拉夫逊潮流算法的基本原理,利用C++编程计算了一个4节点简单电力网络的潮流,并验证了运行成果,误差在允许范围之内。因为牛拉法计算过程中要不断生成新的雅各布矩阵,所以相对来说占用内存较多,但收敛速度快,这在程序运行过程中可以体现出来。本文程序并不是特别实用,因为真正的电力网络不可能只有几个节点,而且各种电力设备的情况也会复杂很多,因此程序会变得非常大,占用极大内存。但是,我还是通过这次练习,进一步巩固了书本上的理论知识,了解了实际操作的过程步骤。最后,感谢杨伟老师的悉心指导!12参考文献[1]朱红,赵琦,王庆宝.C++程序设计教程[M].北京:清华大学出版社,2010.[2]张伯明,陈寿孙,严正.高等电力网络分析[M].北京:清华大学出版社,2007.[3]吴明波.牛顿-拉夫逊法在潮流计算中的应用[J].内蒙古科技与经济,