完整word版潮流计算方法_第1页
完整word版潮流计算方法_第2页
完整word版潮流计算方法_第3页
完整word版潮流计算方法_第4页
完整word版潮流计算方法_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、由于本人参加我们电气学院的电气小课堂,主讲的是计算机算法计算潮流这章,所以潜心玩了一个星期,下面整理给大家分享下。 本人一个星期以来的汗水,弄清楚了计算机算法计算潮流的基础,如果有什么不懂的可以发信息到邮箱: 接下来开始弄潮流的优化问题,吼吼! 电力系统的潮流计算的计算机算法:以MATLAB为环境 这里理论不做过多介绍,推荐一本专门讲解电力系统分析的计算机算法的书籍-电力系统分析的计算机算法邱晓燕、刘天琪编著。 这里以这本书上的例题【2-1】说明计算机算法计算的过程,分别是牛顿拉弗逊算法的直角坐标和极坐标算法、P-Q分解算法。主要是简单的网络的潮流计算,其实简单

2、网络计算和大型网络计算并无本质区别,代码里面只需要修改循环迭代的N即可,这里旨在弄清计算机算法计算潮流的本质。代码均有详细的注释. 其中简单的高斯赛德尔迭代法是以我们的电稳教材为例子讲,其实都差不多,只要把导纳矩阵Y给你,节点的编号和分类给你,就可以进行计算了,不必要找到原始的电气接线图。 理论不多说,直接上代码: 简单的高斯赛德尔迭代法: 这里我们只是迭代算出各个节点的电压值,支路功率并没有计算。 S_ij=P_ij+Q_ij=V_i(V_i* - V_j*) * y_ij* 可以计算出各个线路的功率 在显示最终电压幅角的时候注意在MATLAB里面默认的是弧度的形式,需要转化成角度显示。 c

3、lear;clc; %电稳书Page 102 例题3-5 %计算网络的潮流分布 - 高斯-赛德尔算法 %其中节点1是平衡节点 %节点2、3是PV节点,其余是PQ节点 % 如果节点有对地导纳支路 %需将对地导纳支路算到自导纳里面 %-% %输入原始数据,每条支路的导纳数值,包括自导和互导纳; y=zeros(5,5); y(1,2)=1/(0.0194+0.0592*1i); y(1,5)=1/(0.054+0.223*1i); y(2,3)=1/(0.04699+0.198*1i); y(2,4)=1/(0.0581+0.1763*1i); 由于电路网络的互易性,导纳矩阵为对称的矩阵%for

