Está en la página 1de 7

Desarrollo de un software de solución a problemas de

flujo de potencia considerando limites fı́sicos de los


generadores
Juan Manuel Rı́os

1 Introducción
Este documento tiene como fin presentar el proceso y resultado del desarrollo de un software que pretende
solucionar problemas de flujos de carga tı́picos en sistemas de potencias de grandes magnitudes mediante
la aplicación de método de newton desacoplado. Para ello se desarrollaron una serie de códigos en Python
para leer un documento en Excel con la información del sistema, posteriormente implementar el método
numérico para solucionar el sistema y generar un nuevo documento en Excel con la información brindada
por el algoritmo. Al final se comparan las diferentes soluciones obtenidas con el software desarrollado y
las obtenidas con softwares ya establecidos (Pypower y Matpower) y se discuten las diferencias entre cada
método.

2 Planteamiento del código


Se requiere solucionar un sistema de potencia de n barras, cuya información estará contenida en un archivo
de Excel, por lo tanto se plantea una primera función, cuyo objetivo será extraer la información contenida
en este archivo y almacenarla en variables globales, con el fin de que se puedan emplear por otras funciones
del programa.

De acuerdo con los razonamientos que se han venido realizando, el siguiente paso seria determinar la matriz
Ybus, por lo que se define otra función (Ybus), que hace uso de las variables determinadas en la lectura de
datos y construye ası́ la matriz de admitancias de barra.

Una vez determinados los datos que describen el sistema. El siguiente paso serı́a implementar el algoritmo
de solución de problemas. Para este fin se crean dos funciones (Jacob() y MetodoNewton() ) estas se encar-
garan de determinar el jacobiano del sistema y aplicar el método de newton respectivamente, adicionalmente
MetodoNewton() determinara cuando terminar de iterar si se cumple que:
|4P | y |4Q| ≤ tolerancia
Luego de correr el flujo de potencia, la función MetodoNewton() retorna la información necesaria para final-
mente implementar la función Escritura() que se encargará de generar el reporte en un archivo de Excel.

Finalmente se crea la función Flujodepotencia() que será la encargada de hacer el llamado a las demas
funciones.Esta funcion es la que se usara al momento de correr un flujo de carga, osea será la encargada de
la interacción con el usuario final.

2.1 LecturaDatosExcel()
La función LecturaDatosExcel() no emplea parámetros de entrada, en su lugar hace uso de una librerı́a de
Python llamada tkinter para abrir una ventana emergente y seleccionar el archivo luego hace un barrido
de todo el documento almacenando en variables toda la información necesaria, finalmente retornando las
variables bus y lineas.

1
2.2 Ybus(bus,lineas)
Esta función emplea matrices como parámetros de entrada, en las cuales hace un barrido para determinar la
matriz Ybus y adicionalmente separa la parte real e imaginaria de esta para facilitar su uso posteriormente.
La función retorna las variables Ybarra,G,B.

2.3 Jacob(nb,G,B,V,Ang,Pcalc,Qcalc,tipo)
Esta función emplea las variables calculadas por las anteriores funciones y adicionalmente usa variables que
no retornan las funciones anteriores, esto debido a que estas variables se definieron como globales, por lo que
no es necesario retornarlas.
esta función es la encargada de determinar los 4P y los 4Q.

Con estos datos la función construye una matriz de 2nb x 2nb, esto debido a que el jacobiano debe ser
dinámico con cada iteración, para ası́ poder hacer un buen control de la potencia reactiva que pueden sum-
inistrar los generadores.
Finalmente la función retorna la matriz jacobiana J.

