c语言编写的牛顿拉夫逊法解潮流程序

合集下载

csdn电力系统牛顿拉夫逊法潮流计算matlab

csdn电力系统牛顿拉夫逊法潮流计算matlab

电力系统牛顿拉夫逊法潮流计算在实际应用中具有重要意义。

本文将结合CSND评台上的相关资料,从理论和实践两个角度对该方法进行介绍和分析。

文章首先解释了牛顿拉夫逊法的原理和基本概念,其次介绍了潮流计算在电力系统中的作用和意义。

文章分析了目前牛顿拉夫逊法在潮流计算中的应用情况,并详细探讨了该方法在MATLAB软件中的实现过程。

本文总结了牛顿拉夫逊法在电力系统潮流计算中的优缺点,并对未来的发展趋势进行了展望。

一、牛顿拉夫逊法原理和基本概念1.1 牛顿拉夫逊法的基本原理牛顿拉夫逊法(Newton-Raphson method)是一种用于解决非线性方程组的数值方法。

其基本思想是通过不断迭代,逐步逼近方程组的解。

具体而言,牛顿拉夫逊法首先利用当前点的切线来估计方程组的根,然后通过迭代计算逐步逼近真实的解。

该方法在数学和工程领域中得到了广泛的应用,尤其在电力系统潮流计算中发挥着重要作用。

1.2 牛顿拉夫逊法的基本步骤牛顿拉夫逊法的基本步骤可以总结为以下几点:(1)选择初始点:首先需要选择一个合适的初始点作为迭代的起始点;(2)计算雅可比矩阵:根据当前点的数值,计算出雅可比矩阵,该矩阵用于估计方程组的根;(3)更新迭代点:利用雅可比矩阵和当前点的值,计算出新的迭代点;(4)判断收敛性:判断新的迭代点是否满足收敛条件,如果满足则停止迭代,否则返回第(2)步继续计算。

以上就是牛顿拉夫逊法的基本步骤,通过不断迭代,最终可以得到方程组的解。

二、潮流计算在电力系统中的作用和意义2.1 潮流计算的概念潮流计算是电力系统中一种重要的分析方法,其主要目的是确定系统中各个节点的电压幅值和相角。

通过潮流计算可以得知系统中各元件的功率、电压、电流等信息,为系统的安全稳定运行提供重要数据支撑。

2.2 潮流计算的意义潮流计算在电力系统中具有重要的意义,主要体现在以下几个方面:(1)系统规划:在电力系统的规划设计阶段,潮流计算可以帮助工程师确定系统中各个节点的电压和功率分布,为系统的合理规划提供依据。

C语言进行潮流计算

C语言进行潮流计算

电力系统课程设计C语言潮流计算学院:电气工程班级:电092班学号:0912002020学生姓名:闵凯2013.3.7电力系统的潮流计算是对电力系统分析的最基本步骤也是最重要的步骤,是指在一定的系统结构和运行条件下,确定系统运行状态的计算,也即是对各母线(节点)电压,各元件(支路)传输电线或功率的计算。

通过计算出的节点电压和功率分布用以检查系统各元件是否过负荷,各点电压是否合理,以及功率损耗等。

即使对于一个简单的电力系统,潮流计算也不是一件简单就可以完成的事,其运算量很大,因此如果对于一个大的、复杂的电网来说的话,由于其节点多,分支杂,其计算量可想而知,人工对其计算也更是难上加难了。

特别是在现实生活中,遇到一个电力系统不会像我们期望的那样可以知道它的首端电压和首端功率或者是末端电压和末端功率,而是只知道它的首端电压和末端功率,更是使计算变的头疼万分。

为了使计算变的简单,我们就可以利用计算机,用C 语言编程来实现牛顿-拉夫逊(Newton-Raphson )迭代法,最终实现对电力系统潮流的计算。

