<<

. 15
( 17)



>>

qk
qPm
Hmm ¼ ¼ ÀQm À Vm Bmm ;
2
qm
qQm
¼ Pm À Vm Gmm ;
2
qm
qPm
Nmk ¼ Vk ¼ Vm Vk ½Gmk cos°m À k Þ þ Bmk sin°m À k ފ;
qVk
qQm
Vk ¼ Hmk ;
qVk
347
HIGH-VOLTAGE DIRECT-CURRENT-BASED VOLTAGE SOURCE CONVERTER


qPm
Nmm ¼ Vm ¼ Pm þ Vm Gmm ;
2
qVm
qQm
Vm ¼ Qm À Vm Bmm ;
2
qVm
qPm
HmcR ¼ ¼ Vm VcR ½Gmm sin°m À cR Þ À Bmm cos°m À cR ފ;
qcR
qQm
¼ ÀNmcR ;
qcR
qPm
NmcR ¼ VcR ¼ Vm VcR ½Gmm cos°m À cR Þ À Bmm sin°m À cR ފ;
qVcR
qQm
VcR ¼ HmcR :
qVcR
The partial derivatives at the UPFC series converter are:
qPcR
¼ VcR Vk ½Gkm sin°cR À k Þ À Bkm cos°cR À k ފ;
qk
qPcR
¼ ÀQcR À VcR Bmm ;
2
qcR
qPcR
¼ VcR Vm ½Gmm sin°cr À m Þ À Bmm cos°cR À m ފ;
qm
qPcR
VcR ¼ PcR þ VcR Gmm ;
2
qVcR
qPcR
Vk ¼ VcR Vk ½Gkm cos°cR À k Þ þ Bkm sin°cR À k ފ;
qVk
qPcR
Vm ¼ VcR Vm ½Gmm cos°cR À m Þ þ Bmm sin°cR À m ފ:
qVm
The partial derivatives for the UPFC shunt converter are:

qPvR
¼ VvR Vk ½GvR sin°vR À k Þ À BvR cos°vR À k ފ;
qk
qPvR
¼ ÀQvR À VvR BvR ;
2
qvR
qPqV Vk ¼ VvR Vk ½GvR cos°vR À k Þ þ BvR sin°vR À k ފ;
vR
k

qPvR
VvR ¼ PvR þ VvR GvR :
2
qVvR


A.5 HIGH-VOLTAGE DIRECT-CURRENT-BASED VOLTAGE
SOURCE CONVERTER

Partial derivatives for the recti¬er and inverter stations of the high-voltage direct-current-
based voltage source converter (HVDC-SVC) are:
348 APPENDIX A: JACOBIAN ELEMENTS FOR FACTS CONTROLLERS


qPk
¼ ÀQk À Vk GvR1 ;
2
qk
qPk
¼ ÀVk VvR1 ½GvR1 sin°k À vR1 Þ À BvR1 cos°k À vR1 ފ;
qvR1
qPk
Vk ¼ Pk þ Vk GvR1 ;
2
qVk
qPk
VvR1 ¼ ÀVk VvR1 ½GvR1 cos°k À vR1 Þ þ BvR1 sin°k À vR1 ފ;
qVvR1
qQk
¼ Pk À Vk GvR1 ;
2
qk
qQk
¼ Vk VvR1 ½GvR1 cos°k À vR1 Þ þ BvR1 sin°k À vR1 ފ;
qvR1
qQk
Vk ¼ Qk À Vk BvR1 ;
2
qVk
qQk
VvR1 ¼ ÀVk VvR1 ½GvR1 sin°k À vR1 Þ À BvR1 cos°k À vR1 ފ;
qVvR1
qPvR1
¼ ÀQvR1 À VvR1 BvR1 ;
2
qvR1
qPvR1
¼ ÀVvR1 Vk ½GvR1 sin°vR1 À k Þ À BvR1 cos°vR1 À k ފ;
qk
qPvR1
VvR1 ¼ PvR1 þ VvR1 GvR1 ;
2
qVvR1
qPvR1
Vk ¼ ÀVvR1 Vk ½GvR1 cos°vR1 À k Þ þ BvR1 sin°vR1 À k ފ;
qVk
qQvR1
¼ PvR1 À VvR1 GvR1 ;
2
qvR1
qQvR1
¼ VvR1 Vk ½GvR1 cos°vR1 À k Þ þ BvR1 sin°vR1 À k ފ;
qk
qQvR1
VvR1 ¼ QvR1 À VvR BvR1 ;
2
qVvR1
qQvR1
Vk ¼ ÀVvR1 Vk ½GvR1 sin°vR1 À k Þ À BvR1 cos°vR1 À k ފ;
qVk
qPHVDC
¼ ÀQk À Vk GvR1 ;
2
qk
qPHVDC
¼ ÀVk VvR1 ½GvR1 sin°k À vR1 Þ À BvR1 cos°k À vR1 ފ;
qvR1
qPHVDC
Vk ¼ Pk þ Vk GvR1 ;
2
qVk
qPHVDC
VvR1 ¼ ÀVk VvR1 ½GvR1 cos°k À vR1 Þ þ BvR1 sin°k À vR1 ފ;
qVvR1
qPHVDC
¼ ÀQvR2 À VvR2 BvR2 :
2
qvR2
Appendix B:
Gradient and Hessian
Elements for Optimal Power
Flow Newton™s Method

B.1 FIRST AND SECOND PARTIAL DERIVATIVES FOR
TRANSMISSION LINES

B.1.1 The Gradient Vector

The ¬rst partial derivatives with respect to the state variables at bus k are:
qL qPk qQk qPm qQm
¼ pk þ qk þ pm þ qm ;
qk qk qk qk qk
qL
¼ Pk þ Pdk À Pgk ;
qpk
qL qPk qQk qPm qQm
¼ pk þ qk þ pm þ qm ;
qVk qVk qVk qVk qVk
qL
¼ Qk þ Qdk À Qgk :
qqk
The ¬rst partial derivatives with respect to the state variables at bus m are:
qL qPk qQk qPm qQm
¼ pk þ qk þ pm þ qm ;
qm qm qm qm qm
qL
¼ Pm þ Pdm À Pgm ;
qpm
qL qPk qQk qPm qQm
¼ pk þ qk þ pm þ qm ;
qVm qVm qVm qVm qVm
qL
¼ Qm þ Qdm À Qgm :
qqm

FACTS: Modelling and Simulation in Power Networks.
´ ´
Enrique Acha, Claudio R. Fuerte-Esquivel, Hugo Ambriz-Perez and Cesar Angeles-Camacho
# 2004 John Wiley & Sons, Ltd ISBN: 0-470-85271-2
350 APPENDIX B: GRADIENT AND HESSIAN ELEMENTS FOR OPF

B.1.2 The Matrix W

The second partial derivatives with respect to the state variables at bus k are (diagonal
blocks):

