You are on page 1of 12

Gauss–Siedel Method

The Gauss–Siedel (GS) method is an iterative algorithm for solving a set of nonlinear algebraic

equations.

Consider a system of 𝑛 equations in 𝑛 unknowns 𝑥1 , … , 𝑥𝑛 . Rewrite these 𝑛 equations in the form

𝑥𝑖 = 𝑓𝑖 (𝑥1 , … , 𝑥𝑛 ) 𝑖 = 1, 2, … , 𝑛

Let the initial values be 𝑥10 , … , 𝑥𝑛0 . Then, we get the first approximate solution by substituting these

initial values in the above 𝑛 equations as follows

𝑥11 = 𝑓1 (𝑥10 , 𝑥20 , … , 𝑥𝑛0 )



𝑥𝑖1 = 𝑓𝑖 (𝑥11 , 𝑥22 , … , 𝑥𝑖−1
1
, 𝑥10 , … , 𝑥𝑛0 )

𝑥𝑛1 = 𝑓𝑛 (𝑥11 , 𝑥22 , … , 𝑥𝑛−1
1
, 𝑥𝑛0 )
This completes one iteration.

In general, we get the 𝑘th approximate solution in the 𝑘th iteration as follows

𝑘
𝑥𝑛1 = 𝑓𝑖 (𝑥1𝑘 , … , 𝑥𝑖−1 , 𝑥𝑖𝑘−1 , 𝑥𝑖+1
𝑘−1
, … , 𝑥𝑛𝑘−1 ) 𝑖 = 1, 2, … , 𝑛

If | 𝑥𝑖𝑘 – , 𝑥𝑖𝑘−1 | < 𝜀 (a very small number), for all 𝑖 values, then the solution is said to converge.

The iterative process is repeated till the solution converges within prescribed accuracy. The

convergence is quite sensitive to the starting values assumed.

Consider two cases depending on the type of buses present.

Case I

The slack bus is numbered one, and the remaining (𝒏 – 𝟏) buses are PQ buses (𝒊 = 𝟐, . . . , 𝒏).

With slack bus voltage assumed, the remaining (𝑛 – 1) bus voltages are found through iterative

process as follows

The complex bus power injected into the 𝑖th bus is

𝑆𝑖 = 𝑃𝑖 + 𝑗𝑄𝑖 = 𝑉𝑖 𝐼𝑖∗
Hence,

𝑃𝑖 + 𝑗𝑄𝑖
𝐼𝑖 = 𝑖 = 2, … , 𝑛 (1)
𝑉𝑖∗

From
𝑛

𝐼𝑖 = ∑ 𝑌𝑖𝑘 𝑉𝑘
𝑘=1

𝑛
1
𝑉𝑖 = (𝐼𝑖 − ∑ 𝑌𝑖𝑘 𝑉𝑘 ) 𝑖 = 2, … , 𝑛 (2)
𝑌𝑖𝑖
𝑘=1
𝑘≠𝑖

Substituting 𝐼𝑖 from (1) into (2) yields

𝑛
1 𝑃𝑖 + 𝑗𝑄𝑖
𝑉𝑖 = ( − ∑ 𝑌𝑖𝑘 𝑉𝑘 ) 𝑖 = 2, … , 𝑛 (3)
𝑌𝑖𝑖 𝑉𝑖∗
𝑘=1
𝑘≠𝑖

Algorithm for Load Flow Solution

Case I

1. The slack bus voltage magnitude and angle are assumed, usually 𝑉1 = 1∠0o pu. With the load

profile known at each bus (i.e., 𝑃𝐷𝑖 and 𝑄𝐷𝑖 known), allocate 𝑃𝐺𝑖 and 𝑄𝐺𝑖 to all generating stations.

With this step, bus injections (𝑃𝑖 + 𝑗𝑄𝑖 ) are known at all buses other than the slack bus.

2. Assembly of bus admittance matrix (𝒀𝑩𝑼𝑺 ): With the line and shunt admittance data stored in

the computer, 𝑌𝐵𝑈𝑆 is assembled by using the algorithm developed earlier. Alternatively, 𝑌𝐵𝑈𝑆 is

assembled using 𝑌𝐵𝑈𝑆 = 𝐴𝑇 𝑌𝐴, where the input data is in the form of primitive admittance matrix

𝑌 and singular connection bus incidence matrix 𝐴.

3. Iterative computation of bus voltages (𝑽𝒊 ; 𝒊 = 𝟐, … , 𝒏): To start the iteration, a set of initial

