牛顿拉夫逊潮流计算[整理版]
牛顿拉夫逊法计算潮流步骤
![牛顿拉夫逊法计算潮流步骤](https://img.taocdn.com/s3/m/789934765627a5e9856a561252d380eb6394234f.png)
牛顿拉夫逊法计算潮流步骤牛顿拉夫逊法(Newton-Raphson method)是一种用于求解非线性方程组的迭代方法,它可以用来计算电力系统潮流的解。
潮流计算是电力系统规划和运行中的重要任务,它的目标是求解电力系统中各节点的电压幅值和相角,以及线路的功率流向等参数,用于分析电力系统的稳定性和安全性,以及进行电力系统规划和调度。
下面是使用牛顿拉夫逊法计算潮流的一般步骤:步骤1:初始化首先,需要对电力系统的各个节点(包括发电机节点和负荷节点)的电压幅值和相角进行初始化,一般可以使用其中一种估计值或者历史数据作为初始值。
步骤2:建立潮流方程根据电力系统的潮流计算模型,可以建立节点电压幅值和相角的平衡方程,一般采用节点注入功率和节点电压的关系来表示。
潮流方程一般是一个非线性方程组,包含了各个节点之间的复杂关系。
步骤3:线性化方程组将潮流方程组进行线性化处理,一般采用泰勒展开的方法,将非线性方程组变为线性方程组。
线性化的过程需要计算雅可比矩阵,即方程组中的系数矩阵。
步骤4:求解线性方程组利用线性方程组的求解方法,比如高斯消元法或LU分解法等,求解线性方程组,得到电压幅值和相角的修正量。
步骤5:更新节点电压根据线性方程组的解,更新各个节点的电压幅值和相角,得到新的节点电压。
步骤6:检查收敛性判断节点电压的修正量是否小于设定的收敛阈值,如果满足收敛条件,则停止迭代;否则,返回步骤3,循环进行线性化方程组和线性方程组的求解。
步骤7:输出结果当潮流计算收敛时,输出最终的节点电压幅值和相角,以及线路的功率流向等参数。
牛顿拉夫逊法是一种高效、快速且收敛性良好的方法,广泛应用于电力系统潮流计算。
在实际应用中,可能会遇到多次迭代或者收敛性不好的情况,此时可以采用退火技术或其他优化算法进行改进。
此外,牛顿拉夫逊法的计算也可以并行化,利用多核处理器或者分布式计算集群来加速计算过程。
总之,牛顿拉夫逊法是一种重要的潮流计算方法,通过迭代计算逼近非线性方程组的解,可以得到电力系统中各节点的电压幅值和相角,用于分析电力系统的稳定性和安全性。
牛顿拉夫逊潮流计算[整理版]
![牛顿拉夫逊潮流计算[整理版]](https://img.taocdn.com/s3/m/cbe8618987c24028905fc324.png)
牛顿拉夫逊潮流计算 [整理版 ]float G[N][N],B[N][N]; // struct // 阻抗参数int nl; // 左节点int nr; // 右节点牛顿拉夫逊潮流计算// 整个程序为 :// 牛拉法解潮流程序#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}; // 无功初值各几点电导电纳}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; //ZA2=RA2+XA2 各串 联阻抗值的平方存储电压修正值float mid1[N],mid2[N],dS[2*(N-1)]; //mid1对角线元素的中间值 ,dS 存储 PQUi 勺不平衡量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 R; // 串联电阻值 float X; // 串联电抗值 float Bl; // 左节点并联电导 float Br; // 右节点并联电纳float e[N],f[N],dfe[2*(N-1)]; //e,f存储电压的 x 轴分量和 y 轴分量 ,dfe、mid2 存储计算雅克比行列式// 形成导纳矩阵 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;// 对角元素 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; //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; elseG[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]); else dS[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,N for(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];elseJacob[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,L for(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];elseJacob[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,S for(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];// 雅克比行列式求逆// 初始化inv_J[N][N] for(i=0;i<2*(N-1);i++)for(j=0;j<2*(N-1);j++) if(i!=j) inv_J[i][j]=0;else inv_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;// 原矩阵各对角元素化为1,画出逆矩阵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];else break;// 循环结束// 求平衡节点功率mid1[N-1]=0;mid2[N-1]=0;目〒o 〒N j++) midpN 厶Hmid2运厶+G 运厶=rf 曰+B 运厶PS2 厶 HeLN 二「mid 二N 厶+nN 二 :Qs 运厶吕 N 二「mid 二 N 二〒 〔二 fo 「(nnlpQ 天 N 丄 i ++)Qs 日吕『mid 二〒e 耳mid2wpl1nff(=kkH&2rr 』kkx prinm.pH) f o 「(i H O =A N =++)Pl1mf(=%9.4r 「ps=2 prinmvIQH) fo 「(no 天 N =++) pl1mf(=%9.4r 「QS=2 prinmvIeH) fo 「(no 天 N =++) Pl1mf(=%9.4r 「e=2 prinmvIfH) f o 「(i H O =A N =++)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");}。
牛顿拉夫逊法潮流计算
![牛顿拉夫逊法潮流计算](https://img.taocdn.com/s3/m/338fa5b47d1cfad6195f312b3169a4517723e5f8.png)
牛顿拉夫逊法潮流计算
油田自出井管网的潮流模拟分析是油田开发运行中的重要工作,是保
证油田系统安全运行的基础性工作。
牛顿-拉夫逊法是一种经典的油田自
出井管网的潮流模拟计算方法。
本文介绍了牛顿-拉夫逊法的概念,原理,特点,以及利用牛顿-拉夫逊法求解油田自出井管网潮流问题的基本方法
和步骤。
一、牛顿-拉夫逊方法的概念
牛顿-拉夫逊法也叫牛顿-拉夫逊潮流计算法,它是一种迭代法,用于
求解牛顿-拉夫逊方程,即求解由牛顿-拉夫逊节点组成的网络中流动矢量
的幅值和相位角。
牛顿-拉夫逊方程是以节点电压和电流矢量以及节点内
的电阻和电感量建立的方程组,是油田自出井管网潮流模拟计算的基础方
程组。
牛顿-拉夫逊方程是一组非线性方程,其解依赖节点网络结构,因
此实施计算时需要迭代求解,因此被称为牛顿-拉夫逊迭代法或牛顿-拉夫
逊方法。
二、牛顿-拉夫逊方法原理
牛顿-拉夫逊方法是一种迭代法,它采用迭代新旧节点电压矢量的比
例来求解油田自出井管网潮流模拟问题,算法充分利用了网络的放大、收敛、稳定特性,每一次迭代,都可以有效地拿到更新的节点电压矢量。
牛顿拉夫逊法潮流计算
![牛顿拉夫逊法潮流计算](https://img.taocdn.com/s3/m/2d7a842f1fd9ad51f01dc281e53a580216fc50c4.png)
牛顿拉夫逊法潮流计算牛顿-拉夫逊法(Newton-Raphson method)是一种用于求解非线性方程的数值方法。
它通过迭代逼近根的方式,将非线性方程转化为一系列的线性方程来求解。
在电力系统中,潮流计算用于确定电力网中节点的电压幅值和相角。
潮流计算是电力系统分析的重要基础,可以用于计算电力系统的潮流分布、功率损耗、节点电压稳定度等参数,为电力系统的规划、运行和控制提供参考依据。
牛顿-拉夫逊法是一种常用的潮流计算方法,它的基本思想是通过不断迭代来逼近电网的潮流分布,直到满足一定的收敛条件。
下面将对牛顿-拉夫逊法的具体步骤进行详细介绍。
首先,我们需要建立电力网络的节点潮流方程,即功率方程。
对于每一个节点i,其节点功率方程可以表示为:Pi - Vi * (sum(Gij * cos(θi - θj)) - sum(Bij * sin(θi -θj))) = 0Qi - Vi * (sum(Gij * sin(θi - θj)) + sum(Bij * cos(θi -θj))) = 0其中,Pi和Qi分别为节点i的有功功率和无功功率,Vi和θi分别为节点i的电压幅值和相角,Gij和Bij分别为节点i和节点j之间的导纳和电纳。
接下来,我们需要对每个节点的电压幅值和相角进行初始化。
一般情况下,可以将电压幅值设置为1,相角设置为0。
然后,我们可以开始进行迭代计算。
在每一轮迭代中,我们需要计算每个节点的雅可比矩阵和功率残差,然后更新电压幅值和相角。
雅可比矩阵可以通过对节点功率方程进行求导得到,具体如下:dPi/dVi = -sum(Vj * (Gij * sin(θi - θj) + Bij * cos(θi - θj)))dPi/dθi = sum(Vj * (Gij * Vi * cos(θi - θj) - Bij * Vi * sin(θi - θj)))dQi/dVi = sum(Vj * (Gij * cos(θi - θj) - Bij * sin(θi - θj)))dQi/dθi = sum(Vj * (Gij * Vi * sin(θi - θj) + Bij * Vi * cos(θi - θj)))功率残差可以通过将节点功率方程代入得到,如下:RPi = Pi - Vi * (sum(Gij * cos(θi - θj)) - sum(Bij *sin(θi - θj)))RQi = Qi - Vi * (sum(Gij * sin(θi - θj)) + sum(Bij *cos(θi - θj)))最后,我们可以使用牛顿-拉夫逊法的迭代公式来更新电压幅值和相角,具体如下:Vi(new) = Vi(old) + ΔViθi(new) = θi(old) + Δθi其中,ΔVi和Δθi分别为通过求解线性方程组得到的电压幅值和相角的增量。
(整理)电力系统分析课程设计——牛顿拉夫逊潮流计算
![(整理)电力系统分析课程设计——牛顿拉夫逊潮流计算](https://img.taocdn.com/s3/m/9ddd3448bcd126fff7050bb9.png)
目录电力系统编程潮流计算 (2)1 设计任务及初步分析 (2)1.1 设计任务 (2)1.2 初步分析 (2)2 牛顿-拉夫逊法简介 (3)2.1概述 (3)2.2 一般概念 (3)2.3 潮流计算的修正方程 (4)2.4 直角坐标表示的修正方程 (4)3 程序设计 (8)3.1 程序流程图 (8)3.2 源程序 (8)3.3 结果及分析 (16)4 小结 (17)参考文献 (18)电力系统编程潮流计算1 设计任务及初步分析1.1 设计任务条件:节点数:3 支路数:3 计算精度:0.00010支路1: 0.0300+j0.09001┠—————□—————┨2支路2: 0.0200+j0.09002┠—————□—————┨3支路3: 0.0300+j0.09003┠—————□—————┨1节点1:PQ 节点,S (1)=-0.5000-j0.2000 节点2:PQ 节点,S (2)=-0.6000-j0.2500 节点3:平衡节点,U (3)=1.0000∠0.0000 要求:编写程序计算潮流1.2 初步分析潮流计算在数学上可归结为求解非线性方程组,其数学模型简写如下:⎪⎪⎩⎪⎪⎨⎧=⋅⋅⋅⋅⋅⋅=⋅⋅⋅=⋅⋅⋅0)(0)(0)(21212211n n n n x x x f x x x f x x x f ,,,,,,,,,2 牛顿-拉夫逊法简介2.1概述牛顿-拉夫逊法是目前求解非线性方程最好的一种方法。
这种方法的特点就是把对非线性方程的求解过程变成反复对相应的线性方程求解的过程,通常称为逐次线性化过程,就是牛顿-拉夫逊法的核心。
牛顿-拉夫逊法的基本原理是在解的某一邻域内的某一初始点出发,沿着该点的一阶偏导数——雅可比矩阵,朝减小方程的残差的方向前进一步,在新的点上再计算残差和雅可矩阵继续前进,重复这一过程直到残差达到收敛标准,即得到了非线性方程组的解。
因为越靠近解,偏导数的方向越准,收敛速度也越快,所以牛顿法具有二阶收敛特性。
第四章复杂电力系统潮流计算-牛顿-拉夫逊潮流计算
![第四章复杂电力系统潮流计算-牛顿-拉夫逊潮流计算](https://img.taocdn.com/s3/m/ad49241a52d380eb62946d2e.png)
ΔX
(k )
?
Yes
收敛结束
极坐标形式的潮流方程
* * I U Y U Pi jQi Ui i i ij j * j 1 n
U i U i i,U j U j j Yij Gij jBij , ij i j
电压相量用 极坐标表示
极坐标下有功功率和无功功率方程
n Pi U iU j (Gij cos ij Bij sin ij ) j 1 n Q U U (G sin B cos ) ij ij ij i i j ij j 1
i 1, 2, , n
泰勒级数展开忽略步时的修正方程组为修正量修正方程的矩阵形式其中函数fx的jocabi雅可比矩阵收敛结束yesijijij极坐标下有功功率和无功功率方程电压相量用极坐标表示次迭代时pq节点
§3-4 牛顿-拉夫逊法潮流计算 (Newton-Raphson迭代法)
牛顿-拉夫逊法
单变量非线性方程
真解
f ( x ) 0,
j 1 n
n
U i U j [(Gij cos ij Bij sin ij ) j (Gij sin ij Bij cos ij )
j 1 n
U i U j (Gij cos ij Bij sin ij ) jU i U j (Gij sin ij Bij cos ij )
x( 0 )
1
x( 0 )
1
x1 x( 0 ) n x2 f n xn (0) x n x n f 1 x n
迭代至第 k 步时的修正方程组为
牛顿拉夫逊算法
![牛顿拉夫逊算法](https://img.taocdn.com/s3/m/cdc873d6d15abe23482f4d53.png)
(0) (0) f 2 ( x1 , x2 )
f 2 f (0) (0) x1 2 x 2 0 x1 0 x2 0
f 1 x 2 f 2 x2 ( 0)
矩阵形式:
f 1 f1( 0) x1 ( 0) f 2 f 2 x1
(0) (0) (0) (0) f1 ( x1 x1 , x2 x2 )0
(0) (0) (0) (0) f 2 ( x2 x2 , x2 x2 )0
第十一章 电力系统潮流计算
3、多维非线性方程组的迭代公式
展开:
(0) (0) f1 ( x1 , x2 )
f1 f (0) (0) x1 1 x 2 0 x1 0 x2 0
ji n n
(iG eB fB ijG ( Gii e ij2 f GB eiij f i B f jii)e j ii ij j )( i Gii ei i )) ij ( G f B e G f B e ij j ii i j 1 ij j j 1ii i
j 1 ji
jn 1 n n ii i j1 1 j j 1 n
n
ji
i
第十一章 电力系统潮流计算
讨论:
① J为非奇异方阵。 ② 与Y相同的稀疏性∵表示 ③ 结构对称性,分块不对称。 ④ 修正方程求解:高斯消去法。逐行消元逐行规格化 (
1 代)。回代提及复习线性代数的相关内容。 m
⑤ 节点优化编号:静态按最少出路数排序,动态按最 少出路数排序。 ⑥ 收敛性:平直电压启动时,迭代次数与实际规模 无关,线性迭代时间仅与节点数N成正比。 ⑦ ⑧ 引入修正系数。 初值、平值电压启动。
Pi e i Pi f i Qi e i Qi f i
牛顿-拉夫逊法潮流计算
![牛顿-拉夫逊法潮流计算](https://img.taocdn.com/s3/m/ac7c27a852d380eb62946dd5.png)
摘要 (1)1.设计意义与要求 (2)1.1设计意义 (2)1.2设计要求 (2)2.牛顿—拉夫逊算法 (3)2.1牛顿算法数学原理: (3)2.2 直角坐标系下牛顿法潮流计算的原理 (4)3 详细设计过程 (9)3.1节点类型 (9)3.2待求量 (9)3.3导纳矩阵 (9)3.4潮流方程 (10)3.5修正方程 (11)4.程序设计 (14)4.1 节点导纳矩阵的形成 (14)4.2 计算各节点不平衡量 (15)4.3 雅克比矩阵计算.............................................................................................................. - 17 -4.4 LU分解法求修正方程...................................................................................................... - 19 -4.5 计算网络中功率分布...................................................................................................... - 22 -5.结果分析.................................................................................................................................. - 22 -6.小结......................................................................................................................................... - 25 - 参考文献..................................................................................................................................... - 26 - 附录: ........................................................................................................................................ - 27 -潮流计算是电力网络设计及运行中最基本的计算,对电力网络的各种设计方案及各种运行方式进行潮流计算,可以得到各种电网各节点的电压,并求得网络的潮流及网络中各元件的电力损耗,进而求得电能损耗。
(完整word版)牛顿拉夫逊法潮流计算
![(完整word版)牛顿拉夫逊法潮流计算](https://img.taocdn.com/s3/m/d99fadcd2f60ddccdb38a0b8.png)
摘要本文,首先简单介绍了基于在MALAB中行潮流计算的原理、意义,然后用具体的实例,简单介绍了如何利用MALAB去进行电力系统中的潮流计算。
众所周知,电力系统潮流计算是研究电力系统稳态运行情况的一种计算,它根据给定的运行条件及系统接线情况确定整个电力系统各部分的运行状态:各线的电压、各元件中流过的功率、系统的功率损耗等等。
在电力系统规划的设计和现有电力系统运行方式的研究中,都需要利用潮流计算来定量地分析比较供电方案或运行方式的合理性、可靠性和经济性。
此外,在进行电力系统静态及暂态稳定计算时,要利用潮流计算的结果作为其计算的基础;一些故障分析以及优化计算也需要有相应的潮流计算作配合;潮流计算往往成为上述计算程序的一个重要组成部分。
以上这些,主要是在系统规划设计及运行方式安排中的应用,属于离线计算范畴。
牛顿-拉夫逊法在电力系统潮流计算的常用算法之一,它收敛性好,迭代次数少.本文介绍了电力系统潮流计算机辅助分析的基本知识及潮流计算牛顿-拉夫逊法,最后介绍了利用MTALAB程序运行的结果。
关键词:电力系统潮流计算,牛顿-拉夫逊法,MATLABABSTRACTThis article first introduces the flow calculation based on the principle of MALAB Bank of China,meaning, and then use specific examples,a brief introduction, how to use MALAB to the flow calculation in power systems。
As we all know, is the study of power flow calculation of power system steady-state operation of a calculation,which according to the given operating conditions and system wiring the entire power system to determine the operational status of each part:the bus voltage flowing through the components power, system power loss and so on. In power system planning power system design and operation mode of the current study, are required to quantitatively calculated using the trend analysis and comparison of the program or run mode power supply reasonable, reliability and economy.In addition, during the power system static and transient stability calculation, the results of calculation to take advantage of the trend as its basis of calculation;number of fault analysis and optimization also requires a corresponding flow calculation for cooperation;power flow calculation program often become the an important part. These,mainly in the way of system design and operation arrangements in the application areas are off—line calculation。
牛顿-拉夫逊算法(极坐标)潮流计算算例
![牛顿-拉夫逊算法(极坐标)潮流计算算例](https://img.taocdn.com/s3/m/270ff972590216fc700abb68a98271fe910eaf86.png)
极坐标系下的潮流计算
潮流计算
在电力系统中,潮流计算是一种常用的计算方法,用于确定在给定网络结构和参数下,各节点的电压 、电流和功率分布。在极坐标系下进行潮流计算,可以更好地描述和分析电力系统的电磁场分布和变 化。
极坐标系下的潮流计算特点
在极坐标系下进行潮流计算,可以更直观地描述电力线路的走向和角度变化,更好地反映电力系统的 复杂性和实际情况。此外,极坐标系下的潮流计算还可以方便地处理电力系统的非对称性和不对称故 障等问题。
03
CATALOGUE
极坐标系下的牛顿-拉夫逊算法
极坐标系简介
极坐标系
一种二维坐标系统,由一个原点(称为极点)和一条从极点出发的射线(称为 极轴)组成。在极坐标系中,点P的位置由一个角度θ和一个距离r确定。
极坐标系的应用
极坐标系广泛应用于物理学、工程学、经济学等领域,特别是在电力系统和通 信网络中,用于描述电场、磁场、电流和电压等物理量的分布和变化。
极坐标形式
将电力系统的节点和支路参数以极坐 标形式表示,将实数问题转化为复数 问题,简化计算过程并提高计算效率 。
02
CATALOGUE
牛顿-拉夫逊算法原理
算法概述
牛顿-拉夫逊算法是一种迭代算法,用于求解非线性方程组。在电力系统中,它 被广泛应用于潮流计算,以求解电力网络中的电压、电流和功率等参数。
准确的结果。
通过极坐标系的处理,算法 能够更好地处理电力系统的 复杂结构和不对称性,提高 了计算的准确性和适应性。
算例分析表明,该算法在处理 大规模电力系统时仍具有较好 的性能,能够满足实际应用的
需求。
展望
进一步研究牛顿-拉夫逊算法在极坐标 系下的收敛性分析,探讨收敛速度与电 力系统规模、结构和参数之间的关系, 为算法的优后的电压、电流和功 率等参数。
电力系统牛顿拉夫逊潮流计算
![电力系统牛顿拉夫逊潮流计算](https://img.taocdn.com/s3/m/476fce053968011ca3009193.png)
目录任务书 (2)摘要 (3)一、原始数据 (3)二、设计的目的和意义 (4)三、设计的原理 (4)3.1 潮流计算的变量和节点 (4)3.1.1 变量的分类 (4)3.1.2 节点的分类 (5)3.2 牛顿-拉夫逊法潮流计算 (5)3.2.1 牛顿-拉夫逊法概述 (5)3.2.2 牛拉法潮流计算的基本步骤 (7)3.2.2 牛拉法潮流计算的程序框图 (7)四、设计的内容 (8)4.1 手动计算 (8)4.1.1 手动计算的步骤 (8)4.1.2 节点设置及分类 (8)4.1.3 参数求取 (8)4.1.4 等值电路的计算 (9)4.1.5 节点导纳矩阵的形成 (10)4.2 MATLAB程序运算 (11)4.2.1 程序运算框图…………………….……………………114.2.2 程序运行的结果 (12)五、结果分析 (21)六、心得体会 (21)附录 (21)参考文献…………………………………………...…………28同组同学名单 (28)《电力系统分析》摘要众所周知,电力系统潮流计算是研究电力系统稳定运行的一种计算,它根据给定的运行条件及系统接线情况确定电力系统各部分的运行状态:各线的电压,各元件中流过的功率,系统的功率损耗等等。
在电力系统规划的设计和现有电力系统运行方式的研究中,都需要利用潮流计算来定量的分析比较供电方案或运行方式的合理性,经济性和可靠性。
此外,在电力系统静态及稳态稳定计算时,要利用潮流计算的结果作为其他计算的基础。
10kV 母线35kV 母线10kV 母线 35kV 母线牛顿拉夫逊法是在电力系统潮流计算的常用算法之一,它收敛性好,迭代次数少。
本文主要介绍了电力系统潮流计算牛顿拉夫逊法和计算机辅助分析的基本知识,最后介绍了运用MATLAB 程序运行的结果。
关键词 牛顿-拉夫逊法(Newton-Raphson ) 潮流计算与DDRT 仿真 潮流计算结果分析与调控一、原始数据1、系统图如图1所示:1 2变电所3变电所4母线10kV 母线2、发电厂资料:母线1和2为发电厂高压母线,发电厂一总装机容量为300MW,母线3为机压母线,机压母线上装机容量为100MW,最大负荷和最小负荷分别为40MW和20MW;发电厂二总装机容量为200MW。
牛顿拉夫逊法计算潮流计算
![牛顿拉夫逊法计算潮流计算](https://img.taocdn.com/s3/m/3f962a5baf45b307e971977d.png)
例题
PG1 P1 PL1 0.5 1 0.5
QG1 Q1 QL1 0.02363 0.5 0.52363
3
3
QG2 Q2 f2 (G2 je j B2 j f j ) e2 (G2 j f j B2 je j ) 0.05708
2 3
0
e3 0
f3 0
例题
0 20 0 10
J (0) 2 0 0 10
0
0
0 20
0
0
2
0
第五步:求修正量
UP222(0(0) ) UP322(30(0) )
J
(0)
fe22((00)) fe33((00))
2)计算各节点运算功率:
S (0) i
S Li
U
(
0)
2 i
yi
0
配电网前推回推潮流计算的步骤
3)从网络末端开始,逐步前推,由节点电
U (0) i
压 ,求全网各支路功率分布。
前推过程为:
P (1) ij
Pj(0)
P (1) jk
Pij(1)
kC j
Q(1) ij
Q(0) j
j 1
j 1
1 (10 0.66693410 0.0166934) 0.5
3
3
Q1 f1 (G1 je j B1 j f j ) e1 (G1 j f j B1 je j )
j 1
j 1
1 (20 10 0.99777610 0.999861) 0.02363
牛顿拉夫逊潮流计算
![牛顿拉夫逊潮流计算](https://img.taocdn.com/s3/m/b2d180124431b90d6c85c7cb.png)
牛顿—拉夫逊法潮流计算一、 潮流计算的基本原理实际电力系统中的节点类型5二、实际电力系统中的节点类型123452s 3s 4s 过渡节点:PQ 为0的给定PQ 节点,如图的节点5网络中各节点的性质:负荷节点:给定功率P 、Q 如图中的3、4节点如图中的节点1,可能有两种情况:给定P 、Q 运行,给定P 、V 运行3. 负荷发电机混合节点:PQ 节点,如图中的节点2发电机节点负荷节点负荷节点混合节点过渡节点1. 负荷节点:2. 发电机节点:4.潮流计算中节点类型划分6三、潮流计算中节点类型的划分也称为松弛节点,摇摆节点123452s 3s 4s 平衡节点PQ 节点PQ 节点PV 节点PQ 节点PQ∈Ω1. PQ 节点:已知P 、Q负荷、过渡节点,PQ 给定的发电机节点,大部分节点PV ∈Ω给定PV 的发电机节点,具有可调电源的变电所,少量节点2.PV 节点:已知P 、V3. 平衡节点+基准节点:已知V 、δ采用极坐标,节点电压表示为()cos sin i i i i i i V V V j δδδ=∠=+节点功率将写成⎪⎪⎭⎪⎪⎬⎫-=+=∑∑==n j ij ij ij ij j i i nj ij ij ij ij j i i B G V V Q B G V V P 11)cos sin ()sin cos (δδδδ (1) 式中,ij i j δδδ=-,是i 、j 两节点电压的相角差。
方程式把节点功率表示为节点电压的幅值和相角的函数。
在有n 个节点的系统中,假定第1~m 号节点为P Q 节点,第1~1m n +-号节点为PV 节点,第n 号节点为平衡节点。
n V 和n δ是给定的,PV 节点的电压幅值11~m n V V +-也是给定的。
因此,只剩下1n -个节点的电压相角121,,,n δδδ- 和m 个节点的电压幅值12,,,m V V V 是未知量。
实际上,对于每一个P Q 节点或每一个PV 节点都可以列写一个有功功率不平衡量方程式()1(cos sin )01,2,,1ni is i is i j ij ij ij ij j P P P P V V G B i n δδ=∆=-=-+==-∑ (2)而对于每一个P Q 节点还可以再列写一个无功功率不平衡量方程式()1(sin cos )01,2,,ni is i is i j ij ij ij ij j Q Q Q Q V V G B i m δδ=∆=-=--==∑ (3)式(2)和式(3)一共包含了1n m -+个方程式,正好同未知量的数目相等,而比直角坐标形式的方程少了1n m -+个。
第三节牛顿 拉夫逊法潮流计算
![第三节牛顿 拉夫逊法潮流计算](https://img.taocdn.com/s3/m/f9e087e5551810a6f52486fb.png)
∂P H11 = 1 = U1 U 2 ( −G12 sin δ12 + B12 cos δ12 ) ∂δ1 +U 3 ( −G13 sin δ13 + B13 cos δ13 ) + ... = −U1 ∑ U j (Gij sin δ ij − Bij cos δ ij )
j =2
PV节点:δi • 节点功率和支路功率(第二求解对象)
4-3 牛顿—拉夫逊法潮流计算
共2(m-1)+(n-m)=n+m-2个变量, 则需n+m-2个独立方程
节点注入功率—电压实数方程组(极坐标形式)
对节点i:
~ & S i = Pi + jQ i = U i
∑
* * Yij U j j =1
~ Si = U i
n
∑ (G
j =1 ij
− jBij U j e
)
jδ ij
e
jδ ij
= cos δ ij + j sin δ ij
∑ (G
j =1
− jBij U j cos δ ij + j sin δ ij
) (
)
4-3 牛顿—拉夫逊法潮流计算
节点注入功率—电压实数方程组(极坐标形式)
j =1
n
n
(
)
)
Qi = U i ∑ U j Gij sin δ ij − Bij cos δ ij
j =1
(
(U,δ)不是真解
∆Pi (U, δ) = Pi − U i ∑U j Gij cosδ ij + Bij sin δ ij
j =1 n
j =1
牛顿拉夫逊法潮流计算
![牛顿拉夫逊法潮流计算](https://img.taocdn.com/s3/m/35f38ad75ff7ba0d4a7302768e9951e79b8969c9.png)
牛顿拉夫逊法潮流计算牛顿拉夫逊法是计算电力系统中电流、电压的常用方法之一,也称为牛顿-拉夫逊-里特法或简称为NR法。
资深的电力系统工程师一定对这个方法非常熟悉,但是对于刚刚接触电力系统的人来说,可能会对此感到迷惑。
本文将为大家简单介绍牛顿拉夫逊法的基本步骤,帮助大家更好地理解和使用。
在介绍牛顿拉夫逊法之前,我们需要先了解一些电力系统的基本概念。
电力系统由许多发电厂、输电线路、变电站和用户组成,其中输电线路和变电站是将电能长距离输送和转换的设备。
电力系统中的发电机、负荷和输电线路都具有电阻和电抗,它们之间的复杂相互作用决定了电力系统中的电流和电压。
牛顿拉夫逊法用于计算电力系统节点之间的电流和电压。
节点是指电力系统中有电流和电压变化的点,例如发电机和变电站。
在计算电力系统节点的电流和电压时,我们需要使用一些基本的公式和原理,比如克希荷夫定律和欧姆定律。
下面是牛顿拉夫逊法的基本步骤:1. 确定电力系统中的节点和口纳负荷在计算电力系统的电流和电压之前,我们需要先确定电力系统中所有的节点和负载。
这通常是由电网规划人员完成的。
2. 初始化电力系统中的电流和电压在计算过程中,我们需要先给电力系统中的节点和口纳负荷赋初值。
此时,我们需要假设所有节点的电压相同,即电力系统处于平衡状态。
3. 建立节点电流和电压的方程组建立节点电流和电压的方程组并对其进行求解是计算电力系统电流和电压的关键步骤。
利用克希荷夫定律和欧姆定律,可以得到关于节点电流和电压的一系列方程,这个方程组的解即为电力系统的电流和电压。
4. 更新节点电流和电压求解得到电力系统的电流和电压之后,我们需要更新节点电流和电压的值。
更新后的节点电流和电压将作为下一次计算的初值。
5. 判断计算结果收敛在使用牛顿拉夫逊法计算电力系统电流和电压时,我们需要判断计算结果是否收敛。
如果计算结果没有收敛,即结果不稳定或不趋于一个确定的值,那么我们需要重新建立方程组并进行求解。
牛顿拉斐逊法潮流计算
![牛顿拉斐逊法潮流计算](https://img.taocdn.com/s3/m/48b3ac0c842458fb770bf78a6529647d272834f8.png)
牛顿拉斐逊法潮流计算牛顿拉夫逊法(Newton-Raphson method)是一种数值计算方法,用于解非线性方程。
其原理是通过迭代来逼近方程的根。
在电力系统中,牛顿拉夫逊法常用于求解潮流计算问题。
潮流计算是电力系统调度运行和规划的基础工作,其目的是确定电力系统各节点的电压幅值和相角,以及各支线上的功率和无功功率。
通过潮流计算可以有效地评估电力系统的稳定性和运行状态,并为电力系统的调度和规划提供参考依据。
牛顿拉夫逊法的核心思想是通过接近方程的根来求解非线性方程。
其基本步骤如下:1.初始化:选取一个初始点作为方程的近似解,通常选择电力系统的平衡状态作为初值。
2.构造雅可比矩阵:根据潮流方程的特点,建立牛顿拉夫逊法的雅可比矩阵。
雅可比矩阵描述了非线性方程的导数关系,用于迭代计算过程中的线性化。
3.迭代计算:利用雅可比矩阵和当前解向量,构建迭代格式,并计算得到新的解向量。
迭代格式中,包括牛顿方程和拉夫逊方程。
牛顿方程用于计算不平衡功率的校正量,而拉夫逊方程用于计算不平衡电压的校正量。
4.收敛判断:判断迭代计算得到的新解是否满足收敛条件。
通常使用误差向量的范数作为判断依据。
如果误差向量的范数小于预先设定的阈值,即可认为迭代已经收敛。
5.循环迭代:如果迭代计算得到的新解不满足收敛条件,继续进行迭代计算,直到达到收敛条件为止。
牛顿拉夫逊法的优点是收敛速度较快,尤其适用于求解非线性方程的问题。
然而,该方法也存在一些缺点。
首先,牛顿拉夫逊法需要提供一个合适的初始点,如果初始点选择不当,可能会导致迭代过程发散。
其次,构造雅可比矩阵和计算迭代格式的过程较为复杂,需要一定的数学基础和计算能力。
在电力系统潮流计算中,牛顿拉夫逊法广泛应用于求解节点电压和支路功率的平衡方程。
通过牛顿拉夫逊法,可以准确地计算出系统各节点的电压幅值和相角,指导电网的调度运营和规划工作。
总之,牛顿拉夫逊法是一种重要的数值计算方法,特别适用于求解非线性方程。
第三节牛顿拉夫逊法潮流计算
![第三节牛顿拉夫逊法潮流计算](https://img.taocdn.com/s3/m/b676e985ab00b52acfc789eb172ded630b1c98ad.png)
第三节牛顿拉夫逊法潮流计算牛顿-拉夫逊法(Newton-Raphson method)是一种数值计算方法,用于求解非线性方程和潮流计算问题。
它是基于牛顿迭代法和拉夫逊迭代法的结合,可高效地求解电力系统潮流计算问题。
潮流计算是电力系统运行分析中的重要环节,其目标是确定系统中每个节点的电压和相角,并计算各个支路的电流,以评估系统的功率传输和稳定性。
在传统的高压电力系统中,由于负荷、发电机和传输线等元件的非线性特性,潮流计算问题呈现为非线性的数学方程组,通常采用迭代方法求解。
牛顿-拉夫逊法的基本思想是通过对方程组的线性化近似,迭代求解线性方程组的解,以接近方程组的精确解。
它通过将非线性方程组转化为以下形式进行迭代:F(x)=0其中,F(x)是非线性方程组的向量函数,x是未知向量。
牛顿-拉夫逊法的迭代过程可通过以下步骤进行:1.初始化变量:根据系统的初始状态进行节点电压和相角的初始化。
2.计算雅可比矩阵:通过对非线性方程组进行偏导,得到雅可比矩阵。
雅可比矩阵描述了各个节点潮流量与节点电压和相角之间的关系。
3.迭代计算:通过牛顿迭代法进行迭代计算,直到达到指定的收敛条件。
具体步骤为:a.解线性方程组:根据雅可比矩阵和当前节点电压和相角,求解线性方程组,得到修正量。
b.更新变量:根据修正量和当前节点电压和相角,更新节点电压和相角的值。
c.判断收敛:判断修正量是否满足收敛条件,如果满足则结束迭代计算,否则返回步骤a。
牛顿-拉夫逊法的优点是收敛速度快,精度高。
然而,它的缺点是对于方程组的收敛性和初始值的选择要求较高,存在收敛到局部最小值的问题。
为了克服这些问题,可以采用改进的牛顿-拉夫逊法,如增加松弛因子或采用多起点迭代法等。
总之,牛顿-拉夫逊法是一种高效的求解非线性方程组和潮流计算问题的数值方法。
它在电力系统潮流计算中广泛应用,帮助分析和评估电力系统的稳定性和功率传输能力。
随着电力系统的规模和复杂性的增加,牛顿-拉夫逊法的进一步改进和优化仍然是一个研究的热点问题。
电力系统网络潮流计算—牛顿拉夫逊法
![电力系统网络潮流计算—牛顿拉夫逊法](https://img.taocdn.com/s3/m/d7794758fe00bed5b9f3f90f76c66137ee064fb5.png)
电力系统网络潮流计算—牛顿拉夫逊法牛顿拉弗逊法(Newton-Raphson Method)是一种常用的电力系统网络潮流计算方法,用于求解复杂电力系统中的节点电压和支路潮流分布。
本文将对牛顿拉弗逊法进行详细介绍,并讨论其优缺点及应用范围。
牛顿拉弗逊法的基本原理是通过迭代计算,将电力系统网络潮流计算问题转化为一个非线性方程组的求解问题。
假设电力系统有n个节点,则该方程组的节点电压和支路潮流分布可以通过以下公式表示:f(x)=0其中,f为非线性函数,x为待求解的节点电压和支路潮流分布。
通过泰勒展开,可以将f在其中一点x_k处展开为:f(x)≈f(x_k)+J_k(x-x_k)其中,J_k为f在x_k处的雅可比矩阵,x_k为当前迭代步骤的解。
通过令f(x)≈f(x_k)+J_k(x-x_k)=0,可以求解方程J_k(x-x_k)=-f(x_k),得到下一步的迭代解x_{k+1}。
通过不断迭代,可以逐步接近真实的解,直到满足收敛条件为止。
牛顿拉弗逊法的迭代公式如下:x_{k+1}=x_k-(J_k)^{-1}f(x_k)其中,(J_k)^{-1}为雅可比矩阵J_k的逆矩阵。
牛顿拉弗逊法的优点之一是收敛速度快。
相比其他方法,如高斯赛德尔法,牛顿拉弗逊法通常需要更少的迭代次数才能达到收敛条件。
这是因为牛顿拉弗逊法利用了函数的一阶导数信息,能够更快地找到接近解的方向。
然而,牛顿拉弗逊法也存在一些缺点。
首先,该方法要求求解雅可比矩阵的逆矩阵,计算量较大。
尤其是在大型电力系统网络中,雅可比矩阵往往非常大,计算逆矩阵的复杂度高。
其次,如果初始猜测值不合理,可能会导致算法无法收敛,需要选择合适的初始值,否则可能陷入局部极小值。
牛顿拉弗逊法在电力系统网络潮流计算中有广泛的应用。
该方法可以用于计算节点电压和支路潮流分布,提供电力系统分析和设计的重要数据。
它可以用于稳态分析、短路分析、负荷流分析等多种电力系统问题的求解。
这些问题在电力系统规划、运行和控制等方面都具有重要意义。
牛顿-拉夫逊法潮流计算
![牛顿-拉夫逊法潮流计算](https://img.taocdn.com/s3/m/728fef8d51e79b8969022608.png)
%形成节点导纳矩阵%G(1,1)=0.0157;B(1,1)=-0.1189;G(1,2)=-0.0086;B(1,2)=0.0649;G(1,3)=-0.0071;B(1,3)=0.0541;G(1,4)=0;B(1,4)=0;G(1,5)=0;B(1,5)=0;G(2,1)=-0.0086;B(2,1)=0.0649;G(2,2)=0.0111;B(2,2)=-0.0927;G(2,3)=0;B(2,3)=0;G(2,4)=0;B(2,4)=0;G(2,5)=-0.0026;B(2,5)=0.0278;G(3,1)=-0.0071;B(3,1)=0.0541;G(3,2)=0;B(3,2)=0;G(3,3)=0.0092;B(3,3)=-0.0763;G(3,4)=0;B(3,4)=0;G(3,5)=-0.0021;B(3,5)=0.0223;G(4,1)=0;B(4,1)=0;G(4,2)=0;B(4,2)=0;G(4,3)=0;B(4,3)=0;G(4,4)=0.0003;B(4,4)=-0.0127;G(4,5)=-0.0003;B(4,5)=0.0127;G(5,1)=0;B(5,1)=0;G(5,2)=-0.0026;B(5,2)=0.0278;G(5,3)=-0.0021;B(5,3)=0.0223;G(5,4)=-0.0003;B(5,4)=0.0127G(5,5)=0.0050;B(5,5)=-0.0628Y=G+j*B;%设定节点起始计算电压%delt(1)=0;delt(2)=0;delt(3)=0;delt(4)=0;u(1)=220;u(2)=220;u(3)=220;u(4)=220;%在最大负荷下时的各节点注入功率%p(1)=-60.55;q(1)=-39.29;p(2)=-150.83;q(2)=-101.46;p(3)=-90.55;q(3)=-53.81;p(4)=117;q(4)=80;%或者在最小负荷下时的各节点注入功率%p(1)=-40.37;q(1)=-25.45;p(2)=-120.58;q(2)=-75.9;p(3)=-60.38;q(3)=-34.08;p(4)=117;q(4)=80;%置迭代次数k=0%k=0;precision=1;N1=4;(4个PQ 节点)%应用式(5.3)计算()(),k k ii P Q ∆∆% while precision>0.145delt(5)=0;u(5)=220;for m=1:N1for n=1:N1+1pt(n)=u(m)*u(n)*(G(m,n)*cos(delt(m)-delt(n))+B(m,n)*sin(delt(m)-delt(n)));qt(n)=u(m)*u(n)*(G(m,n)*sin(delt(m)-delt(n))-B(m,n)*cos(delt(m)-delt(n)));endpp(m)=p(m)-sum(pt);qq(m)=q(m)-sum(qt);end%计算雅可比矩阵%for m=1:N1for n=1:N1+1h0(n)=u(m)*u(n)*(G(m,n)*sin(delt(m)-delt(n))-B(m,n)*cos(delt(m)-delt(n)));n0(n)=-u(m)*u(n)*(G(m,n)*cos(delt(m)-delt(n))+B(m,n)*sin(delt(m)-delt (n)));j0(n)=-u(m)*u(n)*(G(m,n)*cos(delt(m)-delt(n))+B(m,n)*sin(delt(m)-delt(n)));L0(n)=-u(m)*u(n)*(G(m,n)*sin(delt(m)-delt(n))-B(m,n)*cos(delt(m)-delt (n)));endH(m,m)=sum(h0)-u(m)^2*(G(m,m)*sin(delt(m)-delt(m))-B(m,m)*cos(delt(m)-delt(m)));N(m,m)=sum(n0)-2*u(m)^2*G(m,m)+u(m)^2*(G(m,m)*cos(delt(m)-delt(m))+B(m,m)*sin(delt(m)-delt(m)));J(m,m)=sum(j0)+u(m)^2*(G(m,m)*cos(delt(m)-delt(m))+B(m,m)*sin(delt(m)-delt(m)));L(m,m)=sum(L0)+2*u(m)^2*B(m,m)+u(m)^2*(G(m,m)*sin(delt(m)-delt(m))-B(m,m)*cos(delt(m)-delt(m)));End%当m=n 时,形成雅可比矩阵的对角形式,见公式5.5%for m=1:N1JJ(2*m-1,2*m-1)=H(m,m); JJ(2*m-1,2*m)=N(m,m);JJ(2*m,2*m-1)=J(m,m); JJ(2*m,2*m)=L(m,m);endfor m=1:N1for n=1:N1if m==nelse%当m ≠n 时,形成雅可比矩阵的非对角形式,见公式5.6%H(m,n)=-u(m)*u(n)*(G(m,n)*sin(delt(m)-delt(n))-B(m,n)*cos(delt(m)-del t(n)));J(m,n)=u(m)*u(n)*(G(m,n)*cos(delt(m)-delt(n))+B(m,n)*sin(delt(m)-delt (n)));N(m,n)=-J(m,n);L(m,n)=H(m,n);JJ(2*m-1,2*n-1)=H(m,n);JJ(2*m-1,2*n)=N(m,n);JJ(2*m,2*n-1)=J(m,n); JJ(2*m,2*n)=L(m,n);endendend%得到()(),k k ii P Q ∆∆% for m=1:N1PP(2*m-1)=pp(m); PP(2*m)=qq(m);end%解修正方程式,计算电压修正量()(),k k i i U δ∆∆%uu=-JJ\PP';precision=max(abs(uu));%当()()max max ||,||k k i i U δε∆∆>,计算各节点电压新值%for n=1:N1delt(n)=delt(n)+uu(2*n-1);u(n)=u(n)+uu(2*n);%增大迭代次数1k k =+%k=k+1;end%输出每次迭代的电压新值,直到()()max max ||,||k k i i U δε∆∆<结束%k-1,u,deltend%计算平衡节点的功率,并输出%for n=1:N1+1U(n)=u(n)*(cos(delt(n))+j*sin(delt(n))); endfor m=1:N1+1I(m)=Y(5,m)*U(m);endS5=U(5)*sum(conj(I))%计算各线路的功率,并输出%for m=1:N1+1for n=1:N1+1S(m,n)=U(m)*(conj(U(m))-conj(U(n)))*conj(-Y(m,n)); endendS。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
牛顿拉夫逊潮流计算[整理版] 牛顿拉夫逊潮流计算//整个程序为://牛拉法解潮流程序#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];}}}//雅克比行列式求逆----------------------------------------------------------- ------------------------//初始化inv_J[N][N]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;}}}}//原矩阵各对角元素化为1,画出逆矩阵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");}。