tarea2sep3.pdf

14
UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA DEPARTAMENTO DE INGENIERÍA ELÉCTRICA SANTIAGO - CHILE Tarea Nº2 ELI-348 - Análisis de sistemas de potencia III “Flujo de carga por Newton Raphson” Jorge Saavedra 25 de septiembre de 2014

Transcript of tarea2sep3.pdf

UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA

DEPARTAMENTO DE INGENIERÍA ELÉCTRICASANTIAGO - CHILE

Tarea Nº2ELI-348 - Análisis de sistemas de potencia III

“Flujo de carga por Newton Raphson”

Jorge Saavedra

25 de septiembre de 2014

Departamento de Ingeniería Eléctrica U.T.F.S.M. ELI-348

Índice

1. Desarrollo 3

1.1. Datos iniciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2. Flujo de potencia mediante NR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3. Otros casos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.3.1. Si J2 y J3 son cero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.3.2. Si las barras PQ comienzan con tensión inicial distinta de 1 . . . . . . . . 6

2. Conclusiones 8

Apéndice 10

A. Código MATLABr 10

JSC Página 2 de 14

Departamento de Ingeniería Eléctrica U.T.F.S.M. ELI-348

1. Desarrollo

1.1. Datos iniciales

La matriz de admitancia de barra obtenida en la parte b de la tarea [2] es ampliada, ya que eneste caso el nodo 1 no es tomado como referencia, esta es:

Ybus =

13,17 − 35,40j −7,547 + 26,42j −5,618 + 8,989j 0−7,547 + 26,42j 31,47 − 82,10j −3,922 + 15,69j −20,00 + 40,00j−5,618 + 8,989j −3,922 + 15,69j 9,540 − 24,68j 0

0 −20,00 + 40,00j 0 20,00 − 40,00j

(1.1)

Luego se desea calcular el flujo de potencia de la línea considerando los datos iniciales delsistema mostrados en la tabla 1.1.

Generación CargaBarra Tipo Tensión asumida P Q P Q

1 Libre 1,035 + 0,0j 0.0 0.0 0.0 0.02 PV 1,040 + 0,0j 0.45 0.0 0.12 0.033 PQ 1,0 + 0,0j 0.0 0.0 0.35 0.104 PQ 1,0 + 0,0j 0.0 0.0 0.25 0.05

Tabla 1.1: Tabla de datos iniciales para iteración

1.2. Flujo de potencia mediante NR

Si la admitancia de barra es descompuesta en su parte real e imaginaria se obtiene I:

Yij = Gij + jBij (1.2)

donde i, j representan dos nodos cualquiera. Por lo tanto la potencia inyectada a un nodo es:

Pi − jQi =

N∑

n=1

|ViVn| [Gi · cos(δn − δi) + Bisin(δn − δi)] (1.3)

− j

N∑

n=1

|ViVn| [Gi · sin(δn − δi) − Bicos(δn − δi)] (1.4)

Estas ecuaciones son llamadas Ecuaciones de flujo de potencia y entregan valores calculados parala potencia real Pi e imaginaria Qi, estas ecuaciones son las mismas que se muestran en la refe-rencia, solo que no se calcula todo en polares por que esta forma causa errores en las iteraciones

IEn el presente informe se omiten algunas definiciones, pues toda la teoría se encuentra en la referencia [3] yse explican más detalladas en el código expuesto en el apéndice.

JSC Página 3 de 14

Departamento de Ingeniería Eléctrica U.T.F.S.M. ELI-348

al utilizar MATLABr .

A partir de estas ecuaciones es posible obtener errores al calcular flujo de potencia. Estos erroresestán dados por las siguientes expresiones y permiten detener la iteración del flujo de potenciacuando este valor es suficientemente pequeño.

∆Pi = Pi.programado − Pi.calculado (1.5)

∆Qi = Qi.programado −Qi.calculado (1.6)

