Ybus.m
上传用户:eighthdate
上传日期:2014-05-24
资源大小:270k
文件大小:1k
源码类别:

其他行业

开发平台:

Matlab

  1. %  Bus Admittance Matrix
  2. %  Copyright (c)  1998 by H. Saadat.
  3. function[Ybus] = ybus(zdata)
  4. nl=zdata(:,1); nr=zdata(:,2); R=zdata(:,3); X=zdata(:,4);
  5. nbr=length(zdata(:,1)); nbus = max(max(nl), max(nr));
  6. Z = R + j*X;                            %branch impedance
  7. y= ones(nbr,1)./Z;                     %branch admittance
  8. Ybus=zeros(nbus,nbus);          % initialize Ybus to zero
  9. for k = 1:nbr;   % formation of the off diagonal elements
  10.     if nl(k) > 0 & nr(k) > 0
  11.     Ybus(nl(k),nr(k)) = Ybus(nl(k),nr(k)) - y(k);
  12.     Ybus(nr(k),nl(k)) = Ybus(nl(k),nr(k));
  13.     end
  14. end
  15. for n = 1:nbus       % formation of the diagonal elements
  16.     for k = 1:nbr
  17.     if nl(k) == n | nr(k) == n
  18.     Ybus(n,n) = Ybus(n,n) + y(k);
  19.     else, end
  20.     end
  21. end