voltage values is assumed. Since, in a power system the voltage spread is not too wide, it is normal
practice to use a flat voltage start, i.e., initially all voltages are set equal to (1 + 𝑗0), except the

slack bus voltage, which is fixed. This reduces the 𝑛 equations to (𝑛 – 1) equations in complex

numbers (3) which are to be solved iteratively for finding complex voltages 𝑉2 , 𝑉3 , … , 𝑉𝑛 . If

complex number operations are not available in a computer, Eq. (3) can be converted into

2(𝑛 − 1) equations in real unknowns (𝑒𝑖 , 𝑓𝑖 or | 𝑉𝑖 |, 𝛿𝑖 ) by writing

𝑉𝑖 = 𝑒𝑖 + 𝑗𝑓𝑖 = | 𝑉𝑖 |𝑒 𝑗𝛿𝑖 (4)

4. Also define

𝑃𝑖 − 𝑗𝑄𝑖
𝐴𝑖 = 𝑖 = 2, … , 𝑛 (5)
𝑌𝑖𝑖

𝑌𝑖𝑘
𝐵𝑖𝑘 = 𝑖 = 2, … , 𝑛 and 𝑘 = 2, … , 𝑛, 𝑘 ≠ 𝑖 (6)
𝑌𝑖𝑖

For the (𝑟 + 1)th iteration, the voltage Eq. (3) becomes

𝑖−1 𝑛
(𝑟+1) 𝐴𝑖 (𝑟+1) (𝑟)
𝑉𝑖 = [ 𝑟 ∗ − ∑ 𝐵𝑖𝑘 𝑉𝑘 − ∑ 𝐵𝑖𝑘 𝑉𝑘 ] 𝑖 = 2, … , 𝑛 (7)
(𝑉𝑖 )
𝑘=1 𝑘=𝑖+1

The iterative process is continued till the change in magnitude of bus voltage, | ∆𝑉𝑖 (𝑟 + 1) |, between

two consecutive iterations is less than a certain tolerance for all bus voltages, i.e.,

(𝑟+1) (𝑟+1)
∆𝑉𝑖 = |𝑉𝑖 − 𝑉𝑖𝑟 | ≤ 𝜀 𝑖 = 2, … , 𝑛 (8)

Also, if | 𝑉𝑖 |𝑚𝑖𝑛 ≤ | 𝑉𝑖 | ≤ | 𝑉𝑖 |𝑚𝑎𝑥 , 𝑖 = 2, . . . , 𝑛.

Else fix | 𝑉𝑖 | at one of the extreme values, i.e.,

| 𝑉𝑖 | = | 𝑉𝑖 |𝑚𝑖𝑛 if | 𝑉𝑖 | ≤ | 𝑉𝑖 |𝑚𝑖𝑛 or | 𝑉𝑖 | = | 𝑉𝑖 |𝑚𝑎𝑥 if | 𝑉𝑖 | ≥ | 𝑉𝑖 |𝑚𝑎𝑥

Depending on the nature of the problem, we can also check

| 𝛿𝑖 − 𝛿𝑘 | ≤ | 𝛿𝑖 − 𝛿𝑘 |𝑚𝑎𝑥 , 𝑖 = 1, . . . , 𝑛; 𝑘 = 1, . . . , 𝑛; 𝑖 ≠ 𝑘
5. Computation of slack bus power: Substitution of all bus voltages computed in step 3 with 𝑉1 in

power flow equations with 𝑖 = 1 yields real and reactive power at the slack bus i.e., 𝑆𝑖 = 𝑃𝑖 +

𝑗𝑄𝑖 .

6. Computation of line flows: This is the last step in the load flow analysis wherein the power flows

on the various lines of the network are computed. This also enables us to check whether any line

is overloaded. Consider the line connecting buses 𝑖 and 𝑘. The line and transformers at each end

can be represented by a circuit with series admittance 𝑦𝑖𝑘 and two shunt admittances 𝑦𝑖𝑘0 and 𝑦𝑘𝑖0

as shown in the following figure. The current fed by bus 𝑖 into the line can be expressed as

𝐼𝑖𝑘 = 𝐼𝑖𝑘1 + 𝐼𝑖𝑘0 = (𝑉𝑖 − 𝑉𝑘 )𝑦𝑖𝑘 + 𝑉𝑖 𝑦𝑖𝑘0 (9)

The power fed into the line from bus 𝑖 is


𝑆𝑖𝑘 = 𝑃𝑖𝑘 + 𝑗𝑄𝑖𝑘 = 𝑉𝑖 𝐼𝑖𝑘 = 𝑉𝑖 (𝑉𝑖∗ − 𝑉𝑘∗ )𝑦𝑖𝑘