4、i=1:1:5 for j=1:1:5 y(j,i)=y(i,j); end end %节点导纳矩阵的形成 Y=zeros(5,5); %求互导纳 for i=1:1:5 for j=1:1:5 if i=j Y(i,j)=-y(i,j); end end end %求自导纳 for i=1:1:5 %这句话是说将y矩阵的第i行的所有元素相加,得到自导纳的值 Y(i,i)=sum(y(i,:); end %上面求得的自导纳不包含该节点的对地导纳数值,需要加上 Y(2,2)=Y(2,2)+0.067*1i; Y(3,3)=Y(3,3)+0.022*1i; Y(4,4)=Y(4,4)+0.0187

5、*1i; Y(5,5)=Y(5,5)+0.0246*1i; %导纳矩阵的实部和虚部 G = real(Y); B = imag(Y); Qc2=0;Qc3=0; %原始节点功率 %这里电源功率为正,负荷功率为负 S(1)=0; S(2)=-0.217-0.121*1i+Qc2*1i; S(3)=-0.749-0.19*1i+Qc3*1i; S(4)=-0.658+0.039*1i; S(5)=-0.076-0.016*1i; %节点功率的P Q P = real(S); Q = imag(S);%下面是两个PV节点的无功初始值 Q(2) = 0; Q(3) = 0; U=ones(5,1);

6、%1列5行的1矩阵 %节点电压初始值 U(1)=1.06;U(2)=1.045;U(3)=1.01; U_reg=U; Sum_YU0=0;%中间变量 Sum_YU1=0;%中间变量 for cont=1:1:6 %这里的cont是迭代次数 for i=2:1:5 for j=1:1:i if i=j Sum_YU0 = Sum_YU0 + Y(i,j)*U_reg(j); end end for j=i+1:1:5 Sum_YU1 = Sum_YU1 + Y(i,j)*U(j); end U(i)=( (P(i)-Q(i)*1i ) / conj(U(i) - Sum_YU0 - Sum_Y

7、U1 ) / Y(i,i); U_reg(i)=U(i); %PV节点计算 %下面是把求出的U2、U3只保留其相位,幅值不变 if i=2 angle_U2 = angle(U(2); U(2)=1.045*cos(angle_U2)+1.045*sin(angle_U2)*1i; Q(2)=imag( U(2)*( conj(Sum_YU0) + conj(Sum_YU1) + conj(Y(2,2)*U(2) ) ); end i=3 if angle_U3 = angle(U(3); U(3)=1.01*cos(angle_U3)+1.01*sin(angle_U3)*1i;+ conj

8、(Sum_YU1) + Q(3)=imag( U(3)*( conj(Sum_YU0) conj(Y(3,3)*U(3) ) ); end 下面做越界检查% %if Q(4)Q_Max % Q(4) = Q_Max; %end %if Q(4) 1e-6), cont=cont+1; %for cont=1:1:3 %下面开始计算delta_P/delta_Q/delta_U i=2:1:5for for j=1:1:5 Sum_GB1=Sum_GB1 + ( G(i,j)*e(j) - B(i,j)*f(j) ); Sum_GB2=Sum_GB2 + ( G(i,j)*f(j) + B(i,

9、j)*e(j) ); end delta_P(i)=P(i)-e(i)*Sum_GB1-f(i)*Sum_GB2; if i=2 & i=3 %不为节点2,3则计算无功 delta_Q(i)=Q(i)-f(i)*Sum_GB1+e(i)*Sum_GB2; end if i=2 | i=3 %这里计算delta_U的值,始终为零 delta_U(i)=U(i)2-( e(i)2 + f(i)2 ); end Sum_GB1=0;Sum_GB2=0; end %_% %下面计算雅克比矩阵 J=zeros(8,8); for ii=2:1:5 i=ii-1; for j=1:1:5 Sum_GB1=

10、Sum_GB1 + ( G(ii,j)*e(j) - B(ii,j)*f(j) ); Sum_GB2=Sum_GB2 + ( G(ii,j)*f(j) + B(ii,j)*e(j) ); end for jj=2:1:5 j=jj-1; if ii=2 & ii=3 %PQ节点 if ii=jj J(2*i-1,2*i-1)=-Sum_GB1-G(ii,ii)*e(ii)-B(ii,ii)*f(ii); J(2*i-1,2*i)=-Sum_GB2+B(ii,ii)*e(ii)-G(ii,ii)*f(ii); J(2*i,2*i-1)=Sum_GB2+B(ii,ii)*e(ii)-G(ii,ii

11、)*f(ii); J(2*i,2*i)=-Sum_GB1+G(ii,ii)*e(ii)+B(ii,ii)*f(ii); else J(2*i-1,2*j-1)=-(G(ii,jj)*e(ii)+B(ii,jj)*f(ii); J(2*i-1,2*j)=B(ii,jj)*e(ii)-G(ii,jj)*f(ii); J(2*i,2*j-1)=B(ii,jj)*e(ii)-G(ii,jj)*f(ii); J(2*i,2*j)=(G(ii,jj)*e(ii)+B(ii,jj)*f(ii); end else %PV节点 if ii=jj J(2*i-1,2*i-1)=-Sum_GB1-G(ii,ii)

12、*e(ii)-B(ii,ii)*f(ii); J(2*i-1,2*i)=-Sum_GB2+B(ii,ii)*e(ii)-G(ii,ii)*f(ii); J(2*i,2*i-1)=-2*e(ii); J(2*i,2*i)=-2*f(ii); else J(2*i-1,2*j-1)=-(G(ii,jj)*e(ii)+B(ii,jj)*f(ii); J(2*i-1,2*j)=B(ii,jj)*e(ii)-G(ii,jj)*f(ii); J(2*i,2*j-1)=0; J(2*i,2*j)=0; end end end Sum_GB1=0;Sum_GB2=0; end %在求解修正方程之前建议把del

13、ta_P和delta_Q,delta_U全部放在一个矩阵 delta_PQV=delta_P(2);delta_U(2);delta_P(3);delta_U(3);delta_P(4);delta_Q(4);delta_P(5);delta_Q(5); %下面求解修正方程;注意矩阵运算时候的左除和右除的区别 delta_ef=-Jdelta_PQV; %下面修正各个节点的电压 for i=2:1:5 e(i)=e(i)+delta_ef(2*(i-1)-1); f(i)=f(i)+delta_ef(2*(i-1); end %到这里第一轮迭代完成 end %电压幅值和相角 U=e+f*1i;

14、 angle_U=angle(U)*180/pi; %节点注入无功,流入为正,流出为负 Sum_YU=0; for i=2:1:3 for j=1:1:5 Sum_YU = Sum_YU + Y(i,j)*U(j); end Q(i)=imag( U(i)*conj( Sum_YU ) ); Sum_YU=0; end Qc2=Q(2)+0.121-1.0452 * 0.067; Qc3=Q(3)+0.19-1.012 * 0.022; U=abs(U); disp(Iteration times : num2str(cont); %显示最终的迭代次数 牛顿算法求解潮流 (极坐标): clea

15、r;clc; %牛顿算法求解潮流 (极坐标) %计算网络的潮流分布 %其中节点5是平衡节点 %节点1、2、3是PQ节点,节点4是PV节点 % 如果节点有对地导纳支路 %需将对地导纳支路算到自导纳里面 %-% %输入原始数据,每条支路的导纳数值,包括自导和互导纳; Y=0.8381-3.7899*1i,-0.4044+1.6203*1i,0,0,-0.4337+2.2586*1i;. -0.4044+1.6203*1i,0.7769-3.3970*1i,-0.3726+1.8557*1i,0,0;. 0,-0.3726+1.8557*1i,1.1428-7.0210*1i,-0.5224+4.1

16、792*1i,-0.2739+1.2670*1i;. 0,0,-0.5224+4.1792*1i,0.5499-4.3591*1i,0;. -0.4337+2.2586*1i,0,-0.2739+1.2670*1i,0,0.7077-3.4437*1i; %导纳矩阵的实部和虚部 G = real(Y); B = imag(Y); %给点电压初始值 U = 1,1,1,1,1.05; angle_U=0,0,0,0,0; %for i=1:1:5 % U(i)=U_abs(i)*cos(angle_U(i)+U_abs(i)*sin(angle_U(i)*1i; %end %原始节点功率 %这里

17、电源功率为正,负荷功率为负 %下面给点PQ PV节点功率值 S=-0.22-0.14*1i,-0.18-0.09*1i,-0.27-0.13*1i,0.35,0; %节点功率的P Q P = real(S); Q = imag(S); %下面是PV节点的无功初始值 Q(4) = 0; delta_P=zeros(1,5); delta_Q=zeros(1,5); Tlta_angleU=zeros(1,4); Tlta_absU=zeros(1,4); delta_PQ=ones(8,1); Sum_GB1=0;Sum_GB2=0; cont=0; %最外层循环,cont代表迭代的次数,这里可

18、以用约束条件来代替 %for cont=1:1:4 while max(delta_PQ)1e-6, %下面计算delta_P/delta_Q/delta_U cont=cont+1; for i=1:1:4 for j=1:1:5 Sum_GB1=Sum_GB1 + U(j)*( G(i,j)*cos(angle_U(i)-angle_U(j) + B(i,j)*sin(angle_U(i)-angle_U(j) ); Sum_GB2=Sum_GB2 + U(j)*( G(i,j)*sin(angle_U(i)-angle_U(j) - B(i,j)*cos(angle_U(i)-angle

19、_U(j) ); end delta_P(i)=P(i)-U(i)*Sum_GB1; if i=4 %不为节点四则计算无功 delta_Q(i)=Q(i)-U(i)*Sum_GB2; end Sum_GB1=0;Sum_GB2=0; end %_% %下面计算雅克比矩阵 J=zeros(7,7); for ii=1:1:4 for jj=1:1:4 if ii = 4 %PQ节点 if ii=jj J(2*ii-1,2*ii-1)=U(ii)2*B(ii,ii)+Q(ii); J(2*ii-1,2*ii)=-U(ii)2*G(ii,ii)-P(ii); J(2*ii,2*ii-1)=U(ii)

20、2*G(ii,ii)-P(ii); J(2*ii,2*ii)=U(ii)2*B(ii,ii)-Q(ii); else J(2*ii-1,2*jj-1)=-U(ii)*U(jj)*( G(ii,jj)*sin(angle_U(ii)-angle_U(jj) - B(ii,jj)*cos(angle_U(ii)-angle_U(jj) ); J(2*ii-1,2*jj)=-U(ii)*U(jj)*( G(ii,jj)*cos(angle_U(ii)-angle_U(jj) + B(ii,jj)*sin(angle_U(ii)-angle_U(jj) ); J(2*ii,2*jj-1)=U(ii)*

21、U(jj)*( G(ii,jj)*cos(angle_U(ii)-angle_U(jj) + B(ii,jj)*sin(angle_U(ii)-angle_U(jj) ); J(2*ii,2*jj)=-U(ii)*U(jj)*( G(ii,jj)*sin(angle_U(ii)-angle_U(jj) - B(ii,jj)*cos(angle_U(ii)-angle_U(jj) ); end else %PV节点 if ii=jj J(2*ii-1,2*ii-1)=U(ii)2*B(ii,ii)+Q(ii); J(2*ii-1,2*ii)=-U(ii)2*G(ii,ii)-P(ii); els

22、e J(2*ii-1,2*jj-1)=-U(ii)*U(jj)*( G(ii,jj)*sin(angle_U(ii)-angle_U(jj) - B(ii,jj)*cos(angle_U(ii)-angle_U(jj) ); J(2*ii-1,2*jj)=-U(ii)*U(jj)*( G(ii,jj)*cos(angle_U(ii)-angle_U(jj) + B(ii,jj)*sin(angle_U(ii)-angle_U(jj) ); end end end end %在求解修正方程之前建议把delta_ef和delta_ef全部放在一个矩阵 delta_PQ=delta_P(1);del

23、ta_Q(1);delta_P(2);delta_Q(2);delta_P(3);delta_Q(3);delta_P(4); %下面求解修正方程;注意矩阵运算时候的左除和右除的区别 J=J(1:7,1:7); delta_ef=-Jdelta_PQ; %下面修正各个节点的电压 for i=1:1:4 if i=4 U(i)=U(i)+delta_ef(2*i)*U(i); end angle_U(i)=angle_U(i)+delta_ef(2*i-1); end %到这里第一轮迭代完成 end %下面显示出满足条件后的迭代的次数 disp(Iteration times : num2str

24、(cont); %下面计算平衡节点5的功率PQ for j=1:1:5 Sum_GB1=Sum_GB1 + U(j)*( G(5,j)*cos(angle_U(5)-angle_U(j) + B(5,j)*sin(angle_U(5)-angle_U(j) ); Sum_GB2=Sum_GB2 + U(j)*( G(5,j)*sin(angle_U(5)-angle_U(j) - B(5,j)*cos(angle_U(5)-angle_U(j) ); end P(5)=U(5)*Sum_GB1; Q(5)=U(5)*Sum_GB2; %下面将相角用角度表示 for i=1:1:5 angle_

25、U(i)=angle_U(i)*180/pi; End 计算计算法P-Q算法计算潮流: 这个算法是由牛顿算法的极坐标形式简化而来。 clear;clc; %牛顿算法求解潮流 %计算网络的潮流分布 %其中节点5是平衡节点 %节点1、2、3是PQ节点,节点4是PV节点 % 如果节点有对地导纳支路 %需将对地导纳支路算到自导纳里面 %-% %输入原始数据,每条支路的导纳数值,包括自导和互导纳; Y=0.8381-3.7899*1i,-0.4044+1.6203*1i,0,0,-0.4337+2.2586*1i;. -0.4044+1.6203*1i,0.7769-3.3970*1i,-0.3726+

26、1.8557*1i,0,0;. 0,-0.3726+1.8557*1i,1.1428-7.0210*1i,-0.5224+4.1792*1i,-0.2739+1.2670*1i;. 0,0,-0.5224+4.1792*1i,0.5499-4.3591*1i,0;. -0.4337+2.2586*1i,0,-0.2739+1.2670*1i,0,0.7077-3.4437*1i; %导纳矩阵的实部和虚部 G = real(Y); B = imag(Y); %给点电压初始值 U = 1,1,1,1,1.05; angle_U=0,0,0,0,0; %原始节点功率 %这里电源功率为正,负荷功率为负

27、 %下面给点PQ PV节点功率值 S=-0.22-0.14*1i,-0.18-0.09*1i,-0.27-0.13*1i,0.35,0; %节点功率的P Q P = real(S); Q = imag(S); %下面是PV节点的无功初始值 Q(4) = 0; %下面计算出无功和有功迭代的系数矩阵 B_P=B(1:4,1:4); %有功迭代系数矩阵 n-1 即除开平衡节点以外的所有节点 B_Q=B(1:3,1:3); %无功迭代系数矩阵 m个 即PQ节点的个数 %下面是相关变量的定义 delta_P=ones(1,5); delta_Q=ones(1,5); delta_PQ=ones(8,1)

28、; delta_angle=ones(4,1); Sum_GB1=0;Sum_GB2=0; cont=0; %最外层循环,cont代表迭代的次数,这里可以用约束条件来代替 %for cont=1:1:5 while max(delta_angle) 1e-6, %下面计算delta_P/delta_Q/delta_U cont=cont+1; for i=1:1:4 for j=1:1:5 Sum_GB1=Sum_GB1 + U(j)*( G(i,j)*cos(angle_U(i)-angle_U(j) + B(i,j)*sin(angle_U(i)-angle_U(j) ); Sum_GB2

29、=Sum_GB2 + U(j)*( G(i,j)*sin(angle_U(i)-angle_U(j) - B(i,j)*cos(angle_U(i)-angle_U(j) ); end delta_P(i)=P(i)-U(i)*Sum_GB1; if i=4 %不为PV节点四则计算无功 delta_Q(i)=Q(i)-U(i)*Sum_GB2; end Sum_GB1=0;Sum_GB2=0; end %_% %下面计算delta_P(i)/U(i) delta_Q(i)/U(i) delta_QV=zeros(3,1); delta_PV=zeros(4,1); for i=1:1:4 if i=4 delta_QV(i)=delta_Q(i)/U(i); end delta_PV(i)=delta_P(i)/U(i); end %_% %下面计算delta_angle和delta_U Tlta_U=zeros(3,1); %这里只要PQ节点的 %下面求解修正方程;注意矩阵运算时候的左除和右除的区别 delta_U=-B_Qdelta_QV; delta_angleU=-B_Pdelta_PV; for i=1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论