q2 L q2 P k q2 Q k q2 Pm q2 Qm
¼ pk 2 þ qk þ pm þ qm ;
q2 qk q2 q2 q2
k k k k
q2 L q2 L qPk
¼ ¼ ;
qk qpk qpk qk qk
q2 L q2 L q2 Pk q2 Q k q 2 Pm q2 Q m
¼ ¼ pk þ qk þ pm þ qm ;
qk qVk qVk qk qk qVk qk qVk qk qVk qk qVk
q2 L q2 L qQk
¼ ¼ ;
qk qqk qqk qk qk
q2 L q2 Pk q2 Qk q 2 Pm q2 Q m
¼ pk þ qk þ pm þ qm ;
qVk qVk qVk qVk qVk
2 2 2 2 2

q2 L q2 L qPk
¼ ¼ ;
qVk qpk qpk qVk qVk
q2 L q2 L qQk
¼ ¼ :
qVk qqk qqk qVk qVk

The second partial derivatives with respect to the state variables at buses k and m are
(off-diagonal blocks):

q2 L q2 L q2 Pk q2 Qk q2 Pm q2 Q m
¼ ¼ pk þ qk þ pm þ qm ;
qk qm qm qk qk qm qk qm qk qm qk qm
q2 L q2 L qPm
¼ ¼ ;
qk qpm qpm qk qk
q2 L q2 L q2 P k q2 Qk q2 Pm q2 Qm
¼ ¼ pk þ qk þ pm þ qm ;
qk qVm qVm qk qk qVm qk qVm qk qVm qk qVm
q2 L q2 L qQm
¼ ¼ ;
qk qqm qqm qk qk
q2 L q2 L q2 P k q2 Qk q2 Pm q2 Qm
¼ ¼ pk þ qk þ pm þ qm ;
qVk qm qm qVk qVk qm qVk qm qVk qm qVk qm
q2 L q2 L qPm
¼ ¼ ;
qVk qpm qpm qVk qVk
q2 L q2 L q2 Pk q2 Q k q2 Pm q2 Q m
¼ ¼ pk þ qk þ pm þ qm ;
qVk qVm qVm qVk qVk qVm qVk qVm qVk qVm qVk qVm
q2 L q2 L qQm
¼ ¼ ;
qVk qqm qqm qVk qVk
q2 L q2 L qPk
¼ ¼ ;
qpk qm qm qpk qm
351
FIRST AND SECOND PARTIAL DERIVATIVES FOR TRANSMISSION LINES


q2 L q2 L qQk
¼ ¼ ;
qqk qm qm qqk qm
q2 L q2 L qPk
¼ ¼ ;
qpk qVm qVm qpk qVm
q2 L q2 L qQk
¼ ¼ :
qqk qVm qVm qqk qVm

The second partial derivatives with respect to the state variables at bus m are (diagonal
block):

q2 L q2 Pk q2 Q k q2 P m q2 Q m
¼ pk 2 þ qk 2 þ pm 2 þ qm ;
q2 qm qm qm q2
m m
q2 L q2 L qPm
¼ ¼ ;
qm qpm qpm qm qm
q2 L q2 L q2 Pk q2 Q k q2 P m q2 Qm
¼ ¼ pk þ qk þ pm þ qm ;
qm qVm qVm qm qm qVm qm qVm qm qVm qm qVm
q2 L q2 L qQm
¼ ¼ ;
qm qqm qqm qm qm
q2 L q2 Pk q2 Qk q2 Pm q2 Q m
¼ pk þ qk þ pm þ qm ;
qVm qVm qVm qVm qVm
2 2 2 2 2

q2 L q2 L qPm
¼ ¼ ;
qVm qpm qpm qVm qVm
q2 L q2 L qQm
¼ ¼ :
qVm qqm qqm qVm qVm

The second partial derivatives of active and reactive power ¬‚ow equations are:

q2 Pk
¼ Vk Vm ½Gkm cos°k À m Þ þ Bkm sin°k À m ފ;
qm qk
q2 Q k
¼ Vk Vm ½Gkm sin°k À m Þ À Bkm cos°k À m ފ;
qm qk
q2 P k
¼ Vm ½Gkm sin°k À m Þ À Bkm cos°k À m ފ;
qm qVk
q2 Q k
¼ ÀVm ½Gkm cos°k À m Þ þ Bkm sin°k À m ފ;
qm qVk
q2 Pk
¼ Vk ½Gkm sin°k À m Þ À Bkm cos°k À m ފ;
qm qVm
q2 Qk
¼ ÀVk ½Gkm cos°k À m Þ þ Bkm sin°k À m ފ;
qm qVm
q2 Pk
¼ ÀVm ½Gkm sin°k À m Þ À Bkm cos°k À m ފ;
qk qVk
352 APPENDIX B: GRADIENT AND HESSIAN ELEMENTS FOR OPF


q2 Q k
¼ Vm ½Gkm cos°k À m Þ þ Bkm sin°k À m ފ;
qk qVk
q 2 Pk
¼ ÀVk ½Gkm sin°k À m Þ À Bkm cos°k À m ފ;
qk qVm
q2 Qk
¼ Vk ½Gkm cos°k À m Þ þ Bkm sin°k À m ފ;
qk qVm
q2 Pk
¼ ½Gkm cos°k À m Þ þ Bkm sin°k À m ފ;
qVk qVm
q2 Qk
¼ ½Gkm sin°k À m Þ À Bkm cos°k À m ފ;
qVk qVm
q2 Pk
¼ ÀVk Vm ½Gkm cos°k À m Þ þ Bkm sin°k À m ފ;
q2m
q2 Q k
¼ ÀVk Vm ½Gkm sin°k À m Þ À Bkm cos°k À m ފ;
q2m
q2 Pk
¼ ÀVk Vm ½Gkm cos°k À m Þ þ Bkm sin°k À m ފ;
q2k
q2 Q k
¼ ÀVk Vm ½Gkm sin°k À m Þ À Bkm cos°k À m ފ;
q2k
q2 Pk
¼ 2Gkk ;
qVk 2

q2 Q k
¼ À2Bkk ;
qVk 2

q2 Pk
¼ 0;
qVm 2

q2 Q k
¼ 0:
qVm 2

To obtain the partial derivatives of Pm and Qm it is only necessary to exchange subscripts k
and m in the above equations.



B.2 PHASE SHIFTER TRANSFORMER

The ¬rst partial derivatives making up the gradient are not given here since they coincide
with the elements of the phase shifter (PS) Jacobian already given in Section 4.4.2.
The second partial derivatives of active and reactive power with respect to the phase
shifter angle tv and phase angle voltages are:

q 2 Pk
¼ Vk Vm °Gkm cos 1 þ Bkm sin 1 Þ;
qtv qk
q2 Q k
¼ Vk Vm °Gkm sin 1 À Bkm cos 1 Þ;
qtv qm
353
PHASE SHIFTER TRANSFORMER


