完整word版潮流计算方法.docx

上传人:b****5 文档编号:27676513 上传时间:2023-07-03 格式:DOCX 页数:24 大小:20.36KB
下载 相关 举报
完整word版潮流计算方法.docx_第1页
第1页 / 共24页
完整word版潮流计算方法.docx_第2页
第2页 / 共24页
完整word版潮流计算方法.docx_第3页
第3页 / 共24页
完整word版潮流计算方法.docx_第4页
第4页 / 共24页
完整word版潮流计算方法.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

完整word版潮流计算方法.docx

《完整word版潮流计算方法.docx》由会员分享,可在线阅读,更多相关《完整word版潮流计算方法.docx(24页珍藏版)》请在冰豆网上搜索。

完整word版潮流计算方法.docx

完整word版潮流计算方法

由于本人参加我们电气学院的电气小课堂,主讲的是计算机算法计算潮流这章,所以潜心玩了一个星期,下面整理给大家分享下。

本人一个星期以来的汗水,弄清楚了计算机算法计算潮流的基础,如果有什么不懂的可以发信息到邮箱:

zenghao616@

接下来开始弄潮流的优化问题,吼吼!

电力系统的潮流计算的计算机算法:

以MATLAB为环境

这里理论不做过多介绍,推荐一本专门讲解电力系统分析的计算机算法的书籍---------《电力系统分析的计算机算法》—邱晓燕、刘天琪编著。

这里以这本书上的例题【2-1】说明计算机算法计算的过程,分别是牛顿拉弗逊算法的直角坐标和极坐标算法、P-Q分解算法。

主要是简单的网络的潮流计算,其实简单网络计算和大型网络计算并无本质区别,代码里面只需要修改循环迭代的N即可,这里旨在弄清计算机算法计算潮流的本质。

代码均有详细的注释.

其中简单的高斯赛德尔迭代法是以我们的电稳教材为例子讲,其实都差不多,只要把导纳矩阵Y给你,节点的编号和分类给你,就可以进行计算了,不必要找到原始的电气接线图。

理论不多说,直接上代码:

简单的高斯赛德尔迭代法:

这里我们只是迭代算出各个节点的电压值,支路功率并没有计算。

S_ij=P_ij+Q_ij=V_i(V_i*-V_j*)*y_ij*

可以计算出各个线路的功率

在显示最终电压幅角的时候注意在MATLAB里面默认的是弧度的形式,需要转化成角度显示。

clear;clc;

%电稳书Page102例题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);

%由于电路网络的互易性,导纳矩阵为对称的矩阵

fori=1:

1:

5

forj=1:

1:

5

y(j,i)=y(i,j);

end

end

%节点导纳矩阵的形成

Y=zeros(5,5);

%求互导纳

fori=1:

1:

5

forj=1:

1:

5

ifi~=j

Y(i,j)=-y(i,j);

end

end

end

%求自导纳

fori=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*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;

%节点功率的PQ

P=real(S);

Q=imag(S);

%下面是两个PV节点的无功初始值

Q

(2)=0;

Q(3)=0;

U=ones(5,1);%1列5行的‘1’矩阵

%节点电压初始值

U

(1)=1.06;U

(2)=1.045;U(3)=1.01;

U_reg=U;

Sum_YU0=0;%中间变量

Sum_YU1=0;%中间变量

forcont=1:

1:

6%这里的cont是迭代次数

fori=2:

1:

5

forj=1:

1:

i

ifi~=j

Sum_YU0=Sum_YU0+Y(i,j)*U_reg(j);

end

end

forj=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_YU1)/Y(i,i);

U_reg(i)=U(i);

%PV节点计算

%下面是把求出的U2、U3只保留其相位,幅值不变

ifi==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

ifi==3

angle_U3=angle(U(3));

U(3)=1.01*cos(angle_U3)+1.01*sin(angle_U3)*1i;

Q(3)=imag(U(3)*(conj(Sum_YU0)+conj(Sum_YU1)+conj(Y(3,3)*U(3))));

end

%下面做越界检查

%ifQ(4)>Q_Max

%Q(4)=Q_Max;

%end

%ifQ(4)

%Q(4)=Q_Min;

%end

%下面可以做PV节点收敛判断

Sum_YU0=0;

Sum_YU1=0;

end

end

%节点注入无功,流入为正,流出为负

Qc2=Q

(2)+0.121-1.045^2*0.067;

Qc3=Q(3)+0.19-1.01^2*0.022;

%电压幅值和相角

angle_U=angle(U)*180/pi;

U=abs(U);

S_Line=zeros(5,5);

%计算平衡节点功率

S_BalanceNode=0;

forj=1:

1:

5

S_BalanceNode=S_BalanceNode+U

(1)*conj(Y(1,j)*U(j));

end

%下面由上面算出的电压值求线路的功率

%这里计算出来的线路功率的有功、无功

%fori=1:

1:

5

%forj=i:

1:

5

%ifi~=j

