Professional Documents
Culture Documents
htm
CHAPTER 4
LOAD FLOW STUDIES
Load flow studies are one of the most important aspects of power system planning
and operation. The load flow gives us the sinusoidal steady state of the entire system
voltages, real and reactive power generated and absorbed and line losses. Since the load is a
static quantity and it is the power that flows through transmission lines, the purists prefer to
call this Power Flow studies rather than load flow studies. We shall however stick to the
original nomenclature of load flow.
Through the load flow studies we can obtain the voltage magnitudes and angles at
each bus in the steady state. This is rather important as the magnitudes of the bus voltages are
required to be held within a specified limit. Once the bus voltage magnitudes and their angles
are computed using the load flow, the real and reactive power flow through each line can be
computed. Also based on the difference between power flow in the sending and receiving
ends, the losses in a particular line can also be computed. Furthermore, from the line flow we
can also determine the over and under load conditions.
The steady state power and reactive powers supplied by a bus in a power network are
expressed in terms of nonlinear algebraic equations. We therefore would require iterative
methods for solving these equations. In this chapter we shall discuss two of the load flow
methods. We shall also delineate how to interpret the load flow results.
4.1 REAL AND REACTIVE POWER INJECTED IN A BUS
For the formulation of the real and reactive power entering a bus, we need to define
the following quantities. Let the voltage at the ith bus be denoted by
Vi Vi i Vi cos i j sin i
(4.1)
(4.2)
Similarly the mutual admittance between the buses i and j can be written as
Yij Yij ij Yij cos ij j sin ij Gij jBij
(4.3)
Let the power system contains a total number of n buses. The current injected at bus-i
is given as
2.2
I i Yi1V1 Yi 2V2 YinVn
n
YikVk
k 1
(4.4)
It is to be noted we shall assume the current entering a bus to be positive and that leaving the
bus to be negative. As a consequence the power and reactive power entering a bus will also
be assumed to be positive. The complex power at bus-i is then given by
n
Pi jQi Vi I i Vi YikVk
k 1
(4.5)
k 1
Note that
Pi YikViVk cos ik k i
(4.6)
k 1
Qi YikViVk sin ik k i
(4.7)
k 1
2.3
2. Voltage Controlled Buses: These are the buses where generators are connected.
Therefore the power generation in such buses is controlled through a prime mover while
the terminal voltage is controlled through the generator excitation. Keeping the input
power constant through turbine-governor control and keeping the bus voltage constant
using automatic voltage regulator, we can specify constant PGi and Vi for these buses.
This is why such buses are also referred to as P-V buses. It is to be noted that the
reactive power supplied by the generator QGi depends on the system configuration and
cannot be specified in advance. Furthermore we have to find the unknown angle i of
the bus voltage.
3. Slack or Swing Bus: Usually this bus is numbered 1 for the load flow studies. This bus
sets the angular reference for all the other buses. Since it is the angle difference between
two voltage sources that dictates the real and reactive power flow between them, the
particular angle of the slack bus is not important. However it sets the reference against
which angles of all the other bus voltages are measured. For this reason the angle of this
bus is usually chosen as 0. Furthermore it is assumed that the magnitude of the voltage
of this bus is known.
Now consider a typical load flow problem in which all the load demands are known.
Even if the generation matches the sum total of these demands exactly, the mismatch
between generation and load will persist because of the line I2R losses. Since the I2R loss
of a line depends on the line current which, in turn, depends on the magnitudes and
angles of voltages of the two buses connected to the line, it is rather difficult to estimate
the loss without calculating the voltages and angles. For this reason a generator bus is
usually chosen as the slack bus without specifying its real power. It is assumed that the
generator connected to this bus will supply the balance of the real power required and
the line losses.
4.3 PREPARATION OF DATA FOR LOAD FLOW
Let real and reactive power generated at bus-i be denoted by PGi and QGi respectively.
Also let us denote the real and reactive power consumed at the ith bus by PLi and QLi
respectively. Then the net real power injected in bus-i is
Pi , inj PGi PLi
(4.8)
Let the injected power calculated by the load flow program be Pi,calc. Then the mismatch
between the actual injected and calculated values is given by
Pi Pi , inj Pi , calc PGi PLi Pi , calc
(4.9)
In a similar way the mismatch between the reactive power injected and calculated values is
given by
Qi Qi ,inj Qi , calc QGi QLi Qi , calc
(4.10)
The purpose of the load flow is to minimize the above two mismatches. It is to be noted that
(4.6) and (4.7) are used for the calculation of real and reactive power in (4.9) and (4.10).
2.4
However since the magnitudes of all the voltages and their angles are not known a priori, an
iterative procedure must be used to estimate the bus voltages and their angles in order to
calculate the mismatches. It is expected that mismatches Pi and Qi reduce with each
iteration and the load flow is said to have converged when the mismatches of all the buses
become less than a very small number.
For the load flow studies we shall consider the system of Fig. 4.1, which has 2
generator and 3 load buses. We define bus-1 as the slack bus while taking bus-5 as the P-V
bus. Buses 2, 3 and 4 are P-Q buses. The line impedances and the line charging admittances
are given in Table 4.1. Based on this data the Ybus matrix is given in Table 4.2. This matrix is
formed using the same procedure as given in Section 3.1.3. It is to be noted here that the
sources and their internal impedances are not considered while forming the Ybus matrix for
load flow studies which deal only with the bus voltages.
Fig. 4.1 The simple power system used for load flow studies.
Table 4.1 Line impedance and line charging data of the system of Fig. 4.1.
Line (bus to bus)
Impedance
1-2
0.02 + j0.10
j0.030
1-5
0.05 + j0.25
j0.020
2-3
0.04 + j0.20
j0.025
2-5
0.05 + j0.25
j0.020
3-4
0.05 + j0.25
j0.020
3-5
0.08 + j0.40
j0.010
4-5
0.10 + j0.50
j0.075
2.6923 j13.4115
1.9231 + j9.6154
0.7692 + j3.8462
1.9231 + j9.6154
3.6538 j18.1942
0.9615 + j4.8077
0.7692 + j3.8462
0.9615 + j4.8077
2.2115 j11.0027
0.7692 + j3.8462
0.4808 + j2.4038
0.7692 + j3.8462
1.1538 j5.6742
0.3846 + j1.9231
0.7692 + j3.8462
0.7692 + j3.8462
0.4808 + j2.4038
0.3846 + j1.9231
2.4038 j11.8942
2.5
The bus voltage magnitudes, their angles, the power generated and consumed at each
bus are given in Table 4.3. In this table some of the voltages and their angles are given in
boldface letters. This indicates that these are initial data used for starting the load flow
program. The power and reactive power generated at the slack bus and the reactive power
generated at the P-V bus are unknown. Therefore each of these quantities are indicated by a
dash (). Since we do not need these quantities for our load flow calculations, their initial
estimates are not required. Also note from Fig. 4.1 that the slack bus does not contain any
load while the P-V bus 5 has a local load and this is indicated in the load column.
Table 4.3 Bus voltages, power generated and load initial data.
Bus voltage
Bus no.
Power generated
Load
Magnitude (pu)
Angle (deg)
P (MW)
Q (MVAr)
P (MW)
Q (MVAr)
1.05
96
62
35
14
16
1.02
48
24
11
(4.11)
We can rewrite (4.11) as
2.6
Vi
Yii
Vi
(4.12)
In this fashion the voltages of all the buses are updated. We shall outline this procedure with
the help of the system of Fig. 4.1, with the system data given in Tables 4.1 to 4.3. It is to be
noted that the real and reactive powers are given respectively in MW and MVAr. However
they are converted into per unit quantities where a base of 100 MVA is chosen.
4.4.1 Updating Load Bus Voltages
Let us start the procedure with bus-2. Since this is load bus, both the real and reactive
power into this bus is known. We can therefore write from (4.12)
1
V2
1
Y22
V2
Y21V1 Y23V3
Y24V4
Y25V5
(4.13)
From the data given in Table 4.3 we can write
1
V2
1 0.96 j 0.62
Y22
1
It is to be noted that since the real and reactive power is drawn from this bus, both these
quantities appear in the above equation with a negative sign. With the values of the Ybus
elements given in Table 4.2 we get V2(1) = 0.9927 2.5959.
The first iteration voltage of bus-3 is given by
V3
1
Y33
Y35V5
(4.14)
Note that in the above equation since the update for the bus-2 voltage is already available, we
used the 1st iteration value of this rather than the initial value. Substituting the numerical data
we get V3(1) = 0.9883 2. 8258. Finally the bus-4 voltage is given by
V4
1 P4,inj jQ4,inj
1
1
0
Y
V
Y
V
Y
V
Y
V
41
1
42
2
44
3
45
5
Y44
V4
(4.15)
Solving we get V4(1) = 0. 9968 3.4849.
4.4.2 Updating P-V Bus Voltages
2.7
It can be seen from Table 4.3 that even though the real power is specified for the P-V
bus-5, its reactive power is unknown. Therefore to update the voltage of this bus, we must
first estimate the reactive power of this bus. Note from Fig. 4.11 that
(4.16)
And hence we can write the kth iteration values as
k
Y V Y V
Qi ,inj Im Vi
k 1
i1 1
i2 2
YiiVi
k 1
YinVn
k 1
(4.17)
For the system of Fig. 4.1 we have
1
(4.18)
This is computed as 0.0899 per unit. Once the reactive power is estimated, the bus-5 voltage
is updated as
V5
1 P5,inj jQ5,inj
1
1
0
Y
V
Y
V
Y
V
Y
V
51 1
52 2
53 3
54 4
0
Y55
V5
(4.19)
It is to be noted that even though the power generation in bus-5 is 48 MW, there is a local
load that is consuming half that amount. Therefore the net power injected by this bus is 24
MW and consequently the injected power P5,inj in this case is taken as 0.24 per unit. The
voltage is calculated as V4(1) = 1.0169 0.8894. Unfortunately however the magnitude of
the voltage obtained above is not equal to the magnitude given in Table 4.3. We must
therefore force this voltage magnitude to be equal to that specified. This is accomplished by
V5, corr
V5
V5
V5
1
1
(4.20)
This will fix the voltage magnitude to be 1.02 per unit while retaining the phase of 0.8894.
The corrected voltage is used in the next iteration.
4.4.3 Convergence of the Algorithm
As can be seen from Table 4.3 that a total number of 4 real and 3 reactive powers are
known to us. We must then calculate each of these from (4.6) and (4.7) using the values of the
2.8
voltage magnitudes and their angle obtained after each iteration. The power mismatches are
then calculated from (4.9) and (4.10). The process is assumed to have converged when each
of P2, P3, P4, P5, Q2, Q3 and Q4 is below a small pre-specified value. At this point
the process is terminated.
Sometimes to accelerate computation in the P-Q buses the voltages obtained from
(4.12) is multiplied by a constant. The voltage update of bus-i is then given by
Vi , acc
1 Vi , acc
k 1
Vi
Vi , acc
k 1
Vi
Vi , acc
k 1
(4.21)
where is a constant that is known as the acceleration factor. The value of has to be below
2.0 for the convergence to occur. Table 4.4 lists the values of the bus voltages after the 1 st
iteration and number of iterations required for the algorithm to converge for different values
of . It can be seen that the algorithm converges in the least number of iterations when is
1.4 and the maximum number of iterations are required when is 2. In fact the algorithm will
start to diverge if larger values of acceleration factor are chosen. The system data after the
convergence of the algorithm will be discussed later.
Table 4.4 Gauss-Seidel method: bus voltages after 1st iteration and number of iterations required for convergence
for different values of .
Bus voltages (per unit) after 1st iteration
V2
V3
V4
V5
No of iterations
for convergence
0.9927 2.6
0.9883 2.83
0.9968 3.48
1.02 0.89
28
0.9874 5.22
0.9766 8.04
0.9918 14.02
1.02 4.39
860
1.8
0.9883 4.7
0.9785 6.8
0.9903 11.12
1.02 3.52
54
1.6
0.9893 4.17
0.9807 5.67
0.9909 8.65
1.02 2.74
24
1.4
0.9903 3.64
0.9831 4.62
0.9926 6.57
1.02 2.05
14
1.2
0.9915 3.11
0.9857 3.68
0.9947 4.87
1.02 1.43
19
f n x1 ,, xn n
(4.22)
where f1, , fn are functions of the variables x1, x2, , xn. We can then define another set of
functions g1, , gn as given below
2.9
g1 x1 ,, xn f1 x1 ,, xn 1 0
g 2 x1 ,, xn f 2 x1 ,, xn 2 0
(4.23)
g n x1 ,, xn f n x1 ,, xn n 0
Let us assume that the initial estimates of the n variables are x1(0), x2(0), , xn(0). Let us
add corrections x1(0), x2(0), , xn(0) to these variables such that we get the correct solution
of these variables defined by
0
x1 x1 x1
x2 x2 x2
(4.24)
0
0
xn xn xn
The functions in (4.23) then can be written in terms of the variables given in (4.24) as
g k x1 ,, xn g k x1 x1 ,, xn xn , k 1, , n
(4.25)
We can then expand the above equation in Taylors series around the nominal values of x1(0),
x2(0), , xn(0). Neglecting the second and higher order terms of the series, the expansion of gk,
k = 1, , n is given as
g k x1 ,, xn g k x1 ,, xn
0
x gx
0
x2
g k
x2
xn
g k
xn
(4.26)
where g k xi
g1 x1 g1 x2 g1 xn
g x g x g x
2
2
2
n
2 1
g n x1 g n x2 g n xn
x1 0
0
x2
0
xn
0 g x , , x
0 g1 x1 0 ,, xn 0
(4.27)
0 g n x1 ,, xn
The square matrix of partial derivatives is called the Jacobian matrix J with J(0) indicating that
the matrix is evaluated for the initial values of x2(0), , xn(0). We can then write the solution of
(4.27) as
2.10
x1 0
0
x2 J 0
0
xn
g1 0
0
1 g 2
0
g n
(4.28)
Since the Taylors series is truncated by neglecting the 2 nd and higher order terms, we cannot
expect to find the correct solution at the end of first iteration. We shall then have
1
x1 x1 x1
1
0
0
x2 x2 x2
(4.29)
xn xn xn
These are then used to find J(1) and gk(1), k = 1, , n. We can then find x2(1), , xn(1) from
an equation like (4.28) and subsequently calculate x2(1), , xn(1). The process continues till
gk, k = 1, , n becomes less than a small quantity.
g 2 x1 , x2 , x3 x1 x2 x22 3 x3 3 0
g3 x1 , x2 , x3 x1 x1 x3 x2 x3 6 0
2 x2
x1 2 x2
x3
2 x3
3
x1 x2
The initial values to start the Newton-Raphson procedure must be carefully chosen. For
example if we choose x1(0) = x2(0) = x3(0) = 0 then all the elements of the 1st row will be zero
making the matrix J(0) singular. In our procedure let us choose x1(0) = x2(0) = x3(0) = 1. The
Jacobian matrix is then given by
2
1
0
2
3
1
3
0
2.11
g1 0 0 g1 0 10
0
0
g
2
2
4
g3 0 0 g3 0 5
Consequently the corrections and updates calculated respectively from (4.28) and (4.29) are
x1 0
x1 1 5.75
4.75
1
0
3
3
The process converges in 7 iterations with the values of
x1 2, x2 3 and x3 4
2
P2
n
V2 Pn
V2 Q2
V1 n p
Q1 n p
V1 n p
(4.30)
J12
J 22
(4.31)
2.12
It can be seen that the size of the Jacobian matrix is (n + np 1) (n + np 1). For example
for the 5-bus problem of Fig. 4.1 this matrix will be of the size (7 7). The dimensions of the
submatrices are as follows:
J11: (n 1) (n 1), J12: (n 1) np, J21: np (n 1) and J22: np np
The submatrices are
P2
P2
n
2
J11
Pn Pn
2
n
P2
V2 V
2
V1 n p
J12
Pn
V2 V
2
V1 n p
(4.32)
P2
V1 n p
Pn
V1 n p
(4.33)
Q2
2
J 21
Q1 n p
2
Q2
n
Q1 n p
(4.34)
Q2
V2 V
2
J 22
Q1 n p
V2
V2
V1 n p
V1 n p
Q2
V1 n p
Q1 n p
(4.35)
V1 n p
2.13
Step-3: Use the estimated V(0) and (0) to calculate a total np number of injected
reactive power Qcalc(0) and equal number of reactive power mismatch Q(0).
Step-3: Use the estimated V(0) and (0) to formulate the Jacobian matrix J(0).
Step-4: Solve (4.30) for (0) and V(0)V(0).
Step-5: Obtain the updates from
1 0 0
V
(4.36)
(4.37)
Step-6: Check if all the mismatches are below a small number. Terminate the process
if yes. Otherwise go back to step-1 to start the next iteration with the updates given by (4.36)
and (4.37).
4.6.2 Formation of the Jacobian Matrix
We shall now discuss the formation of the submatrices of the Jacobian matrix. To do
that we shall use the real and reactive power equations of (4.6) and (4.7). Let us rewrite them
with the help of (4.2) as
n
k 1
k i
(4.38)
k 1
k i
(4.39)
A. Formation of J11
Let us define J11 as
L22
J11
Ln 2
L2 n
Lnn
(4.40)
It can be seen from (4.32) that Miks are the partial derivatives of Pi with respect to k. The
derivative Pi (4.38) with respect to k for i k is given by
Lik
Pi
YikViVk sin ik k i , i k
k
(4.41)
2.14
Similarly the derivative Pi with respect to k for i = k is given by
Lii
n
Pi
YikViVk sin ik k i
i k 1
k i
Pi
2
Qi Vi Bii
i
(4.42)
B. Formation of J21
Let us define J21 as
J 21
M 22
M
np 2
M 2n
M n p n
(4.43)
From (4.34) it is evident that the elements of J21 are the partial derivative of Q with respect to
. From (4.39) we can write
M ik
Qi
YikViVk cos ik k i , i k
k
(4.44)
M ii
n
Qi
2
YikViVk cos ik k i Pi Vi Gii
i k 1
k i
(4.45)
The last equality of (4.45) is evident from (4.38).
C. Formation of J12
Let us define J12 as
N 22
J12
N 2n p
(4.46)
n 2 N nn p
As evident from (4.33), the elements of J21 involve the derivatives of real power P with
respect to magnitude of bus voltage V. For i k, we can write from (4.38)
N ik Vk
Pi
YikViVk cos ik k i M ik
Vk
ik
(4.47)
2.15
For i = k we have
n
Pi
N ii Vi
Vi 2 Vi Gii YikVk cos ik k i
Vi
k 1
k i
(4.48)
k 1
k i
D. Formation of J22
For the formation of J22 let us define
O22
J 22
O
np 2
O2 n p
(4.49)
On p n p
Qi
Vi YikViVk sin ik k i Lik ,
Vk
ik
(4.50)
Finally for i = k we have
Oii Vi
n
Qi
Vi 2 Vi Bii YikVk sin ik k i
Vk
k 1
k i
(4.51)
k 1
k i
We therefore see that once the submatrices J11 and J21 are computed, the formation of
the submatrices J12 and J22 is fairly straightforward. For large system this will result in
considerable saving in the computation time.
4.6.3 Solution of Newton-Raphson Load Flow
The Newton-Raphson load flow program is tested on the system of Fig. 4.1 with the
system data and initial conditions given in Tables 4.1 to 4.3. From (4.41) we can write
L23
Y23V2 V3
2.16
Q2
V2
B22 Y2 kV2 Vk
k 1
k 2
sin 2 k k 2
Q2
V2
In a similar way the rest of the components of the matrix J11(0) are calculated. This matrix is
given by
J11
4.8077
11.1058
3.8462
2.4519
18.8269
4.8077
3.9231
0
3.8462
5.8077
1.9615
3.9231
2.4519
1.9615
12.4558
For forming the off diagonal elements of J21 we note from (4.44) that
M 23
Y23V2 V3
P2
V2
G22 Y2 kV2 Vk
k 1
k 2
cos 2 k k 2
V2
G22 3.7654
Similarly the rest of the elements of the matrix J21 are calculated. This matrix is then given as
0
J 21
3.7654
0.9615
0.9615
2.2212
0.7692
0.7692
1.1615
0.7846
0.4904
0.3923
For calculating the off diagonal elements of the matrix J12 we note from (4.47) that
they are negative of the off diagonal elements of J21. However the size of J21 is (3 4) while
the size of J12 is (4 3). Therefore to avoid this discrepancy we first compute a matrix M that
is given by
2.17
M 11
M
21
M 31
M 41
M 12
M 22
M 13
M 23
M 32
M 42
M 33
M 43
M 14
M 24
M 34
M 44
The elements of the above matrix are computed in accordance with (4.44) and (4.45). We can
then define
J 21 M 1 : 3, 1 : 4 and J12 M 1 : 4, 1 : 3
Furthermore the diagonal elements of J12 are overwritten in accordance with (4.48). This
matrix is then given by
J12
3.5423
0.9615
0.7846
0.9615
2.2019
0.7692
0.4904
0.7692
1.1462
0.3923
Finally it can be noticed from (4.50) that J22 = J11(1:3, 1:3). However the diagonal
elements of J22 are then overwritten in accordance with (4.51). This gives the following
matrix
J 22
17.5615
4.8077
4.8077
10.8996
3.8462
3.8462
5.5408
From the initial conditions the power and reactive power are computed as
0.3404
0.0369
0.1523
0.0535
0.2302
Then the updates at the end of the first iteration are given as
2 0
3
0
3
4
4.91
V2 0 0.9864
6.95
deg V3 0 0.9817
7.19
V 0 0.9913
4
3.09
2.18
The load flow converges in 7 iterations when all the power and reactive power mismatches
are below 106.
4.7 LOAD FLOW RESULTS
In this section we shall discuss the results of the load flow. It is to be noted here that
both Gauss-Seidel and Newton-Raphson methods yielded the same result. However the
Newton-Raphson method converged faster than the Gauss-Seidel method. The bus voltage
magnitudes, angles of each bus along with power generated and consumed at each bus are
given in Table 4.4. It can be seen from this table that the total power generated is 174.6 MW
whereas the total load is 171 MW. This indicates that there is a line loss of about 3.6 MW for
all the lines put together. It is to be noted that the real and reactive power of the slack bus and
the reactive power of the P-V bus are computed from (4.6) and (4.7) after the convergence of
the load flow.
Table 4.4 Bus voltages, power generated and load after load flow convergence.
Bus voltage
Bus no.
Power generated
Load
Magnitude (pu)
Angle (deg)
P (MW)
Q (MVAr)
P (MW)
P (MVAr)
1.05
126.60
57.11
0.9826
5.0124
96
62
0.9777
7.1322
35
14
0.9876
7.3705
16
1.02
3.2014
48
15.59
24
11
(4.52)
(4.53)
Similarly the complex power entering bus-k is
Pk jQk Vk I k
(4.54)
(4.55)
The real power flow over different lines is listed in Table 4.5. This table also gives the I2R
loss along various segments. It can be seen that all the losses add up to 3.6 MW, which is the
net difference between power generation and load. Finally we can compute the line I2X drops
in a similar fashion. This drop is given by
2.19
Qdrop , i k Qi Qk
(4.56)
Power received
from (bus)
amount (MW)
in (bus)
amount (MW)
101.0395
98.6494
2.3901
25.5561
25.2297
0.3264
17.6170
17.4882
0.1288
0.7976
0.7888
0.0089
15.1520
14.9676
0.1844
18.6212
18.3095
0.3117
15.4566
15.2112
0.2454
Total = 3.5956
Consider the line segment 1-2. The voltage of bus-1 is V1 = 1.050 per unit while
that of bus-2 is V2 = 0.98265.0124 per unit. From (4.52) we then have
I12 0.9623 j 0.5187 1.0932 28.33 per unit
S12 V1I12
100 101.0395 j 54.4645
where the negative signal indicates the power is leaving bus-1. The complex power received
at bus-2 is
S 21 V2 I12
100 98.6494 j 42.5141
Therefore out of a total amount of 101.0395 MW of real power is dispatched from bus-1 over
the line segment 1-2, 98.6494 MW reaches bus-2. This indicates that the drop in the line
segment is 2.3901 MW. Note that
I12
MW
where R12 is resistance of the line segment 1-2. Therefore we can also use this method to
calculate the line loss.
Now the reactive drop in the line segment 1-2 is
2
MVAr
2.20
We also get this quantity by subtracting the reactive power absorbed by bus-2 from that
supplied by bus-1. The above calculation however does not include the line charging. Note
that since the line is modeled by an equivalent-, the voltage across the shunt capacitor is the
bus voltage to which the shunt capacitor is connected. Therefore the current I12 flowing
through line segment is not the current leaving bus-1 or entering bus-2 it is the current
flowing in between the two charging capacitors. Since the shunt branches are purely reactive,
the real power flow does not get affected by the charging capacitors. Each charging capacitor
is assumed to inject a reactive power that is the product of the half line charging admittance
and square of the magnitude of the voltage of that at bus. The half line charging admittance of
this line is 0.03. Therefore line charging capacitor will inject
0.03 100 V1
3.3075
MVAr
2.8968
MVAr
The power flow through the line segments 1-2 and 1-5 are shown in Fig. 4.2.
(a)
(b)
Fig. 4.2 Real and reactive power flow through (a) line segment 1-2 and (b) line segment 1-5. The thin lines
indicate reactive power flow while the thick lines indicate real power flow.
2.21
This is a function that can be called by various programs. The function can be invoked
by the statement
[yb,ych]=ybus;
where yb and ych are respectively the Ybus matrix and a matrix containing the line charging
admittances. It is assumed that the system data of Table 4.1 are given in matrix form and the
matrix that contains line impedances is zz, while ych contains the line charging
information. This program is stored in the file ybus.m. The program listing is given below.
% Function ybus
% THIS IS THE PROGRAM FOR CREATING Ybus MATRIX.
function [yb,ych]=ybus
% The line impedances are
zz=[0 0.02+0.1i 0 0 0.05+0.25i
0.02+0.1i 0 0.04+0.2i 0 0.05+0.25i
0 0.04+0.2i 0 0.05+0.25i 0.08+0.4i
0 0 0.05+0.25i 0 0.1+0.5i
0.05+0.25i 0.05+0.25i 0.08+0.4i 0.1+0.5i 0];
% The line chargings are
ych=j*[0 0.03 0 0 0.02
0.03 0 0.025 0 0.020
0 0.025 0 0.02 0.01
0 0 0.02 0 0.075
0.02 0.02 0.01 0.075 0];
% The Ybus matrix is formed here
for i=1:5
for j=1:5
if zz(i,j) == 0
yb(i,j)=0;
else
yb(i,j)=-1/zz(i,j);
end
end
end
for i=1:5
ysum=0;
csum=0;
for j=1:5
ysum=ysum+yb(i,j);
csum=csum+ych(i,j);
end
yb(i,i)=csum-ysum;
end
2.22
program lists the number of iterations required to converge, bus voltages and their
magnitudes and real and reactive power. The program listing is given below.
% Program loadflow_gs
% THIS IS A GAUSS-SEIDEL POWER FLOW PROGRAM
clear all
d2r=pi/180;w=100*pi;
% The Y_bus matrix is
[ybus,ych]=ybus;
g=real(ybus);b=imag(ybus);
% The given parameters and initial conditions are
p=[0;-0.96;-0.35;-0.16;0.24];
q=[0;-0.62;-0.14;-0.08;-0.35];
mv=[1.05;1;1;1;1.02];
th=[0;0;0;0;0];
v=[mv(1);mv(2);mv(3);mv(4);mv(5)];
acc=input('Enter the acceleration constant: ');
del=1;indx*=0;
% The Gauss-Seidel iterations starts here
while del>1e-6
% P-Q buses
for i=2:4
tmp1=(p(i)-j*q(i))/conj(v(i));
tmp2=0;
for k=1:5
if (i==k)
tmp2=tmp2+0;
else
tmp2=tmp2+ybus(i,k)*v(k);
end
end
vt=(tmp1-tmp2)/ybus(i,i);
v(i)=v(i)+acc*(vt-v(i));
end
% P-V bus
q5=0;
for i=1:5
q5=q5+ybus(5,i)*v(i);
end
q5=-imag(conj(v(5))*q5);
tmp1=(p(5)-j*q5)/conj(v(5));
tmp2=0;
for k=1:4
tmp2=tmp2+ybus(5,k)*v(k);
2.23
end
vt=(tmp1-tmp2)/ybus(5,5);
v(5)=abs(v(5))*vt/abs(vt);
% Calculate P and Q
for i=1:5
sm=0;
for k=1:5
sm=sm+ybus(i,k)*v(k);
end
s(i)=conj(v(i))*sm;
end
% The mismatch
delp=p-real(s)';
delq=q+imag(s)';
delpq=[delp(2:5);delq(2:4)];
del=max(abs(delpq));
indx=indx+1;
if indx==1
pause
end
end
'GS LOAD FLOW CONVERGES IN ITERATIONS',indx,pause
'FINAL VOLTAGE MAGNITUDES ARE',abs(v)',pause
'FINAL ANGLES IN DEGREE ARE',angle(v)'/d2r,pause
'THE REAL POWERS IN EACH BUS IN MW ARE',(real(s)+[0 0 0 0
0.24])*100,pause
'THE REACTIVE POWERS IN EACH BUS IN MVar ARE',(-imag(s)+[0 0 0 0
0.11])*100
Program nwtraph
THIS IS A NEWTON-RAPHSON PROGRAM
We have to solve three nonlinear equations given by
g1=x1^2-x2^2+x3^2-11=0
g2=x1*x2+x2^2-3x3-3=0
g3=x1-x1*x3+x2*x3-6=0
Let us assume the initial conditions of x1=x2=x3=1
The Jacobian matrix is
2.24
%
% J=[2x1 -2x2
%
x2
x1+2x2
%
1-x3
x3
2x3
-3
-x1+x2];
clear all
x=[1;1;1];
% The Newton-Raphson iterations starts here
del=1;
indx=0;
while del>1e-6
g=[x(1)^2-x(2)^2+x(3)^2-11;x(1)*x(2)+x(2)^2-3*x(3)3;x(1)-x(1)*x(3)+x(2)*x(3)-6];
J=[2*x(1) -2*x(2) 2*x(3);x(2) x(1)+2*x(2) -3;1-x(3)
x(3) -x(1)+x(2)];
delx=-inv(J)*g;
x=x+delx;
del=max(abs(g));
indx=indx+1;
end
'NEWTON-RAPHSON SOLUTION CONVERGES IN
ITERATIONS',indx,pause
'FINAL VALUES OF x ARE',x
It is to be noted that in calculating the power and reactive power the conventions that the
power entering a node is positive and leaving it is negative are maintained. The program
listing for the Newton-Raphson load flow is given below.
% Program loadflow_nr
% THIS IS THE NEWTON-RAPHSON POWER FLOW PROGRAM
2.25
clear all
d2r=pi/180;w=100*pi;
% The Y_bus matrix is
[ybus,ych]=ybus;
g=real(ybus);b=imag(ybus);
% The given parameters and initial conditions are
p=[0;-0.96;-0.35;-0.16;0.24];
q=[0;-0.62;-0.14;-0.08;-0.35];
mv=[1.05;1;1;1;1.02];
th=[0;0;0;0;0];
del=1;indx=0;
% The Newton-Raphson iterations starts here
while del>1e-6
for i=1:5
temp=0;
for k=1:5
temp=temp+mv(i)*mv(k)*(g(i,k)-j*b(i,k))*exp(j*(th(i)th(k)));
end
pcal(i)=real(temp);qcal(i)=imag(temp);
end
% The mismatches
delp=p-pcal';
delq=q-qcal';
% The Jacobian matrix
for i=1:4
ii=i+1;
for k=1:4
kk=k+1;
j11(i,k)=mv(ii)*mv(kk)*(g(ii,kk)*sin(th(ii)-th(kk))b(ii,kk)*cos(th(ii)-th(kk)));
end
j11(i,i)=-qcal(ii)-b(ii,ii)*mv(ii)^2;
end
for i=1:4
ii=i+1;
for k=1:4
kk=k+1;
j211(i,k)=-mv(ii)*mv(kk)*(g(ii,kk)*cos(th(ii)-th(kk))b(ii,kk)*sin(th(ii)-th(kk)));
end
j211(i,i)=pcal(ii)-g(ii,ii)*mv(ii)^2;
end
j21=j211(1:3,1:4);
j12=-j211(1:4,1:3);
for i=1:3
2.26
j12(i,i)=pcal(i+1)+g(i+1,i+1)*mv(i+1)^2;
end
j22=j11(1:3,1:3);
for i=1:3
j22(i,i)=qcal(i+1)-b(i+1,i+1)*mv(i+1)^2;
end
jacob=[j11 j12;j21 j22];
delpq=[delp(2:5);delq(2:4)];
corr=inv(jacob)*delpq;
th=th+[0;corr(1:4)];
mv=mv+[0;mv(2:4).*corr(5:7);0];
del=max(abs(delpq));
indx=indx+1;
end
preal=(pcal+[0 0 0 0 0.24])*100;
preac=(qcal+[0 0 0 0 0.11])*100;
% Power flow calculations
for i=1:5
v(i)=mv(i)*exp(j*th(i));
end
for i=1:4
for k=i+1:5
if (ybus(i,k)==0)
s(i,k)=0;s(k,i)=0;
c(i,k)=0;c(k,i)=0;
q(i,k)=0;q(k,i)=0;
cur(i,k)=0;cur(k,i)=0;
else
cu=-(v(i)-v(k))*ybus(i,k);
s(i,k)=-v(i)*cu'*100;
s(k,i)=v(k)*cu'*100;
c(i,k)=100*abs(ych(i,k))*abs(v(i))^2;
c(k,i)=100*abs(ych(k,i))*abs(v(k))^2;
cur(i,k)=cu;cur(k,i)=-cur(i,k);
end
end
end
pwr=real(s);
qwr=imag(s);
q=qwr-c;
% Power loss
ilin=abs(cur);
for i=1:4
for k=i+1:5
if (ybus(i,k)==0)
pl(i,k)=0;pl(k,i)=0;
2.27
ql(i,k)=0;ql(k,i)=0;
else
z=-1/ybus(i,k);
r=real(z);
x=imag(z);
pl(i,k)=100*r*ilin(i,k)^2;pl(k,i)=pl(i,k);
ql(i,k)=100*x*ilin(i,k)^2;ql(k,i)=ql(i,k);
end
end
end