电力系统分析潮流计算的计算机算法
电力系统分析潮流计算的计算机算法

电⼒系统分析潮流计算的计算机算法潮流计算的计算机算法实验报告姓名:学号:班级:⼀、实验⽬的掌握潮流计算的计算机算法。
熟悉MATLAB,并掌握MATLAB程序的基本调试⽅法。
⼆、实验准备根据课程内容,熟悉MATLAB软件的使⽤⽅法,⾃⾏学习MATLAB程序的基础语法,并根据所学知识编写潮流计算⽜顿拉夫逊法(或PQ分解法) 的计算程序,⽤相应的算例在MATLAB上进⾏计算、调试和验证。
三、实验要求每⼈⼀组,在实验课时内,⽤MATLAB调试和修改运⾏程序,⽤算例计算输出潮流结果。
四、实验程序clear; %清空内存n=input('请输⼊节点数:n=');n1=input('请输⼊⽀路数:n1=');isb=input('请输⼊平衡节点号:isb=');pr=input('请输⼊误差精度:pr=');B1=input('请输⼊⽀路参数:B1=');B2=input('请输⼊节点参数:B2=');X=input('节点号和对地参数:X=');Y=zeros(n);Times=1;%⼀:创建节点导纳矩阵for i=1:n1if B1(i,6)==0 %不含变压器的⽀路p=B1(i,1);q=B1(i,2);Y(p,q)=Y(p,q)-1/B1(i,3);Y(q,p)=Y(p,q);Y(p,p)=Y(p,p)+1/B1(i,3)+0.5*B1(i,4);Y(q,q)=Y(q,q)+1/B1(i,3)+0.5*B1(i,4);else %含有变压器的⽀路p=B1(i,1);Y(q,p)=Y(p,q);Y(p,p)=Y(p,p)+1/B1(i,3);Y(q,q)=Y(q,q)+1/(B1(i,5)^2*B1(i,3));endendY;%将OrgS、DetaS初始化OrgS=zeros(2*n-2,1);DetaS=zeros(2*n-2,1);%⼆:创建OrgS,⽤于存储初始功率参数h=0;j=0;for i=1:n %对PQ节点的处理if i~=isb&B2(i,6)==2h=h+1;for j=1:nOrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j ))*Imag(B2(j,3)))+imag(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*i mag(B2(j,3)))-real(B2(i,3))* (real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));endendend%三:对PV节点的处理,注意这时不可再将h初始化为0for i=1:nif i~=isb&B2(i,6)==3h=h+1;for j=1:nOrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j ))*imag(B2(j,3)))+imag(B2(i,3))* (real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*i mag(B2(j,3)))-real(B2(i,3))* (real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));endend%四:创建PVU ⽤于存储PV节点的初始电压PVU=zeros(n-h-1,1);t=0;for i=1:nif B2(i,6)==3t=t+1;PVU(t,1)=B2(i,3);endendPVU;%五:创建DetaS,⽤于存储有功功率、⽆功功率和电压幅值的不平衡量h=0; for i=1:n %对PQ节点的处理if i~=isb&B2(i,6)==2h=h+1;DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);DetaS(2*h,1)=imag(B2(i,2))-OrgS(2*h,1);endendt=0;for i=1:n%六:对PV节点的处理,注意这时不可再将h初始化为0if i~=isb&B2(i,6)==3h=h+1;t=t+1;DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);DetaS(2*h,1)=real(PVU(t,1))^2+imag(PVU(t,1))^2-real(B2(i,3))^2-imag( B2(i,3))^2;endendDetaS;%七:创建I,⽤于存储节点电流参数i=zeros(n-1,1);h=0;h=h+1;I(h,1)=(OrgS(2*h-1,1)-OrgS(2*h,1)*sqrt(-1))/conj(B2(i,3));endendI;%⼋:创建Jacbi(雅可⽐矩阵)Jacbi=zeros(2*n-2);h=0;k=0;for i=1:n %对PQ节点的处理if B2(i,6)==2h=h+1;for j=1:nif j~=isbk=k+1;if i==j %对⾓元素的处理Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3))+imag(I (h,1)); Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3))+real(I(h,1));Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k)+2*real(I(h,1));Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1)-2*imag(I(h,1));else %⾮对⾓元素的处理Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3));Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3));Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k);Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1);endif k==(n-1) %将⽤于内循环的指针置于初始值,以确保雅可⽐矩阵换⾏k=0;endendendendfor i=1:n %对PV节点的处理if B2(i,6)==3h=h+1;for j=1:nif j~=isbk=k+1;if i==j %对⾓元素的处理Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3))+imag(I (h,1)); Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3))+real(I(h,1)) ; Jacbi(2*h,2*k-1)=2*imag(B2(i,3));Jacbi(2*h,2*k)=2*real(B2(i,3));else %⾮对⾓元素的处理Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3));Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3));Jacbi(2*h,2*k-1)=0;Jacbi(2*h,2*k)=0;endif k==(n-1) %将⽤于内循环的指针置于初始值,以确保雅可⽐矩阵换⾏k=0;endendendendendJacbi;%九:求解修正⽅程,获取节点电压的不平衡量DetaU=zeros(2*n-2,1);DetaU=inv(Jacbi)*DetaS;DetaU;%修正节点电压j=0;for i=1:n %对PQ节点处理if B2(i,6)==2for i=1:n %对PV节点的处理if B2(i,6)==3j=j+1;B2(i,3)=B2(i,3)+DetaU(2*j,1)+DetaU(2*j-1,1)*sqrt(-1);endendB2;%⼗:开始循环**********************************************************************while abs(max(DetaU))>prOrgS=zeros(2*n-2,1); %初始功率参数在迭代过程中是不累加的,所以在这⾥必须将其初始化为零矩阵h=0;j=0;for i=1:nif i~=isb&B2(i,6)==2h=h+1;for j=1:nOrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j ))*imag(B2(j,3)))+imag(B2(i,3))* (real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*i mag(B2(j,3)))-real(B2(i,3))* (real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));endendendfor i=1:nif i~=isb&B2(i,6)==3h=h+1;for j=1:nOrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j ))*imag(B2(j,3)))+imag(B2(i,3))* (real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j, 3)));OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y(i,j))*i mag(B2(j,3)))-real(B2(i,3))* (real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));%创建DetaSh=0;for i=1:nif i~=isb&B2(i,6)==2h=h+1;DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);DetaS(2*h,1)=imag(B2(i,2))-OrgS(2*h,1);endendt=0;for i=1:nif i~=isb&B2(i,6)==3h=h+1;t=t+1;DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);DetaS(2*h,1)=real(PVU(t,1))^2+imag(PVU(t,1))^2-real(B2(i,3))^2-imag(B2(i, 3))^2; endendDetaS;%创建Ii=zeros(n-1,1);h=0;for i=1:nif i~=isbh=h+1;I(h,1)=(OrgS(2*h-1,1)-OrgS(2*h,1)*sqrt(-1))/conj(B2(i,3));endendI;%创建JacbiJacbi=zeros(2*n-2);for i=1:nif B2(i,6)==2h=h+1;for j=1:nif j~=isbk=k+1;if i==jJacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3))+imag(I (h,1)); Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3))+real(I(h,1)) ; Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k)+2*real(I(h,1));Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1)-2*imag(I(h,1));elseJacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3));Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3));Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k);Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1);endif k==(n-1)k=0;endendendendendk=0;for i=1:nif B2(i,6)==3h=h+1;for j=1:nif j~=isbk=k+1;if i==jJacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3))+imag(I (h,1));Jacbi(2*h,2*k)=2*real(B2(i,3));elseJacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3)); Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3)); Jacbi(2*h,2*k-1)=0;Jacbi(2*h,2*k)=0;endif k==(n-1)k=0;endendendendendJacbi;DetaU=zeros(2*n-2,1);DetaU=inv(Jacbi)*DetaS;DetaU;%修正节点电压j=0;for i=1:nif B2(i,6)==2j=j+1;B2(i,3)=B2(i,3)+DetaU(2*j,1)+DetaU(2*j-1,1)*sqrt(-1);endendfor i=1:nif B2(i,6)==3j=j+1;B2(i,3)=B2(i,3)+DetaU(2*j,1)+DetaU(2*j-1,1)*sqrt(-1);endendB2;Times;五、实验流程六、实验结果参数输⼊:运⾏结果:七、实验体会通过这次实验,让我第⼀次接触到了MATLAB,并深切体会到了它的强⼤之处;潮流计算的计算机算法的实现不仅巩固了我的学过的知识,还让我学到⼀些MATLAB的编程,虽然在实验的过程中出现了很多的错误,但在⽼师的细⼼指导下,问题都解决啦;计算机为我们省去了⼤量的⼈⼯计算,希望在以后的学习中能接触到更多的软件,学习。
电力系统潮流的计算机算法