%S_Line(i,j)=U(i)*(conj(U(i))-conj(U(j)))*conj(y(i,j));

%end

%ifi==2

%%S_Line(2,j)=S_Line(2,j)+U

(2)*conj(0.067*1i);

%end

%ifi==3

%%S_Line(3,j)=S_Line(3,j)+U(3)*conj(0.022*1i);

%end

%end

%end

 

计算网络的潮流分布----Newton算法(直角坐标)

clear;clc;

%电稳书Page102例题3-5

%计算网络的潮流分布----Newton算法(直角坐标)

%其中节点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);

%由于电路网络的互易性,导纳矩阵为对称的矩阵

fori=1:

1:

5

forj=1:

1:

5

y(j,i)=y(i,j);

end

end

%节点导纳矩阵的形成

Y=zeros(5,5);

%求互导纳

fori=1:

1:

5

forj=1:

1:

5

ifi~=j

Y(i,j)=-y(i,j);

end

end

end

%求自导纳

fori=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*1i;

Y(5,5)=Y(5,5)+0.0246*1i;

%导纳矩阵的实部和虚部

G=real(Y);

B=imag(Y);

%节点2、3需补偿的无功

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;

%节点功率的PQ

P=real(S);

Q=imag(S);

%下面是两个PV节点的无功初始值

Q

(2)=0;

Q(3)=0;

%给点电压初始值

e=[1.06,1.045,1.01,1,1];

f=[0,0,0,0,0];

U=e+f*1i;

delta_U=zeros(1,5);

delta_P=zeros(1,5);

delta_Q=zeros(1,5);

delta_PQV=ones(8,1);

Sum_GB1=0;Sum_GB2=0;

cont=0;

whilemax(delta_PQV>1e-6),

cont=cont+1;

%forcont=1:

1:

3

%下面开始计算delta_P/delta_Q/delta_U

fori=2:

1:

5

forj=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,j)*e(j));

end

delta_P(i)=P(i)-e(i)*Sum_GB1-f(i)*Sum_GB2;

ifi~=2&&i~=3%不为节点2,3则计算无功

delta_Q(i)=Q(i)-f(i)*Sum_GB1+e(i)*Sum_GB2;

end

ifi==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);

forii=2:

1:

5

i=ii-1;

forj=1:

1:

5

Sum_GB1=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

forjj=2:

1:

5

j=jj-1;

ifii~=2&&ii~=3%PQ节点

ifii==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)*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节点

ifii==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)=-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

%在求解修正方程之前建议把delta_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=-J\delta_PQV;

%下面修正各个节点的电压

fori=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;

angle_U=angle(U)*180/pi;

%节点注入无功,流入为正,流出为负

Sum_YU=0;

fori=2:

1:

3

forj=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.045^2*0.067;

Qc3=Q(3)+0.19-1.01^2*0.022;

U=abs(U);

disp(['Iterationtimes:

'num2str(cont)]);

%显示最终的迭代次数

 

牛顿算法求解潮流(极坐标):

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+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];

%fori=1:

1:

5

%U(i)=U_abs(i)*cos(angle_U(i))+U_abs(i)*sin(angle_U(i))*1i;

%end

%原始节点功率

%这里电源功率为正,负荷功率为负

%下面给点PQPV节点功率值

S=[-0.22-0.14*1i,-0.18-0.09*1i,-0.27-0.13*1i,0.35,0];

%节点功率的PQ

P=real(S);

Q=imag(S);

%下面是PV节点的无功初始值

Q(4)=0;

delta_P=zeros(1,5);

delta_Q=zeros(1,5);

%delta_angleU=zeros(1,4);

%delta_absU=zeros(1,4);

delta_PQ=ones(8,1);

Sum_GB1=0;Sum_GB2=0;

cont=0;

%最外层循环,cont代表迭代的次数,这里可以用约束条件来代替

%forcont=1:

1:

4

whilemax(delta_PQ)>1e-6,

%下面计算delta_P/delta_Q/delta_U

cont=cont+1;

fori=1:

1:

4

forj=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_U(j)));

end

delta_P(i)=P(i)-U(i)*Sum_GB1;

ifi~=4%不为节点四则计算无功

delta_Q(i)=Q(i)-U(i)*Sum_GB2;

end

Sum_GB1=0;Sum_GB2=0;

end

%_______________________________________________________%

%下面计算雅克比矩阵

J=zeros(7,7);

forii=1:

1:

4

forjj=1:

1:

4

ifii~=4%PQ节点

ifii==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)^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)*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节点

ifii==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);

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)));

end

end

end

end

%在求解修正方程之前建议把delta_ef和delta_ef全部放在一个矩阵

delta_PQ=[delta_P

(1);delta_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=-J\delta_PQ;

%下面修正各个节点的电压

fori=1:

1:

4

ifi~=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(['Iterationtimes:

'num2str(cont)]);

%下面计算平衡节点5的功率PQ

forj=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;

%下面将

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1