![](https://csdnimg.cn/release/download_crawler_static/87199757/bg5.jpg)
else %为变压器元件
if n~=0;
Y(m,m)=Y(m,m)+1/(R(i)+1j*X(i));
Y(m,n)=Y(m,n)-1/(k(i)*(R(i)+1j*X(i)));
Y(n,n)=Y(n,n)+1/(k(i)*k(i)*(R(i)+1j*X(i)));
Y(n,m)=Y(n,m)-1/(k(i)*(R(i)+1j*X(i)));
else
Y(m,m)=Y(m,m)+R(i)+1j*X(i);
end;
end;
end;
maxm=HeadNumber(1);
%通过下面两个循环体,确定输入表中节点编号的最大值,及为节点导纳矩阵的维数
for i=1:L;
if maxm<=HeadNumber(i);
maxm=HeadNumber(i);
end;
end;
maxn=EndNumber(1);
for i=1:L;
if maxn<=EndNumber(i);
maxn=EndNumber(i);
end;
end;
Y=Y(1:max(maxm,maxn),1:max(maxm,maxn));%形成导纳矩阵
2.对不满足要求的 PQ 参数表进行排序的函数 seqencing()
function [Pointstyle,PointNumber,Ps,Qs,Uk,Ok]=seqencing(y)
%定义名为 seqencing 的函数,其功能是在系统添加节点,或输入的 PQ 参数的顺序不满足要求时,对 PQ 参
数表进行重新排序,保证平衡节点放在第一行,接下来是 PV 节点,最后是 PQ 节点
[fid,message]=fopen(y,'r'); %从 y 文件中读入 PQ 参数
if fid==-1; %判断文件是否正确打开
error(message);
end;
[Pointstyle,PointNumber,Ps,Qs,Uk,Ok]=textread(y,'%f %f %f %f %f %f');
fclose(fid);
L=length(PointNumber);