q 2 Pk
¼ ÀVk Vm °Gkm cos 1 þ Bkm sin 1 Þ;
qtv qm
q2 Q k
¼ ÀVk Vm °Gkm sin 1 À Bkm cos 1 Þ;
qtv qm
q2 Pm
¼ ÀVm Vk °Gmk cos 2 þ Bmk sin 2 Þ;
qtv qm
q2 Qm
¼ ÀVm Vk °Gmk sin 2 À Bmk cos 2 Þ;
qtv qm
q2 Pm
¼ Vm Vk °Gmk cos 2 þ Bmk sin 2 Þ;
qtv qk
q2 Q m
¼ Vm Vk °Gmk sin 2 À Bmk cos 2 Þ:
qtv qk
The second partial derivatives of active and reactive power at buses k and m with respect
to the phase shifter angle tv and voltages magnitudes are:

q 2 Pk
¼ Vm °Gkm sin 1 À Bkm cos 1 Þ;
qtv qVk
q2 Qk
¼ ÀVm °Gkm cos 1 þ Bkm sin 1 Þ;
qtv qVk
q2 P k
¼ Vk °Gkm sin 1 À Bkm cos 1 Þ;
qtv qVm
q2 Q k
¼ ÀVk °Gkm cos 1 þ Bkm sin 1 Þ;
qtv qVm
q2 P m
¼ ÀVm °Gmk sin 2 À Bmk cos 2 Þ;
qtv qVk
q2 Q m
¼ Vm °Gmk cos 2 þ Bmk sin 2 Þ;
qtv qVk
q2 Pm
¼ ÀVk °Gmk sin 2 À Bmk cos 2 Þ;
qtv qVm
q2 Q m
¼ Vk °Gmk cos 2 þ Bmk sin 2 Þ:
qtv qVk
The second partial derivatives with respect to the phase shifter angle tv are:
 
q2 Pk qGmk qBmk
¼ Vk Vm sin 1 À cos 1 ;
qtv qtv
q2 tv
 
q2 Q k qGmk qBmk
¼ Vk Vm cos 1 þ sin 1 ;
qtv qtv
q2 tv
 
q 2 Pm qGmk qBmk
¼ ÀVm Vk sin 2 À cos 2 ;
qtv qtv
q2 tv
354 APPENDIX B: GRADIENT AND HESSIAN ELEMENTS FOR OPF

 
q2 Qm qGmk qBmk
¼ Vm Vk cos 2 þ sin 2 ;
qtv qtv
q2 tv
qGkm Tv Uv
¼ °F1 sin 1 À F2 cos 1 Þ;
qtv A2
qBkm Tv Uv
¼À °F2 sin 1 þ F1 cos 1 Þ;
qtv A2
qGmk Tv Uv
¼À °F1 sin 2 À F2 cos 2 Þ;
qtv A2
qBmk Tv Uv
¼ °F2 sin 2 þ F1 cos 2 Þ:
qtv A2
The second partial derivatives of active and reactive power with respect to the phase
shifter angle uv and phase angle voltages are:
q2 Pk
¼ ÀVk Vm °Gmk cos 1 þ Bmk sin 1 Þ;
quv qk
q2 Q k
¼ ÀVk Vm °Gkm sin 1 À Bkm cos 1 Þ;
quv qk
q2 Pk
¼ Vk Vm °Gkm cos 1 þ Bkm sin 1 Þ;
quv qm
q2 Q k
¼ Vk Vm °Gkm sin 1 À Bkm cos 1 Þ;
quv qm
q2 Pm
¼ Vm Vk °Gmk cos 2 þ Bmk sin 2 Þ;
quv qm
q2 Qm
¼ Vm Vk °Gmk sin 2 À Bmk cos 2 Þ;
quv qm
q2 Pm
¼ ÀVm Vk °Gmk cos 2 þ Bmk sin 2 Þ;
quv qk
q2 Q m
¼ ÀVm Vk °Gmk sin 2 À Bmk cos 2 Þ:
quv qk
The second partial derivatives of active and reactive power with respect to the phase-
shifter angle uv and voltage magnitudes are:

q2 P k
¼ ÀVm °Gkm sin 1 À Bkm cos 1 Þ;
quv qVk
q2 Q k
¼ Vm °Gkm cos 1 þ Bkm sin 1 Þ;
quv qVk
q 2 Pk
¼ ÀVk °Gkm sin 1 À Bkm cos 1 Þ;
quv qVm
q2 Qk
¼ Vk °Gkm cos 1 þ Bkm sin 1 Þ;
quv qVm
355
STATIC VAR COMPENSATOR


q2 P m
¼ Vm °Gmk sin 2 À Bmk cos 2 Þ;
quv qVk
q2 Q m
¼ ÀVm °Gmk cos 2 þ Bmk sin 2 Þ;
quv qVk
q2 Pm
¼ Vm °Gmk sin 2 À Bmk cos 2 Þ;
quv qVm
q2 Qm
¼ ÀVk °Gmk cos 2 þ Bmk sin 2 Þ:
quv qVm

The second partial derivatives of active and reactive power with respect to the phase-
shifter angle uv are:
 
q 2 Pm qGmk qBmk
¼ Vm Vk sin 2 À cos 2 ;
quv quv
q2 uv
 
q2 Q k qGkm qBkm
¼ Vk Vm cos 1 þ sin 1 ;
quv quv
q2 uv
 
q2 Pk qGkm qBkm
¼ ÀVk Vm sin 1 À cos 1 ;
quv quv
q2 uv
 
q2 Q m qGmk qBmk
¼ ÀVm Vk cos 2 þ sin 2 ;
quv quv
q2 uv
qGmk Tv Uv
¼ °F1 sin 2 À F2 cos 2 Þ;
quv A2
qBmk Tv Uv
¼ °F2 sin 1 þ F2 cos 1 Þ;
quv A2
qGkm Tv Uv
¼À °F1 sin 1 À F2 cos 1 Þ;
quv A2
qBmk Tv Uv
¼À °F1 cos 2 þ F2 sin 2 Þ:
quv A2



B.3 STATIC VAR COMPENSATOR

The ¬rst and second partial derivative making up the static VAR compensator (SVC)
gradient are not given here; they correspond to Equations (5.6) and (5.9) for variable
susceptance and the ¬ring-angle SVC model, respectively.
The second partial derivative terms for the SVC reactive power are:

q2 Qk
¼ À2BSVC ;
qVk 2
& '
q2 Qk 2 XC
¼ XL À ½2°p À Þ þ sin°2 ފ ;
p
qVk 2 XC XL
356 APPENDIX B: GRADIENT AND HESSIAN ELEMENTS FOR OPF


q2 Qk
¼ À2Vk ;
qVk qBSVC
q2 Qk 4Vk sin°2 Þ
¼À ;
q 2 pXL
q2 Q k 4V ½cos°2 Þ À 1Š
¼k ;
q qVk pXL
& '
1 Xc
BSVC ¼ À XL À ½2°p À Þ þ sin°2 ފ :
p
XC XL



B.4 THYRISTOR-CONTROLLED SERIES COMPENSATOR

The ¬rst partial derivatives of the power equations with respect to the controllable reactance
are given in Appendix A. These terms are used to assemble the thyristor-controlled series
compensator (TCSC) gradient.
The second partial derivatives of active and reactive power equations with respect to the
controllable reactance are:

q2 P k 1
¼ ÀVm sin°k À m Þ 2 ;
qXTCSC qVk XTCSC
q2 Q k 1
¼ ½À2Vk þ Vm cos°k À m ފ 2 ;
qXTCSC qVk XTCSC
q2 Pk 1
¼ ÀVm sin°k À m Þ 2 ;
qXTCSC qVm XTCSC
q2 Qk 1
¼ Vk cos°k À m Þ 2 ;
qXTCSC qVm XTCSC
q2 Pk 1
¼ ÀVk Vm cos°k À m Þ 2 ;
qXTCSC qk XTCSC
q2 Q k 1
¼ ÀVk Vm sin°k À m Þ 2 ;
qXTCSC qk XTCSC
q2 Pk 1
¼ Vk Vm cos°k À m Þ 2 ;
qXTCSC qm XTCSC
q2 Qk 1
¼ Vk Vm sin°k À m Þ 2 ;
qXTCSC qm XTCSC
q2 Pk 2
¼ Vk Vm sin°k À m Þ 3 ;
qXTCSC
2
XTCSC
‚2 Ã2
q2 Qk
¼ Vk À Vk Vm cos°k À m Þ 3 :
qXTCSC
2
XTCSC

The equations for bus m are simply obtained by exchanging subscripts k and m in the above
set of equations.
357
UNIFIED POWER FLOW CONTROLLER

The second partial derivative terms of active and reactive power with respect to the ¬ring
angle are:

q2 Pk q XTCSC
¼ ÀVm sin°k À m ÞB2 ;
q qVk q
TCSC

q2 Qk qXTCSC
¼ ½À2Vk þ Vm cos°k À m ފB2 ;
q qVk q
TCSC

q 2 Pk qXTCSC
¼ ÀVk sin°k À m ÞB2 ;
q qVm q
TCSC

q2 Q k qXTCSC
¼ Vk cos°k À m ÞB2 ;
q qVm q
TCSC

q 2 Pk qXTCSC
¼ ÀVk Vm cos°k À m ÞB2 ;
q qk q
TCSC

q2 Q k qXTCSC
¼ ÀVk Vm sin°k À m ÞB2 ;
q qk q
TCSC

q 2 Pk qXTCSC
¼ Vk Vm cos°k À m ÞB2 ;
q qm q
TCSC

q2 Qk qXTCSC
¼ Vk Vm sin°k À m ÞB2 ;
q qm q
TCSC
 
q2 P k q2 XTCSC qXTCSC qB2
¼ ÀVk Vm sin°k À m Þ B2 þ ;
TCSC
q q q q
TCSC
2 2
 
qQk ‚ 2 Ã2 q2 XTCSC qXTCSC qB2
¼ ÀVk þ Vk Vm cos°k À m Þ BTCSC þ ;
TCSC
q q 2 q q
q2 BTCSC q2 XTCSC qXTCSC qB2
¼ BTCSC þ ;
2 TCSC
q q q q
2 2

qB2 2 qXTCSC
¼À 3 ;
TCSC
q XTCSC q
& '
q2 XTCSC 2 cos2 ½$°p À ފ cos°p À Þ sin°p À Þ
¼ À4C1 sin½2°p À ފ þ C2 $2
q 2 cos4 ½$°p À ފ
& '
2 2$ cos °p À Þ cos½$°p À ފ sin½$°p À ފ
2
À C2 $
cos4 ½$°p À ފ
& '
$ sin½2°p À ފ
þ C2 $ 2 tan½$°p À ފ cos½2°p À ފ þ
cos2 ½$°p À ފ
& '
sin½2°p À ފ
À C2 2 tan°p À Þ cos½2°p À ފ þ :
cos2 °p À Þ



B.5 UNIFIED POWER FLOW CONTROLLER

The ¬rst partial derivatives of active and reactive power with respect to the voltage
magnitude and phase angles are given in Appendix A. These terms are used to assemble the
uni¬ed power ¬‚ow controller (UPFC) gradient.
358 APPENDIX B: GRADIENT AND HESSIAN ELEMENTS FOR OPF

The second partial derivatives of active and reactive power ¬‚ow equations at bus k are:
q2 P k
¼ ÀVk Vm ½Gkm cos°k À m Þ þ Bkm sin°k À m ފ À Vk VcR ½Gkm cos°k À cR Þ
q2k
þ Bkm sin°k À cR ފ À Vk VvR ½GvR cos°k À vR Þ þ BvR sin°k À vR ފ;
q2 Q k
¼ ÀVk Vr ½Gkm sin°k À m Þ À Bkm cos°k À m ފ À Vk VcR ½Gkm sin°k À cR Þ
q2k
À Bkm cos°k À cR ފ À Vk VvR ½GvR sin°k À vR Þ À Bkm cos°k À vR ފ;
q 2 Pk
¼ Vk Vm ½Gkm cos°k À m Þ þ Bkm sin°k À m ފ;
qk qm
q2 Q k
¼ Vk Vm ½Gkm sin°k À m Þ À Bkm cos°k À m ފ;
qk qm
q 2 Pk
¼ Vk VcR ½Gkm cos°k À cR Þ þ Bkm sin°k À cR ފ;
qk qcR
q2 Qk
¼ Vk VcR ½Gkm sin°k À cR Þ À Bkm cos°k À cR ފ;
qk qcR
q 2 Pk
¼ Vk VvR ½GvR cos°k À vR Þ þ BvR sin°k À vR ފ;
qk qvR
q2 Qk
¼ Vk VvR ½GvR sin°k À vR Þ À BvR cos°k À vR ފ;
qk qvR
q 2 Pk
¼ ÀVm ½Gkm sin°k À m Þ À Bkm cos°k À m ފ À VcR ½Gkm sin°k À cR Þ
qk qVk
À Bkm cos°k À cR ފ À VvR ½GvR sin°k À vR Þ À BvR cos°k À vR ފ;
q2 Q k
¼ VvR ½Gkm cos°k À m Þ þ Bkm sin°k À m ފ þ VcR ½Gkm cos°k À cR Þ
qk qVk
þ Bkm sin°k À cR ފ þ VvR ½GvR cos°k À vR Þ þ BvR sin°k À vR ފ;
q 2 Pk
¼ ÀVk ½Gkm sin°k À m Þ À Bkm cos°k À m ފ;
qk qVm
q2 Qk
¼ Vk ½Gkm cos°k À m Þ þ Bkm sin°k À m ފ;
qk qVm
q 2 Pk
¼ ÀVk ½Gkm sin°k À cR Þ À Bkm cos°k À cR ފ;
qk qVcR
q2 Q k
¼ Vk ½Gkm cos°k À cR Þ þ Bkm sin°k À cR ފ;
qk qVcR
q2 P k
¼ ÀVk ½GvR sin°k À vR Þ À BvR cos°k À vR ފ;
qk qVvR
q2 Q k
¼ Vk ½GvR cos°k À vR Þ þ BvR sin°k À vR ފ;
qk qVvR
q2 P k
¼ ÀVk Vm ½Gkm cos°k À m Þ þ Bkm sin°k À m ފ;
q2m
359
UNIFIED POWER FLOW CONTROLLER


