Está en la página 1de 212

A. J. Conejo
&
several
distinguished students

## Univ. Castilla – La Mancha

September 2008

07/09/2009 1

0. References
1. Introduction
2. Problem formulation
Two-bus case
Matrix YBUS
General equations
Bus classification
Variable types and
limits

07/09/2009 2

## 3. The Gauss-Seidel solution technique

Introduction
Algorithm initialization
PQ Buses
PV Buses
Stopping criterion

07/09/2009 3

## 4. The Newton-Raphson solution technique

Introduction
General fomulation
Jacobian matrix
Solution outline

07/09/2009 4

## 5. Fast decoupled AC load flow

8. Comparison of load flow solution methods

07/09/2009 5
References

## 1. A. Gómez Expósito, A. J. Conejo, C.

Cañizares. “Electric Energy Systems.
Analysis and Operation”. CRC Press, Boca
Raton, Florida, 2008.

## 2. A. R. Bergen, V. Vittal. “Power Systems

Analysis”. Second Edition. Prentice Hall,
Upper Saddle River, New Jersey, 1999.

07/09/2009 6
1. Introduction

07/09/2009 7
Introduction
• A snapshot of the system

analysis

## • Knowning the demand and/or generation of

power in each bus, find out:
– buses voltages
– load flow in lines and transformers
07/09/2009 8
Introduction

## • The problem is described throught a non-

lineal system of equations

## • Solution technique: accuracy vs. computing

time

07/09/2009 9
Introduction

• Applications:
1. On-line analyses
• State estimation
• Security
• Economic analyses

07/09/2009 10
Introduction

2. Off-line analyses
• Operation analyses
• Plannig analyses
Network expansion planning
Power exchange planning
- Faults
- Stability

07/09/2009 11
2. Problem formulation

07/09/2009 12
Problem formulation
Two-bus case

## We want to find out the relationship between

j
Si  Pi  jQi and Vi  Vie i in all buses of the power
system
I1 YS I2

V1 YG V2
YG

07/09/2009 13
Transmission line π model
Problem formulation
Two-bus case

## Using Kirchhoff laws:

I1  V1 YG  ( V1  V2 ) Y S
I2  V2 YG  ( V2  V1) Y S

Matrix notation:
 I1   Y G  Y S  Y S   V1   Y11 Y12   V1 
I      V      V 
 2    YS Y G  Y S   2   Y 21 Y 22   2 
IBUS   YBUS  VBUS 
07/09/2009 14
Problem formulation
Two-bus case

## • Complex power injected in each bus:

S1  SG1  SD1  P1  jQ1  V1  I1*
S2  SG2  SD2  P2  jQ2  V2  I2*

S1  V1  I1*  V1  ( Y11
*
V1*  Y12
*
V2* )
S2  V2  I2*  V2  ( Y21
*
V1*  Y22
*
V2* )

07/09/2009 15
Problem formulation
Two-bus case continuation
Notation:
Yik  Yik e j ik
Vi  Vi e j i

Replacing:
2
P1  jQ1  V1  Y1k Vk e j( 1 k 1k )
k 1
2
P2  jQ2  V2  Y2k Vk e j( 2 k 2k )
k 1
07/09/2009 16
Problem formulation
Two-bus case continuation

## Therefore, the no lineal equations for the 2

buses network are:
2
Pi  Vi   Yik Vk cos (i  k  ik )
k 1
2
Qi  Vi   Yik Vk sin (i  k  ik )
k 1

i  1, 2

07/09/2009 17
Problem formulation
Matrix Ybus

## • Two bus case

 Y11 Y12   YG  YS  YS 
YBUS  

 Y21 Y22    YS YG  YS 

07/09/2009 18
General building rules
Matrix Ybus
1. Self admittance of node i, Yii ,equals the
algebraic sum of all the admittances
connected to node i

## 2. Mutual admittance between nodes i and

k, Yik ,equals the negative of the sum of
all admittances connecting nodes i and k

3. Yik  Yki

07/09/2009 19
Problem formulation
Matrix Ybus

• Caracteristics of YBUS

1. YBUS is symmetric

is very sparse
2. YBUS

07/09/2009 20
Ybus example

## Shunt element YG  j 0.01 (two per line)

Series element ZS  j 0.1

##  j19.98 j10 j10 

YBUS   j10  j19.98 j10 
 
 j10 j10  j19.98 

07/09/2009 21
Problem formulation
General equations

## • 2n equations (static load flow equations)

n
Pi  PGi  PDi  Vi   Yik Vk cos (i  k  ik ) 1
k 1
n
Qi  QGi  QDi  Vi   Yik Vk sin (i  k  ik ) 2
k 1

i  1,..., n
n  bus system

07/09/2009 22
Problem formulation
General equations
Polar representation for voltages and rectangular
n
Pi  Vi   Vk (Gik cos ik  Bik senik ) [1]
k 1
n
Qi  Vi   Vk (Gik senik  Bik cos ik ) [2]
k 1
where
Y ik  Gik  j Bik
ik  i  k

07/09/2009 23
Problem formulation
General equations
• 4n variables

## • If 2n variables are specified, the other 2n are

determined by equations [1] and [2]

07/09/2009 24
Problem formulation
BUS Classification

1. PQ buses

## Pi known ( PDi known, PGi zero)

Qi known (QDi known, QGi zero)

Vi unknown
i unknown

07/09/2009 25
Problem formulation
BUS Classification
2. PV buses
Pi known
Qi unknown

## Pi known ( PGi specified, PDi known)

Vi known (specified)

## Qi unknown ( QGi unknown, QDi known)

i unknown

07/09/2009 26
Problem formulation
BUS Classification

## 3. Slack bus, generator with large capacity.

V1 known (specified)
1 known (specified, typically 1  0 
reference)
P1 unknown ( PD1 known, PG1 unknown)
Q1 unknown ( QD1 known, QG1 unknown)

07/09/2009 27
Problem formulation
Variable types and limits

• Power balance

n n
 PGi   PDi  PLOSS
i1 i1

n n
 QGi   QDi  QLOSS
i1 i1

07/09/2009 28
Problem formulation
Variable types and limits
• Variable types

 Control variables
PGi (excepting slack bus)
QGi or V i

 Non-control variables
PDi QDi

 State variables
Vi i
07/09/2009 29
Problem formulation
Variable types and limits
• Variable limits

 Power limits

## PGi,min  PGi  PGi,max

QGi,min  QGi  QGi,max

07/09/2009 30
3.The Gauss-Seidel solution
technique

31
Gauss-Seidel solution technique

No lineal system:
f (x)  0  x  F( x )

Iteration
x (r 1)  F( x (r ) )

Stoping rule
x (r 1)  x (r )  

07/09/2009 32
Gauss-Seidel solution technique
 Example f ( x)  x 2  5x  4  0
x  0 . 2 x 2  0 .8
x (r 1)  0.2( x (r ) )2  0.8 ; x ( 0 )  2
r  0, x (1)  0.2  22  0.8  1.6
r  1, x ( 2 )  0.2  1.6 2  0.8  1.312
r  2, x ( 3 )  0.2  1.312 2  0.8  1.1442
...
r  5, x ( 6 )  1.0103
r  6, x ( 7 )  1.0042
...
r  10, x (11)  1.0001
r  11, x (12 )
 1.0000
Many iterations!
r  12, x (13 )  1.0000
07/09/2009 33
Gauss-Seidel solution technique
Algorithm beginning
1) Known
Pi i  2,...,n (PV & PQ Buses)
Qi i  m  1,...,n (PQ Buses)
Vi i  2,...,m (PV Buses)
V1 slack bus
V i min , V i max i  m  1,...,n (PQ Buses)
QGi,min , QGi,max i  2,...,m (PV Buses)

07/09/2009 34
Gauss-Seidel solution technique
Algorithm beginning

2) Build YBUS

3) Initialize voltages
0
Vi  Vi i  m  1,...,n
0
i  i i  2,...,n

07/09/2009 35
Gauss-Seidel solution technique
PQ buses
4) PQ buses
* * * * n
Si  Pi  jQi  V i Ii  Vi Y ii V i  
V i Y ik Vk
k 1
k i

 
1 Pi  jQi n

Vi 
Y ii  V i*
  Y ik V k

k 1
 k i 
P  jQi
Ai  i i  m  1,...,n
Y ii
Y ik
Bik  i  m  1,...,n ; k  1,...,n ; k  i
Y ii
07/09/2009 36
Gauss-Seidel solution technique
PQ buses

## At iteration (r+1) and bus i, the available values of

voltages at previous buses are used:

Ai i1 n
(r 1) (r 1)
  Bik V k  Bik V k
(r )
Vi  (r ) *

(Vi ) k 1 k i1

07/09/2009 37
Gauss-Seidel solution technique
PV buses

5) PV buses

* * * n
Si  Pi  jQi  V i Ii  
V i Y ik V k
k 1

 * n 
Qi   V i  Y ik V k 
 k 1 