, xn ) = 0
f1
(x(0) 1
+
Δx(0) , x(0)
1
2
+
Δx(0) , 2
fi
(x
(0)
1
+
Δx(0) , x(0)Leabharlann 12+
Δx(0) , 2
fn
(x(0) 1
+
Δx(0) , x(0)
1
2
+
Δx(0) , 2
f1
(x1(0)
,
x(0) 2
,
fi
(x1(0)
,
x(0) 2
,
fn
(x1(0)
Δx(n0)
0
=
0
, x(0) + Δx(0) ) = 0
n
n
, x(0)
+
Δx(0) )
=
0
n
n
, x(0) n
+
Δx(0) ) n
=
0
6.2 牛顿-拉夫逊潮流算法 6.2.1 基本原理 (2) n 阶非线性方程组的牛纯法:
① 修正方程:
矩
f1
(
x1(
0)
,
x(0) 2
,
,
x(0) n
)
6.2.3极坐标形式的N-R潮流算法
(1) 修正方程: ② 修正方程:
P H N Δδ
Q K
L
VP-1QΔV
P1 H11
PQn11
H n1 K11
1
Qm Km 1
H1 n1 N11
H n1 n1 K1 n1
N n 11 L1 1
电力系统潮流计算的计算机方法

电力系统潮流计算的计算机方法我折腾了好久电力系统潮流计算的计算机方法,总算找到点门道。
说实话,我一开始也是瞎摸索。
首先呢,我就知道这个潮流计算很重要,因为它能让我们搞清电力系统里各种电压啊、功率这些东西是怎么分布的。
我一开始就看书本上的理论,那些密密麻麻的公式看的我头都大了。
就比如说节点导纳矩阵的构建,妈呀,那些元素计算,感觉就像在走迷宫一样,我总是搞混。
我以前尝试过自己手动用简单的数据去构建这个矩阵,心想这能加深理解。
可一旦数据复杂点,我就错漏百出。
就像搭积木,你以为前面几块搭好了后面就简单,结果一个不小心,整个就垮了。
这时候我才意识到,单纯靠手算是不行的,必须借助计算机。
然后我就开始找计算机语言,最开始试的是Python。
这Python好是好,但对于潮流计算这种需要很多复杂矩阵运算的,感觉还是有点吃力。
我记得我想调用一个库去处理矩阵的乘法,找了半天文档还是搞出各种错误,什么数据类型不匹配啦,维度不对啦,那种挫败感啊。
后来我尝试了Matlab,这就像是打开了一扇新大门。
Matlab处理矩阵那叫一个方便,就跟住在酒店有人给你打扫房间一样轻松。
我先从基础开始,把节点导纳矩阵啊,功率注入向量这些基本的表示出来。
比如说节点导纳矩阵,就像编织一个蜘蛛网似的,每个支路在这个网上怎么体现,对应的导纳值怎么放,我一点点去搞清楚。
有一次我弄错了一个支路的连接关系,在构建矩阵的时候没反映正确。
结果算出来的潮流结果就很离谱,线路上的功率和电压到处都是乱的。
我就知道我肯定错了,然后就像破案一样,一点点重新检查我的输入。
在计算方法上,牛顿- 拉夫逊法我是没少试。
我一开始真的感觉我在跟一个脾气很差的人打交道,稍微有点差池它就停工。
比如说初始值的选择,如果选不好,就像汽车启动没踩对油门,要么不动要么乱冲。
为了找到合适的初始值,我试了好多组类似于经验数值的数据,最后慢慢摸索出在我的这个小电力系统模型里大概什么范围的初始值能让牛顿- 拉夫逊法顺利工作。
电力系统中的潮流计算与优化方法

电力系统中的潮流计算与优化方法潮流计算是电力系统运行和规划中的重要环节,它用于计算电力系统中各节点的电压、相角、有功、无功功率以及线路、变压器等的潮流分布情况。
对电力系统进行潮流计算可以帮助电力系统运行人员了解系统的稳定性、可靠性以及容载能力,也可以为电力系统规划提供数据支持。
本文将介绍电力系统潮流计算的基本方法与优化技术。
一、潮流计算的基本方法1.1 普通潮流计算方法潮流计算的基本方法是牛顿-拉夫逊迭代法(Newton-Raphson Iteration Method)和高尔顿法(Gauss-Seidel Method)。
牛顿-拉夫逊迭代法主要是通过不断迭代求解雅可比矩阵的逆,直到迭代误差小于给定阀值时停止迭代;高尔顿法则是逐一更新所有节点的电压与相角,直至所有节点的迭代误差都小于给定阀值。
1.2 快速潮流计算方法在大型电力系统中,普通的潮流计算方法计算速度较慢。
因此,研究人员提出了一些针对快速潮流计算的方法,如快速牛顿-拉夫逊法(Fast Newton-Raphson Method)和DC潮流计算方法。
快速牛顿-拉夫逊法通过简化牛顿-拉夫逊法的迭代公式,减少计算量,提高计算速度;DC潮流计算方法则是将潮流计算问题转化为一个线性方程组的求解问题,进一步提升计算效率。
二、潮流计算的优化技术2.1 改进的潮流计算算法为了提高潮流计算的准确性和收敛速度,研究人员提出了一些改进的潮流计算算法。
其中,改进的牛顿-拉夫逊法(Improved Newton-Raphson Method)是一种结合牛顿-拉夫逊法和割线法的算法,通过混合使用这两种方法,实现在减小迭代误差的同时加快计算速度。
此外,基于粒子群优化算法(Particle Swarm Optimization)和遗传算法(Genetic Algorithm)的潮流计算算法也得到了广泛研究和应用。
2.2 潮流优化潮流计算不仅可以用于分析电力系统的工作状态,还可以作为优化问题的约束条件。
电力系统潮流计算机算法

电力系统潮流计算机算法电力系统潮流计算是电力系统分析中最基本的一项计算,其目的是确定电力系统中各母线电压的幅值和相角、各元件中的功率以及整个系统的功率损耗等。
随着计算机技术的发展,电力系统潮流计算算法也在不断更新和完善。
以下是电力系统潮流计算的一些常用算法:1. 牛顿-拉夫逊法(Newton-Raphson Method):这是一种求解非线性方程组的方法,应用于电力系统潮流计算中。
该方法在多数情况下没有发散的危险,且收敛性较强,可以大大节约计算时间,因此得到了广泛的应用。
2. 快速迪科法(Fast Decoupled Method):这是一种高效的电力系统潮流计算方法,将电力系统分为几个子系统进行计算,从而提高了计算速度。
3. 最小二乘法(Least Squares Method):这是一种用于求解线性方程组的方法,通过最小化误差平方和来获得最优解。
在电力系统潮流计算中,可用于优化电压幅值和相角。
4. 遗传算法(Genetic Algorithm):这是一种全局优化搜索算法,应用于电力系统潮流计算中,可以解决一些复杂和非线性问题。
5. 粒子群优化算法(Particle Swarm Optimization):这是一种启发式优化算法,通过模拟鸟群觅食行为来寻找最优解。
在电力系统潮流计算中,可用于优化网络参数和运行条件。
6. 模拟退火算法(Simulated Annealing):这是一种全局优化搜索算法,应用于电力系统潮流计算中,可以在较大范围内寻找最优解。
7. 人工神经网络(Artificial Neural Network):这是一种模拟人脑神经网络的计算模型,可用于电力系统潮流计算。
通过训练神经网络,可以实现对电力系统中复杂非线性关系的建模和预测。
以上所述算法在电力系统潮流计算中起着重要作用,为电力系统运行、设计和优化提供了有力支持。
同时,随着计算机技术的不断发展,未来还将出现更多高效、精确的电力系统潮流计算算法。
电力系统潮流计算计算计算法

电力系统潮流计算算法设计及实现潮流计算是电力系统分析中的一种最基本的计算,它的任务是对给定的运行条件确定系统的运行状态,如各母线上的电压(幅值及相角)、网络中的功率分布以及功率损耗等。
建模是用数学的方法建立的数学模型,但它严格依赖于物理系统。
根据电力系统的实际运行条件,按给定的变量不同,一般将节点分为PQ节点,PV节点,平衡节点三种类型。
当这三个节点与潮流计算的约束条件结合起来时,便是潮流计算的数学模型。
PQ节点:有功功率P和无功功率Q是已知的,节点电压(V,δ)是待求量。
通常变电所都是这一类型的节点。
PV节点:有功功率P和电压复制V是已知的,节点的无功功率Q和电压相位δ是待求量。
一般选择有一定无功储备的发电厂和具有可调无功电源设备的变电所作为PV节点。
平衡节点:在潮流分布算出之前,网络中的功率损失是未知的,所以,网络中至少有一个节点的有功功率P不能给定,这个节点承担了系统的有功功率平衡,所以称为平衡节点。
一般选择主调频发电厂为平衡节点。
潮流计算的约束条件是:1、所有的节点电压必须满足:这一约束主要是对PQ节点而言。
2、2、所有电源节点的有功功率和无功功率必须满足:对平衡节点的P和Q以及PV节点的Q按以上条件进行检验。
3、某些节点之间电压的相位差应满足:稳定运行的一个重要条件。
功率方程的非线性雅可比矩阵的特点:●各元素是各节点电压的函数●不是对称矩阵●因为Y =0,所以H =N =J =L =0,另R =S =0,故稀疏两种常见的求解非线性方程的方法:1)高斯-赛德尔迭代法;2)牛顿-拉夫逊迭代法。
高斯-赛德尔迭代法潮流计算1、方程表示:①用高斯-赛德尔计算电力系统潮流首先要将功率方程改写成能收敛的迭代形式;②Q:设系统有n个节点,其中m个PQ节点,n-(m+1)个是PV节点,一个平衡节点,平衡节点不参加迭代;③功率方程改写成:2、求解的步骤:1)上述迭代公式假设n个节点全部为PQ节点。
2)始终等号右边采用第k次迭代结果,当j<i时,采用经(k+1)次迭代后的值,当j>i时,采用第k次迭代结果。
《电力系统分析》第四章 电力系统潮流的计算机算法

