matlab潮流计算
- 格式:doc
- 大小:23.38 KB
- 文档页数:15
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进行设计)。
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 是一种强大的编程语言和环境,可用于执行各种仿真和计算任务,包括电力系统潮流计算。
以下是一个简单的 MATLAB 潮流计算仿真方法的
示例:
1. 定义系统参数:首先,你需要定义电力系统的参数,如发电机、负荷、变压器等。
这些参数通常包括额定电压、额定功率、电抗、电阻等。
2. 建立系统模型:使用这些参数,你可以在 MATLAB 中建立电力系统的模型。
这通常涉及到定义节点和支路,以及为它们分配相应的参数。
3. 编写潮流计算函数:接下来,你需要编写一个用于执行潮流计算的函数。
这个函数应该能够接收系统的模型和参数,并返回计算出的潮流结果,如电压、电流、功率等。
4. 运行仿真:最后,你可以运行仿真并调用你编写的潮流计算函数。
这将返回计算出的潮流结果,你可以使用这些结果进行进一步的分析或可视化。
这只是一个简单的示例,实际上在编写 MATLAB 潮流计算仿真方法时可能
需要考虑更多因素,例如系统的约束条件、初始条件、迭代算法的收敛性等。
如果你需要具体的 MATLAB 代码示例或更详细的指导,我建议你查阅MATLAB 的官方文档或相关的教程和文献。
电力系统潮流计算matlab程序电力系统潮流计算是电力系统运行和规划中的重要环节,它用于计算电力系统中各节点的电压、功率和电流等参数。
随着电力系统规模的不断扩大和复杂性的增加,传统的手工计算方法已经无法满足需求,因此,利用计算机编程进行潮流计算成为了一种必要的选择。
Matlab是一种功能强大的科学计算软件,它提供了丰富的数学函数和工具箱,可以方便地进行电力系统潮流计算。
下面我将介绍一下如何使用Matlab编写电力系统潮流计算程序。
首先,我们需要建立电力系统的节点模型。
节点模型是电力系统中各节点的电压、功率和电流等参数的数学表示。
在Matlab中,我们可以使用矩阵来表示节点模型。
假设电力系统有n个节点,我们可以定义一个n×n的复数矩阵Y来表示节点之间的导纳关系,其中Y(i,j)表示节点i和节点j之间的导纳。
同时,我们还需要定义一个n×1的复数向量V来表示各节点的电压,其中V(i)表示节点i的电压。
接下来,我们需要编写潮流计算的主程序。
主程序的主要功能是根据节点模型和潮流计算算法,计算出各节点的电压、功率和电流等参数。
在Matlab中,我们可以使用循环语句和矩阵运算来实现潮流计算。
具体的计算过程可以参考电力系统潮流计算的算法。
在编写主程序之前,我们还需要定义一些输入参数,如电力系统的节点数、发电机节点和负荷节点等。
这些参数可以通过用户输入或者读取文件的方式获取。
同时,我们还需要定义一些输出参数,如各节点的电压、功率和电流等。
这些参数可以通过矩阵运算和循环语句计算得到,并输出到文件或者显示在屏幕上。
最后,我们需要进行程序的测试和调试。
可以通过输入一些测试数据,运行程序并检查输出结果是否正确。
如果发现程序有错误或者结果不准确,可以通过调试工具和打印调试信息的方式进行调试。
总之,利用Matlab编写电力系统潮流计算程序可以提高计算效率和准确性,为电力系统的运行和规划提供有力的支持。
当然,编写一个完整的潮流计算程序需要考虑很多细节和特殊情况,这需要有一定的电力系统和编程知识。
基于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发展历史、组成和强大的功能,并用简单例子分别就编程和仿真两方面分析了MATIAB软件在电力系统研究中的具体应用。
采取等效电路法,能对特殊、复杂地电力系统进行高效仿真研究,因此,掌握编程和仿真是学好MATLAB的基础。
与众多专门的电力系统仿真软件相比,MATLAB软件具有易学、功能强大和开放性好,是电力系统仿真研究的有力工具。
控制,并便于作各种修改和调整。
电力系统潮流计算问题并不是单纯的计算问题,把它当作一个运行方式的调整问题可能更为确切。
为了得到一个合理的运行方式,往往需要不断根据计算结果,修改原始数据。
在这个意义上,我们在编制潮流计算程序时,对使用的方便性和灵活性必须予以足够的重视。
因此,除了要求计算方法尽可能适应各种修改.调整以外,还要注意输入和输出的方便性和灵活性,加强人机联系,以便使计算人员能及时监视计算过程并适当地控制计算的进行。
潮流计算的目标是求取电力系统在给定运行状态的计算。
即节点电压和功率分布,用以检查系统各元件是否过负荷.各点电压是否满足要求,功率的分布和分配是否合理以及功率损耗等。
对现有电力系统的运行和扩建,对新的电力系统进行规划设计以及对电力系统进行静态和暂态稳定分析都是以潮流计算为基础。
潮流计算结果可用如电力系统稳态研究,安全估计或最优潮流等对潮流计算的模型和方法有直接影响。
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。
三、执行潮流计算在设置好潮流计算参数之后,可以执行潮流计算。
程序代码如下: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极坐标求解潮流计算极坐标是一种坐标系,用于描述平面上的点,其坐标由极径和极角组成。
在电力系统中,潮流计算是一种用于估计电力系统各节点电压幅值和相角的方法,以确定电力系统的负荷和发电机出力分布情况。
1.建立潮流计算的数学模型:潮流计算问题可以通过组成节点功率方程和支路潮流方程来描述。
节点功率方程描述了节点电压与注入和抽取的功率之间的关系,而支路潮流方程描述了支路接线和节点之间的相对功率转移。
2.收集输入数据:潮流计算需要收集电力系统的拓扑结构信息(节点和支路的连接关系),以及节点功率信息(负荷和发电机出力)。
这些数据可以从现场测量、电力系统数据库或网络模拟软件中获取。
3.构建节点导纳矩阵:节点导纳矩阵描述了电力系统各节点之间的电气连接关系。
它可以通过支路导纳矩阵和节点导纳矩阵的顺序乘法来计算。
4.进行潮流计算:利用节点功率方程和支路潮流方程,可以建立一个非线性方程组,其未知数是各节点的电压幅值和相角。
可以使用迭代的方法(如牛顿-拉夫逊法)或者线性化的方法(如高斯-赛德尔法)来求解这个方程组。
MATLAB提供了丰富的数值计算函数和算法,可以用来求解非线性方程组。
5.计算结果分析:潮流计算会得到电力系统各节点的电压幅值和相角,以及支路上的功率。
可以使用MATLAB绘制极坐标图来显示电力系统节点的电压幅值和相角分布情况。
此外,还可以对潮流计算结果进行故障分析、潮流分布优化等。
总结来说,使用MATLAB进行极坐标求解潮流计算可以帮助电力系统运营人员了解电力系统的电压幅值和相角分布情况,进而优化电力系统的运行和规划。
前推回代法潮流计算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中进行直流潮流计算涉及到电力系统的基本理论和数学模型。
直流潮流计算是用来分析电力系统中各个节点之间的功率流动情况,以及计算各个节点的电压和功率。
下面我会从几个方面来解释MATLAB中直流潮流计算的原理。
首先,直流潮流计算基于潮流方程和节点电压平衡方程。
潮流方程描述了电力系统中功率和电压之间的关系,而节点电压平衡方程则描述了系统中各个节点的电压之间的平衡关系。
在MATLAB中,可以使用节点导纳矩阵和节点注入功率来建立这些方程,然后通过求解这些方程来得到系统中各个节点的电压和功率。
其次,直流潮流计算的原理涉及到节点导纳矩阵和节点注入功率的计算。
节点导纳矩阵是描述系统中各个节点之间导纳关系的矩阵,而节点注入功率则是描述系统中各个节点注入和吸收的功率。
在MATLAB中,可以通过建立节点导纳矩阵和计算节点注入功率来构建潮流方程和节点电压平衡方程。
此外,直流潮流计算还需要考虑系统中各个元件的参数和拓扑结构。
例如,输电线路、变压器、发电机等元件的参数对潮流计算
有重要影响,而系统的拓扑结构则决定了节点之间的连接关系。
在MATLAB中,可以通过建立系统的参数模型和拓扑结构来进行直流潮流计算。
总的来说,在MATLAB中进行直流潮流计算需要建立系统的数学模型,包括潮流方程、节点电压平衡方程、节点导纳矩阵和节点注入功率,并考虑系统的参数和拓扑结构。
然后通过求解这些方程,可以得到系统中各个节点的电压和功率,从而分析系统的功率流动情况。
目录1.摘要 (3)2.题目原始资料 (4)3.题目分析 (6)4.题目求解 (7)1)根据题意要求画出等值电路 (7)2)读程序画出拉夫逊法的流程图 (8)3)变电所负荷为题目所给数据进行求解 (8)4)编写程序并运行 (10)5)具体调压调损耗过程 (10)1.改变变压器变比调压 (10)2.改变发电机机端电压调压 (12)3.负荷按照一定比例变化的潮流计算分析 (15)4.轮流断开支路双回线中的一条的潮流计算 (19)5.仿真并比较 (28)6.设计心得 (30)7.参考文献 (31)摘要本文运用MATLAB软件进行潮流计算,对给定题目进行分析计算,再应用DDRTS软件,构建系统图进行仿真,最终得到合理的系统潮流。
潮流计算是电力系统最基本最常用的计算。
根据系统给定的运行条件,网络接线及元件参数,通过潮流计算可以确定各母线的电压幅值和相角,各元件流过的功率,整个系统的功率损耗。
潮流计算是实现电力系统安全经济发供电的必要手段和重要工作环节。
因此,潮流计算在电力系统的规划计算,生产运行,调度管理及科学计算中都有着广泛的应用。
首先,画出系统的等效电路图,在计算出各元件参数的基础上,应用牛顿—拉夫逊Newton-Raphson法以及MATLAB软件进行计算对给定系统图进行了四种不同负荷下的潮流计算,经过调节均得到符合电压限制及功率限制的潮流分布。
其次,牛顿—拉夫逊Newton-Raphson法具有较好的收敛性,上述计算过程经过四到五次迭代后均能收敛。
根据运算结果,分析各支路损耗和系统总损耗。
最后,应用DDRTS软件,构建系统图,对给定负荷重新进行分析,潮流计算后的结果也能满足相应的参数要求。
关键词:牛顿-拉夫逊法 MATLAB DDRTS 潮流计算一、 题目原始资料:1.系统图:两个发电厂分别通过变压器和输电线路与四个变电所相连。
2、发电厂资料:母线1和2为发电厂发高压母线,发电厂一总装机容量为(300MW ),母线3为机压母线上装机容量为(100MW ),最大负荷和最小负荷分别为50MW 和20MW ,发电厂二总装机容量为(200MW )3、变电所资料:(一)变电所1、2、3、4低压母线的电压等级分别为:35KV 10KV 35KV 10KV (二)变电所的负荷分别为: 50MW 50MW 40MW 70MW变电所1 变电所2母线电厂一 电厂二(三)每个变电所的功率因数均为cos φ=0.85;(四)变电所1和变电所3分别配有两台容量为75MVA 的变压器,短路损耗414KW ,短路电压(%)=16.7;变电所2和变电所4分别配有两台容量为63MVA 的变压器,短路损耗为245KW ,短路电压(%)=10.5;4、输电线路资料:发电厂和变电所之间的输电线路的电压等级及长度标于图中,单位长度的电阻为Ω17.0,单位长度的电抗为Ω0.402,单位长度的电纳为S -610*2.78。
>> %本程序的功能是用牛顿拉夫逊法进行潮流计算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在潮流计算演示教学中的应用潮流计算是电力系统分析的重要内容之一,它可以求解电网中各节点电压、电流、功率、潮流等参数。
在电力系统教学中,潮流计算是一个重要的课程内容,也是学生理论知识与实践运用的桥梁。
因此,如何提高潮流计算教学的效果是学术界和工业界共同关注的问题。
MATLAB是一款功能强大的计算软件,广泛应用于工程、科学和教育领域,在潮流计算教学中也有重要的应用。
一、MATLAB在潮流计算仿真中的应用MATLAB可以进行各种电力系统仿真,包括潮流计算仿真。
它可以计算无功补偿、阻抗、励磁等各种因素对电网的影响,以及计算故障流、负荷流、电压降等等电网的各种参数。
通过使用MATLAB,学生可以模拟各种操作和状态,了解电网在不同负载状态下的响应,并研究电路参数对电网的影响。
二、MATLAB在潮流计算可视化中的应用MATLAB提供了强大的图形功能,可以用来可视化潮流计算。
学生可以绘制节点电压、相角、功率等参数的图示,以及各个节点之间电流流向的关系图。
在课堂上,教师可以通过这些可视化图像演示潮流计算的过程,提高学生的理解能力。
三、MATLAB在潮流计算分析中的应用MATLAB还可以用于对潮流计算结果进行分析,发现其中的规律和特点。
学生可以借助MATLAB进行统计分析、回归分析、协方差分析等方法,对潮流计算的结果进行深入探究。
这些分析结果有助于学生深入理解电网潮流的本质,提高其对电力系统的认知。
四、MATLAB在潮流计算算法优化中的应用MATLAB还可以用于潮流计算算法的优化,参与设计各种算法的控制语句和流程,包括线性规划、非线性规划、最小二乘法等多种算法。
学生可以在课程中了解各种算法的基本原理和具体操作流程,进而掌握MATLAB以及其他编程工具的使用方法,提高自主研究和创新能力。
综上所述,MATLAB在潮流计算教学中发挥了重要的作用,为学生提供了一个高效和灵活的学习平台。
一、实验目的了解计算机潮流分析的基本原理、主要步骤;熟悉Matlab运行环境;了解MATLAB潮流分析的步骤;对给定网络的运行方式做潮流分析,并初步分析计算结果。
二、实验原理:实验原理如下图:图1 系统原理图三、实验仪器、设备:一台装有MATLAB R2010a的个人计算机三相同步发电机模型,变压器模型,负荷模型,线路元件模型四、实验步骤:(1)熟悉原始资料:根据计算要求,整理数据,包括:计算网络中线路、变压器的参数(以上数据均采用有名值计算)(2)上机调试:熟悉Matlab的运行环境,准确输入原始数据、节点编号、节点注入功率等信息;(3)整理计算结果:根据计算结果作电网潮流分布图。
五、实验网络接线图及原始数据如图所示,3为平衡节点,1、2为P、Q节点,电压等级为110kV,节点处功率已将各线路充电功率考虑在内,3节点电压为115kV,角度为0。
原始数据各参数是以其自身额定功率和额定电压为基准的标幺值。
发电机参数 Pn=100MV·A,Un=10.5KV ,fn=50Hz, 变压器参数采用Y-Y 连接方式 T1的参数 Pn=100MV·A,fn=50Hz,一次绕组:U1=10.5KV ,R1=0.002,L1=0,二次绕组:U2=121KV ,R2=0.002,L2=0.015, Rm=5000,Lm=5000 T2的参数 Pn=100MV·A,fn=50Hz,一次绕组:U1=10.5KV ,R1=0.002,L1=0, 二次绕组:U2=121KV ,R2=0.002,L2=0.03,25+j18MV A3225+j18MVA32Rm=5000,Lm=5000线路参数L23:R*=0.08,X*=0.30,Y*=0.5L31:R*=0.10,X*=0.35,Y*=0L12:R*=0.04,X*=0.25,Y*=0.5六、实验数据记录及处理:从各个Scope中可以看到输电线π型等值电路两端的有功与无功功率的波形,具体操作方法是从Workspace中读出记录的数据(如图三、图四),数据有多组,取其平均值,分别得到各输电线π型等值电路两端的有功和无功功率。
matlab潮流计算课程设计一、教学目标本课程的目标是使学生掌握Matlab在电力系统潮流计算方面的应用。
通过本课程的学习,学生将能够:1.理解电力系统潮流计算的基本原理;2.熟练使用Matlab进行电力系统潮流计算;3.分析并解决电力系统潮流计算中的实际问题。
二、教学内容教学内容将按照以下大纲进行:1.电力系统潮流计算基本概念;2.Matlab在电力系统潮流计算中的应用;3.电力系统潮流计算案例分析。
具体到教材,我们将参考《电力系统潮流计算》一书,并结合Matlab软件进行实践操作。
三、教学方法本课程将采用讲授法、案例分析法和实验法相结合的教学方法。
通过讲授法,使学生掌握电力系统潮流计算的基本原理;通过案例分析法,让学生深入了解Matlab在电力系统潮流计算中的应用;通过实验法,提高学生的实际操作能力。
四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备。
教材方面,我们将使用《电力系统潮流计算》作为主教材,并提供相关的参考书籍。
多媒体资料包括PPT、视频等,用于辅助教学。
实验设备包括计算机和Matlab软件,用于让学生进行实际操作。
五、教学评估本课程的评估方式包括平时表现、作业和考试三部分。
平时表现主要评估学生在课堂上的参与程度和表现;作业则通过学生提交的Matlab编程练习来评估其掌握程度;考试则全面考察学生对电力系统潮流计算原理和Matlab应用的理解。
评估方式将力求客观、公正,全面反映学生的学习成果。
六、教学安排本课程的教学安排将根据课程内容和学生的实际情况制定。
教学进度将确保在计划时间内完成所有教学任务,教学时间将合理安排在学生便于学习的时段,教学地点则选在设备齐全、环境适宜的教学场所。
七、差异化教学针对学生的不同学习风格、兴趣和能力水平,我们将设计差异化的教学活动和评估方式。
例如,对于编程能力较强的学生,可以提供更具挑战性的编程项目;对于理论基础需要加强的学生,则提供额外的辅导和资料。
附录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);。