07/09/2009 38
Gauss-Seidel solution technique
PV buses
At iteration (r+1):
 (r ) * i1 (r 1) (r ) * n (r ) 
Q(ir 1)  ( V i )  Y ik V k  ( V i )  Y ik V k 
 k 1 k i 

Pi  jQ(ir 1)
i  angleV i 
(r 1)
Ai 
Y ii

##  A (r 1) i1 (r 1) n (r ) 

(ir 1)  angle (r )   Bik V k   Bik V k 
i
( V i )* k 1 k i1 
07/09/2009 39
Gauss-Seidel solution technique
PV buses

Beware of limits!
Q(ir 1)  Qi,min  Q(ir 1)  Qi,min & i becomes PQ
Q(ir 1)  Qi,max  Q(ir 1)  Qi,max & i becomes PQ

## (more on this below)

07/09/2009 40
Gauss-Seidel solution technique
PV buses

6) Stop criterion

## 6.1) Slack bus power (after convergence)

* n
P1  jQ1  
V1 Y1k V k
k 1

07/09/2009 41
Gauss-Seidel solution technique
Algorith final calculations

## 6.2) Compute line currents (after convergence)

ILik  ( V i  V k ) YLik ; Iik 0  V i Y ik 0
ILki  ( V k  V i ) YLik ; Iki0  V k Y ki 0

Vi Vk
i ILik YLik ILki k

## Sik Iik 0 Iki0 Sik

Y ik 0 Y ki0

07/09/2009 42
Gauss-Seidel solution technique
Algorith final calculations
6.2) Compute line complex power (after convergence)
* * * * *
Ski  V k ( V k  V i )YLik  V k V k Y ki 0 ;
* * * * *
Sik  V i ( V i  V k )YLik  V i V i Y ik 0 ;

Vi Vk
i ILik YLik ILki k

## Sik Iik 0 Iki0 Sik

Y ik 0 Y ki0

07/09/2009 43
Gauss-Seidel solution technique
Algorith final calculations

## 6.3) Compute losses (after convergence)

Sloss , ik  Sik  Ski ;  k, i
Sloss   Sloss , ik
 k,i

7) If no convergence, go to step 4.

07/09/2009 44
Gauss-Seidel solution technique
Algorithm improvement

## • Acceleration factor (in order to decrease

the number of iterations):
~
(r 1)
Vi(r 1)  V i   V i
(r ) (r )
 Vi 
  1.6 (generally recommended)

07/09/2009 45
Gauss-Seidel
Matlab code
function [Vfinal,angfinal,nite,P,Q,errorplot,tiempo]=Gaussgen(m,n,Ybus,Vmodini,Angini,P,Q,tol,Vmax,Vmin,Qmax,Qmin)
%--------------------------------------------------------------------------------------------------------------------------------------------------
%-function [Vmod,ang,nite,P,Qerrorplot,tiempo]=Gaussgen(m,n,Ybus,Vmodini,Angini,P,Q,tol,Vmax,Vmin,Qmax,Qmin)
%-Resuelve de forma general problema de carga por el m´etodo de Gauss-Seidel
%-donde:
%-2...m nudos PV; (m=1 cuando no hay nudos PV)
%-n nudos totales
%-Vmodini tensiones iniciales modulo
%-P potencia activa inicial
%-Q potencia reactiva inicial
%-tol tolerancia para error en tension y potencia reactiva
%-Vmax Vmin valores limites aceptables para las tensiones
%-Qmax Qmin valores limites aceptables para las potencias reactivas
%-nite n´umero de iteraciones
%-Vfinal vector con todas las potencias para cada iteraci´on
%-angfinal igual pero con los ´angulos
%-tiempo, tiempo invertido en hacer las operaciones
%---------------------------------------------------------------------------------------------------------------------------------------------------
%calculo de la matriz B
B=zeros(n,n);
for t=1:n
for k=1:n
B(t,k)=Ybus(t,k)/Ybus(t,t);
end
end