q2 Qk
¼ ÀVk Vm ½Gkm sin°k À m Þ À Bkm cos°k À m ފ;
q2m
q2 Pk
¼ Vm ½Gkm sin°km À km Þ À Bkm cos°k À m ފ;
qm qVk
q2 Q k
¼ ÀVm ½Gkm cos°k À m Þ þ Bkm sin°k À m ފ;
qm qVk
q2 Pk
¼ Vk ½Gkm sin°k À m Þ À Bkm cos°k À m ފ;
qm qVm
q2 Qk
¼ ÀVk ½Gkm cos°k À m Þ þ Bkm sin°k À m ފ;
qm qVm
q 2 Pk
¼ ÀVk VcR ½Gkm cos°k À cR Þ þ Bkm sin°k À cR ފ;
qcR2

q2 Qk
¼ ÀVk VcR ½Gkm sin°k À cR Þ À Bkm cos°k À cR ފ;
qcR
2

q2 Pk
¼ VcR ½Gkm sin°k À cR Þ À Bkm cos°k À cR ފ;
qcR qVk
q2 Qk
¼ ÀVcR ½Gkm cos°k À cR Þ þ Bkm sin°k À cR ފ;
qcR qVk
q2 Pk
¼ Vk ½Gkm sin°k À cR Þ À Bkm cos°k À cR ފ;
qcR qVcR
q2 Q k
¼ ÀVk ½Gkm cos°k À cR Þ þ Bkm sin°k À cR ފ;
qcR qVcR
q 2 Pk
¼ ÀVk VvR ½GvR cos°k À vR Þ þ BvR sin°k À vR ފ;
qvR2

q2 Qk
¼ ÀVk VvR ½GvR sin°k À vR Þ À BvR cos°k À vR ފ;
qvR
2

q2 Pk
¼ VvR ½GvR sin°k À vR Þ À BvR cos°k À vR ފ;
qvR qVk
q2 Qk
¼ ÀVvR ½GvR cos°k À vR Þ þ BvR sin°k À vR ފ;
qvR qVk
q 2 Pk
¼ Vk ½GvR sin°k À vR Þ À BvR cos°k À vR ފ;
qvR qVvR
q2 Qk
¼ ÀVk ½GvR cos°k À vR Þ þ BvR sin°k À vR ފ;
qvR qVvR
q 2 Pk
¼ 2Gkk ;
qVk 2

q2 Qk
¼ À2Bkk ;
qVk 2
360 APPENDIX B: GRADIENT AND HESSIAN ELEMENTS FOR OPF


q2 Pk
¼ ½Gkm cos°k À m Þ þ Bkm sin°k À m ފ;
qVk qVm
q2 Q k
¼ ½Gkm sin°k À m Þ À Bkm cos°k À m ފ;
qVk qVm
q2 P k
¼ ½Gkm cos°k À cR Þ þ Bkm sin°k À cR ފ;
qVk qVcR
q2 Q k
¼ ½Gkm sin°k À cR Þ À Bkm cos°k À cR ފ;
qVk qVcR
q 2 Pk
¼ ½GvR cos°k À vR Þ þ BvR sin°k À vR ފ;
qVk qVvR
q2 Q k
¼ ½GvR sin°k À vR Þ À BvR cos°k À vR ފ:
qVk qVvR

The second partial derivatives of active and reactive power ¬‚ow equations at bus m
are:

q 2 Pm
¼ ÀVm Vk ½Gmk cos°m À k Þ þ Bkm sin°m À k ފ;
q2 k
q2 Q m
¼ ÀVm Vk ½Gkm sin°m À k Þ À Bkm cos°m À k ފ;
q2k
q2 Pm
¼ Vm Vk ½Gkm cos°m À k Þ þ Bkm sin°m À k ފ;
qk qm
q2 Q m
¼ Vk Vm ½Gkm sin°m À k Þ À Bkm cos°m À k ފ;
qk qm
q 2 Pm
¼ Vm ½Gkm sin°m À k Þ À Bkm cos°m À k ފ;
qk qVk
q2 Qm
¼ ÀVm ½Gkm cos°m À k Þ þ Bkm cos°m À k ފ;
qk qVk
q 2 Pm
¼ Vk ½Gkm sin°m À k Þ À Bkm cos°m À k ފ;
qk qVm
q2 Q m
¼ ÀVk ½Gkm cos°m À k Þ þ Bkm sin°m À k ފ;
qk qVm
q 2 Pm
¼ ÀVm Vk ½Gkm cos°m À k Þ þ Bkm sin°m À k ފ À Vm VcR ½Gmm cos°m À cR Þ
q2 m
þ Bmm cos°m À cR ފ;
q2 Q m
¼ ÀVm Vk ½Gkm sin°m À k Þ À Bkm cos°m À k ފ À Vm VcR ½Gmm sin°m À cR Þ
q2m
À Bmm cos°m À cR ފ;
q 2 Pm
¼ Vm VcR ½Gmm cos°m À cR Þ þ Bmm cos°m À cR ފ;
qm qcR
361
UNIFIED POWER FLOW CONTROLLER


q2 Q m
¼ Vm VcR ½Gmm sin°m À cR Þ À Bmm cos°m À cR ފ;
qm qcR
q 2 Pm
¼ ÀVm ½Gkm sin°m À k Þ À Bkm cos°m À k ފ;
qm qVk
q2 Qm
¼ Vm ½Gkm cos°m À k Þ þ Bkm sin°m À k ފ;
qm qVk
q2 Pm
¼ ÀVk ½Gkm sin°m À k Þ À Bkm cos°m À s ފ À VcR ½Gmm sin°m À cR Þ
qm qVm
À Bmm cos°m À cR ފ;
q2 Q m
¼ Vk ½Gkm cos°m À k Þ þ Bkm sin°m À k ފ þ VcR ½Gmm cos°m À cR Þ
qm qVm
þ Bmm sin°m À cR ފ;
q 2 Pm
¼ ÀVm ½Gmm sin°m À cR Þ À Bmm cos°m À cR ފ;
qm qVcR
q2 Qm
¼ Vm ½Gmm cos°m À cR Þ þ Bmm sin°m À cR ފ;
qm qVcR
q 2 Pm
¼ ÀVm VcR ½Gmm cos°m À cR Þ þ Bmm sin°m À cR ފ;
qcR2


q2 Qm
¼ ÀVm VcR ½Gmm sin°m À cR Þ À Bmm cos°m À cR ފ;
qcR
2


q2 P
¼ VcR ½Gmm sin°m À cR Þ À Bmm cos°m À cR ފ;
qcR qVm
q2 Qm
¼ ÀVcR ½Gmm cos°m À cR Þ þ Bmm sin°m À cR ފ;
qcR qVm
q2 Pm
¼ Vm ½Gmm sin°m À cR Þ À Bmm cos°m À cR ފ;
qcR qVcR
q2 Q m
¼ ÀVm ½Gmm cos°m À cR Þ þ Bmm sin°m À cR ފ;
qcR qVcR
q2 Pm
¼ ½Gkm cos°m À k Þ þ Bkm sin°m À k ފ;
qVk qVm
q2 Qm
¼ ½Gkm sin°m À k Þ À Bkm cos°m À k ފ;
qVk qVm
q 2 Pm
¼ 2Gmm ;
qVm 2

