潮流计算的计算机算法PQ分解法潮流计算IEEE14.docx
《潮流计算的计算机算法PQ分解法潮流计算IEEE14.docx》由会员分享,可在线阅读,更多相关《潮流计算的计算机算法PQ分解法潮流计算IEEE14.docx(23页珍藏版)》请在冰豆网上搜索。
![潮流计算的计算机算法PQ分解法潮流计算IEEE14.docx](https://file1.bdocx.com/fileroot1/2022-11/21/ee7f64b5-ab77-44fd-a698-caf8761775d3/ee7f64b5-ab77-44fd-a698-caf8761775d31.gif)
潮流计算的计算机算法PQ分解法潮流计算IEEE14
高等电力系统分析
(潮流计算的计算机算法)
PQ分解法潮流计算(IEEE14)
1、MATLAB源程序
2、对支路参数(B1)、节点参数(B2)的说明
3、带入数据,运行结果
一、MATLAB源程序
clear
closeall
n=input('请输入节点数:
n=');
n1=input('请输入支路数:
n1=');
isb=input('请输入平衡节点号:
isb=');
pr=input('请输入误差精度:
pr=');
B1=input('请输入支路参数:
B1=');
B2=input('请输入节点参数:
B2=');
n2=input('请输入PQ节点个数:
n2=');
Y=zeros(n);
fori=1:
n1
p=B1(i,1);
q=B1(i,2);
Y(p,q)=Y(p,q)-1/(B1(i,3)+B1(i,4)*1j);%非对角元
Y(q,p)=Y(p,q);
Y(p,p)=Y(p,p)+1/(B1(i,3)+B1(i,4)*1j)+B1(i,6)*1j;%对角元
Y(q,q)=Y(q,q)+1/(B1(i,3)+B1(i,4)*1j)+B1(i,6)*1j;
end
disp('导纳矩阵Y=');
disp(Y)
%---------------------------------------------
%---------------下面是求P,Q,V,O矩阵---------------
V=zeros(1,n);O=zeros(1,n);P=zeros(1,n);Q=zeros(1,n);
G=real(Y);B=imag(Y);
fori=1:
n
P(i)=B2(i,3);
Q(i)=B2(i,4);
V(i)=B2(i,5);
O(i)=B2(i,6);
end
B3=B(1:
n-1,1:
n-1);%不含平衡节点,由节点导纳虚部构成
B4=B(1:
n2,1:
n2);%所有PQ节点
%----------------------------------------------
%---------------下面是求ΔP,ΔQ矩阵---------------
DX=0;ICT=1;Mp=1;Mq=1;
whileICT~=0
m1=1;m2=1;
fori=1:
n
ifi~=isb
C(i)=0;
D(i)=0;
forj1=1:
n
C(i)=C(i)+V(i)*V(j1)*(G(i,j1)*cos(O(i)-O(j1))+B(i,j1)*sin(O(i)-O(j1)));
D(i)=D(i)+V(i)*V(j1)*(G(i,j1)*sin(O(i)-O(j1))-B(i,j1)*cos(O(i)-O(j1)));
end
DP(m1)=P(i)-C(i);
m1=m1+1;
ifB2(i,2)==1
DQ(m2)=Q(i)-D(i);
m2=m2+1;
end
end
end
m1=m1-1;%所有节点数
m2=m2-1;%PQ节点数
DPQ=[DP';DQ'];%求DP,DQ
V1=V(:
1:
m1);
V2=diag(V1);
V3=inv(V2);%对V矩阵求逆
H=V3*DP';%ΔP/V
K=-inv(B3)*H;%-ΔP/V/B3
deltO=V3*K;%Δ角=-ΔP/V/V/B3
max1=max(abs(DP));
fori=1:
m1
ifmax1Mp=0;
else
O(i)=O(i)+deltO(i)';
Mq=1;
end
end
V4=V(:
1:
m2);
V5=diag(V4);
V6=inv(V5);
L=V6*DQ';
N=-inv(B4)*L;
deltV=N;%ΔV=-ΔQ/V/B
max2=max(abs(DQ));
fori=1:
m2
ifmax2Mq=0;
else
ifB2(i,2)==1;
V(i)=V(i)+deltV(i)';
Mp=1;
end
end
end
ifMp==0&&Mq==0
ICT=0;
else
ICT=1;
end
DX=DX+1;
end
%-------------------------------------------
%----------------迭代结束,开始输出结果----------------
disp('----------------------------------------------');
disp('迭代次数为:
');
disp(DX);
fori=1:
n
E(i)=V(i)*cos(O(i))+1j*V(i)*sin(O(i));
o(i)=180*angle(E(i))/pi;
end
disp('---------------------------------------------');
disp('修正后各节点电压标么值为(节点号从小到大排列):
');
disp(V);
disp('---------------------------------------------');
disp('修正后各节点电压相角为(节点号从小到大排列):
');
disp(o);
%------------计算各个节点的功率----------------------
disp('----------------------------------------------');
disp('各节点的功率为:
');
forp=1:
n
C(p)=0;
forq=1:
n
C(p)=C(p)+conj(Y(p,q)*conj(E(q)));
end
S(p)=E(p)*C(p);
end
disp(S);
%------------计算各支路的功率----------------------
fori=1:
n1
p=B1(i,1);q=B1(i,2);
Si(p,q)=E(p)*(conj(E(p))*conj(Y(p,p)-Y(p,q))+(conj(E(p))-conj(E(q)))*conj(Y(p,q)));
disp('----------------------------------------------');
disp('各条支路的首端功率为:
');
disp(Si(p,q));
Si(q,p)=E(q)*(conj(E(q))*conj(Y(q,q)-Y(p,q))+(conj(E(q))-conj(E(p)))*conj(Y(p,q)));
disp('----------------------------------------------');
disp('各条支路的末端功率为:
');
disp(Si(q,p));
DS(i)=Si(p,q)+Si(q,p);
disp('----------------------------------------------');
disp('各条支路的功率损耗为:
');
disp(DS(i));
end
%----------------计算平衡节点功率-------------
Sp=0;
fori=1:
n
Sp=Sp+V(n)*conj(Y(n,i))*conj(V(i));
end
disp('----------------------------------------------');
disp('平衡节点功率为:
');
disp(Sp);
2、对支路参数(B1)、节点参数(B2)的说明
1.节点数:
14
2.支路数:
20
3.支路矩阵B1的各支路参数:
起点编号,终点编号,电阻,电抗,电导,电纳
[120.013350.0421100;
1300.2091200;
1400.5561800;
1100.058110.1763200.034;
1110.067010.1710300.0128;
2100.056950.1738800.0346;
21200.2520200;
2140.054030.2230400.0492;
3400.1100100;
31300.1761500;
450.031810.084500;
490.127110.2703800;
560.082050.1920700;
6120.094980.198900;
780.220920.1998800;
7120.122910.2558100;
890.170930.3480200;
8120.066150.1302700;
10110.046990.1979700.0438;
10140.019380.0591700.0528;]
4.节点参数矩阵B2的各节点参数:
(对应的每一列为)
节点编号,类型,注入有功,注入无功,电压幅值,电压相位
其中节点类型:
1=PQ节点,2=PV节点,0=平衡节点
[11-0.4780.03910;
21-0.076-0.01610;
310010;
41-0.295-0.16610;
51-0.09-0.05810;
61-0.035-0.01810;
71-0.061-0.01610;
81-0.135-0.05810;
91-0.149-0.0510;
1020.18301.0450;
112-0.94201.010;
122-0.1120.0471.70;
13200.1741.90;
140001.060;]
3、带入数据,运行结果
>>clear
closeall
n=input('请输入节点数:
n=');
n1=input('请输入支路数:
n1=');
isb=input('请输入平衡节点号:
isb=');
pr=input('请输入误差精度:
pr=');
B1=input('请输入支路参数:
B1=');
B2=input('请输入节点参数:
B2=');
n2=input('请输入PQ节点个数:
n2=');
Y=zeros(n);
fori=1:
n1
p=B1(i,1);
q=B1(i,2);
Y(p,q)=Y(p,q)-1/(B1(i,3)+B1(i,4)*1j);%非对角元
Y(q,p)=Y(p,q);
Y(p,p)=Y(p,p)+1/(B1(i,3)+B1(i,4)*1j)+B1(i,6)*1j;%对角元
Y(q,q)=Y(q,q)+1/(B1(i,3)+B1(i,4)*1j)+B1(i,6)*1j;
end
disp('导纳矩阵Y=');
disp(Y)
%---------------------------------------------
%---------------下面是求P,Q,V,O矩阵---------------
V=zeros(1,n);O=zeros(1,n);P=zeros(1,n);Q=zeros(1,n);
G=real(Y);B=imag(Y);
fori=1:
n
P(i)=B2(i,3);
Q(i)=B2(i,4);
V(i)=B2(i,5);
O(i)=B2(i,6);
end
B3=B(1:
n-1,1:
n-1);%不含平衡节点,由节点导纳虚部构成
B4=B(1:
n2,1:
n2);%所有PQ节点
%----------------------------------------------
%---------------下面是求ΔP,ΔQ矩阵---------------
DX=0;ICT=1;Mp=1;Mq=1;
whileICT~=0
m1=1;m2=1;
fori=1:
n
ifi~=isb
C(i)=0;
D(i)=0;
forj1=1:
n
C(i)=C(i)+V(i)*V(j1)*(G(i,j1)*cos(O(i)-O(j1))+B(i,j1)*sin(O(i)-O(j1)));
D(i)=D(i)+V(i)*V(j1)*(G(i,j1)*sin(O(i)-O(j1))-B(i,j1)*cos(O(i)-O(j1)));
end
DP(m1)=P(i)-C(i);
m1=m1+1;
ifB2(i,2)==1
DQ(m2)=Q(i)-D(i);
m2=m2+1;
end
end
end
m1=m1-1;%所有节点数
m2=m2-1;%PQ节点数
DPQ=[DP';DQ'];%求DP,DQ
V1=V(:
1:
m1);
V2=diag(V1);
V3=inv(V2);%对V矩阵求逆
H=V3*DP';%ΔP/V
K=-inv(B3)*H;%-ΔP/V/B3
deltO=V3*K;%Δ角=-ΔP/V/V/B3
max1=max(abs(DP));
fori=1:
m1
ifmax1Mp=0;
else
O(i)=O(i)+deltO(i)';
Mq=1;
end
end
V4=V(:
1:
m2);
V5=diag(V4);
V6=inv(V5);
L=V6*DQ';
N=-inv(B4)*L;
deltV=N;%ΔV=-ΔQ/V/B
max2=max(abs(DQ));
fori=1:
m2
ifmax2Mq=0;
else
ifB2(i,2)==1;
V(i)=V(i)+deltV(i)';
Mp=1;
end
end
end
ifMp==0&&Mq==0
ICT=0;
else
ICT=1;
end
DX=DX+1;
end
%-------------------------------------------
%----------------迭代结束,开始输出结果----------------
disp('----------------------------------------------');
disp('迭代次数为:
');
disp(DX);
fori=1:
n
E(i)=V(i)*cos(O(i))+1j*V(i)*sin(O(i));
o(i)=180*angle(E(i))/pi;
end
disp('---------------------------------------------');
disp('修正后各节点电压标么值为(节点号从小到大排列):
');
disp(V);
disp('---------------------------------------------');
disp('修正后各节点电压相角为(节点号从小到大排列):
');
disp(o);
%------------计算各个节点的功率----------------------
disp('----------------------------------------------');
disp('各节点的功率为:
');
forp=1:
n
C(p)=0;
forq=1:
n
C(p)=C(p)+conj(Y(p,q)*conj(E(q)));
end
S(p)=E(p)*C(p);
end
disp(S);
%------------计算各支路的功率----------------------
fori=1:
n1
p=B1(i,1);q=B1(i,2);
Si(p,q)=E(p)*(conj(E(p))*conj(Y(p,p)-Y(p,q))+(conj(E(p))-conj(E(q)))*conj(Y(p,q)));
disp('----------------------------------------------');
disp('各条支路的首端功率为:
');
disp(Si(p,q));
Si(q,p)=E(q)*(conj(E(q))*conj(Y(q,q)-Y(p,q))+(conj(E(q))-conj(E(p)))*conj(Y(p,q)));
disp('----------------------------------------------');
disp('各条支路的末端功率为:
');
disp(Si(q,p));
DS(i)=Si(p,q)+Si(q,p);
disp('----------------------------------------------');
disp('各条支路的功率损耗为:
');
disp(DS(i));
end
%----------------计算平衡节点功率-------------
Sp=0;
fori=1:
n
Sp=Sp+V(n)*conj(Y(n,i))*conj(V(i));
end
disp('----------------------------------------------');
disp('平衡节点功率为:
');
disp(Sp);
请输入节点数:
n=14
请输入支路数:
n1=20
请输入平衡节点号:
isb=14
请输入误差精度:
pr=0.00001
请输入支路参数:
B1=[120.013350.0421100;
1300.2091200;
1400.5561800;
1100.058110.1763200.034;
1110.067010.1710300.0128;
2100.056950.1738800.0346;
21200.2520200;
2140.054030.2230400.0492;
3400.1100100;
31300.1761500;
450.031810.084500;
490.127110.2703800;
560.082050.1920700;
6120.094980.198900;
780.220920.1998800;
7120.122910.2558100;
890.170930.3480200;
8120.066150.1302700;
10110.046990.1979700.0438;
10140.019380.0591700.0528;]
请输入节点参数:
B2=[11-0.4780.03910;
21-0.076-0.01610;
310010;
41-0.295-0.16610;
51-0.09-0.05810;
61-0.035-0.01810;
71-0.061-0.01610;
81-0.135-0.05810;
91-0.149-0.0510;
1020.18301.0450;
112-0.94201.010;
122-0.1120.0471.70;
13200.1741.90;
140001.060;]
请输入PQ节点个数:
n2=9
导纳矩阵Y=
Columns1through5
10.5130-38.2963i-6.8410+21.5786i0.0000+4.7819i0.0000+1.7980i0.0000+0.0000i
-6.8410+21.5786i9.5680-34.8916i0.0000+0.0000i0.0000+0.0000i0.0000+0.0000i
0.0000+4.7819i0.0000+0.0000i0.0000-19.5490i0.0000+9.0901i0.0000+0.0000i
0.0000+1.7980i0.0000+0.0000i0.0000+9.0901i5.3261-24.2825i-3.9020+10.3654i
0.0000+0.0000i0.0000+0.0000i0.0000+0.0000i-3.9020+10.3654i5.7829-14.7683i
0.0000+0.0000i0.0000+0.0000i0.0000+0.0000i0.0000+0.0000i-1.8809+4.4029i
0.0000+0.0000i0.0000+0.0000i0.0000+0.0000i0.0000+0.0000i0.0000+0.0000i
0.0000+0.0000i0.0000+0.0000i0.0000+0.0000i0.0000+0.0000i0.0000+0.0000i
0.0000+0.0000i0.0000+0.0000i0.0000+0.0000i-1.4240+3.0291i0.0000+0.0000i
-1.6860+5.1158i-1.7011+5.1939i0.0000+0.0000i0.0000+0.0000i0.0000+0.0000i
-1.9860+5.0688i0.0000+0.0000i0.0000+0.0000i0.0000+0.0000i0.0000+0.0000i
0.0000+0.0000i0.0000+3.9679i0.0000+0.0000i0.0000+0.0000i0.0000+0.0000i
0.0000+0.0000i0.0000+0.0000i0.0000+5.6770i0.0000+0.0000i0.0000+0.0000i
0.0000+0.0000i-1.0259+4.2350i0.0000+0.0000i0.0000+0.0000i0.0000+0.0000i