IEEE14节点潮流程序
clearr(14,10)=0.01938;x(14,10)=0.05917;r(10,11)=0.04699;x(10,11)=0.19797;r(10,1)=0.05811;x(10,1)=0.17632;r(14,2)=0.05403;x(14,2)=0.22304;r(10,2)=0.05695;x(10,2)=0.17388;
r(10,14)=0.01938;x(10,14)=0.05917;r(11,10)=0.04699;x(11,10)=0.19797;r(1,10)=0.05811;x(1,10)=0.17632;r(2,14)=0.05403;x(2,14)=0.22304;r(2,10)=0.05695;x(2,10)=0.17388;
r(11,1)=0.06701;x(11,1)=0.17103;r(1,2)=0.01335;x(1,2)=0.04211;r(2,12)=0.00000;x(2,12)=0.23488;r(1,3)=0.00000;x(1,3)=0.20452;r(3,13)=0.00000;x(3,13)=0.17615;
r(1,11)=0.06701;x(1,11)=0.17103;r(2,1)=0.01335;x(2,1)=0.04211;r(12,2)=0.00000;x(12,2)=0.23488;r(3,1)=0.00000;x(3,1)=0.20452;r(13,3)=0.00000;x(13,3)=0.17615;
r(1,4)=0.00000;x(1,4)=0.53894;r(3,4)=0.00000;x(3,4)=0.11001;r(4,5)=0.03181;x(4,5)=0.08450;r(12,6)=0.09498;x(12,6)=0.19890;r(12,7)=0.12291;x(12,7)=0.25581;
r(4,1)=0.00000;x(4,1)=0.53894;r(4,3)=0.00000;x(4,3)=0.11001;r(5,4)=0.03181;x(5,4)=0.08450;r(6,12)=0.09498;x(6,12)=0.19890;r(7,12)=0.12291;x(7,12)=0.25581;
r(12,8)=0.06615;x(12,8)=0.13027;r(4,9)=0.12711;x(4,9)=0.27038;r(5,6)=0.08205;x(5,6)=0.19207;r(7,8)=0.22092;x(7,8)=0.19988;r(8,9)=0.17093;x(8,9)=0.34802;
r(8,12)=0.06615;x(8,12)=0.13027;r(9,4)=0.12711;x(9,4)=0.27038;r(6,5)=0.08205;x(6,5)=0.19207;r(8,7)=0.22092;x(8,7)=0.19988;r(9,8)=0.17093;x(9,8)=0.34802;
y(14,10)=0.02640;y(10,11)=0.02190;y(10,1)=0.01870;y(14,2)=0.02460;y(10,2)=0.01700;y(11,1)=0.01730;y(1,2)=0.00640;y(2,12)=-0.31063;y(1,3)=-0.10999;y(1,4)=-0.05936;
y(10,14)=0.02640;y(11,10)=0.02190;y(1,10)=0.01870;y(2,14)=0.02460;y(2,10)=0.01700;y(1,11)=0.01730;y(2,1)=0.00640;y(12,2)=0.28951;y(3,1)=0.10757;y(4,1)=0.05752;
for m=1:14
t(m)=0;
for n=1:14
t(m)=t(m)+y(m,n);
end
if m==4
t(m)=t(m)+0.190;
end
end
for m=1:14
d(m)=0;
for n=1:14
if m==n
elseif (r(m,n)==0)&(x(m,n)==0)
d(m)=d(m)+0;
else
d(m)=d(m)+1/(r(m,n)+j*x(m,n));
end
end
end
for m=1:14
for n=1:14
if m==n
Y(m,n)=j*t(m)+d(m);
elseif (r(m,n)==0)&(x(m,n)==0)
Y(m,n)=0;
else
Y(m,n)=-1/(r(m,n)+j*x(m,n));
end
end
end
Y;
G=real(Y);B=imag(Y);
%给定节点电压初值和循环次数k=0
delt(10)=0;delt(11)=0;u(1)=1.0;delt(1)=0;u(2)=1.0;delt(2)=0;delt(12)=0;u(3)=1.0;delt(3)=0;delt(13)=0;u(4)=1.0;delt(4)=0;u(5)=1.0;delt(5)=0;u(6)=1.0;delt(6)=0;u(7)=1.0;delt(7)=0;u(8)=1.0;delt(8)=0;u(9)=1.0;delt(9)=0;
p(10)=0.183;p(11)=-0.942;p(1)=-0.478;q(1)=0.039;p(2)=-0.076;q(2)=-0.016;p(12)=-0.112;p(3)=0;q(3)=0;p(13)=0;p(4)=-0.295;p(5)=-0.09;q(5)=-0.058;p(6)=-0.035;q(6)=-0.018;p(7)=-0.061;q(7)=-0.016;p(8)=-0.135;q(8)=-0.058;p(9)=-0.149;q(9)=-0.05;
k=0;precision=1;N1=13;
%求节点功率的不平衡量�6�2P和�6�2Q
while precision>0.00001
u(10)=1.0450;u(11)=1.01;u(12)=1.07;u(13)=1.09;u(14)=1.06;delt(14)=0;q(4)=-0.166+(u(4))^2*0.190;
for m=1:N1
if m<=9
for n=1:N1+1
pt(n)=u(m)*u(n)*(G(m,n)*cos(delt(m)-delt(n))+B(m,n)*sin(delt(m)-delt(n)));
qt(n)=u(m)*u(n)*(G(m,n)*sin(delt(m)-delt(n))-B(m,n)*cos(delt(m)-delt(n)));
end
pp(m)=p(m)-sum(pt);qq(m)=q(m)-sum(qt);
else
for n=1:N1+1
f(n)=u(m)*u(n)*(G(m,n)*cos(delt(m)-delt(n))+B(m,n)*sin(delt(m)-delt(n)));
end
pp(m)=p(m)-sum(f);qq(m)=0;
end
end
%计算雅克比矩阵各元素
for m=1:N1
for n=1:N1+1
h0(n)=u(m)*u(n)*(G(m,n)*sin(delt(m)-delt(n))-B(m,n)*cos(delt(m)-delt(n)));
n0(n)=-u(m)*u(n)*(G(m,n)*cos(delt(m)-delt(n))+B(m,n)*sin(delt(m)-delt(n)));
j0(n)=-u(m)*u(n)*(G(m,n)*cos(delt(m)-delt(n))+B(m,n)*sin(delt(m)-delt(n)));
L0(n)=-u(m)*u(n)*(G(m,n)*sin(delt(m)-delt(n))-B(m,n)*cos(delt(m)-delt(n)));
end
if m<=9
H(m,m)=sum(h0)- u(m)*u(m)*(G(m,m)*sin(delt(m)-delt(m))-B(m,m)*cos(delt(m)-delt(m)));
N(m,m)=sum(n0)-2*u(m)^2*G(m,m)+u(m)*u(m)*(G(m,m)*cos(delt(m)-delt(m))+B(m,m)*sin(delt(m)-delt(m)));
J(m,m)=sum(j0)+u(m)*u(m)*(G(m,m)*cos(delt(m)-delt(m))+B(m,m)*sin(delt(m)-delt(m)));
L(m,m)=sum(L0)+2*u(m)^2*B(m,m)+u(m)*u(m)*(G(m,m)*sin(delt(m)-delt(m))-B(m,m)*cos(delt(m)-delt(m)));
else
H(m,m)=sum(h0)- u(m)*u(m)*(G(m,m)*sin(delt(m)-delt(m))-B(m,m)*cos(delt(m)-delt(m)));
N(m,m)=0;
J(m,m)=0;
L(m,m)=0;
end
end
for m=1:N1
JJ(2*m-1,2*m-1)=H(m,m);JJ(2*m-1,2*m)=N(m,m);
JJ(2*m,2*m-1)=J(m,m);JJ(2*m,2*m)=L(m,m);
end
for m=1:N1
for n=1:N1
if (m<=9)&(n<=9)&(m~=n)
H(m,n)= -u(m)*u(n)*(G(m,n)*sin(delt(m)-delt(n))-B(m,n)*cos(delt(m)-delt(n)));
J(m,n)=u(m)*u(n)*(G(m,n)*cos(delt(m)-delt(n))+B(m,n)*sin(delt(m)-delt(n)));
N(m,n)=-J(m,n);L(m,n)=H(m,n);
JJ(2*m-1,2*n-1)=H(m,n);JJ(2*m-1,2*n)=N(m,n);
JJ(2*m,2*n-1)=J(m,n);JJ(2*m,2*n)=L(m,n);
elseif ((m==10)&(n<10))|((m==11)&(n<10))|((m==12)&(n<10))|((m==13)&(n<10))
H(m,n)= -u(m)*u(n)*(G(m,n)*sin(delt(m)-delt(n))-B(m,n)*cos(delt(m)-delt(n)));
J(m,n)=u(m)*u(n)*(G(m,n)*cos(delt(m)-delt(n))+B(m,n)*sin(delt(m)-delt(n)));
N(m,n)=-J(m,n);
JJ(2*m-1,2*n-1)=H(m,n);JJ(2*m-1,2*n)=N(m,n);
JJ(2*m,2*n-1)=0;JJ(2*m,2*n)=0;
elseif ((n==10)&(m<10))|((n==11)&(m<10))|((n==12)&(m<10))|((n==13)&(m<10))
H(m,n)= -u(m)*u(n)*(G(m,n)*sin(delt(m)-delt(n))-B(m,n)*cos(delt(m)-delt(n)));
J(m,n)=u(m)*u(n)*(G(m,n)*cos(delt(m)-delt(n))+B(m,n)*sin(delt(m)-delt(n)));
JJ(2*m-1,2*n-1)=H(m,n);JJ(2*m-1,2*n)=0;
JJ(2*m,2*n-1)=J(m,n);JJ(2*m,2*n)=0;
elseif (m>=10)&(n>=10)&(m~=n)
H(m,n)= -u(m)*u(n)*(G(m,n)*sin(delt(m)-delt(n))-B(m,n)*cos(delt(m)-delt(n)));
JJ(2*m-1,2*n-1)=H(m,n);JJ(2*m-1,2*n)=0;
JJ(2*m,2*n-1)=0;JJ(2*m,2*n)=0;
end
end
end
% 对雅克比矩阵进行修正,使之变成非奇异阵,以便后续求逆计算
b=0;
for m=1:22
for n=1:22
if (m<=18)&(n<=18)
A(m,n)=JJ(m,n);
elseif (m>18)&(n<=18)
A(m,n)=JJ(m+b,n);
end
end
if m>18
b=b+1;
end
end
b=0;
for n=1:22
for m=1:22
if n<=18
A(m,n)=A(m,n);
elseif (m<=18)&(n>18)
A(m,n)=JJ(m,n+b);
end
end
if n>18
b=b+1;
end
end
b=0;
for m=1:22
for n=1:26
if (m>=19)&(n>=19)
D(m,n)=JJ(m+b,n);
end
end
if m>18
b=b+1;
end
end
b=0;
for n=1:22
for m=1:22
if (m>=19)&(n>=19)
D(m,n)=D(m,n+b);
end
end
if n>18
b=b+1;
end
end
for m=1:22
for n=1:22
if (m>=19)&(n>=19)
A(m,n)=D(m,n);
else
A(m,n)=A(m,n);
end
end
end
% 形成不平衡量的列矩阵
for m=1:N1
PP(2*m-1)=pp(m);PP(2*m)=qq(m);
end
C=PP(1:1:18);
b=0;
for m=1:22
if m<=18
C=C;
else
C(m)=PP(m+b);
b=b+1;
end
end
% 解修正方程式,得到修正量
uu=-inv(A)*C';
precision=max(abs(uu));
% 计算个节点电压新值,即修正后值
for n=1:N1
if n<=9
delt(n)=delt(n)+uu(2*n-1);
u(n)=u(n)+uu(2*n);
else
delt(n)=delt(n)+uu(n+9);
u(n)=u(n);
end
end
% 循环次数k加一,带入新值进入下一次迭代
k=k+1;
end
% 迭代完成后,求迭代次数、节点母线电压幅值与相角
k-1,(delt*180/pi)',u'
% 计算各节点的功率和线路功率
for n=1:N1+1
U(n)=u(n)*(cos(delt(n))+j*sin(delt(n)));
end
for m=1:N1+1
for n=1:N1+1
I(n)=Y(m,n)*U(n);
end
S(m)=U(m)*sum(conj(I));
end
S
for m=1:N1+1
for n=1:N1+1
T(m,n)=U(m)*conj((U(m)-U(n))*(-Y(m,n)))+U(m)*conj(U(m)*j*y(m,n));
end
end
T 多谢楼主分享。。。。。。。。。 这个好像算的结果不是很准确,但能学习下思想 楼主的分享精神不错。 现在我们编程的缺点是不能用矩阵的思想全局的看待系统问题,会用很多for循环去实现功能 太复杂了,看不懂、有14节点编的算节点导纳矩阵的程序么 牛人啊,佩服佩服 这个程序matlab论坛里就有 多谢楼主,可以借鉴来学习啦
页:
[1]