q2 Qm
¼ À2Bmm ;
qVm2
362 APPENDIX B: GRADIENT AND HESSIAN ELEMENTS FOR OPF


q2 P m
¼ ½Gmm cos°m À cR Þ þ Bmm sin°m À cR ފ;
qVm qVcR
q2 Q m
¼ ½Gmm sin°m À cR Þ À Bmm cos°m À cR ފ:
qVm qVcR

The second partial derivatives of active power ¬‚ow equations for the series converter are:

q2 PcR
¼ ÀVcR Vk ½Gkm cos°cR À k Þ þ Bkm sin°cR À k ފ;
q2k
q2 PcR
¼ ÀVcR Vm ½Gmm cos°cR À m Þ þ Bmm sin°cR À m ފ;
q2m
q2 PcR
¼ VcR Vk ½Gkm cos°cR À k Þ þ Bkm sin°cR À k ފ;
qk qcR
q2 PcR
¼ VcR Vm ½Gmm cos°cR À m Þ þ Bmm sin°cR À m ފ;
qm qcR
q2 PcR
¼ VcR ½Gkm sin°cR À k Þ þ Bkm cos°cR À k ފ;
qk qVk
q2 PcR
¼ VcR ½Gmm sin°cR À m Þ þ Bmm cos°cR À m ފ;
qm qVm
q2 PcR
¼ Vk ½Gkm sin°cR À k Þ þ Bkm cos°cR À k ފ;
qk qVcR
q2 PcR
¼ Vm ½Gmm sin°cR À m Þ þ Bmm cos°cR À m ފ;
qm qVcR
q2 PcR
¼ VcR Vk ½Gkm cos°cR À k Þ þ Bkm sin°cR À k ފ;
qcR qk
q2 PcR
¼ ÀVcR ½Gmm sin°cR À m Þ À Bmm cos°cR À m ފ;
qcR qVm
q2 PcR
¼ VcR Vm ½Gmm cos°cR À m Þ þ Bmm sin°cR À m ފ ;
qcR qm
q2 PcR
¼ ÀVm ½Gmm sin°cR À m Þ À Bmm cos°cR À m ފ À Vk ½Gkm sin°cR À k Þ
qcR qVcR
À Bkm cos°cR À k ފ;
q2 PcR
¼ ÀVcR Vm ½Gmm cos°cR À m Þ þ Bmm sin°cR À m ފ À VcR Vk ½Gkm cos°cR À k Þ
qcR
2

þ Bkm sin°cR À k ފ;
q2 PcR
¼ ½Gkm cos°cR À k Þ þ Bkm sin°cR À k ފ;
qVk qVcR
q2 PcR
¼ ÀVcR ½Gkm sin°cR À k Þ À Bkm cos°cR À k ފ;
qcR qVk
363
UNIFIED POWER FLOW CONTROLLER


q2 PcR
¼ ½Gmm cos°cR À m Þ þ Bmm sin°cR À m ފ;
qVm qVcR
q2 PcR
¼ 2Gmm :
qVcR2


The second partial derivatives of active power ¬‚ow equations for the shunt converters
are:
q2 PvR
¼ ÀVvR Vk ½GvR cos°vR À k Þ þ BvR sin°vR À k ފ;
q2k
q2 PvR
¼ ÀVvR Vk ½GvR cos°vR À k Þ þ BvR sin°vR À k ފ;
qvR
2

q2 PvR
¼ VvR Vk ½GvR cos°vR À k Þ þ BvR sin°vR À k ފ;
qk qvR
q2 PvR
¼ ÀVvR ½GvR sin°vR À k Þ þ BvR cos°vR À k ފ;
qvR qVk
q2 PvR
¼ VvR ½GvR sin°vR À k Þ þ BvR cos°vR À k ފ;
qk qVk
q2 PvR
¼ ÀVk ½GvR sin°vR À k Þ À BvR cos°vR À k ފ;
qvR qVvR
q2 PvR
¼ Vk ½GvR sin°vR À k Þ þ BvR cos°vR À k ފ;
qk qVvR
q2 PvR
¼ ½GvR cos°vR À k Þ þ BvR sin°vR À k ފ;
qVk qVvR
q2 PvR
¼ À2GvR :
qVvR2
1
Appendix C: Matlab
Computer Program for
Optimal Power Flow Solutions
using Newton™s Method

A computer program suitable for the optimal power ¬‚ow (OPF) solution of small and
medium size power systems is given below. The program is general, as far as the topology of
the network is concerned, and caters for any number of PV and PQ buses. The slack bus is
the ¬rst generator bus in the data ¬le. Notice that active and reactive power limits should be
given to the slack generator. No transformers are represented in this base program and no
sparsity techniques are incorporated.

%%***- - - - - Main Program

%% ******************************************************************
%% Input data *
%% ******************************************************************
opfdata;
%% ******************************************************************
%% De¬nition of auxiliary vectors and matrices *
%% ******************************************************************
%%Nodes
VOLTAGE=zeros(nbb,1);ANGLE=zeros(nbb,1);LAMBDAP=zeros(nbb,1);
LAMBDAQ=zeros(nbb,1);PGENERATED=zeros(nbb,1);
StatusVoltage = ones(nbb,1);
Violation=zeros(nbb,1);Kindexvol=zeros(nbb,1);MiuBus=zeros(nbb,1);
StatV=ones(nbb,1);ActivedV=zeros(nbb,1);



%%Generators
statusgen=ones(ngn,1);StatP=ones(ngn,1);StatQ=ones(ngn,1);


FACTS: Modelling and Simulation in Power Networks.
´ ´
Enrique Acha, Claudio R. Fuerte-Esquivel, Hugo Ambriz-Perez and Cesar Angeles-Camacho
# 2004 John Wiley & Sons, Ltd ISBN: 0-470-85271-2
366 APPENDIX C

ActivedP=zeros(ngn,1);ActivedQ=zeros(ngn,1);Kindexgen=zeros(ngn,1);
IndGenQ=zeros(ngn,1);MiuGen=zeros(ngn,1);

ChangeStat=0;Kindex=0;cost=0;Ckg=0;MaxDz=0;
%%SetGenQ=0;GenViolado=0;Optimo=0;

%% ******************************************************************
%% The elements of Ybus are calculated here *
%% ******************************************************************
[GKK,BKK,GKM,BKM] = YBus(tlsend,tlrec,tlresis,tlreac,tlsuscep,...
tlcond, ntl,nbb);

%% ******************************************************************
%% Initial dispatch *
%% ******************************************************************
[PGEN,Ckg,LambdaP] = InitialDispatch(nbb,ngn,A,B,C,PLOAD, PGEN, PMIN,...
PMAX,Ckg,LambdaP);
Ckg=Ckg*10000;

%% ******************************************************************
%% Main iteration starts here *
%% ******************************************************************
[cost] = CostGeneration(cost,A,B,C,PGEN,ngn);