一.用牛顿-拉夫逊迭代法进行电力系统潮流计算的相关概念1.节点导纳矩阵如图所示的电力网络,将节点i 和j 的电压用∙U i 和∙.U j 表示,它们之间的支路导纳表示为y ij ,那么有基尔霍夫电流定律可知注入接点I 的电流∙.I i (设流入节点的电流为正)等于离开节点I 的电流之和,因此有)(.00∙∙≠=≠=∙∙-==∑∑j i nij ijnij ij i U U I I y (1-1)∴ ∙≠=≠=∙∙∑∑-=U y y U I nij ij nij ij i 00 (1-2)如令ii nij ijY y=∑≠=0ij ij Y y =-则可将(1-2)改写为:∑≠=∙∙=nij ij iji U YI 1 I=1,2,…,n. (1-3)上式也可以写为: I =YU (1-4)其中Y 为节点导纳矩阵,也称为稀疏的对称矩阵,它是n×n 阶方阵。

牛顿拉夫逊法计算潮流步骤

牛顿拉夫逊法计算潮流步骤

牛顿拉夫逊法计算潮流步骤牛顿拉夫逊法(Newton-Raphson Method)是一种常用于计算潮流的数值求解方法。

它是基于潮流计算的功率流方程的非线性特性而设计的,通过迭代求解来逼近潮流计算的稳态解。

下面将介绍牛顿拉夫逊法计算潮流的基本步骤。

首先,我们需要明确潮流计算的目标,即确定电力系统中各节点的电压相角和幅值。

这些节点是电力系统中的发电机、负荷和交流输电线路的连接点。

通过潮流计算,我们可以得到各节点的电压相角和幅值,从而分析系统的功率分布、电压稳定性等运行特性。

接下来,我们需要建立电力系统的潮流计算模型。

这个模型中,我们需要考虑发电机的注入功率、负荷的吸收功率、线路的传输损耗等因素。

通过利用功率流方程,我们可以将这些因素表示为电压、功率和导纳之间的方程。

然后,我们需要进行初始化操作。

在进行牛顿拉夫逊法迭代计算之前,我们需要对电力系统的各节点进行初始电压值的设定。

这些初始值可以根据经验或者历史数据来得到,但需要满足物理约束条件,如一致性、电压幅值在合理范围内等。

接下来,我们进入迭代计算的过程。

首先,我们需要对系统的节点进行编号,然后选择某一节点作为基准节点,其他节点相对于基准节点的电压相角进行计算。

然后,我们根据节点注入功率和导纳矩阵的关系,得到节点注入电流。

接着,我们根据节点注入电流和电压相角的关系,计算各节点的电压相角和幅值的改变量。

在计算改变量后,我们需要对节点电压进行更新。

更新后,我们判断系统是否达到收敛条件。

如果满足收敛条件,则停止迭代,得到最终的潮流计算结果;如果不满足收敛条件,则继续进行下一轮迭代计算。

最后,我们对潮流计算结果进行分析和验证。

通过比较计算得到的结果和实际运行数据进行对比,我们可以评估潮流计算的准确性。

同时,我们还可以通过故障分析、电压稳定性评估等手段对电力系统进行优化和改进。

总而言之,牛顿拉夫逊法是一种常用的求解潮流计算问题的方法。

它通过迭代求解潮流计算的功率流方程,逼近潮流计算的稳态解。

潮流计算程序

潮流计算程序

潮流程序说明书1.程序原始数据输入格式如下:B1是支路参数矩阵,第一列和第二列为节点编号,按照从小到大编写;第三列为支路串联阻抗参数;第四列为对地导纳参数;第五列为变压器变比;第六列为是否含有变压器,“1”为含有变压器,“2”为不含变压器。

B2是节点参数矩阵,第一列为节点注入发电功率参数;第二列为负荷功率参数;第三列为节点电压参数;其中“1”为平衡节点,“2”为PQ节点,“3”为PV节点。

X是节点号和对地参数矩阵,第一列为节点号;第二列为对地情况,“0”表示没有对地。

2.基本原理: 采用牛顿-—拉夫逊潮流算法(直角坐标系)主要变量定义:B1—支路参数矩阵;B2—节点参数矩阵;X—节点号和对地参数;S—节点功率数值,序号为奇数的储存有功功率,偶数的储存无功功率;DS—序号为奇数的储存有功功率不平衡量,对PQ节点,序号为偶数的储存无功功率不平衡量,对PV节点,序号为偶数的储存电压不平衡量;I—节点电流数值;DetaU—节点电压修正值;Number—迭代次数;dS—线路上损耗的功率;3.程序流程框图如下:启动输入原始数据形成节点导纳矩阵Y设置节点电压初始值B2(i,3)设置迭代次数Number=1根据给定初始值计算功率数值PV 节点计算有功功率功率不平衡量DS 和电压不平衡量DetaUPQ 节点计算有功功率和无功功率不平衡量DSJacobi 矩阵是否全部形成,i>n计算Jacobi 矩阵的对角元素与非对角元素增大节点号i=i+1置节点号i=1解修正方程求出功率增量和各节点电压增量求出电压增量最大值max(DetaU)迭代是否收敛,最大值是否小于ac求出各节点功率S、各条支路首末端功率Si 、Sj,节点电压U 、节点电流I停止增大迭代次数Number=Number+1计算各节点电压值是否是否4.计算结果如下(完整计算结果见文本文档)其中:3节点运行结果如下:请输入节点数:n=3请输入支路数:n1=3请输入平衡节点号:bl=3请输入误差精度:ac=0.000001请输入支路参数:B1=[1 2 0.15i 0 1 1;2 3 0.93i 0 1 0;2 3 0.5i 0 1 0]请输入节点参数:B2=[0.9 0 1 0 0 3;0 0 1 0 0 2;0 0 0.9001 1.05 0 1]节点号和对地参数:X=[1 0;2 0;3 0]Y =0 + 6.6667i0 - 6.6667i0 + 3.0753i0 + 6.6667i0 - 9.7419i0 - 3.0753i0 0 + 3.0753iU =0.96941.00000.9001各节点的功率S为(按节点号排列):0 - 0.1976i0 + 0.5110i0 - 0.2765i各条支路的首端功率Si为(同B1顺序一样):0 + 0.2038i0 + 0.1074i0 + 0.1998i各条支路的末端功率Sj为(同B1顺序一样):0 - 0.1976i0 - 0.0967i0 - 0.1798i各条支路的功率损耗dS为(同B1顺序一样):0 + 0.0062i0 + 0.0200i0 + 0.0200i9节点运行结果如下:请输入节点数:n=9请输入支路数:n1=9请输入平衡节点号:bl=1请输入误差精度:ac=0.001请输入支路参数:B1=[1 4 0+0.0576i 0 1 1;2 7 0+0.0625i 0 1 1;3 9 0+0.0586i 0 1 1;4 5 0.01+0.085i 0.176i 1 0;4 6 0.017+0.092i 0.158i 1 0;5 7 0.032+0.161i 0.306i 1 0;6 9 0.039+0.17i 0.358i 1 0;7 0.0085+0.072i 0.149i 1 0;8 9 0.0119+0.1008i 0.209i 1 0]请输入节点参数:B2=[0 0 1.04 1.05 0 1;1.63+0i 0 1.025 1.05 0 3;0.85+0i 0 1.025 1.05 0 3;0 0 1 0 0 2;0 -1.25-0.50i 1 0 0 2;0 -0.90-0.30i 1 0 0 2;0 0 1 0 0 2;0 -1-0.35i 1 0 0 2;0 0 1 0 0 2]节点号和对地参数:X=[1 0;2 0;3 0;4 0;5 0;6 0;7 0;8 0;9 0]Y =Columns 1 through 50 -17.3611i 0 0 0 +17.3611i0 0 -16.0000i 0 0 00 0 0 -17.0648i 0 00 +17.3611i 0 0 3.3074 -39.3089i-1.3652 +11.6041i0 0 0 -1.3652 +11.6041i2.5528 -17.3382i0 0 0 -1.9422 +10.5107i0 0 +16.0000i 0 0-1.1876 + 5.9751i0 0 0 0 00 0 0 +17.0648i 0 0Columns 6 through 90 0 0 00 0 +16.0000i 0 00 0 0 0 +17.0648i0 0 0-1.9422 +10.5107i0 00 -1.1876 + 5.9751i0 0 -1.2820 + 5.5882i3.2242 -15.8409i-1.6171 +13.6980i0 2.8047 -35.4456i-1.1551 + 9.7843i2.7722 -23.3032i0 -1.6171 +13.6980i-1.2820 + 5.5882i 0 -1.1551 + 9.7843i 2.4371 -32.1539i -0.0168 -0.1328iU =1.04003.2481 - 0.9555i3.2076 - 0.8593i3.2428 - 0.5596i3.2235 - 0.7453i1.8842 - 0.3587i2.3853 - 0.6321i2.4410 - 0.8344i各节点的功率S为(按节点号排列):1.0e+002 *0.1010 - 0.3977i-0.0361 + 0.4978i-0.0571 + 0.0252i0.0687 + 1.7360i-0.0214 + 0.1542i-0.0808 - 0.4329i0.0531 - 0.5394i-0.1579 - 0.1256i0.2074 + 0.4176i-0.00180.0071-0.00710.00410.0044各条支路的首端功率Si为(同B1顺序一样): -1.0105e+001 +1.2945e+002i3.6128 -36.2000i5.7087 - 2.3123i7.0539 - 2.2715i9.9160 +46.4206i4.8627 +14.6652i-1.8285 -15.5465i5.7060 - 4.7477i-10.1578 -16.9569i各条支路的末端功率Sj为(同B1顺序一样): 10.1046 -39.7723i-3.6128 +49.7840i-5.7087 + 2.5192i-7.0064 + 0.7595i-6.2529 -27.7428i-4.0131 -12.9970i4.2137 +23.3616i-5.6348 + 4.4012i10.8152 +20.7070i各条支路的功率损耗dS为(同B1顺序一样): -0.0000 +89.6771i0 +13.5840i0 + 0.2069i3.6631 +18.6778i0.8496 + 1.6681i2.3852 + 7.8152i0.0712 - 0.3465i0.6574 + 3.7501i39节点运行结果如下:请输入节点数:n=39请输入支路数:n1=46请输入平衡节点号:bl=31请输入误差精度:ac=0.1请输入支路参数:B1=[1 2 0.00350+0.04110i 0.6987i 1 0;1 39 0.00100+0.02500i 0.7500i 1 0;2 3 0.00130+0.01510i 0.2572i 1 0;2 25 0.00700+0.00860i 0.1460i 1 0;30 2 0.00000+0.01810i 0.00 102.5 1;3 4 0.00130+0.02130i 0.2214i 1 0;3 18 0.00110+0.01330i 0.2138i 1 0;4 5 0.00080+0.01280i 0.1342i 1 0;4 14 0.00080+0.01290i 0.1382i 1 0;5 6 0.00020+0.00260i -0.02170 1 0;5 8 0.00080+0.01120i 0.1476i 1 0;6 7 0.00060+0.00920i 0.1130i 1 0;6 11 0.00070+0.00820i 0.1389i 1 0;31 6 0.00000+0.02500i 0.00 107.000 1;7 8 0.00040+0.00460i 0.0780i 1 0;8 9 0.00230+0.03630i 0.3804i 1 0;9 39 0.00100+0.02500i 1.2000i 1 0;10 11 0.00040+0.00430i 0.0729i 1 0;10 13 0.00040+0.00430i 0.0729i 1 0;32 10 0.00000+0.02000i 0.00 107.000 1;11 12 0.00160+0.04350i 0.00 100.600 1;13 12 0.00160+0.04350i 0.00 100.600 1;13 14 0.00090+0.01010i 0.1723i 1 0;14 15 0.00180+0.02170i 0.3660i 1 0;15 16 0.00090+0.00940i 0.3420i 1 0;16 17 0.00070+0.00890i 0.1342i 1 0;16 19 0.00160+0.01950i 0.3040i 1 0;16 21 0.00080+0.01350i -0.12740 1 0;16 24 0.00030+0.00590i 0.0680i 1 0;17 18 0.00070+0.00820i 0.1319i 1 0;17 27 0.00130+0.01730i 0.3216i 1 0;20 19 0.00070+0.01380i 0.00 106.000 1;33 19 0.00070+0.01420i 0.00 107.000 1;34 20 0.00090+0.01800i 0.00 100.900 1;21 22 0.00080+0.01400i 0.2565i 1 0;22 23 0.00060+0.00960i 0.1846i 1 0;35 22 0.00000+0.01430i 0.00 102.500 1;23 24 0.00220+0.03500i 0.3610i 1 0;36 23 0.00050+0.02720i 0.00 100.000 1;25 26 0.00320+0.03230i 0.5130i 1 0;37 25 0.00060+0.02320i 0.00 102.500 1;26 27 0.00140+0.01470i 0.2396i 1 0;26 28 0.00430+0.04740i 0.7802i 1 0;26 29 0.00570+0.06250i 1.0290i 1 0;28 29 0.00140+0.01510i 0.2490i 1 0;38 29 0.00080+0.01560 0.00 102.500 1;] 请输入节点参数:B2=[0 0 1 0 0 2;0 0 1 0 0 2;1 0 0 2;0 -3.22-0.024i1 0 0 2;0 -5.00-1.84i0 0 1 0 0 2;0 0 1 0 0 2;1 0 0 2;0 -2.338-0.84i1 0 0 2;0 -5.22-1.76i0 0 1 0 0 2;0 0 1 0 0 2;0 0 1 0 0 2;1 0 0 2;0 -0.085-0.88i0 0 1 0 0 2;0 0 1 0 0 2;1 0 0 2;0 -3.20-1.53i1 0 0 2;0 -3.29-0.323i0 0 1 0 0 2;0 -1.58-0.30i1 0 0 2;0 0 1 0 0 2;1 0 0 2;0 -6.80-1.03i1 0 0 2;0 -2.74-1.15i0 0 1 0 0 2;1 0 0 2;0 -2.475-0.846i0 -3.086+0.922i 1 0 0 2;1 0 0 2;0 -2.24-0.472i1 0 0 2;0 -1.39-0.17i1 0 0 2;0 -2.81-0.755i1 0 0 2;0 -2.06-0.276i0 -2.835-1.269i1 0 0 2;2.50+1.3621i 0 1.04750 0 0 3;0 0 1.050 1.05 0 1;6.50+1.7590i 0 0.98310 1.05 0 3;6.32+1.0335i 0 0.99720 1.05 0 3;5.08+1.6440i 0 1.01230 1.05 0 3;6.50+2.0484i 0 1.04930 1.05 0 3;5.60+0.9688i 0 1.06350 1.05 0 3;5.40-0.0444i 0 1.02780 1.05 0 3;8.30+0.1939i 0 1.02650 1.05 0 3;1.03 1.05 0 3]10.0+0.68460i -11.04-2.50i节点号和对地参数:X=[1 0;2 0;3 0;4 0;5 0;6 0;7 0;8 0;9 0;10 0;11 0;12 0;13 0;14 0;15 0;16 0;17 0;18 0;19 0;20 0;21 0;22 0;23 0;24 0;25 0;26 0;27 0;28 0;29 0;30 0;31 0;32 0;33 0;34 0;35 0;36 0;37 0;38 0;39 0]Y =1.0e+002 *Columns 1 through 50.0365 - 0.6337i -0.0206 + 0.2416i 0 0 00 0-0.0206 + 0.2416i-0.0566 + 0.6574i0.6465 - 1.5929i-0.0285 + 0.4677i0.1469 - 1.8684i0 -0.0566 + 0.6574i-0.04860 0 -0.0285 + 0.4677i0.1251 - 2.0157i+ 0.7782i0 0 0 -0.0486 + 0.7782i0.4061 - 5.4887i0 0 0 0-0.2941 + 3.8235i0 0 0 0 00 0 0 0-0.0635 + 0.8883i0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 -0.0479 + 0.7722i0 0 0 0 00 0 0 0 00 0 -0.0618 + 0.7468i 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 -0.5693 + 0.6994i 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 + 0.0054i 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0-0.0160 + 0.3994i 0 0 0 0Columns 6 through 100 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0-0.2941 + 3.8235i 0 -0.0635 + 0.8883i 0 00.4679 - 6.1153i -0.0706 + 1.0824i 0 0 00 0-0.0706 + 1.0824i-0.1876 + 2.1576i0.2582 - 3.2390i-0.0174 + 0.2744i0.2685 - 3.3173i0 -0.1876 + 2.1576i0 0 -0.0174 + 0.2744i 0.0334 - 0.6658i0 0 0 00.4290 - 4.6106i-0.1034 + 1.2107i 0 0 0-0.2145 + 2.3056i0 0 0 0 00 0 0 0-0.2145 + 2.3056i0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 + 0.0037i 0 0 0 00 0 0 0 0 + 0.0047i0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 -0.0160 + 0.3994iColumns 11 through 150 0 0 0 00 0 0 0 00 0 0 -0.0479 + 0.7722i0 0 0 0 0-0.1034 + 1.2107i 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0-0.2145 + 2.3056i 0 -0.2145 + 2.3056i 0 00.3263 - 3.7448i -0.0001 + 0.0023i 0 0 00 0-0.0001 + 0.0023i-0.0001 + 0.0023i0.0000 - 0.0000i-0.0875 + 0.9823i0 -0.0001 + 0.0023i0.3105 - 3.5163i-0.03800.1734 - 2.2088i0 0 -0.0875 + 0.9823i+ 0.4577i0 0 0 -0.0380 + 0.4577i0.1389 - 1.5083i0 0 0 0-0.1009 + 1.0542i0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0Columns 16 through 200 0 0 0 00 0 0 0 00 0 -0.0618 + 0.7468i 0 00 0 0 0 00 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0-0.1009 + 1.0542i 0 0 0 00.3596 - 5.1047i0 -0.0418 + 0.5094i-0.0878 + 1.1167i-0.1034 + 1.2107i0 00.2344 - 2.8992i-0.0878 + 1.1167i0 -0.1034 + 1.2107i 0.1651 - 1.9557i 0 00 0 0.0418 - 0.5080i-0.0003-0.0418 + 0.5094i+ 0.0068i0 0 0 -0.0003 + 0.0068i0.0367 - 0.7228i-0.0437 + 0.7381i 0 0 0 00 0 0 0 00 0 0 0 0-0.0860 + 1.6905i 0 0 0 00 0 0 0 00 0 0 0 00 -0.0432 + 0.5748i 0 0 00 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 -0.0003 + 0.0066i0 0 0 0-0.0003 + 0.0055i0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0Columns 21 through 250 0 0 0 00 0 0 0-0.5693 + 0.6994i0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0-0.0437 + 0.7381i 0 0 -0.0860 + 1.6905i0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00.0838 - 1.4488i -0.0407 + 0.7120i 0 0 0-0.0649 + 1.0376i0 00.1055 - 1.7474i-0.0407 + 0.7120i-0.0179 + 0.2846i0.0827 - 1.3195i0 -0.0649 + 1.0376i0 0 -0.0179 + 0.2846i 0.1038 - 1.9730i0 0 0 00.5997 - 1.0027i0 0 0 0-0.0304 + 0.3066i0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 + 0.0068i 0 0 00 0 -0.0001 + 0.0037i 0 00 0 0 0-0.0001 + 0.0042i0 0 0 0 00 0 0 0 0Columns 26 through 300 0 0 0 00 0 0 0 0 + 0.0054i0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 00 0 0 0 00 0 0 0 00 -0.0432 + 0.5748i 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0-0.0304 + 0.3066i 0 0 0 0-0.0190 + 0.2092i-0.0145 + 0.1587i0.1280 - 1.3359i-0.0642 + 0.6742i-0.0642 + 0.6742i 0.1074 - 1.2461i 0 0 0-0.0609 + 0.6566i0 0.0799 - 0.8607i-0.0190 + 0.2092i0.0754 - 0.8089i0 -0.0609 + 0.6566i-0.0145 + 0.1587i0 0 0 0 0 - 0.5525i0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 -0.00590 0 0 0 0Columns 31 through 350 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 + 0.0037i 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 + 0.0047i 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 -0.0003 + 0.0066i 00 0 0 -0.0003 + 0.0055i0 0 0 0 00 0 0 0 0 + 0.0068i0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 - 0.4000i 0 0 0 00 0 - 0.5000i 0 0 00 0 0.0346 - 0.7025i 0 00 0 0 0.0277 - 0.5542i0 0 0 0 0 - 0.6993i0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0Columns 36 through 390 0 0 -0.0160 + 0.3994i 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0160 + 0.3994i 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0-0.0001 + 0.0037i0 0 0 00 00 -0.0001 + 0.0042i0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.0059 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 00.0068 - 0.3675i0 00 0.0111 - 0.4307i0 0 0.6098 0 0 0 0 0.0319 - 0.7890i U =1.0e+003 *0.0915 - 0.1339i0.0712 - 0.1171i0.0618 - 0.0724i0.0680 - 0.0540i0.0666 - 0.0494i0.0745 - 0.0550i0.0792 - 0.0574i0.1659 - 0.0776i0.0535 - 0.0308i0.0555 - 0.0296i3.8741 +4.1652i0.0514 - 0.0316i0.0546 - 0.0614i0.0497 - 0.1055i0.0496 - 0.1237i0.0547 - 0.1336i0.0605 - 0.1277i0.0504 - 0.1256i-0.0002 + 0.0015i0.0466 - 0.1265i0.0461 - 0.1286i0.0455 - 0.1290i0.0484 - 0.1255i0.0744 - 0.1436i0.0516 - 0.1896i0.0520 - 0.1647i0.0334 - 0.2574i0.0283 - 0.2765i0.0016 - 0.0779i0.00110.0014 - 0.0726i-0.0072 - 0.0790i-0.0062 - 0.0964i0.0011 - 0.0800i-0.0023 - 0.0823i-0.0031 - 0.0825i-4.3537 + 0.6080i0.2219 - 0.0873i各节点的功率S为(按节点号排列): 1.0e+009 *-0.0000 + 0.0000i-0.0000 + 0.0000i -0.0000 - 0.0000i -0.0000 + 0.0000i -0.0000 + 0.0000i -0.0000 - 0.0000i -0.0000 - 0.0000i -0.0000 + 0.0000i -0.0000 + 0.0000i 0.0000 - 0.0001i 0.0002 + 0.0001i 0.0000 - 0.0001i -0.0000 + 0.0000i -0.0000 - 0.0000i -0.0000 + 0.0000i 0.0000 + 0.0000i -0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i -0.0000 - 0.0000i 0.0000 + 0.0000i -0.0000 + 0.0000i -0.0000 + 0.0000i -0.0000 + 0.0000i -0.0000 + 0.0000i -0.0000 + 0.0000i -0.0000 + 0.0000i -0.0000 - 0.0000i -0.0000 + 0.0003i 0.0000 + 0.0000i -0.0000 + 0.0003i 0.0000 + 0.0004i 0.0000 + 0.0005i -0.0000 + 0.0004i 0.0000 + 0.0002i0.0000 + 0.0003i1.1785 + 0.0007i 0.0005 + 0.0008i 0.00000.0000-0.00000.0000-0.00000.00000.0000-0.00000.0000-0.00000.0000-0.00000.0000-0.00000.0000-0.00000.0000-0.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.0000各条支路的首端功率Si为(同B1顺序一样): 3.5400e+005 +2.4736e+005i-3.5581e+005 -2.3628e+005i1.0071e+005 +2.6013e+005i2.3682e+005 -1.6375e+005i3.7264e+003 +1.4471e+006i-8.0159e+004 +2.7957e+005i1.4664e+005 -5.0894e+004i-1.1893e+005 +8.1179e+004i-6.8733e+003 +9.6236e+004i-8.1580e+004 +1.3584e+005i-3.9332e+004 -8.2485e+004i-7.5059e+004 +2.1608e+005i-1.9406e+001 +2.7536e+005i-2.5689e+004 -1.0282e+005i-1.0682e+005 -2.1610e+005i-1.2535e+005 -4.1708e+005i-2.9483e+004 -1.4331e+004i2.6881e+004 +1.7017e+004i1.7943e+003 +1.8913e+005i2.7401e+007 +7.4282e+008i2.7399e+007 +7.4282e+008i1.3064e+005 -1.2139e+005i1.1489e+005 -1.2327e+005i7.7164e+004 -2.1257e+005i-2.8359e+004 -1.6599e+005i-1.7425e+003 -1.7302e+004i3.5700e+004 -1.7516e+004i3.8835e+004 -3.2323e+004i-1.2909e+005 +6.6903e+004i1.0067e+005 -2.4294e+005i6.7162e+004 +1.3247e+006i6.6365e+004 +1.2810e+006i-7.0330e+000 +2.1637e+002i9.7641e+003 -2.0069e+004i1.0245e+004 -4.5881e+003i2.4215e+003 +1.2980e+006i-1.4470e+004 +6.4486e+003i1.4051e+004 +6.8360e+005i1.9061e+005 -1.7744e+005i3.1770e+004 +1.1214e+006i-6.2319e+004 +3.1983e+005i1.2274e+005 -2.7770e+005i1.1898e+005 -2.7519e+005i9.8516e+004 -3.3183e+005i4.8839e+006 -7.0589e+005i各条支路的末端功率Sj为(同B1顺序一样): -3.3804e+005 -8.4052e+004i3.5993e+005 +3.0184e+005i-9.6779e+004 -2.2023e+005i-2.1492e+005 +1.8682e+005i-3.7264e+003 -5.6637e+003i8.6098e+004 -1.8535e+005i-1.4524e+005 +6.3681e+004i1.2077e+005 -5.2863e+004i8.2090e+004 -1.2718e+005i4.0208e+004 +9.3498e+004i8.3567e+003 +9.6235e+004i8.0400e+004 -1.5426e+005i19.4058 -26.1530i2.6210e+004 +1.0809e+005i1.2059e+005 +4.2529e+005i1.3051e+005 +4.9198e+005i2.9595e+004 +1.5259e+004i-2.6774e+004 -1.6139e+004i-1.7943e+003 -1.0552e+003i-7.9694e+004 -1.7952e+004i-7.7356e+004 -1.2573e+004i-1.2279e+005 +2.0853e+005i-1.0739e+005 +2.0990e+005i-7.3846e+004 +2.4186e+005i2.9462e+004 +1.7743e+005i1.7620e+003 +1.2057e+004i-3.7913e+004 +1.8782e+004i-3.8792e+004 +3.1940e+004i1.2980e+005 -6.1207e+004i-9.6457e+004 +2.9084e+005i3.9717e+001 +1.3853e+002i-3.5171e+003 -6.0815e+003i2.4385e+001 +1.3068e+002i-9.7460e+003 +1.5660e+004i-1.0242e+004 +1.1971e+003i-2.4215e+003 -7.0055e+003i1.4506e+004 -1.2520e+004i-1.5552e+003 -3.8100e+003i-1.8260e+005 +2.4172e+005i-2.8930e+003 -4.7791e+003i6.6279e+004 -2.8646e+005i-1.1337e+005 +3.3958e+005i-1.0726e+005 +3.4408e+005i-9.6140e+004 +3.3945e+005i2.8547e+005 +7.0589e+005i各条支路的功率损耗dS为(同B1顺序一样): 1.5956e+004 +1.6331e+005i4.1140e+003 +6.5558e+004i3.9344e+003 +3.9904e+004i2.1901e+004 +2.3079e+004i-7.8671e-011 +1.4414e+006i1.4002e+003 +1.2787e+004i 1.8394e+003 +2.8317e+004i 8.3252e+002 +1.2332e+004i 5.0953e+002 +8.6579e+003i 8.7681e+002 +1.1013e+004i 6.5898e+002 +9.2305e+003i 5.3409e+003 +6.1812e+004i -1.3866e-011 +2.7534e+005i 5.2034e+002 +5.2760e+003i 1.3774e+004 +2.0919e+005i 5.1660e+003 +7.4900e+004i 1.1258e+002 +9.2738e+002i 1.0692e+002 +8.7808e+002i 7.5033e-012 +1.8808e+005i 2.7321e+007 +7.4280e+008i 2.7322e+007 +7.4281e+008i 7.8440e+003 +8.7133e+004i 7.4944e+003 +8.6625e+004i3.3182e+003 +2.9296e+004i 1.1030e+003 +1.1435e+004i 1.9504e+001 -5.2453e+003i -2.2133e+003 +1.2653e+003i4.2504e+001 -3.8293e+002i 7.1612e+002 +5.6968e+003i 4.2119e+003 +4.7899e+004i6.7202e+004 +1.3248e+006i 6.2848e+004 +1.2749e+006i 1.7352e+001 +3.4704e+002i 1.8043e+001 -4.4090e+003i3.6386e+000 -3.3909e+003i4.4565e-011 +1.2910e+006i 3.5978e+001 -6.0715e+003i 1.2496e+004 +6.7979e+005i 8.0137e+003 +6.4281e+004i2.8877e+004 +1.1166e+006i3.9594e+003 +3.3374e+004i 9.3637e+003 +6.1880e+004i1.1719e+004 +6.8892e+004i2.3756e+003 +7.6167e+003i 5.1694e+006。

C语言潮流计算-牛顿-拉夫逊法(直角坐标)

C语言潮流计算-牛顿-拉夫逊法(直角坐标)
( k 1)fi(k ) f i
(k )
计算平衡节点功率 S s 和线路功率
~
停止
1 / 20
程序代码如下:
#include<stdio.h> #include<stdlib.h> #include<math.h> #include<string.h> #include<conio.h> struct linetype // 线路参数 { int jiedian[2]; // 若为变压器,则 左端为“低”压侧(换算成Π型等值电路),变压器的阻抗在“低”压侧 double R,X,K,B0; }line[30]; struct Nodetype // 节点功率 { int lei; // PQ 定义 1,PV 定义 2,平衡节点 定义 3 int jie; // 节点编号 double P,Q; double y1,y2; // 初始电压 }poin[30]; int point,road; // 节点数 point 支路数 road int p1,p2; // PQ PV 节点数目 //************************************************* 自定义 函数 *************************************************************** void chargescreen() // 调节屏幕 { int mode; printf("\t 请选择界面模式: ①. 106*45 ②. 134*45\n\t>>"); a: scanf("%d",&mode); if(mode!=1 && mode!=2) { printf("\n\t 错误,请重新输入...\n\t>>"); goto a; } printf("\n\t"); system("pause"); if(mode==1) system("mode con:cols=106 lines=45"); // 调整屏幕大小 else system("mode con:cols=134 lines=45"); } void pqpv() // 统计 PQ、PV 节点 数目

C语言编程 牛顿迭代法求方程1

C语言编程 牛顿迭代法求方程1

牛顿迭代公式设r 是f(x) = 0的根,选取x0作为r 初始近似值,过点(x0,f(x0))的切线L ,L 的方程为y = f(x0)+f'(x0)(x-x0),求出L 与x 轴交点的横坐标 x1 = x0-f(x0)/f'(x0),称x1为r 的一次近似值。

过点(x1,f(x1))做曲线y = f(x)的切线,并求该切线与x 轴交点的横坐标 x2 = x1-f(x1)/f'(x1),称x2为r 的二次近似值。

重复以上过程,得r 的近似值序列,其中x(n+1)=x(n)-f(x(n))/f'(x(n)),称为r 的n+1次近似值,上式称为牛顿迭代公式。

解非线性方程f(x)=0似方法。

把f(x)在x0 f(x) = f(x0)+(x -x0)f'(x0)+(x -x0)^2*f''(x0)/2! +… 取其线性部分,作为非线性方程f(x) = 0的近似方程,即泰勒展开的前两项,则有f(x0)+f'(x0)(x -x0)-f(x)=0 设f'(x0)≠0则其解为x1=x0-f(x0)/f'(x0) 这样,得到牛顿法的一个迭代序列:x(n+1)=x(n)-f(x(n))/f'(x(n))。

牛顿迭代法又称牛顿切线法,它采用以下方法求根:先任意设定一个与真实的根接近的值x 0作为第一个近似根,由x 0求出f(x 0),过(x 0,f(x 0))点做f(x)的切线,交x 轴于x 1,把它作为第二次近似根,再由x 1求出f(x 1),再过(x 1,f(x 1))点做f(x)的切线,交x 轴于x 2,再求出f(x 2),再作切线……如此继续下去,直到足够接近真正的x *为止。

)()()()(0'0010100'x f x f x x x x x f x f -=-=因此, 就是牛顿迭代公式。

例1 用牛顿迭代法求方程2x 3-4x 2+3x-6=0在1.5附近的根。

Matlab及C语言在潮流计算运用

Matlab及C语言在潮流计算运用

一,潮流计算算法原理:牛顿—拉夫逊法的基本原理 牛顿-拉夫逊法是一种求解非线性方程的数值解法,由于便于编写程序用计算机求解,应用较广。

下面以一元非线性代数方程的求解为例,来说明牛顿-拉夫逊法的基本思想。

设欲求解的非线性代数方程为 f(x)=o设方程的真实解为x*,则必有f(x*)=0。

用牛顿-拉夫逊法求方程真实解x*的步骤如下:首先选取余割合适的初始估值x°作为方程f(x)=0的解,若恰巧有f(x°)=0,则方程的真实解即为x*= x°若f(x°)≠0,则做下一步。

取x¹=x°+Δx°为第一次的修正估值,则 f(x¹)=f(x°+Δx°) 其中Δx°为初始估值的增量,即Δx°=x¹-x°。

设函数f(x)具有任意阶导数,即可将上式在x°的邻域展开为泰勒级数,即:f(x¹)=f(x°+Δx°)=f(x°)+f'(x°)Δx°+[f''(x°)(Δx°)2]/2+… 若所取的|Δx°|足够小,则含(Δx°)²的项及其余的一切高阶项均可略去,并使其等于零,即:f(x¹)≈f(x°)+f'(x°)Δx°=0 故得 Δx°=-f(x°)/f'(x°) 从而 x¹= x°-f(x°)/f'(x°)可见,只要f'(x°)≠0,即可根据上式求出第一次的修正估值x¹,若恰巧有f(x¹)=0,则方程的真实解即为x*=x¹。

若f(x¹)≠0,则用上述方法由x¹再确定第二次的修正估值x²。

牛顿-拉夫逊迭代法电力网潮流计算方法与程序

牛顿-拉夫逊迭代法电力网潮流计算方法与程序
U(n)=uu(n)*(cos(dd(n))+j*sin(dd(n)));
end
Um=conj(U');
I=Y*Um;
Sm=diag(Um)*conj(I)
form=1:N1+1
forn=1:N1+1
Smn(m,n)=U(m)*(conj(U(m))-conj(U(n)))*conj(-Y(m,n));
clear
u=sym('[u1,u2,u3]');delt=sym('[d1,d2,d3]');
G=zeros(3);
B=[-19.98,10,10;10,-19.98,10;10,10,-19.98];
Y=G+j*B;
p(1)=-1.7192;q(1)=-0.7346;p(2)=0.6661;
k=0;precision=1;
qt节点无功功率符号表达式;
pp节点有功功率不平衡值符号表达式;
qq节点无功功率不平衡值符号表达式;
uu节点电压幅值数值矩阵;
dd节点电压相角数值矩阵;
PP节点不平衡功率的数值矩阵
N1网络独立节点总数;
N2网络PV节点总数;
Sm节点功率矩阵;
Smn支路功率矩阵;
J1, J2, J节点不平衡功率雅可比符号矩阵.
end
pp(m)=p(m)-sum(pt);
end
form=1:N1-N2
forn=1:N1+1
qt(n)=u(m)*u(n)*(G(m,n)*sin(delt(m)-delt(n))-B(m,n)*cos(delt(m)-delt(n)));
end
qq(m)=q(m)-sum(qt);
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

c语言编写的牛顿拉夫逊法解潮流程序闲来无事,最近把牛拉法用c语言重写一遍,和matlab相比,c语言编写潮流程序最大的难点在于矩阵求逆,我使用的求逆方法是初等行变换法,程序段如下:#include<stdio.h>#define N 3void main(){int i,j,k;float t;float Jacob[N][N]={{1,2,2},{1,3,4},{2,3,4}};//欲进行求逆的矩阵float inv_J[N][N];//逆矩阵存储于此//初始化inv_J[N][N]for(i=0;i<N;i++)for(j=0;j<N;j++){if(i!=j)inv_J[i][j]=0;elseinv_J[i][j]=1;}//将原矩阵化简为对角阵for(i=0;i<N;i++){for(j=0;j<N;j++){if(i!=j){t=Jacob[j][i]/Jacob[i][i];for(k=0;k<N;k++){Jacob[j][k]-=Jacob[i][k]*t;inv_J[j][k]-=inv_J[i][k]*t;}}}}//原矩阵各对角元素化为1,画出逆矩阵for(i=0;i<N;i++)if(Jacob[i][i]!=1){t=Jacob[i][i];for(j=0;j<N;j++)inv_J[i][j]=inv_J[i][j]/t;}//输出逆矩阵for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%9.4f",inv_J[i][j]);printf("\n");}}整个程序为://牛拉法解潮流程序#include<stdio.h>#include<math.h>#define N 4 //节点数#define n_PQ 2 //PQ节点数#define n_PV 1 //PV节点数#define n_br 5 //串联支路数void main(){void disp_matrix(float *disp_p,int disp_m,int disp_n); //矩阵显示函数float Us[2*N]={1.0,0,1.0,0,1.05,0,1.05,0}; //电压初值float Ps[N]={0,-0.5,0.2}; //有功初值float Qs[N]={0,-0.3}; //无功初值float G[N][N],B[N][N]; //各几点电导电纳struct //阻抗参数{int nl; //左节点int nr; //右节点float R; //串联电阻值float X; //串联电抗值float Bl; //左节点并联电导float Br; //右节点并联电纳}ydata[n_br]={{1,2,0,0.1880,-0.6815,0.6040},{1,3,0.1302,0.2479,0.0129,0.0129},{1,4,0.1736,0.3306,0.0172,0.0172},{3,4,0.2603,0.4959,0.0259,0.0259},{2,2,0,0.05,0,0}};float Z2; //Z^2=R^2+X^2 各串联阻抗值的平方float e[N],f[N],dfe[2*(N-1)]; //e,f存储电压的x轴分量和y轴分量,dfe存储电压修正值float mid1[N],mid2[N],dS[2*(N-1)]; //mid1、mid2存储计算雅克比行列式对角线元素的中间值,dS存储PQU的不平衡量float Jacob[2*(N-1)][2*(N-1)],inv_J[2*(N-1)][2*(N-1)]; //雅克比行列式float dPQU=1.0; //PQU不平衡量最大值int kk=0; //迭代次数int i,j,k;float t;float Pij[n_br]; //存储线路i->j的有功float Qij[n_br]; //存储线路i->j的无功float Pji[n_br]; //存储线路j->i的有功float Qji[n_br]; //存储线路j->i的无功float dPij[n_br]; //存储线路i->j的有功损耗float dQij[n_br]; //存储线路i->j的无功损耗float AA,BB,CC,DD; //存储线路潮流计算时的中间值//形成导纳矩阵--------------------------------------------------------------------------------------------------for(i=0;i<N;i++)for(j=0;j<N;j++){G[i][j]=0;B[i][j]=0;}for(i=0;i<n_br;i++){if(ydata[i].nl!=ydata[i].nr){Z2=(ydata[i].R)*(ydata[i].R)+(ydata[i].X)*(ydata[i].X);//串联阻抗等效导纳值//非对角元素G[ydata[i].nl-1][ydata[i].nr-1]=(-ydata[i].R)/Z2;B[ydata[i].nl-1][ydata[i].nr-1]=ydata[i].X/Z2;G[ydata[i].nr-1][ydata[i].nl-1]=(-ydata[i].R)/Z2;B[ydata[i].nr-1][ydata[i].nl-1]=ydata[i].X/Z2;//对角元素G[ydata[i].nl-1][ydata[i].nl-1]+=ydata[i].R/Z2;G[ydata[i].nr-1][ydata[i].nr-1]+=ydata[i].R/Z2;B[ydata[i].nl-1][ydata[i].nl-1]+=(-ydata[i].X/Z2);B[ydata[i].nr-1][ydata[i].nr-1]+=(-ydata[i].X/Z2);//并联导纳等效导纳值B[ydata[i].nl-1][ydata[i].nl-1]+=ydata[i].Bl;B[ydata[i].nr-1][ydata[i].nr-1]+=ydata[i].Br;}else{G[ydata[i].nl-1][ydata[i].nr-1]+=ydata[i].R;B[ydata[i].nl-1][ydata[i].nr-1]+=ydata[i].X;}}printf("G=\n");disp_matrix(*G,N,N);printf("B=\n");disp_matrix(*B,N,N);//分离e,ffor(i=0;i<N;i++){e[i]=Us[2*i];f[i]=Us[2*i+1];}//主程序=============================================================================== ======================while(dPQU>0.00001){//计算功率不平衡量for(i=0;i<N-1;i++){mid1[i]=0;mid2[i]=0;for(j=0;j<N;j++){mid1[i]=mid1[i]+G[i][j]*e[j]-B[i][j]*f[j];mid2[i]=mid2[i]+G[i][j]*f[j]+B[i][j]*e[j];}dS[2*i]=Ps[i]-(e[i]*mid1[i]+f[i]*mid2[i]);if(i<n_PQ)dS[2*i+1]=Qs[i]-(f[i]*mid1[i]-e[i]*mid2[i]);elsedS[2*i+1]=Us[2*i]*Us[2*i]-(e[i]*e[i]+f[i]*f[i]);}dPQU=0;for(i=0;i<2*(N-1);i++){if(dS[i]<0&&dPQU<-dS[i])dPQU=-dS[i];else if(dS[i]>0&&dPQU<dS[i])dPQU=dS[i];}if(dPQU>0.00001){kk++;//形成雅克比行列式-------------------------------------------------------------------------------------------------for(i=0;i<2*(N-1);i++)for(j=0;j<2*(N-1);j++)Jacob[i][j]=0;for(j=0;j<N-1;j++){//求H,Nfor(i=0;i<N-1;i++){if(i!=j){Jacob[2*i][2*j]=B[i][j]*e[i]-G[i][j]*f[i];Jacob[2*i][2*j+1]=-G[i][j]*e[i]-B[i][j]*f[i];}else{Jacob[2*i][2*i]=B[i][i]*e[i]-G[i][i]*f[i]-mid2[i];Jacob[2*i][2*i+1]=-G[i][j]*e[i]-B[i][j]*f[i]-mid1[i];}}//求J,Lfor(i=0;i<n_PQ;i++){if(i!=j){Jacob[2*i+1][2*j]=G[i][j]*e[i]+B[i][j]*f[i];Jacob[2*i+1][2*j+1]=B[i][j]*e[i]-G[i][j]*f[i];}else{Jacob[2*i+1][2*i]=G[i][j]*e[i]+B[i][j]*f[i]-mid1[i];Jacob[2*i+1][2*i+1]=B[i][j]*e[i]-G[i][j]*f[i]+mid2[i];}}//求R,Sfor(i=n_PQ;i<N-1;i++){if(i==j){Jacob[2*i+1][2*i]=-2*f[i];Jacob[2*i+1][2*i+1]=-2*e[i];}}}//雅克比行列式求逆-----------------------------------------------------------------------------------for(i=0;i<2*(N-1);i++)for(j=0;j<2*(N-1);j++){if(i!=j)inv_J[i][j]=0;elseinv_J[i][j]=1;}for(i=0;i<2*(N-1);i++){for(j=0;j<2*(N-1);j++){if(i!=j){t=Jacob[j][i]/Jacob[i][i];for(k=0;k<2*(N-1);k++){Jacob[j][k]-=Jacob[i][k]*t;inv_J[j][k]-=inv_J[i][k]*t;}}}}for(i=0;i<2*(N-1);i++)if(Jacob[i][i]!=1){t=Jacob[i][i];for(j=0;j<2*(N-1);j++)inv_J[i][j]=inv_J[i][j]/t;}//求电压修正值--------------------------------------------------------------------------------------------for(i=0;i<2*(N-1);i++){dfe[i]=0;for(j=0;j<2*(N-1);j++)dfe[i]-=inv_J[i][j]*dS[j];}for(i=0;i<N-1;i++){e[i]+=dfe[2*i+1];f[i]+=dfe[2*i];}}elsebreak;}//循环结束---------------------------------------------------------------------------------------------------------------//求平衡节点功率---------------------------------------------------------------------------------------------------mid1[N-1]=0;mid2[N-1]=0;for(j=0;j<N;j++){mid1[N-1]=mid1[N-1]+G[N-1][j]*e[j]-B[N-1][j]*f[j];mid2[N-1]=mid2[N-1]+G[N-1][j]*f[j]+B[N-1][j]*e[j];}Ps[N-1]=e[N-1]*mid1[N-1]+f[N-1]*mid2[N-1];Qs[N-1]=f[N-1]*mid1[N-1]-e[N-1]*mid2[N-1];for(i=n_PQ;i<N-1;i++)Qs[i]=f[i]*mid1[i]-e[i]*mid2[i];//---------------------------------------------------------------------------------------------------------------------------// 显示输出结果printf("kk=%d\n",kk);printf("P=");for(i=0;i<N;i++)printf("%9.4f",Ps[i]);printf("\nQ=");for(i=0;i<N;i++)printf("%9.4f",Qs[i]);printf("\ne=");for(i=0;i<N;i++)printf("%9.4f",e[i]);printf("\nf=");for(i=0;i<N;i++)printf("%9.4f",f[i]);printf("\n");//求线路上的潮流//计算S[i][j]for(i=0;i<n_br;i++){if(ydata[i].nl!=ydata[i].nr){Z2=(ydata[i].R)*(ydata[i].R)+(ydata[i].X)*(ydata[i].X);AA=-f[ydata[i].nl-1]*ydata[i].Bl+(e[ydata[i].nl-1]-e[ydata[i].nr-1])*ydata[i].R/Z2+(f[ydata[i].nl-1]-f[ydata[i].nr-1])*ydata[i].X/Z2;BB=-e[ydata[i].nl-1]*ydata[i].Bl-(f[ydata[i].nl-1]-f[ydata[i].nr-1])*ydata[i].R/Z2+(e[ydata[i].nl-1]-e[ydata[i].nr-1])*ydata[i].X/Z2;Pij[i]=e[ydata[i].nl-1]*AA-f[ydata[i].nl-1]*BB;Qij[i]=e[ydata[i].nl-1]*BB+f[ydata[i].nl-1]*AA;printf("S[%d][%d]=%9.4f+j%9.4f\n",ydata[i].nl,ydata[i].nr,Pij[i],Qij[i]);dPij[i]=Pij[i]+Pji[i];dQij[i]=Qij[i]+Qji[i];}}printf("\n");//计算S[j][i]for(i=0;i<n_br;i++){if(ydata[i].nl!=ydata[i].nr){Z2=(ydata[i].R)*(ydata[i].R)+(ydata[i].X)*(ydata[i].X);CC=-f[ydata[i].nr-1]*ydata[i].Br+(e[ydata[i].nr-1]-e[ydata[i].nl-1])*ydata[i].R/Z2+(f[ydata[i].nr-1]-f[ydata[i].nl-1])*ydata[i].X/Z2;DD=-e[ydata[i].nr-1]*ydata[i].Br-(f[ydata[i].nr-1]-f[ydata[i].nl-1])*ydata[i].R/Z2+(e[ydata[i].nr-1]-e[ydata[i].nl-1])*ydata[i].X/Z2;Pji[i]=e[ydata[i].nr-1]*CC-f[ydata[i].nr-1]*DD;Qji[i]=e[ydata[i].nr-1]*DD+f[ydata[i].nr-1]*CC;printf("S[%d][%d]=%9.4f+j%9.4f\n",ydata[i].nr,ydata[i].nl,Pji[i],Qji[i]);}}printf("\n");//计算dS[i][j]for(i=0;i<n_br;i++){if(ydata[i].nl!=ydata[i].nr){dPij[i]=Pij[i]+Pji[i];dQij[i]=Qij[i]+Qji[i];printf("dS[%d][%d]=%9.4f+j%9.4f\n",ydata[i].nl,ydata[i].nr,dPij[i],dQij[i]);}}printf("\n");}//主程序结束//矩阵显示函数=============================================================================== =========================void disp_matrix(float *disp_p,int disp_m,int disp_n){int i,j;for(i=0;i<disp_m;i++){for(j=0;j<disp_n;j++)printf("%9.4f",*(disp_p+i*disp_m+j));printf("\n");}printf("\n");}。

相关文档
最新文档