You are on page 1of 43

The University of Derby

Faculty of Arts Design and Technology

School of Technology

BEng in Electrical and Electronic Engineering

Electrical Power Utilisation

_________________________________________________________________________
Assignment No 2

An Investigation into Load Flow Studies Using MATLAB


- Power Flow Analysis Tools

Assessment Title: An Investigation into Load Flow Studies Using


MATLAB - Power Flow Analysis Tools

Assessment No.: 2 of 2

Assessment Weighting:
Estimate of Assessment Duration: At Least 25 hours

Learning Outcomes Assessed: 2

Common Skills Outcomes


Assessed: None

Date Set: 8th of February 2011

Submission Date: 15/03/2011


Note: Work must be handed in at the Student Information Centre.

Please note there are changes in the undergraduate regulations, more information can be
found in the module handbook.

Issue No 1 (01/11)

Work To Be Undertaken To Complete This Assignment

Introduction:

Load flow studies are used to determine the voltage, current and power, (both the active and
reactive components and their associate power factors), at all the node points in a specific power
system.

Load flow studies should indicate the likely behaviour of the system in terms of:
 The flow of MW and MVAR in the various branches of the network
 The precise bus-bar voltages
 Effects of any partial rearrangement of the system inter-connections, or the consequences of
adding further networks
 The outcome of any loss of overhead line or underground cable
 The results of changes in transformer tap position
 The optimum performance of the system with minimum losses
 Justification for any recommended system improvements.

The complexity of obtaining a formal solution for load flow in a power system arises because of the
differences in the type of data specified for the various nodes, (bus bars), of the system.

At the SLACK BUS, (see lecture notes for definition), the voltage magnitude and angle will be
designated. At the remaining generator, (supply), nodes the usual information available is the active
power supplied and the voltage magnitude. Note, in this assignment there are no other generator
nodes except at the slack bus bar. This considerably simplifies the actual assignment work. Nodes
with output loading are usually conditioned by their active and reactive power demand. Although
the formulation of sufficient equations is not difficult, the closed form of solution is not practical.

Consequently, a digital solution of load flow problem is required. This will need to follow an iterative
process, initially requiring estimated values be assigned to the unknown bus voltages.

2
The voltage at one of the bus bars is then recalculated from the estimated values at the other
nodes.A corrected value is obtained and this is then used in performing similar calculations to obtain
a corrected voltage at the next bus. Each bus voltage is corrected in turn around the system, the
process then being repeated until sufficient convergence is obtained.

2. Develop an Algorithm of the Load Flow Problem.


Various methods have been devised for solving this problem. In this assignment the student is
expected to adapt three separate well known iterative methods to solve the actual load flow
distribution in a given power supply network. Each of these iterative techniques will be performed
by writing suitable computer code in the powerful MATLAB program language or using power flow
simulation tools.
Iterative methods to be used are:
(1) The Jacobi Method
(2) The Gauss Seidal Method
(3) The Impedance Matrix Method.

3. Work to be undertaken:

(1) Carry out a series of computer simulations for power flow for the 5-Buse/Node - seven-line
network - Power Network shown in figure 1-A and report it. Further information and
necessary technical parameters are available on table 1 and support material available in
the assignment and UDo.

(2) Analyse the results of each simulations and provide the necessary graphical analysis of the
results

(3) Explain your own thoughts, observation for each simulations and comment on it

3
Figure 1-A: 5-Buse/Node - seven-line network - Power Network

Table 1:
From
To Busbar R (p.u.) X (p.u.) B (p.u.)
Busbar
1 2 0.05 0.11 0.02
1 3 0.05 0.11 0.02
1 5 0.03 0.08 0.02
2 4 0.04 0.09 0.02
2 5 0.04 0.09 0.02
3 4 0.06 0.13 0.03
4 5 0.04 0.09 0.02

4. In completing this assignment the student will have developed skills in:

a) Solving the load flow distribution problem in electrical power networks

b) Developing algorithms to describe the methodology for solving the electrical power load flow
problem in power network.

c) Using the MATLAB / Power Flow Tools computer programming software.

4
5. Assignment resources:

 The University of Derby, Faculty of Arts Design and Technology, Electrical Power
Laboratory.
 Assignment Support Material
 Lecture notes available on the university black board
 Reference text books available in the library

5
Assessments
In order to pass the module THIS ASSESSED WORK MUST BE ATTEMPTED AND THE WORK
SUBMITTED VIA THE STUDENT OFFICE. Assessment is based upon the achievement or non-
achievement of learning outcomes and the grade achieved. In evaluating the student’s performance
the assessor compares the product with the set of grade descriptors shown in the Assessment
Grade table in the Assessment Regulations handbook or Rights, Responsibilities and Regulations
handbook. The alpha grade, achievement or non-achievement of learning outcome(s) are reported
on the Student Assessment Record and Receipt Form

Learning outcomes for the assessed work are specified within the module in the Programme
Learning Outcomes, Module Learning Outcomes, Indicative Content, Teaching and Learning
Strategies, Resource and Assessment Methods handbook.

Assessment Criteria:
A+ to B+: Outstanding, of exceptionally high standard to a very good standard. Completion of all
parts of the work with correctly calculated results and extensive analysis as required. Your
conclusions must be comprehensive, correct and thoroughly justified. The work presented must be
of the highest standard, with appropriate diagrams and extensive numerical analysis. During the
actual laboratory period you have demonstrated a leadership in organising and interpreting
instructions, assembling the test circuits and proceeding with the test programme using safe and
efficient practices.

6
Suggested Contents
You may follow the following steps to write your assignment.
1. Executive Summary
I expect that each student is to conduct his own survey about the assignment topics and report his
own findings. The survey is to cover the assignment technology, applications, and needs. You need
also to make yourself familiar with the latest Industrial and Academic publications available related
to you assignment applications. This is to be followed by the structure of your report and main topics
that have been covered. Then explain the findings of your assignments and skills that you have
learned from the work carried out from Analysis, design, development and practical point of view.
2. Assignment Aims and Objectives
You need to specify clearly your assignment main aims and objectives.
3. Algorithm 1 & 2 and 3
Explain the basic principles of each algorithm
4. Flowchart of each Algorithm
You need to provide a flowchart for each Algorithm and CD contains your reporting and
programmes.
5. Computer Programmes and Simulations
Provide your programme using MATLAB and Simulation using Simulink and or Power Flow Tools
6. Results, graphs and Discussions
You need to explain the numerical and the graphical results of your programming. Then write your
own comments.
7. Conclusions
8. References
9. Appendices
10. Risk Assessment
a) You need to read and understand the risk Assessment for Electrical Power Laboratory MS123.
b) You need to read and understand the safety and operation of the machines test rigs available of
the Laboratory
c) You need to include a risk assessment for your assignment. A copy of the form can be obtained
from room MS123.

7
Supporting Materials

Load Flow Studies Using MATLAB.


In order to provide a common basis for this series of load flow studies a 5-node network has been
configured. This will allow the relative performance of each of the load flow solution methods used
to be compared objectively. The actual network contains only a limited range of system elements
and there is only one source of generated power, which must therefore be connected to the
designated slack busbar and referred to as node (1).

The five-busbar, seven-line network is shown in figure 1_B.

Figure 1_B: five-busbar, seven-line network

At the slack busbar the voltage is made reference at 1 p.u. The remaining busbars all have connected
loads for which the values of P and Q are specified.
Table 1 gives the series impedance of the interconnecting lines. Each line is associated with
capacitive shunt admittance. This is to be BOTH ignored and included at the various stages of the
analysis. Hence, the effect of the shunt capacitance in relation to the resulting node voltage
distribution of the network will be determined.

The network base quantities are MVA base = 100 MVA and V base = 132 kV.

Table 1:
From Busbar To Busbar R (p.u.) X (p.u.) B (p.u.)
1 2 0.05 0.11 0.02
1 3 0.05 0.11 0.02
1 5 0.03 0.08 0.02
2 3 0.04 0.09 0.02
2 5 0.04 0.09 0.02

8
3 4 0.06 0.13 0.03
4 5 0.04 0.09 0.02

The method of formulation of the network admittance matrix is covered in the ‘Introductory Lecture
Notes to Load Flow Studies’. On this basis the line admittances can be calculated, see Table 2.

Table 2:

Line Admittance Conductance G. (S) Susceptance B. (S)


Y(1.2) 3.424658 - j 7.534247
Y(1.3) 3.424658 - j 7.534247
Y(1.5) 4.109589 - j 10.958904
Y(2.3) 4.123711 - j 9.278351
Y(2.5) 4.123711 - j 9.278351
Y(3.4) 2.926829 - j 6.341463
Y(4.5) 4.123711 - j 9.278351

The complete system admittance matrix can now be determined. In Table 3a: the effects of shunt line
admittance have not been included.

Table 3a:

Admittance
Matrix
- shunt
capacitance
10.958905 - 3.424658 - 3.424658 - 4.109589
0
- j 26.027398 + j 7.534247 + j 7.534247 + j 10.958904
- 3.424658 11.672080 - 4.123711 - 4.123711
0
+ j 7.534247 - j 26.090949 + j 9.278351 + j 9.278351
- 3.424658 - 4.123711 10.475198 - 2.926829
0
+ j 7.534247 + j 9.278351 - j 23.154061 + j 6.341463
- 2.926829 7.050541 - 4.123711
0 0
+ j 6.341463 - j 15.619814 +j 9.278351
- 4.109589 - 4.123711 - 4.123711 12.357012
0
+ j 10.958904 + j 9.278351 +j 9.278351 - j 29.515606

The effects of the shunt admittance in each line must now be included. The shunt admittance of each
line which connects to a particular node must now be added to the diagonal element of that node.
Since the shunt elements are capacitive, the result of incorporating them into the admittance matrix
will reduce the magnitude of the complex element in the diagonal terms.

9
Table 3b:

Admittance
Matrix
+ shunt
capacitance
10.958905 - 3.424658 - 3.424658 - 4.109589
0
- j 25.997397 + j 7.534247 + j 7.534247 + j 10.958904
- 3.424658 11.672080 - 4.123711 - 4.123711
0
+ j 7.534247 - j 26.060948 + j 9.278351 + j 9.278351
- 3.424658 - 4.123711 10.475198 - 2.926829
0
+ j 7.534247 + j 9.278351 - j 23.119061 + j 6.341463
- 2.926829 7.050541 - 4.123711
0 0
+ j 6.341463 - j 15.594814 +j 9.278351
- 4.109589 - 4.123711 - 4.123711 12.357012
0
+ j 10.958904 + j 9.278351 +j 9.278351 - j 29.485605

10
Method No1 - Jacobi Method:

The Jacobi method is the simplest of the iterative load-flow techniques to program. It is a straightforward
process whereby successive sets of busbar voltages are calculated using the previously obtained values. The
complete range of busbar voltages are calculated before they are then used in the next iteration.
From the introductory load-flow notes it was shown that the basis of the iterative solution is based on the
matrix form of the network’s nodal equation:

n
I k = ∑Ykj Vj ; Where k = 2, 3… n
j =1

S*k
Ik = ; k = 2, 3, …. N (1)
Vk*

Substituting for I k

S*k n S*k n
= Yk kVk + ∑ Yk jVj
Vk*
= ∑
j =1
Yk j Vj or Vk*
j= 1
j≠ k
where k = 2, 3, …. N

 
1  
n
 S*k 
Vk( i +1) = 
Ykk Vk* (i )
− ∑
j =1
Yk j Vj(i ) 


 j ≠k 

(i) is the previous iteration, (i + 1) is the current

Calculation:

11
The solution strategy is based on all system admittances and busbar conditions being available and an initial
voltage assigned to each busbar. A flow diagram of the iterative process is indicated below.
The number of nodes n = 5
And since the voltage at node (1) is specified
The actual range of k = 2, 3, 4, 5.

The step by step process is now demonstrated by numerically solving the first set of iterations for the
network illustrated in Fig1.

Procedure (shunt capacitance included).

12
The MATLAB program code for the JACOBI SOLUTION of the network load-flow problem can
now be written.

13
Matlab Program.

% BSc(Hons) Electrical Electronic Engineering

% Module 6EJ022

% Assignment No2

% MODELLING LOAD FLOW STUDIES USING MATLAB

% USING THE JACOBI METHOD

% YEAR 2010/11

% STUDENT ...........

% NETWORK (see Fig 1)

% Input (1)
% Insert the Network Admittance Matrix
% (see page 2 of supplied assignment paperwork ignoring shunt capacitive
admittance)

format short
Y(1,1) = 10.958905 - 26.027398i;
Y(1,2) = -3.424658 + 7.534247i;
Y(1,3) = -3.424658 + 7.534247i;
Y(1,4) = 0.00;
Y(1,5) = -4.109589 + 10.958904;

Y(2,1) = -3.424658 + 7.534247i;


Y(2,2) = 11.672080 - 26.090949i;
Y(2,3) = -4.123711 + 9.278351i;
Y(2,4) = 0.00;
Y(2,5) = -4.123711 + 9.278351i;

Y(3,1) = -3.424658 + 7.534247i;


Y(3,2) = -4.123711 + 9.278351i;
Y(3,3) = 10.457198 - 23.154061i;
Y(3,4) = -2.926829 + 6.341463i;
Y(3,5) = 0.00;

Y(4,1) = 0.00;
Y(4,2) = 0.00;
Y(4,3) = -2.926829 + 6.341463i;
Y(4,4) = 7.050541 - 15.619814i;
Y(4,5) = -4.123711 + 9.278351i;

Y(5,1) = -4.109589 + 10.958904i;


Y(5,2) = -4.123711 + 9.278351i;
Y(5,3) = 0.00;
Y(5,4) = -4.123711 + 9.278351i;
Y(5,5) = 12.357012 - 29.515606i;

% Input (2)
% Input the given node loadings .....see diagram on page 1 ....
% .... of the supplied assignment paperwork
% A positive (+ sign) is for generated power,
% The negative (- sign) indicates load taken from the network.
% Per unit loading is used with a base loading taken at 100MVA

P2 = - 0.4; % p.u. active power loading

14
P3 = - 0.25; % p.u. active power loading
P4 = - 0.4; % p.u. active power loading
P5 = - 0.5; % p.u. active power loading

Q2 = - 0.2i; % p.u. reactive power loading


Q3 = - 0.15i; % p.u. reactive power loading
Q4 = - 0.2i; % p.u. reactive power loading
Q5 = - 0.2i; % p.u. reactive power loading

% The voltage at the generation busbar, node (1) is 1.0 p.u.


% This voltage is fixed and therefore determines the reference ....
% ... or SLACK BUSBAR must be Node(1)

% JACOBI SOLUTION
% The number of iteration will need to be set
% Set the value of 'l' the chosen number of iterations
% Typically l=40 should be sufficient for this problem.

l = 40; % sets the number of iterations


m = l + 1; % allocates the space used to store each iteration
vector = [1:m]; % assigns a row with the appropriate spaces

row = ones(size(vector));

Vnode1 = row; % each node voltage has the required storage spaces
Vnode2 = row;
Vnode3 = row;
Vnode4 = row;
Vnode5 = row;

for n = 1:m

Vnode1(n) = 1.0 + 0.00i; % inserts the assumed initial node voltages


Vnode2(n) = 1.0 + 0.00i;
Vnode3(n) = 1.0 + 0.00i;
Vnode4(n) = 1.0 + 0.00i;
Vnode5(n) = 1.0 + 0.00i;

end

S2star = P2 - Q2; % congugates of the specified node loadings


S3star = P3 - Q3;
S4star = P4 - Q4;
S5star = P5 - Q5;

% Now Proceed with the JACOBI SOLUTION


% Following the same method as in the worked example
% Page 5 of the assignment notes

for n = 1:l

% NOW UPDATE THE NODE VOLTAGES (l=40) TIMES


% SIMILAR TO THE CALCULATION PROCEDURES
% AS DETAILED ON PAGE 9 OF THE ASSIGNMENT NOTES

V2star(n) = conj(Vnode2(n)); % conjugate of V2


V3star(n) = conj(Vnode3(n)); % conjugate of V3
V4star(n) = conj(Vnode4(n)); % conjugate of V4
V5star(n) = conj(Vnode5(n)); % conjugate of V5

% (Step 1) Solving for the updated values of the currents

15
I2(n) = S2star/V2star(n);
I3(n) = S3star/V3star(n);
I4(n) = S4star/V4star(n);
I5(n) = S5star/V5star(n);

% (Step 2) Solving the summation of Y(kj)V(j) for all busbars

Sum2(n) = (Y(2,1) * Vnode1(n)) + (Y(2,3) * Vnode3(n)) + (Y(2,5) *


Vnode5(n));
Sum3(n) = (Y(3,1) * Vnode1(n)) + (Y(3,2) * Vnode2(n)) + (Y(3,4) *
Vnode4(n));
Sum4(n) = (Y(4,3) * Vnode3(n)) + (Y(4,5) * Vnode5(n));
Sum5(n) = (Y(5,1) * Vnode1(n)) + (Y(5,2) * Vnode2(n)) + (Y(5,4) *
Vnode4(n));

% (Step 3) Solving for the new value of node voltage

V2(n) = ( I2(n) - Sum2(n) ) / Y(2,2);


V3(n) = ( I3(n) - Sum3(n) ) / Y(3,3);
V4(n) = ( I4(n) - Sum4(n) ) / Y(4,4);
V5(n) = ( I5(n) - Sum5(n) ) / Y(5,5);

u = 1 + n;

Vnode2(u) = V2(n);
Vnode3(u) = V3(n);
Vnode4(u) = V4(n);
Vnode5(u) = V5(n);

