y.m

来自「计算机潮流计算 应用的是牛拉法」· M 代码 · 共 45 行

M
45
字号
function     Y = y(bus,line)
% Purpose:   build admittance matrix Y from the line data
%
% Input:     bus  - bus data
%            line - line data
%
% Output:    Y    - admittance matrix
[nb,mb]=size(bus);
[nl,ml]=size(line);
Y=zeros(nb,nb);         % 对导纳矩阵赋初值0 
for k=1:nl
    I=line(k,1);                       %读入线路参数
    J=line(k,2);
    Zt=line(k,3)+j*line(k,4);
    if Zt==0
        Yt=10^10;
    else
        Yt=1/Zt;
    end
    Ym=line(k,5)+j*line(k,6);
    K=line(k,7);
    
    if (K==0)&(J~=0)                 % 普通线路: K=0;
        Y(I,I)=Y(I,I)+Yt+Ym;
        Y(J,J)=Y(J,J)+Yt+Ym;
        Y(I,J)=Y(I,J)-Yt;
        Y(J,I)=Y(I,J);
    end
if (K==0)&(J==0)               % 对地支路: K=0,J=0,R=X=0;
        Y(I,I)=Y(I,I)+Ym;
    end
    if K>0                        % 变压器线路: Zt和Ym为折算到i侧的值,K在j侧
        Y(I,I)=Y(I,I)+Yt+Ym;
        Y(J,J)=Y(J,J)+Yt/K/K;
        Y(I,J)=Y(I,J)-Yt/K;
        Y(J,I)=Y(I,J);
    end
    if K<0                      % 变压器线路: Zt和Ym为折算到K侧的值,K在i侧
        Y(I,I)=Y(I,I)+Yt+Ym;
        Y(J,J)=Y(J,J)+K*K*Yt;
        Y(I,J)=Y(I,J)+K*Yt;
        Y(J,I)=Y(I,J);
    end
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?