07/09/2009 46
Gauss-Seidel
Matlab code 2
V=zeros(n,1);
for a=1:n
V(a)=Vmodini(a)*exp(i*Angini(a));
end
ang=Angini;
%empieza el bucle:
error=1; %valores iniciales para poder entrar en el bucle
errorQ=1;
nite=0;
tic;
while max(abs(error))>tol | max(abs(errorQ))>tol
nite=nite+1;
Vmod=abs(V);
Vini=V;
ang=angle(V);
Qini=Q;
%calculo las reactivas para los nudos PV
if m>1
for l=2:m
AQ=0;
for k=1:n
AQ=AQ+Ybus(l,k)*V(k);
end
Q(l)=-imag((V(l)')*AQ);
end
07/09/2009 47
%calculo las A para todos los nudos:
for a=1:n
A(a)=(P(a)-i*Q(a))/Ybus(a,a);
end Gauss-Seidel
%calculo los angulos nudos PV:

for l=2:m
Matlab code 3
Aang=0;
for k=1:n
Aang=Aang+B(l,k)*V(k);
end
ang(l)=angle(A(l)/((V(2))')-Aang+B(l,l)*V(l));
end
end
for a=1:n
A(a)=(P(a)-i*Q(a))/Ybus(a,a);
end
%ahora actualizo los voltajes otra vez:
for a=1:n
V(a)=Vmod(a)*exp(i*ang(a));
end
%ahora calculo los nudos PQ
AV=zeros(n,1);
for p=m+1:n
for k=1:n
AV(p)=AV(p)+B(p,k)*V(k);
end
V(p)=A(p)/((V(p))')-AV(p)+B(p,p)*V(p);
end
error=Vini-V;
errorQ=Qini-Q;
errorplot(1,nite)=norm(abs(error));
Vfinal(:,nite)=abs(V);
07/09/2009 end 48
Gauss-Seidel
Matlab code 4
%calculos los valores de potencia para el nudo slack:
S1=0;
for t=1:n
S1=S1+(V(1)')*(Ybus(1,t)*V(t));
end
P(1)=real(S1);
Q(1)=-imag(S1);
tiempo=toc;
%alerta por si se sobrepasan valores aceptables:
if max(Vmod)>Vmax | min(Vmod)<Vmin
disp('¡¡SE SOBREPASAN LIMITES TENSIONES!!')
end
if max(Q)>Qmax | min(Q)<Qmin
disp('¡¡SE SOBREPASAN LIMITES REACTIVA!!')
end
ang=(180/pi)*angle(V);
Vmo=abs(V);
%represento los errores por iteraci´on:

## plot(1:nite,errorplot,'o');grid on;xlabel('iteraci´on');ylabel('error por iteraci´on');title('evoluci´on error tesi´on');

%------------------------------------------------------------%
% %
% Realizado por Carlos Ruiz Mora octubre 2006 %
% %
%------------------------------------------------------------%

07/09/2009 49
Ejemplo de aplicación del
método de Gauss-Seidel

50
Ejemplo de aplicación de G-S
Para la red de la figura siguiente, se resuelve el
problema de flujo de cargas mediante Gauss-Seidel
con un error máximo de 0.1 MVA.

ONE TWO

THREE

07/09/2009 51
Ejemplo de aplicación de G-S

## Los datos están recogidos en las siguientes tablas.

La Potencia base es SB=100 MVA:

## Nudos Tensiones (p.u.) Potencias Líneas Impedancias (p.u.)

(nudo slack)
1 1.02 1-2 0.02+0.04j

## 3 - PC=100 MW 2-3 0.02+0.04j

07/09/2009 52
Resolución del problema
1. Se especifican datos e incógnitas:

## 1 Slack V1=1.02 1=0.0 P1 Q1

2 PV V2=1.02 P2=0.5 δ 2 Q2

3 PQ P3=-1.0 Q2=-0.6 δ3 V3

07/09/2009 53
Resolución del problema
2. Construimos YBUS
- Yii suma algebraica de las admitancias que terminan en ese nudo;
- Yiknegativo de la suma de todas las admitancias que conectan los
nudos i y k ;

ONE TWO

 15  35 j  10  20 j  5  15 j 
YBUS   10  20 j 30  60 j  20  40 j
 
  5  15 j  20  40 j 25  55 j 
THREE

07/09/2009 54
Resolución del problema

V3  V30  1

## 2  02  0 Para todos los nudos excepto el de

3  03  0 referencia

En forma de vectores:

1.02 0
V 0  1.02 0  0
   
 1  0
07/09/2009 55
Resolución del problema

## - Nudos PQ (V, δ) i=m+1,...,n (nudo 3)

a) convergencia  Sslack y flujos;
b) no converge  volvemos a iterar

07/09/2009 56
Resolución del problema

## 4. Nudo(s) PV en la iteración (r+1) :

nudo 2:

Q(2r 1)   ( V2(r ) )* Y21V1( r 1)  ( V2(r ) )* Y22 V2( r )  ( V2(r ) )* Y23 V3( r ) 

P2  jQ(2r 1)
2  angle [ V2 ] A (2r 1) 
Y22

07/09/2009 57
Resolución del problema

 A (2r 1) (r ) 
(2r 1) ( r 1)
 angle (r 1) *  B21V1  B23 V3 
( V2 ) 

donde

Yik
Bik  constante para cada iteración
Yii

07/09/2009 58
Resolución del problema
5. Nudo(s) PQ en la iteración (r+1) :
nudo 3:
A3
V3(r 1)  (r ) *  B31V1(r 1)  B32 V2(r 1)
( V3 )
donde
P3  jQ3
A3 
Y33
constantes en nudos PQ
Yik
Bik 
Yii

07/09/2009 59
Resolución del problema

## 6. Criterio de parada: error máximo entre una

iteración y la siguiente, tanto en tensiones como en
3
potencia reactiva   10

## | Vi(r 1)  Vi(r ) |

&  i  2, 3; j  2
| Q(jr 1)  Q(jr ) |

07/09/2009 60
Resolución del problema

Si el sistema converge:

## 6.1) Calculamos potencia del nudo Slack

*
Sslack  P1  jQ1  V1* ( Y11V1  Y12 V2  Y13 V3 )

## 6.2) Flujos de potencia  S12 , S21, S13 , S23 , S31, S32

Sik  Vi ( Vi - V *k )YLik
* *

07/09/2009 61
Resolución del problema
6.3) Calculamos pérdidas en las líneas:

07/09/2009 62
Implementación

de nudos;

## - Trabajo con números complejos.

07/09/2009 63
Implementación
Esquema de programa:

## - Definición del sistema: nudos, líneas, datos e incógnitas

- Construcción de YBUS
- Cálculo de coeficientes A i , Bik

07/09/2009 64
Implementación

## Esquema de programa (continuación):

- Proceso iterativo  estructura while + variable de control

## a)repetimos el proceso mientras la variable no tome

b)actualización de variables

Vi en fase y argumento, no como número complejo;

07/09/2009 65
Solución
Alcanzamos solución correcta tras 11 iteraciones

## Iteración (pu) 1 2 3 ... 10 11

0.5083
P1 ,Q1(slack) - - - ... -
0.0716
P2 0.5 0.5 0.5 ... 0.5 0.5

## Q3 -0.6 -0.6 -0.6 ... -0.6 -0.6

07/09/2009 66
Solución

Iteración 1 2 3 ... 10 11
V1 1.02 1.02 1.02 ... 1.02 1.02
1 (º ) 0 0 0 ... 0 0
V2 1.02 1.02 1.02 ... 1.02 1.02

07/09/2009 67
Solución

## El error en cada iteración para |V| y |Q| es:

Iteración 1 2 3 ... 10 11

## Max. error en Q 0.8160 0.4076 0.0612 ... 0.0014 8.11·10-4

07/09/2009 68
Solución Final
Los resultados obtenidos son (magnitudes reales):

## Nudo P (MW) Q (MVAr ) V (pu)

1 50.83 7.16 1.02  0º
2 50.00 55.01 1.02 -0.4685º
3 -100 -60.00 1.0043  -0.9593º

07/09/2009 69
Comprobación

## Comprobamos los resultados con Power-World:

ONE TWO

THREE

07/09/2009 70
Comprobación
Extrayendo los resultados de la simulación del
sistema y comparando con los obtenidos con G-S:

## Nudo 1 Nudo 2 Nudo 3

Solución G-S PW G-S PW G-S PW
V (pu) 1.02 1.02 1.02 1.02 1.0043 1.0043
δ(º) 0 0 -0.4685 -0.4710 -0.9593 -0.9612
P (MW) 50.83 50.98 50.00 50.00 -100 -100
Q (MVAr) 7.16 7.10 55.01 55.12 -60 -60

07/09/2009 71
Comprobación

Magnitud V δ P Q

## Error max.(%) 0% 0.53 % 0.29% 0.84 %

07/09/2009 72
4. The Newton-Raphson solution
technique

73
The Newton-Raphson solution technique
Introduction

• One variable
f ( x )  0, f ( x ( 0 ) )  0, f ( x (0 )  x ( 0 ) )  0
(0)
( 0 )  df 
f ( x  x )  0  f ( x )  x  
(0) (0) (0)
 ...
 dx 
f ( x(0) )
x ( 0 )   (0)
; x (1)  x ( 0 )  x ( 0 )
 df 
 
 dx 
f ( x (r ) )
x (r 1)  x (r )  (r )
 df 
 
 dx 
07/09/2009 74
The Newton-Raphson solution technique
Introduction
• Example
df ( x )
f ( x )  x 2  5 x  4  0;  2x  5
dx
( r 1) ( x ( r ) )2  5 x ( r )  4 ( 0 )
x x (r )
 ; x  0 .5
2x  5
(r )

0 .5 2  5  0 . 5  4
x (1)
 0 .5   0.9375
2  0 .5  5
0.9375 2  5  0.9375  4
x ( 2)
 0.9375   0.9988
2  0.9375  5
0.9988 2  5  0.9988  4
x (3)
 0.9988   1.0000
2  0.9988  5

Fast!
07/09/2009 75
The Newton-Raphson solution technique
General formulation

• General case

f ( x )  0 : Rn  Rn f ( x ( 0 ) )  0, f ( x ( 0 )  x ( 0 ) )  0
f ( x ( 0 )  x )  f ( x ( 0 ) )  J( 0 )  x ( 0 )  0

x (0)
J  ( 0 ) 1
f ( x(0) )
x (1)  x ( 0 )  x ( 0 )

x (r 1)
x (r )
 
J(r ) 1
f ( x (r ) )

07/09/2009 76
The Newton-Raphson solution technique
General formulation

##  f1 f1 f1 

 x 
 x1   f1  x 2 x n 
 1 
x  f   f2 f2 f2 

x   2 f   2 J   x1 x 2 x n 
   
x  f    
 n  n  fn fn fn 
  
 x1 x 2 x n 

07/09/2009 77
The Newton-Raphson solution technique
 (2r ) 
 ( r ) 
 3 
   n
(r )  fiP ()  Vi   Vk (Gik cos ik  Bik sinik )
x (r )
  (r ) 
n

 Vm1 
k 1
n

##   fiQ ()  Vi   Vk (Gik sinik  Bik cos ik )

   k 1

 Vn(r )1 
 (r ) 
 Vn 
Pi ()  fiP, Pi  Pi,sp
Qi ()  fiQ, Qi  Qi,sp
 2 ,..., n ; Vm1,..., Vn

07/09/2009 78
The Newton-Raphson solution technique

Using Taylor:
(r ) (r ) (r ) (r )
 f   f   f   f 
Pi,sp  fiP(r )   iP  (2r )  ...   iP  (nr )   iP  Vm(r)1  ...   iP  Vn(r )
  2   n   Vm1   Vn 
(r ) (r ) (r ) (r )
 f   f   f   f 
Qi,sp  fiQ(r )   iQ  (2r )  ...   iQ  (nr )   iQ  Vm(r)1  ...   iQ  Vn(r )
  2   n   Vm1   Vn 

## Pi(r )  Pi,sp  fiP(r ) ; Q(ir )  Qi,sp  fiQ(r )

07/09/2009 79
The Newton-Raphson solution technique
Matrix notation:

 P2(r )    f  (r )  f2P 
(r )
   (r )
2

    2P  ... ...     
      2   Vn    
 P2(r )   ... ... ... ...    (r ) 

 (r )     (r ) 
n

Qm1   ... (r ) ... ... ...  Vm1 
     fnQ   fnQ     
(r )

    ... ...     (r ) 

 Qn    2 
(r )   n    Vn 

07/09/2009 80
The Newton-Raphson solution technique
Jacobian matrix

## • PQ buses generate 2 Jacobian rows

corresponding to ΔP and ΔQ

## • PV buses generate 1 Jacobian row

corresponding to ΔP

07/09/2009 81
The Newton-Raphson solution technique
Jacobian elements

• Jacobian dimension

2  NPQ  NPV
NPQ Number of PQ buses
NPV Number of PV buses

07/09/2009 82
The Newton-Raphson solution technique
Jacobian elements

• Jacobian dimension

## P(r )  H(r ) N(r )   (r 1) 

 (r )    (r ) (r ) 
 V (r 1) 
Q   J L   V (r ) 
V (r 1) (r 1)
V (r )
for improving computational efficiency

07/09/2009 83
The Newton-Raphson solution technique
Jacobian elements
 m  k
Pk
Hkm   Vk Vm (Gkm sinkm  Bkm cos km )
m
Pk
Nkm  Vm  Vk Vm (Gkm cos km  Bkm sinkm )
Vm
Qk
Jkm    Vk Vm (Gkm cos km  Bkm sinkm )
m
Qk
Lkm  Vm  Vk Vm (Gkm sinkm  Bkm cos km )
Vm

07/09/2009 84
The Newton-Raphson solution technique
Jacobian elements
k  m
Pk
Hkk   Qk  Bkk Vk2  Note :
k
Pk
Nkk  Vk  Pk  Gkk Vk2 km  k  m
Vk
Qk
Jkk   Pk  Gkk Vk2 Y km  Gkm  jBkm
k
Qk
Lkk  Vk  Qk  Bkk Vk2
Vk

07/09/2009 85
The Newton-Raphson solution technique
Solution outline

1. Build YBUS
2. Specify 1  0
Pi i  2,...,n
Qi i  m  1,...,n
Vi i  2,...,m
V1

i , i  2,...,n
3. Initialize 
 V i , i  m  1,...,n
07/09/2009 86
The Newton-Raphson solution technique
Solution outline

## 4. Compute Pi(r ) (for PV & PQ Buses), Q(ir ) (for PQ Buses)

5. If Pi(r )  P & Q(ir )  Q
1) P1  jQ1

then compute 2) line flows
3) Stop