+ 𝑉𝑖 𝑉𝑖∗ 𝑦𝑖𝑘0

𝑖 = 1, 2, … , 𝑛 (10)

Similarly, the power fed into the line from bus 𝑘 is


𝑆𝑘𝑖 = 𝑉𝑘 𝐼𝑘𝑖 = 𝑉𝑘 (𝑉𝑘∗ − 𝑉𝑖∗ )𝑦𝑖𝑘
∗ ∗
+ 𝑉𝑘 𝑉𝑘∗ 𝑦𝑘𝑖0 𝑖 = 1, 2, … , 𝑛 (11)

The power loss in the (𝑖 – 𝑘)th line is the sum of the power flows determined from (10) and (11).

Total transmission loss can be computed by summing all the line flows (i.e., 𝑆𝑖𝑘 + 𝑆𝑘𝑖 for all 𝑖, 𝑘).
It may be noted that the slack bus power can also be found by summing up the flows on the lines

terminating at the slack bus

Acceleration of Convergence

Convergence in the GS method can sometimes be speeded up by the use of the acceleration factor.

For the 𝑖th bus, the accelerated value of voltage at the (𝑟 + 1)st iteration is given by

(𝑟+1)
𝑉𝑖 (accelerated) = 𝑉𝑖(𝑟) + 𝛼(𝑉𝑖(𝑟+1) − 𝑉𝑖(𝑟) )

where 𝛼 is a real number called the acceleration factor.

A suitable value of a for any system can be obtained by trial load flow studies. A generally

recommended value is 𝛼 = 1.6. A wrong choice of 𝛼 may indeed slow down convergence or even

cause the method to diverge.

Example 1:

For the following system, Values of real and reactive powers and line parameters are listed in the

following tables. All buses other than the slack are PQ type. Assuming a flat voltage start, find the

voltages and bus angles at the three buses at the end of the first GS iteration.

The 𝑌𝐵𝑈𝑆 for the sample system is calculated as (the dotted line is assumed to be connected)
Bus voltages at the end of the first iteration are calculated using (7)

𝑖−1 𝑖−1
(𝑟+1) 𝐴𝑖 (𝑟+1) (𝑟)
𝑉𝑖 = [ 𝑟 ∗ − ∑ 𝐵𝑖𝑘 𝑉𝑘 − ∑ 𝐵𝑖𝑘 𝑉𝑘 ]
(𝑉𝑖 )
𝑘=1 𝑘=𝑖+1
Case II

Consider (𝑚 – 1) PQ buses, (𝑛 – 𝑚) PV buses and the slack bus.

Given 𝑉1 , (𝑃2 , 𝑄2 ), … , (𝑃𝑚 , 𝑄𝑚 ), (𝑃𝑚+1 , |𝑉𝑚+1 |), … , (𝑃𝑛 , |𝑉𝑛 |)

Find 𝑆1 , 𝑉2 , … , 𝑉𝑚 , (𝑄𝑚+1 , 𝛿𝑚+1 ), … , (𝑄𝑛 , 𝛿𝑛 ).

Algorithm (Case II)

First repeat the iteration for PQ buses as in Case I, then continue the iteration for PV buses.

At the PV buses, P and | 𝑉 | are specified and 𝑄 and 𝛿 are unknowns to be determined. Therefore,

the values of 𝑄 and 𝛿 are to be updated in every GS iteration through appropriate bus equations. This

is accomplished in the following steps:

1. From
𝑛

𝑄𝑖 = −𝐼𝑚𝑉𝑖∗ ∑ 𝑌𝑖𝑘 𝑉𝑘 𝑖 = 𝑚 + 1, … , 𝑛
𝑘=1

The revised value of 𝑄𝑖 is obtained from the above equation by substituting most updated values

of voltages on the right hand side.

For the (𝑟 + 1)th iteration we can write,

𝑖−1 𝑛
(𝑟+1) (𝑟) ∗ (𝑟+1) (𝑟)
𝑄𝑖 = −𝐼𝑚 {(𝑉𝑖 ) × ∑ 𝑌𝑖𝑘 𝑉𝑘 + (𝑉𝑖𝑟 )∗ × ∑ 𝑌𝑖𝑘 𝑉𝑘 } 𝑖 = 𝑚 + 1, … , 𝑛 (12)
𝑘=1 𝑘=𝑖
2. The revised value of 𝛿𝑖 is obtained from (7) immediately after step 1

