什么叫电力系统潮流?为什么要进行潮流计算?
电力系统潮流计算是研究电力系统稳态运行情况的一种基本电气计算。它的任务是根据给定的运行条件和网路结构确定整个系统的运行状态,如各母线上的电压(幅值及相角)、网络中的功率分布以及功率损耗等。电力系统潮流计算的结果是电力系统稳定计算和故障分析的基础。
潮流计算的意义: (1)在电网规划阶段,通过潮流计算,合理规划电源容量及接入点,合理规划网架,选择无功补偿方案,满足规划水平的大、小方式下潮流交换控制、调峰、调相、调压的要求。 (2)在编制年运行方式时,在预计负荷增长及新设备投运基础上,选择典型方式进行潮流计算,发现电网中薄弱环节,供调度员日常调度控制参考,并对规划、基建部门提出改进网架结构,加快基建进度的建议。 (3)正常检修及特殊运行方式下的潮流计算,用于日运行方式的编制,指导发电厂开机方式,有功、无功调整方案及负荷调整方案,满足线路、变压器热稳定要求及电压质量要求。 (4)预想事故、设备退出运行对静态安全的影响分析及作出预想的运行方式调整方案。电力系统分析,利用 P—Q 分解法和牛顿—拉夫逊法进行潮流计算,二者的收敛速度是( B ) 。 A
收敛速度是指迭代次数,牛拉法的迭代次数比PQ法少,所以收敛速度快
电力系统潮流计算中变量和节点是如何分类的?
根据给定变量的不同,可以有以下三种类型的节点:
(1) PQ节点:给定Pi及Qi,求Ui及δi ;
(2) PV节点:给定Pi和Ui,求δi及Qi ;
(3) 平衡节点:给定Ui和δi ,求Pi和Qi ;
P有功功率
Q无功功率
U节点电压
δ功率因数角
潮流计算的目的是什么?常用的计算方法有几种?快速分解法的特点及适用条件是什么?
潮流计算有以下几个目的: (1)在电网规划阶段,通过潮流计算,合理规划电源容量及接入点,合理规划网架,选择无功补偿方案,满足规划水平年的大、小方式下潮流交换控制、调峰、调相、调压的要求。 (2)在编制年运行方式时,在预计负荷增长及新设备投运基础上,选择典型方式进行潮流计算,发现电网中薄弱环节,供调度员日常调度控制参考,并对规划、基建部门提出改进网架结构,加快基建进度的建议。 (3)正常检修及特殊运行方式下的潮流计算,用于日运行方式的编制,指导发电厂开机方式,有功、无功调整方案及负荷调整方案,满足线路、变压器热稳定要求及电压质量要求。 (4)预想事故、设备退出运行对静态安全的影响分析及作出预想的运行方式调整方案。 常用的潮流计算方法有:牛顿-拉夫逊法及快速分解法。 快速分解法有两个主要特点: (1)降阶 在潮流计算的修正方程中利用了有功功率主要与节点电压相位有关,无功功率主要与节点电压幅值有关的特点,实现P-Q分解,使系数矩阵由原来的2N×2N 阶降为N×N阶,N为系统的节点数(不包括缓冲节点)。 (2)因子表固定化 利用了线路两端电压相位差不大的假定,使修正方程系数矩阵元素变为常数,并且就是节点导纳的虚部。 由于以上两个特点,使快速分解法每一次迭代的计算量比牛顿法大大减少。快速分解法只具有一次收敛性,因此要求的迭代次数比牛顿法多,但总体上快速分解法的计算速度仍比牛顿法快。 快速分解法只适用于高压网的潮流计算,对中、低压网,因线路电阻与电抗的比值大,线路两端电压相位差不大的假定已不成立,用快速分解法计算,会出现不收敛问题
电力系统潮流计算的意义
电力系统潮流计算是研究电力系统稳态运行情况的一种基本电气计算。它的任务是根据给定的运行条件和网路结构确定整个系统的运行状态,如各母线上的电压(幅值及相角)、网络中的功率分布以及功率损耗等。电力系统潮流计算的结果是电力系统稳定计算和故障分析的基础。
潮流计算中有哪些节点类型,并说明各节点类型的具体含
一般分为三类:
PQ节点:节点注入的有功功率无功功率是已知的PV节点:节点注入的有功功率已知,节点电压幅值恒定,一般由武功储备比较充足的电厂和电站充当;slack节点:节点的电压为1*exp(0°),其注入的有功无功功率可以任意调节,一般由具有调峰能力的水电厂充当。更复杂的潮流计算,还有其他节点,或者是这三种节点的组合,在一定条件下可以相互转换。具体的内容可以参考相应的文献,或者BPA潮流计算手册潮流计算数据
有以下几种方法获取:
1、google搜索ieee feeders,第一个就是IEEE标准测试系统的数据,下图是链接的截图:
2、百度搜索IEEE标准测试系统数据,找到含3-300节点的那个下载。
3、matpower工具箱,包含了IEEE4-30节点和1354-13659节点的数据:
4、一些英文论文也给出了一些非IEEE系统的数据,例如:
Saha T. Test System Report[J]. Power and Energy Research Group, 2011.
Postigo Marcos F E, Mateo Domingo C, Gómez San Román T, et al. A Review of Power Distribution Test Feeders in the United States and the Need for Synthetic Representative Networks[J]. Energies, 2017, 10(11): 1896.
5、以上数据需要的话留个邮箱。
求MATLAB简单潮流计算程序。。。。
function lianxuchaoliu
clear;clc;n=9;%节点数;nl=9;%支路数;isb=1;%平衡节点号;pr=0.00001;%误差精度;b1=[1 4 0.0576i 0 1.05 1; 4 5 0.017+0.092i 0.158i 1 0; 5 6 0.039+0.17i 0.358i 1 0; 3 6 0.0586i 0 1.05 1; 6 7 0.0119+0.1008i 0.209i 1 0; 7 8 0.0085+0.072i 0.149i 1 0; 8 2 0.0625i 0 1.05 1; 8 9 0.032+0.161i 0.306i 1 0; 9 4 0.01+0.085i 0.176i 1 0];%依次是支路首端;末端,支路阻抗;对地电纳;支路变比;折算到哪一侧标志(高压侧为1;低压侧为0);b2=[0 0 1.05 1.05 0 1; 1.63 0 1.05 1.05 0 3; 0.85 0 1.05 1.05 0 3; 0 0 1 0 0 2; 0 0.9+0.3i 1 0 0 2; 0 0 1 0 0 2; 0 1+0.35i 1 0 0 2; 0 0 1 0 0 2; 0 1.25+0.5i 1 0 0 2];%依次是节点的发电机功率;负荷功率;节点电压初值;PV节点电压V给定值;节点无功补偿设备容量;节点分类标号(平衡1;PQ2;PV3);Y=zeros(n);%求导纳阵;for i=1:nlif b1(i,6)==0 p=b1(i,1);q=b1(i,2); else p=b1(i,2);q=b1(i,1); end Y(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('系统的导纳阵为:');%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);w=zeros(2*n,1);Jac=zeros(2*n);t=0;while t==0for i=1:n if b2(i,6)~=isb C=0;D=0; for j=1:n C=C+G(i,j)*e(j)-B(i,j)*f(j); D=D+G(i,j)*f(j)+B(i,j)*e(j); end if b2(i,6)==2%P,Q节点; w(2*i)=P(i)-e(i)*C-f(i)*D; w(2*i-1)=Q(i)-f(i)*C+e(i)*D; else if b2(i,6)==3%P,V节点; w(2*i)=P(i)-e(i)*C-f(i)*D; w(2*i-1)=v(i)^2-(e(i)^2+f(i)^2); end end else w(2*i-1)=0; w(2*i)=0; end end%disp(w);w1=w(3:2*n);for i=1:nfor j=1:n if b2(i,6)~=isb if b2(i,6)==2%P,Q节点; if j~=i Jac(2*i,2*j-1)=-1*(G(i,j)*e(i)+B(i,j)*f(i)); Jac(2*i-1,2*j)=(G(i,j)*e(i)+B(i,j)*f(i)); Jac(2*i,2*j)=B(i,j)*e(i)-G(i,j)*f(i); Jac(2*i-1,2*j-1)=B(i,j)*e(i)-G(i,j)*f(i); else if j==i m=0;h=0; for r=1:n m=m+G(i,r)*e(r)-B(i,r)*f(r); h=h+G(i,r)*f(r)+B(i,r)*e(r); end Jac(2*i,2*j-1)=-1*m-G(i,i)*e(i)-B(i,i)*f(i); Jac(2*i-1,2*j)=-1*m+G(i,i)*e(i)+B(i,i)*f(i); Jac(2*i,2*j)=-1*h+B(i,i)*e(i)-G(i,i)*f(i); Jac(2*i-1,2*j-1)=h+B(i,i)*e(i)-G(i,i)*f(i); end end else if b2(i,6)==3%P,V节点; if j~=i Jac(2*i,2*j-1)=-1*(G(i,j)*e(i)+B(i,j)*f(i)); Jac(2*i-1,2*j)=0; Jac(2*i,2*j)=B(i,j)*e(i)-G(i,j)*f(i); Jac(2*i-1,2*j-1)=0; else if j==i m=0;h=0; for r=1:n m=m+G(i,r)*e(r)-B(i,r)*f(r); h=h+G(i,r)*f(r)+B(i,r)*e(r); end Jac(2*i,2*j-1)=-1*m-G(i,i)*e(i)-B(i,i)*f(i); Jac(2*i-1,2*j)=-2*f(i); Jac(2*i,2*j)=-1*h+B(i,i)*e(i)-G(i,i)*f(i); Jac(2*i-1,2*j-1)=-2*e(i); end end end end else Jac(2*i-1,2*j-1)=0; Jac(2*i,2*j)=0; Jac(2*i-1,2*j)=0; Jac(2*i,2*j-1)=0; end end end%disp(Jac);Jac1=Jac(3:2*n,3:2*n);for k=1:2*n-2m=0; for i=k+1:2*n-2 m=Jac1(i,k)./Jac1(k,k); w1(i)=w1(i)-m*w1(k); for j=k+1:2*n-2 Jac1(i,j)=Jac1(i,j)-m*Jac1(k,j); end end endE(2*n-2)=w1(2*n-2)./Jac1(2*n-2,2*n-2);for i=2*n-3:-1:1c=0; for k=i+1:2*n-2 c=c+Jac1(i,k)*E(k); E(i)=(w1(i)-c)./Jac1(i,i); end end%disp(E);for i=1:n-1e(i+1)=e(i+1)-E(2*i-1); f(i+1)=f(i+1)-E(2*i); end%disp(e);%disp(f);for i=1:n-1b(2*i-1)=abs(E(2*i-1)); b(2*i)=abs(E(2*i)); endKB=max(b);%disp(KB);if KB<prt=1; elset=0; endend%disp(e);%disp(f);for i=1:nfz(i)=sqrt(e(i)^2+f(i)^2); enddisp(fz);JJ1=zeros(2*n-1,2*n-1);Jac1=zeros(2*n-2,2*n-2);ttt=0;ccc=1;%迭代次数;L=0.05;T=0;%L是步长,T是参数;while ttt==0%确定扩展矩阵for i=1:n-1if b2(i+1,6)==3 JJ1(2*i,2*n-1)=1.5*1.05; JJ1(2*i-1,2*n-1)=0; else if b2(i+1,6)==2 if b2(i+1,2)==0 JJ1(2*i-1,2*n-1)=0; JJ1(2*i,2*n-1)=0; else JJ1(2*i,2*n-1)=-real(b2(i+1,2)); JJ1(2*i-1,2*n-1)=-imag(b2(i+1,2)); end end end endfor i=1:nfor j=1:n if b2(i,6)~=isb if b2(i,6)==2% P,Q节点; if j~=i Jac(2*i,2*j-1)=-1*(G(i,j)*e(i)+B(i,j)*f(i)); Jac(2*i-1,2*j)=(G(i,j)*e(i)+B(i,j)*f(i)); Jac(2*i,2*j)=B(i,j)*e(i)-G(i,j)*f(i); Jac(2*i-1,2*j-1)=B(i,j)*e(i)-G(i,j)*f(i); else if j==i m=0;h=0; for r=1:n m=m+G(i,r)*e(r)-B(i,r)*f(r); h=h+G(i,r)*f(r)+B(i,r)*e(r); end Jac(2*i,2*j-1)=-1*m-G(i,i)*e(i)-B(i,i)*f(i); Jac(2*i-1,2*j)=-1*m+G(i,i)*e(i)+B(i,i)*f(i); Jac(2*i,2*j)=-1*h+B(i,i)*e(i)-G(i,i)*f(i); Jac(2*i-1,2*j-1)=h+B(i,i)*e(i)-G(i,i)*f(i); end end else if b2(i,6)==3%P,V节点, if j~=i Jac(2*i,2*j-1)=-1*(G(i,j)*e(i)+B(i,j)*f(i)); Jac(2*i-1,2*j)=0; Jac(2*i,2*j)=B(i,j)*e(i)-G(i,j)*f(i); Jac(2*i-1,2*j-1)=0; else if j==i m=0;h=0; for r=1:n m=m+G(i,r)*e(r)-B(i,r)*f(r); h=h+G(i,r)*f(r)+B(i,r)*e(r); end Jac(2*i,2*j-1)=-1*m-G(i,i)*e(i)-B(i,i)*f(i); Jac(2*i-1,2*j)=-2*f(i); Jac(2*i,2*j)=-1*h+B(i,i)*e(i)-G(i,i)*f(i); Jac(2*i-1,2*j-1)=-2*e(i); end end end end else Jac(2*i-1,2*j-1)=0; Jac(2*i,2*j)=0; Jac(2*i-1,2*j)=0; Jac(2*i,2*j-1)=0; end end endJac1=Jac(3:2*n,3:2*n);for i=1:2*n-2for j=1:2*n-2 JJ1(i,j)=Jac1(i,j); end endif ccc==1%以负荷为连续参数;for j=1:2*n-2 JJ1(2*n-1,j)=0; end JJ1(2*n-1,2*n-1)=1; w2=zeros(2*n-1,1); for i=1:2*n-2 w2(i,1)=0; end w2(2*n-1,1)=1; end%disp(JJ1);if ccc>1%以切向量中分量最大(绝对值最大)的状态变量选定为连续参数;for i=1:2*n-2 Jd(i)=abs(d(i)); end for i=1:2*n-3 if Jd(i)>=Jd(i+1) zd=Jd(i);ek=i; else if Jd(i)<=Jd(i+1) zd=Jd(i+1);ek=i+1; end end end for j=1:2*n-1 JJ1(2*n-1,j)=0; end JJ1(2*n-1,ek)=1; w2=zeros(2*n-1,1); for i=1:2*n-1 w2(i,1)=0; end if d(ek)>0 w2(ek,1)=1; else if d(ek)<0 w2(ek,1)=-1; end end endfor k=1:2*n-1m=0; for i=k+1:2*n-1 m=JJ1(i,k)./JJ1(k,k); w2(i)=w2(i)-m*w2(k); for j=k+1:2*n-1 JJ1(i,j)=JJ1(i,j)-m*JJ1(k,j); end end endd(2*n-1)=w2(2*n-1)./JJ1(2*n-1,2*n-1);for i=2*n-2:-1:1c=0; for k=i+1:2*n-1 c=c+JJ1(i,k)*d(k); d(i)=(w2(i)-c)./JJ1(i,i); end end%disp(d);for i=1:n-1e(i+1)=e(i+1)+L*d(2*i-1); f(i+1)=f(i+1)+L*d(2*i); endT=T+L*d(2*n-1);disp(d(2*n-1));%disp(e);%disp(f);%disp(T);%对预估的近似解进行校正;tt=0;while tt==0for i=1:n if b2(i,6)~=isb C=0;D=0; for j=1:n C=C+G(i,j)*e(j)-B(i,j)*f(j); D=D+G(i,j)*f(j)+B(i,j)*e(j); end if b2(i,6)==2% P,Q节点; if b2(i,2)~=0 wj(2*i)=P(i)-T*real(b2(i,2))-e(i)*C-f(i)*D; wj(2*i-1)=Q(i)-T*imag(b2(i,2))-f(i)*C+e(i)*D; else wj(2*i)=P(i)-e(i)*C-f(i)*D; wj(2*i-1)=Q(i)-f(i)*C+e(i)*D; end else if b2(i,6)==3%P,V节点; wj(2*i)=P(i)+T*1.5*1.05-e(i)*C-f(i)*D; wj(2*i-1)=0; end end else wj(2*i)=0; wj(2*i-1)=0; end end wj1=wj(3:2*n); for i=1:n for j=1:n if b2(i,6)~=isb if b2(i,6)==2%P,Q节点; if j~=i JJac(2*i,2*j-1)=-1*(G(i,j)*e(i)+B(i,j)*f(i)); JJac(2*i-1,2*j)=(G(i,j)*e(i)+B(i,j)*f(i)); JJac(2*i,2*j)=B(i,j)*e(i)-G(i,j)*f(i); JJac(2*i-1,2*j-1)=B(i,j)*e(i)-G(i,j)*f(i); else if j==i m=0;h=0; for r=1:n m=m+G(i,r)*e(r)-B(i,r)*f(r); h=h+G(i,r)*f(r)+B(i,r)*e(r); end JJac(2*i,2*j-1)=-1*m-G(i,i)*e(i)-B(i,i)*f(i); JJac(2*i-1,2*j)=-1*m+G(i,i)*e(i)+B(i,i)*f(i); JJac(2*i,2*j)=-1*h+B(i,i)*e(i)-G(i,i)*f(i); JJac(2*i-1,2*j-1)=h+B(i,i)*e(i)-G(i,i)*f(i); end end else if b2(i,6)==3%P,V节点; if j~=i JJac(2*i,2*j-1)=-1*(G(i,j)*e(i)+B(i,j)*f(i)); JJac(2*i-1,2*j)=0; JJac(2*i,2*j)=B(i,j)*e(i)-G(i,j)*f(i); JJac(2*i-1,2*j-1)=0; else if j==i m=0;h=0; for r=1:n m=m+G(i,r)*e(r)-B(i,r)*f(r); h=h+G(i,r)*f(r)+B(i,r)*e(r); end JJac(2*i,2*j-1)=-1*m-G(i,i)*e(i)-B(i,i)*f(i); JJac(2*i-1,2*j)=-2*f(i); JJac(2*i,2*j)=-1*h+B(i,i)*e(i)-G(i,i)*f(i); JJac(2*i-1,2*j-1)=-2*e(i); end end end end else JJac(2*i-1,2*j-1)=0; JJac(2*i,2*j)=0; JJac(2*i-1,2*j)=0; JJac(2*i,2*j-1)=0; end end end JJac1=JJac(3:2*n,3:2*n); for k=1:2*n-2 m=0; for i=k+1:2*n-2 m=JJac1(i,k)./JJac1(k,k); wj1(i)=wj1(i)-m*wj1(k); for j=k+1:2*n-2 JJac1(i,j)=JJac1(i,j)-m*JJac1(k,j); end end end E1(2*n-2)=wj1(2*n-2)./JJac1(2*n-2,2*n-2); for i=2*n-3:-1:1 c=0; for k=i+1:2*n-2 c=c+JJac1(i,k)*E1(k); E1(i)=(wj1(i)-c)./JJac1(i,i); end end %disp(E1); for i=1:n-1 e(i+1)=e(i+1)-E1(2*i-1); f(i+1)=f(i+1)-E1(2*i); end for i=1:n-1 bx(2*i-1)=abs(E1(2*i-1)); bx(2*i)=abs(E1(2*i)); end KB1=max(bx); if KB1<pr tt=1; else tt=0; end end%disp(e);%disp(f);if d(2*n-1)>0ttt=0;ccc=ccc+1; elsettt=1; endenddisp(T);disp(ccc);%disp(e);%disp(f);for i=1:nfz1(i)=sqrt(e(i)^2+f(i)^2); enddisp(fz1);