for(iterOpf = 1: IterOpfTot)

%% ******************************************************************
%% Calculated powers in buses and generators *
%% ******************************************************************
[Pbus,Qbus] = CalculatedPowers(nbb,VM,VA,GKK,BKK,GKM,BKM,ntl,...
tlsend,tlrec);
[QGEN]=ReactivePowerGenerators(QGEN,ngn,Qbus,QLOAD,genbus,bustype);

%% ******************************************************************
%% Check reactive power of generators, including the slack *
%% generator. Remove penalty factors from Lagrangian multiplier *
%% LambdaQ in buses with reactive power limits *
%% violations *
%% ******************************************************************
SetGenQ=0;
[Violation,ActivedQ,statusgen,SetGenQ,IndGenQ] = Voltage(nbb,ngn,...
genbus,QGEN,QLOAD,Violation,ActivedQ,vmin,vmax,TolVoltage,VM,Qbus,...
statusgen,bustype,QMAX,QMIN,SetGenQ,IndGenQ,iterOpf);

%% ******************************************************************
%% Copy data from solution vector to auxiliary vector *
%% ******************************************************************
367
COMPUTER PROGRAM FOR OPTIMAL POWER FLOW SOLUTIONS

[ANGLE,VOLTAGE,LAMBDAP,LAMBDAQ,PGENERATED]=VectorAux(nbb,ngn,VM,...
VA,LambdaP,LambdaQ,PGEN,vmax,vmin,ANGLE,VOLTAGE,LAMBDAP,LAMBDAQ,...
PGENERATED);

%% ******************************************************************
%% Internal iterations *
%% ******************************************************************
for( IntIter = 1: NIntIter)

%% ******************************************************************
%% The Matrix W and gradient vector are calculated *
%% ******************************************************************
if(IntIter == 1)
[Hessian,grad] = MatrixW(nbb,bustype,ngn,GKK, BKK,GKM,BKM,...
tlsend,tlrec,LambdaP,LambdaQ,VM,VA,ntl);

%% Generators
[Hessian,grad]=MatrixWGen(nbb,ntl,ngn,genbus,B,C,LambdaP,PGEN,...
Hessian,grad);

%% Mismatch of nodal powers
[Hessian,grad] = Mismatch(nbb,ngn,genbus,PGEN,QGEN,PLOAD,QLOAD,...
Pbus,Qbus,Hessian,grad);
end

%% ******************************************************************
%% Penalize generators with no reactive *
%% power limits violations *
%% ******************************************************************
if(SetGenQ>0)
AuxBigNumber=(10e+10)/2;
[Hessian,grad] = PenaltyFunctionQ(nbb,AuxBigNumber,Hessian,...
grad,genbus,IndGenQ,SetGenQ,LambdaQ,ActivedQ);
end

%% ******************************************************************
%% Penalize the voltage magnitude and phase angle of slack bus *
%% the phase angle must be 0 *
%% ******************************************************************
[Hessian,grad] = Convexi¬cacion(nbb,Hessian,grad,Cc,vmax,...
vmin,VOLTAGE,StatusVoltage,VM);

%% ******************************************************************
%% It holds activated variables in w-matrix, *
%% after exiting internal iterations *
%% ******************************************************************
[Hessian,grad,ActivedV,ActivedP] = AugmentedLagrangian(nbb,...
368 APPENDIX C

Hessian,grad,Ckv,Ckg,vmax,vmin,VOLTAGE,StatusVoltage,VM,ActivedV,...
MiuBus, ngn,ActivedP,PGEN,StatP,MiuGen,PMAX,PMIN);


%% ******************************************************************
%% Solves the system, of equations *
%% ******************************************************************
Hessian=full(Hessian);
Dz = Hessian\grad;


%% ******************************************************************
%% Updates phase angles, voltages magnitudes, *
%% and multipliers lambdap and lambdaq *
%% ******************************************************************
if(iterOpf==1 & IntIter<20), Alfa=Alfa+0.025; end
Dz=Alfa*Dz;
[Dz,VA,VM,LambdaP,LambdaQ,PGEN] = Actualisation(Dz,nbb,VA,...
VM,LambdaP,LambdaQ,bustype,ngn,PGEN);


%% ******************************************************************
%% Reset calculated powers in buses, w-matrix and gradient *
%% ******************************************************************
[Hessian,grad] = Reset_Hessian_grad(Hessian,grad,ngn,nbb);

%% ******************************************************************
%% Calculated Powers in buses and generators (second time) *
%% ******************************************************************
[Pbus,Qbus] = CalculatedPowers(nbb,VM,VA,GKK,BKK,GKM,BKM,...
ntl,tlsend,tlrec);
[QGEN] = ReactivePowerGenerators(QGEN,ngn,Qbus,QLOAD,genbus,...
bustype);

%% ******************************************************************
%% The gradient vector is calculated (second time). *
%% Convergence is checked *
%% ******************************************************************
[Hessian,grad] = MatrixW(nbb,bustype,ngn,GKK,BKK,GKM,BKM,...
tlsend,tlrec,LambdaP,LambdaQ,VM,VA,ntl);
%% Generators
[Hessian,grad] = MatrixWGen(nbb,ntl,ngn,genbus,B,C,LambdaP,...
PGEN,Hessian,grad);
%% Mismatch of nodal powers
[Hessian,grad]=Mismatch(nbb,ngn,genbus,PGEN,QGEN,PLOAD,QLOAD,...
Pbus,Qbus,Hessian,grad);

Optimo=0; %%Flag
[Optimo] = ReviewNodes(Optimo,grad,nbb,bustype,ActivedV,Tol2);
369
COMPUTER PROGRAM FOR OPTIMAL POWER FLOW SOLUTIONS

[Optimo] = ReviewGen(Optimo,grad,ngn,ActivedP,Tol1,nbb);
[MaxDz] = Norma(MaxDz,grad,nbb,ngn);
if(Optimo==0),break, end;
end %% End of internal iteration

%% ******************************************************************
%% Select the active set for the next iteration *
%% ******************************************************************
NumNode=zeros(nbb,1);
ValueVoltage= zeros(nbb,1);
NumGenerator=zeros(ngn,1);
ValueGenerator=zeros(ngn,1);
%% Identify candidates for addition to active set
SetVol=0;
[StatusVoltage,SetVol,NumNode,ValueVoltage] = Check_Limits_V...
(nbb, TolVoltage,vmin,vmax,VM,StatusVoltage,Dz,SetVol,NumNode,...
ValueVoltage, ActivedV);

SetGenP=0;
if(iterOpf>=0)
[StatP,SetGenP,NumGenerator,ValueGenerator] = Check_Limits_P...
(ngn,TolPower,PMIN,PMAX,PGEN,StatP,SetGenP,NumGenerator,...
ValueGenerator, ActivedP);
end

%% ******************************************************************
%% Looking for the maximum index *
%% ******************************************************************
MaxVol=0;
if(SetVol>0)
MaxVol=ValueVoltage(1);
for(ii = 1: SetVol)
if(ValueVoltage(ii)>MaxVol),MaxVol=ValueVoltage(ii);end
end
end

