%本程序的功能是利用 PQ 分解法进行潮流计算
clear
clc
n=input('请输入节点数:n=');
nl=input('请输入支路数:nl=');
isb=input('请输入平衡母线节点号:isb=');
pr=input('请输入误差精度:pr=');
disp('请输入由支路参数形成的矩阵:B1=');
%输入 B1
[fname, pname]= uigetfile('*.xls');
file=[pname fname];
x=xlsread(file);
B1=[x(:,1),x(:,2),(x(:,3)+x(:,4)*i),x(:,5)*i,x(:,6),x(:,7)];
disp('请输入由节点参数形成的矩阵:B2=');
%输入 B2
[fname, pname]= uigetfile('*.xls');
file=[pname fname];
y=xlsread(file);
B2=[(y(:,1)+y(:,2)*i),(y(:,3)+y(:,4)*i),y(:,5),y(:,6),y(:,7),y(:,8)];
disp('请输入由节点号及其对地阻抗形成的矩阵:X=');
%输入 X
[fname, pname]= uigetfile('*.xls');
file=[pname fname];
z=xlsread(file);
X=z;
na=input('请输入 PQ 节点数 na=');
Y=zeros(n);YI=zeros(n);e=zeros(1,n);f=zeros(1,n);V=zeros(1,n);O=zeros
(1,n);
for i=1:n
if X(i,2)~=0;
p=X(i,1);
Y(p,p)=1./X(i,2);
end
end
for i=1:nl
if B1(i,6)==0
p=B1(i,1);q=B1(i,2);
else p=B1(i,2);q=B1(i,1);
end
Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5));
YI(p,q)=YI(p,q)-1./B1(i,3);
Y(q,p)=Y(p,q);
YI(q,p)=YI(p,q);
Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2;
评论0