function [Z1,Z2,Z0,Y1,Y2,Y0,x0,linei,geni,S,i,j]=Form_Impedance_matrix(n,parameter)
时间: 2023-10-02 20:03:41 浏览: 41
这是一个MATLAB函数,用于生成电力系统的阻抗矩阵。其中,输入参数n表示系统中的节点数,parameter是一个结构体,包含了系统中各个元件的参数。输出变量包括:
Z1:节点间传输线的阻抗矩阵
Z2:变压器的阻抗矩阵
Z0:接地导线的阻抗矩阵
Y1:节点间传输线的导纳矩阵
Y2:变压器的导纳矩阵
Y0:接地导线的导纳矩阵
x0:系统中各个节点的坐标
linei:节点间传输线的编号
geni:发电机节点的编号
S:各个节点的复功率注入值
i:线路的起始节点
j:线路的终止节点
具体实现可以参考以下代码:
```matlab
function [Z1,Z2,Z0,Y1,Y2,Y0,x0,linei,geni,S,i,j]=Form_Impedance_matrix(n,parameter)
% n:节点数
% parameter:各元件参数
% Z1:节点间传输线的阻抗矩阵
% Z2:变压器的阻抗矩阵
% Z0:接地导线的阻抗矩阵
% Y1:节点间传输线的导纳矩阵
% Y2:变压器的导纳矩阵
% Y0:接地导线的导纳矩阵
% x0:系统中各个节点的坐标
% linei:节点间传输线的编号
% geni:发电机节点的编号
% S:各个节点的复功率注入值
% i:线路的起始节点
% j:线路的终止节点
% 初始化矩阵
Z1=zeros(n);
Z2=zeros(n);
Z0=zeros(n);
Y1=zeros(n);
Y2=zeros(n);
Y0=zeros(n);
% 生成节点间传输线的阻抗矩阵和导纳矩阵
linei=find(parameter.line(:,1)>0);
for k=1:length(linei)
i=parameter.line(linei(k),1);
j=parameter.line(linei(k),2);
Z1(i,j)=parameter.line(linei(k),3)+1i*parameter.line(linei(k),4);
Z1(j,i)=Z1(i,j);
Y1(i,j)=-1/Z1(i,j);
Y1(j,i)=Y1(i,j);
end
% 生成变压器的阻抗矩阵和导纳矩阵
geni=find(parameter.gen(:,1)>0);
for k=1:length(geni)
i=parameter.gen(geni(k),1);
j=parameter.gen(geni(k),2);
Z2(i,j)=parameter.gen(geni(k),3)+1i*parameter.gen(geni(k),4);
Z2(j,i)=Z2(i,j);
Y2(i,j)=-1/Z2(i,j);
Y2(j,i)=Y2(i,j);
end
% 生成接地导线的阻抗矩阵和导纳矩阵
Z0=diag(parameter.Z0);
Y0=-1*diag(1./diag(Z0));
% 生成节点坐标
x0=parameter.x0;
% 计算节点注入功率
S=zeros(n,1);
for k=1:length(geni)
i=parameter.gen(geni(k),1);
S(i)=parameter.gen(geni(k),5)+1i*parameter.gen(geni(k),6);
end
end
```