Load Flow Solution Using Newton Raphson Method
Load Flow Solution Using Newton Raphson Method
Aim:
To write the MATLAB coding to find the electrical parameters of various buses in a power
system using Newton Raphson method.
Apparatus Required:
Theory:
The Newton Raphson method is a power full method of solving non-linear algebric equation.
It work is faster and is sure to coverage in most cases. It is indeed the practical method of load flow
solution of large power network. In order to solve non-linear equations through this method we need
to calculate jacobian matrix. If is obtained by differentiating the function vector f with respect to x
and evaluating it at x.
F0+J0 X0=0
These sets of linear algebraic equation can be solved effectively by triangularization and
block substitution .Iterations are continued till Where i=1,2,3……..n
Its only drawback is large requirement of complex. Computer memory which has been over
come through a compact storage scheme convergence can be speeded up by performing the first
iteration through Gs method and using the value so obtained as starting Newton Raphson method.
Algorithm:
Step 1: Assume a flat voltage profile 1+j0bfor all buses except the slack bus
Step 3: Set iteration count, k=0 and assumed voltage profile of the buses are denoted as
Vi 0 , V20 ,.........Vn0
Step 5: Check for slack bus, If it is a slack bus go to step 13 otherwise go to next step
Step 6: Calculate the real and reactive power of bus P using the equation
n
Ppk e kp e kp G pq Fqk B pq Fqk Fqk G pq eqk B pq
q 1
n
Q pk F pk e kp G pq Fqk B pq e kp Fqk G pq eqk B pq
q 1
P k Pp spec Ppk
Step 8:Check the generator bus if it is a generator bus go to next step otherwise go to step 12
Step 9:Check for reactive power limit violation of generator bus.for this compare the calculated
reactive power Qpkwith specified limits if the limit is violated go to step 11 otherwise go to next
step else go to step 13
Step 10: Check for reactive power limit violation ofgenerator buses if the limit is violated go to step
12 else go to next step
Step 11: If the calculated reactive power is within the specified limits then consider this bus as
generator bus. Now calculate the voltage residue
2 2 2
V pk Vp spec V pk then go to step 12
Step 12:Is reactive power limit is violated then treat this bus as a load bus (i.e) if a Qpk<Qp mn then Qp
spc=Qp1 min
Q pk Q p spec Q pk
Step 14: Repeat the step 6 to 13 untill all residues are calculated for this increment the bus count by 1
and go to step 6 until the Bs count is
Step15: Determine largest of the absolute value of residue let this change be ΔE
Step16: Compare ΔE & ε if ΔE < E then goto step 11 if ΔE > E go to next step
Step17: Determine the elements of jacobian matrix by partially differentiating the load flow equation
and evaluates using Kth iteration values
Step18: Calculate the increments in real and reactive part of voltages e kp & pk by solving the
matrix B=JC
e kp1 e kp e kp
pk 1 pk pk
e kp 1
V pk 1 e
k 1 2
p
k 1 2
p & p tan
k 1 1
k 1
p
Therefore
V pk 1 V pk 1 pk 1
clear all;
clc;
n=input('Enter the number of buses');
for i=1:n
for j=1:n
fprintf('Enter the Admittance Value Between %d & %d',i,j)
y(i,j)=input('');
end
end
yb(n,n)=0;
for i=1:n
for j=1:n
if i==j
for k=1:n
yb(i,j)=yb(i,j)+y(i,k);
end
else
yb(i,j)=-y(i,j);
end
end
end
mag(1)=1.05;
for i=2:n
mag(i)=1;
end
th(1:n)=0;
for i=1:n
acp(i)=input('enter real power value:');
end
for i=1:n
acq(i)=input('enter reactive power value:');
end
my=abs(yb);an=angle(yb);
g=real(yb);b=imag(yb);
yb
mag
th
acp
acq
Pp(n)=0;Qq(n)=0;
for i=2:n
for j=1:n
Pp(i)=Pp(i)+mag(i)*my(i,j)*mag(j)*cos(an(i,j)-th(i)+th(j));
Qq(i)=Qq(i)-mag(i)*my(i,j)*mag(j)*sin(an(i,j)-th(i)+th(j));
end
end
Pp
Qq
for i=2:n
for j=2:n
if i~=j
j1(i,j)=mag(i)*mag(j)*(g(i,j)*sin(th(i)-th(j))-b(i,j)*cos(th(i)-th(j)));
j3(i,j)=-mag(i)*mag(j)*(g(i,j)*cos(th(i)-th(j))+b(i,j)*sin(th(i)-th(j)));
j2(i,j)=-j3(i,j);
j4(i,j)=j1(i,j);
else
j1(i,j)=-Qq(i)-b(i,j)*(mag(i)^2);
j2(i,j)=Pp(i)+g(i,j)*(mag(i)^2);
j3(i,j)=Pp(i)-g(i,j)*(mag(i)^2);
j4(i,j)=Qq(i)-b(i,j)*(mag(i)^2);
end
end
end
ja1(1:n-1,1:n-1)=j1(2:n,2:n);
ja2(1:n-1,1:n-1)=j2(2:n,2:n);
ja3(1:n-1,1:n-1)=j3(2:n,2:n);
ja4(1:n-1,1:n-1)=j4(2:n,2:n);
jacob=[ja1 ja2;ja3 ja4]
delp(1:n-1)=acp(2:n)-Pp(2:n);
delq(1:n-1)=acq(2)-Qq(2);
Char=inv(jacob)*[delp delq]';
Chth(2:n)=Char(1:n-1);
Chmag(2:n)=Char(n:2*n-2);
mag=mag+Chmag;
th=th+Chth;
fprintf('the voltage values for buses');
mag
fprintf('The angle values for buses');
th
Result: