实验目的根据所给的电力系统,编制潮流计算程序,通过计算机进行调试,最后完成一个切实可行的电力系统计算应用程序。通过自己设计电力系统计算程序使同学对电力系统分析有进一步理解,同时加强计算机实际应用能力的训练。程序计算原理1、概述应用计算机进行电力系统计算,首先要掌握电力系统相应计算的数学模型;其次是运用合理的计算方法;第三则是选择合适的计算机语言编制计算程序。建立电力系统计算的相关数学模型,就是建立用于描述电力系统相应计算的有关参数间的相互关系的数学方程式。该数学模型的建立往往要突出问题的主要方面,即考虑影响问题的主要因素,而忽略一些次要因素,使数学模型既能正确地反映实际问题,又使计算不过于复杂。运用合理的计算方法,就是要求所选用的计算方法能快速准确地得出正确结果,同时还应要求在解算过程中占用内存少,以利提高计算机的解题规模。选择合适的语言编写程序,就是首先确定用什么计算机语言来编制程序;其次是作出计算的流程图;第三根据流程图用选择的语言编写计算程序。然后上机调试,直到语法上无错误。本程序采用C语言进行编程。所编制的程序难免存在逻辑错误,因此先用一个已知结果的系统作为例题进行计算。用程序计算的结果和已知结果相比较,如果结果相差甚远就要逐步分析程序的计算步骤,查出问题的出处;如果结果比较接近,则逐步分析误差来源;直到结果正确为止。2、电力系统潮流计算的程序算法潮流计算是电力系统分析中的一种最基本的计算,它的任务是对给定的运行条件确定系统的运行状态,如母线上的电压(幅值及相角)、网络中的功率分布及功率损耗等。目前计算机潮流计算的方法主要有牛顿-拉夫逊算法和PQ分解法。牛顿-拉夫逊算法是数学上求解非线形方程组的有效方法,具有较好的收敛性,曾经是潮流计算中应用比较普遍的方法。PQ快速分解法是从牛顿-拉夫逊算法演变而来的,是将纯数学的牛顿-拉夫逊算法与电力系统具体特点相结合并进行简化与改进而得出的。PQ快速分解法比牛顿-拉夫逊算法大大提高了计算速度和节省了内存,故而本程序以PQ快速分解法进行潮流计算。1)形成节点导纳矩阵(1)自导纳的形成对节点i其自导纳Yii是节点i以外的所有节点都接地时节点i对地的总导纳。显然,Yii应等于与节点i相接的各支路导纳之和,即0iiiijjYyy式中,yi0为节点i与零电位节点之间的支路导纳;yij为节点i与节点j之间的支路导纳。1(2)互导纳的形成对节点i与节点k之间的互导纳是节点i、k之间的支路导纳的负值,即ikikYy不难理解kiikYY。若节点i和k没有支路直接相连时,便有Yik=0(3)含变压器支路的处理若节点p、q间接有变压器,如下图所示,则可作出其∏型等值电路为:图1变压器∏型等值电路则p、q的自导纳和节点间的互导纳分别为221111111ppqqpqqpkYkzkzzkYkzkzkzYYkz2)计算不平衡功率△P、△Q并形成修正方程式对每一个PQ节点或每一个PV节点都可以根据下列公式计算出有功功率增量△P1(cossin)(1,2,,1)niisiisijijijijijjPPPPVVGBin而对于每一个PQ节点还可以根据下面的公式计算出无功功率增量△Q1(sincos)(1,2,,)niisiisijijijijijjQQQQVVGBim在有功功率增量和无功功率增量不满足如下约束条件时()()maxmaxkiPkiQPQ利用PQ分解法则可以形成如下修正方程21111,111121222,122221,11,21,11111nnnnnnnnnnPBBVVBBBPVVBBBVPV1111,1121222,222,1,2,mmmmmmmmmQBBVVBBBQVVBBBVQV3)利用因子表法求解修正方程在电网计算中经常遇到这样的问题,对方程组需要反复多次求解,而每次求解仅改变常数项F,系数矩阵保持不变。按照一般的高斯消去法,对每一改变的常数项,形成包括常数项及系数矩阵在内的增广矩阵,然后消去回代求出其解。可以看出,每次对增广矩阵中A矩阵元素的消元都是重复的,为了避免这种重复,我们把对相同的系数矩阵重复进行的消去与对不同的常数项进行的消去分开进行,因此对系数矩阵的消去只需进行一次,并在消去的过程中将对常数项进行消去运算的运算因子保存下来,形成所谓因子表,这就是因子表法。因为因子表记录了高斯消去法对常数项进行消去的全部信息,利用它便可对不同常数项进行消去,形成上三角矩阵,最后求出全部未知数。在使用PQ分解法时,其系数矩阵是在迭代过程中保持不变的,所以为了节省内存和缩短运算时间我们采取了因子表法。同时由于电网的节点导纳矩阵是稀疏阵和对称阵,于是我们可以采取只保存系数矩阵的上三角阵来使运算更为简化。若线性方程组一般形式如下:111213111222322233333nnnnnnnaaaaxfaaaxfaaxfaxf其中111213122232333nnnnnaaaaaaaAaaa称为系数矩阵,123TnXxxxx称为未知数向量,3123TnFffff称为常数项向量。将矩阵A的元素进行如下处理:()(1)(1)()(1,2,,1;1,2,,)kkkkijijikkjaaaakijkkn(1)()(1)(1,2,,)iiijiijiiaajiina得到因子表111213122232333nnnnnDUUUDUUUDUD其中(1)()1,()iiiiiiijijDaUaij;再利用因子表进行前代过程,求出每次迭代后的常数项。其前代公式是:()(1)(1)iiijjijiffUf求得向量(1)(2)(3)()123TnnFffff;再由因子表与前代得到的向量F,得到方程组(1)1121311(2)22322(3)333()nnnnnnfUUUxfUUxUxfxf求解出此方程即可得到线性方程组的解向量123TnXxxxx。4)多次迭代最终求得V和以及全线路功率利用上面所介绍的方法求解修正方程组1111,111121222,122221,11,21,11111nnnnnnnnnnPBBVVBBBPVVBBBVPV41111,1121222,222,1,2,mmmmmmmmmQBBVVBBBQVVBBBVQV可以求得123TmVVVVV和1231Tn。再利用(1)()()(1)()()kkkkkkiiiiiiVVV,求得每次迭代后的结果。多次迭代当其满足约束条件()maxkiPP和()maxkiQQ时,迭代结束。迭代结束后即可得到各节点的V和,再根据V、来计算PV节点的无功功率Q和平衡节点的功率以及网络中的功率分布。PV节点及平衡节点无功功率计算公式为:1(cossin)niijijijijijjPVVGB平衡节点有功功率计算公式为:1(sincos)niijijijijijjQVVGB以下图所标示的正方向,输电线路功率的计算公式如下:*****20()ijijijiijiiijijijSPjQVIVyVVVy图2支路功率计算对其进行实部虚部进行分解可得P、Q计算公式为:220(cossin)()(sincos)ijiijijijijijijijiijijijijijijijPVGVVGBQVBBVVGB程序及说明51、主要变量说明1)结构体类型说明(1)节点功率结构体structNodetype{floatP,Q;};其中,P为节点的有功功率,Q为无功功率。节点功率不区分负荷功率和发电机功率,其值为本节点连接的各支路输入功率及节点所接负荷、发电机功率之和,且规定功率流入节点为正,流出为负。详细说明参见下一章“算例及结果”的第二节“源数据格式说明”。(2)线路参数结构体structLinetype{floatG,B,B0,k;};其中,G、B为线路的导纳和容纳;B0为线路的考虑变压器Π型等值电路后的对地充电容纳的一半Bc/2;k为折算到标准变压器支路后的变压器变比。详细说明参见下一章“算例及结果”的第二节“源数据格式说明”。2)变量说明表2程序主要变量说明主要变量类型含义Nodeint系统总节点数NPintPV+PQ节点数,即非平衡节点数NQintPQ节点数Numint*原始节点编号与程序表示编号映射数组NostructNodetype*节点功率数组Vfloat*节点电压有效值数组Dltafloat*节点电压相角数组YstructLinetype**线路参数矩阵BP、BQfloat**有功、无功简化雅克比矩阵B’、B”countunsignedintPQ迭代次数eP、eQconst有功、无功迭代精度控制kp、kqint有功、无功迭代结束标志dP、dQfloat*有功、无功不平衡量数组3、程序流程图6图3程序主流程图开始读取节点数据读取线路数据并形成Y矩阵形成矩阵B’及B’’并求取因子表设定PQ节点电压初值及各节点电压相角的初值迭代计算计算平衡节点功率及全部线路功率结束7图4迭代部分流程图Kp=1,Kq=1Kp=0且Kq=0Kq=1Count++Kp=0计算△P,△P/NKp=0?求△δδ+=△δKp=0且Kq=0Kq=0计算△Q、△Q/NKq=0?求△VV+=△V结束开始84、程序代码/*FUNCTION:POWERFLOW*//*WRITTENBY:HUANG&YANG&TONG*//*LASTEDITED:2008-11-24*/#includestdio.h#includemath.h