else go on

## 6. Compute submatrices H(r ), N(r ), J(r ), L(r )

07/09/2009 87
The Newton-Raphson solution technique
Solution outline

## 7. Solve  (r 1)  H(r ) N(r )  1  P(r ) 

V (r 1)    (r ) (r )   (r ) 
 V (r )   J L  Q 

8. Update
(r 1)  (r )  (r 1) PV & PQ Buses
V (r 1)  V (r )  V (r 1) PV Buses

9. Go to step 4
07/09/2009 88
The Newton-Raphson, Matlab Code
function [V_modulo, V_fase, P, Q, N_iter, T_calculo, Error_p] = nraphson(V_modulo_ini, V_fase_ini, P_ini, Q_ini, Y, npv)

%
% [V_modulo, V_fase, P, Q, N_iter, T_calculo, Error_p] = nraphson(V_modulo_ini, V_fase_ini, P_ini, Q_ini, Y, npv)
%
% Obtencion de indices de nodos: 1 -> SLACK;
% 2,...,M -> PV;
% M+1,...,N -> PQ

n = length(V_modulo_ini);
m = npv + 1;

## % Parametros del Metodo

Tol = 0.0001; % Tolerancia del metodo (Perdida de potencia).
Error_p = 1; % Error inicial (A un valor mayor que Tol).
N_iter = 0; % Numero de iteraciones.

% Valores iniciales
V_modulo= V_modulo_ini';
V_fase = V_fase_ini';
P = P_ini';
Q = Q_ini';
j=sqrt(-1);

07/09/2009 89
The Newton-Raphson, Matlab Code
tic;
while (Error_p > Tol) % Bucle principal (Se permiten 50 iteraciones como mucho).
if (N_iter >50)
break
end
V = V_modulo.*exp(j*V_fase); % Expresion compleja de la tension
S = V.*conj(Y*V); % Expresion compleja de la potencia
DP = P(2:n)-real(S(2:n)); % Incremento de potencia activa (nudos PV y PQ)
DQ = Q(m+1:n)-imag(S(m+1:n)); % Incremento de potencia reactiva (nudos PQ)

PQ = [DP ; DQ];
Error_p = norm(PQ,2); % Error en esa iteracion

## DS_DA = diag(V)*conj(Y*j*diag(V)) + diag(conj(Y*V))*j*diag(V);

DS_DV = diag(V)*conj(Y*diag(V./V_modulo)) + diag(conj(Y*V))*diag(V./V_modulo);

## % Construccion del Jacobiano

J = [real(DS_DA(2:n , 2:n)) real(DS_DV(2:n , m+1:n))
imag(DS_DA(m+1:n , 2:n)) imag(DS_DV(m+1:n , m+1:n))]

## dx=J\PQ; % indices: 1...n-1 = fases en PV y PQ; n...final = modulos en PQ

07/09/2009 90
The Newton-Raphson, Matlab Code
V_fase (2:n) = V_fase(2:n) + dx(1:n-1); % Actualizamos la fase de las tensiones (nudos PV y PQ)
V_modulo (m+1:n)= V_modulo(m+1:n) + dx(n:end); % Actualizamos el modulo de las tensiones (nudos PQ)

## disp('Pulse una tecla para continuar')

pause
end
P=real(S); % Calculo de la potencia activa
Q=imag(S); % Calculo de la potencia reactiva
T_calculo=toc;

%
% V_modulo_ini = Modulo de la tension para comenzar a iterar (conocidos en SLACK y PV).
% V_fase_ini = Fase de la tension para comenzar a iterar (conocido en SLACK).
% P_ini = Potencia activa en los nodos (conocido en PV y PQ).
% Q_ini = Potencia reactica en los nodos (conocido en PQ).
% Y = Matriz de admitancias nodales.

07/09/2009 91
The Newton-Raphson, Matlab Code
% **** SALIDAS ****
%
% V_modulo = Modulo de la tension en todos los nodos.
% V_fase = Fase de la tension en todos los nodos.
% P = Potencia activa en todos los nodos.
% Q = Potencia reactiva en todos los nodos.
% N_iter = Numero de iteraciones.
% T_calculo = Tiempo de calculo.
% Error_p = Error.
%
%
% **** OBSERVACIONES ****
%
% Los nodos deben estar ordenador asi:
%
% *1 : SLACK.
% * 2...m : PV.
% * m+1...n : PQ.
%
%
% **** FECHA Y AUTOR ****
%
% Laura Laguna - Octubre de 2005

07/09/2009 92
Ejemplo resuelto por el método
de Newton-Raphson

07/09/2009 93
Ejemplo por Newton-Raphson

PowerWorld.

## • Se han utilizado bucles “while” y “for”, de forma

que se calculan los valores de P, Q, V y δ, así
como el Jacobiano.

07/09/2009 94
Ejemplo por Newton-Raphson

siguiente:

## Nudos Tensión p.u Potencias

1 1.02 -
THREE

2 1.02 PG=50 MW

3 - PC= 100 MW
QC=60 MVAr
07/09/2009 95
Ejemplo por Newton-Raphson

Datos:

## Líneas Impedancias p.u.

1-2 0.02+0.04j
1-3 0.02+0.06j

07/09/2009 96
Ejemplo por Newton-Raphson
• Se puede observar que se tienen 3 nudos, que se
pueden catalogar como:
• Nudo 1: Nudo slack
• Nudo 2: Nudo PV
• Nudo 3: Nudo PQ

## • La tensión se inicializa a 1.02 para el nudo 3 ya

que su valor no es conocido.

## • Los ángulos se inicializan a cero en todos los

nudos.

07/09/2009 97
Ejemplo por Newton-Raphson

## La matriz de admitancias de nudos es:

 15.0000 - 35.0000j - 10.0000 + 20.0000j - 5.0000 + 15.0000j 
 
Y   - 10.0000 + 20.0000j 30.0000 - 60.0000j - 20.0000 + 40.0000j 
 - 5.0000 + 15.0000j 25.0000 - 55.0000j 
 - 20.0000 + 40.0000j

## Se inicializan las variables desconocidas:

 2  3  0
V3  1.02

07/09/2009 98
Ejemplo por Newton-Raphson

## Se calculan los residuos:

3
Pi  Piesp - Vi ∑Vj (Gij cos ij  Bijsen(ij )) i  2,3
j1

3
Qi  Qiesp - Vi ∑Vj (Gijsenij - Bij cos(ij )) i  3
j1

07/09/2009 99
Ejemplo por Newton-Raphson

## P2cal  0.3624·1014   P2   0.5  P2   0.5 

cal

 cal       cal   1 
P
 3    0   P
 3    1  P3 
  
Q3  7.2475·10 
cal 15
Q3   0.6  Q3   0.6
cal
   

## Como son mayores que el umbral fijado (10-3), se ha de

iterar.

07/09/2009 100
Ejemplo por Newton-Raphson

##  H22 H23 N23   62.4240  41.6160  20.4000 

   
J   H32 H33 N33  J    41.6160 57.2220 25.5000 
M   20.8080
 32 M33 L 33 
  26.0100 56.1000 

07/09/2009 101
Ejemplo por Newton-Raphson

Primera iteración:

 
  2  - 0.4557 1.0200  0 
 3   - 0.9406    
V  1.0200 ;    - 0.4557
V   
1.0046  - 0.9406
 3  - 0.0154    
 V3 

07/09/2009 102
Ejemplo por Newton-Raphson

## Con el nuevo estado del sistema, se calculan

los residuos:
P2cal   0.4958   P2   0.5  0.4958   0.0042 
 cal      P     1  ( 0.9835)    0.0165
P
 3     0.9835  3    
Q3   0.5874
cal
Q3   0.6  ( 0.5874)  0.0126
 

## Como sigue superando la precisión prefijada,

se itera de nuevo.

07/09/2009 103
Ejemplo por Newton-Raphson

##  61.8860  41.1614  20.0540 

 
J    40.8145 56.0994 24.1371 
 20.8409  26.2162 54.6707 

07/09/2009 104
Ejemplo por Newton-Raphson

## Estado del sistema tras la segunda iteración:

  1.0200   0 
 2   - 0.0154     
 3    - 0.0206  V  1.0200 ;    - 0.4710 
V    1.0043   - 0.9612 
 3  - 3.0024·10     
-4

 V3 

07/09/2009 105
Ejemplo por Newton-Raphson