En el caso de que estos errores no satisfagan una tolerancia determinada se calcula la matrizjacobiana del método Newton Raphson, el cual corresponde a derivadas parciales de la potenciacon respecto a los ángulos δ y tensiones. Luego a partir de este cálculo se determinan los cambiosen tensiones y ángulos de estas(en las barras PQ), las cuales determinan nuevas condicionesiniciales del sistema aumentando el contador de iteraciones.

Una vez que el error es menor que la tolerancia definida, se procede a calcular el flujo de potenciaen las barras y sus pérdidas. Primero se calculan las corrientes inyectadas en las barras según:

I = YbusV (1.7)

donde

I: Vector de corrientes en nodos

Ybus: Matriz de admitancia de barra

V: Vector de tensiones en nodos respecto a tierra

Se calcula el flujo de potencia por las líneas, esto significa calcular la corriente entre cada par denodos (p,q) donde haya al menos un elemento:

I(p,q) = −(V(p) − V(q)) · Y(p,q) (1.8)

I(q,p) = −I(p,q) (1.9)

Luego la potencia que fluye desde el nodo p al q es:

S(p,q) = V(p) · (I(p,q))∗ (1.10)

Y las pérdidas de lineas se determinan para cada barra (m) y estas son (esto es lo mismo quedecir la potencia de pérdidas es la que entra menos la que sale):

L(m) = S(p,q) + S(q,p); (1.11)

También es posible determinar la potencia inyectada en las barras, esta no es más que la restaentre la potencia generada menos la potencia consumida por las cargas.

JSC Página 4 de 14

Departamento de Ingeniería Eléctrica U.T.F.S.M. ELI-348

Según el flujo de potencia pedido en la tarea [2], se entrega un reporte de lo obtenido por talprograma para este caso en particular, en la figura 1.1. La tolerancia utilizada es de 10−5, estosignifica que si el mayor de los errores supera tal valor, se detiene la iteración y se calcula el flujode potencia. Esto ocurre en las 4 iteraciones.

y

P Q P Q P Q

Figura 1.1: Reporte entregado por programa de MATLABr

Figura 1.2: Reporte entregado por programa de MATLABr

Según esto las pérdidas de potencia activa y reactiva son aproximadamente 0.003 y 0.008, res-pectivamente en pu.

JSC Página 5 de 14

Departamento de Ingeniería Eléctrica U.T.F.S.M. ELI-348

1.3. Otros casos

1.3.1. Si J2 y J3 son cero

Los jacobianos 2 y 3 pueden ser igualados a cero, esto es válido para el cálculo en coordenadaspolares y puesto que pequeños cambios en la tensión y ángulos no afecta demasiado en cambiosen potencia activa y reactiva, respectivamente.

Si los jacobianos anteriores son igualados a 0, la convergencia es más lenta con la misma to-lerancia anterior, ya que el número de iteraciones sube a 19. Los resultados entregados por estaforma son mostrados en la figura 1.3. En estos resultados se aprecia que son similares a losobtenidos en la parte en que todos los jacobianos se calcularon.

P Q P Q P Q

y

Figura 1.3: Reporte entregado por programa de MATLABr

1.3.2. Si las barras PQ comienzan con tensión inicial distinta de 1

Si las barras PQ comienzan con tensión 0.5 pu el método converge a una solución que no esprácticamente válida. Los resultados de tales iteraciones son presentados a continuación en lafigura 1.4.

JSC Página 6 de 14

Departamento de Ingeniería Eléctrica U.T.F.S.M. ELI-348

y

P Q P Q P Q

Figura 1.4: Reporte entregado por programa de MATLABr para el caso en que las condicionesiniciales son distintas a las utilizadas en el caso simulado anteriormente

Si las barras PQ comienzan con una tensión mayor a 0.6 converge pero el número de iteracionescrece a 7 considerando todas las submatrices del jacobiano. Esto se muestra en la figura 1.5.