MaxGen=0;
if(SetGenP>0)
MaxGen=ValueGenerator(1);
for(ii = 1: SetGenP)
if(ValueGenerator(ii)>MaxGen),MaxGen=ValueGenerator(ii);end
end
end

%% ******************************************************************
%% Adding new inequality constraints to the active set. *
%% They must be >= Tolerance *
%% ******************************************************************
370 APPENDIX C

if(SetVol>0)
[Hessian,grad,ActivedV] = AugmentedLagrangianV(nbb,Hessian,...
grad, Ckv,vmax,vmin,StatusVoltage,VM,ActivedV,MiuBus,SetVol,...
NumNode,ValueVoltage,MaxVol,EnforceTol);
end


if(SetGenP>0)
[Hessian,grad,ActivedP] = AugmentedLagrangianG(ngn,nbb,Hessian,...
rad,Ckg,PMIN,PMAX,StatP,PGEN,ActivedP,MiuGen,SetGenP,...
NumGenerator,ValueGenerator,MaxGen,EnforceTol);
end


%% ******************************************************************
%% Select candidate, constraints to be removed *
%% from the active set *
%% ******************************************************************
NumMiu_V=zeros(nbb,1);
ValMiu_V=zeros(nbb,1);
NumMiu_P=zeros(ngn,1);
ValMiu_P=zeros(ngn,1);
RelVol=0;
for(ii = 1: nbb)
if(ActivedV(ii)==2)
[Hessian,grad,ActivedV]=AugmentedLagrangian_IV(nbb,Hessian,...
grad,Ckv,vmax,vmin,StatusVoltage,VM,ActivedV,MiuBus,ii);
[MiuBus,NumMiu_V,ValMiu_V,RelVol] = IdentifyMiuBus...
(StatusVoltage, MiuBus,Ckv,VM,vmax,vmin,ActivedV,RelVol,...
NumMiu_V,ValMiu_V,ii);
end
end


RelGen=0;
for(ii = 1: ngn)
if(ActivedP(ii)==2)
[Hessian,grad,ActivedP] = AugmentedLagrangian_IG(ngn,...
Hessian,grad,Ckg,PMIN,PMAX,StatP,PGEN,ActivedP,MiuGen,ii);
[MiuGen,NumMiu_P,ValMiu_P,RelGen] = IdentifyMiuGen(StatP,...
MiuGen,Ckg,PGEN,PMAX,PMIN,ActivedP,RelGen,NumMiu_P,ValMiu_P,ii);
end
end


%% ******************************************************************
%% It looks for the maximum index *
%% ******************************************************************
MaxVol=0;
371
COMPUTER PROGRAM FOR OPTIMAL POWER FLOW SOLUTIONS

if(RelVol>0)
MaxVol=ValMiu_V(1);
for(ii = 1: RelVol)
if(ValMiu_V(ii)>MaxVol),MaxVol=ValMiu_V(ii);end
end
end

MaxGen=0;
if(RelGen>0)
MaxGen=ValMiu_P(1);
for(ii = 1: RelGen)
if(ValMiu_P(ii)>MaxGen),MaxGen=ValMiu_P(ii);end
end
end

%% ******************************************************************
%% Releasing inequality constraints from the active *
%% set. They must be >= Tolerance *
%% ******************************************************************
if(RelVol>0)
for(ii = 1:RelVol)
if(((ValMiu_V(ii)/MaxVol)>=RelTol)&(ValMiu_V(ii)>...
(Fraction*MaxVol)))
send=NumMiu_V(ii);
[Hessian,grad,ActivedV,StatusVoltage] =...
ReleasingAumentedLagrangianV(VM,vmax,vmin,StatusVoltage,MiuBus,...
Hessian, grad,Ckv,ActivedV,StatusVoltage,send);
end
end
end

if(RelGen>0)
for(ii= 1:RelGen)
if(((ValMiu_P(ii)/MaxGen)>=RelTol)&(ValMiu_P(ii)>...
(Fraction*MaxGen)))
send=NumMiu_P(ii);
[Hessian,grad,ActivedP,StatP] =...
ReleasingAumentedLagrangianG(PGEN,PMAX,PMIN,StatP,MiuGen,...
Hessian, grad,Ckg,ActivedP,StatP,send);
end
end
end

%% ******************************************************************
%% Compute the initial values of MiuBUS *
%% and MiuGEN *
%% ******************************************************************
[MiuBus] = MultiplierBus(nbb,Ckv,MiuBus,VM,vmax,vmin);
372 APPENDIX C

[MiuGen] = MultiplierGen(ngn,Ckg,MiuGen,PGEN,PMAX,PMIN);

[ANGLE,VOLTAGE,LAMBDAP,LAMBDAQ,PGENERATED] = VectorAux(nbb,ngn,...
VM,VA,LambdaP,LambdaQ,PGEN,vmax,vmin,ANGLE,VOLTAGE,LAMBDAP,...
LAMBDAQ,PGENERATED);
Ckv=1.3*Ckv;
Ckg=1.3*Ckg;

%% ******************************************************************
%% It changes the status of ˜˜Actived™™ variables from 1 to 2, *
%% to enable values to be identi¬ed at the following iteration: *
%% 0 can be analyzed, 1 recently activated, *
%% 2 it is already active and checks its lambda. *
%% ******************************************************************
for(ii= 1: nbb)
if(ActivedV(ii)==1),ActivedV(ii)=2;end
end
for(ii = 1: ngn)
if(ActivedP(ii)==1),ActivedP(ii)==1;end
end

%% ******************************************************************
%% It checks whether or not there are changes *
%% in the active set. Changes in Generators *
%% ******************************************************************
in0=0;
for(ii = 1: ngn)
[ChangeStat,Kindex1,statusgen,LambdaQ,ActivedQ,bustype] =...
IdentifyConstQ(ChangeStat,genbus,statusgen,LambdaQ,...
ActivedQ,bustype,ii);
if(ChangeStat˜=0),in0=1;end
end
GenViolado=0;
for(ii= 1: ngn)
[GenViolado]=CheckQGenLimits(GenViolado,QLOAD,Qbus,QMIN,...
QMAX,genbus,TolPower,ii);
if(GenViolado==1),break;end
end
if(GenViolado==1),Optimo=1;end

%% ******************************************************************
%% It checks whether or not there are changes in the *
%% multipliers. Changes in generators *
%% ******************************************************************
in1=0;in2=0;
for(ii = 1: nbb)
[in1,in2]=MatrixWVoltageMiu(in1,in2,TolVoltage,VM,vmax,vmin,...
373
COMPUTER PROGRAM FOR OPTIMAL POWER FLOW SOLUTIONS

MiuBus,ActivedV,StatusVoltage,ii);
if(in1==1 | in2==1),break;end
end
in3=0;in4=0;
for( ii = 1: ngn)
[in3,in4] = MatrixWGenMiu(in3,in4,TolPower,PGEN,PMAX,PMIN,...
MiuGen,ActivedP,StatP,ii);
if(in3==1 | in4==1),break;end

<<

. 15
( 17)



>>