residuos:

## P2cal   0.5000   P2   0.5  0.5000   0.0664·10 

5

 cal         5 
P3     1.0000   P3     1  ( 1.0000)     0.5454·10 
Qcal   0.6000 
 Q 
   0.6  ( 0.6000)
   4.9698·10 6 
 3  3 

## Se encuentran dentro de la tolerancia.

07/09/2009 106
Ejemplo por Newton-Raphson
El Jacobiano de la tercera iteración es:

##  61.8860  41.1614  20.0540 

 
J    40.8145 56.0994 24.1371 
 20.8409  26.2162 54.6707 

 
  2 
 - 0.6458·10-5
 1.0200   0 
   
 3   - 0.7534·10-5  V  1.0200 ;    - 0.4710 
V   
1.0043   - 0.96810 
   - 1.1106·10-7 
   
3

 V3

07/09/2009 107
Ejemplo por Newton-Raphson

## P1   0.5098   Q1   0.0710 

P    0.5000  Q    0.5513 
 2    2  
P3   1.0000 Q3   0.6000

07/09/2009 108
Ejemplo por Newton-Raphson
convegencia

07/09/2009 109
Ejemplo por Newton-Raphson
convegencia

07/09/2009 110
Ejemplo por Newton-Raphson
convegencia

07/09/2009 111
Ejemplo por Newton-Raphson
convegencia

07/09/2009 112
Power World
5 0 ,9 7 7 M W 5 0 ,0 0 0 M W
7 ,0 9 5 M var 5 5 ,1 2 6 M var

UNO
C ERO

1 ,0 2 0 pu
1 ,0 2 0 pu
0 ,0 0 0 Deg
-0 ,4 7 1 Deg

DO S

1 ,0 0 4 3 pu
-0 ,9 6 1 Deg

100 MW
6 0 M var

07/09/2009 113
Ejemplo por Newton-Raphson

## Se compara los resultados de ambos métodos:

Nudo V(p.u) δ P Q
0 (PW) 1.02 0 50.9763 7.0955
0 1.02 0 50.9755 7.0954
1 (PW) 1.02 -0.4710 50 55.1256
1 1.02 -0.4710 50.0006 55.1228
2 (PW) 1.0043 -0.9612 -100 -60
2 1.0043 -0.9612 -99.9989 -59.9970

07/09/2009 114
Ejemplo por Newton-Raphson

supera 0.1 MVA.

## • El método es más efectivo que el Gauss-

en tan solo 3 iteraciones.

convergencia se alcanza con gran rapidez.

07/09/2009 115
Including tap-changing transformers

07/09/2009 116
Tap-Changing transformer

## • A tap changing transformer makes the

transformer parameter t.

## • The Jacobian matrix also depends on t.

07/09/2009 117

Equivalent circuit:

t:1 Ycc
Ycc i t j
i j

1 t t 1
Ycc 2 Ycc
t t
t 1

07/09/2009 118

## • General building rules

1. Self admittance of node i, Yii , equals the
algebraic sum of all the admittances
connected to node i
2. Mutual admittance between nodes i and
k, Yii , equals the negative of the sum of
all admittances connecting nodes i and k
3. Yik  Yki

07/09/2009 119
Tap-changing
Example

07/09/2009 120
Tap-changing
Example
1 Z13 3 Z 23 2

## Yshunt 13 Yshunt 13 Yshunt 23 Yshunt 23

Ycc
t 4
The tap-changing
transformer
controls voltage 1 t t 1
Ycc 2 Ycc
of bus 4 t t

07/09/2009 121
Tap-changing
Example
1
Y11   Yshunt 13 ; Y12  0 ;...
Z13
1 1 1  t Ycc
... Y33   Yshunt 13   Yshunt 23  Ycc 2 
Z13 Z 23 t t
Ycc
Y34  
t
Ycc t 1
Y44   Ycc  Ycc
t t

07/09/2009
on t! 122
Tap-changing
Example

##  Y11 Y12 Y13 Y14 

Y Y22 Y23 Y24 
Y 21 
 Y31 Y32 Y33 ( t ) Y34 ( t )
Y 
 41 Y42 Y43 ( t ) Y44 

07/09/2009 123
Tap-changing transformer

n
Pi  Vi   Vk Gik cos ik  Bik sin ik 
k 1

n
Qi  Vi   Vk Gik sin ik  Bik cos ik 
k 1

07/09/2009 124
Tap-changing transformer
Taylor Expansion:
(r ) (r ) (r )
 fiP   fiP   fiP 
Pi dato
f(r )
   (r )
 ...     (r )
   Vm 1  ...
(r )

  2   n   Vm1 
iP 2 n

(r )
 fiP 
(r )
 fiP 
...    V (r )
  t  t (r )

n
 n
V  
(r ) (r ) (r )
 f   f   f 
Qidato  fiQ(r )   iQ  (2r )  ...   iQ  (nr )   iQ  Vm(r)1  ...
  2   n   Vm1 
(r ) (r )
 fiQ   fiQ 
...    V (r )
  t  t (r )

n
 n
V  
07/09/2009 125
Tap-changing transformer

## • The new variable (t) replace the voltage value

at the corresponding PQ bus.

07/09/2009 126
Tap-changing transformer

## • Increment Δt is divided by t to improve

computational efficiency.

& rows.

## • The variable t is considered in the last place.

07/09/2009 127
Tap-changing transformer

## The Jacobian matrix blocks are:

H(r ) N(r ) C(r ) 
J   (r ) (r ) (r ) 
M L D 

## H, N, M & L are the standard blocks.

Submatrix C & D have as many columns as
the # of tap-changing transformers.

07/09/2009 128
Tap-changing transformer

## Derivatives with respect to t:

fiP n
 Gik Bik 
Ci  t   t  Vi  ∑Vk  cos ik  sinik 
t k 1  t t 

fiQ n
 Gik Bik 
Di  t   t  Vi  ∑Vk  sinik cos ik 
t k 1  t t 

C & D multiplied by t!
07/09/2009 129
Tap-changing transformer

## • If t hit any of its limit, it is fixed to the limit &

the corresponding bus becomes PQ.

## • If the procedure converge, fix t at its closest

integer value & continues the iteration with
that t fixed.

07/09/2009 130
Tap-changing
Example

1.- Slack
2.- PV
3.- PQ
4.- PQ
5.- PQV

07/09/2009 131
Tap-changing
Example

Data:

## Line impedances: 0.001+j0.05 p.u.

Shunt admitances: j0.05 p.u. (2 per line).
Transformer: 0.9<t<1.1, steps of 0.005; Zcc=j0.1.

07/09/2009 132
Tap-changing
Example
Bus Voltage (pu). Power

1 1.00 Slack

2 1.00 Pg=150MW

3 -- Pc=50MW, Qc=10MVAr

4 -- Pc=0MW, Qc=0MVAr

5 1.00 Pc=100MW,Qc=50MVAr

07/09/2009 133
Tap-changing
Example
Ylínea Ylínea Ylínea
1 2 4 3

## Yshunt Yshunt Yshunt

Yshunt Yshunt
Yshunt
Ycc 5
t

1 t t 1
Ycc 2 Ycc
t t

07/09/2009 134
Tap-changing
Example

 Yl  Ys Yl 0 0 0 
 Y 2Yl  2Ys 0 Yl 0 
 l 
 0 0 Yl  Ys Yl 0 
YBUS  Ycc (1 t ) Ycc 
 0 Yl Yl 2Yl  2Ys   Ycc 2 
 t t t 
 0 Ycc
0 0 Ycc 
 t 

07/09/2009 135
Tap-changing
Example
 0.3998  j19.942  0.3998  j19.992 0 0 0 
 0.3998  j19.992 0.7997  j39.884 0  0 .3998  j19 .992 0 
 
Ybus   0 0 0.3998  j19.942  0.3998  j19.992 0 
 
 0  0 .3998  j19.992  0 .3998  j19. 992 0 .7997  j49 . 884 j10 
 0 0 0 j10  j10

## Variable initial values:

2  3   4  5  0;
V3  V4  1;
t  1;
07/09/2009 136
Tap-changing
Example
Increment calculations:
 P2   1.5  P2cal   1.5 
 P   cal    0 .5 
 3   0 . 5  P 3   
 P4    P4cal   0 
   cal   
 
 5    1  P5    1 
P 
 Q3    0.1  Qcal    0.1
   3
  
Q 4    Q 4   0 
cal

 5  5   

07/09/2009 137
Tap-changing
Example
Jacobian

##  39.984 0  19.992 0 0  0.3998 0 

 0 19.992  19.992 0 0.3998  0.3998 0 
 
 19.992  19.992 49.984  10  0.3998 0.7997 0 
J 0 0  10 10 0 0 0 

 0  0.3998 0.3998 0 19.892  19.992 0 
 
 0.3998 0.3998  0.7997 0  19.992 49.754  10 
 0 0 0 0 0  10 10 

07/09/2009 138
Tap-changing
Example
First iteration:
  2 
  
 3  