y

P Q P Q P Q

Figura 1.5: Reporte entregado por programa de MATLABr para el caso en que las tensionesiniciales de las barras PQ son 0.6 en pu

JSC Página 7 de 14

Departamento de Ingeniería Eléctrica U.T.F.S.M. ELI-348

2. Conclusiones

1. El método Newton Raphson es útil para el flujo de carga puesto que converge rápidamenteya que, considerando todos los jacobianos, el número de iteraciones para este caso solofueron 4. Esto ayuda de gran manera a resolver el flujo de potencia puesto que en esteproblema hay involucradas ecuaciones no lineales que en un sistema sería difícil de resolverde otra manera. Sería bueno comparar el método de Gauss-Seidel con este, sin embargono se estudia dicho método en el presente informe como para tener una idea de qué tanbueno es utilizar NR.

2. Si los jacobianos 2 y 3 del método son igualados a 0, se ocupa menos la memoria delcomputador (ya que se calculan menos datos) pero las iteraciones para la convergencia sonapreciablemente mayores. Es por esto que en un sistema más grande se debe evaluar quésería más rápido de realizar, tomando en consideración las características del computadorutilizado para esta función.

3. Si las condiciones iniciales del problema no están bien ajustadas puede que el métodoconverja en más iteraciones o que simplemente no lo haga. Esto requiere que las tensionesde las barras PQ preferentemente sean 1∠0◦. Además lo ideal sería que se asumiera queel generador entrega un resto de potencia reactiva (lo cual es una caracteristica de estey debería ser aprovechada), sin embargo para este caso en particular no influía en nadasi la potencia reactiva de la barra PV se asumía, por ejemplo 0.3, ya que el número deiteraciones seguía siendo 4.

4. Las pérdidas calculadas para este pequeño caso son aproximadamente 0,003 + 0,008jescritas en su forma rectangular, esto indica que estas en por unidad no son suficientementegrande en comparación con la potencia que se desea transmitir, lo cual resulta atractivotomando en cuenta que lo ideal sería que toda la potencia que entra en las líneas sea laque salga.

JSC Página 8 de 14

Departamento de Ingeniería Eléctrica U.T.F.S.M. ELI-348

Referencias

[1] G.W. Stagg, A.H. El-Abiad, Computer Methods in Power System Analysis, 1962.

[2] L. Gacitúa, Tarea 2: Algoritmos de construcción, UTFSM, 2014.

[3] J. Grainger, W. Stevenson, Power System Analysis, 1996.

JSC Página 9 de 14

Departamento de Ingeniería Eléctrica U.T.F.S.M. ELI-348

Apéndice

A. Código MATLABr

1 % Programa para flujo de carga mediante Newton Raphson2

3 nbus = 4; % Numero de barras4 Y = ybusppg(nbus); % Llamando a la matriz Ybarra5 busd = busdatas(nbus); % Llamando a info de barras6 BMva = 1; % Base MVA..7 bus = busd(:,1); % Numero de barra8 type = busd(:,2); % Tipo de barra 1 −Libre, 2 −PV, 3−PQ..9 V = busd(:,3); % Magnitud de tension

10 del = busd(:,4); % Angulo de tension en rad11 Pg = busd(:,5)/BMva; % PGi..12 Qg = busd(:,6)/BMva; % QGi..13 Pl = busd(:,7)/BMva; % PLi..14 Ql = busd(:,8)/BMva; % QLi..15 P = Pg − Pl; % Pi = Potencia generada − demandada16 Q = Qg − Ql; % Qi = Potencia generada − demandada17 Psp = P; % P Especificado..18 Qsp = Q; % Q Especificado..19 G = real(Y); % Matriz de conductancia20 B = imag(Y); % Matriz de susceptancia21

22 pv = find(type == 2 | type == 1); % Barras PV, Libre23 pq = find(type == 3); % Barras PQ24 npv = length(pv); % No. de barras PV25 npq = length(pq); % No. de barras PQ26

