You are on page 1of 3

Program:- This program forms YBUS by adding one element at a time

ydata=[1 1 2 1/(0.05+j*0.15) 0 0 2 1 3 1/(0.1+j*0.3) 0 0 3 2 3


1/(0.15+j*0.45) 0 0 4 2 4 1/(0.10+j*30) 0 0 5 3 4 1/(0.5+j*0.15) 0
0];
elements=max(ydata(:,1))
for i=1:elements,
yprimitive(i,i)=ydata(i,4)
if (ydata(i,5)~=0)
j=ydata(i,5)
ymutual=ydata(i,6)
yprimitive(i,j)=ymutual
end
end

buses=max(max(ydata(:,2)),max(ydata(:,3)));
YBUS=zeros(buses,buses);
for row=1:elements,
if ydata(row,5)==0
i1=ydata(row,2);
j1=ydata(row,3);
if i1~=0&j1~=0
YBUS(i1,i1)=YBUS(i1,i1)+ydata(row,4);
YBUS(i1,j1)=YBUS(i1,j1)-ydata(row,4);
YBUS(j1,i1)=YBUS(i1,j1);
YBUS(j1,j1)=YBUS(j1,j1)+ydata(row,4);
end
if i1==0&j1~=0
YBUS(i1,i1)=YBUS(i1,i1)+ydata(row,4);
end
if i1~=0&j1==0
YBUS(j1,j1)=YBUS(j1,j1)+ydata(row,4);
end
end
if ydata(row,5)~=0
i1=ydata(row,2);
j1=ydata(row,3);
mutualwith=ydata(i1,5);
k=ydata(mutualwith,2);
l=ydata(mutualwith,3);

zs1=1/ydata(row,4);
zs2=1/ydata(mutualwith,4);
zm=1/ydata(row,6);
zsm=[zs1 zm zm zs2];
ysm=inv(zsm);
if i1~=0&j1~=0&k~=0&1~=0
YBUS(i1,i1)=YBUS(i1,i1)+ysm(1,1);
YBUS(j1,j1)=YBUS(j1,j1)+ysm(1,1);
YBUS(k,k)=YBUS(k,k)+ysm(2,2);
YBUS(l,l)=YBUS(l,l)+ysm(2,2);
YBUS(i1,j1)=YBUS(i1,j1)-ysm(1,1);
YBUS(j1,i1)=YBUS(i1,j1);
YBUS(j1,i1)=YBUS(i1,j1);
YBUS(i1,k)=YBUS(i1,k)+ysm(1,2);
YBUS(k,i1)=YBUS(i1,k);
YBUS(j1,k)=YBUS(j1,k)-ysm(1,2);
YBUS(k,j1)=YBUS(j1,k);
end
end
end
YBUS
Result:

You might also like