0
  4   0.0993   1   0 
    
  0 . 0744   1   0 
 5    
 
 V3    0.1744  V  0.9623 ;    0.0993 ; t  0.918
 V3   
 0.968   0.0744 
 V    0 . 0377 
     
 4
  0.032   1   0.1744 
 V4  
 t    0.082 
 t 
07/09/2009 139
Tap-changing
Example

##  0.3998  j19.942  0.3998  j19.99 0 0 0 

 0.3998  j19.992 0.7997  j39.884 0  0.3998  j19.992 0 
 
Ybus  0 0 0.3998  j19.94  0.3998  j19.992 0 
 0  0 . 3998  j19 . 992  0 . 399  j19 . 99 0 . 7997  j51 . 750 j10 . 8933 
 
 0 0 0 j10.893  j10 

07/09/2009 140
Tap-changing
Example
Power computation:

 P1   0   Q1    0.05 
P   1.4521  Q   0.5647 
 2    2  
P3    0.4657  Q3    0.1407 
P    Q   
 4  0 . 069   4  0 . 1027 
P5    1.0527  Q5    0.492 

07/09/2009 141
Tap-changing
Example
Power increments:
 P2   1.5  1.4521   0.0479 
 P   0.5  0.4657   0.0343 
 3    
 P4    0.069    0.069 
 P       0.0527 
 5   1  1 . 0527   
 Q3    0.1  0.1407   0.0407 
     
Q 4    0.1027   0.1027 
 Q5    0.5  0.492    0.008 

07/09/2009 142
Tap-changing
Example

Jacobian matrix:

##  39.9193 0  19.3273 0 0 1.0523 0 

 0 18.6075  18.6075 0  0.0954  0.8359 0 
 
 19.2698  18.6261 48.3879  10.492 0.0912 0.8183  1.0527 
J 0 0  10.492 10.492 0  1.0527 1.0527 

 0  0.8359 0.8359 0 18.3261  18.6075 0 
 
 1.8242  0.0912  0.6803  1.0527  18.6261 48.5934  11.746 
 0 0 1.0527  1.0527 0  10.492 10.492 

07/09/2009 143
Tap-changing
Example
Second iteration
  2 
    0.0002 
 3 
  4    0.005   1   0 
    
  0 . 003   1    0.0002 
 5    
  
 3   0.0021  V  0.9607 ;    0.1043 ; t  0.9144
V
 V3   
0.9644   0.0744 
 V    0 . 0016 
     
 4
  0.0037   1   0.1723 
 V4  
 t   0.0039 
 t 
07/09/2009 144
Tap-changing
Example

##  0.3998  j19.942  0.3998  j19.992 0 0 0 

 0.3998  j19.992 0.7997  j39.884 0  0 .3998  j19 .992 0 
 
Ybus  0 0 0.3998  j19.942  0.3998  j19.992 0 
 
 0  0 .3998  j19.992  0.3998  j19.992 0 . 7997  j51 . 8447 j10.9365 
 0 0 0 j10.9365  j10 

07/09/2009 145
Tap-changing
Example

Power calculations:

 P1   0.0031   Q1    0.0501
P   1.4998  Q   0.6391 
 2    2  
P3    0.4998  Q3    0.1000 
P    Q   
 4  0 . 000   4  0 . 0006 
P5    1.0000  Q5   0.4999 

07/09/2009 146
Tap-changing
Example

Power increments:
 P2   1.5  1.4998   0.2065 
 P   0.5  0.4998   0.1969 
 3    
 P4   0.000   0.0057 
 P       0.0258   10 3
 5   1  1 . 0000   
 Q3    0.1  0.1000   0.0339 
     
Q
 4   0 . 0006    0 . 6375 
 Q5   0.5  0.4999   0.1218 

07/09/2009 147
Tap-changing
Example
Tap to the closest feasible value:
t  0.9144  t  0.915

 0.3998  j19.942  0.3998  j19.992 0 0 0 
 0.3998  j19.992 0.7997  j 39.884 0  0.3998  j19.992 0 

Ybus  0 0 0.3998  j19.942  0.3998  j19.992 0 
 
 0  0.3998  j19.992  0.3998  j19.992 0.7997  j51.8282 j10.929
 0 0 0 j10.929  j10 

07/09/2009 148
Tap-changing
Example

Power calculation:

 P1   0.0031   Q1    0.0501
P   1.4998  Q   0.6391 
 2    2  
P3    0.4998  Q3    0.1000 
P    Q   
 4  0 . 0007   4   0 . 0075 
P5   0.9993  Q5   0.4926 

07/09/2009 149
Tap-changing
Example
Power increment calculations:
  2 
 
 P2   1.5  1.4998   0.0002   3 
 P   0.5  0.4998    0.0002    
 3      4
 P4    0.0007   0.0007   5 
 P       0.0007  ;  V3 
 5   1  0 . 9993    V 
 Q3    0.1  0.1000   0.0000   3 
       V4 
Q 4   0.0075   0.0075   V4 
 Q5   0.5  0.4926   0.0074   V 
5
V 
 5 
07/09/2009 150
Tap-changing
Example

Jacobian:

##  39.2449 0  19.253 0 0 1.103 0 

 0 18.5072  18.5072 0  0.1307  0.8689 0 
 
 19.1935  18.5271 48.2132  10.4926 0.1282 0.7431 0.9993 
J 0 0  10.4926 10.4926 0  0.9993  0.9993 

 0  0.8689 0.8689 0 18.3071  18.5072 0 
 
 1.872  0.1282  0.7445  0.9993  18.5271 48.1983  10.4926 
 0 0 0.9993  0.9993 0  10.4926 9.5074 

07/09/2009 151
Tap-changing
Example
Final values
  2 
  
 3   0.0007 
  4   0.0289   1   0 
    
  0 . 0152   1    0.0002 
 5     
V   
 3    0.1699  10  V  0.9607 ;    0.1043 
3
 V3   
0.9644   0.0744 
 V    0 . 0552 
     
 4
  0.0558   0.9991  0.1725 
 4 
V 
 V5    0.8522 
V 
 5 
07/09/2009 152
Tap-changing
Example

## Final power values:

 P1   0.0031   Q1    0.0501
P   1.5000  Q   0.6402 
 2    2  
P3    0.5000  Q3    0.1000 
P    Q   
 4  0 . 0000   4  0 . 000 
P5    1.0000  Q5   0.5000 

07/09/2009 153
Power World

07/09/2009 154
5. Fast decoupled AC load flow

07/09/2009 155

Two simplifications:
– Do not build Jacobian at each iteration (small error
introduced, then, the procedure needs more
iterations to reach the solution)

## – Decoupling between P-δ and Q-V (not

recommended in system highly loaded and/or with
low voltage levels)

07/09/2009 156

##  P(r )  H(r ) N(r )    

( r 1)

 (r )    (r )  (r 1)
( r )  V

Q   J L   V (r ) 
Assume:
i) V i  1 .0 i
ii) Gik  Bik i, k
iii) cos(i  k )  1.0
sin(i  k )  0.0
iv) Qk  Bkk
07/09/2009 157

We have:

## H  B~1 , L  B~2 , N  0 , J  0

 ~
 ik  Bik 
  
~ ~
B1 , B2  ~
B
  Elements of YBUS
Bii  Bii 

07/09/2009 158
 P(r )  B~   ( r 1) 
0 
 (r )   
1
~   (r 1) 
Q   0 B 2  V 

~
 
P(r )  B1 (r 1)  (1)
~
 
Q(r )  B 2 V (r 1)  ( 2)

     
( r 1) ~ 1
 B1 P(r )
V     
( r 1) ~ 1
 B 2 Q(r )

## Use Newton-Raphson Iteration

07/09/2009 159
Fast decoupled load flow. Flow diagram
DATA INPUT

Calculate Delta P

## Real Reactive YES

power YES power
coverged coverged
? ?

NO NO
Solve (1) and update angles

Calculate Delta Q

NO

## Reactive YES Real YES

power power
coverged coverged
? ?

NO NO

## Solve (2) and update V

OUTPUT RESULTS
07/09/2009 160
Fast decoupled load flow. Matlab Code
function [V_modulo, V_fase, P, Q, N_iter, T_calculo, Error_p] = desacoplado(V_modulo_ini, V_fase_ini, P_ini, Q_ini, Y,
npv)

%
% [V_modulo, V_fase, P, Q, N_iter, T_calculo, Error_p] = desacoplado(V_modulo_ini, V_fase_ini, P_ini, Q_ini, Y, npv)
%
% Obtencion de indices de nodos: 1 -> SLACK;
% 2,...,M -> PV;
% M+1,...,N -> PQ

n = length(V_modulo_ini);
m = npv + 1;
% Parametros del Metodo
Tol = 0.0001; % Tolerancia del metodo (Perdida de potencia).
Error_p = 1; % Error inicial (A un valor mayor que Tol).
N_iter = 0; % Numero de iteraciones.
% Valores iniciales
V_modulo= V_modulo_ini';
V_fase = V_fase_ini';
V = V_modulo.*exp(j*V_fase); % Expresion compleja de la tension
P = P_ini';
Q = Q_ini';