(𝑟+1) 𝑖−1 𝑛
(𝑟+1) (𝑟+1) 𝐴 (𝑟+1) (𝑟)
𝛿𝑖 = ∠𝑉𝑖 = 𝐴𝑛𝑔𝑙𝑒 [ 𝑖 𝑟 ∗ − ∑ 𝐵𝑖𝑘 𝑉𝑘 − ∑ 𝐵𝑖𝑘 𝑉𝑘 ] (13)
(𝑉𝑖 )
𝑘=1 𝑘=𝑖

where

(𝑟+1)
(𝑟+1) 𝑃𝑖 − 𝑗𝑄𝑖
𝐴𝑖 = 𝑖 = 𝑚 + 1, … , 𝑛 (14)
𝑌𝑖𝑖

Physical limitations of 𝑄 generation require that 𝑄 demand at any bus must be in the range 𝑄𝑚𝑖𝑛

to 𝑄𝑚𝑎𝑥 . If at any stage during iteration, 𝑄 at any bus goes outside these limits, it is fixed at 𝑄𝑚𝑖𝑛 or

𝑄𝑚𝑎𝑥 as the case may be, and the bus voltage specification is dropped, i.e., the bus is now treated like

a PQ bus. Thus, Step 1 above branches out to Step 3 as follows:

(𝑟+1) (𝑟+1)
3. If 𝑄𝑖 ≤ 𝑄𝑖,𝑚𝑖𝑛 , set 𝑄𝑖 = 𝑄𝑖,𝑚𝑖𝑛

(𝑟+1) (𝑟+1) (𝑟+1)


or if 𝑄𝑖 ≥ 𝑄𝑖,𝑚𝑎𝑥 , set 𝑄𝑖 = 𝑄𝑖,𝑚𝑎𝑥 , and treat the bus 𝑖 as a PQ bus. We compute 𝐴𝑖

(𝑟+1)
and 𝑉𝑖 from (14) and (7) respectively.

Now, all the computational steps are summarized in the detailed flow chart of the following figure.

It is assumed that out of 𝑛 buses, the first is slack bus, then 2, 3, . . . , 𝑚 are PQ buses, and the remaining,

𝑚 + 1, . . . , 𝑛 are PV buses.

Case III

Consider here the presence of voltage controlled buses in addition to PQ and PV buses other than

the slack bus.


Form YBUS

(5)
(6)

(7)
(12)

<Qi min

(13) and (14)


(14) (7)

(10) and (11)


Example 2:

In Example 1, let bus 2 be a PV bus now with |𝑉2| = 1.04 pu. Once again assuming a flat voltage

start, find 𝑄2 , 𝛿2 , 𝑉3 , 𝑉4, at the end of the first GS iteration. Given 0.2 ≤ 𝑄𝑖 ≤ 1 pu.

From (12)

𝑖−1 𝑛
(𝑟+1) (𝑟) ∗ (𝑟+1) (𝑟) ∗ (𝑟)
𝑄𝑖 = −𝐼𝑚 {(𝑉𝑖 ) × ∑ 𝑌𝑖𝑘 𝑉𝑘 + (𝑉𝑖 ) × ∑ 𝑌𝑖𝑘 𝑉𝑘 } 𝑖 = 𝑚 + 1, … , 𝑛
𝑘=1 𝑘=𝑖

and from (13)

(𝑟+1) 𝑖−1 𝑛
(𝑟+1) (𝑟+1) 𝐴 (𝑟+1) (𝑟)
𝛿𝑖 = ∠𝑉𝑖 = 𝐴𝑛𝑔𝑙𝑒 [ 𝑖 𝑟 ∗ − ∑ 𝐵𝑖𝑘 𝑉𝑘 − ∑ 𝐵𝑖𝑘 𝑉𝑘 ]
(𝑉𝑖 )
𝑘=1 𝑘=𝑖
Now, suppose the permissible limits on 𝑄2 (reactive power injection) are revised as 0.25 ≤ 𝑄2 ≤

1 pu. The calculated (𝑄2 = 0.2079) is now less than the 𝑄2,𝑚𝑖𝑛 min. Hence 𝑄2 is set equal to

𝑄2,𝑚𝑖𝑛 i.e., 𝑄2 = 0.25 pu.

Bus 2, therefore, becomes a PQ bus from a PV bus. Therefore, | 𝑉2 | can no longer remain fixed at

1.04 pu. The value of 𝑉2 at the end of the first iteration is calculated as follows. (Note: 𝑉20 = 1 + 𝑗0 by

virtue of a flat start).

You might also like