27 Tol = 1; %para entrar en while28 Iter = 0; %contador de iteraciones29 while (Tol > 1e −5) % Empiezan las iteraciones30

31 P = zeros(nbus,1);32 Q = zeros(nbus,1);33 % Calculo de Pp, Qp34 for i = 1:nbus35 for k = 1:nbus36 P(i) = P(i) + V(i) * V(k) * (G(i,k) * cos(del(i) −del(k)) + ...

B(i,k) * sin(del(i) −del(k)));37 Q(i) = Q(i) + V(i) * V(k) * (G(i,k) * sin(del(i) −del(k)) − ...

B(i,k) * cos(del(i) −del(k)));38 end39 end40

41 % Calculo de la diferencia de potencia (error)

JSC Página 10 de 14

Departamento de Ingeniería Eléctrica U.T.F.S.M. ELI-348

42 dPa = Psp−P;43 dQa = Qsp−Q;44 k = 1;45 dQ = zeros(npq,1);46 for i = 1:nbus47 if type(i) == 3 %Si es tipo PQ, se salta el jacobiano48 dQ(k,1) = dQa(i);49 k = k+1;50 end51 end52 dP = dPa(2:nbus);53 M = [dP; dQ] % Vector de errores54

55 % Jacobiano56 % J1 − Derivada de potencia activa respecto a los angulos57 J1 = zeros(nbus −1,nbus −1);58 for i = 1:(nbus −1)59 m = i+1;60 for k = 1:(nbus −1)61 n = k+1;62 if n == m63 for n = 1:nbus64 J1(i,k) = J1(i,k) + V(m) * ...

V(n) * ( −G(m,n) * sin(del(m) −del(n)) + ...B(m,n) * cos(del(m) −del(n)));

65 end66 J1(i,k) = J1(i,k) − V(m)^2 * B(m,m);67 else68 J1(i,k) = V(m) * V(n) * (G(m,n) * sin(del(m) −del(n)) − ...

B(m,n) * cos(del(m) −del(n)));69 end70 end71 end72

73 % J2 − Derivadas de potencia activa respecto a V74 J2 = zeros(nbus −1,npq);75 for i = 1:(nbus −1)76 m = i+1;77 for k = 1:npq78 n = pq(k);79 if n == m80 for n = 1:nbus81 J2(i,k) = J2(i,k) + V(n) * (G(m,n) * cos(del(m) −del(n)) + ...

B(m,n) * sin(del(m) −del(n)));82 end83 J2(i,k) = J2(i,k) + V(m) * G(m,m);84 else85 J2(i,k) = V(m) * (G(m,n) * cos(del(m) −del(n)) + ...

B(m,n) * sin(del(m) −del(n)));86 end87 end88 end

JSC Página 11 de 14

Departamento de Ingeniería Eléctrica U.T.F.S.M. ELI-348

89

90 % J3 − Derivadas de las potencias reactivas respecto a los angulos91 J3 = zeros(npq,nbus −1);92 for i = 1:npq93 m = pq(i);94 for k = 1:(nbus −1)95 n = k+1;96 if n == m97 for n = 1:nbus98 J3(i,k) = J3(i,k) + V(m) * ...

V(n) * (G(m,n) * cos(del(m) −del(n)) + ...B(m,n) * sin(del(m) −del(n)));

99 end100 J3(i,k) = J3(i,k) − V(m)^2 * G(m,m);101 else102 J3(i,k) = V(m) * V(n) * ( −G(m,n) * cos(del(m) −del(n)) − ...

B(m,n) * sin(del(m) −del(n)));103 end104 end105 end106

