Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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.
3
(a) 30 barras Pypower (b) 30 barras software
Figura 3. Comparación de resultados para sistema de 30 barras.
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.
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.