end

disp (':')
disp (':')
disp (':')
disp (':')
disp (' Vnode2 Vnode3 Vnode4 Vnode5
')
disp(':')

d = 0;
for c = 1:l
fprintf(' %1.4f %1.4fi\t, %1.4f %1.4fi\t, %1.4f %1.4fi\t, %1.4f
%1.4fi\n',...
real(Vnode2(1+d)), imag(Vnode2(1+d)), real(Vnode3(1+d)),...
imag(Vnode3(1+d)), real(Vnode4(1+d)), imag(Vnode4(1+d)),
real(Vnode5(1+d)), imag(Vnode5(1+d)));
d=d+1;
end

The Matlab output program code for the JACOBI SOLUTION of the network load-flow problem.

Command Window Output:


:
Electrical Power Utilisation 6EJ022
:
Jacobi Solution of Load Flow Assignment (2) 2010/11
:
Successive Iteration Values
16
:
Vnode2 Vnode3 Vnode4 Vnode5
:
1.0000 0.0000i , 1.0000 0.0000i , 1.0000 0.0000i , 1.0000 0.0000i
0.9879 -0.0099i , 0.9909 -0.0059i , 0.9798 -0.0165i , 0.9882 -0.0120i
0.9802 -0.0163i , 0.9803 -0.0144i , 0.9683 -0.0260i , 0.9778 -0.0206i
0.9726 -0.0223i , 0.9740 -0.0195i , 0.9575 -0.0345i , 0.9716 -0.0258i
0.9680 -0.0259i , 0.9679 -0.0243i , 0.9508 -0.0396i , 0.9658 -0.0305i
0.9636 -0.0293i , 0.9641 -0.0272i , 0.9446 -0.0444i , 0.9621 -0.0334i
0.9609 -0.0313i , 0.9606 -0.0298i , 0.9407 -0.0472i , 0.9587 -0.0360i
0.9584 -0.0332i , 0.9584 -0.0314i , 0.9371 -0.0499i , 0.9566 -0.0376i
0.9567 -0.0344i , 0.9563 -0.0329i , 0.9348 -0.0515i , 0.9546 -0.0391i
0.9553 -0.0354i , 0.9550 -0.0338i , 0.9327 -0.0530i , 0.9533 -0.0400i
0.9543 -0.0360i , 0.9539 -0.0346i , 0.9314 -0.0538i , 0.9522 -0.0408i
0.9535 -0.0366i , 0.9531 -0.0351i , 0.9302 -0.0547i , 0.9515 -0.0413i
0.9530 -0.0370i , 0.9524 -0.0355i , 0.9294 -0.0552i , 0.9508 -0.0418i
0.9525 -0.0373i , 0.9520 -0.0358i , 0.9287 -0.0556i , 0.9504 -0.0421i
0.9521 -0.0375i , 0.9516 -0.0361i , 0.9282 -0.0559i , 0.9500 -0.0424i
0.9519 -0.0377i , 0.9513 -0.0362i , 0.9278 -0.0562i , 0.9497 -0.0425i
0.9517 -0.0378i , 0.9511 -0.0364i , 0.9276 -0.0563i , 0.9495 -0.0427i
0.9515 -0.0379i , 0.9509 -0.0365i , 0.9273 -0.0565i , 0.9494 -0.0427i
0.9514 -0.0380i , 0.9508 -0.0366i , 0.9272 -0.0566i , 0.9492 -0.0428i
0.9513 -0.0380i , 0.9507 -0.0366i , 0.9270 -0.0566i , 0.9492 -0.0429i
0.9512 -0.0380i , 0.9506 -0.0366i , 0.9269 -0.0567i , 0.9491 -0.0429i
0.9512 -0.0381i , 0.9506 -0.0367i , 0.9269 -0.0567i , 0.9490 -0.0430i
0.9512 -0.0381i , 0.9505 -0.0367i , 0.9268 -0.0568i , 0.9490 -0.0430i
0.9511 -0.0381i , 0.9505 -0.0367i , 0.9268 -0.0568i , 0.9490 -0.0430i
0.9511 -0.0381i , 0.9505 -0.0367i , 0.9267 -0.0568i , 0.9489 -0.0430i
0.9511 -0.0381i , 0.9505 -0.0367i , 0.9267 -0.0568i , 0.9489 -0.0430i
0.9511 -0.0381i , 0.9505 -0.0367i , 0.9267 -0.0568i , 0.9489 -0.0430i
0.9511 -0.0382i , 0.9504 -0.0368i , 0.9267 -0.0568i , 0.9489 -0.0430i
0.9510 -0.0382i , 0.9504 -0.0368i , 0.9267 -0.0568i , 0.9489 -0.0430i
0.9510 -0.0382i , 0.9504 -0.0368i , 0.9266 -0.0568i , 0.9489 -0.0430i
0.9510 -0.0382i , 0.9504 -0.0368i , 0.9266 -0.0569i , 0.9489 -0.0430i
0.9510 -0.0382i , 0.9504 -0.0368i , 0.9266 -0.0569i , 0.9489 -0.0430i

Jacobi Method convergence after 30 iterations for the given network

Method No2 - Gauss-Seidal Method:

Whereas the Jacobi method calculates new values for all the bus bar voltages before replacing the old values
of voltage with those newly calculated, the Gauss-Seidal method updates the individual bus bar voltage
immediately after it is calculated. This leads to a faster convergence to the final solution.

As in the previous analysis,

17
n
I k = ∑Ykj V j where k = 2, 3, …. n
j =1

S*k
Ik = k = 2, 3, …. n
Vk*

Combining the above two equations and rearranging gives:

 
1  S*k n

Vk =  * (i ) − ∑ Yk j Vj 
Ykk  Vk j= 1 
 j≠ k 

Since the Gauss-Seidal approach updates each node voltage immediately an improved value is
calculated, the actual solution strategy will need to follow steps indicated below.
S*2
(1) For node (2) I2 = *
V2
n

(2) Also since ∑Y


j =1
2j Vj this summation can be calculated using the estimated values of
j≠ 2
node voltage.
(3) Subtract the solution of the summation from (2) from the value of I 2 obtained from (1) and
dividing the result by Y22 will give a new value for V2 this then allows the node(2) voltage
to be updated.
n

(4) The voltage at node(3) is then re-calculated using I 2 =


S
V
*
2

2
* and ∑Y
j =1
3j Vj but
j ≠3
with the updated value of V2 obtained from Step (3) then the node(3) voltage can be updated.

(5) Subsequently, repeat the process, using the most recently calculated values of node voltages
to update the node(4) voltage.

(6) And again, repeat the process, using the most recently calculated values of node voltages to
update the node(5) voltage.

(7) Compare the latest set of voltages with the previous set. If the two sets agree within defined
limits, then the process is complete, otherwise return to Step 1.

See program flow diagram

Gauss-Seidal Program Flow Diagram:

18
This step by step process can now demonstrated by numerically solving the first set of iterations for
the network illustrated in Fig1.

Procedure (shunt capacitance included).

19
The Matlab program code for the GAUSS SEIDAL SOLUTION of the network load-flow problem
can now be written.
Note the many copy and paste opportunities that exist between the existing Jacobi codes when
subsequently producing the Gauss Seidal code.
Matlab Program.

20
% BSc(Hons) Electrical Electronic Engineering

% Module 6EJ998

% Assignment No2

% MODELLING LOAD FLOW STUDIES USING MATLAB

% USING THE GAUSS SEIDAL METHOD

% YEAR 2010/11

% STUDENT ...........

% NETWORK (see Fig 1)

% Input (1)
% Insert the Network Admittance Matrix
% (see page 2 of supplied assignment paperwork ignoring shunt capacitive
admittance)

format short
Y(1,1) = 10.958905 - 26.027398i;
Y(1,2) = -3.424658 + 7.534247i;
Y(1,3) = -3.424658 + 7.534247i;
Y(1,4) = 0.00;
Y(1,5) = -4.109589 + 10.958904;

Y(2,1) = -3.424658 + 7.534247i;


Y(2,2) = 11.672080 - 26.090949i;
Y(2,3) = -4.123711 + 9.278351i;
Y(2,4) = 0.00;
Y(2,5) = -4.123711 + 9.278351i;

Y(3,1) = -3.424658 + 7.534247i;


Y(3,2) = -4.123711 + 9.278351i;
Y(3,3) = 10.457198 - 23.154061i;
Y(3,4) = -2.926829 + 6.341463i;
Y(3,5) = 0.00;

Y(4,1) = 0.00;
Y(4,2) = 0.00;
Y(4,3) = -2.926829 + 6.341463i;
Y(4,4) = 7.050541 - 15.619814i;
Y(4,5) = -4.123711 + 9.278351i;

Y(5,1) = -4.109589 + 10.958904i;


Y(5,2) = -4.123711 + 9.278351i;
Y(5,3) = 0.00;
Y(5,4) = -4.123711 + 9.278351i;
Y(5,5) = 12.357012 - 29.515606i;

% Input (2)
% Input the given node loadings .....see diagram on page 1 ....
% .... of the supplied assignment paperwork
% A positive (+ sign) is for generated power,
% The negative (- sign) indicates load taken from the network.
% Per unit loading is used with a base loading taken at 100MVA

P2 = - 0.4; % p.u. active power loading


P3 = - 0.25; % p.u. active power loading

21
P4 = - 0.4; % p.u. active power loading
P5 = - 0.5; % p.u. active power loading

Q2 = - 0.2i; % p.u. reactive power loading


Q3 = - 0.15i; % p.u. reactive power loading
Q4 = - 0.2i; % p.u. reactive power loading
Q5 = - 0.2i; % p.u. reactive power loading

% The voltage at the generation busbar, node (1) is 1.0 p.u.


% This voltage is fixed and therefore determines the reference ....
% ... or SLACK BUSBAR must be Node(1)

% GAUSS SEIDAL SOLUTION


% The number of iteration will need to be set
% Set the value of 'l' the chosen number of iterations
% l=40 will be used since this is the number used in the JACOBI solution.

l = 40; % sets the number of iterations


m = l + 1; % allocates the space used to store each iteration
vector = [1:m]; % assigns a row with the appropriate spaces

row = ones(size(vector));

Vnode1 = row; % each node voltage has the required storage spaces
Vnode2 = row;
Vnode3 = row;
Vnode4 = row;
Vnode5 = row;

for n = 1:m

Vnode1(n) = 1.0 + 0.00i; % inserts the assumed initial node voltages


Vnode2(n) = 1.0 + 0.00i;
Vnode3(n) = 1.0 + 0.00i;
Vnode4(n) = 1.0 + 0.00i;
Vnode5(n) = 1.0 + 0.00i;

end

S2star = P2 - Q2; % conjugates of the specified node loadings


S3star = P3 - Q3;
S4star = P4 - Q4;
S5star = P5 - Q5;

% Now Proceed with the GAUSS SEIDAL SOLUTION


% Following the same method as in the worked example
% Page 16 of the assignment notes

for n = 1:l

% NOW UPDATE THE NODE VOLTAGES TWENTY FIVE TIMES


% SIMILAR TO THE CALCULATION PROCEDURES
% AS DETAILED ON PAGE 5 OF THE ASSIGNMENT NOTES

V2star(n) = conj(Vnode2(n)); % conjugate of V2


V3star(n) = conj(Vnode3(n)); % conjugate of V3
V4star(n) = conj(Vnode4(n)); % conjugate of V4
V5star(n) = conj(Vnode5(n)); % conjugate of V5

% (Step 1) Solving for the updated values of the currents

22
I2(n) = S2star/V2star(n);

% (Step 2) Solving the summation of Y(kj)V(j) for all busbars

Sum2(n) = (Y(2,1) * Vnode1(n)) + (Y(2,3) * Vnode3(n)) + (Y(2,5) * Vnode5(n));

% (Step 3) Solving for the new value of node voltage

V2(n) = ( I2(n) - Sum2(n) ) / Y(2,2);


Vnode2(n) = V2(n); % Immediately updates the current value of Vnode2

% (Step 4)
% Now determine the new value of Vnode3
% This calculation uses the new updated value of Vnode2

I3(n) = S3star/V3star(n);
Sum3(n) = (Y(3,1) * Vnode1(n)) + (Y(3,2) * Vnode2(n)) + (Y(3,4) *
Vnode4(n));
V3(n) = ( I3(n) - Sum3(n) ) / Y(3,3);
Vnode3(n) = V3(n); % Immediately updates the current value of Vnode3

% (Step 5)
% Now determine the new value of Vnode4
% This calculation uses the new updated value3 of Vnode2 and Vnode3

I4(n) = S4star/V4star(n);
Sum4(n) = (Y(4,3) * Vnode3(n)) + (Y(4,5) * Vnode5(n));
V4(n) = ( I4(n) - Sum4(n) ) / Y(4,4);
Vnode4(n) = V4(n); % Immediately updates the current value of
Vnode4

% (Step 5)
% Now determine the new value of Vnode5
% This calculation uses the new updated value3 of Vnode2 Vnode3 & Vnode4

I5(n) = S5star/V5star(n);
Sum5(n) = (Y(5,1) * Vnode1(n)) + (Y(5,2) * Vnode2(n)) + (Y(5,4) *
Vnode4(n));
V5(n) = ( I5(n) - Sum5(n) ) / Y(5,5);
Vnode5(n) = V5(n); % Immediately updates the current value of Vnode4

u = 1 + n;

Vnode2(u) = V2(n);
Vnode3(u) = V3(n);
Vnode4(u) = V4(n);
Vnode5(u) = V5(n);

end
disp (':')
disp (' Electrical Power Utilisation 6EJ022 ')
disp (':')
disp (' Gauss Seidal Solution of Load Flow Assignment(2) 2010/11 ')
disp (':')
disp (' Successive Iteration Values ')
disp (':')
disp (' Vnode2 Vnode3 Vnode4 Vnode5
')
disp(':')

d = 0;
for c = 1:m

23
fprintf(' %1.4f %1.4fi\t, %1.4f %1.4fi\t, %1.4f %1.4fi\t, %1.4f
%1.4fi\n',...
real(Vnode2(1+d)), imag(Vnode2(1+d)), real(Vnode3(1+d)),...
imag(Vnode3(1+d)), real(Vnode4(1+d)), imag(Vnode4(1+d)),
real(Vnode5(1+d)), imag(Vnode5(1+d)));
d=d+1;
end

The Matlab output program code for the GAUSS SEIDAL SOLUTION of the network load-flow
problem.

Command Window Output:


:
Electrical Power Utilisation 6EJ022
:
Gauss Seidal Solution of Load Flow Assignment(2) 2010/11
:
Successive Iteration Values
:
Vnode2 Vnode3 Vnode4 Vnode5
:
1.0000 0.0000i ,1.0000 0.0000i ,1.0000 0.0000i ,1.0000 0.0000i
0.9879 -0.0099i , 0.9860 -0.0098i , 0.9741 -0.0205i , 0.9764 -0.0219i
0.9742 -0.0212i , 0.9732 -0.0200i , 0.9540 -0.0376i , 0.9653 -0.0312i
0.9655 -0.0280i , 0.9640 -0.0274i , 0.9429 -0.0460i , 0.9588 -0.0362i
0.9597 -0.0324i , 0.9586 -0.0315i , 0.9364 -0.0506i , 0.9549 -0.0391i
0.9562 -0.0349i , 0.9553 -0.0338i , 0.9325 -0.0533i , 0.9525 -0.0408i
0.9542 -0.0363i , 0.9534 -0.0350i , 0.9302 -0.0548i , 0.9510 -0.0417i
0.9529 -0.0371i , 0.9522 -0.0358i , 0.9288 -0.0557i , 0.9502 -0.0423i
0.9522 -0.0375i , 0.9515 -0.0362i , 0.9279 -0.0562i , 0.9496 -0.0426i
0.9517 -0.0378i , 0.9510 -0.0364i , 0.9274 -0.0565i , 0.9493 -0.0428i
0.9514 -0.0380i , 0.9508 -0.0366i , 0.9271 -0.0566i , 0.9491 -0.0429i
0.9513 -0.0380i , 0.9506 -0.0367i , 0.9269 -0.0567i , 0.9490 -0.0430i
0.9512 -0.0381i , 0.9505 -0.0367i , 0.9268 -0.0568i , 0.9490 -0.0430i
0.9511 -0.0381i , 0.9505 -0.0367i , 0.9267 -0.0568i , 0.9489 -0.0430i
0.9511 -0.0381i , 0.9505 -0.0367i , 0.9267 -0.0568i , 0.9489 -0.0430i
0.9511 -0.0382i , 0.9504 -0.0368i , 0.9267 -0.0568i , 0.9489 -0.0430i
0.9510 -0.0382i , 0.9504 -0.0368i , 0.9266 -0.0569i , 0.9489 -0.0430i
0.9510 -0.0382i , 0.9504 -0.0368i , 0.9266 -0.0569i , 0.9489 -0.0430i

Gauss Seidal Method: Note the faster convergence: Sixteen Iterations

Method 3 Acceleration Factors with the Gauss Seidal method of solution:

To reduce the number of iterations required to reach a final solution, attempts have been made to speed up the
convergence process. A simple yet effective approach is to project forward each calculated voltage in the
direction of the way the iteration values are moving. If the trend indicate indicates the successive values are
reducing a factor is applied to accelerate this progression. Conversely, if there is a rising trend, then the
accelerating factor needs to project the voltage further upwards.

The acceleration factor α needs to modify the voltages according to the following considerations:

Vk(acc) = α Vk(new) − (α − 1) Vk(old)

= Vk(old) + α (Vk(new) − Vk(old)


24
Clearly, as convergence is approach the acceleration becomes less pronounced. The modification is
applied immediately each busbar voltage is calculated. For large scale networks an acceleration
factor of 1.6 is often used. For the limited network being analysed, an acceleration factor of 1.25
will be more effective.

Students could experiment with different values to predict an optimum value.

The Matlab program code for the GAUSS SEIDAL SOLUTION of the network load-flow problem
can now be modified to include a suitable ACCELERATION FACTOR.

Matlab Program.

% BSc(Hons) Elelectrical Electronic Engineering

% Module 6EJ998

% Assignment No2

% MODELLING LOAD FLOW STUDIES USING MATLAB

% USING THE GAUSS SEIDAL METHOD PLUS AN ACCELERATION FACTOR

25
% YEAR 2010/11

% STUDENT ...........

% NETWORK (see Fig 1)

% Input (1)
% Insert the Network Admittance Matrix
% (see page 2 of supplied assignment paperwork ignoring shunt capacitive
admittance)

format short
Y(1,1) = 10.958905 - 26.027398i;
Y(1,2) = -3.424658 + 7.534247i;
Y(1,3) = -3.424658 + 7.534247i;
Y(1,4) = 0.00;
Y(1,5) = -4.109589 + 10.958904;

Y(2,1) = -3.424658 + 7.534247i;


Y(2,2) = 11.672080 - 26.090949i;
Y(2,3) = -4.123711 + 9.278351i;
Y(2,4) = 0.00;
Y(2,5) = -4.123711 + 9.278351i;

Y(3,1) = -3.424658 + 7.534247i;


Y(3,2) = -4.123711 + 9.278351i;
Y(3,3) = 10.457198 - 23.154061i;
Y(3,4) = -2.926829 + 6.341463i;
Y(3,5) = 0.00;

Y(4,1) = 0.00;
Y(4,2) = 0.00;
Y(4,3) = -2.926829 + 6.341463i;
Y(4,4) = 7.050541 - 15.619814i;
Y(4,5) = -4.123711 + 9.278351i;

Y(5,1) = -4.109589 + 10.958904i;


Y(5,2) = -4.123711 + 9.278351i;
Y(5,3) = 0.00;
Y(5,4) = -4.123711 + 9.278351i;
Y(5,5) = 12.357012 - 29.515606i;

% Input (2)
% Input the given node loadings .....see diagram on page 1 ....
% .... of the supplied assignment paperwork
% A positive (+ sign) is for generated power,
% The negative (- sign) indicates load taken from the network.
% Per unit loading is used with a base loading taken at 100MVA

P2 = - 0.4; % p.u. active power loading


P3 = - 0.25; % p.u. active power loading
P4 = - 0.4; % p.u. active power loading
P5 = - 0.5; % p.u. active power loading

Q2 = - 0.2i; % p.u. reactive power loading


Q3 = - 0.15i; % p.u. reactive power loading
Q4 = - 0.2i; % p.u. reactive power loading
Q5 = - 0.2i; % p.u. reactive power loading

% The voltage at the generation busbar, node (1) is 1.0 p.u.


% This voltage is fixed and therefore determines the reference ....
% ... or SLACK BUSBAR must be Node(1)

26
% GAUSS SEIDAL PLUS ACCELERATION FACTOR SOLUTION
% The number of iteration will need to be set
% Set the value of 'l' the chosen number of iterations
% l=40 will be used since this is the number in the JACOBI solution.

l = 40; % sets the number of iterations


m = l + 1; % allocates the space used to store each iteration
vector = [1:m]; % assigns a row with the appropriate spaces

row = ones(size(vector));

Vnode1 = row; % each node voltage has the required storage spaces
Vnode2 = row;
Vnode3 = row;
Vnode4 = row;
Vnode5 = row;

for n = 1:m

Vnode1(n) = 1.0 + 0.00i; % inserts the assumed initial node voltages


Vnode2(n) = 1.0 + 0.00i;
Vnode3(n) = 1.0 + 0.00i;
Vnode4(n) = 1.0 + 0.00i;
Vnode5(n) = 1.0 + 0.00i;

end

S2star = P2 - Q2; % conjugates of the specified node loadings


S3star = P3 - Q3;
S4star = P4 - Q4;
S5star = P5 - Q5;

% Now Proceed with the GAUSS SEIDAL SOLUTION


% Following the same method as in the worked example
% Page 16 of the assignment notes

for n = 1:l

% NOW UPDATE THE NODE VOLTAGES TWENTY FIVE TIMES


% SIMILAR TO THE CALCULATION PROCEDURES
% AS DETAILED ON PAGE 5 OF THE ASSIGNMENT NOTES

V2star(n) = conj(Vnode2(n)); % conjugate of V2


V3star(n) = conj(Vnode3(n)); % conjugate of V3
V4star(n) = conj(Vnode4(n)); % conjugate of V4
V5star(n) = conj(Vnode5(n)); % conjugate of V5

% (Step 1) Solving for the updated values of the currents

I2(n) = S2star/V2star(n);

% (Step 2) Solving the summation of Y(kj)V(j) for all busbars

Sum2(n) = (Y(2,1) * Vnode1(n)) + (Y(2,3) * Vnode3(n)) + (Y(2,5) *


Vnode5(n));

% (Step 3) Solving for the new value of node voltage

V2(n) = ( I2(n) - Sum2(n) ) / Y(2,2);

27
Vnode2(n+1) = V2(n); % Immediately updates the current value of Vnode2

% (Step 4)
% Now determine the new value of Vnode3
% This calculation uses the new updated value of Vnode2

I3(n) = S3star/V3star(n);
Sum3(n) = (Y(3,1) * Vnode1(n)) + (Y(3,2) * Vnode2(n+1)) + (Y(3,4) *
Vnode4(n));
V3(n) = ( I3(n) - Sum3(n) ) / Y(3,3);
Vnode3(n+1) = V3(n); % Immediately updates the current value of Vnode3

% (Step 5)
% Now determine the new value of Vnode4
% This calculation uses the new updated value3 of Vnode2 and Vnode3

I4(n) = S4star/V4star(n);
Sum4(n) = (Y(4,3) * Vnode3(n+1)) + (Y(4,5) * Vnode5(n));
V4(n) = ( I4(n) - Sum4(n) ) / Y(4,4);

Vnode4(n+1) = V4(n); % Immediately updates the current value of


Vnode4

% (Step 5)
% Now determine the new value of Vnode5
% This calculation uses the new updated value3 of Vnode2 Vnode3 & Vnode4

I5(n) = S5star/V5star(n);
Sum5(n) = (Y(5,1) * Vnode1(n)) + (Y(5,2) * Vnode2(n+1)) + (Y(5,4) *
Vnode4(n+1));
V5(n) = ( I5(n) - Sum5(n) ) / Y(5,5);

Vnode5(n+1) = V5(n); % Immediately updates the current value of Vnode5

% Insert Accelerating Factor (alpha)

alpha = 1.25;
Vacc2(1) = 1;
Vacc2(n+1) = Vnode2(n) + alpha * (Vnode2(n+1) - Vnode2(n));
Vacc3(n+1) = Vnode3(n) + alpha * (Vnode3(n+1) - Vnode3(n));
Vacc4(n+1) = Vnode4(n) + alpha * (Vnode4(n+1) - Vnode4(n));
Vacc5(n+1) = Vnode5(n) + alpha * (Vnode5(n+1) - Vnode5(n));

Vnode2(n+1) = Vacc2(n+1);
Vnode3(n+1) = Vacc3(n+1);
Vnode4(n+1) = Vacc4(n+1);
Vnode5(n+1) = Vacc5(n+1);
end

disp (':')
disp (' Electrical Power Utilisation 6EJ022 ')
disp (':')
disp (' Gauss Seidal Plus Acceleration Factor Solution of Load Flow
Assignment(2) 2010/11')
disp (':')
disp (' Successive Iteration Values ')
disp (':')
disp (' Vnode2 Vnode3 Vnode4 Vnode5
')
disp(':')

d = 0;
for c = 1:m

28
fprintf(' %1.4f %1.4fi\t, %1.4f %1.4fi\t, %1.4f %1.4fi\t, %1.4f
%1.4fi\n',...
real(Vnode2(1+d)), imag(Vnode2(1+d)), real(Vnode3(1+d)),...
imag(Vnode3(1+d)), real(Vnode4(1+d)), imag(Vnode4(1+d)),
real(Vnode5(1+d)), imag(Vnode5(1+d)));
d=d+1;
end
The Matlab program output code for the GAUSS SEIDAL with ACCELERATION FACTOR
solution of the network load-flow problem.

Command Window Output:


: Electrical Power Utilisation 6EJ022
: Gauss Seidal Solution of Load Flow Assignment (2) 2010/11
: Successive Iteration Values
:
Vnode2 Vnode3 Vnode4 Vnode5
:
1.0000 0.0000i ,1.0000 0.0000i ,1.0000 0.0000i ,1.0000 0.0000i
0.9849 -0.0124i ,0.9825 -0.0123i ,0.9676 -0.0257i ,0.9704 -0.0274i
0.9673 -0.0269i ,0.9669 -0.0251i ,0.9442 -0.0459i ,0.9605 -0.0350i
0.9599 -0.0322i ,0.9578 -0.0324i ,0.9363 -0.0507i ,0.9547 -0.0392i
0.9549 -0.0360i ,0.9545 -0.0343i ,0.9314 -0.0541i ,0.9517 -0.0414i
0.9532 -0.0368i ,0.9524 -0.0357i ,0.9290 -0.0556i ,0.9503 -0.0422i
0.9521 -0.0377i ,0.9514 -0.0363i ,0.9278 -0.0562i ,0.9496 -0.0427i
0.9516 -0.0379i ,0.9509 -0.0365i ,0.9272 -0.0566i ,0.9492 -0.0429i
0.9513 -0.0380i ,0.9507 -0.0367i ,0.9269 -0.0567i ,0.9490 -0.0430i
0.9512 -0.0381i ,0.9505 -0.0367i ,0.9268 -0.0568i ,0.9489 -0.0430i
0.9511 -0.0381i ,0.9505 -0.0367i ,0.9267 -0.0568i ,0.9489 -0.0430i
0.9511 -0.0382i ,0.9504 -0.0368i ,0.9267 -0.0568i ,0.9489 -0.0430i
0.9510 -0.0382i ,0.9504 -0.0368i ,0.9266 -0.0569i ,0.9489 -0.0430i
0.9510 -0.0382i ,0.9504 -0.0368i ,0.9266 -0.0569i ,0.9489 -0.0430i

Gauss Seidal Plus Accelerating Factor Note even faster convergence after Twelve Iterations

Method 4: The Z-Matrix Method. Using a block substitution procedure:

The Y-matrix methods used with the Jacobi and the Gauss Seidal techniques generally have a poor
convergence and in some cases the success iteration values may actually diverge. Much work has been
undertaken in an attempt to overcome the problem, but generally with inconclusive results.

Another approach to the solution of this problem is to use the Z-matrix method.
In the Y-matrix methods the network relationships are expressed in the form of an admittance matrix.

I = Y⋅ V
By inverting the Y-matrix equation we can derive an equation of the form
−1
V = Z⋅ I ….. where Z = Y

The Y-matrix is generally a sparse matrix, i.e. contains a significant number of zeros. On the other hand the
Z-matrix is always full and therefore provides an improved mathematical linkage between V and I.
It would appear that the system node voltages could be calculated in a more direct manner from the set of Z-
matrix equations. Unfortunately, no direct solution is possible. Once more an iterative strategy must be
adopted which will again produce a convergence to the required set of system voltages.

29
Since busbar 1 is taken as the slack busbar, for which the voltage conditions are fully specified, the remaining
nodal admittance equations will have the form:

I2 = Y21 V1 + Y22 V2 + Y23 V3 + Y24 V4 + Y25 V5


I3 = Y31 V1 + Y32 V2 + Y33 V3 + Y34 V4 + Y35 V5
I4 = Y41 V1 + Y42 V2 + Y43 V3 + Y44 V4 + Y45 V5
I5 = Y51 V1 + Y52 V2 + Y53 V3 + Y54 V4 + Y55 V5

In this form the Y-matrix is not square and therefore cannot be inverted. Rearranging:

I2 − Y21 V1 = Y22 V2 + Y23 V3 + Y24 V4 + Y25 V5


I3 − Y31 V1 = Y32 V2 + Y33 V3 + Y34 V4 + Y35 V5
I4 − Y41 V1 = Y42 V2 + Y43 V3 + Y44 V4 + Y45 V5
I5 − Y51 V1 = Y52 V2 + Y53 V3 + Y54 V4 + Y55 V5

′ ′ ′
Which can be written as I = Y ⋅ V where Y ' is square and non-singular and can be
inverted.
After inversion the following equation is obtained:
′ ′ ′ ′
V = Z ⋅ I where for the k th busbar I k = Ik − Yk1 V1

V2 = Z22 ( I2 − Y21 V1 ) + Z23 ( I3 − Y31 V1 ) + Z24 ( I4 − Y41 V1 ) + Z25 ( I5 − Y51 V1 )


V3 = Z32 ( I2 − Y21 V1 ) + Z33 ( I3 − Y31 V1 ) + Z34 ( I4 − Y41 V1 ) + Z35 ( I5 − Y51 V1 )
V4 = Z42 ( I2 − Y21 V1 ) + Z43 ( I3 − Y31 V1 ) + Z44 ( I4 − Y41 V1 ) + Z45 ( I5 − Y51 V1 )
V5 = Z52 ( I2 − Y21 V1 ) + Z53 ( I3 − Y31 V1 ) + Z54 ( I4 − Y41 V1 ) + Z55 ( I5 − Y51 V1 )

n n
Vk = ∑Z kj I j
j=2
− ∑Z
j=2
kj Yj1 V1

where the second summation is constant since V 1 is fixed

and

S*j
Ij =
V j*

The required computational strategy is one that uses these last two equations iteratively until a converged

voltage solution is obtained. Any Matlab code must be careful to designate the correct suffixes to the Z

which results from the inversion of Y matrix. The form of the computer program is illustrated below.

This program uses a block substitution technique similar to procedure followed in the Jacobi solution.

30
The step by step process of the Z-matrix method with block substation illustrated above can now
demonstrated by numerically solving the first set of iterations for the network shown in Fig1 on page 5.

Admittance Matrix but with the first row and column removed.

Admittance Matrix with the first row and column removed

31
32
The Matlab program code for the Z-MATRIX WITH BLOCK SUBSTITUTION method of solution
for the given network load-flow problem can now be written.

Matlab Program.

% BSc(Hons) Electrical Electronic Engineering

% Module 6EJ998

% Assignment No2

% MODELLING LOAD FLOW STUDIES USING MATLAB

% YEAR 2010/11

% STUDENT ...........

% NETWORK (see Fig 1)

% Input (1)
% Insert the Network Admittance Matrix
% (see page 2 of supplied assignment paperwork ignoring shunt capacitive
admittance)

33
format short
Y(1,1) = 10.958905 - 26.027398i;
Y(1,2) = -3.424658 + 7.534247i;
Y(1,3) = -3.424658 + 7.534247i;
Y(1,4) = 0.00;
Y(1,5) = -4.109589 + 10.958904;

Y(2,1) = -3.424658 + 7.534247i;


Y(2,2) = 11.672080 - 26.090949i;
Y(2,3) = -4.123711 + 9.278351i;
Y(2,4) = 0.00;
Y(2,5) = -4.123711 + 9.278351i;

Y(3,1) = -3.424658 + 7.534247i;


Y(3,2) = -4.123711 + 9.278351i;
Y(3,3) = 10.457198 - 23.154061i;
Y(3,4) = -2.926829 + 6.341463i;
Y(3,5) = 0.00;

Y(4,1) = 0.00;
Y(4,2) = 0.00;
Y(4,3) = -2.926829 + 6.341463i;
Y(4,4) = 7.050541 - 15.619814i;
Y(4,5) = -4.123711 + 9.278351i;

Y(5,1) = -4.109589 + 10.958904i;


Y(5,2) = -4.123711 + 9.278351i;
Y(5,3) = 0.00;
Y(5,4) = -4.123711 + 9.278351i;
Y(5,5) = 12.357012 - 29.515606i;

% Input (2)
% Input the given node loadings .....see diagram on page 1 ....
% .... of the supplied assignment paperwork
% A positive (+ sign) is for generated power,
% The negative (- sign) indicates load taken from the network.
% Per unit loading is used with a base loading taken at 100MVA

P2 = - 0.4; % p.u. active power loading


P3 = - 0.25; % p.u. active power loading
P4 = - 0.4; % p.u. active power loading
P5 = - 0.5; % p.u. active power loading

Q2 = - 0.2i; % p.u. reactive power loading


Q3 = - 0.15i; % p.u. reactive power loading
Q4 = - 0.2i; % p.u. reactive power loading
Q5 = - 0.2i; % p.u. reactive power loading

% The voltage at the generation busbar, node (1) is 1.0 p.u.


% This voltage is fixed and therefore determines the reference ....
% ... or SLACK BUSBAR must be Node(1)

% Z-MATRX SOLUTION
% The sub-matrix of the actual 5x5 network admittances (Y) ....
% but with the first row and column removed now needs to be obtained
% This sub-matrix is called Ysub and is easily derived from ....
% the network admittance matrix by using the following command

Ysub = Y(2:5,2:5);

% The inverse of this sub-matrix gives the required Z-matrix

34
Z = inv(Ysub);

% Some care needs to taken in respect of the Z-matrix suffixes


% This can now be rectified by adding a further ....
% row(1) and column(1) of zeros to the Z-matrix.
% Note the pime (') after the matrix is a transpose command
% Rows are changed columns and columns become rows

A = [0;0;0;0];
Z = [A Z];
B = [0;0;0;0;0];
Zt = [B Z'];

% Zt is the transpose of the Z-matrix with an added set of zeros


% for the first row and column
% A further transposition brings back the modified Z-matrix

Z = Zt';

% The number of iteration will need to be set


% Set the value of 'l' the chosen number of iterations
% l=40 will be used since this is the number in the JACOBI solution.

l = 40; % sets the number of iterations


m = l + 1; % allocates the space used to store each iteration
vector = [1:m]; % assigns a row with the appropriate spaces

row = ones(size(vector));

Vnode1 = row; % each node voltage has the required storage spaces
Vnode2 = row;
Vnode3 = row;
Vnode4 = row;
Vnode5 = row;

for n = 1:m

Vnode1(n) = 1.0 + 0.00i; % inserts the assumed initial node voltages


Vnode2(n) = 1.0 + 0.00i;
Vnode3(n) = 1.0 + 0.00i;
Vnode4(n) = 1.0 + 0.00i;
Vnode5(n) = 1.0 + 0.00i;

end

S2star = P2 - Q2; % conjugates of the specified node loadings


S3star = P3 - Q3;
S4star = P4 - Q4;
S5star = P5 - Q5;

% Now Proceed with the Z-MATRIX SOLUTION


% Following the same method as in the worked example
% Pages 28 and 29 of the assignment notes

% STEP 1.
% Obtain the values of the constant terms ....
% from the summation of Z(kj)Y(j1)V(1)

for n = 1 : m
Const2 = Z(2,2) * Y(2,1) * Vnode1(n) + Z(2,3) * Y(3,1) * Vnode1(n) + Z(2,4) *
Y(4,1) * Vnode1(n) + Z(2,5) * Y(5,1) * Vnode1(n);

35
Const3 = Z(3,2) * Y(2,1) * Vnode1(n) + Z(3,3) * Y(3,1) * Vnode1(n) + Z(3,4) *
Y(4,1) * Vnode1(n) + Z(3,5) * Y(5,1) * Vnode1(n);
Const4 = Z(4,2) * Y(2,1) * Vnode1(n) + Z(4,3) * Y(3,1) * Vnode1(n) + Z(4,4) *
Y(4,1) * Vnode1(n) + Z(4,5) * Y(5,1) * Vnode1(n);
Const5 = Z(5,2) * Y(2,1) * Vnode1(n) + Z(5,3) * Y(3,1) * Vnode1(n) + Z(5,4) *
Y(4,1) * Vnode1(n) + Z(5,5) * Y(5,1) * Vnode1(n);

% STEP 2.
% Obtain the values of the node current input terms ....
% from Skstar/Vkstar

V2star(n) = conj(Vnode2(n));
V3star(n) = conj(Vnode3(n));
V4star(n) = conj(Vnode4(n));
V5star(n) = conj(Vnode5(n));

I2(n) = S2star / V2star(n);


I3(n) = S3star / V3star(n);
I4(n) = S4star / V4star(n);
I5(n) = S5star / V5star(n);

% STEP 3
% Calculate the new (update) value of node Voltage

V2(n) = Z(2,2) * I2(n) + Z(2,3) * I3(n) + Z(2,4) * I4(n) + Z(2,5) * I5(n) -


Const2;
V3(n) = Z(3,2) * I2(n) + Z(3,3) * I3(n) + Z(3,4) * I4(n) + Z(3,5) * I5(n) -
Const3;
V4(n) = Z(4,2) * I2(n) + Z(4,3) * I3(n) + Z(4,4) * I4(n) + Z(4,5) * I5(n) -
Const4;
V5(n) = Z(5,2) * I2(n) + Z(5,3) * I3(n) + Z(5,4) * I4(n) + Z(5,5) * I5(n) -
Const5;

u = 1 + n;

Vnode2(u) = V2(n);
Vnode3(u) = V3(n);
Vnode4(u) = V4(n);
Vnode5(u) = V5(n);

end

disp (':')
disp (' Electrical Power Utilisation 6EJ022 ')
disp (':')
disp (' Z-MATRIX Solution of Load Flow Assignment(2) 2010/11')
disp (':')
disp (' Successive Iteration Values ')
disp (':')
disp (' Vnode2 Vnode3 Vnode4 Vnode5
')
disp(':')

d = 0;
for c = 1:m
fprintf(' %1.4f %1.4fi\t, %1.4f %1.4fi\t, %1.4f %1.4fi\t, %1.4f
%1.4fi\n',...
real(Vnode2(1+d)), imag(Vnode2(1+d)), real(Vnode3(1+d)),...
imag(Vnode3(1+d)), real(Vnode4(1+d)), imag(Vnode4(1+d)),
real(Vnode5(1+d)), imag(Vnode5(1+d)));
d=d+1;
end

36
The Matlab program output code for the Z-MATRIX WITH BLOCK SUBSTITUTION method of solution
for the network load-flow problem.

Command Window Output:

:
Electrical Power Utilisation 6EJ022
:
Z-MATRIX Solution of Load Flow Assignment (2) 2010/11
:
Successive Iteration Values
:
Vnode2 Vnode3 Vnode4 Vnode5
:
1.0000 0.0000i , 1.0000 0.0000i , 1.0000 0.0000i , 1.0000 0.0000i
0.9554 -0.0382i , 0.9549 -0.0368i , 0.9340 -0.0569i , 0.9538 -0.0429i
0.9513 -0.0380i , 0.9507 -0.0366i , 0.9271 -0.0565i , 0.9492 -0.0428i
0.9511 -0.0382i , 0.9504 -0.0368i , 0.9267 -0.0569i , 0.9489 -0.0430i
0.9510 -0.0382i , 0.9504 -0.0368i , 0.9266 -0.0569i , 0.9489 -0.0430i
0.9510 -0.0382i , 0.9504 -0.0368i , 0.9266 -0.0569i , 0.9489 -0.0430i

Z-MATRIX with BLOCK SUBSTITUTION Note even faster convergence after Four Iterations

Method 5 - The Z-Matrix Method: Using a forward substitution procedure

The block substitution procedure used in Method 4 is similar to some extent with the method used in the
Jacobi solution.

Possibly, by using a forward substation technique similar to that adopted in the Gauss Seidal method the
number of iterations in the Z-Matrix method can be reduced still further.

Using this approach, each value of node voltage must be immediately revised after each new calculated
update.

The Matlab program code for the Z-MATRIX SOLUTION WITH FORWARD SUBSTITUTION can easily
be produce by simple modification of the block substitution method, see program code below:

Matlab Program.

% BSc(Hons) Elelectrical Electronic Engineering

% Module 6EJ998

% Assignment No2

% MODELLING LOAD FLOW STUDIES USING MATLAB

% YEAR 2010/11

% STUDENT ...........

37
% NETWORK (see Fig 1)

% Input (1)
% Insert the Network Admittance Matrix
% (see page 2 of supplied assignment paperwork ignoring shunt capacitive
admittance)

format short
Y(1,1) = 10.958905 - 26.027398i;
Y(1,2) = -3.424658 + 7.534247i;
Y(1,3) = -3.424658 + 7.534247i;
Y(1,4) = 0.00;
Y(1,5) = -4.109589 + 10.958904;

Y(2,1) = -3.424658 + 7.534247i;


Y(2,2) = 11.672080 - 26.090949i;
Y(2,3) = -4.123711 + 9.278351i;
Y(2,4) = 0.00;
Y(2,5) = -4.123711 + 9.278351i;

Y(3,1) = -3.424658 + 7.534247i;


Y(3,2) = -4.123711 + 9.278351i;
Y(3,3) = 10.457198 - 23.154061i;
Y(3,4) = -2.926829 + 6.341463i;
Y(3,5) = 0.00;

Y(4,1) = 0.00;
Y(4,2) = 0.00;
Y(4,3) = -2.926829 + 6.341463i;
Y(4,4) = 7.050541 - 15.619814i;
Y(4,5) = -4.123711 + 9.278351i;

Y(5,1) = -4.109589 + 10.958904i;


Y(5,2) = -4.123711 + 9.278351i;
Y(5,3) = 0.00;
Y(5,4) = -4.123711 + 9.278351i;
Y(5,5) = 12.357012 - 29.515606i;

% Input (2)
% Input the given node loadings .....see diagram on page 1 ....
% .... of the supplied assignment paperwork
% A positive (+ sign) is for generated power,
% The negative (- sign) indicates load taken from the network.
% Per unit loading is used with a base loading taken at 100MVA

P2 = - 0.4; % p.u. active power loading


P3 = - 0.25; % p.u. active power loading
P4 = - 0.4; % p.u. active power loading
P5 = - 0.5; % p.u. active power loading

Q2 = - 0.2i; % p.u. reactive power loading


Q3 = - 0.15i; % p.u. reactive power loading
Q4 = - 0.2i; % p.u. reactive power loading
Q5 = - 0.2i; % p.u. reactive power loading

% The voltage at the generation busbar, node (1) is 1.0 p.u.


% This voltage is fixed and therefore determines the reference ....
% ... or SLACK BUSBAR must be Node(1)

% Z-MATRX SOLUTION
% The sub-matrix of the actual 5x5 network admittances (Y) ....

38
% but with the first row and column removed now needs to be obtained
% This sub-matrix is called Ysub and is easily derived from ....
% the network admittance matrix by using the following command

Ysub = Y(2:5,2:5);

% The inverse of this sub-matrix gives the required Z-matrix

Z = inv(Ysub);

% Some care needs to taken in respect of the Z-matix suffixes


% This can now be rectified by adding a further ....
% row(1) and column(1) of zeros to the Z-matrix.
% Note the pime (') after the matrix is a transpose command
% Rows are changed columns and columns become rows

A = [0;0;0;0];
Z = [A Z];
B = [0;0;0;0;0];
Zt = [B Z'];

% Zt is the transpose of the Z-matrix with an added set of zeros


% for the first row and column
% A further transposition brings back the modified Z-matrix

Z = Zt';

% The number of iteration will need to be set


% Set the value of 'l' the chosen number of iterations
% l=40 will be used since this is the number in the JACOBI solution.

l = 40; % sets the number of iterations


m = l + 1; % allocates the space used to store each iteration
vector = [1:m]; % assigns a row with the appropriate spaces

row = ones(size(vector));

Vnode1 = row; % each node voltage has the required storage spaces
Vnode2 = row;
Vnode3 = row;
Vnode4 = row;
Vnode5 = row;

for n = 1:m

Vnode1(n) = 1.0 + 0.00i; % inserts the assumed initial node voltages


Vnode2(n) = 1.0 + 0.00i;
Vnode3(n) = 1.0 + 0.00i;
Vnode4(n) = 1.0 + 0.00i;
Vnode5(n) = 1.0 + 0.00i;

end

S2star = P2 - Q2; % conjugates of the specified node loadings


S3star = P3 - Q3;
S4star = P4 - Q4;
S5star = P5 - Q5;

% Now Proceed with the Z-MATRIX SOLUTION


% Following the same method as in the worked example
% Pages 28 and 29 of the assignment notes

% STEP 1.

39
% Obtain the values of the constant terms ....
% from the summation of Z(kj)Y(j1)V(1)

for n = 1 : m
Const2 = Z(2,2) * Y(2,1) * Vnode1(n) + Z(2,3) * Y(3,1) * Vnode1(n) + Z(2,4) *
Y(4,1) * Vnode1(n) + Z(2,5) * Y(5,1) * Vnode1(n);
V2star(n) = conj(Vnode2(n));
I2(n) = S2star / V2star(n);
V2(n) = Z(2,2) * I2(n) + Z(2,3) * I3(n) + Z(2,4) * I4(n) + Z(2,5) * I5(n) -
Const2;

% Now update V2star I2 and V2

V2star(n) = conj(V2(n));
I2(n) = S2star / V2star(n);
V2(n) = Z(2,2) * I2(n) + Z(2,3) * I3(n) + Z(2,4) * I4(n) + Z(2,5) * I5(n) -
Const2;

Const3 = Z(3,2) * Y(2,1) * Vnode1(n) + Z(3,3) * Y(3,1) * Vnode1(n) + Z(3,4) *


Y(4,1) * Vnode1(n) + Z(3,5) * Y(5,1) * Vnode1(n);
V3star(n) = conj(Vnode3(n));
I3(n) = S3star / V3star(n);
V3(n) = Z(3,2) * I2(n) + Z(3,3) * I3(n) + Z(3,4) * I4(n) + Z(3,5) * I5(n) -
Const3;

% Now update V3star I3 and V3

V3star(n) = conj(V3(n));
I3(n) = S3star / V3star(n);
V3(n) = Z(3,2) * I2(n) + Z(3,3) * I3(n) + Z(3,4) * I4(n) + Z(3,5) * I5(n) -
Const3;

Const4 = Z(4,2) * Y(2,1) * Vnode1(n) + Z(4,3) * Y(3,1) * Vnode1(n) + Z(4,4) *


Y(4,1) * Vnode1(n) + Z(4,5) * Y(5,1) * Vnode1(n);
V4star(n) = conj(Vnode4(n));
I4(n) = S4star / V4star(n);
V4(n) = Z(4,2) * I2(n) + Z(4,3) * I3(n) + Z(4,4) * I4(n) + Z(4,5) * I5(n) -
Const4;

% Now update V4star I4 and V4

V4star(n) = conj(V4(n));
I4(n) = S4star / V4star(n);
V4(n) = Z(4,2) * I2(n) + Z(4,3) * I3(n) + Z(4,4) * I4(n) + Z(4,5) * I5(n) -
Const4;

Const5 = Z(5,2) * Y(2,1) * Vnode1(n) + Z(5,3) * Y(3,1) * Vnode1(n) + Z(5,4) *


Y(4,1) * Vnode1(n) + Z(5,5) * Y(5,1) * Vnode1(n);
V5star(n) = conj(Vnode5(n));
I5(n) = S5star / V5star(n);
V5(n) = Z(5,2) * I2(n) + Z(5,3) * I3(n) + Z(5,4) * I4(n) + Z(5,5) * I5(n) -
Const5;

% Now update V5star I5 and V5

V5star(n) = conj(V5(n));
I5(n) = S5star / V5star(n);
V5(n) = Z(5,2) * I2(n) + Z(5,3) * I3(n) + Z(5,4) * I4(n) + Z(5,5) * I5(n) -
Const5;

u = 1 + n;

40
Vnode2(u) = V2(n);
Vnode3(u) = V3(n);
Vnode4(u) = V4(n);
Vnode5(u) = V5(n);

end

disp (':')
disp (' Electrical Power Utilisation 6EJ022 ')
disp (':')
disp (' Z-MATRIX Solution of Load Flow Assignment(2) 2010/11 ')
disp (':')
disp (' Successive Iteration Values ')
disp (':')
disp (' Vnode2 Vnode3 Vnode4 Vnode5
')
disp(':')

d = 0;
for c = 1:m
fprintf(' %1.4f %1.4fi\t, %1.4f %1.4fi\t, %1.4f %1.4fi\t, %1.4f
%1.4fi\n',...
real(Vnode2(1+d)), imag(Vnode2(1+d)), real(Vnode3(1+d)),...
imag(Vnode3(1+d)), real(Vnode4(1+d)), imag(Vnode4(1+d)),
real(Vnode5(1+d)), imag(Vnode5(1+d)));
d=d+1;
end

The Matlab program output code for the Z-MATRIX WITH FORWARD SUBSTITUTION
method of solution for the network load-flow problem.

Command Window Output:

:
Electrical Power Utilisation 6EJ022
:
Z-MATRIX Solution of Load Flow Assignment (2) 20010/11
:
Successive Iteration Values
:
Vnode2 Vnode3 Vnode4 Vnode5
:
1.0000 0.0000i , 1.0000 0.0000i , 1.0000 0.0000i , 1.0000 0.0000i
0.9512 -0.0381i , 0.9506 -0.0367i , 0.9269 -0.0567i , 0.9490 -0.0429i
0.9510 -0.0382i , 0.9504 -0.0368i , 0.9266 -0.0569i , 0.9489 -0.0430i
0.9510 -0.0382i , 0.9504 -0.0368i , 0.9266 -0.0569i , 0.9489 -0.0430i

Z-MATRIX with FORWARD SUBSTITUTION Now even faster convergence only Two Iterations

41
The solution of the network load flow problem network illustrated on page 5 has been solved using
the Matlab computer code supplied, (see pages 6 to 41).

Assignment network connections:


For the 2010/11 second assignment the network connections have now been modified, see figure
1A below. The network base quantities are still MVA base = 100 MVA and V base = 132 kV. The node
loadings are shown on the modified diagram and the inter-connecting line impedances are given in
Table 1A. By modifying the given admittance data to suit the new conditions, solve the new Load
Flow Problem by the same methods as used in the procedures (pages 6-41) of the above notes.
This gives the values of the voltages at each node.
Using the node voltage results calculate the current flow in each of the interlinking cables in the
network of FIG 1A. A computer programme solution of this problem would be preferred.

Table 1A
From
To Busbar R (p.u.) X (p.u.) B (p.u.)
Busbar
1 2 0.05 0.11 0.02
1 3 0.05 0.11 0.02
1 5 0.03 0.08 0.02
2 4 0.04 0.09 0.02
2 5 0.04 0.09 0.02
3 4 0.06 0.13 0.03
4 5 0.04 0.09 0.02

42
Figure 1

43