1
I1
I3
3
y12
y23
y20
2 I2
+ -
U
2
第四章 电力系统潮流的计算机算法
二、节点阻抗矩阵的节点电压方程
由YB1 ZB 的两边都左乘 YB,1 可得YB1I B U B ,
而
IB
YBU
,则节点电压方程为
B
ZBIB UB
第四章 电力系统潮流的计算机算法
第二节 等值变压器模型及其应用
Q2 QG2 QL2 Q2 (U , ) Q2 (U1,U 2 ,1, 2 )
第四章 电力系统潮流的计算机算法
二、变量的分类
1而、是负无荷法消控耗制的的有,功故、称无为功不功可率控(变P量L、或QL扰)动取变决量于。用一户般,以因
Y33
y30
y13
y23
y35 K 35
1 K35
K
2 35
y35
y30
y13
y23
1
K
2 35
y35
3
y35
K 35
5
j0.25
1
1
0.1 j0.35 0.08 j0.3
1 1 1.052 j0.015
1.585 j65.975
1 K35
K
第三章讨论简单电力网络的潮流分布计算,理解了与 之相关的各种物理现象。对于复杂电力网络的潮流计算, 一般必须借助电子计算机进行。 运用电子计算机,一般要完成以下步骤:
1、建立电力网络的数学模型 2、确定解算方法 3、制定计算流程和编制计算程序 本章将着重讨论前两项,主要阐述在电力系统潮流的 实际计算中常用的、基本的方法。
电力系统潮流计算方法分析

