% Delivered to the U.S. Government in Accordance with Contract FA8650-10-C-7080.
% 
% (c) 2011 United Technologies Corp.
% Developed with the sponsorship of the Defense Advanced Research Projects Agency (DARPA).
% Permission is hereby granted, free of charge, to any person obtaining a copy of this data,
% including any software or models in source or binary form, as well as any drawings, 
% specifications, and documentation (collectively "the Data"), to deal in the Data without 
% restriction, including without limitation the rights to use, copy, modify, merge, publish,
% distribute, sublicense, and/or sell copies of the Data, and to permit persons to whom the Data
% is furnished to do so, subject to the following conditions:
%  
% The above copyright notice and this permission notice shall be included in all copies or
% substantial portions of the Data.
%  
% THE DATA IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
% BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
% NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS, SPONSORS, DEVELOPERS, CONTRIBUTORS, OR
% COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
% OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE DATA OR THE
% USE OR OTHER DEALINGS IN THE DATA.

% Authors:  Fernando Rodriguez                      John Finn
%           Sr Engineer/Scientist                   Contractor (Summer Intern 2011)
%           Power Electronics Systems               Embedded Systems & Networks
%           United Technologies Research Center     United Technologies Research Center
%           411 Silver Lane                         411 Silver Lane
%           East Hartford,CT 06108                  East Hartford,CT 06108
%           rodrigf@utrc.utc.com                    ccfinnje@utrc.utc.com
%           tel: (860) 610-7102                     tel: +1 860-610-7696
%%
% METAII_lfybus.m
%  This program generates Ybus for an aircraft EPS
function [Ybus, nbr, nl, nr] = lfybus(linedata)
nl = linedata(:,1);             % left node vector
nr = linedata(:,2);             % rigt node vector
Z = linedata(:,3);              % "Z=R+jX" impedance vector
nbr = length(linedata(:,1));    % no. of rows in linedata
nbus = max(max(nl), max(nr));   % "nbus" is the number of buses
y= ones(nbr,1)./Z;              % converst Z into admitances "y"

%Initialize Ybus to zero
Ybus=zeros(nbus,nbus);
%Off diagonal elements fo Ybus
for i = 1:nbr;
    Ybus(nl(i),nr(i))=Ybus(nl(i),nr(i))-y(i);
    Ybus(nr(i),nl(i))=Ybus(nl(i),nr(i));
end
%Diagonal elements of Ybus
for  i = 1:nbus
    for ii=1:nbr
        if nl(ii)==i || nr(ii)==i
            Ybus(i,i) = Ybus(i,i) + y(ii);
        else
        end
    end
end
end