Upload
carlos-vergara-branje
View
112
Download
1
Embed Size (px)
DESCRIPTION
Resolución se un problema de SEP de 3 barras usando el APMonitor
Citation preview
Sistemas Eléctricos de Potencia A
ELI-240
TRABAJO DE INVESTIGACIÓN
DESPACHO ECONÓMICO EN APMonitor Y IPOPT
Profesor: Víctor Hinojosa Mateus
Alumno: Carlos Vergara Branje
Fecha: 16/06/2014
Contenidos
Contenidos.........................................................................................................................................2
Introducción.......................................................................................................................................3
Problema para análisis.......................................................................................................................4
Planteamiento teórico.......................................................................................................................5
Resolución y optimización del sistema...............................................................................................7
Matpower......................................................................................................................................7
IPOPT..............................................................................................................................................9
APMonitor....................................................................................................................................13
Análisis y conclusiones.....................................................................................................................20
Apéndice..........................................................................................................................................21
Solución gráfica aproximada (Matlab)..........................................................................................21
Referencias y material adicional......................................................................................................23
Introducción
En cualquier sistema, sea mecánico, eléctrico, matemático, etc... se presentan problemas de optimización.
Hay muchos softwares y lenguajes computacionales que se pueden ocupar como herramienta para resolver este tipo de problemas y que cumplen esta función, siendo uno de los más utilizados el Matlab.
En este trabajo se utilizarán dos softwares/lenguajes enfocados a resolver optimización para despacho económico en sistemas eléctricos de potencia, el APMonitor y el IPOPT.
El objetivo de esto es presentar dos softwares que son capaces de resolver problemas no-lineales, de ecuaciones diferenciales y algebraicas, utilizando 'solvers' poderosos entregando una optimización en tiempo real, con simulaciones dinámicas y un control no lineal predictivo.
Problema para análisis
En este caso, se analizará el siguiente SEP de 3 barras:
Datos barras:
Barra Tipo Demanda [MW]Potencia
generación mínima [MW]
Potencia generación
máxima [MW]CVP [$/h]
1 PV 0 20 200 0.05 P12+1.6 P1+25
2 PV 0 40 300 0.02 P22+1.8P2+20
3 Slack 350 40 300 0.04 P32+1.4 P3+15
Datos líneas:
Líneas de transmisión Reactancia de línea [Ω] Límite térmico [MW]L/T 1-2 0.0576 150L/T 1-3 0.1700 150L/T 2-3 0.0920 150
Planteamiento teórico
Se analiza el sistema sabiendo la siguiente relación:
[Potenci alínea ]=[PTDF ] [Potenci abarra ]
Por lo que se utilizando Matpower se obtiene la matriz de sensibilidad del sistema (PTDF), dada por:
[PTDF ]=[0.5319 −0.2879 00.4681 0.2879 00.5319 0.7121 0]
Como observación, la columna 3 es cero, ya que corresponde a la barra 3, que es una barra slack (referencia).
Por lo tanto, matricialmente la potencia de línea se obtiene por:
[P1−2P1−3P2−3
]=[0.5319 −0.2879 00.4681 0.2879 00.5319 0.7121 0] [Pneta1Pneta2
Pneta3]
Donde la matriz de potencias netas de barra viene dada por:
[Pneta1Pneta2Pneta3
]=[ Pg1Pg2
Pg3−D ]
Por lo que el sistema de ecuaciones por línea queda:
P1−2=0.5319 Pg1−0.2879Pg2P1−3=0.4681 Pg1+0.2879 Pg2P2−3=0.5319 Pg1+0.7121Pg2
Pero se tiene la restricción del límite térmico por lo que:
−150≤P1−2≤150−150≤P1−3≤150−150≤P2−3≤150
Además se tiene la restricción por generación que viene dada por:
[204040]≤[Pg1Pg2Pg3]≤ [200300300 ]Además:
Pg1+Pg2+Pg3=Demanda=350[MW ]
Dado lo anterior, lo que se quiere es optimizar el despacho económico, por lo que se busca minimizar el costo total de generación, que viene dado por:
Cost ooperación=0.05 Pg12 +0.02Pg2
2 +0.04 Pg32 +1.6 Pg1+1.8 Pg2+1.4 Pg3+60[ $/h]
Teniendo definidas las constantes, parámetros, variables, restricciones y ecuaciones, se procede a analizar usando software para definir el caso óptimo.
Resolución y optimización del sistema
Matpower
Este programa se utilizará para comparar y validar los resultados que entregarán los nuevos métodos que se analizarán en este trabajo de investigación.
Creando el archivo 'case3.m' se ingresan los datos del problema, el cual al cargarse como mpc, se realiza un rundcopf, entregando los siguientes resultados relevantes a la solución buscada (Costo operacional, potencias de generación, potencias de líneas y limitación térmica de línea):
Estos datos se tomarán como válidos con el que se hará la comparación con los siguientes métodos a utilizar.
IPOPT
IPOPT o "Interior Point Optimizer" es un solver (librería de software) de programación de sistemas no lineales de larga escala (NLP).
Dado que es un solver, se puede aplicar en diversas interfaces de programación, pero está más que nada enfocado para sistemas operativos Linux y Mac, ya que su lenguaje base está en Fortran, aunque también soporta windows en la interfaz de Matlab.
Es por esto que el problema se planteará en esta interfaz.
Con Matlab, primero es necesario agregar la librería (distribución gratuita en la página oficial) y el directorio del cual se está trabajando.
La estructura para resolver el problema usando IPOPT es ingresar:
Mínimos y máximos de las variables Mínimos y máximos de las restricciones Punto de partida de las variables
Para esto es necesario dejar todas las restricciones y ecuaciones en función de las variables que el optimizador adaptará para encontrar el mínimo.
Luego es necesario calcular el Hessiano de la función objetivo (función a optimizar) y el Jacobiano y Hessiano de cada una de las restricciones, ya que a partir de esos parámetros, la librería itera hasta encontrar la solución.
Con esto, nuestra función objetivo a minimizar es el costo de operación, por lo que el hessiano sería:
Hessian ocop=[0.1 0 00 0.04 00 0 0.08]
Luego el jacobiano de todas las restricciones viene dado por:
Jacobianorestricciones=[0.53190.46810.53191
−0.28790.28790.71211
0001]
Y por último el hessiano de cada restricción, dado que son de 1er orden, son matrices zero, de dimensiones 3 x3.
Con esto, se ingresa el problema al software, donde x (1 ), x (2) y x (3) corresponden a las potencias de generadores 1, 2 y 3, respectivamente.
El código programado queda de la siguiente manera, donde se comenta cada paso:
Esto entrega el siguiente output:
Lo que se interpreta como:
Costo deoperación=1.965460297975784 ∙103 [$ /h ] Pg1=73.0721595165932[MW ] Pg2=156.0636425405402[MW ] Pg3=120.8641979428666[MW ]
APMonitor
APMonitor o Advanced Process Monitor es un lenguaje para modelar ecuaciones diferenciales y algebraicas (DAE).
Permite resolver y describir representaciones de sistemas físicos en modelos implícitos de DAE.
Por esto se utiliza en problemas a gran escala, ya que permite la solución de simulaciones dinámicas, estimando dado un control no lineal.
La gracia del APMonitor no es resolver directamente el problema, sino llamar los 'solvers' externos, apropiados al problema, por lo que es necesaria la conexión vía internet a los servidores (APM permite el uso de IPOPT; optimizador de punto interno como solver).
Su estructura principal de programación se basa en definir 5 puntos importantes:
Constantes: valores que no cambian Parámetros del modelo: parámetros que pueden ser cambiados por el usuario o por datos
de entrada, pero no por el optimizador Variables: se declaran variables con algún valor, pero que pueden ser cambiadas por el
optimizador (generalmente se ingresan rangos a estas variables, en las que pueden variar) Variables intermedias: variables que son determinadas por igualdades (ecuaciones) Ecuaciones: se presentan las igualdades y condiciones (restricciones) de las variables del
problema
Aunque si es necesario se pueden definir conexiones directas entre variables.
Dado lo anterior se crea un archivo con extensión 'apm' donde se programa el sistema a analizar según el siguiente código (se puede editar en cualquier editor de textos. Comentarios en verde, para explicar la estructura):
Este código puede correrse usando el editor oficial de APM o la interfaz vía web. En este caso se usará la interfaz online.
Esto arroja el siguiente output:
Cuyos resultados de solución entregados son:
APMonitor tiene la opción de ser trabajado con la interfaz de Matlab, lo que permite hacer un análisis en la misma consola de Matlab, usando los solvers de los servidores de APM, por lo que se hará un análisis paralelo usando este software.
Primero es necesario incluir la interfaz de APM en la librería de Matlab, idealmente en el directorio de donde se está trabajando y está el código de extensión .apm (descargada gratis por la página oficial de APMonitor).
Luego, se desarrolla el siguiente código en Matlab, el cual tiene en sus comentarios explicado qué significa cada elemento:
Con esto, la variable z contiene todos los resultados encontrados, los cuales se pueden rescatar usando la estructura z.variable. Por ejemplo para el código programado, un display de datos sería:
Lo que entrega el siguiente display:
Como se aprecia, hay que usar el mismo nombre de las variables usadas en el código en .apm.
Esta interfaz en Matlab permite trabajar y manipular mejor los datos, ya que quedan guardados en el Workspace, por lo que se pueden graficar, llenar tablas excel, etc.....
También se puede editar el archivo de extensión .apm, por lo que es de fácil uso para análisis en varias contingencias o nuevas condiciones/restricciones de operación.
Como se observa, entrega el mismo solver output que la interfaz online del APM, pero a diferencia de él, los resultados entregados los entrega según el display que uno programa para que aparezcan.
También usa el mismo solver, el APOPT (Advance Process OPTimizer).
Análisis y conclusiones
Se crea la siguiente tabla, la cual compara los 3 métodos utilizados en la investigación:
Método Tiempo de solución [s]
Costo de operación [$/h]
Generación 1 [MW]
Generación 2 [MW]
Generación 3 [MW]
Matpower 0.1400 1965.450 72.3000 156.6300 121.0700IPOPT solver 0.0684 1965.460 73.0722 156.0636 120.8642APMonitor 0.0133 1965.422 72.2971 156.6426 121.0603
Como se observa, el APMonitor es un método súper rápido, el cual permite el uso de la interfaz de Matlab, por lo que el proceso de manipulación de datos se simplifica mucho.
De todas formas puede llegar a ser extenso el ingreso de datos, pero aprovechando la capacidad de interactuar vía Matlab, se pueden crear funciones para editar el código de extensión .apm por lo que mitigaría este problema.
Sus resultados al poseer más cifras significativas pueden considerarse como más exactos que lo entregado por Matpower, ya que tiene menor error de arrastre por aproximación. De todas formas, la diferencia con Matpower no es significativa.
Aunque el solver IPOPT sea más rápido que el Matpower, difiere mucho de los resultados que se consideran "reales", pero de todas formas el error relativo no supera el 2%, por lo que puede ser una buena alternativa, si es que el sistema es más complejo y se quiera una solución aproximada de un problema de optimización.
De todas formas, IPOPT al tener la posibilidad de ser ejecutado con la interfaz de Matlab podría facilitar el proceso de ingreso de datos, ya que se pueden automatizar los calculos programando algún editor de texto o funciones, para importarlas dentro del código.
El problema de este método es que al tener como input solo las variables del sistema, no se puede hacer un análisis más extenso de los resultados (no hay datos de potencias de líneas, etc...).
Apéndice
Solución gráfica aproximada (Matlab)
Los datos ingresados para obtener la gráfica suponen una idea aproximada los flujos de potencia por la líneas y de potencias generadas por barra.
Dado que la barra 3 es slack (referencia), se buscará interceptar gráficamente, por medio del uso de contour plot las potencias de línea y de generadores 1 y 2, con el fin de encontrar el mínimo valor de Costo de operación.
El código programado es el siguiente:
Haciendo el contour plot de COP en función de Potencia 1 y Potencia 2.
Se le agrega las potencias de línea, para buscar la intersección (operación real del SEP):
Con esto se obtiene el siguiente gráfico:
1960
1970
1970
1980
19801990
1990
2000
Análisis gráfico de optimización
Potencia Generador 1
Pot
enci
a G
ener
ador
2
-6.7
-6.7
-6.6
-6.6
-6.5
-6.5
-6.4
-6.4
76
76
77
77
78
78
79
79
148
148
149
149
150
150
151
65 66 67 68 69 70 71 72 73 74 75150
151
152
153
154
155
156
157
158
159
160
Costo de operación [$/h]
Potencia línea 1-2 [MW]
Potencia línea 1-3 [MW]
Potencia línea 2-3 [MW]
Proyectando curvas sobre el gráfico, la operación del SEP se da para:
Potencia de línea 1-2 entre −6.6 [MW ] y −6.7 [MW ] Potencia de línea 1-3 entre 78[MW ] y 79[MW ] Potencia de línea 2-3 entre 149[MW ] y 150[MW ] Potencia generador 1 entre 72[MW ] y 73[MW ] Potencia generador 2 entre 156 [MW ] y 157 [MW ]
Por lo que el Costo de operación mínimo se encuentra entre 1960[ $/h] y 1970[ $/h]
Respecto a la potencia 3, correspondiente al generador de la barra slack, su valor se obtiene:
Pg3=350−Pg1−Pg2
Referencias y material adicional
Power system, analysis and design - Glover - Teoría de Matriz de Sensibilidad PTDF y su obtención
http://www.pserc.cornell.edu/matpower/ - Descarga y manual Matpower http://www.ai7.uni-bayreuth.de/test_problem_coll.pdf - Problemas de optimización con
resultado (útiles para practicar programación con IPOPT y APMonitor) http://www.cs.ubc.ca/~pcarbo/ipopt-for-matlab/ - ejemplos 38, 51 y 71 del documento
anterior de problemas resueltos, en código IPOPT con interfaz en Matlab http://notepad-plus-plus.org/ - Descarga de Notepad++, editor de textos de multi
lenguaje http://apmonitor.com/ - Tutoriales y ejemplos de APMonitor http://apmonitor.com/online/view_pass.php - interfaz online para correr programas de
extensión .apm. También tiene ejemplos de códigos preprogramados.