## DS_DA = diag(V)*conj(Y*j*diag(V)) + diag(conj(Y*V))*j*diag(V);

DS_DV = diag(V)*conj(Y*diag(V./V_modulo)) + diag(conj(Y*V))*diag(V./V_modulo);

07/09/2009 161
Fast decoupled load flow. Matlab Code
%J = [real(DS_DA(2:n , 2:n)) real(DS_DV(2:n , m+1:n)) % Construccion del Jacobiano
% imag(DS_DA(m+1:n , 2:n)) imag(DS_DV(m+1:n , m+1:n))];

H = imag(-Y(2:end , 2:end))
L = imag(-Y(m+1:end,m+1:end))

j=sqrt(-1);
tic;
while (Error_p > Tol) % Bucle principal (Se permiten 50 iteraciones como mucho).
if (N_iter >50)
break
end

## V = V_modulo.*exp(j*V_fase); % Expresion compleja de la tension

S = V.*conj(Y*V); % Expresion compleja de la potencia
DP = P(2:n)-real(S(2:n)); % Incremento de potencia activa (nudos PV y PQ)
DQ = Q(m+1:n)-imag(S(m+1:n)); % Incremento de potencia reactiva (nudos PQ)

Dfase = H\DP;
Dmodulo = L\DQ;

PQ = [DP ; DQ];
Error_p = norm(PQ,2); % Error en esa iteracion

07/09/2009 162
Fast decoupled load flow. Matlab Code
V_fase (2:n) = V_fase(2:n) + Dfase; % Actualizamos la fase de las tensiones (nudos PV y PQ)
V_modulo (m+1:n)= V_modulo(m+1:n) + Dmodulo; % Actualizamos el modulo de las tensiones (nudos PQ)

% pause
end

## P=real(S); % Calculo de la potencia activa

Q=imag(S); % Calculo de la potencia reactiva
T_calculo=toc;

%
% V_modulo_ini = Modulo de la tension para comenzar a iterar (conocidos en SLACK y PV).
% V_fase_ini = Fase de la tension para comenzar a iterar (conocido en SLACK).
% P_ini = Potencia activa en los nodos (conocido en PV y PQ).
% Q_ini = Potencia reactica en los nodos (conocido en PQ).
% Y = Matriz de admitancias nodales.

07/09/2009 163
Fast decoupled load flow. Matlab Code
% **** SALIDAS ****
%
% V_modulo = Modulo de la tension en todos los nodos.
% V_fase = Fase de la tension en todos los nodos.
% P = Potencia activa en todos los nodos.
% Q = Potencia reactiva en todos los nodos.
% N_iter = Numero de iteraciones.
% T_calculo = Tiempo de calculo.
% Error_p = Error.
%
%
% **** OBSERVACIONES ****
%
% Los nodos deben estar ordenador asi:
%
% *1 : SLACK.
% * 2...m : PV.
% * m+1...n : PQ.
%
%
% **** FECHA Y AUTOR ****
%
% Laura Laguna - Nobiembre de 2005

07/09/2009 164
Ejemplo
• Se resuelve el problema del reparto de cargas mediante el
método desacoplado rápido con un error máximo de 0.1
MVA.

ONE TWO

THREE

07/09/2009 165
Ejemplo
• Red de tres nudos con potencia base SB = 100MVA
Nudo Tensiones en p.u. Potencias
1 1.02 -
2 1.02 PG=50 MW
3 - PC=100 MW
QC=60 MVAr

## Líneas Impedancias en p.u.

1-2 0.02+0.04j
1-3 0.02+0.06j
2-3 0.02+0.04j

07/09/2009 166
Ejemplo

 15  35 j  10  20 j  5  15 j 
Ybus   10  20 j 30  60 j  20  40 j
 
  5  15 j  20  40 j 25  55 j 

07/09/2009 167
Ejemplo

## • Especificación de datos e incógnitas:

Nudo Tipo Datos Incógnitas
Slack y de V1 = 1.02
1 P1, Q1
referencia δ1=0.0
P2 =0.5
2 PV δ2, Q2
V2 = 1.02
P3 = -1.0
3 PQ δ3, V3
Q3 = -0.6

## • Inicializamos las variables:

δ2 = δ3 = 0.0 ; V3 = 1.02 p.u.

07/09/2009 168
Ejemplo
• Diagrama de flujo
Vi(0) , δi(0), Piesp, Qiesp Calcular: Delta P

## Calcular: Pical, Qical

SI SI
¿Converge Delta P? ¿Converge Delta Q?
NO
Resolver Suproblema 1 y Actualizar Angulos NO

Calcular: Delta Q

SI SI
¿Converge Delta Q? ¿Converge Delta P?
NO
NO
Resolver Suproblema 2 y Actualizar Tensiones

07/09/2009 169
Ejemplo

## Para la resolución del problema se ha utilizado Matlab y

PowerWorld, con el fin de poder comparar resultados.

• Matlab:
- se ha hecho uso de un bucle while con el que se itera
hasta conseguir que los resultados los residuos de
potencia activa y reactiva cumplan el criterio de
convergencia, siguiendo con la misma filosofía.

## - la función implementada da como valores de las

tensiones y ángulos en cada nudo y de la potencia activa
y reactiva tras aplicar el método.

07/09/2009 170
Ejemplo
 60  40 
Se Obtienen las componentes H   ; L  55 
  40 55 
Se calculan los primeros valores de P y Q y se comparan
con los iniciales:

## P2cal  0.3624·1014   P2   0.5  P2   0.5 

cal

 cal       cal   1 
P
 3    0   P
 3    1  P3 
  
Q3  7.2475·10 
cal 15
Q3   0.6  Q3   0.6
cal
   

## Error = 1.2689 → Como la diferencia es mayor que el

umbral fijado (10-3), se ha de iterar
07/09/2009 171
Ejemplo

• Primera iteración:

 
  2  - 0.4213 1.0200   0 
 3    - 1.3481    
V  1.0200 ;    - 0.4213 
V   
 3  - 0.0109  1.0091   - 1.3481 
   
 V3 

07/09/2009 172
Ejemplo
Con el nuevo estado del sistema, se calculan
los residuos:

cal

##  cal      P     1  Pcal    0.3003 

P
 3     1. 3003  3  3   
Qcal           cal 
 0.4583
 3   0 .1417  3 
Q 0.6 Q 3 

## Error = 0.5976 → Como sigue superando la

precisión prefijada, se itera de nuevo

07/09/2009 173
Ejemplo

## • Estado del sistema tras la segunda iteración:

 
  2  - 0.0372 1.0200   0 
 3    0.2857     
V    V  1.0200 ;    - 0.4585 
 3  - 0.0083 1.0008   - 1.0264 
 V3     

07/09/2009 174
Ejemplo

## •Con el nuevo estado del sistema, se vuelven a

calcular los residuos:

cal

##  cal      P     1  Pcal    0.1936 

P
 3     1.1936  3  3   
Q3   0.7444
cal
Q3   0.6  Q3   0.1444 
cal
 

## •Error = 0.2885 → Como sigue superando la

precisión prefijada, se itera de nuevo
07/09/2009 175
Ejemplo

## • Estado del sistema tras la tercera iteración:

 
  2  - 0.0315 1.0200   0 
 3    0.1788     
V  1.0200 ;    - 0.4900 
V   
 3   0.0026  1.0034   - 0.8836 
 V3     

07/09/2009 176
Ejemplo

cal 3

##  cal      P     1  Pcal    0.7006·103 

P
 3     1. 0007   3  3   
Qcal           cal    3 
 3   0 . 5992  3 
Q 0. 6 Q 3   8.3346·10 

## •Error = 0.0012 → Se sigue superando la

precisión deseada, hay que iterar de nuevo

07/09/2009 177
Ejemplo

## • Estado del sistema tras la décima iteración:

 
  2 
 - 0.1592·10-3
 1.0200   0 
 3    0.6141·10-3     
V    V  1.0200 ;    - 0.4710 
   - 1.5154·10-5 
1.0043   - 0.9614 
3
    
 V3

07/09/2009 178
Ejemplo

## •Con el nuevo estado del sistema, se vuelven a

calcular los residuos:

## P2cal   0.5003   P2   0.5  P2   0.2863·10 

cal 3

 cal       cal   3 
P3     1.0004   P3     1  P3    0.3516·10 
Qcal           cal   4 
 3   0. 6003  3 
Q 0.6 Q 3   3.3349·10 

## •Error = 5.6285·10-4 → Se consigue la precisión

07/09/2009 179
Ejemplo
• Estado del sistema tras la undécima y última
iteración:
 
  2 
 - 0.0567·10-3
 1.0200   0 
 3    0.3251·10-3     
V  1.0200 ;    - 0.4711
V   
1.0043   - 0.9611
   6.0634·10-6 
   
3

 V3

 0.5098   0.0711 
   
P   0.5003  Q   0.5515 
  1.0004    0.6003 
   