107 % J4 − Derivadas de las potencias reactivas respecto a V108 J4 = zeros(npq,npq);109 for i = 1:npq110 m = pq(i);111 for k = 1:npq112 n = pq(k);113 if n == m114 for n = 1:nbus115 J4(i,k) = J4(i,k) + V(n) * (G(m,n) * sin(del(m) −del(n)) − ...

B(m,n) * cos(del(m) −del(n)));116 end117 J4(i,k) = J4(i,k) − V(m) * B(m,m);118 else119 J4(i,k) = V(m) * (G(m,n) * sin(del(m) −del(n)) − ...

B(m,n) * cos(del(m) −del(n)));120 end121 end122 end123

124

125 J = [J1 J2; J3 J4]; % Matriz Jacobiana126

127 X = inv(J) * M; % Vector de correcciones128 dTh = X(1:nbus −1); % Cambio en el angulo de las tensiones en rad129 dV = X(nbus:end); % Cambio en el modulo de tensiones130

131 % Se modifican angulos y tensiones132 del(2:nbus) = dTh + del(2:nbus); % Angulo de tension en rad, no se ...

modifica a la barra libre ya que es 0 su angulo.133 k = 1;134 for i = 2:nbus

JSC Página 12 de 14

Departamento de Ingeniería Eléctrica U.T.F.S.M. ELI-348

135 if type(i) == 3136 V(i) = dV(k) + V(i); % Se cambia magnitud de tensión solo ...

a barras PQ137 k = k+1;138 end139 end140 Iter = Iter + 1;141 Tol = max(abs(M)); % Tolerancia (máximo de vector de error)142

143 end144 loadflow(nbus,V,del,BMva); % llamando a flujo de potencia145 Iter146

147 % Programa para flujo de potencia148

149 function [Pi Qi Pg Qg Pl Ql] = loadflow(nb,V,del,BMva)150

151 Y = ybusppg(nb); % Se llama a matriz Ybus152 lined = linedatas(nb); % Se obtiene informacion de las lineas153 busd = busdatas(nb); % Se obtiene informacion de las barras154 Vm = pol2rect(V,del); % Polar a rectangular155 Del = 180/pi * del; % Angulo de tension en grados156 fb = lined(:,1); % Desde la barra numero157 tb = lined(:,2); % A la barra numero158 nl = length(fb); % Numero de barras159 Pl = busd(:,7); % PLi..160 Ql = busd(:,8); % QLi..161

162 Iij = zeros(nb,nb);163 Sij = zeros(nb,nb);164 Si = zeros(nb,1);165

166 % Corriente inyectada en las barras167 I = Y * Vm;168 Im = abs(I);169 Ia = angle(I);170

171 %Flujo de corriente en las lineas172 for m = 1:nl173 p = fb(m); q = tb(m);174 Iij(p,q) = −(Vm(p) − Vm(q)) * Y(p,q);175 Iij(q,p) = −Iij(p,q);176 end177 Iij = sparse(Iij);178 Iijm = abs(Iij);179 Iija = angle(Iij);180

181 % Flujo de potencia182 for m = 1:nb183 for n = 1:nb184 if m 6= n185 Sij(m,n) = Vm(m) * conj(Iij(m,n)) * BMva;

JSC Página 13 de 14

Departamento de Ingeniería Eléctrica U.T.F.S.M. ELI-348

186 end187 end188 end189 Pij = real(Sij);190 Qij = imag(Sij);191

192 % Perdidas en lineas193 Lij = zeros(nl,1);194 for m = 1:nl195 p = fb(m); q = tb(m);196 Lij(m) = Sij(p,q) + Sij(q,p);197 end198 Lpij = real(Lij);199 Lqij = imag(Lij);200

201 % Inyeccion de potencia en barras202 for i = 1:nb203 for k = 1:nb204 Si(i) = Si(i) + conj(Vm(i)) * Vm(k) * Y(i,k) * BMva;205 end206 end207 Pi = real(Si);208 Qi = −imag(Si);209 Pg = Pi+Pl;210 Qg = Qi+Ql;

JSC Página 14 de 14