电力系统潮流计算方法分析1.黎曼法是最简单和最直接的计算方法。
该方法直接利用电力系统的基本方程式,即功率平衡方程式和节点电压方程式来计算潮流分布。
然而,黎曼法需要利用复杂的矩阵方程式来解决系统中节点电压的计算,计算量大且计算速度较慢,对大型复杂系统不适用。
2.高斯-赛德尔法是一种迭代法,将电网中的节电清设置为未知数,并采用全局迭代求解。
该方法通过迭代计算不断逼近潮流分布,直到满足系统中所有节点的电压和功率平衡方程为止。
高斯-赛德尔法具有迭代次数多、耗时较长的缺点,但计算稳定可靠,对于小型系统具有较好的适用性。
3.牛顿-拉夫逊法是一种基于牛顿迭代思想的高效潮流计算方法。
该方法通过利用电力系统中的雅可比矩阵,将潮流计算问题转化为解非线性方程组的问题。
牛顿-拉夫逊法的迭代速度和稳定性较高,适用于大型复杂系统的潮流计算。
综上所述,电力系统潮流计算方法可以选择黎曼法、高斯-赛德尔法和牛顿-拉夫逊法等不同的算法进行计算。
选择合适的计算方法应根据系统的规模、复杂度以及计算时间要求来综合考虑。
实际应用中,通常会根据具体情况采用不同的方法进行潮流计算,以获得准确和高效的结果。
同时,随着电力系统的发展和智能化技术的应用,也出现了一些基于机器学习和深度学习的潮流计算方法。
这些方法利用大数据和智能算法,通过学习和分析系统历史数据,能够更好地预测和计算系统潮流分布,提高计算效率和准确性。
这些方法在未来的电力系统潮流计算中具有潜力和广阔的应用前景。
总结起来,电力系统潮流计算是电力系统分析和规划的重要工作,不同的计算方法有不同的优劣势,合理选择计算方法对于准确评估系统稳定性和可靠性至关重要。
随着技术的进步和应用的发展,电力系统潮流计算方法也在不断演化和改进,以满足电力系统智能化和可持续发展的需求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
潮流计算的计算机算法实验报告:学号:班级:一、实验目的掌握潮流计算的计算机算法。
熟悉MATLAB,并掌握MATLAB程序的基本调试方法。
二、实验准备根据课程容,熟悉MATLAB软件的使用方法,自行学习MATLAB程序的基础语法,并根据所学知识编写潮流计算牛顿拉夫逊法(或PQ分解法) 的计算程序,用相应的算例在MATLAB上进行计算、调试和验证。
三、实验要求每人一组,在实验课时,用MATLAB调试和修改运行程序,用算例计算输出潮流结果。
四、实验程序clear; %清空存n=input('请输入节点数:n=');n1=input('请输入支路数:n1=');isb=input('请输入平衡节点号:isb=');pr=input('请输入误差精度:pr=');B1=input('请输入支路参数:B1=');B2=input('请输入节点参数:B2=');X=input('节点号和对地参数:X=');Y=zeros(n);Times=1;%一:创建节点导纳矩阵for i=1:n1if B1(i,6)==0 %不含变压器的支路p=B1(i,1);q=B1(i,2);Y(p,q)=Y(p,q)-1/B1(i,3);Y(q,p)=Y(p,q);Y(p,p)=Y(p,p)+1/B1(i,3)+0.5*B1(i,4);Y(q,q)=Y(q,q)+1/B1(i,3)+0.5*B1(i,4);else %含有变压器的支路p=B1(i,1);q=B1(i,2);Y(p,q)=Y(p,q)-1/(B1(i,3)*B1(i,5));Y(q,p)=Y(p,q);Y(p,p)=Y(p,p)+1/B1(i,3);Y(q,q)=Y(q,q)+1/(B1(i,5)^2*B1(i,3));endendY;%将OrgS、DetaS初始化OrgS=zeros(2*n-2,1);DetaS=zeros(2*n-2,1);%二:创建OrgS,用于存储初始功率参数h=0;j=0;for i=1:n %对PQ节点的处理if i~=isb&B2(i,6)==2h=h+1;for j=1:nOrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag (Y(i,j))*Imag(B2(j,3)))+imag(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i ,j))*real(B2(j,3)));OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y( i,j))*imag(B2(j,3)))-real(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))* real(B2(j,3)));endendend%三:对PV节点的处理,注意这时不可再将h初始化为0for i=1:nif i~=isb&B2(i,6)==3h=h+1;for j=1:nOrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag (Y(i,j))*imag(B2(j,3)))+imag(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i ,j))*real(B2(j,3)));OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y( i,j))*imag(B2(j,3)))-real(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))* real(B2(j,3)));endendendOrgS;%四:创建PVU 用于存储PV节点的初始电压PVU=zeros(n-h-1,1);t=0;for i=1:nif B2(i,6)==3t=t+1;PVU(t,1)=B2(i,3);endendPVU;%五:创建DetaS,用于存储有功功率、无功功率和电压幅值的不平衡量h=0;for i=1:n %对PQ节点的处理if i~=isb&B2(i,6)==2h=h+1;DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);DetaS(2*h,1)=imag(B2(i,2))-OrgS(2*h,1);endendt=0;for i=1:n%六:对PV节点的处理,注意这时不可再将h初始化为0if i~=isb&B2(i,6)==3h=h+1;t=t+1;DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);DetaS(2*h,1)=real(PVU(t,1))^2+imag(PVU(t,1))^2-real(B2(i,3))^2-imag(B2(i,3))^2;endendDetaS;%七:创建I,用于存储节点电流参数i=zeros(n-1,1);h=0;for i=1:nif i~=isbh=h+1;I(h,1)=(OrgS(2*h-1,1)-OrgS(2*h,1)*sqrt(-1))/conj(B2(i,3));endendI;%八:创建Jacbi(雅可比矩阵)Jacbi=zeros(2*n-2);h=0;k=0;for i=1:n %对PQ节点的处理if B2(i,6)==2h=h+1;for j=1:nif j~=isbk=k+1;if i==j %对角元素的处理Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3))+i mag(I(h,1));Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3))+rea l(I(h,1));Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k)+2*real(I(h,1));Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1)-2*imag(I(h,1));else %非对角元素的处理Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3)); Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3));Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k);Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1);endif k==(n-1) %将用于循环的指针置于初始值,以确保雅可比矩阵换行k=0;endendendendendk=0;for i=1:n %对PV节点的处理if B2(i,6)==3h=h+1;for j=1:nif j~=isbk=k+1;if i==j %对角元素的处理Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3))+i mag(I(h,1));Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3))+rea l(I(h,1));Jacbi(2*h,2*k-1)=2*imag(B2(i,3));Jacbi(2*h,2*k)=2*real(B2(i,3));else %非对角元素的处理Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3)); Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3));Jacbi(2*h,2*k-1)=0;Jacbi(2*h,2*k)=0;endif k==(n-1) %将用于循环的指针置于初始值,以确保雅可比矩阵换行k=0;endendendendendJacbi;%九:求解修正方程,获取节点电压的不平衡量DetaU=zeros(2*n-2,1);DetaU=inv(Jacbi)*DetaS;DetaU;%修正节点电压j=0;for i=1:n %对PQ节点处理if B2(i,6)==2j=j+1;B2(i,3)=B2(i,3)+DetaU(2*j,1)+DetaU(2*j-1,1)*sqrt(-1);endendfor i=1:n %对PV节点的处理if B2(i,6)==3j=j+1;B2(i,3)=B2(i,3)+DetaU(2*j,1)+DetaU(2*j-1,1)*sqrt(-1);endendB2;%十:开始循环********************************************************************** while abs(max(DetaU))>prOrgS=zeros(2*n-2,1); %!!!初始功率参数在迭代过程中是不累加的,所以在这里必须将其初始化为零矩阵h=0;j=0;for i=1:nif i~=isb&B2(i,6)==2h=h+1;for j=1:nOrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag (Y(i,j))*imag(B2(j,3)))+imag(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i ,j))*real(B2(j,3)));OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y( i,j))*imag(B2(j,3)))-real(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))* real(B2(j,3)));endendendfor i=1:nif i~=isb&B2(i,6)==3h=h+1;for j=1:nOrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag (Y(i,j))*imag(B2(j,3)))+imag(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i ,j))*real(B2(j,3)));OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real(B2(j,3))-imag(Y( i,j))*imag(B2(j,3)))-real(B2(i,3))*(real(Y(i,j))*imag(B2(j,3))+imag(Y(i,j))* real(B2(j,3)));endendendOrgS;%创建DetaSh=0;for i=1:nif i~=isb&B2(i,6)==2h=h+1;DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);DetaS(2*h,1)=imag(B2(i,2))-OrgS(2*h,1);endendt=0;for i=1:nif i~=isb&B2(i,6)==3h=h+1;t=t+1;DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);DetaS(2*h,1)=real(PVU(t,1))^2+imag(PVU(t,1))^2-real(B2(i,3))^2-imag(B 2(i,3))^2;endendDetaS;%创建Ii=zeros(n-1,1);h=0;for i=1:nif i~=isbh=h+1;I(h,1)=(OrgS(2*h-1,1)-OrgS(2*h,1)*sqrt(-1))/conj(B2(i,3));endendI;%创建JacbiJacbi=zeros(2*n-2);h=0;k=0;for i=1:nif B2(i,6)==2h=h+1;for j=1:nif j~=isbk=k+1;if i==jJacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3))+i mag(I(h,1));Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3))+rea l(I(h,1));Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k)+2*real(I(h,1));Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1)-2*imag(I(h,1));elseJacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3)); Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3));Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k);Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1);endif k==(n-1)k=0;endendendendendk=0;for i=1:nif B2(i,6)==3h=h+1;for j=1:nif j~=isbk=k+1;if i==jJacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3))+i mag(I(h,1));Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3))+rea l(I(h,1));Jacbi(2*h,2*k-1)=2*imag(B2(i,3));Jacbi(2*h,2*k)=2*real(B2(i,3));elseJacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+real(Y(i,j))*imag(B2(i,3)); Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(Y(i,j))*imag(B2(i,3));Jacbi(2*h,2*k-1)=0;Jacbi(2*h,2*k)=0;endif k==(n-1)k=0;endendendendendJacbi;DetaU=zeros(2*n-2,1);DetaU=inv(Jacbi)*DetaS;DetaU;%修正节点电压j=0;for i=1:nif B2(i,6)==2j=j+1;B2(i,3)=B2(i,3)+DetaU(2*j,1)+DetaU(2*j-1,1)*sqrt(-1);endendfor i=1:nif B2(i,6)==3j=j+1;B2(i,3)=B2(i,3)+DetaU(2*j,1)+DetaU(2*j-1,1)*sqrt(-1);endendB2;Times=Times+1; %迭代次数加1endTimes;五、实验流程六、实验结果参数输入:运行结果:七、实验体会通过这次实验,让我第一次接触到了MATLAB,并深切体会到了它的强大之处;潮流计算的计算机算法的实现不仅巩固了我的学过的知识,还让我学到一些MATLAB的编程,虽然在实验的过程中出现了很多的错误,但在老师的细心指导下,问题都解决啦;计算机为我们省去了大量的人工计算,希望在以后的学习中能接触到更多的软件,学习到更多的知识。