07/09/2009 180
convergencia

07/09/2009 181
convergencia

07/09/2009 182
convergencia

07/09/2009 183
convergencia

07/09/2009 184
6. Variable limits

07/09/2009 185
Variable limits
Physical considerations

## 1. Voltage magnitudes out of limits

a PQ BUS does not meet

v min
i  v i  v max
i

## 2. Flow magnitudes out of limits

A line does not meet
- S max ≤ S ≤ S max
ij ij ij

07/09/2009 186
Variable limits
Physical Considerations

## 3. Reactive Power out of limits

A PV BUS does not meet
min max
Qi  Qi  Qi

## Formulate the problem properly

07/09/2009 187
Variable limits
Computational Considerations
Changing PV to PQ
no yes
Q hits
limit?

no Yes Change to
Q=Qmax ? QG>Qmax? P-Q
Q=Qmax
Yes No
yes
Change to P-V Yes Change to
V >Vdato? V=Vdato P-Q
QG<Qmin?
Q=Qmin
No No
Stay as
P-Q Stay as
P-V
Yes Change to P-V
V <Vdato? V=Vdato

No
Stay as
P-Q

07/09/2009 188

07/09/2009 189

• Approximate solution.

• Two simplifications:
– In network model: do not consider series
– Assume Vi=1 at all buses

07/09/2009 190
Approximate analytical solution
V V
i j
P   sin
ij X ij
ij
2
V V V
i i j
Q  -  cos 
ij X X ij
ij ij

Assume
i) Vi ≈ 1.0 ∀i
ii) sinij ≈ ij
iii) cos ij ≈ 1.0
07/09/2009 191
Approximate analytical solution
ij
Pij   Bijij  Biji  Bij j
Xij
 
n
 n
 n
Pi   Pij   Bij  i   Bij j
j1 j1 j1
j i 
 ji  j i

P  B´

where n
Bii'   Bij
j1
ji

07/09/2009
Bij'   Bij 192
Continuation
Vi  V j
Qij   Bij ( V i  V j )  Bij V i  Bij V j
Xij

n
n  n
 
Qi   Qij   Bij V i   Bij V j
j1
 j1  j1
ji  
 ji  ji

## Q  B' V 

07/09/2009 193
Continuation
Solution
P  B'  PQ & PV Buses
Q  B' V  PQ Buses

 1   V1  P2  Qm1 
 
     ; V      ; P     ; Q    
n   Vn  Pn   Qn 
 

 ' n

 ii  ij 
B  B
 
B 
' j1
ji  ; B ij 
1
Xij
 ' 
Bij  Bij 
07/09/2009 194
Ejemplos

07/09/2009 195
Ejemplo
Resolución por el método en DC

ONE TWO

THREE

07/09/2009 196
Ejemplo
Los datos del sistema son los siguientes:

## Nudos Tensiones p.u. Potencias

0 1.02 -
1 1.02 PG=50MW
2 - PC=100MW, QC=60MVAr

## Líneas Impedancias p.u.

0-1 0.02+0.04j
0-2 0.02+0.06j
1-2 0.02+0.04j(las dos)

07/09/2009 197
Ejemplo
 41.67  25  16.67 
B    25 75  50 
 
 16.67  50 66.67 
 P0   41.67  25  16.67   0 
 0.5     25 75  50   1 
    
 1.0  16.67  50 66.67   2 
 Q0   41.67  25  16.67  1.02 
 Q     25 75  50  1.02 
 1    
 0.6  16.67  50 66.67   V2 

07/09/2009 198
Ejemplo
De estas ecuaciones nos quedamos con la parte
que nos interesa, eliminando lo correspondiente
al SLACK que es conocido:

##  P0   41.67  25  16.67  0

     
 0.5     25 75  50   1 
  1.0    16.67  50 66.67   
     2

07/09/2009 199
Ejemplo

## Las ecuaciones a resolver que se desprenden

de estas matrices son:

## Po= -25δ1 - 16.67δ2

0.5= +75δ1 - 50δ2
-1.0= -50δ1 + 66.67δ2

## Q0= 41.67*1.02 - 25*1.02 - 16.67V2

Q1= -25*1.02 + 75*1.02 - 50V2
-0.6= -16.67*1.02 - 50*1.02 + 66.67V2

07/09/2009 200
Ejemplo
Las soluciones son las siguientes:

P0 0.5p.u.=50MW
Q0 0.15p.u.=15MVAr
Q1 0.45p.u.=45MVAr
δ1 -1.1459º
δ2 -0.3819º
V2 1.011p.u.

07/09/2009 201
Ejemplo
Si comparamos estas soluciones con las obtenidas
mediante PowerWorld:

## Var Método DC PowerWorld DC PowerWorld G-S

P0 0.50p.u. 0.50p.u. 0.509p.u.
Q0 0.15p.u. 0.00p.u. 0.07p.u.
Q1 0.45p.u. 0.00p.u. 0.55p.u.
δ1 -0.3819 -0.3820 -0.47
δ2 -1.1459 -1.1459 -0.96
V2 1.0056p.u. 1.0000p.u. 1.0043p.u.

07/09/2009 202
Ejemplo 2
Resolver el siguiente sistema por el método en DC
0,00 MW 50,00 MW
0,00 Mvar 0,00 Mvar

CERO
UNO

DOS

TRES

100,00 MW
07/09/2009 60,00 Mvar 203
Ejemplo 3
Los datos del sistema son los siguientes:
Nudos Tensiones p.u. Potencias
0 1.02 -
1 1.02 PG=50MW
2 - PC=0MW, QC=0MVAr
3 - PC=100MW, QC=60MVAr

## Líneas Impedancias p.u.

0-1 0.02+0.04j
0-2 0.02+0.06j
1-2 0.02+0.04(las dos)
2-3 0.1j

07/09/2009 204
Ejemplo 3
 41.67  25  16.67 0 
  25 75  50 0 
B 
 16.67  50 76.67  10 
 0  
 0 10 10 
 P0   41.67  25  16.67 0  0 
 0.5    25 75  50 0   1 
   
 0.0   16.67  50 76.67  10   2 
  1 .0   0  
   0  10 10  3 
 Q0   41.67  25  16.67 0  1.02
 Q    25 75  50 0  1.02
 1   
 0.0   16.67  50 76.67  10   V2 
  0 .6   0  
   0  10 10   V3 
07/09/2009 205
Ejemplo 3
Y las ecuaciones a resolver que se desprenden
de estas matrices son:
P0 = -25δ1 -16.67δ2-0*δ3
0.5 = 75δ1 - 50δ2-0*δ3
0.0 = -50δ1 + 76.67δ2-10δ3
-1.0 = -0*δ1 - 10δ2+10δ3

## Q0 = 41.67*1.02 - 25*1.02 - 16.67V2 + 0*V3

Q1 = -25*1.02 + 75*1.02 - 50V2 + 0*V3
0.0 = -16.67*1.02 - 50*1.02 + 76.67V2-10*V3
-0.6 = 0*1.02-0*1.02 - 10*V2 + 10*V3

07/09/2009 206
Ejemplo 3
Si comparamos estas soluciones con las obtenidas mediante
PowerWorld:

## Var Método DC PowerWorld G-S PowerWorld DC

P0 0.50p.u. 0.51p.u. 0.50p.u.
Q0 0.00p.u. 0.11p.u. 0.00p.u.
Q1 0.00p.u. 0.67p.u. 0.00p.u.
δ1 -0.3819º -0.48º -0.382º
δ2 -1.1459º -0.91º -1.1459º
δ3 -6.8755º -7.05º -6.8755º
V2 1.011p.u. 1.002p.u. 1.000p.u.
V3 0.951p.u. 0.932p.u. 1.000p.u.
07/09/2009 207
solution methods

07/09/2009 208

1. Gauss-Seidel (G-S)
 Simple technique
 Iteration time increases linearly with the
number of buses. Lower iteration time than N-
R. Seven times faster in large systems
 Linear rate of convergence. Many iterations
required for getting close to the solution
 Number of iteration increases with the
number of buses

07/09/2009 209
(Continuation)
2. Newton-Raphson (N-R)
 Widely used
 Iteration-time increases linearly with the number of
buses
 Quadratic rate of convergency. A few iterations for
getting close to the solution
 Number of iterations independent of the number of
buses of the system
 The Jacobian is a very sparse matrix
 Method non-sensitive to slack bus choice and the
presence of series capacitors
 Sensitive to initial solution
07/09/2009 210
(Continuation)
3. AC decoupled

~

## It requires more iterations than Newton-

Raphson method
Iteration time is 5 times lower than Newton-
Raphson´s iteration time
Useful for analyzing topology changes because B
~
can be easily modified
Used in planning and contigency analyses

07/09/2009 211
(Continuation)

4. DC Decoupled

##  Analytical, approximate and non-iterative method

 Good approximation for  , not that good
approximation for V 
 Used in reliability analyses
 Used in optimal pricing calculations
 Good for getting an initial point

07/09/2009 212