用Matlab计算潮流计算
MATpower潮流计算软件的使用
![MATpower潮流计算软件的使用](https://img.taocdn.com/s3/m/52444c3ca5e9856a56126093.png)
MATpower软件的使用一、MATpower软件的使用方法在MATLAB软件中的命令窗口输入runpf(‘程序名’)就可以通过MATpower已经编好的程序计算潮流,而函数runpf的参数是相应需计算潮流的数据文件。
数据文件主要用来定义和返回一下四个变量。
1、baseMVA baseMVA是一个标量,用来设置基准容量。
对于计算中采用有名值,可以根据实际情况设置,如设置100MV A;对于计算中采用标幺值,一般设置为12、bus bus变量是一个矩阵,用来设置电网中各节点参数,该矩阵内的参数如下:%% bus data%bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax Vmin其中,第1列参数即bus_i用来设置母线编号,范围为1~29997;第2列参数type用来设置母线类型,1为PQ节点,2为PV节点,3为平衡节点;第3列参数Pd用来设置母线注入负荷的有功功率;第4列参数Qd用来设置母线注入负荷的无功功率;第5列参数Gs用来设置与母线并联的电导;第6列参数Bs用来设置与母线并联的电纳;第7列参数area用来设置电网断面号,可设置范围为1~100,一般设置为1;第8列参数Vm用来设置母线电压的幅值初值;第9列参数Va用来设置母线电压的相角初值;第10列参数baseKV用来设置该母线的基准电压;第11列参数zone用来设置省耗分区号,可设置范围为1~999,一般设置为1;第12列参数Vmax用来设置工作时母线电压最高幅值;第13列参数Vmin用来设置工作时母线电压最低幅值。
3、gen gen变量是一个矩阵,用来设置接入电网的发电机参数,该矩阵的参数如下:%% generator data%bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin 其中,第1列参数bus用来设置接入发电机的母线编号;第2列参数Pg用来设置接入发电机的有功功率,注意功率输入的是有名值;第3列参数Qg用来设置接入发电机的无功功率;第4列参数Qmax用来设置接入发电机的无功功率的最大允许值;第5列参数Qmin用来设置接入发电机的无功功率的最小允许值;第6列Vg用来设置接入发电机的工作电压,注意输入的是标幺值;第7列mBase用来设置接入发电机的功率基准;第8列status用来设置发电机的工作状态,1表示投入运行,2表示投出运行;第9列Pmax用来设置接入发电机的无功功率的最大允许值;第10列参数Pmin用来设置接入发电机的无功功率的最小允许值。
潮流计算(matlab)实例计算
![潮流计算(matlab)实例计算](https://img.taocdn.com/s3/m/b12c18b3bcd126fff6050b31.png)
潮流例题:根据给定的参数或工程具体要求(如图),收集和查阅资料;学习相关软件(软件自选:本设计选择Matlab进行设计)。
2.在给定的电力网络上画出等值电路图。
3.运用计算机进行潮流计算。
4.编写设计说明书。
一、设计原理1.牛顿-拉夫逊原理牛顿迭代法是取x0 之后,在这个基础上,找到比x0 更接近的方程的跟,一步一步迭代,从而找到更接近方程根的近似跟。
牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0 的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根。
电力系统潮流计算,一般来说,各个母线所供负荷的功率是已知的,各个节点电压是未知的(平衡节点外)可以根据网络结构形成节点导纳矩阵,然后由节点导纳矩阵列写功率方程,由于功率方程里功率是已知的,电压的幅值和相角是未知的,这样潮流计算的问题就转化为求解非线性方程组的问题了。
为了便于用迭代法解方程组,需要将上述功率方程改写成功率平衡方程,并对功率平衡方程求偏导,得出对应的雅可比矩阵,给未知节点赋电压初值,一般为额定电压,将初值带入功率平衡方程,得到功率不平衡量,这样由功率不平衡量、雅可比矩阵、节点电压不平衡量(未知的)构成了误差方程,解误差方程,得到节点电压不平衡量,节点电压加上节点电压不平衡量构成新的节点电压初值,将新的初值带入原来的功率平衡方程,并重新形成雅可比矩阵,然后计算新的电压不平衡量,这样不断迭代,不断修正,一般迭代三到五次就能收敛。
牛顿—拉夫逊迭代法的一般步骤:(1)形成各节点导纳矩阵Y。
(2)设个节点电压的初始值U和相角初始值e 还有迭代次数初值为0。
(3)计算各个节点的功率不平衡量。
(4)根据收敛条件判断是否满足,若不满足则向下进行。
(5)计算雅可比矩阵中的各元素。
(6)修正方程式个节点电压(7)利用新值自第(3)步开始进入下一次迭代,直至达到精度退出循环。
(8)计算平衡节点输出功率和各线路功率2.网络节点的优化1)静态地按最少出线支路数编号这种方法由称为静态优化法。
matlab潮流计算仿真方法
![matlab潮流计算仿真方法](https://img.taocdn.com/s3/m/9653db0ce55c3b3567ec102de2bd960590c6d9d3.png)
matlab潮流计算仿真方法
MATLAB 是一种强大的编程语言和环境,可用于执行各种仿真和计算任务,包括电力系统潮流计算。
以下是一个简单的 MATLAB 潮流计算仿真方法的
示例:
1. 定义系统参数:首先,你需要定义电力系统的参数,如发电机、负荷、变压器等。
这些参数通常包括额定电压、额定功率、电抗、电阻等。
2. 建立系统模型:使用这些参数,你可以在 MATLAB 中建立电力系统的模型。
这通常涉及到定义节点和支路,以及为它们分配相应的参数。
3. 编写潮流计算函数:接下来,你需要编写一个用于执行潮流计算的函数。
这个函数应该能够接收系统的模型和参数,并返回计算出的潮流结果,如电压、电流、功率等。
4. 运行仿真:最后,你可以运行仿真并调用你编写的潮流计算函数。
这将返回计算出的潮流结果,你可以使用这些结果进行进一步的分析或可视化。
这只是一个简单的示例,实际上在编写 MATLAB 潮流计算仿真方法时可能
需要考虑更多因素,例如系统的约束条件、初始条件、迭代算法的收敛性等。
如果你需要具体的 MATLAB 代码示例或更详细的指导,我建议你查阅MATLAB 的官方文档或相关的教程和文献。
电力系统潮流计算matlab程序
![电力系统潮流计算matlab程序](https://img.taocdn.com/s3/m/8aa39259fe00bed5b9f3f90f76c66137ee064fed.png)
电力系统潮流计算matlab程序电力系统潮流计算是电力系统运行和规划中的重要环节,它用于计算电力系统中各节点的电压、功率和电流等参数。
随着电力系统规模的不断扩大和复杂性的增加,传统的手工计算方法已经无法满足需求,因此,利用计算机编程进行潮流计算成为了一种必要的选择。
Matlab是一种功能强大的科学计算软件,它提供了丰富的数学函数和工具箱,可以方便地进行电力系统潮流计算。
下面我将介绍一下如何使用Matlab编写电力系统潮流计算程序。
首先,我们需要建立电力系统的节点模型。
节点模型是电力系统中各节点的电压、功率和电流等参数的数学表示。
在Matlab中,我们可以使用矩阵来表示节点模型。
假设电力系统有n个节点,我们可以定义一个n×n的复数矩阵Y来表示节点之间的导纳关系,其中Y(i,j)表示节点i和节点j之间的导纳。
同时,我们还需要定义一个n×1的复数向量V来表示各节点的电压,其中V(i)表示节点i的电压。
接下来,我们需要编写潮流计算的主程序。
主程序的主要功能是根据节点模型和潮流计算算法,计算出各节点的电压、功率和电流等参数。
在Matlab中,我们可以使用循环语句和矩阵运算来实现潮流计算。
具体的计算过程可以参考电力系统潮流计算的算法。
在编写主程序之前,我们还需要定义一些输入参数,如电力系统的节点数、发电机节点和负荷节点等。
这些参数可以通过用户输入或者读取文件的方式获取。
同时,我们还需要定义一些输出参数,如各节点的电压、功率和电流等。
这些参数可以通过矩阵运算和循环语句计算得到,并输出到文件或者显示在屏幕上。
最后,我们需要进行程序的测试和调试。
可以通过输入一些测试数据,运行程序并检查输出结果是否正确。
如果发现程序有错误或者结果不准确,可以通过调试工具和打印调试信息的方式进行调试。
总之,利用Matlab编写电力系统潮流计算程序可以提高计算效率和准确性,为电力系统的运行和规划提供有力的支持。
当然,编写一个完整的潮流计算程序需要考虑很多细节和特殊情况,这需要有一定的电力系统和编程知识。
基于MATLAB进行潮流计算
![基于MATLAB进行潮流计算](https://img.taocdn.com/s3/m/2f6635e577eeaeaad1f34693daef5ef7ba0d1283.png)
基于MATLAB进行潮流计算本文介绍了基于MATLAB软件的潮流计算方法。
电力系统潮流计算方法分为手算潮流和计算机潮流计算两类。
手算潮流主要适用于规模较小的辐射型电力潮流计算,而计算机潮流计算有两种途径:编程实现网络方程的迭代求解和借助电力系统分析仿真软件搭建系统模型完成潮流计算。
MATLAB具有强大的矩阵运算功能和电力系统仿真平台,可以为实现潮流计算提供更便捷的手段。
本文采用极坐标形式牛顿─拉夫逊法进行潮流计算,为其他形式的潮流计算提供借鉴。
Abstract: The power flow n method can be divided into two categories: hand n of tidal current and computer power flow XXX simplified equivalent circuits。
making it XXX: programming XXX ns。
or using power system XXX system model for power flow n。
MATLAB are has strong matrix ns and its power system XXX-Raphson method of power flow n in polar coordinates with MATLAB are。
and can serve as a reference for other forms of power flow n.1.电力系统中的牛顿法潮流计算是一种常用的电力系统分析方法。
该方法基于节点电压的相等条件和潮流方程的等式条件,通过迭代求解电压和相位的不平衡量,最终得到各节点的电压、相位和功率等参数。
2.牛顿法潮流计算的步骤包括输入系统原始数据、形成节点导纳矩阵、给定各节点电压初值、计算功率偏差向量、判断收敛条件、计算雅克比矩阵、解修正方程、计算节点电压和相位的修正值、迭代计算直至满足收敛条件、计算各节点功率等参数并输出计算结果。
基于MATLAB的电力系统潮流计算
![基于MATLAB的电力系统潮流计算](https://img.taocdn.com/s3/m/bd8025536fdb6f1aff00bed5b9f3f90f76c64da2.png)
%输出计算结果
disp('节点电压为:');
通过这个程序,我们可以得到电力系统的节点电压向量。同样地,我们也可 以用节点电流法或迭代算法来求解潮流计算问题。
对于不同的算法,它们的优缺点也不尽相同。节点电压法具有计算量小、收 敛速度快等优点,但需要已知各节点的电压初始值。节点电流法相对于节点电压 法而言,收敛速度较慢,但不需要知道电压初始值。迭代算法具有普适性,可以 处理各种复杂的
基于MATLAB的电力系统潮流计算
目录
01 引言
03 Matlab工具
02 背景 04 潮流计算方法
05 结果分析
07 参考内容
目录
06 结论
引言
电力系统潮流计算是电力工程领域中非常重要的分析工具之一,用于研究电 力系统中电压、电流、功率等参数的分布和分配情况。准确地进行电力系统潮流 计算能够为电力系统的设计和运行提供重要的参考依据。本次演示将介绍使用 Matlab进行电力系统
2、利用Matlab的仿真功能,设置计算迭代的步长和算法类型等参数。
3、调用电力系统潮流计算函数, 开始计算并得到潮流结果。
4、对潮流结果进行分析和优化,为电力系统的设计和运行提供参考。
潮流计算方法
电力系统潮流计算的方法主要包括以下几个步骤:
1、网络拓扑分析:根据电力系统的结构,分析其网络拓扑关系,确定电力 系统的运行状态。
电力系统,但需要设定合适的迭代步长和初始值。
在未来研究中,我们可以进一步探索混合潮流计算方法,将不同的算法进行 组合,以获得更好的计算性能。此外,随着智能电网技术的发展,我们可以考虑 将潮流计算与优化、控制相结合,实现电力系统的智能化运行。
综上所述,基于MATLAB的电力系统潮流计算在电力工程领域具有广泛的应用 前景。通过深入研究和不断创新,我们可以进一步提高潮流计算的精度和效率, 为电力系统的稳定和经济运行提供更好的支持。
Matlab实现潮流计算程序
![Matlab实现潮流计算程序](https://img.taocdn.com/s3/m/e21fff69011ca300a6c3902a.png)
程序代码如下:111111.%读入数据clcclearfilename='123.txt';a=textread(filename)n=a(1,1);pinghengjd=a(1,2);phjddianya=a(1,3);jingdu=a(1,4);b=zeros(1,9);j1=0;[m1,n1]=size(a);for i1=1:m1if a(i1,1)==0j1=j1+1;b(j1)=i1;endendb;%矩阵分块a1=a(b(1)+1:b(2)-b(1)+1,1:n1);a2=a(b(2)+1:b(3)-1,1:n1);a3=a(b(3)+1:b(4)-1,1:n1);a4=a(b(4)+1:b(5)-1,1:n1);a5=a(b(5)+1:b(6)-1,1:n1);%设置初值vcz=1;dcz=0;kmax=20;k1=0;%求节点导纳矩阵a11=zeros(4,6);for i0=1:3for j0=1:6a11(i0,j0)=a1(i0,j0);a11(4,j0)=a2(1,j0);endenda11;linei=a11(1:4,2);linej=a11(1:4,3);liner=a11(1:4,4);linex=a11(1:4,5);lineb=a11(1:4,6);branchi=0;branchj=0;branchb=0;G=zeros(4,4);B=zeros(4,4);for k=1:4i2=linei(k,1);j2=linej(k,1);r=liner(k,1);x=linex(k,1);b=0;GIJ=r/(r*r+x*x);BIJ=-x/(r*r+x*x);if k>=4 & lineb(k)~=0k0=lineb(k);G(i2,j2)=-GIJ/k0;G(j2,i2)=G(i2,j2);B(i2,j2)=-BIJ/k0;B(j2,i2)=B(i2,j2);G(i2,i2)=G(i2,i2)+GIJ/k0/k0; B(i2,i2)=B(i2,i2)+BIJ/k0/k0;elseG(j2,i2)=-GIJ;G(i2,j2)=G(j2,i2);B(j2,i2)=-BIJ;B(i2,j2)=B(j2,i2);G(i2,i2)=G(i2,i2)+GIJ;b=lineb(k);B(i2,i2)=B(i2,i2)+BIJ+b;endG(j2,j2)=G(j2,j2)+GIJ;B(j2,j2)=B(j2,j2)+BIJ+b;endG;B;B=B.*i;Yf=G+BY=abs(Yf);alf=angle(Yf);%赋Jacobian矩阵参数P=zeros(n,1);Q=zeros(n,1);Pd=zeros(1,n);Qd=zeros(1,n);dP=zeros(1,n);dQ=zeros(1,n);PG=a4(:,3);PD=a4(:,5);QG=a4(:,4);QD=a4(:,6);i8=a4(:,2);for j8=1:length(i8)P(i8(j8))=PG(i8(j8))-PD(i8(j8));Q(i8(j8))=QG(i8(j8))-QD(i8(j8));enddelt=zeros(n,1);V=ones(n,1);V(3)=1.10;V(4)=1.05;ddelt=zeros(n,1);dV=zeros(n,1);A=zeros(2*n,2*n);B=zeros(2*n,1);Jacobian=Jaco(V,delt,n,Y,alf)%求取矩阵功率for j5=1:kmaxdisp(['第' int2str(j5) '次计算结果'])if k>=kmaxbreakendfor i10=1:4Pd(i10)=0;Qd(i10)=0;for j10=1:nPd(i10)=Pd(i10)+V(i10)*Y(i10,j10)*V(j10)*cos(d elt(i10)-delt(j10)-alf(i10,j10));Qd(i10)=Qd(i10)+V(i10)*Y(i10,j10)*V(j10)*sin(d elt(i10)-delt(j10)-alf(i10,j10));endendfor i4=1:3dP(i4)=P(i4)-Pd(i4);endfor j4=1:2dQ(j4)=Q(j4)-Qd(j4);endA=Jaco(V,delt,n,Y,alf)for i14=1:nB(i14*2-1)=-dP(i14);B(i14*2)=-dQ(i14);endif max(abs(B))>jingduX=A\B;for i16=1:nddelt(i16)=X(2*i16-1);dV(i16)=X(2*i16)*V(i16);endV=V+dVdelt=delt+ddeltelsebreakenddisp('----------------')end%流氓算法% for ii=1:2% V(ii)=V(ii)+dV(ii);% end% V222222.function A=Jaco(V,delt,n,Y,alf)%计算Jacobian矩阵for i7=1:nHd1(i7)=0;Jd1(i7)=0;for j7=1:nHd1(i7)=Hd1(i7)+V(i7)*Y(i7,j7)*V(j7)*sin(delt(i7)-delt(j7)-alf(i7,j7));Jd1(i7)=Jd1(i7)+V(i7)*Y(i7,j7)*V(j7)*cos(delt(i7)-delt(j7)-alf(i7,j7));endendfor i6=1:nfor j6=1:nif i6~=j6H(i6,j6)=-V(i6)*Y(i6,j6)*V(j6)*sin(delt(i6)-delt(j6)-alf(i6,j6));N(i6,j6)=-V(i6)*Y(i6,j6)*V(j6)*cos(delt(i6)-delt(j6)-alf(i6,j6));J(i6,j6)=-N(i6,j6);L(i6,j6)=H(i6,j6);elseH(i6,i6)=Hd1(i6)-V(i6)*Y(i6,i6)*V(i6)*sin(delt(i6)-delt(j6)-alf(i6,j6));J(i6,j6)=-Jd1(i6)+V(i6)*Y(i6,j6)*V(j6)*cos(delt(i6)-delt(j6)-alf(i6,j6));N(i6,j6)=-Jd1(i6)-V(i6)*Y(i6,i6)*V(i6)*cos(alf(i6,i6));L(i6,i6)=-Hd1(i6)+V(i6)*Y(i6,i6)*V(i6)*sin(alf(i6,i6));endendend%修正Jacobian矩阵for j9=3for i9=1:nN(i9,j9)=0;L(i9,j9)=0;J(j9,i9)=0;L(j9,i9)=0;endendL(j9,j9)=1;for j9=4for i9=1:nH(i9,j9)=0;N(i9,j9)=0;J(i9,j9)=0;L(i9,j9)=0;H(j9,i9)=0;N(j9,i9)=0;J(j9,i9)=0;L(j9,i9)=0;endendH(j9,j9)=1;L(j9,j9)=1;%Jaco=[H N;J L];%Jaco=zeros(2*n,2*n);for i11=1:nfor j11=1:nJaco(2*i11-1,2*j11-1)=H(i11,j11); Jaco(2*i11-1,2*j11)=N(i11,j11); Jaco(2*i11,2*j11-1)=J(i11,j11);Jaco(2*i11,2*j11)=L(i11,j11);endendA=Jaco;33333.数据:4 4 1.05 0.000011 12 0.1 0.40 0.015282 1 4 0.12 0.50 0.019203 24 0.08 0.40 0.014131 1 3 0 0.3 0.909090911 1 0 0 0.30 0.182 2 0 0 0.55 0.133 3 0.5 0 0 01 3 1.10 0 0。
matlab电力系统潮流计算程序
![matlab电力系统潮流计算程序](https://img.taocdn.com/s3/m/ccfc4b19bf23482fb4daa58da0116c175f0e1e36.png)
matlab电力系统潮流计算程序电力系统潮流计算是电力系统分析的关键步骤之一,用于确定电力系统各节点的电压和相角分布。
以下是一个简单的MATLAB电力系统潮流计算的基本步骤和代码示例:1.定义电力系统参数:-定义系统节点数量、支路数据、发电机数据、负荷数据等电力系统参数。
```matlab%电力系统参数busdata=[1,1.05,0,0,0,0,0,0;2,1.02,0,0,0,0,0,0;%...其他节点数据];linedata=[1,2,0.02,0.06,0.03;%...其他支路数据];gendata=[1,2,100,0,999,1.05,0.95;%...其他发电机数据];loaddata=[1,50,20;%...其他负荷数据];```2.构建潮流计算矩阵:-利用节点支路导纳、节点负荷和发电机功率等信息构建潮流计算的阻抗矩阵。
```matlabYbus=buildYbus(busdata,linedata);```3.迭代求解潮流方程:-利用迭代算法(如牛顿-拉夫森法)求解潮流方程,更新节点电压和相角。
```matlab[V,delta]=powerflow(Ybus,gendata,loaddata,busdata);```4.结果分析和可视化:-分析计算结果,可视化电压和相角分布。
```matlabplotVoltageProfile(busdata,V,delta);```这只是一个简单的潮流计算示例。
具体的程序实现可能涉及更复杂的算法和工程细节,取决于电力系统的复杂性和精确性要求。
您可能需要根据实际情况和数据格式进行调整和改进。
在实际工程中,也可以考虑使用专业的电力系统仿真软件。
MATPOWER潮流计算使用说明
![MATPOWER潮流计算使用说明](https://img.taocdn.com/s3/m/28096d4317fc700abb68a98271fe910ef12dae24.png)
MATPOWER潮流计算使用说明一、MATPOWER安装和加载数据2.打开MATLAB软件,并在命令行上输入以下命令来加载MATPOWER软件包:```matlabaddpath(genpath('<MATPOWER安装路径>'))```注意,需要将`"<MATPOWER安装路径>"`替换为你的MATPOWER软件的安装路径。
3.加载示例数据集。
MATPOWER提供了一些示例数据集,可以直接使用这些数据集进行潮流计算。
```matlabcase9```这将加载一个名为`case9`的数据集,它包含一个9节点的电力系统。
二、设置潮流计算参数在进行潮流计算之前,需要设置一些潮流计算的参数,包括:1.潮流计算算法:MATPOWER提供了不同的潮流计算算法,如牛顿-拉夫逊法(NR)和次梯度法(SC)等。
可以使用以下命令来设置潮流计算算法:mpopt = mpoption('pf.alg', '<算法名称>')```这里`<算法名称>`可以是`'NR'`或`'SC'`。
2.潮流计算收敛条件:通过设置收敛条件,可以控制潮流计算的准确性和计算时间。
以下是一些设置收敛条件的命令:```matlabmpopt = mpoption(mpopt, 'pf.tol', <收敛容限>)```这里`<收敛容限>`是一个小的正数,用于判断潮流计算是否收敛。
默认值为1e-6```matlabmpopt = mpoption(mpopt, 'pf.nr.max_it', <最大迭代次数>)```这里`<最大迭代次数>`是一个整数,用于限制牛顿-拉夫逊法的最大迭代次数。
默认值为20。
三、执行潮流计算在设置好潮流计算参数之后,可以执行潮流计算。
matlab潮流计算
![matlab潮流计算](https://img.taocdn.com/s3/m/b0422113ccbff121dc368319.png)
附录1使用牛顿拉夫逊法进行潮流计算的Matlab程序代码% 牛拉法计算潮流程序%-----------------------------------------------------------------------% B1矩阵:1、支路首端号;2、末端号;3、支路阻抗;4、支路对地电纳% 5、支路的变比;6、支路首端处于K侧为1,1侧为0% B2矩阵:1、该节点发电机功率;2、该节点负荷功率;3、节点电压初始值% 4、PV节点电压V的给定值;5、节点所接的无功补偿设备的容量% 6、节点分类标号:1为平衡节点(应为1号节点);2为PQ节点;3为PV节点;%------------------------------------------------------------------------clear all;format long;n=input('请输入节点数:nodes=');nl=input('请输入支路数:lines=');isb=input('请输入平衡母线节点号:balance=');pr=input('请输入误差精度:precision=');B1=input('请输入由各支路参数形成的矩阵:B1=');B2=input('请输入各节点参数形成的矩阵:B2=');Y=zeros(n);e=zeros(1,n);f=zeros(1,n);V=zeros(1,n);sida=zeros(1,n);S1=zeros(nl);%------------------------------------------------------------------for i=1:nl %支路数if B1(i,6)==0 %左节点处于1侧p=B1(i,1);q=B1(i,2);else %左节点处于K侧p=B1(i,2);q=B1(i,1);endY(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5)); %非对角元Y(q,p)=Y(p,q); %非对角元Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4); %对角元K侧Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4); %对角元1侧end%求导纳矩阵disp('导纳矩阵Y=');disp(Y)%-------------------------------------------------------------------G=real(Y);B=imag(Y); %分解出导纳阵的实部和虚部for i=1:n %给定各节点初始电压的实部和虚部e(i)=real(B2(i,3));f(i)=imag(B2(i,3));V(i)=B2(i,4); %PV节点电压给定模值endfor i=1:n %给定各节点注入功率S(i)=B2(i,1)-B2(i,2); %i节点注入功率SG-SLB(i,i)=B(i,i)+B2(i,5); %i节点无功补偿量end%---------------------------------------------------------------------P=real(S);Q=imag(S); %分解出各节点注入的有功和无功功率ICT1=0;IT2=1;N0=2*n;N=N0+1;a=0; %迭代次数ICT1、a;不满足收敛要求的节点数IT2 while IT2~=0 % N0=2*n 雅可比矩阵的阶数;N=N0+1扩展列IT2=0;a=a+1;for i=1:nif i~=isb %非平衡节点C(i)=0;D(i)=0;for j1=1:nC(i)=C(i)+G(i,j1)*e(j1)-B(i,j1)*f(j1);%Σ(Gij*ej-Bij*fj)D(i)=D(i)+G(i,j1)*f(j1)+B(i,j1)*e(j1);%Σ(Gij*fj+Bij*ej)endP1=C(i)*e(i)+f(i)*D(i);%节点功率P计算eiΣ(Gij*ej-Bij*fj)+fiΣ(Gij*fj+Bij*ej)Q1=C(i)*f(i)-e(i)*D(i);%节点功率Q计算fiΣ(Gij*ej-Bij*fj)-eiΣ(Gij*fj+Bij*ej) %求i节点有功和无功功率P',Q'的计算值V2=e(i)^2+f(i)^2; %电压模平方%以下针对非PV节点来求取功率差及Jacobi矩阵元素-----------------------------if B2(i,6)~=3 %非PV节点DP=P(i)-P1; %节点有功功率差DQ=Q(i)-Q1; %节点无功功率差%以上为除平衡节点外其它节点的功率计算--------------------------------------%求取Jacobi矩阵----------------------------------------------------------for j1=1:nif j1~=isb&j1~=i %非平衡节点&非对角元X1=-G(i,j1)*e(i)-B(i,j1)*f(i); % dP/de=-dQ/dfX2=B(i,j1)*e(i)-G(i,j1)*f(i); % dP/df=dQ/deX3=X2; % X2=dp/df X3=dQ/deX4=-X1; % X1=dP/de X4=dQ/dfp=2*i-1;q=2*j1-1;J(p,q)=X3;J(p,N)=DQ;m=p+1; % X3=dQ/de J(p,N)=DQ节点无功功率差J(m,q)=X1;J(m,N)=DP;q=q+1; % X1=dP/de J(m,N)=DP节点有功功率差J(p,q)=X4;J(m,q)=X2; % X4=dQ/df X2=dp/dfelseif j1==i&j1~=isb %非平衡节点&对角元X1=-C(i)-G(i,i)*e(i)-B(i,i)*f(i);% dP/deX2=-D(i)+B(i,i)*e(i)-G(i,i)*f(i);% dP/dfX3=D(i)+B(i,i)*e(i)-G(i,i)*f(i); % dQ/deX4=-C(i)+G(i,i)*e(i)+B(i,i)*f(i);% dQ/dfp=2*i-1;q=2*j1-1;J(p,q)=X3;J(p,N)=DQ;%扩展列△Qm=p+1;J(m,q)=X1;q=q+1;J(p,q)=X4;J(m,N)=DP;%扩展列△PJ(m,q)=X2;endendelse%下面是针对PV节点来求取Jacobi矩阵的元素-----------------------------------------DP=P(i)-P1; % PV节点有功误差DV=V(i)^2-V2; % PV节点电压误差for j1=1:nif j1~=isb&j1~=i %非平衡节点&非对角元X1=-G(i,j1)*e(i)-B(i,j1)*f(i); % dP/deX2=B(i,j1)*e(i)-G(i,j1)*f(i); % dP/dfX5=0;X6=0;p=2*i-1;q=2*j1-1;J(p,q)=X5;J(p,N)=DV; % PV节点电压误差m=p+1;J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X6; % PV节点有功误差J(m,q)=X2;elseif j1==i&j1~=isb %非平衡节点&对角元X1=-C(i)-G(i,i)*e(i)-B(i,i)*f(i);% dP/deX2=-D(i)+B(i,i)*e(i)-G(i,i)*f(i);% dP/dfX5=-2*e(i);X6=-2*f(i);p=2*i-1;q=2*j1-1;J(p,q)=X5;J(p,N)=DV; % PV节点电压误差m=p+1;J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X6; % PV节点有功误差J(m,q)=X2;endendendendend%以上为求雅可比矩阵的各个元素及扩展列的功率差或电压差---------------------------------------for k=3:N0 % N0=2*n (从第三行开始,第一、二行是平衡节点)k1=k+1;N1=N; % N=N0+1 即N=2*n+1扩展列△P、△Q 或△Ufor k2=k1:N1 % 从k+1列的Jacobi元素到扩展列的△P、△Q 或△UJ(k,k2)=J(k,k2)./J(k,k);% 用K行K列对角元素去除K行K列后的非对角元素进行规格化endJ(k,k)=1; % 对角元规格化K行K列对角元素赋1%回代运算-------------------------------------------------------------------if k~=3 % 不是第三行k > 3k4=k-1;for k3=3:k4 % 用k3行从第三行开始到当前行的前一行k4行消去for k2=k1:N1 % k3行后各行上三角元素J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算(当前行k列元素消为0)end %用当前行K2列元素减去当前行k列元素乘以第k行K2列元素J(k3,k)=0; %当前行第k列元素已消为0endif k==N0 %若已到最后一行break;end%前代运算------------------------------------------------------------for k3=k1:N0 % 从k+1行到2*n最后一行for k2=k1:N1 % 从k+1列到扩展列消去k+1行后各行下三角元素J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算end %用当前行K2列元素减去当前行k列元素乘以第k行K2列元素J(k3,k)=0; %当前行第k列元素已消为0endelse %是第三行k=3%第三行k=3的前代运算----------------------------------------------------for k3=k1:N0 %从第四行到2n行(最后一行)for k2=k1:N1 %从第四列到2n+1列(即扩展列)J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);%消去运算(当前行3列元素消为0)end %用当前行K2列元素减去当前行3列元素乘以第三行K2列元素J(k3,k)=0; %当前行第3列元素已消为0endendend%上面是用线性变换方式高斯消去法将Jacobi矩阵化成单位矩阵%-----------------------------------------------------------------------------------for k=3:2:N0-1L=(k+1)./2;e(L)=e(L)-J(k,N); %修改节点电压实部k1=k+1;f(L)=f(L)-J(k1,N); %修改节点电压虚部end%修改节点电压---------------------------for k=3:N0DET=abs(J(k,N));if DET>=pr %电压偏差量是否满足要求IT2=IT2+1; %不满足要求的节点数加1endendICT2(a)=IT2; %不满足要求的节点数ICT1=ICT1+1; %迭代次数end%用高斯消去法解"w=-J*V"disp('迭代次数:');disp(ICT1);disp('没有达到精度要求的个数:');disp(ICT2);for k=1:nV(k)=sqrt(e(k)^2+f(k)^2); %计算各节点电压的模值sida(k)=atan(f(k)./e(k))*180./pi; %计算各节点电压的角度E(k)=e(k)+f(k)*1i; %将各节点电压用复数表示end%计算各输出量------------------------------------------------------disp('各节点的实际电压标幺值E为:');disp(E); %显示各节点的实际电压标幺值E用复数表示disp('-----------------------------------------------------');disp('各节点的电压大小V为:');disp(V); %显示各节点的电压大小V的模值disp('-----------------------------------------------------');disp('各节点的电压相角deg为:');disp(sida); %显示各节点的电压相角for p=1:nC(p)=0;for q=1:nC(p)=C(p)+conj(Y(p,q))*conj(E(q)); %计算各节点的注入电流的共轭值endS(p)=E(p)*C(p); %计算各节点的功率S = 电压X 注入电流的共轭值enddisp('各节点的功率S为:');disp(S); %显示各节点的注入功率disp('-----------------------------------------------------');disp('各条支路的首端功率Si为:');for i=1:nlp=B1(i,1);q=B1(i,2);if B1(i,6)==0Si(p,q)=E(p)*(conj(E(p))*conj(B1(i,4)./2)+(conj(E(p)*B1(i,5))...-conj(E(q)))*conj(1./(B1(i,3)*B1(i,5))));Siz(i)=Si(p,q);elseSi(p,q)=E(p)*(conj(E(p))*conj(B1(i,4)./2)+(conj(E(p)./B1(i,5))...-conj(E(q)))*conj(1./(B1(i,3)*B1(i,5))));Siz(i)=Si(p,q);enddisp(Si(p,q));SSi(p,q)=Si(p,q);ZF=['S(',num2str(p),',',num2str(q),')=',num2str(SSi(p,q))];disp(ZF);disp('-----------------------------------------------------');enddisp('各条支路的末端功率Sj为:');for i=1:nlp=B1(i,1);q=B1(i,2);if B1(i,6)==0Sj(q,p)=E(q)*(conj(E(q))*conj(B1(i,4)./2)+(conj(E(q)./B1(i,5))...-conj(E(p)))*conj(1./(B1(i,3)*B1(i,5))));Sjy(i)=Sj(q,p);elseSj(q,p)=E(q)*(conj(E(q))*conj(B1(i,4)./2)+(conj(E(q)*B1(i,5))...-conj(E(p)))*conj(1./(B1(i,3)*B1(i,5))));Sjy(i)=Sj(q,p);enddisp(Sj(q,p));SSj(q,p)=Sj(q,p);ZF=['S(',num2str(q),',',num2str(p),')=',num2str(SSj(q,p))];disp(ZF);disp('-----------------------------------------------------');enddisp('各条支路的功率损耗DS为:');for i=1:nlp=B1(i,1);q=B1(i,2);DS(i)=Si(p,q)+Sj(q,p);disp(DS(i));DDS(i)=DS(i);ZF=['DS(',num2str(p),',',num2str(q),')=',num2str(DDS(i))];disp(ZF);disp('-----------------------------------------------------');end附录2使用PQ分解法进行潮流计算的Matlab程序代码%PQ分解法潮流计算程序%本文中的实例数据如下:节点数为9;支路数为9;平衡母线节点号为1;误差精度为0.00001;PQ节点数为5;%主程序clear all;format long;n=input('请输入节点数:n=');nl=input('请输入支路数:nl=');isb=input('请输入平衡母线节点号:isb=');pr=input('请输入误差精度:pr=');B1=input('请输入由支路参数形成的矩阵:B1='); %输入B1B2=input('请输入由支路参数形成的矩阵:B2='); %输入B2na=input('请输入PQ节点数na=');Y=zeros(n);YI=zeros(n);e=zeros(1,n);f=zeros(1,n);V=zeros(1,n);O=zeros(1,n);for i=1:nlif B1(i,6)==0p=B1(i,1);q=B1(i,2);else p=B1(i,2);q=B1(i,1);endY(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));YI(p,q)=YI(p,q)-1./B1(i,3);Y(q,p)=Y(p,q);YI(q,p)=YI(p,q);Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4);YI(q,q)=YI(q,q)+1./B1(i,3);Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4);YI(p,p)=YI(p,p)+1./B1(i,3);end %求导纳矩阵disp('节点导纳矩阵为:');disp(Y);G=real(Y);B=imag(YI);BI=imag(Y);for i=1:nS(i)=B2(i,1)-B2(i,2);BI(i,i)=BI(i,i)+B2(i,5);endP=real(S);Q=imag(S);for i=1:ne(i)=real(B2(i,3));f(i)=imag(B2(i,3));V(i)=B2(i,4);endfor i=1:nif B2(i,6)==2V(i)=sqrt(e(i)^2+f(i)^2);O(i)=atan(f(i)./e(i));endendfor i=2:nif i==nB(i,i)=1./B(i,i);else IC1=i+1;for j1=IC1:nB(i,j1)=B(i,j1)./B(i,i);endB(i,i)=1./B(i,i);for k=i+1:nfor j1=i+1:nB(k,j1)=B(k,j1)-B(k,i)*B(i,j1);endendendendp=0;q=0;for i=1:nif B2(i,6)==2p=p+1;k=0;for j1=1:nif B2(j1,6)==2k=k+1;A(p,k)=BI(i,j1);endendendendfor i=1:naif i==naA(i,i)=1./A(i,i);else k=i+1;for j1=k:naA(i,j1)=A(i,j1)./A(i,i);endA(i,i)=1./A(i,i);for k=i+1:nafor j1=i+1:naA(k,j1)=A(k,j1)-A(k,i)*A(i,j1);endendendendICT2=1;ICT1=0;kp=1;kq=1;K=1;DET=0;ICT3=1;while ICT2~=0||ICT3~=0ICT2=0;ICT3=0;for i=1:nif i~=isbC(i)=0;for k=1:nC(i)=C(i)+V(k)*(G(i,k)*cos(O(i)-O(k))+BI(i,k)*sin(O(i)-O(k)));endDP1(i)=P(i)-V(i)*C(i);DP(i)=DP1(i)./V(i);DET=abs(DP1(i));if DET>=prICT2=ICT2+1;endendendNp(K)=ICT2;if ICT2~=0for i=2:nDP(i)=B(i,i)*DP(i);if i~=nIC1=i+1;for k=IC1:nDP(k)=DP(k)-B(k,i)*DP(i);endelsefor LZ=3:iL=i+3-LZ;IC4=L-1;for MZ=2:IC4I=IC4+2-MZ;DP(I)=DP(I)-B(I,L)*DP(L);endendendendfor i=2:nO(i)=O(i)-DP(i);endkq=1;L=0;for i=1:nif B2(i,6)==2C(i)=0;L=L+1;for k=1:nC(i)=C(i)+V(k)*(G(i,k)*sin(O(i)-O(k))-BI(i,k)*cos(O(i)-O(k)));endDQ1(i)=Q(i)-V(i)*C(i);DQ(L)=DQ1(i)./V(i);DET=abs(DQ1(i));if DET >=prICT3=ICT3+1;endendendelse kp=0;if kq~=0;L=0;for i=1:nif B2(i,6)==2C(i)=0;L=L+1;for k=1:nC(i)=C(i)+V(k)*(G(i,k)*sin(O(i)-O(k))-BI(i,k)*cos(O(i)-O(k)));endDQ1(i)=Q(i)-V(i)*C(i);DQ(L)=DQ1(i)./V(i);DET=abs(DQ1(i));endendendendNq(K)=ICT3;if ICT3~=0L=0;for i=1:naDQ(i)=A(i,i)*DQ(i);if i==nafor LZ=2:iL=i+2-LZ;IC4=L-1;for MZ=1:IC4I=IC4+1-MZ;DQ(I)=DQ(I)-A(I,L)*DQ(L);endendelseIC1=i+1;for k=IC1:naDQ(k)=DQ(k)-A(k,i)*DQ(i);endendendL=0;for i=1:nif B2(i,6)==2L=L+1;V(i)=V(i)-DQ(L);endendkp=1;K=K+1;elsekq=0;if kp~=0K=K+1;endendfor i=1:nDy(K-1,i)=V(i);endenddisp('迭代次数');disp(K);disp('每次没有达到精度要求的有功功率个数为');disp(Np);disp('每次没有达到精度要求的无功功率个数为');disp(Nq);for k=1:nE(k)=V(k)*cos(O(k))+V(k)*sin(O(k))*j;O(k)=O(k)*180./pi;enddisp('各节点的电压标幺值E为:');disp(E);disp('各节点的电压V大小为:');disp(V);disp('各节点的电压相角O为:');disp(O);for p=1:nC(p)=0;for q=1:nC(p)=C(p)+conj(Y(p,q))*conj(E(q));endS(p)=E(p)*C(p);enddisp('各节点的功率S为:');disp(S);disp('各条支路的首端功率Sj为:');for i=1:nlif B1(i,6)==0p=B1(i,1);q=B1(i,2);else p=B1(i,2);q=B1(i,1);endSi(p,q)=E(p)*(conj(E(p))*conj(B1(i,4)./2)+(conj(E(p)*B1(i,5))-conj(E(q)))*conj(1./( B1(i,3)*B1(i,5))));disp(Si(p,q));enddisp('各条支路的末端功率Sj为:');for i=1:nlif B1(i,6)==0p=B1(i,1);q=B1(i,2);else p=B1(i,2);q=B1(i,1);endSj(q,p)=E(q)*(conj(E(q))*conj(B1(i,4)./2)+(conj(E(q)./B1(i,5))-conj(E(p)))*conj(1./( B1(i,3)*B1(i,5))));disp(Sj(q,p));enddisp('各条支路的功率损耗DS为:');for i=1:nlif B1(i,6)==0p=B1(i,1);q=B1(i,2);else p=B1(i,2);q=B1(i,1);endDS(i)=Si(p,q)+Sj(q,p);disp(DS(i));endfor i=1:KCs(i)=i;for j=1:nDy(K,j)=Dy(K-1,j);endend附录3进行三相短路容量计算的Matlab程序代码%短路容量计算程序%---------------------------------------------------------------------% B1矩阵:1、支路首端号;2、末端号;3、支路阻抗;4、支路对地电纳% 5、支路的变比;6、支路首端处于K侧为1,1侧为0% B2矩阵:1、该节点发电机功率;2、该节点负荷功率;3、节点电压初始值% 4、PV节点电压V的给定值;5、节点所接的无功补偿设备的容量% 6、节点分类标号:1为平衡节点(应为1号节点);2为PQ节点;%Yd为修改后的节点导纳矩阵%-----------------------------------------------------------------------clear all;format long;g1=input('300MW发电机数:g1=');g2=input('250MW发电机数:g2=');n=input('请输入节点数:n=');nl=input('请输入支路数:nl=');B1=input('请输入由各支路参数形成的矩阵:B1=');B2=input('请输入各节点参数形成的矩阵:B2=');Y=zeros(n);% Y为修改前节点导纳矩阵for i=1:nl %支路数if B1(i,6)==0 %左节点处于1侧p=B1(i,1);q=B1(i,2);else %左节点处于K侧p=B1(i,2);q=B1(i,1);endY(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5)); %非对角元Y(q,p)=Y(p,q); %非对角元Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4);%对角元K侧Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4); %对角元1侧end%----------------------------------------------------------%Y2-Y5为各PQ节点负荷的导纳Y1=0;Y2=conj(B2(2,2));Y3= conj(B2(3,2));Y4= conj(B2(4,2));Y5= conj(B2(5,2)); Xd300=0.51j/0.950413^2;XT300=0.033212j/0.950413^2;Xd250=0.714j/0.950413^2;XT250=0.038747j/0.950413^2;Y6=g1/(XT300+Xd300)+g2/(XT250+Xd250);%处理相应的负荷及机组部分的导纳%------------------------------------------------------------C=[Y1,Y2,Y3,Y4,Y5,Y6];Yd=Y;for i=1:nYd(i,i)=Yd(i,i)+C(i); %修改各节点自导纳enddisp(Yd);Z = inv(Yd); %求节点阻抗矩阵for j=1:nI(j) = 1/Z(j,j); %电压故障前电压标幺值为1S(j)=abs(I(j));Sn(j)=S(j)*100;%短路电流有名值end%计算完毕----------------------------------------------------disp('各节点短路时的短路电流幅值标幺值')disp(abs(I))disp('短路容量有名值Sn=');disp(Sn);。
MATLAB极坐标求解潮流计算
![MATLAB极坐标求解潮流计算](https://img.taocdn.com/s3/m/722294c370fe910ef12d2af90242a8956becaadd.png)
MATLAB极坐标求解潮流计算极坐标是一种坐标系,用于描述平面上的点,其坐标由极径和极角组成。
在电力系统中,潮流计算是一种用于估计电力系统各节点电压幅值和相角的方法,以确定电力系统的负荷和发电机出力分布情况。
1.建立潮流计算的数学模型:潮流计算问题可以通过组成节点功率方程和支路潮流方程来描述。
节点功率方程描述了节点电压与注入和抽取的功率之间的关系,而支路潮流方程描述了支路接线和节点之间的相对功率转移。
2.收集输入数据:潮流计算需要收集电力系统的拓扑结构信息(节点和支路的连接关系),以及节点功率信息(负荷和发电机出力)。
这些数据可以从现场测量、电力系统数据库或网络模拟软件中获取。
3.构建节点导纳矩阵:节点导纳矩阵描述了电力系统各节点之间的电气连接关系。
它可以通过支路导纳矩阵和节点导纳矩阵的顺序乘法来计算。
4.进行潮流计算:利用节点功率方程和支路潮流方程,可以建立一个非线性方程组,其未知数是各节点的电压幅值和相角。
可以使用迭代的方法(如牛顿-拉夫逊法)或者线性化的方法(如高斯-赛德尔法)来求解这个方程组。
MATLAB提供了丰富的数值计算函数和算法,可以用来求解非线性方程组。
5.计算结果分析:潮流计算会得到电力系统各节点的电压幅值和相角,以及支路上的功率。
可以使用MATLAB绘制极坐标图来显示电力系统节点的电压幅值和相角分布情况。
此外,还可以对潮流计算结果进行故障分析、潮流分布优化等。
总结来说,使用MATLAB进行极坐标求解潮流计算可以帮助电力系统运营人员了解电力系统的电压幅值和相角分布情况,进而优化电力系统的运行和规划。
前推回代法潮流计算matlab
![前推回代法潮流计算matlab](https://img.taocdn.com/s3/m/0ece0f72ce84b9d528ea81c758f5f61fb6362841.png)
前推回代法潮流计算matlab随着计算机技术的不断发展,代数计算在科学计算和工程领域中越来越重要。
代数计算能够快速精确地求解方程组、积分、微分等数学问题,提高了计算效率,也为科研工作提供了有力的支持。
在代数计算中,代数推导是一种重要的方法,它可以通过代数等式的变换推导出新的等式,从而简化复杂的计算过程。
代数推导方法有很多,其中推回代法是一种常用的方法。
推回代法是指将已知的一些等式反过来使用,以便求解未知的变量。
在MATLAB中,使用推回代法可以快速地求解一些复杂的方程组、积分和微分等问题。
以求解方程组为例,假设有以下方程组:x + y = 52x – y = 1使用推回代法求解该方程组,可以先将第一个方程式化为y = 5 – x,然后将其代入第二个方程式中,得到:2x – (5 – x) = 1化简得到3x = 6,即x = 2。
将x = 2代入第一个方程式中,得到y = 3。
因此,该方程组的解为x = 2,y = 3。
在MATLAB中,可以使用syms命令定义符号变量,使用solve命令求解方程组。
例如,求解上述方程组的代码如下:syms x ysolve(x + y == 5, 2*x - y == 1)运行代码后,MATLAB会输出方程组的解:x = 2,y = 3。
除了求解方程组,推回代法在积分、微分等计算中也有广泛的应用。
例如,对于以下积分:∫(x2 + 2x + 1)dx可以使用推回代法将其化简为∫(x + 1)2dx,然后使用二次积分公式求解。
推回代法是一种常用的代数推导方法,在MATLAB中也有广泛的应用。
使用推回代法可以简化复杂的计算过程,提高计算效率,为科研工作提供有力的支持。
matlab中直流潮流计算原理
![matlab中直流潮流计算原理](https://img.taocdn.com/s3/m/1ebb86b5c9d376eeaeaad1f34693daef5ef71387.png)
matlab中直流潮流计算原理
在MATLAB中进行直流潮流计算涉及到电力系统的基本理论和数学模型。
直流潮流计算是用来分析电力系统中各个节点之间的功率流动情况,以及计算各个节点的电压和功率。
下面我会从几个方面来解释MATLAB中直流潮流计算的原理。
首先,直流潮流计算基于潮流方程和节点电压平衡方程。
潮流方程描述了电力系统中功率和电压之间的关系,而节点电压平衡方程则描述了系统中各个节点的电压之间的平衡关系。
在MATLAB中,可以使用节点导纳矩阵和节点注入功率来建立这些方程,然后通过求解这些方程来得到系统中各个节点的电压和功率。
其次,直流潮流计算的原理涉及到节点导纳矩阵和节点注入功率的计算。
节点导纳矩阵是描述系统中各个节点之间导纳关系的矩阵,而节点注入功率则是描述系统中各个节点注入和吸收的功率。
在MATLAB中,可以通过建立节点导纳矩阵和计算节点注入功率来构建潮流方程和节点电压平衡方程。
此外,直流潮流计算还需要考虑系统中各个元件的参数和拓扑结构。
例如,输电线路、变压器、发电机等元件的参数对潮流计算
有重要影响,而系统的拓扑结构则决定了节点之间的连接关系。
在MATLAB中,可以通过建立系统的参数模型和拓扑结构来进行直流潮流计算。
总的来说,在MATLAB中进行直流潮流计算需要建立系统的数学模型,包括潮流方程、节点电压平衡方程、节点导纳矩阵和节点注入功率,并考虑系统的参数和拓扑结构。
然后通过求解这些方程,可以得到系统中各个节点的电压和功率,从而分析系统的功率流动情况。
matlab电力系统潮流计算
![matlab电力系统潮流计算](https://img.taocdn.com/s3/m/eb451dae80c758f5f61fb7360b4c2e3f57272585.png)
电力系统潮流计算是电力系统分析和运行中的重要环节。
潮流计算主要用于确定电力系统中各个节点的电压、功率和潮流方向,以便进行功率平衡、电压稳定和线路负荷等方面的分析和评估。
MATLAB作为一种强大的数学建模和仿真工具,被广泛应用于电力系统潮流计算的研究和实际工程中。
本文将介绍MATLAB在电力系统潮流计算中的应用,包括算法原理、建模步骤和实例分析等内容。
一、潮流计算的基本原理潮流计算是指在给定电力网拓扑结构、负荷信息和发电机功率的情况下,通过迭代计算求解节点电压的复数值,以确定各节点的电压幅值和相角,进而计算各支路和各节点上的有功和无功功率。
潮流计算的基本原理是基于电力系统的潮流方程和节点功率平衡等基本理论,通过建立节点电压的复数方程组,利用迭代计算方法求解该方程组,从而得到节点的电压和功率信息。
二、MATLAB在潮流计算中的应用MATLAB作为一种功能强大的数学建模和仿真工具,具有丰富的数学计算函数和图形显示功能,适合于电力系统潮流计算的建模和仿真。
在MATLAB环境下,可以利用其矩阵运算、方程求解和数据可视化等功能,实现电力系统潮流计算的数学模型和算法的实现。
下面将介绍MATLAB在电力系统潮流计算中的具体应用步骤。
1. 建立电力系统潮流计算的数学模型在MATLAB环境下,首先需要建立电力系统潮流计算的数学模型,包括节点电压方程、支路潮流方程、节点功率平衡方程等。
利用MATLAB的矩阵运算和符号计算工具,可以将电力系统的节点和支路参数、负荷信息、发电机功率等数据表示为矩阵形式,建立电力系统潮流计算的数学模型。
2. 编写潮流计算的求解算法在建立电力系统潮流计算的数学模型后,需要编写潮流计算的求解算法。
在MATLAB环境下,可以利用其丰富的数学计算函数和优化工具,实现潮流计算的迭代求解算法,包括高斯-赛德尔迭代法、牛顿-拉夫逊迭代法等。
通过编写求解算法,可以实现电力系统潮流计算的数值求解过程。
3. 进行潮流计算的仿真实验在完成潮流计算的求解算法后,可以利用MATLAB进行潮流计算的仿真实验。
(完整版)基于MATLAB牛顿拉夫逊法进行潮流计算
![(完整版)基于MATLAB牛顿拉夫逊法进行潮流计算](https://img.taocdn.com/s3/m/c42c8e0ed4d8d15abe234eb9.png)
>> %本程序的功能是用牛顿拉夫逊法进行潮流计算n=input('请输入节点数:n=');nl=input('请输入支路数:nl=');isb=input('请输入平衡母线节点号:isb=');pr=input('请输入误差精度:pr=');B1=input('请输入由各支路参数形成的矩阵:B1='); B2=input('请输入各节点参数形成的矩阵:B2=');Y=zeros(n); e=zeros(1,n);f=zeros(1,n);V=zeros(1,n); O=zeros(1,n);S1=zeros(nl);for i=1:nlif B1(i,6)==0p=B1(i,1);q=B1(i,2);else p=B1(i,2);q=B1(i,1);endY(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));Y(q,p)=Y(p,q);Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2;end%求导纳矩阵disp('导纳矩阵Y=');disp(Y);G=real(Y);B=imag(Y);for i=1:ne(i)=real(B2(i,3));f(i)=imag(B2(i,3));V(i)=B2(i,4);endfor i=1:nS(i)=B2(i,1)-B2(i,2);B(i,i)=B(i,i)+B2(i,5);endP=real(S);Q=imag(S);ICT1=0;IT2=1;N0=2*n;N=N0+1;a=0;while IT2~=0IT2=0;a=a+1;for i=1:nif i~=isbC(i)=0;D(i)=0;for j1=1:nC(i)= C(i)+G(i,j1)*e(j1)-B(i,j1)*f(j1);D(i)= D(i)+G(i,j1)*f(j1)+B(i,j1)*e(j1);endP1=C(i)*e(i)+f(i)*D(i);Q1=f(i)*C(i)-D(i)*e(i);V2=e(i)^2+f(i)^2;%117页malihong打if B2(i,6)~=3DP=P(i)-P1;DQ=Q(i)-Q1;for j1=1:nif j1~=isb&j1~=iX1=-G(i,j1)*e(i)-B(i,j1)*f(i);X2=B(i,j1)*e(i)-G(i,j1)*f(i);X3=X2;X4=-X1;p=2*i-1;q=2*j1-1;J(p,q)=X3;J(p,N)=DQ;m=p+1;J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X4;J(m,q)=X2;elseif j1==i&j1~=isbX1=-C(i)-G(i,i)*e(i)-B(i,i)*f(i);X2=-D(i)+B(i,i)*e(i)-G(i,i)*f(i);X3=D(i)+B(i,i)*e(i)-G(i,i)*f(i);X4=-C(i)+G(i,i)*e(i)+B(i,i)*f(i);p=2*i-1;q=2*j1-1;J(p,q)=X3;J(p,N)=DQ;m=p+1;J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X4;J(m,q)=X2;endendelseDP=P(i)-P1;DV=V(i)^2-V2;for j1=1:nif j1~=isb&j1~=iX1=-G(i,j1)*e(i)-B(i,j1)*f(i);X2=B(i,j1)*e(i)-G(i,j1)*f(i);X5=0;X6=0;p=2*i-1;q=2*j1-1;J(p,q)=X5;J(p,N)=DV; m=p+1;J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X6;J(m,q)=X2;elseif j1==i&j1~=isbX1=-C(i)-G(i,i)*e(i)-B(i,i)*f(i);X2=-D(i)+B(i,i)*e(i)-G(i,i)*f(i);%118页孟打印X5=-2*e(i);X6=-2*f(i);p=2*i-1;q=2*j1-1;J(p,q)=X5;J(p,N)=DV;m=p+1;J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X6;J(m,q)=X2;endendendendend%求雅可比矩阵for k=3:N0k1=k+1;N1=N;for k2=k1:N1J(k,k2)=J(k,k2)./J(k,k);endJ(k,k)=1;if k~=3;k4=k-1;for k3=3:k4for k2=k1:N1J(k3,k2)= J(k3,k2)-J(k3,k)*J(k,k2);endJ(k3,k)=0;endif k==N0,break;endfor k3=k1:N0for k2=k1:N1J(k3,k2)=J(k3,k2)-J(k3,k)*J(k,k2);endJ(k3,k)=0;endelsefor k3=k1:N0for k2=k1:N1J(k3,k2)= J(k3,k2)-J(k3,k)*J(k,k2);endJ(k3,k)=0;endendend %119页zhengtong打%for k=3:2:N0-1L=(k+1)./2;e(L)=e(L)-J(k,N);k1=k+1;f(L)=f(L)-J(k1,N);endfor k=3:N0DET=abs(J(k,N));if DET>=prIT2=IT2+1;endendICT2(a)=IT2;ICT1=ICT1+1;end%用高斯消去法解“w=-J*V”disp('迭代次数');disp(ICT1);disp('没有达到精度要求的个数');disp(ICT2);for k=1:nV(k)=sqrt(e(k)^2+f(k)^2);shita(k)=atan(f(k)./e(k))*180/pi;E(k)=e(k)+f(k)*j;enddisp('各节点的实际电压标么值E为(节点号从小到大排列):');disp(E);disp('各节点的电压大小V为(节点号从小到大排列):');disp(V);disp('各节点的电压相角时shita为(节点号从小到大排列):');disp(shita);for p=1:nC(p)=0;for q=1:nC(p)=C(p)+conj(Y(p,q))*conj(E(q));endS(p)=E(p)*C(p);end %120页打disp('各节点的功率S为(节点号从小到大排列):');disp(S);disp('各条支路的首端功率Si为(顺序同您输入B1时一样):');for i=1:nlif B1(i,6)==0p=B1(i,1);q=B1(i,2);else p=B1(i,2);q=B1(i,1);endSi(p,q)=E(p)*(conj(E(p))*conj(B1(i,4)./2)+(conj(E(p)*B1(i,5))-conj(E(q)))*conj(1./(B1(i,3)*B1(i, 5))));disp(Si(p,q));enddisp ('各条支路的末端功率Sj为(顺序同您输入B1时一样):');for i=1:nlif B1(i,6)==0p=B1(i,1);q=B1(i,2);else p=B1(i,2);q=B1(i,1);endSj(q,p)=E(q)*(conj(E(q))*conj(B1(i,4)./2)+(conj(E(q)./B1(i,5))-conj(E(p)))*conj(1./(B1(i,3)*B1(i, 5))));disp(Sj(q,p));enddisp('各条支路的功率损耗DS为(顺序同您输入B1时一样):' );for i=1:nlif B1(i,6)==0p=B1(i,1);q=B1(i,2);else p=B1(i,2);q=B1(i,1);endDS(i)=Si(p,q)+Sj(q,p);disp(DS(i));end。
MATLAB在潮流计算演示教学中的应用
![MATLAB在潮流计算演示教学中的应用](https://img.taocdn.com/s3/m/1aa37367302b3169a45177232f60ddccda38e6ff.png)
MATLAB在潮流计算演示教学中的应用MATLAB在潮流计算演示教学中的应用潮流计算是电力系统分析的重要内容之一,它可以求解电网中各节点电压、电流、功率、潮流等参数。
在电力系统教学中,潮流计算是一个重要的课程内容,也是学生理论知识与实践运用的桥梁。
因此,如何提高潮流计算教学的效果是学术界和工业界共同关注的问题。
MATLAB是一款功能强大的计算软件,广泛应用于工程、科学和教育领域,在潮流计算教学中也有重要的应用。
一、MATLAB在潮流计算仿真中的应用MATLAB可以进行各种电力系统仿真,包括潮流计算仿真。
它可以计算无功补偿、阻抗、励磁等各种因素对电网的影响,以及计算故障流、负荷流、电压降等等电网的各种参数。
通过使用MATLAB,学生可以模拟各种操作和状态,了解电网在不同负载状态下的响应,并研究电路参数对电网的影响。
二、MATLAB在潮流计算可视化中的应用MATLAB提供了强大的图形功能,可以用来可视化潮流计算。
学生可以绘制节点电压、相角、功率等参数的图示,以及各个节点之间电流流向的关系图。
在课堂上,教师可以通过这些可视化图像演示潮流计算的过程,提高学生的理解能力。
三、MATLAB在潮流计算分析中的应用MATLAB还可以用于对潮流计算结果进行分析,发现其中的规律和特点。
学生可以借助MATLAB进行统计分析、回归分析、协方差分析等方法,对潮流计算的结果进行深入探究。
这些分析结果有助于学生深入理解电网潮流的本质,提高其对电力系统的认知。
四、MATLAB在潮流计算算法优化中的应用MATLAB还可以用于潮流计算算法的优化,参与设计各种算法的控制语句和流程,包括线性规划、非线性规划、最小二乘法等多种算法。
学生可以在课程中了解各种算法的基本原理和具体操作流程,进而掌握MATLAB以及其他编程工具的使用方法,提高自主研究和创新能力。
综上所述,MATLAB在潮流计算教学中发挥了重要的作用,为学生提供了一个高效和灵活的学习平台。
matlab潮流计算
![matlab潮流计算](https://img.taocdn.com/s3/m/c61f7f35cec789eb172ded630b1c59eef8c79a6e.png)
matlab潮流计算%线路数据line=[1-节点编号2-线路首端节点号3-线路末端节点号4-支路电阻5-支路电抗6-支路电纳(注意:此处取的是b/2)]line=[1120.040.250.252130.10.3503230.080.300.25];%变压器数据transform=[1-支路编号2-支路首节点编号3-支路末节点编号4-支路电阻(p.u.)5-支路电抗(p.u.)6-变压器变比(p.u.)]transform=[12400.0151.0523500.031.05];%数据预处理nbus=5;%节点数nline=size(line,1);%线路个数ntrans=size(transform,1);%变压器个数slack=5;%均衡节点号npq=4;%pq节点的个数ss=0;%计算节点导纳矩阵y=zeros(nbus);ifnline>=1%推论与否存有线路fork=1:nline%以下处理线路t1=line(k,2);t2=line(k,3);b2=line(k,6);%分别抽出线路的首端节点编号t1、末端节点编号t2和对地电纳b2yl=1/(line(k,4)+j*line(k,5));%计算线路的支路电导yly(t1,t1)=y(t1,t1)+yl+j*b2;%修正第k条线路首端节点的自导纳y(t1,t2)=y(t1,t2)-yl;%修正第k条线路首端节点与末端节点之间的互磁滞y(t2,t1)=y(t2,t1)-yl;%修正第k条线路末端节点与首端节点之间的互磁滞y(t2,t2)=y(t2,t2)+yl+j*b2;%修正第k条线路末端节点的自磁滞endendifntrans>=1%判断是否存在变压器fork=1:ntrans%以下处理变压器t1=transform(k,2);t2=transform(k,3);t3=transform(k,6);%分别抽出变压器的首端节点编号t1、末端节点编号t2和变比t3yt=1/(transform(k,4)+j*transform(k,5));yt1=yt/t3;yt2=yt*(1-t3)/(t3*t3);yt3=yt*(t3-1)/t3;y(t1,t1)=y(t1,t1)+yt1+yt2;y(t1,t2)=y(t1,t2)-yt1;y(t2,t1)=y(t2,t1)-yt1;y(t2,t2)=y(t2,t2)+yt1+yt3;endendg=real(y);b=imag(y);%区分节点磁滞矩阵的实部和虚部gb%赋初值delt(1)=0;delt(2)=0;delt(3)=0;delt(4)=0;u(1)=1;u(2)=1;u(3)=1;u(4)=1;p(1)=-0.30;q(1)=-0.18;p(2)=-0.55;q(2)=-0.13;p(3)=0;q(3)=0;p(4)=0.5;q(4)=1.10;p(5)=0.8;q(5)=0.50;k=0;precision=1;npq=4;%npq分别就是网络中的pq节点数%[unbalance]=-[jacobi][correction]whileprecision>0.00001%设定误差上限,判断是否继续迭代u(5)=1.06;delt(5)=0;%设定平衡节点电压相角与幅值k;u;delt;form=1:npqforn=1:nbuspt(n)=u(m)*u(n)*(g(m,n)*cos(delt(m)-delt(n))+b(m,n)*sin(delt(m)-delt(n)));%由节点电压求出的pq节点转化成军功功率qt(n)=u(m)*u(n)*(g(m,n)*sin(delt(m)-delt(n))-b(m,n)*cos(delt(m)-delt(n)));%由节点电压求得的pq节点注入无功功率endunbalance(2*m-1)=p(m)-sum(pt);%排序pq节点军功功率不平来衡量unbalance(2*m)=q(m)-sum(qt);%排序pq节点无功功率不平来衡量end%[unbalance]是节点不平衡量矩阵form=1:npqforn=1:nbush0(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)+u(m)^2*(g(m,m)*cos(delt(m)-delt(m))+b(m,m)*sin(delt(m)-delt(m)))-2*u(m)^2*g(m,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)+u(m)^2*(g(m,m)*sin(delt(m)-delt(m))-b(m,m)*cos(delt(m)-delt(m)))+2*u(m)^2*b(m,m);jacobi(2*m-1,2*m-1)=h(m,m);jacobi(2*m-1,2*m)=n(m,m);jacobi(2*m,2*m-1)=j(m,m);jacobi(2*m,2*m)=l(m,m);end%计算m=n情况下的jacobi矩阵中的子矩阵元素form=1:npqforn=1:npqifm==nelseh(m,n)=-u(m)*u(n)*(g(m,n)*sin(delt(m)-delt(n))-b(m,n)*cos(delt(m)-delt(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);jacobi(2*m-1,2*n-1)=h(m,n);jacobi(2*m-1,2*n)=n(m,n);jacobi(2*m,2*n-1)=j(m,n);jacobi(2*m,2*n)=l(m,n);endendend%排序m≠n情况下的jacobi矩阵中的子矩阵元素correction=-jacobi\\(unbalance');%计算电压相角和幅值的修正量precision=max(abs(correction));%取误差最大值form=1:npqdelt(m)=delt(m)+correction(2*m-1);%修正pq节点电压相角u(m)=u(m)+correction(2*m);%修正pq节点电压幅值endk=k+1;%运算轮数+1endk,u,delt,jacobi,precisionform=1:nbusu(m)=u(m)*(cos(delt(m))+j*sin(delt(m)));%采用直角坐标系表示电压i(m)=y(nbus,m)*u(m);%计算注入平衡节点的电流endsslack=u(nbus)*sum(conj(i))%排序转化成均衡节点的功率form=1:nbusforn=1:nbuss(m,n)=u(m)*(conj(u(m))-conj(u(n)))*conj(-y(m,n));%排序线路功率ploss(m,n)=u(m)*u(n)*(g(m,n)*cos(delt(m)-delt(n))+b(m,n)*sin(delt(m)-delt(n)));endends%表明线路功率矩阵,s(m,n)则表示假设功率由节点m流向节点n%若数值为+则说明实际功率流向与假设方向相同,若数值为-则说明实际功率流向与假设方向相反。
matlab loadflow代码
![matlab loadflow代码](https://img.taocdn.com/s3/m/c83e677530126edb6f1aff00bed5b9f3f90f722c.png)
一、介绍loadflow代码在Matlab中的应用在电力系统中,loadflow(潮流计算)是一种非常重要的分析方法,它用来计算电力系统中各个节点的电压、相角和功率等参数。
在Matlab中,我们可以编写loadflow代码来实现对电力系统进行潮流计算,以便进行系统的稳定性分析、负荷分配等工作。
二、loadflow代码的基本原理loadflow代码的基本原理是通过迭代计算来求解电力系统中各节点的电压和相角。
一般来说,loadflow代码的实现需要根据节点的功率平衡方程、节点电压幅值方程、支路功率方程等,采用牛顿-拉夫逊法或高斯-赛德尔法等迭代方法来求解。
三、编写loadflow代码的步骤1. 收集电力系统的基本参数:首先需要收集电力系统的基本参数,包括节点的功率负荷、支路的阻抗和导纳等。
这些参数将作为loadflow 代码的输入。
2. 建立loadflow模型:根据电力系统的实际情况,构建电力系统的潮流计算模型,包括节点的功率平衡方程、节点电压幅值方程、支路功率方程等。
3. 编写loadflow代码:根据建立的loadflow模型,使用Matlab语言编写loadflow代码,实现节点电压和相角的迭代计算。
在编写过程中,需要注意代码的结构,保证其逻辑清晰,易于阅读和维护。
4. 验证loadflow代码:完成loadflow代码的编写后,需要进行验证,确保代码的准确性和稳定性。
通过对实际电力系统的数据进行潮流计算,对比计算结果与实际情况,来验证loadflow代码的准确性。
四、loadflow代码的优化1. 代码效率优化:在编写loadflow代码时,需要考虑代码的运行效率。
可以通过优化算法、并行计算等手段来提高代码的运行速度,以适应大规模电力系统的潮流计算需求。
2. 界面优化:为方便用户使用,可以在Matlab中设计图形用户界面(GUI),以便用户输入电力系统参数、进行潮流计算,并可视化输出计算结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用Matlab计算潮流计算-电力系统分析《电力系统潮流上机》课程设计报告院系:电气工程学院班级:电088班_______学号:0812002221学生姓名:刘东昇________指导教师:张新松________设计周数:两周_________日期:2010年12月25日一、课程设计的目的与要求目的:培养学生的电力系统潮流计算机编程能力,掌握计算机潮流计算的相关知识要求:基本要求:1.编写潮流计算程序;2.在计算机上调试通过;3.运行程序并计算出正确结果;4.写出课程设计报告二、设计步骤:1.根据给定的参数或工程具体要求(如图),收集和查阅资料;学习相关软件(软件自选:本设计选择Matlab进行设计)。
Alt ;' T = r、二戶土旳「亠2.在给定的电力网络上画出等值电路图3.运用计算机进行潮流计算。
4.编写设计说明书。
三、设计原理1.牛顿-拉夫逊原理牛顿迭代法是取X0之后,在这个基础上,找到比x0更接近的方程的跟,一步一步迭代,从而找到更接近方程根的近似跟。
牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根。
电力系统潮流计算,一般来说,各个母线所供负荷的功率是已知的,各个节点电压是未知的(平衡节点外)可以根据网络结构形成节点导纳矩阵,然后由节点导纳矩阵列写功率方程,由于功率方程里功率是已知的,电压的幅值和相角是未知的,这样潮流计算的问题就转化为求解非线性方程组的问题了。
为了便于用迭代法解方程组,需要将上述功率方程改写成功率平衡方程,并对功率平衡方程求偏导,得出对应的雅可比矩阵,给未知节点赋电压初值,一般为额定电压,将初值带入功率平衡方程,得到功率不平衡量,这样由功率不平衡量、雅可比矩阵、节点电压不平衡量(未知的)构成了误差方程,解误差方程,得到节点电压不平衡量,节点电压加上节点电压不平衡量构成新的节点电压初值,将新的初值带入原来的功率平衡方程,并重新形成雅可比矩阵,然后计算新的电压不平衡量,这样不断迭代,不断修正,一般迭代三到五次就能收敛。
牛顿一拉夫逊迭代法的一般步骤:(1)形成各节点导纳矩阵丫。
(2)设个节点电压的初始值U和相角初始值e还有迭代次数初值为0。
(3)计算各个节点的功率不平衡量。
(4)根据收敛条件判断是否满足,若不满足则向下进行。
(5)计算雅可比矩阵中的各元素。
(6)修正方程式个节点电压(7)利用新值自第(3)步开始进入下一次迭代,直至达到精度退出循环。
(8)计算平衡节点输出功率和各线路功率2.网络节点的优化1)静态地按最少出线支路数编号这种方法由称为静态优化法。
在编号以前。
首先统计电力网络个节点的出线支路数,然后,按出线支路数有少到多的节点顺序编号。
当由n个节点的出线支路相同时,则可以按任意次序对这n个节点进行编号。
这种编号方法的根据是导纳矩阵中,出线支路数最少的节点所对应的行中非零元素也2)动态地按增加出线支路数最少编号在上述的方法中,各节点的出线支路数是按原始网络统计出来的,在编号过程中认为固定不变的,事实上,在节点消去过程中,每消去一个节点以后,与该节点相连的各节点的出线支路数将发生变化(增加,减少或保持不变)。
因此, 如果每消去一个节点后,立即修正尚未编号节点的出线支路数,然后选其中支路数最少的一个节点进行编号,就可以预期得到更好的效果,动态按最少出线支路数编号方法的特点就是按出线最少原则编号时考虑了消去过程中各节点出线支路数目的变动情况。
3. MATLAB^程应用Matlab 是“Matrix Laboratory "的缩写,主要包括:一般数值分析,矩阵运算、数字信号处理、建模、系统控制、优化和图形显示等应用程序。
由于使用Matlab编程运算与人进行科学计算的思路和表达方式完全一致,所以不像学习高级语言那样难于掌握,而且编程效率和计算效率极高,还可在计算机上直接输出结果和精美的图形拷贝,所以它的确为一高效的科研助手。
四、设计内容1.设计流程图设非平僑节点电JI 令迭代次对PQ 节点计算R(k ).Q (k )(对J计算节点的新电压e(k 1) e(k ) e (k ) ii iI 增加迭代次数coun t=co un t+12-程序clear;clc%重新编号,把原题中的节点 1,2,3,4,5重新依次编号为5,1,2,3,4 ,其中1-4号为PQ 节点,5号为平衡节点 y=0;%输入原始数据,求节点导纳矩阵 y (1,2)=1/(0.06+0.18i); y (1,3)=1/(0.06+0.18i);y (1,4)=1/(0.04+0.12i);y(1,5)=1/(0.02+0.06i);y(2,3)=1/(0.01+0.03i);y(2,5)=1/(0.08+0.24i); y(3,4)=1/(0.08+0.24i); y(4,5)=0; for i=1:5 for j=i:5 y(j,i)=y(i,j); end end*计算平 l衡节点丿输J卄Y=0;%求互导纳for i=1:5for j=1:5if i~=jY(i,j)=-y(i,j);endendend%求自导纳for i=1:5丫(i,i)=sum(y(i,:));end丫%Y为导纳矩阵G=real(Y);B=imag(Y);%原始节点功率S(1)=0.2+0.2i;S(2)=-0.45-0.15i;S(3)=-0.4-0.05i;S(4)=-0.6-0.1i;S(5)=0;P=real(S);Q=imag(S);%赋初值U=o nes(1,5);U(5)=1.06;e=zeros(1,5);ox=on es(8,1);fx=on es(8,1);cou nt=0 %计算迭代次数while max(fx)>1e-5for i=1:4for j=1:4 H(i,j)=0;N(i,j)=0;M(i,j)=0;L(i,j)=0;oP(i)=0;oQ(i)=0;endendfor i=1:4for j=1:5oP(i)=oP(i)-U(i)*U(j)*(G(i,j)*cos(e(i)-e(j))+B(i,j)*s in (e(i)-e(j))); oQ(i)=oQ(i)-U(i)*U(j)*(G(i,j)*si n(e(i)-e(j))-B(i,j)*cos(e(i)-e(j))); endoP(i)=oP(i)+P(i); oQ(i)=oQ(i)+Q(i);endfx=[oP,oQ]';%求雅克比矩阵%当i~=j 时候求H,N,M丄如下:for i=1:4for j=1:4if i~=jH(i,j)=-U(i)*U(j)*(G(i,j)*si n(e(i)-e(j))-B(i,j)*cos(e(i)-e(j))); N(i,j)=-U(i)*U(j)*(G(i,j)*cos(e(i)-e(j))+B(i,j)*s in (e(i)-e(j)));L(i,j)=H(i,j);M(i,j)=-N(i,j);endendendH,N,M 丄%当i=j 时H,N,M丄如下:for i=1:4for j=1:5if i~=jH(i,i)=H(i,i)+U(i)*U(j)*(G(i,j)*si n(e(i)-e(j))-B(i, j)*cos (e(i)-e(j)));N(i,i)=N(i,i)-U(i)*U(j)*(G(i,j)*cos(e(i)-e(j))+B(i,j)*s in (e(i)-e(j)));M(i,i)=M(i,i)-U(i)*U(j)*(G(i,j)*cos(e(i)-e(j))+B(i,j)*s in (e(i)-e(j)) );L(i,i)=L(i,i)-U(i)*U(j)*(G(i,j)*si n( e(i)-e(j))-B(i,j)*cos(e(i)-e(j)));endendN(i,i)=N(i,i)-2*(U(i))A2*G(i,i);L(i,i)=L(i,i)+2*(U(i)f2*B(i,i);endJ=[H,N;M,L] %J为雅克比矩阵ox=-((i nv(J))*fx);for i=1:4oe(i)=ox(i); oU(i)=ox(i+4)*U(i);endfor i=1:4e(i)=e(i)+oe(i); U(i)=U(i)+oU(i);endcou nt=cou nt+1;endox,U,e,cou nt%求节点注入的净功率i=5;for j=1:5P(i)=U(i)*U(j)*(G(i,j)*cos(e(i)-e(j))+B(i,j)*s in (e(i)-e(j)))+P(i); Q(i)=U(i)*U(j)*(G(i,j)*si n(e(i)-e(j))-B(i,j)*cos(e(i)-e(j)))+Q(i); end S(5)=P(5)+Q(5)*sqrt(-1);S%求节点注入电流匸Y*U'3.运行结果Y值:¥ =10. 8333 -32.50001-1. 6667 + 5.00001-1.6067 + 5.OOOOi -2.5000 + 7. 5000i-5.0000 H5. OOQOi-L 6667 + 5+OOOCi12* 9167 -38. 7500i-10. 0000 +30. 000010-1.3500 + 3. 75001 -1. 6667 + 5.000(Ji-10. 0000 +30.0000112. 9167 -38. 75001-1.2500十3. 750010 -2.5000 + 7.500010-1. 2500 + 3. 7500i 3. 7500 -11. 260010-5. 0000 +15.00001-1. 2500 + 3.7500i00 6.2500 -18.7500i 迭代过程:courit —H =0 5. 0000 5. 0000 7. 5000H 000030_ 0000氐000030. 00003. 7SOOC 50003. 7500N -0U 5S67 1, 5567 2.50001.0007 010. 0000 01.6667 10. 00000 1. 25002. 5000 0 1.2500 0M =0—1- 6667 —1. 666? -2.5000-1. fififi? 0-10.00000-1.6667 -10.00000~1* 2500-2,5000 0-1.2500 00 5. 0000 5., 0000 7.500030000□o.oooo05.000030+0000Q3・75007. 50000 3.7500 a'33. 100Q 5. 0000 5.0000 7.5000 -10* 5333 1.i.. «667 2. 5000 氐 0000 -381. 975030, 0000 0 1. 6667 13. 3417 LO.0000 05. 0000 30. 0000 -38. 7500 3. 7500 1. 6€fl710. 0000 -1Z- 9107 1. 25007. BQQQ0工75QQ-11. 2500 2. 5000 a U 2500-工75oa1 k 1333-1, S66 : -1* 6667 -2. 5000-SLfiOOO E. OOOD E. 00007. 5000-1. 6067 12. 9917 -10. 0000 a 5.0000 -38.5250 30. 0000 0-LS667-10. 0000 12-91S7 -1.2500 5. O0U03d 0000-38. 7500 3. 7500-2.5000 0-L 250Q 3.7500 二5COO Q 3.7S00 -11. 250005, 35995* 302 28,0^96吕.2222 030.9520 OS, 2033 30.S2S3 O3* 8576了. 7Z2303,8183O01・S572 1. 5235 2.1E11L.970J010*11370U1i■■曲】町・-4SO30】■3.102&01-3384O0-1- 5572一L.5235-2* 11511-1. 97010-10, 1 1370一丄.目當曰吕-lDa 2S03O—1. 2^037・ 10 2&0-L.33840L -I0 5. 3E9D 5. 3622S. 03965. 2222 0廿Q・9520£ 2038 30, S298 03, 85767. 722303-8183J =-35. 0648 5. 3590 氐 3622 8> 0396 -12, 0310 1.55721+ 5235 2. 1EU5. 2222 -40. 0 794 30. 9520 01, 9701 -12.8027 10” 113706. 2038 30. S 299 -39・ 8&13 3. 8576 1.驱E 10. 4帥3 -12. Q6S2 1, 22037. 7223 0 3. 8183-11. 5406 3. 1029 0 1. 33SJ:—3. 199611. 5373 -h 5572 =1.52357 1511-皈6400 辰3594? 乩 3632-L 970113a7 720 ・ia 1157 05+2222-39+ 8247 30+ &520 a -E 99S5 -10- 4 903 13. SQQl-1. 2203 E” 203530.82DS -3&, 9105 3, 8576*3. 1029 0=1・3384 4・ 44127223 0 3. 3183 -11. 3818M ■O 6™ 15S5 13977.02175_ 230ao30* 4267QE. 2S1230™ 5 42 63. 77.92aao3七 SOL aQW ■Q1・93 93 1. Q0 QS3.01531« 5430o1 O- 3300oI. &1 139. i9ST6oI* 3 1T121.o1 _2 0 ESOOwr ■=-1 x S3Q3 -1. P廿耳甘-3. 0*53=1. 506o-10T 3^55O^■1,5 112—4 QS7S—1 . 3 l 7 1Y・ 13G9O-1 * 20&0O0 5.2904 5+ 2912 7+924^ 乩1顶030+ &4300 S. 139730_ 42B70 3. 8018 7.62170■ 7644034.71 63 E.2904 5, 2912 7* D246 -11* 3394 1.E436 1. 51125.1505 -39-5S49 30. 5426 01,9393 -12. &950 9, »S760, 139730-42A7-39, 3A8I 3. 80131.9038 10. 33B5-12, 70 as 札6Z 1T0 3. Toi 丄-1 lx 3K61 3. 0^53O 1. 317111. 4384 -1_ 6436-1. 61 12 -2.1368 -35.1173 6. 2S04 B. 2012 _ h 9393 13.5950 一乩 9076 0 5.1535-39.2653 3Q* 5426 -L 阴阳-1Q- 335513* 2T. 20!i0 5.1397节4 4707 -g ZQ83-九 0453 0-1.3171亠36237. 82170人 7^442.13 6Sr 20 50-3. 15 197- 92463.aois -]1L0 3 2SQ& 5. 29077.9237野.1压E0030. 53D50号.139230,42300 3.80)3二621003- 764000 1・E433 L. Bl 1 1 2.L36S 1・ 93910玄980 7 0 1- 955&JICL 3343O1-Z C49 3. 0148 0L-3169 O0 -1, '6436-1.5111一2・一1・ 939109867O -1a 9SSB-1 0_ 33430-J,20^^-1. 04480一—313900FL 2899 5.Z9077-9237 刁.1巨曲00□ 0 ™ 5*19 5Q3时.42J003-80137. 021003* 76100■34.7136 5. 2S995,29077.9237-tL S379 1.5436 1. 51115J580-39.581230.5395Q 1.9391-12.69379.9367 5.139230. 4236-39.3642 3.S013 1.965510.3343-12. 7047 7-52100 3.7640-11.3850 3.04480L3169 11.437&-L 5436-1.5111-Z136S-35.1136 5.2S99 5. 2907 -1.939113. 5937-9.98670 5. 1580-39.281230, 5395-1.9655-10.334313.5047 -1.2049 5. 139230.4236-39, 2642 -3.04430-1.3169 4.36177.621003*76402.13680 1.2049 -3.1617 7. ft2370 3.SD13 -11.1850氛 CIO 7 3 -O. Oifit -□., QS3 9 -Q ・ DS96 -Q a> 1044 c ouiit =平衡节点注入功率及电流:0. 2000 + 0. 2000i -0. 4500 - 0. 150Q1 -0. 4OQ0 - 0. 05001-0.5000 - 0. 100011*2932 + Q.24J0-0645 - 6 19351-9.0953 十 0.38581 -0.0565 + 0.16961*0.0944 + 0.2S321 0. 1817 - D. 54521五、课程设计心得与体会在电力系统分析课程中,我们学习了电力网络的 数学模型和确定解算方法。