2.4 MetodoNewton(bus,lineas,baseMVA,tol,maxiter,miniter,Lim
Al igual que la funcion Jcob() esta función emplea las variables calculadas por las anteriores funciones y
adicionalmente usa variables que no retornan las funciones anteriores.
Esta función es la encargada de implementar el algoritmo de solución de problemas y con esto aplicar el
método de newton para la solución de sistemas de ecuaciones no lineales.
La función no tiene retornos, ya que las variables de gran importancia se definieron como globales.

2.5 Escritura(Guardarcomo,bus,V,Ang,envio,recibo,Pkm,Qkm,Pmk,Qmk,Plos,Qlos,Pk,Qk)
Esta función solo emplea variables globales, es la encargada de generar un nuevo archivo de Excel, tabulando
los resultados de correr el flujo de carga.

2.6 Flujodepotencia(Guardarcomo,baseMVA,tol,maxiter,miniter,Lim)
Todos los parámetros de entrada de esta función los tendrá que suministrar el usuario, por lo tanto Flujode-
potencia() se encargará de integrar a todas las demás funciones haciendo un llamado de estas y facilitando
la interacción con el usuario.

Una descripción mas detallada de cada una de las funciones se da en la presentación adjunta ”Flujo de
carga con Python” y en el codigo fuente ”Codigoflujo.py”.

2
3 Análisis de los resultados
En esta sección se analizaron los resultados de 3 casos planteados por la IEEE (9BARRAS IEEE,14BARRAS
IEEE,30BARRAS IEEE).Solucionándolos usando el software desarrollado y comparando los resultados con
las soluciones brindadas por Pypower o Matpower. En primera instancia se corrió el flujo sin control de
reactiva y luego con control y se obtuvieron los siguientes resultados.

(a) 9 barras Pypower (b) 9 barras software


Figura 1. Comparación de resultados para sistema de 9 barras.

(a) 14 barras Pypower (b) 14 barras software


Figura 2. Comparación de resultados para sistema de 14 barras.

3
(a) 30 barras Pypower (b) 30 barras software
Figura 3. Comparación de resultados para sistema de 30 barras.

Como el software implementado calcula la inyección de potencia como:


Pk = Pg enerada − Pd emandadayQk = Qg enerada − Qd emandada podemos observar que el software
implementado cumple a cabalidad con su objetivo, no obstante en el sistema de 14 Barras hay cierta
discrepancia en algunas barras con respecto a la referencia establecida por Pypower, esto puede deberse a
que este sistema incluye elementos mas complejos y el sofware que se implementó no considera estos
elementos.
En las figuras a continuación se muestran los resultados de correr el flujo de potencia, estableciendo limites
adecuados, para poder evidenciar el control de potencia reactiva que se implemento en el software.

4
(a) 9 barras con limite de reactiva Pypower (b) 9 barras con limite de reactiva software
Figura 4. Comparación de resultados para sistema de 9 barras.

(a) 14 barras con limite de reactiva Matpower (b) 14 barras con limite de reactiva software
Figura 5. Comparación de resultados para sistema de 14 barras.

5
(a) 30 barras con limite de reactiva Matpower (b) 30 barras con limite de reactiva software
Figura 6. Comparación de resultados para sistema de 30 barras.

Como el software implementado calcula la inyección de potencia como:


Pk = Pg enerada − Pd emandadayQk = Qg enerada − Qd emandada podemos observar que el software
implementado cumple a cabalidad con su objetivo, no obstante en el sistema de 14 Barras hay cierta
discrepancia en algunas barras con respecto a la referencia establecida por Pypower o Matpower, esto
puede deberse a que este sistema incluye elementos mas complejos y el sofware que se implementó no
considera estos elementos, además Pypower y Matpower emplean metodos de optimización para garantizar
mejores perfiles de tensión, no obstante el software desarrollado cumple a cabalidad el objetivo de
conservar los limites establecidos por los generadores, lo que lo convierten en una buena herramienta a la
hora de resolver problemas de flujo de potencia, ya sea en un ámbito académico o industrial.

4 Conclusiones
Mediante el uso del método de newton para la solución de sistemas de ecuaciones no lineales, se muestra el
balance de energı́a en los sistemas de forma tabulada en un archivo de Excel.

El software desarrollado permite permite solucionar problemas de flujos de potencia, lo que lo hace idóneo
para su uso en ámbitos académicos e industriales.

Aunque el software desarrollado resulta ser muy efectivo para dar solución a la mayorı́a de problemas,

6
aun tiene muchas limitaciones con respecto a sistemas que cuentan con dispositivos mas complejos como
cambiadores de taps.

También podría gustarte