MATLAB潮流计算仿真
- 格式:doc
- 大小:57.00 KB
- 文档页数:8
潮流例题:根据给定的参数或工程具体要求(如图),收集和查阅资料;学习相关软件(软件自选:本设计选择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在电力系统仿真中的应用。
模型构建与数据处理:详细阐述潮流计算仿真中的模型构建过程,以及对系统数据的处理和准备。
仿真结果与分析:展示仿真计算得到的结果,并进行相应的分析和讨论。
优化方案提出与评估:根据仿真结果,提出相应的优化方案,并进行评估和比较。
结论与展望:总结全文的研究内容和结论,并展望未来进一步的研究方向。
通过本文的研究和分析,我们将深入了解电力系统潮流计算仿真分析的原理和方法,为电力系统的优化和运行提供有效的技术支持。
本部分将介绍电力系统的组成,包括发电机组、输电网和配电网等,以及相关概念和术语,为后续的潮流计算仿真分析奠定基础。
潮流计算是电力系统中重要的分析方法,用于计算系统中各节点的电压幅值和相角,以及线路和设备的功率潮流分布。
潮流计算的基本原理是建立节点潮流方程和数学模型,通过求解这些方程来得到系统的潮流状态。
节点潮流方程节点潮流方程描述了电力系统中各节点的电压和功率之间的关系。
一、实验目的1. 理解电力系统潮流计算的基本原理和方法。
2. 掌握MATLAB/Simulink在电力系统仿真中的应用。
3. 通过仿真实验,验证潮流计算的正确性和实用性。
二、实验原理与内容1. 潮流计算的基本原理潮流计算是电力系统分析的重要手段,用于计算电力系统各节点的电压、相角、功率等参数。
其基本原理如下:(1)根据电力系统的网络结构和参数,建立节点方程和支路方程。
(2)利用节点方程和支路方程,求解节点电压和相角。
(3)根据节点电压和相角,计算各节点的有功功率和无功功率。
2. 仿真实验内容本次仿真实验采用MATLAB/Simulink搭建一个简单的2机5节点电力系统模型,并利用PowerGUI进行潮流计算。
(1)建立电力系统模型首先,在MATLAB/Simulink中搭建电力系统模型,包括发电机、负荷、线路等元件。
根据实验要求,设置发电机参数、负荷参数和线路参数。
(2)潮流计算利用PowerGUI进行潮流计算,设置求解器参数,如迭代次数、收敛精度等。
运行潮流计算,得到各节点的电压、相角、有功功率和无功功率等参数。
(3)结果分析对潮流计算结果进行分析,验证潮流计算的正确性和实用性。
比较不同运行方式下的潮流计算结果,分析系统稳定性。
三、实验方法1. 利用MATLAB/Simulink搭建电力系统模型。
2. 利用PowerGUI进行潮流计算。
3. 对潮流计算结果进行分析。
四、实验步骤1. 启动MATLAB/Simulink,新建一个仿真模型。
2. 在仿真模型中,添加发电机、负荷、线路等元件,设置相应参数。
3. 将搭建好的电力系统模型连接起来,形成一个完整的系统。
4. 打开PowerGUI,选择潮流计算模块。
5. 在潮流计算模块中,设置求解器参数,如迭代次数、收敛精度等。
6. 运行潮流计算,得到各节点的电压、相角、有功功率和无功功率等参数。
7. 对潮流计算结果进行分析,验证潮流计算的正确性和实用性。
五、实验结果与分析1. 潮流计算结果本次仿真实验中,潮流计算结果如下:(1)节点电压:U1=1.02p.u., U2=1.05p.u., U3=1.03p.u., U4=1.00p.u., U5=1.01p.u.(2)节点相角:δ1=0.5°, δ2=1.0°, δ3=0.7°, δ4=0.0°, δ5=0.6°(3)有功功率:P1=100MW, P2=100MW, P3=100MW, P4=100MW, P5=100MW(4)无功功率:Q1=20Mvar, Q2=20Mvar, Q3=20Mvar, Q4=20Mvar, Q5=20Mvar2. 结果分析(1)节点电压和相角在合理范围内,说明潮流计算正确。
电力系统潮流分析计算的MATLAB仿真实现MATLAB仿真潮流分析计算的一般过程是:
(1)首先,根据电力系统的结构和参数,编写MATLAB程序,定义各种变量,包括节点电压、节点功角、支路电流、支路功率等变量,并将这些变量与图形化的表格关联起来,使用MATLAB程序绘出电力系统的拓扑图和参数表,这些拓扑图和参数表是电力系统潮流分析计算的基础。
(2)然后,分析电力系统的电压和功角变化趋势,计算节点动态电压、功角和各支路电流,并将结果写入特定的输出文件。
(3)此外,编写计算支路功率的MATLAB程序,以对电力系统的功率消耗和全系统平衡情况进行精确分析。
(4)最后,使用MATLAB绘图功能,绘制出电力系统潮流分析计算的结果,如各节点动态电压和功角的变化曲线,支路功率的变化曲线等,从而及时发现电力系统中可能存在的问题,以及有效的补救措施。
通过MATLAB仿真技术对电力系统进行潮流分析计算,可以更准确、更快捷地分析电力系统中可能发生的故障。
程序代码如下: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的程序与仿真,并对程序与仿真结果进行对比。
标签:电力系统五节点;程序与仿真;牛顿潮流计算引言潮流计算是在电力系统稳态时的一种运算,由系统赋予的运行条件和整体结构来确定整个系统运行的状况。
同时它也是电力系统应用最基本和最广泛的电气计算。
较早的时候大多数的人用高斯——赛德尔迭代法求解潮流,因为它在运算的时候内部储存量比较小,但其收敛性却一般,所以在这以后人们就选用阻抗法,经过修改和运算方式的改进后,牛顿法就成为人们应用潮流计算的常用方法,其主要的特点就是将方程的非线性化变为方程的线性化。
文章重点以牛顿潮流计算作为潮流计算的方法,在Matlab中应用电力系统五节点算例进行仿真对比分析。
1 牛顿法潮流计算简言之,其核心就是把非线性方程式的求解过程变为相对应的线性求解的过程。
在牛顿潮流计算中形成雅克比矩阵之后,在此基础上建立相对应的修正方程,它的基本计算流程为:1.求解各个节点导纳,并组成相对应的矩阵YB;2、设置各个节点的初始值ei(0)、fi(0);3、把各个节点的初始电压值带入式中求解修正方程式中的非平衡量ΔPi(0)、ΔQi(0)、Ui(0)2 ;4、求雅克比矩阵各元素Nij、Nij、Jij、Lij与Rij、Sij;5、求解修正量Δei(0)、Δfi(0);6、再次计算各个节点的电压;7、在之前的基础上迭代;8、求解线路上的功率以及平衡节点的功率。
其中节点电压可采用直角坐标形式或者极坐标的形式。
在牛顿潮流计算的修正方程处理的方式上能联系修正方程式的求解,求解过程能采取形成、消元、储存同时进行的方式。
另外节点编号也能做有关的优化,其优化法通常有三种,它们为静态法、半动态法和动态法。
【22节点潮流计算matlab仿真程序详解】引言主题指定的22节点潮流计算matlab仿真程序是电力系统领域中的重要内容。
在本文中,我将以深入、广泛的方式来探讨这一主题,帮助您全面了解和掌握相关知识。
一、22节点潮流计算的概念1. 22节点潮流计算的基本介绍22节点潮流计算是电力系统分析中的重要部分,它是对电力系统节点之间功率、电压、相角等参数进行计算和分析的过程。
通过22节点潮流计算,可以有效评估电力系统的稳定性和可靠性。
2. 22节点潮流计算的基本原理在进行22节点潮流计算时,需要考虑节点之间的功率平衡方程、电压平衡方程等基本原理。
这些原理是潮流计算的理论基础,也是实际仿真程序设计的重要依据。
二、22节点潮流计算matlab仿真程序的设计与实现1. matlab在电力系统仿真中的应用matlab作为一种功能强大的科学计算软件,在电力系统领域有着广泛的应用。
通过matlab,可以方便地进行潮流计算、稳定性分析、拓扑优化等工作。
2. 22节点潮流计算matlab仿真程序的设计要点在设计22节点潮流计算matlab仿真程序时,需要考虑程序的模块化、可扩展性、运行效率等要点。
通过合理的程序设计,可以提高仿真程序的稳定性和可靠性。
三、22节点潮流计算matlab仿真程序的应用实例1. 22节点潮流计算matlab仿真程序的基本框架通过一份完整的22节点潮流计算matlab仿真程序,来实际演示程序的结构和实现过程。
这样可以让读者更直观地理解程序的设计和应用。
2. 22节点潮流计算matlab仿真程序的实际应用案例以一个具体的电力系统实例为例,演示22节点潮流计算matlab仿真程序的实际应用过程。
这样可以让读者更清晰地了解程序在实际工程中的价值和作用。
结束语通过本文的深度探讨和广度展示,相信您已经对22节点潮流计算matlab仿真程序有了更全面的了解。
也希望您能够在实际工作中灵活运用所学知识,不断提升自己在电力系统领域的技术水平。
毕业设计(论文)电气与电子工程系供用电技术专业毕业设计(论文)题目基于Matlab 的电力系统潮流仿真计算学生姓名班级学号指导教师完成日期2007年6月10日Matlab的电力系统潮流仿真计算总计毕业设计(论文)页表格个插图幅摘要潮流计算是电力系统的一项重要分析功能,是进行故障计算,继电保护整定,安全分析的必要工具。
传统的潮流计算程序缺乏图形用户界面,结果显示不直观,难于与其他分析功能集成。
网络原始数据输入工作量大且易于出错。
随着计算机技术的飞速发展,MICROSOFT WINDOWS操作系统早已被大家所熟悉,其友好的图形用户界面已成为PC机的标准,而DOS操作系统下的应用程序因其界面不够友好,开发具有WINDOWS风格界面的电力系统分析软件已成为当前的主流趋势。
另外,传统的程序设计方法是结构化程序设计方法,该方法基于功能分解,把整个软件工程看作是一个个对象的组合,由于对某个特定问题域来说,该对象组成基本不变,因此,这种基于对象分解方法设计的软件结构上比较稳定,易于维护和扩充。
本文介绍了图形化潮流计算软件的开发设计思想和总体结构,阐述了该软件所具备的功能和特点。
结合电力系统的特点,软件采用MATLAB语言运行于WINDOWS操作系统的图形化潮流计算软件。
本系统的主要特点是操作简单,图形界面直观,运行稳定.计算准确。
计算中,算法做了一些改进,提高了计算速度,各个类的有效封装又使程序具有很好的模块性.可维护性和可重用性。
关键词:电力系统潮流计算;牛顿—拉夫逊法潮流计算;MATLAB目录摘要第一章电力系统潮流计算概述………………………………………1.1电力系统简介……………………………………………………1.2潮流计算简介…………………………………………………………1.3潮流计算的意义及其发展…………………………………………………第二章潮流计算的数学模型………………………………………………………2.1导纳矩阵的原理及计算方法……………………………………………………2.1.1自导纳和互导纳的确定方法…………………………………………2.1.2节点导纳矩阵的性质及意义…………………………………………………2.1.3非标准变比变压器等值电路……………………………………………2.2潮流计算的基本方程…………………………………………………………2.3电力系统节点分类………………………………………………………………2.4潮流计算的约束条件……………………………………………………………………(1 第三章牛顿-拉夫逊法概述………………………………………………………3.1牛顿-拉夫逊法基本原理…………………………………………3.3牛顿-拉夫逊法求解过程………………………………………………………3.2牛顿-拉夫逊法程序框图…………………………………………………………第四章Matlab概述…………………………………………………………………4.1Matlab简介………………………………………………………………………4.2矩阵的生成………………………………………………………………………4.3矩阵的运算………………………………………………………………………4.4牛顿—拉夫逊法潮流计算程序…………………………………………………………总结…………………………………………………………参考文献…………………………………………………………………………………………(34)第一章电力系统潮流计算概述1.1 电力系统叙述电力工业发展初期,电能是直接在用户附近的发电站(或称发电厂)中生产的,各发电站孤立运行。
基于matlab的电力系统潮流仿真计算电力系统潮流仿真计算是指通过数学模型和计算机仿真技术对电力系统中各个节点的电压、电流等参数进行计算和分析的过程。
这一过程可以帮助电力系统的运维管理人员更好地了解电力系统的运行状况,提高电力系统的稳定性和可靠性。
在电力系统潮流计算过程中,matlab作为常用的编程工具,可以提供非常有效的计算工具,帮助研究人员和电力系统工程师更好地进行电力系统潮流仿真计算。
首先,matlab作为一种数值计算的编程语言,可以实现复杂的数学运算和数据分析。
在电力系统潮流计算中,需要进行大量的数值计算和数据处理,因此matlab可以提供很好的支持。
在matlab中,可以使用各种数值计算包和工具箱来处理数学问题和进行复杂的数据分析。
这些工具可以帮助用户更好地进行电力系统仿真计算。
其次,matlab提供了大量的图形化界面的工具箱,这些工具箱可以帮助用户更方便地进行数据可视化和图像处理。
在电力系统潮流计算中,通过图表展示计算结果可以帮助用户更好地了解电力系统的潮流分布和电压变化情况。
matlab的图形化界面工具箱可以方便地进行图表制作和数据可视化处理,为用户提供了更好的计算结果展示方式。
另外,matlab还支持各种第三方工具的引入和使用。
用户可以通过引入各种算法库、等额容量分配方法库等第三方工具来扩展matlab的功能。
这些工具提供了电力系统潮流计算需要的算法和方法,可以在matlab中进行集成和使用,帮助用户更好的处理问题和获得更精确的计算结果。
总的来说,基于matlab的电力系统潮流仿真计算是一种高效而强大的计算方法。
通过使用matlab可以更好地完成电力系统潮流计算的各项目标和要求,帮助电力系统工程师更好地掌握电力系统的运行状态和运行状况,提高电力系统的稳定性和可靠性。
同时,matlab也为用户提供了各种编程和数据可视化的工具,帮助用户更加方便和高效的完成电力系统潮流计算的各项任务。
附录A MATLAB程序%本程序的功能是用牛顿——拉夫逊法进行潮流计算% B1矩阵:1、支路首端号;2、末端号;3、支路阻抗;4、支路对地电纳% 5、支路的变比;6、支路首端处于K侧为1,1侧为0% B2矩阵:1、该节点发电机功率;2、该节点负荷功率;3、节点电压初始值% 4、PV节点电压V的给定值;5、节点所接的无功补偿设备的容量% 6、节点分类标号clear;n=10;%input('请输入节点数:n=');nl=11;%input('请输入支路数:nl=');isb=1;%input('请输入平衡母线节点号:isb=');pr=0.00001;%input('请输入误差精度:pr=');B1=[1 2 1.755e-2+4.155e-2i 0.26i 1 0;1 4 3.159e-2+7.479e-2i 0.1215i 1 0;1 6 3.159e-2+7.479e-2i 0.1215i 1 0;2 3 3.68e-3+0.11135i 0 0.909 1;4 5 3.68e-3+0.11135i 0 0.909 1;4 6 2.808e-2+6.648e-2i 0.108i 1 0;6 7 3.0865e-3+0.0833i 0 0.909 1;6 8 3.159e-2+7.479e-2i 0.1215i 1 0;6 10 2.457e-2+5.817e-2i 0.0945i 1 0;8 9 3.0865e-3+0.0833i 0 0.909 1;8 10 2.808e-2+6.648e-2i 0.108i 1 0];%input('请输入由支路参数形成的矩阵: B1=');B2=[0 0 1.05 1.05 0 1;0 0 1 0 0 2;0 0.6+0.3718i 1 0 0 2;0 0 1 0 0 2;0 0.4+0.247i 1 0 0 2;0 0 1 0 0 2;0 0.35+0.2169i 1 0 0 2;0 0 1 0 0 2;0 0.5+0.3099i 1 0 0 2;0.8 0 1.05 1.05 0 3];%input('请输入各节点参数形成的矩阵: B2=');Y=zeros(n);e=zeros(1,n);f=zeros(1,n);V=zeros(1,n);sida=zeros(1,n) ;S1=zeros(nl);%-------修改部分------------ym=0;SB=100;UB=220;%ym=input('您输入的参数是标么值?(若不是则输入一个不为零的数值)');if ym~=0%SB=input('请输入功率基准值:SB=');%UB=input('请输入电压基准值:UB=');YB=SB./UB./UB;BB1=B1;BB2=B2;for i=1:nlB1(i,3)=B1(i,3)*YB;B1(i,4)=B1(i,4)./YB;enddisp('B1矩阵B1=');disp(B1)for i=1:nB2(i,1)=B2(i,1)./SB;B2(i,2)=B2(i,2)./SB;B2(i,3)=B2(i,3)./UB;B2(i,4)=B2(i,4)./UB;B2(i,5)=B2(i,5)./SB;enddisp('B2矩阵B2=');disp(B2)end% % %---------------------------------------------------for i=1:nl %支路数if B1(i,6)==0 %左节点处于低压侧p=B1(i,1);q=B1(i,2);elsep=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; %对角元K侧 Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2; %对角元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;while IT2~=0IT2=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)%求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;J(m,q)=X1;J(m,N)=DP;q=q+1;J(p,q)=X4;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/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;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~=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;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:N0 % N0=2*n (从第三行开始,第一、二行是平衡节点)k1=k+1;N1=N; % N=N0+1 即 N=2*n+1扩展列△P、△Q for k2=k1:N1 % 扩展列△P、△QJ(k,k2)=J(k,k2)./J(k,k); % 非对角元规格化endJ(k,k)=1; % 对角元规格化if k~=3 % 不是第三行%============================================================k4=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);%消去运算endJ(k3,k)=0;endif k==N0break;end%==========================================for 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%====上面是用线性变换方式将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)*j;end%=============== 计算各输出量 ===========================disp('各节点的实际电压标幺值E为(节点号从小到大排列):');disp(E);EE=E*UB;disp(EE);disp('-----------------------------------------------------'); disp('各节点的电压大小V为(节点号从小到大排列):');disp(V);VV=V*UB;disp(VV);disp('-----------------------------------------------------'); disp('各节点的电压相角sida为(节点号从小到大排列):');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);enddisp('各节点的功率S为(节点号从小到大排列):');disp(S);disp('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');SS=S*SB;disp(SS);disp('-----------------------------------------------------'); disp('各条支路的首端功率Si为(顺序同您输入B1时一致):');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))-con j(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))-co nj(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)*SB;ZF=['S(',num2str(p),',',num2str(q),')=',num2str(SSi(p,q))];disp(ZF);%disp(SSi(p,q));disp('-----------------------------------------------------'); enddisp('各条支路的末端功率Sj为(顺序同您输入B1时一致):');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))-co nj(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))-con j(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)*SB;ZF=['S(',num2str(q),',',num2str(p),')=',num2str(SSj(q,p))];disp(ZF);%disp(SSj(q,p));disp('-----------------------------------------------------'); enddisp('各条支路的功率损耗DS为(顺序同您输入B1时一致):');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)*SB;ZF=['DS(',num2str(p),',',num2str(q),')=',num2str(DDS(i))]; disp(ZF);%disp(DDS(i));disp('-----------------------------------------------------'); endfigure(1);subplot(2,2,1);plot(V);xlabel('节点号');ylabel('电压标幺值');grid on;subplot(2,2,2);plot(sida);xlabel('节点号');ylabel('电压角度');grid on;subplot(2,2,3);bar(real(S));ylabel('节点注入有功');grid on;subplot(2,2,4);bar(Siz);ylabel('支路首端无功');grid on;。