潮流计算的计算机算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高等电力系统分析
(潮流计算的计算机算
法)
PQ分解法潮流计算(IEEE14)
目录
一、MATLAB源程序
二、对支路参数(B1)、节点参数(B2)的说明
三、带入数据,运行结果
、MATLAB源程序clear
close all
n=in put(' 请输入节点数:n=');
n仁in put(' 请输入支路数:n 1=') J
isb=in put(' 请输入平衡节点号:isb=')
pr=i nput(' 请输入误差精度:pr=');
B1=i nput(' 请输入支路参数:B1 =');
B2=i nput(' 请输入节点参数:B2=');
n2=in put(' 请输入PQ节点个数::n 2=');
Y=zeros (n);
for i=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,0矩阵------------------------- V=zeros(1, n);O=zeros(1, n);P=zeros(1, n);Q=zeros(1, n);
G=real(Y);B=imag(Y);
for i=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;
while ICT~=0
m1=1;m2=1;
for i=1: n
if i~=isb
C(i)=O;
D(i)=O;
for j1=1:n
C(i)=C(i)+V(i)*V(j1)*(G(i,j1)*cos(O(i)-O(j1))+B(i,j1)*si n( O(i)-O(
j1)));
D(i)=D(i)+V(i)*V(j1)*(G(i,j1)*si n(O(i)-O(j1))-B(i,j1)*cos(O(i)-O( j1)));
end
DP(m1)=P(i)-C(i); m1=m1+1;
if B2(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']; %
V仁V(:,1:m1);
V2=diag(V1);
V3=i nv(V2); %
H=V3*DP'; %
K=-i nv(B3)*H; %-
deltO=V3*K; % max1=max(abs(DP)); for i=1:m1
if max1 Mp=0; else O(i)=O(i)+deltO(i)'; Mq=1; end end V4=V(:,1:m2); V5=diag(V4); V6=i nv(V5); L=V6*DQ'; N=-i nv(B4)*L; deltV=N; % max2=max(abs(DQ)); for i=1:m2 if max2 Mq=0; else if B2(i,2)==1; V(i)=V(i)+deltV(i): Mp=1; end 所有节点数 节点数 求DP,DQ 对V矩阵求逆 △ P/V △ P/V/B3 △角=-△ P/V/V/B3 △ V=- △ Q/V/B end end if Mp==0&&Mq==0 ICT=0; else ICT=1; end DX=DX+1; end % --------------------------------------- % --------------- 迭代结束,开始输出结果 disp(' ---------------------------------------- '); disp(' 迭代次数为:'); disp(DX); for i=1: n E(i)=V(i)*cos(O(i))+1j*V(i)*si n( O(i)); o(i)= 180*a ngle(E(i))/pi; end disp(' ---------------------------------------- '); disp(' 修正后各节点电压标么值为(节点号从小到大排列) :'); disp(V); disp(' ---------------------------------------- '); disp(' 修正后各节点电压相角为(节点号从小到大排列) :'); disp(o); % ----------- 计算各个节点的功率 disp(' ---------------------------------------- '); disp(' 各节点的功率为:'); for p=1: n C(p)=0; for q=1: n C(p)=C(p)+conj(Y(p,q)*conj(E(q))); end S(p)=E(p)*C(p); end disp(S); % ----------- 计算各支路的功率------------------------- for i=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)));