You are on page 1of 4

Matlab coding for NR Method of an IEEE 9 bus system:

function [ L] = nr()
[Ym,Ya]= Ybus();
L=[ 9 2
6
0
0
0
0
0
1 0
1.04
0
0
0
0
0
2 2
1.025
0
1.63
0
0
0
3 2
1.025
0
0.85
0
0
0
4 1
1
0
0
0
0
0
5 1
1
0
0
0
1.125 0.45
6 1
1
0
0
0
0.81
0.27
7 1
1
0
0
0
0
0
8 1
1
0
0
0
0.9
0.315
9 1
1
0
0
0
0
0];
P=zeros(L(1,1),1);
Q=zeros(L(1,1),1);
J1=zeros(L(1,1)-1);
J2=zeros(L(1,1)-1,L(1,1)-L(1,2)-1);
J3=zeros(L(1,1)-L(1,2)-1,L(1,1)-1);
J4=zeros(L(1,1)-L(1,2)-1,L(1,1)-L(1,2)-1);
dP=zeros(L(1,1)-1,1);
dQ=zeros(L(1,1)-L(1,2)-1,1);
%P,Qcal
for itr=1:10
for i=1:L(1,1)
p=0;
for j=1:L(1,1)
p=p+(L(i+1,3)*L(j+1,3)*Ym(i,j)*cos(Ya(i,j)-L(i+1,4)+L(j+1,4)));
end
P(L(i+1,1))=p;
end
for i=1:L(1,1)
p=0;
for j=1:L(1,1)
p=p+(L(i+1,3)*L(j+1,3)*Ym(i,j)*sin(Ya(i,j)-L(i+1,4)+L(j+1,4)));
end
Q(L(i+1,1))=-p;
end
%J1
for i = 1: L(1,1)-1
for j=1: L(1,1)-1
if(i==j)
m=-Q(i+1)-(L(i+2,3)^2*Ym(i+1,i+1)*sin(Ya(i+1,i+1)));
else
m=-(L(i+2,3)*L(j+2,3)*Ym(i+1,j+1)*sin(-L(i+2,4)+L(j+2,4)+
(Ya(i+1,j+1))));
end
J1(i,j)=m;
end
end
%J2
for i = 1: L(1,1)-1
s=1;
for j=1: L(1,1)-1
if(L(j+2,2)==1)
if(i==j)

m=(P(i+1)+
(L(i+2,3)^2*Ym(i+1,i+1)*cos(Ya(i+1,i+1))))/L(i+2,3);
else
m=L(i+2,3)*Ym(i+1,j+1)*cos(-L(i+2,4)+L(j+2,4)+
(Ya(i+1,j+1)));
end
J2(i,s)=m;
s=s+1;
end
end
end
%J3
s=1;
for i = 1: L(1,1)-1
if(L(i+2,2)==1)
for j=1: L(1,1)-1
if(i==j)
m=P(i+1)-(L(i+2,3)^2*Ym(i+1,i+1)*cos(Ya(i+1,i+1)));
else
m=-L(j+2,3)*L(i+2,3)*Ym(i+1,j+1)*cos(-L(i+2,4)+L(j+2,4)+
(Ya(i+1,j+1)));
end
J3(s,j)=m;
end
s=s+1;
end
end
%J4
r=1;
for i = 1: L(1,1)-1
s=1;
if(L(i+2,2)==1)
for j=1: L(1,1)-1
if(L(j+2,2)==1)
if(i==j)
m=(Q(i+1)(L(i+2,3)^2*Ym(i+1,i+1)*sin(Ya(i+1,i+1))))/L(i+2,3);
else
m=-L(i+2,3)*Ym(i+1,j+1)*sin(-L(i+2,4)+L(j+2,4)+
(Ya(i+1,j+1)));
end
J4(r,s)=m;
s=s+1;
end
end
r=r+1;
end
end
Ja=horzcat(J1,J2);
Jb=horzcat(J3,J4);
J=vertcat(Ja,Jb);
s=1;
for i=1:L(1,1)
if(L(i+1,2)~=0)
dP(s,1)= L(i+1,5)-L(i+1,7)-P(L(i+1,1));
s=s+1;
end

end
s=1;
for i=1:L(1,1)
if(L(i+1,2)==1)
dQ(s,1)= L(i+1,6)-L(i+1,8)-Q(L(i+1,1));
s=s+1;
end
end
D=vertcat(dP,dQ);
d=inv(J)*D;
for i=1:L(1,1)-1
L(i+2,4)=L(i+2,4)+d(i);
end
for j=1:L(1,1)
if(L(j+1,2)==1)
i=i+1;
L(j+1,3)=L(j+1,3)+d(i);
end
end
if(abs(d)<(0.00001))
break
end
end
p=0;
for j=1:L(1,1)
p=p+(L(2,3)*L(j+1,3)*Ym(1,j)*cos(Ya(1,j)-L(2,4)+L(j+1,4)));
end
L(2,5)=p;
p=0;
for j=1:L(1,1)
p=p+(L(2,3)*L(j+1,3)*Ym(1,j)*sin(Ya(1,j)-L(2,4)+L(j+1,4)));
end
L(2,6)=-p;
for s=1:L(1,1)
if(L(s+1,2)==2)
p=0;
for j=1:L(1,1)
p=p+(L(s+1,3)*L(j+1,3)*Ym(s,j)*sin(Ya(s,j)-L(s+1,4)+L(j+1,4)));
end
L(s+1,6)=-p;
end
end

Y Bus :
function [ Ym,Ya,a,p] = Ybus()
abc = fopen('ybus.txt');
A=fscanf(abc,'%f',[5 inf]);
A=A';
a=A(1,1);
b=A(1,2);
c=A(1,3);
d=A(1,4);
p=A(1,5);

Y=zeros(a);
S=zeros(a);
Yr=zeros(a);
k=1;
for s=1:b
k=k+1;
x=A(k,1);
y=A(k,2);
R=A(k,3);
X=A(k,4);
Y(x,y)=(1/(R+(1i*X)));
Y(y,x)=(1/(R+(1i*X)));
end
for s=1:c
k=k+1;
x=A(k,1);
y=A(k,2);
R=A(k,3);
X=A(k,4);
Y(x,y)=(1/(R+(1i*X)));
Y(y,x)=Y(x,y);
end
for s=1:d
k=k+1;
x=A(k,1);
y=A(k,2);
R=A(k,3);
X=A(k,4);
S(x)=S(x)+((R+(1i*X)));
S(y)=S(y)+((R+(1i*X)));
end
for y=1:a
for x=1:a
if(x~=y)
Y(y,y)=Y(y,y)+Y(y,x);
end
end
end
for x=1:a
for y=1:a
if(x==y)
Yr(x,x)=Y(x,x)+S(x);
else
Yr(x,y)=(-Y(x,y));
Yr(y,x)=Yr(x,y);
end
end
end
Ym=abs(Yr);
Ya=angle(Yr);
display('Y bus formed');

You might also like