programación de la operación de sistemas de potencia con
TRANSCRIPT
Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización
estocásticas
Luis Antonio Rivera Pinzón
Universidad Nacional de Colombia
Facultad de ingeniería, Departamento de ingeniería eléctrica y electrónica
Bogotá D.C, Colombia
2020
Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización
estocásticas
Luis Antonio Rivera Pinzón
Trabajo final de maestría presentado como requisito parcial para optar al título de:
Magister en Ingeniería Eléctrica
Director:
Sergio Raúl Rivera Rodríguez, Ph.D.
Línea de Investigación:
Análisis de Sistemas de Potencia
Universidad Nacional de Colombia
Facultad de ingeniería, Departamento de ingeniería eléctrica y electrónica
Bogotá D.C, Colombia
2020
Agradecimientos
A mi familia, amigos y a todos los que influyeron a lo largo de mi vida para convertirme en
la persona que soy hoy, a Natalia por su apoyo, comprensión y paciencia durante estos
meses de trabajo.
Agradecimiento especial al profesor Sergio Raúl Rivera Rodríguez Ph.D., por su asesoría
y recomendaciones para la realización de este trabajo final de maestría.
Contenido VI
Resumen
Los sistemas de potencia modernos tienen un alto componente de incertidumbre en la
disponibilidad de potencia, debido a la entrada masiva de energías renovables durante los
últimos años y a la variabilidad de las fuentes primarias de estas tecnologías. Lo anterior,
sumado a los retos energéticos actuales que exigen que se aprovechen al máximo los
recursos naturales disponibles, hace que la programación de la operación de sistemas de
potencia represente un tema de interés para académicos y empresas del sector eléctrico.
De esta manera, operar sistemas de potencia bajo estándares de eficiencia y economía
requiere técnicas de optimización sofisticadas y el continuo desarrollo de herramientas
para hacerlo. Bajo esta consideración, en este trabajo final de maestría se presentó una
herramienta de optimización híbrida que combina algoritmos estocásticos y analíticos para
programar la operación de sistemas de potencia, minimizando los costos totales de
generación. La herramienta de optimización se probó en el sistema de 57 barras de la IEEE
incorporando generación solar. Los resultados obtenidos se validaron comparándolos con
los del algoritmo metaheurístico de enjambre de partículas (PSO), una técnica reconocida
para minimizar funciones no convexas y multidimensionales, como la de este tipo de
problemas. Los costos de generación solar se modelaron a partir del método de costos de
incertidumbre y las simulaciones se realizaron en MATLAB. Los resultados muestran que
los algoritmos híbridos tienen un gran potencial para la programación de la operación de
sistemas de potencia modernos, ya que permiten determinar puntos de operación
eficientes con baja carga computacional y tiempos de simulación razonables.
Palabras clave: Despacho óptimo, optimización, algoritmos estocásticos, algoritmos
híbridos, generadores solares.
Introducción VII
Abstract
Modern power systems are highly uncertain with respect to power availability due to the
recent emergence of renewable energy sources and the variability of the primary sources
of these technologies. Those challenges, and the need to take full advantage of the natural
resources available, make optimal scheduling of power systems relevant to both academics
and companies in the electricity sector. Operating power systems under efficiency and cost-
effective standards requires sophisticated optimization techniques. In this master’s project,
I present a hybrid optimization tool that combines stochastic and analytical algorithms to
program optimal scheduling by minimizing the total costs of generation. This optimization
tool was tested in the IEEE 57 Bus Test Case, incorporating solar generation. Results were
validated by comparing them with those of the particle swarm metaheuristic algorithm
(PSO), a common technique used to minimize non-convex and multidimensional functions,
such as those involved in the study problem. Solar generation costs were modeled using
the uncertainty cost method and simulations were performed using MATLAB. The results
show that hybrid algorithms have great potential for programming the operation of modern
power systems, given that they allow the determination of efficient operating points through
efficient computational simulations.
Keywords: Optimal scheduling, optimization techniques, stochastic algorithms,
solar generator
Contenido VIII
Contenido
Pág.
Lista de figuras ............................................................................................................... X
Lista de tablas ................................................................................................................ XI
Lista de símbolos, subíndices y abreviaturas ............................................................ XII
Introducción .................................................................................................................... 1 Objetivo general ............................................................................................................ 3
Objetivos específicos ................................................................................................. 3
1. Programación de la operación de sistemas de potencia ...................................... 4 1.1 Costos de generación ......................................................................................... 8
1.1.1 Generadores convencionales .......................................................................... 8 1.1.2 Generadores solares ....................................................................................... 9
1.2 Pérdidas de trasmisión de energía .................................................................... 13 1.2.1 Los coeficientes de pérdidas ......................................................................... 14
1.3 Algoritmos de optimización ............................................................................... 17 1.3.1 Algoritmos de optimización estocásticos ....................................................... 17 1.3.2 Algoritmo del gradiente descendente ............................................................ 21
2. Programación de la operación de sistemas de potencia empleando el algoritmo de recocido simulado ................................................................................................... 24
2.1 Función de costo de generadores convencionales ............................................ 24 2.2 Función de costo del generador solar ............................................................... 25 2.3 Restricciones del sistema ................................................................................. 25 2.4 Parámetros del algoritmo de recocido simulado ................................................ 26
2.4.1 Función del coeficiente de temperatura 𝜽𝒏 ................................................... 26 2.4.2 Generador de puntos aleatorios .................................................................... 28 2.4.3 Otros parámetros del algoritmo de recocido simulado ................................... 28
2.5 Resultados con el algoritmo de recocido simulado ............................................ 29 2.5.1 Prueba 1........................................................................................................ 29 2.5.2 Prueba 2........................................................................................................ 30 2.5.3 Prueba 3........................................................................................................ 31 2.5.4 Prueba 4........................................................................................................ 33 2.5.5 Prueba 5........................................................................................................ 34 2.5.6 Prueba 6........................................................................................................ 35 2.5.7 Prueba 7........................................................................................................ 37 2.5.8 Prueba 8........................................................................................................ 38
Introducción IX
3. Programación de la operación de sistemas de potencia empleando el algoritmo híbrido .......................................................................................................................... 43
3.1 Algoritmo híbrido .............................................................................................. 43 3.2 Comparación de los algoritmos estocástico e híbrido ....................................... 45 3.3 Implementación del algoritmo híbrido en el sistema de pruebas de 57 barras de la IEEE........................................................................................................................ 47
3.3.1 Sistema de 57 barras de la IEEE ................................................................... 47 3.3.2 Consideración de pérdidas de transmisión con técnicas de optimización analíticas .................................................................................................................. 50 3.3.3 Resultados de la implementación del algoritmo híbrido en el sistema de pruebas de la IEEE .................................................................................................. 51
3.4 Comparación de los algoritmos híbrido y de enjambre de partículas (PSO) ..... 52
4. Conclusiones y recomendaciones ........................................................................ 55 4.1 Conclusiones generales ................................................................................... 55 4.2 Conclusiones capítulo 2 ................................................................................... 56 4.3 Conclusiones capítulo 3 ................................................................................... 57 4.4 Recomendaciones y trabajos futuros................................................................ 57
A. Anexo: Código en MATLAB del algoritmo de recocido simulado ...................... 59
B. Anexo: Código en MATLAB para el algoritmo híbrido ........................................ 63
Bibliografía .................................................................................................................... 81
Contenido X
Lista de figuras
Pág.
Figura 1-1: Programación de la operación de sistemas de potencia [18] .................... 5
Figura 1-2: Balance generación y demanda [21] ........................................................ 7
Figura 1-3: Costos de generación convencionales ..................................................... 9
Figura 1-4: Algoritmo el gradiente descendente [4] .................................................. 21
Figura 2-1: Resultados pruebas 1 ............................................................................ 30
Figura 2-2: Resultados pruebas 2 ............................................................................ 31
Figura 2-3: Resultados pruebas 3 ............................................................................ 32
Figura 2-4: Resultados pruebas 4 ........................................................................... 33
Figura 2-5: Resultados pruebas 5 ........................................................................... 35
Figura 2-6: Resultados pruebas 6 ............................................................................ 36
Figura 2-7: Resultados pruebas 7 ............................................................................ 38
Figura 2-8: Resultados pruebas 8 ............................................................................ 39
Figura 2-9: Resultados agrupados del algoritmo de recocido simulado .................... 40
Figura 2-10: Tiempos de ejecución agrupados algoritmos de recocido simulado ....... 40
Figura 3-1: Resultado de prueba algoritmo híbrido ................................................... 46
Figura 3-2: Sistema de prueba de 57 barras de la IEEE [37] .................................... 48
Figura 3-3: Resultados validación algoritmo hibrido ................................................. 53
Contenido XI
Lista de tablas
Pág.
Tabla 2-1: Parámetros del generador fotovoltaico ...................................................... 25
Tabla 2-2: Resultados pruebas 1 ............................................................................... 29
Tabla 2-3: Resultados pruebas 2 ............................................................................... 30
Tabla 2-4: Resultados pruebas 3 ............................................................................... 32
Tabla 2-5: Resultados pruebas 4 ............................................................................... 33
Tabla 2-6: Resultados pruebas 5 ............................................................................... 34
Tabla 2-7: Resultados pruebas 6 ............................................................................... 36
Tabla 2-8: Resultados pruebas 7 ............................................................................... 37
Tabla 2-9: Resultados pruebas 8 ............................................................................... 39
Tabla 3-1: Resultados prueba algoritmo híbrido ......................................................... 46
Tabla 3-2: Generadores del sistema de prueba de 57 barras de la IEEE ................... 48
Tabla 3-3: Parámetros del generador 3 ...................................................................... 49
Tabla 3-4: Resultados de la programación de la operación del sistema de 57 barra de
la IEEE con el algoritmo híbrido ..................................................................................... 52
Tabla 3-5: Resultados validación algoritmo híbrido .................................................... 53
Contenido XII
Lista de símbolos, subíndices y abreviaturas
Listado de símbolos
Símbolo Término Unidad SI Definición
Bmn, Bm0, B00 Coeficientes de Kron EC. (1-19)
Listado de subíndices
Subíndice Término
av Potencia disponible generador solar c Generador convencional D Demanda L Pérdidas s Potencia programada PV Generador fotovoltaico
Listado de abreviaturas
Abreviatura Término
DEEPSO Differential Evolutionary Particle Swarm Optimization IEEE Institute of Electrical and Electronics Engineers PSO Particle Swarm Optimization SA Simulated Annealing
Introducción
Programar la operación de un sistema de potencia consiste en determinar los parámetros
operativos de sus alternadores para satisfacer la demanda, cumpliendo las restricciones
físicas del sistema y buscando minimizar los costos de producción de energía [1]. Esta
actividad se debe desarrollar garantizando los principios de confiabilidad, seguridad y
calidad en la prestación del servicio de energía eléctrica, mediante la utilización de los
recursos disponibles en forma económica y conveniente para los usuarios [2]. Operar un
sistema de potencia eficientemente permite el aprovechamiento efectivo de la
infraestructura existente, disminuye las tarifas a los usuarios finales y fomenta el
crecimiento económico al reducir los costos de los procesos industriales que tienen altas
demandas energéticas.
La programación de la operación de sistemas de potencia ha sido un tema de interés para
operadores, entes gubernamentales y para la comunidad científica desde hace varios
años[3], inicialmente se recurrió a algoritmos de optimización analíticos para realizar esta
tarea, en [4] se propone emplear el método del gradiente para programar la operación de
sistemas de potencia, en [5] se usan los multiplicadores de Lagrange para encontrar el
costo mínimo de generación en un problema de despacho óptimo, mientras que en [6] se
emplea un método basado en la segunda derivada para abordar un ejercicio similar. Las
técnicas de optimización clásicas mostraron buenos resultados porque permiten obtener
mínimos globales de manera precisa, sin embargo, presentan dificultades para resolver
problemas multidimensionales, como los de los sistemas de potencia modernos y suelen
ser de convergencia muy lenta. Trabajos más recientes en la materia emplean técnicas de
optimización heurísticas, en [7] se recurre a los algoritmos genéticos para programar la
operación de sistemas de potencia considerando generadores eólicos y dispositivos de
almacenamiento de energía, en [8] se emplea el método de optimización de enjambre de
partículas (PSO) para resolver un problema similar, mientras que en [9] se valen del
algoritmo DEEPSO (una combinación del método de enjambre de partículas y la evolución
diferencial) para programar la operación de un sistema de generación distribuida,
2 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
considerando fuentes renovables. Las técnicas de optimización heurísticas son de más
rápida convergencia que los métodos tradicionales, además han mostrado ser útiles en
problemas multidimensionales y cuando la función objetivo es no convexa, por lo que se
adaptan muy bien a problemas de despacho óptimo de energía, sin embargo, aproximan
la función objetivo para su ejecución y empleándolas no es posible llegar al mínimo global
real sino a un valor próximo a éste.
Otro tipo de técnicas empleadas para resolver problemas de optimización son los
algoritmos estocásticos, su solución se basa en la evaluación de la función objetivo en
diferentes puntos generados aleatoriamente[10]. Representan una mejora con respecto a
los métodos clásicos porque realizan una exploración completa del espacio de las posibles
soluciones, por lo que no se limitan a encontrar mínimos locales. Así mismo, presentan
una ventaja frente a los algoritmos heurísticos porque trabajan con valores exactos de la
función objetivo, lo que les permite llegar a puntos óptimos más precisos. En la solución
de problemas de ingeniería eléctrica, han sido empleadas técnicas estocásticas con
buenos resultados como en [11] y [12] donde se trabaja el compromiso de unidades de
generación o en [13] donde se usan para programar la operación de sistemas de potencia
con generadores eólicos y térmicos, sin embargo, estos algoritmos tienen dificultades en
problemas de múltiples dimensiones, por lo que en esos casos resulta conveniente
combinarlos con otras técnicas para mejorar significativamente su rendimiento[14], lo que
se conoce como algoritmo híbrido[3].
En este trabajo final de maestría se construyó y se probó un algoritmo híbrido en la
programación de la operación de un sistema de potencia con generación solar, esta técnica
de optimización combina los algoritmos clásicos del gradiente descendente y estocástico
de recocido simulado (simulated annealing). En el primer capítulo se presenta el
fundamento teórico del trabajo realizado, posteriormente se muestra la adaptación del
algoritmo de recocido simulado en la programación de la operación de sistemas de
potencia, en el tercer capítulo se detalla la construcción del algoritmo híbrido, así como el
procedimiento empleado para su aplicación en el tema de estudio y la evaluación de su
desempeño comparándolo con la técnica de optimización heurística de enjambre de
partículas PSO, finalmente se presentan las conclusiones y recomendaciones del trabajo
realizado. La adaptación del algoritmo de recocido simulado del capítulo dos se realizó en
un sistema con dos generadores convencionales y uno solar, mientras que en el capítulo
Introducción 3
tres se empleó el algoritmo híbrido en la programación de la operación del sistema de
pruebas de 57 barras de la IEEE, incluyendo un generador solar. El modelamiento de los
generadores solares se realizó por medio de los costos de incertidumbre y para las
pérdidas de transmisión se consideró el método de los coeficientes de Kronn. Las
evaluaciones se hicieron empleando el software MATLAB con licencia de la Universidad
Nacional de Colombia y con la herramienta MATPOWER[15].
Para la ejecución de este trabajo final se plantearon los siguientes objetivos.
Objetivo general
Diseñar un algoritmo de optimización híbrido que combine métodos determinísticos con
técnicas estocásticas y evaluarlo en la programación de la operación de un sistema de
potencia de prueba con generación solar.
Objetivos específicos
Para cumplir el objetivo general propuesto, se plantean los siguientes objetivos
específicos:
▪ Construir un algoritmo de optimización basado en la combinación de la generación
aleatoria de puntos de juicio y un método determinístico tradicional, para su
implementación en la programación de la operación de sistemas de potencia.
▪ Implementar el algoritmo de optimización híbrido desarrollado en la programación de
la operación del sistema de 57 nodos de la IEEE, incluyendo al menos un generador
solar.
▪ Validar el rendimiento del algoritmo híbrido construido comparándolo con la técnica de
optimización de enjambre de partículas (PSO) en el caso de estudio, teniendo en
cuenta parámetros como el mínimo encontrado, el tiempo de ejecución y la carga
computacional requerida para la solución.
1. Programación de la operación de sistemas de potencia
En las últimas décadas del siglo XX se inició un proceso de descentralización de los
mercados eléctricos a nivel mundial del que Colombia fue partícipe, anteriormente, se
venía trabajando con un modelo constituido por empresas estatales de operación
sectorizada que se encargaban de toda la cadena de suministro, en términos generales se
prestaba un servicio de baja calidad, con cobertura precaria en algunas zonas y con altos
costos que en muchos casos se transferían a la deuda pública, la situación anterior alcanzó
su punto más crítico en el país durante la crisis energética de 1991 y 1992, a partir de
entonces se planteó la necesidad de alinear el sistema eléctrico colombiano con las
tendencias mundiales en lo que respecta al libre mercado [16]. La descentralización de los
mercados eléctricos del mundo y su funcionamiento desde una lógica empresarial hizo que
operar los sistemas eléctricos en puntos de alta eficiencia cobrara un papel protagónico,
por una parte porque bajo este escenario las empresas del sector deben recuperar su
inversión y obtener ganancias, además debido a que la nueva legislación reestructuró la
figura del operador del sistema eléctrico (XM en el caso colombiano), quien pasó a ser el
responsable de velar por la operación segura y eficiente del sistema. Operar un sistema
eléctrico de manera eficiente beneficia tanto a las empresas involucradas en el negocio,
porque les garantiza utilidades, como a los usuarios finales quienes como resultado
acceden una tarifa más baja por la prestación del servicio, lo que se traduce en prosperidad
económica para los países debido al vínculo directo que existe entre electricidad y
crecimiento económico [16].
La programación de la operación de sistemas de potencia tiene como objetivo satisfacer
la demanda optimizando aspectos económicos y de seguridad predeterminados,
cumpliendo ciertas restricciones físicas, operativas y de disponibilidad de recursos
Capítulo 1 5
primarios de generación[17]. Este tema ha sido abordado históricamente desde diferentes
enfoques [4][6][5], tal como se muestra en la Figura 1-1.
Figura 1-1: Programación de la operación de sistemas de potencia [18]
Los enfoques 1 y 2 se relacionan de distintas maneras con aspectos económicos de la
operación de sistemas de potencia, mientras que el enfoque 3 se vincula con los
parámetros de control, dejando el aspecto económico de lado. Hoy en día estos sistemas
se están transformando aceleradamente, la entrada masiva de generadores renovables y
vehículos eléctricos plantean un nuevo desafío a corto y mediano plazo para su
programación y operación, debido a que introducen un alto componente aleatorio al
ejercicio, esto ha sido abordado en publicaciones científicas recientes, como en [19] donde
se usa el algoritmo de punto interior para el despacho óptimo en microredes con
generadores renovables, en [7] donde se usan algoritmos genéticos en un problema similar
y en [9] y [20] en los cuales se emplean algoritmos heurísticos novedosos para la
programación de la operación de sistemas de potencia, sin embargo, continua la búsqueda
de alternativas para mejorar el rendimiento del proceso.
En este trabajo final de maestría se aborda la programación de la operación de sistemas
de potencia desde el enfoque 1 presentado anteriormente, el problema tratado se plantea
entonces, como un ejercicio de optimización en el que se debe minimizar el costo total de
operación del sistema de potencia estudiado, como se muestra en la ecuación (1-1).
Operación económica de sistemas de potencia
1). Despacho óptimo de potencia activa - reactiva minimizando costos de
producción
2.) Despacho óptimo de potencia reactiva
minimizando pérdidas en el sistema
3.) Despacho óptimo de potencia minimizando
desviaciones de un estado de operación cálculado
previamente.
6 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
min(𝐶𝑇𝑜𝑡𝑎𝑙) = min(∑𝐶𝑐,𝑖(𝑃𝑐,𝑠,𝑖)
𝑁𝑐
𝑖=1
+∑𝐶𝑃𝑉,𝑖(𝑊𝑃𝑉,𝑠,𝑖)
𝑁𝑃𝑉
𝑖=1
) (1-1)
Donde:
𝑁𝑐: Es el número de generadores convencionales conectados al sistema.
𝑁𝑃𝑉: Es el número de generadores fotovoltaicos del sistema.
𝑃𝑐,𝑠,𝑖: Esla potencia programada en el generador convencional 𝑖.
𝑊𝑃𝑉,𝑠,𝑖: Esla potencia programada en el generador fotovoltaico 𝑖.
𝐶𝑐,𝑖: Es la función de costo del generador fotovoltaico 𝑖.
𝐶𝑃𝑉,𝑢,𝑖: Es la función de costos del generador fotovoltaico 𝑖.
La ecuación (1-1) conocida como función objetivo, se debe resolver cumpliendo algunas
limitaciones físicas del sistema de potencia, que se muestran a continuación.
▪ Restricciones de balance o igualdad
Como se mencionó anteriormente, el principal objetivo de los sistemas de potencia es
suplir su demanda, lo que implica que la potencia generada debe ser igual a la potencia
demandada más las pérdidas de energía en el sistema, a esto se le conoce como la
restricción de balance en los problemas de programación de la operación de sistemas de
potencia y se expresa matemáticamente mediante la ecuación (1-2).
𝑃𝐷 + 𝑃𝐿 − (∑𝑃𝑐,𝑠,𝑖
𝑁𝑐
𝑖=1
+∑𝑊𝑃𝑉,𝑠,𝑖
𝑁𝑃𝑉
𝑖=1
) = 0 (1-2)
Donde:
𝑃𝐷: Es la potencia demandada en el sistema.
𝑃𝐿: Es la potencia de pérdidas en el sistema
𝑁𝑐: Es el número de generadores convencionales conectados al sistema.
𝑁𝑃𝑉: Es el número de generadores fotovoltaicos del sistema.
𝑃𝑐,𝑠,𝑖: Esla potencia programada en el generador convencional 𝑖.
𝑊𝑃𝑉,𝑠,𝑖: Esla potencia programada en el generador fotovoltaico 𝑖.
Capítulo 1 7
Vale la pena aclarar que el balance entre las potencias demandada y consumida también
garantiza la estabilidad de los sistemas de potencia, debido a que existe un vínculo directo
entre la potencia activa y la frecuencia en los sistemas como se ilustra en la Figura 1-2.
Figura 1-2: Balance generación y demanda [21]
Cuando la potencia de demanda es superior a la potencia generada la frecuencia se tiende
a caer, mientras que cuando la potencia disponible es más grande que la consumida la
frecuencia tiende a incrementarse.
▪ Restricciones de desigualdad
Las restricciones de desigualdad en la programación de la operación de sistemas de
potencia están ligadas a los límites operativos de los generadores y se expresan
matemáticamente como se muestra en las ecuaciones (1-3) y (1-4).
0 𝑀𝑊 ≤ 𝑃𝑐,𝑠,𝑖 ≤ 𝑃𝑐,𝑠,𝑖 𝑀𝐴𝑋𝑀𝑊 (1-3)
0 𝑀𝑊 ≤ 𝑊𝑃𝑉,𝑠,𝑖 ≤ 𝑊𝑃𝑉,𝑠,𝑖 𝑀𝐴𝑋𝑀𝑊 (1-4)
Donde:
𝑃𝑐,𝑠,𝑖: Esla potencia programada en el generador convencional 𝑖.
𝑊𝑃𝑉,𝑠,𝑖: Esla potencia programada en el generador fotovoltaico 𝑖.
𝑃𝑐,𝑠,𝑖 𝑀𝐴𝑋: Esla potencia nominal del generador convencional 𝑖.
8 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
𝑊𝑃𝑉,𝑠,𝑖 𝑀𝐴𝑋: Esla potencia nominal del generador fotovoltaico 𝑖.
Los límites superiores de las restricciones de desigualdad corresponden a la potencia
nominal del generador y quedan definidos durante su proceso constructivo, por su parte el
límite inferior se establece para evitar que el generador demande energía de la red y se
convierta en un elemento pasivo.
A continuación, se presentan los fundamentos teóricos de la construcción del algoritmo
híbrido y de la función de costo total de generación del sistema considerados en este
trabajo.
1.1 Costos de generación
En esta sección se abordan los modelos matemáticos que se tuvieron en cuenta para
considerar los costos de generación de plantas convencionales y solares.
La ecuación que describe los costos de generación es particular para cada central, porque
incluye los gastos de adquisición de la fuente primaria de energía (cuando aplica), gastos
de operación y mantenimiento, retorno de inversión, utilidades, entre otros. Sin embargo,
se tienen modelos generales de acuerdo con la tecnología de la planta de generación como
se muestra a continuación.
1.1.1 Generadores convencionales
Los costos asociados a la generación en plantas convencionales se han modelado
tradicionalmente con una función cuadrática de la potencia generada[22], como la que se
muestra en la Figura 1-3 y en la ecuación (1-5).
Capítulo 1 9
Figura 1-3: Costos de generación convencionales
𝐶𝑐,𝑖 = 𝛼𝑃𝑐,𝑠,𝑖2 + 𝛽𝑃𝑐,𝑠,𝑖 + 𝛾 (1-5)
Donde:
𝐶𝑐,𝑖: Son los costos totales de generación del generador convencional 𝑖.
𝑃𝑐,𝑠,𝑖: Esla potencia programada en el generador convencional 𝑖.
𝛼, 𝛽, 𝛾: Son los coeficientes de los costos de generación de la planta convencional 𝑖.
1.1.2 Generadores solares
La incorporación de energías renovables en los sistemas de potencia introduce un
componente probabilístico a los problemas de despacho óptimo, debido a la aleatoriedad
de las fuentes primarias de energía como la radiación solar. Para modelar los costos de
producción de generadores renovables se han propuesto diferentes enfoques, como la
consideración de una gran cantidad de escenarios empleando simulaciones de Montecarlo
[20] [23] o las funciones analíticas de costo de incertidumbre, siendo esta última una buena
alternativa porque reduce significativamente el requerimiento computacional y permite
obtener resultados precisos [24].
10 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
En este trabajo final de maestría se modelaron los costos de incertidumbre con ecuaciones
analíticas no polinómicas dependientes de la potencia programada para los generadores
solares, empleando el concepto de costos de penalización que se describe a continuación
[24].
▪ Costos de penalización
Los costos de penalización se asocian a la sobrestimación o subestimación de la energía
disponible en la generación solar y se adicionan a los costos de producción de la planta
modelada. Supóngase que la potencia programada y la potencia disponible en una planta
solar son 𝑊𝑠,𝑖 y 𝑊𝑎𝑣,𝑖 respectivamente, entonces:
Si 𝑊𝑠,𝑖 < 𝑊𝑎𝑣,𝑖, entonces se tendrá un costo por subestimar la potencia disponible
𝐶𝑢,𝑖(𝑊𝑠,𝑖, 𝑊𝑎𝑣,𝑖) definido como,
𝐶𝑢,𝑖(𝑊𝑠,𝑖 , 𝑊𝑎𝑣,𝑖) = 𝑐𝑢,𝑖( 𝑊𝑎𝑣,𝑖 −𝑊𝑠,𝑖) (1-6)
Si 𝑊𝑠,𝑖 > 𝑊𝑎𝑣,𝑖, entonces se tendrá un costo por sobrestimar la potencia disponible
𝐶𝑜,𝑖(𝑊𝑠,𝑖, 𝑊𝑎𝑣,𝑖) definido como,
𝐶𝑜,𝑖(𝑊𝑠,𝑖 , 𝑊𝑎𝑣,𝑖) = 𝑐𝑜,𝑖(𝑊𝑠,𝑖 − 𝑊𝑎𝑣,𝑖) (1-7)
Donde 𝑐𝑢,𝑖 y 𝑐𝑜,𝑖 son los coeficientes de penalización por subestimar y sobrestimar la
potencia disponible en la planta. Estos valores deben ser asignados por cada empresa
generadora porque están asociados a acciones como emplear la energía sobrante en otras
actividades o adquirir la energía faltante por otros medios diferentes a la planta programada
[24].
Los costos de incertidumbre se definen como el valor esperado de las funciones de costos
de penalización. Para construir las expresiones analíticas buscadas es necesario entonces
considerar un modelo probabilístico de la potencia solar generada como el que se presenta
a continuación.
Capítulo 1 11
▪ Potencia generada por un panel solar fotovoltaico
La potencia generada por paneles solares fotovoltaicos se puede expresar como: [25]
𝑊𝑠(𝐺) =
{
𝑊𝑝𝑣𝑟 ∗
𝐺2
𝐺𝑟𝑅𝑐, 0 < 𝐺 < 𝑅𝑐
𝑊𝑝𝑣𝑟 ∗𝐺
𝐺𝑟, 𝑅𝑐 < 𝐺
(1-8)
Donde:
𝑊𝑠(𝐺): Es la potencia generada.
𝑊𝑝𝑣𝑟: Es la potencia nominal de salida del panel fotovoltaico.
𝐺: Es la irradiancia solar.
𝐺𝑟: Es la irradiancia estándar en el ambiente.
𝑅𝑐: Es un valor de irradiancia de referencia.
Como se aprecia en la ecuación (1-8), la potencia generada tiene dos componentes, uno
cuadrático y otro lineal y los dos son dependientes de la irradiancia del sol.
Una buena aproximación para modelar el comportamiento probabilístico de la irradiancia
se consigue empleando la distribución Log-normal que se muestra a continuación: [26]
𝑓𝐺(𝐺) =1
𝐺𝛽√2𝜋𝑒−(ln(𝐺)−𝜆)2
2𝛽2 0 < 𝐺 < ∞ (1-9)
Donde:
𝑓𝐺(𝐺): Es la función de densidad de probabilidad Log-normal.
𝐺: Es la irradiancia solar.
𝜆: Es la media de la distribución Log-normal.
𝛽: Es la distribución estándar de la distribución Log-normal.
Los parámetros que permiten construir la función 𝑓𝐺(𝐺) dependen de la ubicación
geográfica de la planta solar fotovoltaica. Con base en la información anterior y el
12 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
procedimiento presentado en [24] se construyen las expresiones analíticas para el costo
de incertidumbre de generación solar.
▪ Expresiones analíticas de costos de incertidumbre de generadores solares
Los costos de incertidumbre por generación solar se dividen en cuatros expresiones, dos
para los costos subestimados (a) y dos para los costos sobreestimados (b).
a) Caso subestimado
𝐸 [𝐶𝑃𝑉,𝑢,𝑖(𝑊𝑃𝑉,𝑠,𝑖,𝑊𝑃𝑉,𝑖), 𝐴] = (−1)𝐶𝑃𝑉,𝑢,𝑖𝑊𝑃𝑉,𝑠,𝑖
2[erf (
(1
2ln(
𝑊𝑅𝑐𝐺𝑟𝑅𝑐𝑊𝑃𝑉𝑟
)− 𝜆)
√2𝛽) −
erf ((1
2ln(
𝑊𝑃𝑉,𝑠,𝑖𝐺𝑟𝑅𝑐
𝑊𝑃𝑉𝑟)− 𝜆)
√2𝛽)] +
𝐶𝑃𝑉,𝑢,𝑖𝑊𝑃𝑉𝑟∙ 𝑒2𝜆+2𝛽2
𝐺𝑟𝑅𝑐2 [erf (
(1
2ln(
𝑊𝑅𝑐𝐺𝑟𝑅𝑐𝑊𝑃𝑉𝑟
)− 𝜆)
√2𝛽−
√2𝛽) − erf ((1
2ln(
𝑊𝑃𝑉𝑟,𝑠,𝑖𝐺𝑟𝑅𝑐
𝑊𝑃𝑉𝑟)− 𝜆))
√2𝛽−√2𝛽)]
(1-10)
𝐸 [𝐶𝑃𝑉,𝑢,𝑖(𝑊𝑃𝑉,𝑠,𝑖,𝑊𝑃𝑉,𝑖), 𝐵] = 𝐶𝑃𝑉,𝑢,𝑖𝑊𝑃𝑉,𝑠,𝑖
2[erf (
(ln(𝑊𝑅𝑐𝐺𝑟𝑊𝑃𝑉𝑟
)− 𝜆)
√2𝛽) −
erf ((ln(
𝑊𝑃𝑉,∞,𝑖𝐺𝑟
𝑊𝑃𝑉𝑟)− 𝜆)
√2𝛽)] +
𝐶𝑃𝑉,𝑢,𝑖𝑊𝑃𝑉𝑟∙ 𝑒𝜆+𝛽2/2
2 ∙ 𝐺𝑟 [erf (
(ln(𝑊𝑃𝑉,∞,𝑖𝐺𝑟
𝑊𝑃𝑉𝑟)− 𝜆)
√2𝛽−
𝛽
√2) − erf (
(ln(𝑊𝑅𝑐𝐺𝑟𝑊𝑃𝑉𝑟
)− 𝜆))
√2𝛽−
𝛽
√2)]
(1-11)
b) Caso sobrestimado
𝐸 [𝐶𝑃𝑉,𝑜,𝑖, (𝑊𝑃𝑉,𝑠,𝑖,𝑊𝑃𝑉,𝑖), 𝐴] =
−𝐶𝑃𝑉,𝑜,𝑖𝑊𝑃𝑉,𝑠,𝑖
2 [1 + erf (
(1
2ln(
𝑊𝑅𝑐𝐺𝑟𝑅𝑐𝑊𝑃𝑉𝑟
)− 𝜆)
√2𝛽)] +
𝐶𝑃𝑉,𝑜,𝑖𝑊𝑃𝑉𝑟∙ 𝑒
2𝜆+2𝛽2
𝐺𝑟𝑅𝑐2 [erf (
(1
2ln(
𝑊𝑅𝑐𝐺𝑟𝑅𝑐𝑊𝑃𝑉𝑟
)− 𝜆)
√2𝛽−√2𝛽) + 1]
(1-12)
Capítulo 1 13
𝐸 [𝐶𝑃𝑉,𝑜,𝑖, (𝑊𝑃𝑉,𝑠,𝑖,𝑊𝑃𝑉,𝑖), 𝐵] = 𝐶𝑃𝑉,𝑜,𝑖𝑊𝑃𝑉,𝑠,𝑖
2 [erf (
(ln(𝑊𝑅𝑐𝐺𝑟𝑊𝑃𝑉𝑟
)− 𝜆)
√2𝛽) −
erf ((ln(
𝑊𝑃𝑉,𝑠,𝑖𝐺𝑟
𝑊𝑃𝑉𝑟)− 𝜆)
√2𝛽)] +
𝐶𝑃𝑉,𝑜,𝑖𝑊𝑃𝑉𝑟∙ 𝑒𝜆+𝛽2/2
2 ∙ 𝐺𝑟 [erf (
(ln(𝑊𝑃𝑉,𝑠,𝑖𝐺𝑟
𝑊𝑃𝑉𝑟)− 𝜆)
√2𝛽−
𝛽
√2) −
erf ((ln(
𝑊𝑅𝑐𝐺𝑟𝑊𝑃𝑉𝑟
)− 𝜆)
√2𝛽−
𝛽
√2)]
(1-13)
Considerando los costos de incertidumbre de la generación solar la función de costo de
generación total se reescribe en la ecuación (1-14)
min(𝐶𝑇𝑜𝑡𝑎𝑙) = min(∑ 𝐶𝑐,𝑖(𝑃𝑐,𝑠,𝑖)
𝑁𝑐𝑖=1 + ∑ 𝐶𝑃𝑉,𝑢,𝑖(𝑊𝑃𝑉,𝑠,𝑖 ,𝑊𝑃𝑉,𝑖)
𝑁𝑃𝑉𝑖=1 +
∑ 𝐶𝑃𝑉,𝑜,𝑖(𝑊𝑃𝑉,𝑠,𝑖,𝑊𝑃𝑉,𝑖)𝑁𝑃𝑉𝑖=1 )
(1-14)
Donde:
𝑁𝑐: Es el número de generadores convencionales conectados al sistema.
𝑁𝑃𝑉: Es el número de generadores fotovoltaicos del sistema.
𝑃𝑐,𝑠,𝑖: Esla potencia programada en el generador convencional 𝑖.
𝑊𝑃𝑉,𝑠,𝑖: Esla potencia programada en el generador fotovoltaico 𝑖.
𝑊𝑃𝑉,𝑖: Es la potencia disponible en el generador fotovoltaico 𝑖.
𝐶𝑐,𝑖: Es la función de costo del generador fotovoltaico 𝑖.
𝐶𝑃𝑉,𝑢,𝑖: Es la función de costos por subestimar del generador fotovoltaico 𝑖.
𝐶𝑃𝑉,𝑜,𝑖: Es la función de costos por sobrestimar del generador fotovoltaico 𝑖.
Además de los costos de generación, en la programación de la operación de sistemas de
potencia se deben modelar las pérdidas en el sistema de transmisión, para lo cual se
tuvieron las siguientes consideraciones:
1.2 Pérdidas de trasmisión de energía
Una primera aproximación para la programación de la operación de sistemas de potencia
podría ser despachar el generador más eficiente hasta que llegue a su capacidad nominal,
después asignar la potencia al segundo generador más eficiente y continuar así hasta
14 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
cubrir la demanda total, sin embargo, la técnica anterior no conduce al punto óptimo de la
operación porque desconoce las limitaciones del sistema de transmisión[18], un aspecto
fundamental dentro del modelo de costos de generación de un sistema de potencia. Para
considerar las pérdidas en el sistema de transmisión se han propuestos diversos métodos,
la solución exacta consiste en emplear las leyes de Kirchhoff para realizar la evaluación de
los flujos de carga y obtener las pérdidas del sistema de transmisión en función del
cuadrado de la corriente que circula por cada línea, este enfoque resulta bastante útil
cuando la programación de la operación se realiza con métodos analíticos exactos [6][4],
sin embargo, con técnicas de optimización iterativas resulta ineficiente correr un flujo de
carga en cada uno de los pasos considerados, por lo que se han desarrollado técnicas
aproximadas que han mostrado buenos resultados en la programación de la operación de
sistemas de potencia. Los coeficientes de pérdidas se han destacado en este aspecto
[19][27], al emplearlos se requiere evaluar el flujo de carga del sistema una sola vez,
constituyendo una técnica apropiada para métodos de optimización iterativos, por lo cual
fue empleada en este trabajo final de maestría. A continuación se presenta el desarrollo
teórico de los coeficientes de pérdidas.
1.2.1 Los coeficientes de pérdidas
Los coeficientes de pérdidas constituyen un método aproximado que permite obtener las
pérdidas de transmisión en un sistema eléctrico en función de la potencia generada por
cada una de sus centrales, se han desarrollado distintos enfoques para emplearlos
[28][29], siendo los coeficientes de Kron el que han mostrado mayor eficiencia para la
programación de la operación de sistemas de potencia [27]. Este método expresa la
potencia perdida en el sistema de transmisión como se muestra en la ecuación (1-15) [18].
𝑃𝐿 = ∑ ∑ 𝑃𝑚𝐵𝑚𝑛𝑃𝑛 + ∑ 𝑃𝑛𝐵𝑛0 + 𝐵00𝑀𝑛=1
𝑀𝑛=1
𝑀𝑚=1 (1-15)
Donde:
𝑃𝑖: Es la potencia inyectada por el generador 𝑖.
𝐵𝑚𝑛, 𝐵𝑛0, 𝐵00: Son los coeficientes de Kron.
𝑀: Es el número de generadores conectados al sistema.
Capítulo 1 15
La ecuación (1-15) se puede representar en forma matricial como se presenta a
continuación, [27].
𝑃𝐿 = 𝑃𝐺𝑇[𝐵]𝑃𝐺 + 𝐵0𝑃𝐺 +𝐵00 (1-16)
Donde,
𝐵 = [
𝐵11 𝐵12 … 𝐵1𝑀𝐵21 𝐵21 … 𝐵2𝑀⋮ ⋮ ⋮
𝐵𝑀1 𝐵𝑀2 … 𝐵𝑀𝑁
] (1-17)
𝐵0 = [𝐵10 𝐵20… 𝐵𝑀0], 𝐵00 = 𝐶𝑇𝐸 (1-18)
Y PG es un vector de una columna con M elementos que corresponden a las potencias
inyectadas en los nodos de generación del sistema.
Los coeficientes de Kron se pueden calcular a través de la ecuación (1-19) [18].
[ 𝐵11 𝐵12 … 𝐵1𝑀
𝐵10
2
𝐵21 𝐵21 … 𝐵2𝑀𝐵20
2
⋮ ⋮ ⋮ ⋮
𝐵𝑀1 𝐵𝑀2 … 𝐵𝑀𝑁𝐵𝑀0
2𝐵10
2
𝐵20
2…
𝐵𝑀0
2𝐵00]
= 𝑅𝑒𝑎𝑙[(𝛼)𝑇𝐶𝑇𝑅𝑏𝑢𝑠𝐶∗(𝛼∗)] (1-19)
En la última fila y columna de la matriz anterior se determinan los valores de Bm0 y B00. Las
matrices al otro lado de la igualdad se calculan mediante la ecuación (1-20).
𝑅𝐵𝑈𝑆 = 𝑟𝑒𝑎𝑙 (𝑍𝑏𝑢𝑠) = 𝑟𝑒𝑎𝑙((𝑌𝐵𝑈𝑆)−1) (1-20)
Donde ZBUS y YBUS son las matrices de impedancia y admitancia de barra del sistema de
potencia estudiado. La matriz (𝛼) se calcula por medio de la ecuación (1-21).
16 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
𝛼 =
[ 1−
𝑄𝑔1
𝑃𝑔1
𝑉1∗ 0 … 0 0
01−
𝑄𝑔2
𝑃𝑔2
𝑉2∗ … 0 0
⋮ ⋮ ⋮ 0 0 … 𝐼𝑛0]
(1-21)
Donde Pgi y Qgi son las potencias activas y reactivas en el bus 𝑖, 𝑉𝑖∗ es el conjugado de la
tensión en el bus 𝑖 y In0 es la corriente de carga nula que se obtiene de la ecuación (1-22).
𝐼𝑛0 = −𝑉𝑠𝑍𝑠𝑠
(1-22)
Donde:
𝑉𝑠: Es la tensión de la barra slack.
𝑍𝑠𝑠: Es el elemento de ZBUS, siendo s el número correspondiente con el bus sclack.
La matriz C se calcula a través de la ecuación (1-23).
𝐶 =
[ 1 −
𝑑1𝑍11𝑇
−𝑑1𝑍12𝑇
…𝑑1𝑍1𝑁𝑇
−𝑑1𝑍𝑠𝑠𝑇
𝑑2𝑍21𝑇
1 −𝑑2𝑍22𝑇
… −𝑑2𝑍2𝑁𝑇
−𝑑2𝑍𝑠𝑠𝑇
⋮ ⋮ ⋮
−𝑑𝑁𝑍𝑁1𝑇
−𝑑𝑁𝑍𝑁2𝑇
… 1 −𝑑𝑁𝑍𝑁𝑁𝑇
−𝑑𝑁𝑍𝑠𝑠𝑇 ]
(1-23)
La matriz C tiene dimensión N X M+1, donde N es el número total del sistema.
El valor de dk está dado por la expresión (1-24).
𝑑𝑘 = −𝐼𝑑𝑘𝐼𝐷𝑃𝐷 + 𝑃𝐿 − (∑𝑃𝑐,𝑠,𝑖
𝑁𝑐
𝑖=1
+∑𝑊𝑃𝑉,𝑠,𝑖
𝑁𝑃𝑉
𝑖=1
) = 0 (1-24)
Capítulo 1 17
Donde ID es la corriente total demandada en el sistema e Idi es la corriente demandada en
el bus 𝑖. El valor de T se define con la expresión (1-25).
𝑇 = ∑𝑍𝑘𝑠𝑑𝑘
𝑁
𝑘=1
(1-25)
Donde Zks es el elemento de la ZBUS correspondiente con la fila k y la columna s, con s
como la barra slack.
Los coeficientes de Kron se deben calcular para un caso base y se asumen iguales para
todas las otras condiciones de operación, la premisa anterior es cierta siempre que la
potencia generada y las tensiones en los nodos cambien en condiciones normales de
operación[27].
Como se evidencia en la ecuación (1-14) y con las consideraciones anteriores, al introducir
generadores fotovoltaicos la ecuación de costo total de generación del sistema se hace no
convexa y multidimensional, por lo que las técnicas de optimización estocásticas híbridas
se muestran como una buena alternativa para abordar la minimización de costos de
generación. A continuación, se presentan los algoritmos de optimización empleados en
este trabajo.
1.3 Algoritmos de optimización
Para determinar el mínimo de la función de costo total de generación en un sistema de
potencia se requiere emplear técnicas de optimización sofisticadas debido a la complejidad
y dimensión de la función objetivo. En este trabajo final de maestría se construyó un
algoritmo híbrido que combina una técnica de optimización estocástica con el método del
gradiente para abordar la programación de la operación de sistemas de potencia, en esta
sección se presentan las bases teóricas de estas herramientas.
1.3.1 Algoritmos de optimización estocásticos
Los algoritmos estocásticos son un grupo de técnicas de optimización que se basan en la
evaluación sucesiva de la función objetivo en puntos aleatorios que pertenecen al espacio
de posibles soluciones del problema de optimización[10], estas técnicas han sido
18 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
empleadas en la solución de problemas de optimización con éxito desde hace años
[30][31]. En su forma básica, es un método de búsqueda aleatoria pura que permite
determinar el mínimo global de funciones determinísticas a partir de la sucesiva evaluación
de la función objetivo en distintos valores de su dominio, denominados puntos de juicio.
Supóngase que se quiere minimizar una función real 𝑓 ∶ ℝ𝑘 ⟶ ℝ, para lo cual se podrían
generar aleatoriamente 𝑛𝑡 puntos {𝑥𝑖 : 1 ≤ 𝑖 ≤ 𝑛𝑡}, encontrar la imagen de cada uno de
ellos {𝑓(𝑥𝑖) ∶ 1 ≤ 𝑖 ≤ 𝑛𝑡} y estimar el valor mínimo de la función 𝑚 ∶ min{𝑓(𝑥)} a partir de
los valores calculados {𝑓(𝑥1); 𝑓(𝑥2); 𝑓(𝑥3);… ; 𝑓(𝑥𝑖); … ; 𝑓(𝑥𝑛𝑡)}. A esto se le conoce
como algoritmo estocástico descendente y se detalla a continuación, [14]
1.) Inicialización: Como datos de entrada se debe definir un punto de inicio 𝑥0, el valor
de 𝑓(𝑥0) y un número máximo de puntos de iteraciones a considerar 𝑛𝑚. Se fija la
iteración actual en cero: 𝑛 ← 0
2.) Iteraciones: El estado actual es 𝑥𝑛 y se determinará 𝑥𝑛+1 a partir de los siguientes
dos pasos sucesivos. Para la primera iteración 𝑥𝑛 = 𝑥0 y 𝑓(𝑥𝑛) = 𝑓(𝑥0).
• Punto de juicio: Se genera de forma aleatoria un nuevo valor 𝑥𝑡𝑛 y se evalúa la
función objetivo en éste 𝑓(𝑥𝑡𝑛).
• Dinámica de selección: Se determina 𝑥𝑛+1 empleando un criterio de selección, por
ejemplo, una selección elitista descrita por la ecuación (1-26).
𝑥𝑛+1 = min{𝑓(𝑥𝑛); 𝑓(𝑥𝑡𝑛)} = {𝑥𝑛 , 𝑠𝑖 𝑓(𝑥𝑛) < 𝑓(𝑥𝑡𝑛)
𝑥𝑡𝑛, 𝑠𝑖 𝑓(𝑥𝑛) ≥ 𝑓(𝑥𝑡𝑛) (1-26)
3.) Finalización: si 𝑛 < 𝑛𝑡 entonces se incrementa el valor actual de la iteración 𝑛 ∶
𝑛 ← 𝑛 + 1 y se parte del punto 2. En caso contrario, se detienen las iteraciones y
se estima el mínimo como 𝑚 ≈ 𝑓(𝑥𝑛) y 𝑥𝑚 ≈ 𝑥𝑛.
El algoritmo estocástico descendente suele ser de convergencia lenta en problemas de
dimensiones grandes [14]. Al observar el procedimiento anterior, se evidencia que una
debilidad del método radica en que la dinámica de selección rara vez modifica el punto
actual considerado xn, debido a que la selección elitista desecha todos los puntos de juicio
Capítulo 1 19
tn que no representen una mejora en el resultado, en otras palabras la selección elitista
podría confinar el algoritmo a la exploración del vecindario del punto actual 𝑥𝑛 para una
gran cantidad de puntos de juicio. Lo anterior sugiere que una mejora del algoritmo consiste
en adoptar una dinámica de selección que permita una exploración efectiva de todo el
dominio de la función objetivo, la dinámica de metrópolis ha mostrado ser una buena
alternativa, al emplearla se estructura el algoritmo de recocido simulado, en el cual se
profundizará a continuación[14].
▪ Algoritmo de recocido simulado (Simulated annealing)
El algoritmo de recocido simulado (SA) es una técnica de optimización estocástica que
combina la evaluación sucesiva de la función objetivo en distintos elementos de su dominio
(búsqueda aleatoria), con un criterio de decisión que permite “deterioros temporales” del
estado de la función objetivo, con base en un valor de referencia denominado coeficiente
de temperatura [14]. El nombre de esta técnica se deriva del recocido de materiales, un
tratamiento térmico utilizado en metales para lograr una estructura cristalina perfecta, que
consiste en el calentamiento y posterior enfriamiento del material hasta lograr el resultado
deseado [32]. De manera análoga se emplea el coeficiente de temperatura en la técnica
de optimización de recocido simulado, en la que se debe iniciar con una temperatura alta,
lo que implica una mayor probabilidad de aceptar malas soluciones para la función objetivo
y a medida que se avanza en el proceso se disminuye la temperatura y con esto la
probabilidad de admitir soluciones que deterioren el resultado final. De esta forma, un
cambio de estado en un problema de optimización será aceptado si con él se disminuye el
costo de la función objetivo, en caso contrario, el nuevo valor se tolera si su probabilidad
de aceptación es mayor que un número aleatorio, condición que permite al proceso salir
de óptimos locales [33].
El algoritmo de recocido simulado permite la exploración extensiva del espacio de posibles
soluciones al inicio del proceso de optimización cuando se tienen coeficientes de
temperatura altos, en esta etapa se aceptan cambios significativos en la solución del
problema lo que constituye un fase de diversificación, a medida que la ejecución avanza
disminuyen los coeficientes de temperatura y se pasa a un proceso de intensificación en
una región del espacio de las posibles soluciones del problema, en esta etapa el algoritmo
se comporta como una técnica de búsqueda aleatoria pura, como las que emplean una
dinámica de selección elitista. La posibilidad de explorar el espacio de soluciones con una
20 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
probabilidad de aceptación controlada es lo que hace al SA atractivo frente a otras técnicas
de optimización estocásticas [14][33].
A continuación, se define matemáticamente el algoritmo, supóngase que se quiere
minimizar una función real 𝑓 ∶ ℝ𝑘 ⟶ ℝ, para lo cual se generan aleatoriamente 𝑛𝑟 valores
{Δ𝑥𝑖 : 1 ≤ 𝑖 ≤ 𝑛𝑟}, se definen una secuencia decreciente de 𝑛𝑟 números {𝑐𝑛} y se establece
un punto de inicio {𝑥0}, entonces el mínimo de la función 𝑚 ∶ min{𝑓(𝑥)} se encuentra a
partir de los siguientes pasos [14],
1.) Inicialización: Se evalúa la función objetivo en el punto de inicio 𝑥0 y se establece
un número máximo de iteraciones 𝑛𝑚. Se fija la iteración actual en cero: 𝑛 ← 0
2.) Iteraciones: El estado actual es 𝑥𝑛 y se determinará 𝑥𝑛+1 a partir de los siguientes
dos pasos sucesivos.
• Punto de juicio: Se determina el valor del punto de juicio 𝑡𝑛 = 𝑥𝑛 + Δ𝑥𝑛 .
• Dinámica de selección: Se determina 𝑥𝑛+1 empleando el criterio de selección de
metrópoli, descrito por la ecuación (1-27),
𝑥𝑛+1 = {
𝑡𝑛, 𝑠𝑖 𝑓(𝑥𝑛) ≥ 𝑓(𝑡𝑛)
𝑡𝑛, 𝑠𝑖 𝑓(𝑥𝑛) < 𝑓(𝑡𝑛) 𝑦 𝑠𝑖 𝑢 < 𝑐𝑛𝑥𝑛, 𝑓(𝑥𝑛) < 𝑓(𝑡𝑛) 𝑦 𝑠𝑖 𝑢 ≥ 𝑐𝑛
(1-27)
Donde, 𝑢 es un número aleatorio distribuido uniformemente en el intervalo (0,1) y
𝑐𝑛 se define como,
𝑐𝑛 = 𝑒−(𝑓(𝑡𝑛)−𝑓(𝑥𝑛)
𝜃𝑛) (1-28)
{𝜃𝑛} 𝑛 𝜖 ℕ es el coeficiente de temperatura, una secuencia decreciente de números
reales positivos convenientemente escogidos de acuerdo con el problema a
resolver.
Capítulo 1 21
3.) Finalización: si 𝑛 < 𝑛𝑚 entonces se incrementa el valor actual de la iteración 𝑛 ∶
𝑛 ← 𝑛 + 1 y se vuelve al punto 2, en caso contrario, se detienen las iteraciones y
se estima el mínimo como 𝑚 ≈ 𝑓(𝑥𝑛) y 𝑥𝑚 ≈ 𝑥𝑛.
Los algoritmos estocásticos incrementan significativamente su rendimiento al combinarlos
con técnicas analíticas para formar algoritmos híbridos[14], estas técnicas han sido
probadas con éxito en problemas de optimización con diferentes enfoques [34][35]. En este
trabajo se combinó el algoritmo de recocido simulado con la técnica del gradiente
descendente, la cual se presenta a continuación.
1.3.2 Algoritmo del gradiente descendente
El algoritmo del gradiente descendente es una técnica de optimización analítica tradicional
que se basa en la derivada de la función objetivo para determinar los valores mínimo o
máximo de una función. El gradiente de una función permite conocer la dirección en la que
ésta cambia más rápidamente, por lo que es posible encontrar el valor mínimo de una
función desplazándose convenientemente en el sentido opuesto de su derivada. En la
Figura 1-4 se muestra gráficamente el funcionamiento del algoritmo del gradiente, dada la
función 𝐹(𝑣1, 𝑣2), las líneas de contorno representan los puntos con resultados iguales
para diferentes combinaciones de las variables (𝑣1, 𝑣2), partiendo del punto 𝐹(𝑣1(0),
𝑣2(0)) = 20 es posible llegar al mínimo empleando 10 pasos en la dirección de −∇F.
Figura 1-4: Algoritmo el gradiente descendente [4]
22 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
A continuación se presenta el procedimiento del algoritmo del gradiente para determinar el
mínimo de una función[4].
Sea 𝐹(𝑢) la función a optimizar y 𝑢0 un punto que pertenece al espacio de posibles
soluciones, entonces.
1.) Inicialización: Se evalúa la función objetivo en el punto de inicio (𝑢0) y se
establece un número máximo de iteraciones 𝑛𝑚. Se fija la iteración actual en cero:
𝑛 ← 0
2.) Iteraciones: El estado actual es 𝑢𝑛 y se determinará 𝑢𝑛+1 a partir de los siguientes
dos pasos sucesivos.
• Determinación del gradiente: Se calcula la derivada parcial de la función objetivo
con respecto a las variables de control, tal como se presenta en la ecuación (1-29).
∇F =𝜕𝐹(𝑢)
𝜕𝑢 (1-29)
• Determinación de los nuevos parámetros de control: Se determina 𝑢𝑛+1 con la
expresión (1-30).
𝑢𝑛+1 = 𝑢𝑛 − 𝑐 ∗ ∇F (1-30)
Donde 𝑐 es un factor que determina la magnitud del paso en la dirección contraria
del gradiente.
3.) Finalización: si 𝑛 < 𝑛𝑚 entonces se incrementa el valor actual de la iteración 𝑛 ∶
𝑛 ← 𝑛 + 1 y se vuelve al punto 2, en caso contrario, se detienen las iteraciones y
se estima el mínimo como 𝑚 ≈ 𝑓(𝑥𝑛) y 𝑥𝑚 ≈ 𝑥𝑛.
Cuando se emplea el algoritmo del gradiente gran parte del resultado depende del valor
que se le asigne a la variable 𝑐, un valor muy pequeño asegura la convergencia pero se
requeriría de un gran número de iteraciones para llegar al mínimo, mientras que un número
Capítulo 1 23
muy grande causaría oscilaciones alrededor del mínimo[4]. El valor apropiado para 𝑐
depende de cada problema y normalmente se encuentra empíricamente.
Cuando el problema de optimización tiene restricciones de desigualdad la ecuación (1-30)
se ajusta de la siguiente forma[4].
𝑈𝑛+1 = {
𝑢𝑚𝑎𝑥 𝑠𝑖 𝑢𝑛 − 𝑐 ∗ ∇F > 𝑢𝑚𝑎𝑥𝑢𝑚𝑖𝑛 𝑠𝑖 𝑢𝑛 − 𝑐 ∗ ∇F < 𝑢𝑚𝑖𝑛𝑢𝑛 − 𝑐 ∗ ∇F para los otros casos
(1-31)
En la siguiente sección se ajusta el algoritmo de recocido simulado para programar la
operación de sistemas de potencia y se pone a prueba en un sistema de tres generadores.
2. Programación de la operación de sistemas de potencia empleando el algoritmo de recocido simulado
En el capítulo anterior se mostraron las bases teóricas de este trabajo final de maestría,
en este capítulo se inicia con la construcción del algoritmo de optimización híbrido,
realizando la adaptación del algoritmo de recocido simulado para resolver problemas de
despacho óptimo y determinando los parámetros de funcionamiento que mejor se adaptan
a este tipo de problemas. Para esto se empleó el algoritmo de recocido simulado en la
programación de la operación de un sistema de potencia de pruebas compuesto dos
generadores convencionales y uno fotovoltaico, sin considerar las pérdidas de transmisión
de energía, el ejercicio se replicó ocho veces variando algunos parámetros de
funcionamiento del algoritmo empleado.
A continuación, se presentan las consideraciones que se tuvieron para construir la función
objetivo.
2.1 Función de costo de generadores convencionales
Como se mostró en el capítulo anterior los costos de generación convencional se modelan
a través de funciones cuadráticas con bastante precisión, las ecuaciones de costo de
generación convencional consideradas en este ejercicio se muestran a continuación.
𝐶𝑐,1 = 0.2𝑃𝑐,𝑠,12 + 10𝑃𝑐,𝑠,1 + 200 (2-1)
𝐶𝑐,2 = 0.4𝑃𝑐,𝑠,22 + 15𝑃𝑐,𝑠,2 + 300 (2-2)
Donde:
Capítulo 2 25
𝐶𝑐,1: Es el costo de generación del generador convencional 1.
𝐶𝑐,2: Es el costo de generación del generador convencional 2.
𝑃𝑐,𝑠,1: Es la potencia programada en el generador convencional 1.
𝑃𝑐,𝑠,2: Es la potencia programada en el generador convencional 2.
2.2 Función de costo del generador solar
Los costos del generador solar se modelaron a partir de los costos de incertidumbre
empleando los parámetros que se muestran en la Tabla 2-1. No se tuvieron en cuenta los
costos de operación directos para el generador fotovoltaico porque se considera que su
recurso primario es gratis.
Tabla 2-1: Parámetros del generador fotovoltaico
Parámetros costos de incertidumbre del generador fotovoltaico
𝛽: Desviación estándar de la distribución Log-normal. 0.25
𝜆: media de la distribución Log-normal. 6
𝐺𝑟: Valor nominal de irradiancia en el entorno geométrico [W/m2]. 1000
𝑅𝑐: Valor de irradiancia de referencia [W/m2]. 150
𝑊𝑃𝑉 𝑟: Potencia activa nominal de la planta fotovoltaica [MW]. 65
𝑊𝑃𝑉,∞: Máxima potencia de salida [MW]. 100
𝐶𝑃𝑉,𝑢,𝑖: Costo de penalización por subestimar la potencia disponible [$/MW]. 30
𝐶𝑃𝑉,𝑜,𝑖: Costo de penalización por sobrestimar la potencia disponible [$/MW]. 70
2.3 Restricciones del sistema
Para el caso de estudio se tuvieron en cuenta restricciones de desigualdad, asociadas a
los límites de la capacidad de generación de las plantas consideradas y una restricción de
balance, ligada a la correspondencia que se debe guardar entre las potencias producida y
demandada. Las restricciones consideradas para el problema de optimización se muestran
a continuación.
26 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Restricciones de desigualdad:
0 𝑀𝑊 ≤ 𝑃𝑐,𝑠,1 ≤ 100 𝑀𝑊 (2-3)
0 𝑀𝑊 ≤ 𝑃𝑐,𝑠,2 ≤ 100 𝑀𝑊 (2-4)
0 𝑀𝑊 ≤ 𝑊𝑃𝑉,𝑠,1 ≤ 65 𝑀𝑊 (2-5)
Restricción de balance:
𝑃𝑑𝑒𝑚𝑎𝑛𝑑𝑎𝑑𝑎 = 80 𝑀𝑊 = 𝑃𝑐,𝑠,1 + 𝑃𝑐,𝑠,2 +𝑊𝑃𝑉,𝑠,1 (2-6)
Donde:
𝑃𝑐,𝑠,1: Es la potencia programada en el generador convencional 1.
𝑃𝑐,𝑠,2: Es la potencia programada en el generador convencional 2.
𝑊𝑃𝑉,𝑠,1: Esla potencia programada en el generador fotovoltaico 1.
Las restricciones anteriores se introdujeron en el algoritmo de optimización con la
metodología de penalizaciones, que castiga las soluciones que incumplen las
restricciones, garantizando la convergencia del algoritmo en valores físicamente
aceptables.
2.4 Parámetros del algoritmo de recocido
simulado
En esta sección se detallan los parámetros de funcionamiento del algoritmo de recocido
simulado que se consideraron para las variaciones de los ocho casos de prueba evaluados.
2.4.1 Función del coeficiente de temperatura 𝜽𝒏
Como se mostró en el capítulo 1, el coeficiente de temperatura es determinante para el
algoritmo de recocido simulado porque le permite hacer una exploración efectiva del
espacio de posibles soluciones, facilitando la obtención final del óptimo global. La función
Capítulo 2 27
de coeficiente de temperatura debe tener algunas características generales, como iniciar
en un valor alto y decrecer rápidamente con el paso de las iteraciones, pero también se
debe ajustar a las particularidades del problema de optimización a resolver, porque se usa
como valor de referencia para decidir si se da un cambio de estado en el proceso de
optimización. Por lo anterior, es importante determinar el dominio de la función de
coeficientes de temperatura para la programación de la operación del sistema de potencia
de prueba, para esto se realizaron las siguientes consideraciones.
Se replanteó convenientemente la función de 𝑐𝑛 para evitar indeterminaciones durante la
optimización, quedando de la siguiente manera [9].
𝑐𝑛 = 𝑒−(𝑓(𝑡𝑛)−𝑓(𝑥𝑛)+𝛼
𝜃𝑛+𝛽)
(2-7)
Donde 𝛼 > 0 y 𝛽 > 0.
Teniendo en cuenta que el sistema de estudio tiene una solución para la función de costo
total de generación cuyo mínimo oscila los $1.000, se contrarrestaron dos alternativas para
la función de los coeficientes de temperatura que se muestran a continuación.
𝜃𝑛1 =1
√ln(𝑛 + 𝛼𝛽) (2-8)
Donde
𝑛: Es la iteración actual del algoritmo.
𝛼 = 0,1
𝛽 = 0,001
𝜃𝑛2 =
1
√ln (1 +𝛽𝛼 𝑛)
(2-9)
28 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Donde
𝑛: Es la iteración actual del algoritmo.
𝛼 = 0,01
𝛽 = 0,00000001
Con la función 𝜃𝑛1 los coeficientes de temperatura iniciarán en 100 y tenderán a 0.3,
mientras que con 𝜃𝑛2 se parte de 1000 y finaliza en 0.3. En secciones posteriores se
mostrarán los resultados de las evaluaciones y se determinará la conveniencia de uno
frente al otro.
2.4.2 Generador de puntos aleatorios
En el algoritmo de recocido simulado los puntos de juicio se generan de forma aleatoria,
sin embargo, resulta útil limitar la obtención de estos a un conjunto de números
convenientemente controlados. En este estudio se consideraron dos alternativas para
limitar la generación de puntos de juicio y evaluar la conveniencia de una frente a la otra
en la programación de la operación de sistemas de potencia. En la primera se obtienen
valores en el intervalo fijo [-50, 50], el cual se seleccionó teniendo en cuenta las
restricciones de los generadores presentadas anteriormente, la segunda limita la
generación de los valores aleatorios al intervalo [-xac, xac], siendo xac el estado actual de
la función objetivo, considerando que esta opción podría ser útil para intensificar la
evaluación de la función objetivo en una región del espacio de posibles soluciones, sin
embargo, se corre el riesgo de que dicha función quede “atrapada” cuando el valor del
estado actual de ésta sea pequeño. Vale la pena señalar que los puntos de juicio en los
que se evalúa la función objetivo son iguales a la suma del estado actual del algoritmo y el
valor aleatorio generado, por lo que el valor del punto de juicio puede estar por fuera del
intervalo definido para los valores aleatorios.
2.4.3 Otros parámetros del algoritmo de recocido simulado
Adicionalmente, se evaluó la respuesta del algoritmo a cambios en los parámetros típicos
de los algoritmos de optimización como el punto de inicio y el número de iteraciones. El
algoritmo de recocido simulado se corrió con dos valores iniciales, uno cercano al mínimo
absoluto P0(30, 30, 20) y otro alejado de este P0(1, 1, 1), empleando 10, 100, 1.000, 10.000
Capítulo 2 29
y 100.000 puntos de juicio y 1, 2 y 3 ciclos. Los ciclos corresponden al número de veces
que se repite la evaluación para la cantidad de puntos de juicio definidos.
2.5 Resultados con el algoritmo de recocido simulado
En este ítem se presentan los resultados de las pruebas que se hicieron al algoritmo de
recocido simulado variando lo parámetros mencionados anteriormente, estos ejercicios se
realizaron como una evaluación de sensibilidad para determinar los parámetros que mejor
se ajustan a la programación de la operación de sistemas de potencia. Para realizar las
simulaciones se empleó el software MATLAB con licencia de la Universidad Nacional de
Colombia.
2.5.1 Prueba 1
En este caso se emplearon los siguientes parámetros
𝜃𝑛 = 𝜃𝑛1 =1
√ln(𝑛+𝛼𝛽)
P0 = (30, 30, 20).
Intervalo de puntos de juicio [-xac, xac].
Y se obtuvieron los siguientes resultados.
Tabla 2-2: Resultados pruebas 1
Puntos de
juicio
NC = 1 NC=2 NC=3
Tiempo [s]
Costo total [$]
Tiempo [s]
Costo total [$]
Tiempo [s]
Costo total [$]
10 0,171 2,034E+03 0,211 2,034E+03 0,256 2,034E+03
100 0,600 2,034E+03 0,922 1,806E+03 1,369 2,034E+03
1000 50,827 1,765E+03 8,310 1,791E+03 10,800 1,819E+03
10000 50,827 1,754E+03 73,232 1,856E+03 100,265 1,752E+03
100000 351,158 1,750E+03 674,255 1,750E+03 1.025,746 1,750E+03
30 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Figura 2-1: Resultados pruebas 1
En esta prueba el costo total mínimo encontrado fue $ 1.750,37 y se obtuvo en las corridas
con 100.000 puntos de juicio para los casos de 1, 2 y 3 ciclos.
2.5.2 Prueba 2
Para la prueba 2 se emplearon los siguientes parámetros
𝜃𝑛 = 𝜃𝑛1 =1
√ln(𝑛+𝛼𝛽)
P0 = (30, 30, 20).
Intervalo de puntos de juicio [-50, 50].
Y se obtuvieron los siguientes resultados.
Tabla 2-3: Resultados pruebas 2
Puntos de
juicio
NC = 1 NC=2 NC=3
Tiempo [s]
Costo total [$]
Tiempo [s]
Costo total [$]
Tiempo [s]
Costo total [$]
10 1,431 2,034E+03 0,244 2,034E+03 0,259 2,034E+03
100 0,725 2,034E+03 1,291 1,776E+03 1,594 2,034E+03
1600
1650
1700
1750
1800
1850
1900
1950
2000
2050
2100
10 100 1000 10000 100000
Co
sto
to
tal [
$]
Cantidad de puntos de juicio PJ
Resultado de algoritmo SA prueba 1
1 ciclo
2 ciclos
3 ciclos
Capítulo 2 31
Puntos de
juicio
NC = 1 NC=2 NC=3
Tiempo [s]
Costo total [$]
Tiempo [s]
Costo total [$]
Tiempo [s]
Costo total [$]
1000 48,820 1,814E+03 10,040 2,034E+03 14,289 1,844E+03
10000 48,820 1,854E+03 79,824 1,775E+03 120,600 1,750E+03
100000 353,019 1,757E+03 824,294 1,750E+03 1.061,497 1,750E+03
Figura 2-2: Resultados pruebas 2
En esta prueba el costo total mínimo encontrado fue $ 1.750,37 y se obtuvo en las corridas
con 100.000 puntos de juicio para los casos de 2 y 3 ciclos.
2.5.3 Prueba 3
En la prueba 3 se emplearon los siguientes parámetros
𝜃𝑛 = 𝜃𝑛1 =1
√ln(𝑛+𝛼𝛽)
P0 = (1, 1, 1).
Intervalo de puntos de juicio [-xac, xac].
Y se obtuvieron los siguientes resultados. El eje Y de la Figura 2-3 se presenta en escala
logarítmica para facilitar la visualización de los resultados.
1600
1650
1700
1750
1800
1850
1900
1950
2000
2050
2100
10 100 1000 10000 100000
Co
sto
to
tal [
$]
Cantidad de puntos de juicio PJ
Resultado de algoritmo SA prueba 2
1 ciclo
2 ciclos
3 ciclos
32 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Tabla 2-4: Resultados pruebas 3
Puntos de
juicio
NC = 1 NC=2 NC=3
Tiempo [s]
Costo total [$]
Tiempo [s]
Costo total [$]
Tiempo [s]
Costo total [$]
10 0,152 7,500E+07 0,390 6,000E+07 0,299 1,005E+06
100 0,478 1,700E+07 0,714 1,003E+06 0,937 1,500E+07
1000 44,684 1,500E+07 7,810 3,392E+03 12,651 1,500E+07
10000 44,684 1,500E+07 69,319 1,856E+03 138,432 2,595E+03
100000 348,075 2,595E+03 673,530 2,595E+03 1.041,746 1,500E+07
Figura 2-3: Resultados pruebas 3
En esta prueba el costo total mínimo encontrado fue $ 1.856,09 y se obtuvo en la corrida
con 10.000 puntos de juicio para los casos de 2 ciclos. En general, los resultados mostraron
una mayor variabilidad que en las pruebas anteriores y el mejor resultado encontrado es
un 5,6% más alto que los mejores mínimos encontrados anteriormente.
1,E+00
1,E+01
1,E+02
1,E+03
1,E+04
1,E+05
1,E+06
1,E+07
1,E+08
10 100 1000 10000 100000
Co
sto
to
tal [
$]
Cantidad de puntos de juicio PJ
Resultado de algoritmo SA prueba 3
1 ciclos
2 ciclos
3 ciclos
Capítulo 2 33
2.5.4 Prueba 4
Se emplearon los siguientes parámetros
𝜃𝑛 = 𝜃𝑛1 =1
√ln(𝑛+𝛼𝛽)
P0 = (1, 1, 1).
Intervalo de puntos de juicio [-50, 50].
Y se obtuvieron los siguientes resultados. El eje Y de la Figura 2-4 se presenta en escala
logarítmica para facilitar la visualización de los resultados.
Tabla 2-5: Resultados pruebas 4
Puntos de
juicio
NC = 1 NC=2 NC=3
Tiempo [s]
Costo total [$]
Tiempo [s]
Costo total [$]
Tiempo [s]
Costo total [$]
10 0,201 3,600E+07 0,243 3,003E+06 0,242 1,200E+07
100 0,543 2,002E+06 0,708 2,002E+06 1,273 1,801E+03
1000 47,605 1,876E+03 10,129 1,932E+03 12,818 1,755E+03
10000 47,605 1,827E+03 86,364 1,752E+03 122,069 1,750E+03
100000 462,344 1,750E+03 942,221 1,755E+03 1.143,462 1,750E+03
Figura 2-4: Resultados pruebas 4
1,E+00
1,E+01
1,E+02
1,E+03
1,E+04
1,E+05
1,E+06
1,E+07
1,E+08
10 100 1000 10000 100000
Co
sto
to
tal [
$]
Cantidad de puntos de juicio PJ
Resultado de algoritmo SA prueba 4
1 ciclos
2 ciclos
3 ciclos
34 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
En esta prueba el costo total mínimo encontrado fue $1.750,37 y se obtuvo en las corridas
con 10.000 puntos de juicio para el caso de 3 ciclos y con 100.000 puntos de juicio para 2
y 3 ciclos. En este caso se obtuvieron valores divergentes cuando se tomaron pocos puntos
de juicio, sin embargo, los resultados con 10.000 y 100.000 puntos de juicio convergen y
son muy similares a los de las pruebas 1 y 2.
2.5.5 Prueba 5
En la prueba 5 se emplearon los siguientes parámetros
𝜃𝑛 = 𝜃𝑛2 =1
√ln(1+𝛽
𝛼 𝑛)
P0 = (30, 30, 20).
Intervalo de puntos de juicio [-xac, xac].
Y se obtuvieron los siguientes resultados.
Tabla 2-6: Resultados pruebas 5
Puntos de
juicio
NC = 1 NC=2 NC=3
Tiempo [s]
Costo total [$]
Tiempo [s]
Costo total [$]
Tiempo [s]
Costo total [$]
10 0,180 2,034E+03 0,193 2,034E+03 0,248 2,034E+03
100 0,486 2,034E+03 0,662 2,034E+03 0,778 1,784E+03
1000 33,639 1,759E+03 6,806 1,768E+03 9,152 1,750E+03
10000 33,639 1,770E+03 57,229 1,859E+03 83,415 1,757E+03
100000 285,327 1,754E+03 602,893 1,860E+03 879,419 1,856E+03
Capítulo 2 35
Figura 2-5: Resultados pruebas 5
En esta prueba el costo total mínimo encontrado fue $ 1.750,25 y se obtuvo en las corridas
con 1.000 puntos de juicio para el caso de 3 ciclos, este resultado es el más óptimo que
se ha obtenido hasta el momento, mejorando los de las pruebas 1, 2 y 4 en $ 0.12. Los
resultados para 100.000 puntos de juicio con 1, 2 y 3 ciclos fueron divergentes, lo que
indica que el algoritmo no alcanzó la etapa de intensificación en una región particular del
conjunto de posibles soluciones, a diferencia de las pruebas anteriores donde los
resultados para 100.000 puntos de juicio eran muy similares.
2.5.6 Prueba 6
En este caso se emplearon los siguientes parámetros
𝜃𝑛 = 𝜃𝑛2 =1
√ln(1+𝛽
𝛼 𝑛)
P0 = (30, 30, 20).
Intervalo de puntos de juicio [-50, 50].
Y se obtuvieron los siguientes resultados.
1600
1650
1700
1750
1800
1850
1900
1950
2000
2050
2100
10 100 1000 10000 100000
Co
sto
to
tal [
$]
Cantidad de puntos de juicio PJ
Resultado de algoritmo SA prueba 5
1 ciclo
2 ciclos
3 ciclos
36 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Tabla 2-7: Resultados pruebas 6
Puntos de
juicio
NC = 1 NC=2 NC=3
Tiempo [s]
Costo total [$]
Tiempo [s]
Costo total [$]
Tiempo [s]
Costo total [$]
10 0,176 2,034E+03 0,197 2,034E+03 0,225 2,034E+03
100 0,410 2,034E+03 0,848 2,116E+03 1,088 2,034E+03
1000 34,563 1,898E+03 6,899 1,929E+03 8,808 2,034E+03
10000 34,563 1,800E+03 71,538 1,808E+03 82,514 1,757E+03
100000 354,863 1,766E+03 584,391 1,758E+03 919,918 1,753E+03
Figura 2-6: Resultados pruebas 6
En esta prueba el costo total mínimo encontrado fue $ 1.752,89 y se obtuvo en las corridas
con 100.000 puntos de juicio para el caso de 3 ciclos. El resultado obtenido es $ 2,67 más
costoso que el mejor encontrado en las pruebas anteriores, sin embargo, en esta
oportunidad todos los valores obtenidos fueron similares y bastante próximos al mínimo
absoluto.
0
500
1000
1500
2000
2500
10 100 1000 10000 100000
Co
sto
to
tal [
$]
Cantidad de puntos de juicio PJ
Resultado de algoritmo SA prueba 6
1 ciclo
2 ciclos
3 ciclos
Capítulo 2 37
2.5.7 Prueba 7
En la prueba 7 se emplearon los siguientes parámetros
𝜃𝑛 = 𝜃𝑛2 =1
√ln(1+𝛽
𝛼 𝑛)
P0 = (1, 1, 1).
Intervalo de puntos de juicio [-xac, xac].
Y se obtuvieron los siguientes resultados. El eje Y de la Figura 2-7 se presenta en escala
logarítmica para facilitar la visualización de los resultados.
Tabla 2-8: Resultados pruebas 7
Puntos de
juicio
NC = 1 NC=2 NC=3
Tiempo [s]
Costo total [$]
Tiempo [s]
Costo total [$]
Tiempo [s]
Costo total [$]
10 0,158 4,800E+07 1,184 1,005E+06 0,212 4,003E+06
100 0,400 1,500E+07 0,933 1,800E+07 1,271 1,500E+07
1000 29,928 5,072E+03 7,833 2,605E+03 12,882 3,092E+03
10000 29,928 3,392E+03 67,654 3,392E+03 148,677 5,072E+03
100000 291,168 5,072E+03 578,019 1,859E+03 1.086,620 1,500E+07
38 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Figura 2-7: Resultados pruebas 7
En esta prueba el costo total mínimo encontrado fue $ 1.858,52 y se obtuvo en la corrida
con 10.000 puntos de juicio para los casos de 2 ciclos. En general, los resultados mostraron
una mayor variabilidad que en las pruebas anteriores y el mejor resultado encontrado es
un 6,2% más alto que los mejores mínimos encontrados anteriormente.
2.5.8 Prueba 8
En este caso se emplearon los siguientes parámetros
𝜃𝑛 = 𝜃𝑛2 =1
√ln(1+𝛽
𝛼 𝑛)
P0 = (1, 1, 1).
Intervalo de puntos de juicio [-50, 50].
Y se obtuvieron los siguientes resultados. El eje Y de la Figura 2-8 se presenta en escala
logarítmica para facilitar la visualización de los resultados.
1,E+00
1,E+01
1,E+02
1,E+03
1,E+04
1,E+05
1,E+06
1,E+07
1,E+08
10 100 1000 10000 100000
Co
sto
to
tal [
$]
Cantidad de puntos de juicio PJ
Resultado de algoritmo SA prueba 7
1 ciclos
2 ciclos
3 ciclos
Capítulo 2 39
Tabla 2-9: Resultados pruebas 8
Puntos de
juicio
NC = 1 NC=2 NC=3
Tiempo [s]
Costo total [$]
Tiempo [s]
Costo total [$]
Tiempo [s]
Costo total [$]
10 0,151 2,400E+07 0,193 8,002E+06 0,209 9,004E+06
100 0,394 6,002E+06 0,781 2,026E+03 0,913 1,002E+06
1000 30,480 2,643E+03 6,380 1,776E+03 12,442 1,876E+03
10000 30,480 1,754E+03 70,418 1,827E+03 121,740 1,853E+03
100000 293,169 1,768E+03 587,931 1,752E+03 864,133 1,750E+03
Figura 2-8: Resultados pruebas 8
En esta prueba el costo total mínimo encontrado fue $1.750,37 y se obtuvo en la corrida
con 100.000 puntos de juicio para el caso de 3 ciclos. En este caso se obtuvieron
resultados divergentes con pocos puntos de juicio, sin embargo, los resultados con 10.000
y 100.000 puntos de juicio convergen y están muy cerca del mínimo absoluto.
A continuación, se presentan los resultados obtenidos en la totalidad de las simulaciones
realizadas con el algoritmo de recocido simulado. El eje Y muestra el costo total de
generación en miles de dólares y se limitó en el intervalo [$1.500, $2.200] para detallar las
1,E+00
1,E+01
1,E+02
1,E+03
1,E+04
1,E+05
1,E+06
1,E+07
1,E+08
10 100 1000 10000 100000
Co
sto
to
tal [
$]
Cantidad de puntos de juicio PJ
Resultado de algoritmo SA prueba 8
1 ciclos
2 ciclos
3 ciclos
40 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
variaciones en los resultados próximos al mínimo absoluto, los valores que se salen del
intervalo seleccionado se consideran malas soluciones.
Figura 2-9: Resultados agrupados del algoritmo de recocido simulado
En la siguiente gráfica se presentan los tiempos de ejecución para la totalidad de las
simulaciones realizadas.
Figura 2-10: Tiempos de ejecución agrupados algoritmos de recocido simulado
$ 1,5
$ 1,6
$ 1,7
$ 1,8
$ 1,9
$ 2,0
$ 2,1
$ 2,2
1 c
iclo
2 c
iclo
s
3 c
iclo
s
1 c
iclo
2 c
iclo
s
3 c
iclo
s
1 c
iclo
2 c
iclo
s
3 c
iclo
s
1 c
iclo
2 c
iclo
s
3 c
iclo
s
1 c
iclo
2 c
iclo
s
3 c
iclo
s
1 c
iclo
2 c
iclo
s
3 c
iclo
s
1 c
iclo
2 c
iclo
s
3 c
iclo
s
1 c
iclo
2 c
iclo
s
3 c
iclo
s
Prueba 1 Prueba 2 Prueba 3 Prueba 4 Prueba 5 Prueba 6 Prueba 7 Prueba 8
Co
sto
to
tal X
10
00
[$
]
Resultado del algoritmo SA
10 PJ 100 PJ 1.000 PJ 10.000 PJ 100.000 PJ
0
200
400
600
800
1000
1200
1 c
iclo
2 c
iclo
s
3 c
iclo
s
1 c
iclo
2 c
iclo
s
3 c
iclo
s
1 c
iclo
2 c
iclo
s
3 c
iclo
s
1 c
iclo
2 c
iclo
s
3 c
iclo
s
1 c
iclo
2 c
iclo
s
3 c
iclo
s
1 c
iclo
2 c
iclo
s
3 c
iclo
s
1 c
iclo
2 c
iclo
s
3 c
iclo
s
1 c
iclo
2 c
iclo
s
3 c
iclo
s
Prueba 1 Prueba 2 Prueba 3 Prueba 4 Prueba 5 Prueba 6 Prueba 7 Prueba 8
Tie
mp
o [
s]
Tiempo de ejecución del algoritmo SA
10 PJ 100 PJ 1.000 PJ 10.000 PJ 100.000 PJ
Capítulo 2 41
Las pruebas 3, 4, 7 y 8 mostraron los peores resultados generales y tiene en común el
punto de inicio P0 = (1, 1, 1), lo que parece indicar que el algoritmo de recocido simulado
presenta una gran sensibilidad con respecto a este parámetro, sin embargo, las pruebas 4
y 8 llegaron a óptimos próximos al absoluto con 10.000 y 100.000 puntos de juicio, esta
últimas pruebas comparten el intervalo de generación de puntos de juicio de [-50, 50], lo
que indica que el algoritmo obtiene malas soluciones cuando se definen puntos de inicio
cercanos a 0 y los puntos de juicio están limitados al intervalo [-xac, xac]. Este
comportamiento se debe a que en este caso el algoritmo genera puntos de juicio que están
limitados por la magnitud del estado actual del problema de optimización (1,1,1) y siendo
este un valor pequeño el algoritmo se queda atrapado en esa región del espacio de
posibles soluciones.
Descartando las pruebas 3 y 7, los resultados obtenidos con el algoritmo de recocido
simulado con punto de inicio P0 = (1, 1, 1) para 10.000 o más puntos de juicio son muy
similares a los que se obtuvieron con puntos de juicio más convenientes, lo que indica que
el algoritmo no presenta sensibilidad con respecto al punto de inicio.
Los resultados de las pruebas 5, 6 y 8 evidencian diferencias significativas con hasta
10.000 puntos de juicio, mientras que para 100.000 puntos de juicio las soluciones tienden
a estabilizarse, por otra parte, los resultados de las pruebas 1, 2 y 4 tienden a ser más
estables. Lo anterior muestra que con el coeficiente de temperatura 𝜃𝑛2 se aplica la filosofía
de la dinámica de metrópolis con la que se busca una exploración inicial del espacio de
posibles soluciones seguida de la intensificación en una región particular.
El tiempo de ejecución con tres ciclos llega a ser hasta 3,71 veces el que se requiere con
uno, sin embargo, los resultados no muestran mejoras en función de los ciclos, lo que
indica que no es conveniente emplear el algoritmo de recocido simulado con más de un
ciclo en la programación de la operación de sistemas de potencia.
Los resultados muestran que el grupo de parámetros con mejor desempeño son los de la
prueba 6, por lo que serán los implementados en los desarrollos posteriores.
En el anexo A se presenta el código de MATLAB que se elaboró para realizar la pruebas
con el algoritmo de recocido simulado.
42 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Con el resultado anterior se avanzó en el cumplimiento del primer objetivo específico de
este trabajo final, que se cumple en su totalidad en el siguiente capítulo mediante la
construcción del algoritmo que combina las técnicas de recocido simulado y gradiente
descendente.
.
3. Programación de la operación de sistemas de potencia empleando el algoritmo híbrido
En el capítulo dos se determinaron los parámetros de funcionamiento del algoritmo de
recocido simulado para adaptarlo a problemas de programación de la operación de
sistemas de potencia, en este capítulo se combina el resultado anterior con el algoritmo
analítico del gradiente y se emplea para programar la operación de sistemas de potencia
considerando pérdidas de transmisión. Inicialmente se construyó el algoritmo híbrido para
programar la operación del sistema de potencia de pruebas del capítulo dos y así poder
comparar los resultados de las técnicas estocástica e híbrida y verificar que exista una
mejora, posteriormente se extendió el método para un sistema de pruebas de dimensiones
reales.
A continuación se presenta el algoritmo híbrido que se construyó.
3.1 Algoritmo híbrido
Los métodos de optimización estocásticos que están basados completamente en la
generación aleatoria de puntos de juicio, como el que se desarrolló en el capítulo dos,
pueden resultar de convergencia lenta en problemas multidimensionales, por lo que para
esos casos resulta útil combinarlos con técnicas analíticas y así formar un algoritmo
híbrido[14]. En este trabajo final de maestría se combinó el algoritmo de recocido simulado
con la técnica de optimización del gradiente para formar el algoritmo híbrido que se
describe con los siguientes pasos.
1.) Inicialización: Se establece un punto de inicio 𝑥0 y el número máximo de
iteraciones 𝑛𝑚. Se fija la iteración actual en cero: 𝑛 ← 0
44 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
2.) Iteraciones: El estado actual es 𝑥𝑛 y se determinará 𝑥𝑛+1 a partir de los siguientes
tres pasos sucesivos.
• Determinístico: Se genera un nuevo valor 𝑡0 aplicando el algoritmo del gradiente
descendente 𝑡0 = 𝑥𝑛 − 𝑐 ∗ ∇F.
• Perturbación estocástica:
o Generación: Para 𝑖 = 1,… . , 𝑛𝑟 se generan aleatoriamente puntos de juicio
𝑡𝑖 = 𝑡0 + (Δ𝑥𝑛)𝑖 .
o Selección: Se determina �̃�𝑛 empleando el criterio de selección de metrópoli,
descrito por la siguiente ecuación,
�̃�𝑛 = {
𝑡𝑖, 𝑠𝑖 𝑓(𝑡0) ≥ 𝑓(𝑡𝑖)
𝑡𝑖 , 𝑠𝑖 𝑓(𝑡0) < 𝑓(𝑡𝑖) 𝑦 𝑠𝑖 𝑢 < 𝑐𝑛𝑡0, 𝑓(𝑡0) < 𝑓(𝑡𝑖) 𝑦 𝑠𝑖 𝑢 ≥ 𝑐𝑛
(3-1)
Donde, 𝑢 es un número aleatorio distribuido uniformemente en el intervalo (0,1) y 𝑐𝑛 se
define como,
𝑐𝑛 = 𝑒−(𝑓(𝑡𝑖)−𝑓(𝑡0)
𝜃𝑛) (3-2)
{𝜃𝑛} 𝑛 𝜖 ℕ es el coeficiente de temperatura, una secuencia decreciente de números reales
positivos escogido con base en las conclusiones del capítulo dos.
• Selección: Se determina 𝑥𝑛+1 empleando el criterio de selección elitista descrito
con la siguiente ecuación,
𝑥𝑛+1 = min{𝑓(𝑥𝑛); 𝑓(�̃�𝑛)} = {𝑥𝑛 , 𝑠𝑖 𝑓(𝑥𝑛) < 𝑓(�̃�𝑛)
�̃�𝑛, 𝑠𝑖 𝑓(𝑥𝑛) ≥ 𝑓(�̃�𝑛) (3-3)
3.) Finalización: si 𝑛 < 𝑛𝑚 entonces se incrementa el valor actual de la iteración 𝑛 ∶
𝑛 ← 𝑛 + 1 y se vuelve al punto 2, en caso contrario, se detienen las iteraciones y
se estima el mínimo como 𝑚 ≈ 𝑓(𝑥𝑛) y 𝑥∗ ≈ 𝑥𝑛.
Capítulo 3 45
El desarrollo temático del capítulo dos y la fundamentación del capítulo uno sirvieron como
base para la elaboración del algoritmo híbrido presentado anteriormente, con lo cual se dio
cumplimiento al primer objetivo específico planteado para este trabajo final de maestría.
Lo presentado en esta sección representa una mejora frente al algoritmo del capítulo dos,
y para corroborarlo se usó en el mismo problema que se planteó en esa oportunidad, en
la siguiente se presentan los resultados comparativos para el sistema de dos generadores
convencionales y uno solar.
3.2 Comparación de los algoritmos estocástico e híbrido
Se realizó una nueva prueba empleando el algoritmo híbrido y teniendo en cuentas las
conclusiones del capítulo dos en lo referente a los parámetros del algoritmo de recocido
simulado, el sistema de pruebas es el mismo que se empleó en el capítulo anterior con el
objetivo de verificar el comportamiento del algoritmo híbrido frente a uno netamente basado
en la generación de puntos de juicio.
Como referencia comparativa se empleó la prueba 6 del capítulo anterior debido a que fue
el caso de mayor exactitud y precisión. El algoritmo híbrido se corrió con 10 pasos para el
componente analítico del gradiente y con 10, 100, 10.000 y 100.000 puntos de juicio, se
usaron los mismos parámetros del componente estocástico que fueron empleados en la
prueba 6, los cuales se muestran a continuación.
𝜃𝑛 =1
√ln(1+𝛽
𝛼 𝑛)
P0 = (30, 30, 20).
Intervalo de puntos de juicio [-50, 50].
Los resultados obtenidos con el algoritmo híbrido y los de la prueba 6 se muestran Tabla
3-1 y en la
Figura 3-1.
46 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Tabla 3-1: Resultados prueba algoritmo híbrido
Puntos de
juicio
Algoritmo de
recocido simulado Algoritmo híbrido
Tiempo [s]
Costo total [$]
Tiempo [s]
Costo total [$]
10 0,176 2,034E+03 0,873 1,857E+03
100 0,410 2,034E+03 3.096 1,882E+03
1000 34,563 1,898E+03 29,759 1,868E+03
10000 34,563 1,800E+03 316,523 1,791E+03
100000 354,863 1,766E+03 3429.593 1.762 E+03
Figura 3-1: Resultado de prueba algoritmo híbrido
En la prueba con el algoritmo híbrido el costo total mínimo encontrado fue $1.762 mientras
que con el algoritmo de recocido simulado fue $1.766, además el resultado para cada una
de las simulaciones realizadas con el algoritmo híbrido fue mejor que el de su contraparte
netamente estocástico. Adicionalmente, el algoritmo híbrido mostró una mejora
significativa en la precisión porque sus resultados son muy próximos al mínimo desde la
simulación con 10 puntos de juicio. Lo anterior muestra que para problemas de pocas
dimensiones se puede emplear el algoritmo híbrido con una menor cantidad de puntos de
juicio y obtener valores similares a los que se obtendrían con algoritmos estocásticos
Capítulo 3 47
considerando más iteraciones, lo anterior sugiere que el algoritmo híbrido puede resolver
problemas de mayor proporción.
El aspecto negativo del algoritmo híbrido frente al de recocido simulado es el aumento en
los tiempos de simulación, que incrementaron casi 10 veces cuando se consideraron
10.000 y 100.000 puntos de juicio, sin embargo, esto se contrarresta con la mejora en el
rendimiento, debido a que para un mismo problema se requerirían menos puntos de juicio
que con su contraparte netamente estocástica, lo que hace que los tiempos de simulación
se balanceen.
Una vez se verificó la mejora que representa la combinación de algoritmos estocásticos y
analíticos frente a las técnicas netamente basadas en la generación de puntos aleatorios
se procede a implementar el algoritmo híbrido en el sistema de pruebas de la IEEE de 57
nodos.
3.3 Implementación del algoritmo híbrido en el sistema de pruebas de 57 barras de la IEEE
En esta sección se muestra el procedimiento que se siguió para implementar el algoritmo
construido en un sistema de potencia de dimensiones reales. A continuación, se presenta
el sistema de pruebas.
3.3.1 Sistema de 57 barras de la IEEE
El sistema de pruebas de 57 barras de la IEEE representa una parte del sistema eléctrico
del medio oeste de los Estados Unidos, tal como era en los primeros años de la década
de 1960 [36]. En la Figura 3-2 se muestra un diagrama unifilar del sistema de pruebas
considerado.
48 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Figura 3-2: Sistema de prueba de 57 barras de la IEEE [37]
En la Tabla 3-2 se presentan los datos de los generadores conectados al sistema de
potencia de pruebas[36].
Tabla 3-2: Generadores del sistema de prueba de 57 barras de la IEEE
Generador bus Pmax
[MW]
Pmin
[MW]
Qmax
[MVAR]
Qmin
[MVAR]
1 1 575,880 0 200 -140
2 2 100,000 0 50 -17
3 3 140,000 0 60 -10
4 6 100,000 0 25 -8
5 8 550,000 0 200 -140
6 9 100,000 0 9 -3
7 12 410,000 0 155 -150
Capítulo 3 49
Originalmente los generadores del sistema son todos convencionales, sin embargo, para
este trabajo final de maestría se remplazó el generador 3 por uno solar, a continuación se
presentan las funciones de costo consideradas para los generadores convencionales[36].
𝐶𝑐,1 = 0.077579519𝑃𝑐,𝑠,12 + 20𝑃𝑐,𝑠,1 (3-4)
𝐶𝑐,2 = 0.01𝑃𝑐,𝑠,22 + 40𝑃𝑐,𝑠,2 (3-5)
𝐶𝑐,4 = 0.01𝑃𝑐,𝑠,42 + 40𝑃𝑐,𝑠,2 (3-6)
𝐶𝑐,5 = 0.0222222222𝑃𝑐,𝑠,52 + 20𝑃𝑐,𝑠,5 (3-7)
𝐶𝑐,6 = 0.01𝑃𝑐,𝑠,62 + 20𝑃𝑐,𝑠,6 (3-8)
𝐶𝑐,7 = 0.0322580645𝑃𝑐,𝑠,72 + 20𝑃𝑐,𝑠,7 (3-9)
Los costos de generación del generador 3 se consideraron con la metodología de los
costos de incertidumbre presentada en el capítulo uno, empleando los siguientes
parámetros.
Tabla 3-3: Parámetros del generador 3
Parámetros costos de incertidumbre del generador fotovoltaico
𝛽: Desviación estándar de la distribución Log-normal. 0.25
𝜆: media de la distribución Log-normal. 6
𝐺𝑟: Valor nominal de irradiancia en el entorno geométrico [W/m2]. 1000
𝑅𝑐: Valor de irradiancia de referencia [W/m2]. 150
𝑊𝑃𝑉 𝑟: Potencia activa nominal de la planta fotovoltaica [MW]. 65
𝑊𝑃𝑉,∞: Máxima potencia de salida [MW]. 100
𝐶𝑃𝑉,𝑢,𝑖: Costo de penalización por subestimar la potencia disponible [$/MW]. 30
50 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Parámetros costos de incertidumbre del generador fotovoltaico
𝐶𝑃𝑉,𝑜,𝑖: Costo de penalización por sobrestimar la potencia disponible [$/MW]. 70
Adicionalmente, en este caso se consideraron las pérdidas en el sistema de transmisión,
lo anterior implica un ajuste en el componente analítico del algoritmo que se detalla en la
siguiente sección.
3.3.2 Consideración de pérdidas de transmisión con técnicas de
optimización analíticas
Cuando se emplean técnicas de optimización analíticas en la programación de la operación
de sistemas de potencia la función objetivo se reescribe de la siguiente forma[18].
𝐿 = 𝐶𝑡 + 𝜆(𝑃𝐷 + 𝑃𝐿 −∑ 𝑃𝑖
𝑛𝑔𝑖=1 ) + ∑ 𝜇𝑖(max)(𝑃𝑖 − 𝑃𝑖(max)) +
𝑛𝑔𝑖=1
∑ 𝜇𝑖(min)(𝑃𝑖 − 𝑃𝑖(min))𝑛𝑔𝑖=1
(3-10)
Donde:
𝐶𝑡: Es la función de costo total de generación del sistema de potencia.
𝑃𝐷: Es la potencia demandada en el sistema de potencia.
𝑃𝐿: Es la potencia pérdida en la transmisión de energía eléctrica.
𝑃𝑖: Es la potencia programada en el generador 𝑖.
𝑃𝑖(max): Es la potencia nominal del generador 𝑖.
𝑃𝑖(min): Es la potencia mínima que puede despachar el generador 𝑖.
𝜆: Es el primer multiplicador de Lagrange
𝜇𝑖(max): Es el segundo multiplicador de Lagrange y es “0” cuando 𝑃𝑖 < 𝑃𝑖(max).
𝜇𝑖(min): Es el tercer multiplicador de Lagrange y es “0” cuando 𝑃𝑖 > 𝑃𝑖(min).
Es decir 𝜇𝑖(max) y 𝜇𝑖(min) son nulos cuando las restricciones de desigualdad asociadas a
los generadores se satisfacen.
Capítulo 3 51
Teniendo en cuenta la ecuación anterior, el gradiente de la función objetivo definido en la
ecuación (1-29) para aplicar el algoritmo analítico queda de la siguiente forma cuando se
respetan las restricciones de desigualdad[18].
∇F = (1
1−𝜕𝑃𝐿𝜕𝑃𝑖
)𝑑𝐶𝑖
𝑑𝑃𝑖− 𝜆 (3-11)
Donde:
𝑃𝐿: Es la potencia pérdida en la transmisión de energía eléctrica.
𝑃𝑖: Es la potencia programada en el generador 𝑖.
𝐶𝑖: Es la función de costo de generación del generador 𝑖..
𝜆: Es el primer multiplicador de Lagrange
Para el componente analítico del algoritmo híbrido se empleó la ecuación (1-30), definiendo
el paso de cada iteración con la ecuación (3-11).
3.3.3 Resultados de la implementación del algoritmo híbrido en el
sistema de pruebas de la IEEE
Se implementó el algoritmo híbrido construido en la programación de la operación del
sistema de potencia de pruebas, realizando simulaciones para 10, 100, 1.000, 10.000 y
100.000 puntos de juicio y considerando los siguientes valores de inicio.
𝑃10 = 316 [𝑀𝑊], 𝑃20 = 0 [𝑀𝑊], 𝑃30 = 316 [𝑀𝑊], 𝑃40 = 0 [𝑀𝑊], 𝑃50 = 317 [𝑀𝑊], 𝑃60 =
0 [𝑀𝑊], 𝑃70 = 316 [𝑀𝑊]
Para contemplar las pérdidas en el sistema de transmisión se usó el método de los
coeficientes de pérdidas presentado en el capítulo uno y la herramienta MATPOWER [15]
en MATLAB con licencia de la Universidad Nacional de Colombia. El punto de inicio se
seleccionó convenientemente a partir del flujo de carga de MATPOWER para el archivo
‘case 57’[15].
Los resultados obtenidos se presentan en la Tabla 3-4.
52 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Tabla 3-4: Resultados de la programación de la operación del sistema de 57 barra de
la IEEE con el algoritmo híbrido
Puntos de
juicio
Algoritmo híbrido
Tiempo [s]
Costo total [$]
10 0.535 4.734 E+04
100 1.883 4.669 E+04
1000 12.058 4.634 E+04
10000 101.366 4.599 E+04
100000 1436.135 4.566 E+04
En esta sección se implementó el algoritmo de optimización híbrido construido en la
programación de la operación del sistema de 57 nodos de la IEEE, incluyendo generación
solar y con esto se dio cumplimiento al segundo objetivo específico propuesto para este
trabajo final de maestría.
3.4 Comparación de los algoritmos híbrido y de enjambre
de partículas (PSO)
Con el propósito de validar el rendimiento del algoritmo híbrido se programó la operación
del sistema de 57 barras de la IEEE empleando el algoritmo de enjambre de partículas
(PSO) en la herramienta Global Optimización Toolbox de MATLAB, con licencia de la
Universidad Nacional de Colombia. El algoritmo de enjambre de partículas es una técnica
de optimización metaheurística reconocida por su funcionalidad en este tipo de problemas.
En la Tabla 3-5 y la Figura 3-3 se presentan los resultados obtenidos, en el algoritmo
híbrido se varió la cantidad de puntos de juicio mientras que para el algoritmo de enjambre
de partículas (PSO) se modificó el número de partículas en el enjambre.
Capítulo 3 53
Tabla 3-5: Resultados validación algoritmo híbrido
Partículas en el enjambre
/ Puntos de juicio
Algoritmo PSO Algoritmo híbrido
Tiempo [s]
Costo total [$]
Tiempo [s]
Costo total [$]
10 1.772 7.865 E+04 0.535 4.734 E+04
100 18.719 5.954 E+04 1.883 4.669 E+04
1000 428.397 4.901 E+04 12.058 4.634 E+04
10000 5013.816 4.5811 E+04 101.366 4.599 E+04
100000 N/A* N/A* 1436.135 4.566 E+04
*No se pudo completar la simulación porque se excedió la capacidad de procesamiento
del software.
Figura 3-3: Resultados validación algoritmo hibrido
Las potencias programadas en el mejor resultado empleando el algoritmo PSO (10.000
partículas en el enjambre) se presentan a continuación,
𝑃1𝑠 = 342,622 [𝑀𝑊], 𝑃2𝑠 = 0 [𝑀𝑊], 𝑃3𝑠 = 63,232 [𝑀𝑊], 𝑃4𝑠 = 0 [𝑀𝑊], 𝑃5𝑠 =
546,322 [𝑀𝑊], 𝑃6𝑠 = 0 [𝑀𝑊], 𝑃7𝑠 = 322,733 [𝑀𝑊].
Mientras que las potencias despachadas en el mejor resultado empleando el algoritmo
híbrido (100.000 puntos de juicio) son las siguientes,
54 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
𝑃1𝑠 = 361 [𝑀𝑊], 𝑃2𝑠 = 0 [𝑀𝑊], 𝑃3𝑠 = 30 [𝑀𝑊], 𝑃4𝑠 = 0 [𝑀𝑊], 𝑃5𝑠 = 482 [𝑀𝑊], 𝑃6𝑠 =
0 [𝑀𝑊], 𝑃7𝑠 = 400 [𝑀𝑊].
Las pruebas realizadas muestran que el algoritmo híbrido tiene un mejor rendimiento que
el de enjambre de partículas, con el primero se obtuvieron mejores puntos de operación
en todos los casos considerados, con resultados que se acercan al mínimo desde la prueba
con 10 puntos de juicio.
Los tiempos de ejecución empleando el algoritmo híbrido son menores, la diferencia entre
las dos técnicas se hace más significativa a medida que se aumentan las iteraciones
llegando a ser hasta 50 veces más grandes los tiempos del algoritmo PSO.
La carga computacional requerida por el algoritmo híbrido es baja, por lo que es un método
bastante eficiente para programar la operación de sistemas de potencia. Como se muestra
en la Tabla 3-5 el algoritmo de enjambre de partículas superó la capacidad de
procesamiento de MATLAB cuando se emplearon 100.000 iteraciones, mientras que para
la técnica híbrida esta dimensión no representó un problema realizando la simulación en
24 minutos.
El algoritmo híbrido desarrollado mostró alta precisión y exactitud, los resultados se
acercaron al mínimo desde el caso de 10 puntos de juicio y presentaron una diferencia de
$168 entre los resultados de los extremos, lo que representa apenas el 3,68% del costo
total mínimo encontrado.
Con la comparación anterior se validó el rendimiento del algoritmo híbrido, proceso que
permitió alcanzar el tercer objetivo específico planteado para el desarrollo del presente
documento, lo cual sumado a lo descrito en las secciones 3.1 y 3.3 constituye el
cumplimiento del objetivo general de este trabajo final de maestría
4. Conclusiones y recomendaciones
4.1 Conclusiones generales
1. Se construyó un algoritmo de optimización híbrido combinando la técnica de
recocido simulado con la del gradiente y se implementó en la programación de la
operación de sistemas de potencia con generadores solares exitosamente, los
resultados muestran que es una técnica con potencial para ser empleada en este
tipo de problemas porque permite encontrar puntos de operación eficientes, en
tiempos reducidos y con baja carga computacional.
2. Se demostró que la combinación de técnicas de optimización estocásticas y
analíticas resulta conveniente para minimizar funciones de costos de generación
de sistemas de potencia modernos. En el capítulo 2 se determinaron los parámetros
del componente estocástico que mejor se adapta a este tipo de problemas, en el
capítulo 3 se combinó con el algoritmo analítico y se evidenció una mejora en el
rendimiento. El algoritmo construido se puso a prueba en varios escenarios lo que
permitió determinar los parámetros apropiados para el problema a resolver.
3. Se empleó el algoritmo híbrido en el sistema de pruebas de 57 barras de la IEEE,
considerando pérdidas de transmisión y generación solar, los resultados se
presentan en el capítulo 3 y muestran que el algoritmo híbrido es preciso y requiere
de tiempos de simulación reducidos.
4. El algoritmo híbrido mostró un mejor rendimiento que la técnica de optimización
PSO en la programación de la operación del sistema de potencia de pruebas. En
el capítulo 3 se evidencia que con la técnica híbrida se obtienen mejores puntos de
56 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
operación, con tiempos de simulación hasta 50 veces menores y con una carga
computacional reducida.
4.2 Conclusiones capítulo 2
1. El algoritmo de recocido simulado muestra potencial para la programación de la
operación de sistemas de potencia reales con generadores renovables. Empleando
SA en el sistema de potencia de prueba se obtuvieron costos de operación óptimos,
con tiempos de ejecución y requerimiento computacional razonables.
2. El coeficiente de temperatura debe permitir que se aplique la filosofía de la dinámica
de metrópolis. Este criterio se debe seleccionar para que decrezca rápidamente de
forma que en las primeras iteraciones se permitan cambios de estado con valores
de referencia del orden del mínimo absoluto.
3. El algoritmo de recocido simulado requiere de un gran número de iteraciones para
asegurar que se llegue a resultados óptimos. En las pruebas realizadas se
obtuvieron resultados aceptables con 100.000 puntos de juicio.
4. Es conveniente limitar la generación de punto de juicio a un intervalo fijo,
seleccionado convenientemente a partir de las potencias nominales de los
generadores conectados al sistema. El intervalo [−𝑃𝑔𝑚, 𝑃𝑔𝑚] mostró buenos
resultados para el sistema de prueba donde los generadores eran similares, siendo
Pgm la potencia nominal del generador más grande del sistema.
5. El algoritmo de recocido simulado no presenta sensibilidad al punto de inicio
siempre que se empleen un gran número de puntos de juicio y se limite
adecuadamente el intervalo para la generación de puntos de juicio como
recomiendan las conclusiones 3 y 4.
6. El algoritmo de recocido simulado se debe emplear con un ciclo en la programación
de la operación de sistemas de potencia, no se evidenció ninguna mejora en los
Conclusiones y recomendaciones 57
resultados al emplear dos y tres ciclos, sin embargo, el tiempo de ejecución sí
aumenta considerablemente.
4.3 Conclusiones capítulo 3
1. El algoritmo híbrido construido presentó un mejor desempeño que el algoritmo de
recocido simulado, el mínimo identificado con la ejecución del primero fue $4 más
económico que el evidenciado al emplear el segundo en el sistema de pruebas de
3 generadores. Lo anterior obedece a que la incorporación del componente
analítico le permite al algoritmo híbrido escapar de mínimos locales con mayor
facilidad que las técnicas netamente estocásticas.
2. El algoritmo híbrido mostró una mejora significativa en la precisión con respecto al
algoritmo de recocido simulado. Los resultados de los extremos con la técnica
construida difieren en $95 mientras que para el algoritmo estocástico la diferencia
es $268 en el sistema de 3 generadores.
3. El algoritmo híbrido requiere más tiempo de simulación y mayor carga
computacional que la técnica de recocido simulado para un mismo número de
puntos de juicio, sin embargo, también requiere de menos puntos de juicio para
llegar a resultados similares.
4. El algoritmo híbrido mostró capacidad para resolver problemas de mayores
dimensiones que las técnicas netamente estocásticas, por lo que resulta útil para
programar la operación de sistemas de potencia de dimensiones reales.
4.4 Recomendaciones y trabajos futuros
Los algoritmos que combinan técnicas estocásticas y analíticas mostraron ser bastante
rápidos y de bajo costo computacional por lo que constituyen una buena alternativa para
programar la operación de sistemas de potencia en tiempo real o considerando un gran
número de escenarios.
58 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Durante el desarrollo del presente trabajo final de maestría se encontró que los valores de
las pérdidas en el sistema de transmisión presentan irregularidades cuando el escenario
de despacho se aleja de las condiciones bajo las que se calcularon los coeficientes de
Kron, por lo que se sugiere trabajar e implementar coeficientes más robustos para
considerar las pérdidas de transmisión de energía.
A. Anexo: Código en MATLAB del algoritmo de recocido simulado
function [P1sol, P2sol, Wssol, Csol] = stoc_desc(P10, P20, Ws0, ntmax,
ncmax, alea, a, b, c,aalfa,bbeta) tic % %Parámetros de entrada P10=[30]% Punto de inicio del generador 1 P20=[30]% Punto de inicio del generador 2 Ws0=[20]% Punto de inicio del generador solar ntmax=100000% número máximo de puntos de juicio ncmax=1 % número máximo de ciclos % alea: Función generadora de puntos aleatorios alea=@(lw,hg) randi([lw hg],1,1)%Función elegida a conveniencia del
usuario
aalfa=0.01 % Parámetro de la función del coeficiente de temperatura bbeta=0.00000001 % Parámetro de la función del coeficiente de
temperatura teta = @(nit) (1)/(sqrt(log(1+(bbeta/aalfa)*nit))); % Coeficiente de
temperatura (Función elegida a conveniencia del usuario) dynamics = @(P1c, P2c, Wsc, Cc, P1t, P2t, Wst, Ct, nit)
metropolis_dynamics (P1c, P2c, Wsc, Cc, P1t, P2t, Wst, Ct, aalfa, bbeta,
nit, teta); [P1sol, P2sol, Wssol, Csol] = stoc_iterations (P10, P20, Ws0, ntmax,
ncmax, alea, dynamics); toc return; end
function [P1sol, P2sol, Wssol, Csol] = stoc_iterations (P10, P20, Ws0,
ntmax, ncmax, alea, dynamics)
P1ac = P10; P2ac = P20; Wsac = Ws0; if P10 < 0 w=1000000 elseif P10 > 100 w=1000000 else w=0 end if P20 < 0
60 Programación de la operación de sistemas de potencia con generadores
solares empleando técnicas de optimización estocásticas
y=1000000 elseif P20 > 100 y=1000000 else y=0 end if Ws0 < 0 z=1000000 elseif Ws0 > 65 z=1000000 else z=0 end Cac =
[500+10*P10+0.2*P10^2+15*P20+0.4*P20^2+CostoFotovoltaico(abs(Ws0))+10000
00*(abs(P10+P20+Ws0-80))+w*abs(P10)+y*abs(P20)+z*abs(Ws0)]; for nc = 1: ncmax P1c = P1ac; P2c = P2ac; Wsc=Wsac; Cc = Cac; for nit = 1: ntmax [P1t] = trial_point (P1c, 1, alea); [P2t] = trial_point (P2c, 1, alea); [Wst] = trial_point (Wsc, 1, alea); if P1t < 0 k=1000000 elseif P1t > 100 k=1000000 else k=0 end if P2t < 0 l=1000000 elseif P2t > 100 l=1000000 else l=0 end if Wst < 0 m=1000000 elseif Wst > 65 m=1000000 else m=0 end Ct =
[500+10*P1t+0.2*P1t^2+15*P2t+0.4*P2t^2+CostoFotovoltaico(abs(Wst))+10000
00*(abs(P1t+P2t+Wst-80))+k*abs(P1t)+l*abs(P2t)+m*abs(Wst)]; [P1c, P2c, Wsc, Cc] = dynamics (P1c, P2c, Wsc, Cc, P1t, P2t, Wst, Ct,
nit);
end; P1ac = P1c; P2ac = P2c;
Anexo A. Código en MATLAB del algoritmo de recocido simulado 61
Wsac = Wsc; Cac = Cc;
end; P1sol = Cac; P2sol = Cac; Wssol = Cac; Csol= Cac; Creal=[500+10*P1c+0.2*P1c^2+15*P2c+0.4*P2c^2+CostoFotovoltaico(abs(Wsc))
]; fprintf('%d\n',P1c) fprintf('%d\n',P2c) fprintf('%d\n',Wsc) fprintf('%d\n',Cac) fprintf('%d\n',Creal) return; end
function [P1d, P2d, Wsd, Cd] = metropolis_dynamics (P1ac, P2ac, Wsac,
Cac, P1t, P2t, Wst, Ct, a, b, nit, teta)
if Ct < 0 P1d = P1ac; P2d = P2ac; Wsd = Wsac; Cd = Cac; elseif Ct < Cac P1d = P1t; P2d = P2t; Wsd = Wst; Cd = Ct; else teta_n = teta (nit); aux = -(b + ((Ct - Cac + a)/teta_n)) ; c = exp (aux); test = rand(); if test < c P1d = P1t; P2d = P2t; Wsd = Wst; Cd = Ct; else P1d = P1ac; P2d = P2ac; Wsd = Wsac; Cd = Cac;
end; end; return; end
function [xt] = trial_point (xac, nt, alea)
n=length(xac);
62 Programación de la operación de sistemas de potencia con generadores
solares empleando técnicas de optimización estocásticas
xt = zeros (n, nt); dx = alea (-50, 50); for i = 1: nt xt(:,i) = xac + dx(:,i); end; return; end
function [COSTOESPERADO_AnaliticoSOLAR]=CostoFotovoltaico(Ws
Ver: [24]
B. Anexo: Código en MATLAB para el algoritmo híbrido
function [P1sol, P2sol, Wssol, P4sol, P5sol, P6sol, P7sol, Csol] =
gradient_desc_stoc_pert(P10, P20, WS0, P40, P50, P60, P70, nitmax,
npert, alea, a, b, c, aalfa, bbeta, dynamics_pert, dynamics_it) tic %
%Parámetros de entrada P10=[316]% Punto de inicio del generador 1 P20=[0]% Punto de inicio del generador 2 Ws0=[316] % Punto de inicio del generador solar
P40=[0] % Punto de inicio del generador 4 P50=[317] % Punto de inicio del generador 5 P60=[0] % Punto de inicio del generador 6 P70=[316] % Punto de inicio del generador 7 nitmax=7% número máximo de pasos para el gradiente npert=100000% número máximo de puntos de juicio
% alea: Función generadora de puntos aleatorios
alea=@(lw,hg) randi([lw hg],1,1) %Función elegida a conveniencia del
usuario
aalfa=4000% Parámetro de la función del coeficiente de temperatura bbeta=0.00000001% Parámetro de la función del coeficiente de temperatura teta = @(np) (1)/(sqrt(log(1+(bbeta/aalfa)*np))); % Coeficiente de
temperatura (Función elegida a conveniencia del usuario) dynamics_pert = @(P1c, P2c, Wsc, P4c, P5c, P6c, P7c, Cc, P1t, P2t, Wst,
P4t, P5t, P6t, P7t, Ct, np) metropolis_dynamics (P1c, P2c, Wsc, P4c,
P5c, P6c, P7c, Cc, P1t, P2t, Wst, P4t, P5t, P6t, P7t, Ct, aalfa, bbeta,
np, teta); dynamics_it = @(P1ac, P2ac, Wsac, P4ac, P5ac, P6ac, P7ac, Cac, P1c, P2c,
Wsc, P4c, P5c, P6c, P7c, Cc, nit) elitist_dynamics (P1ac, P2ac, Wsac,
P4ac, P5ac, P6ac, P7ac, Cac, P1c, P2c, Wsc, P4c, P5c, P6c, P7c, Cc,
nit); [P1sol, P2sol, Wssol, P4sol, P5sol, P6sol, P7sol, Csol] =
stoc_pert_iterations (P10, P20, Ws0, P40, P50, P60, P70, nitmax, npert,
alea, dynamics_pert, dynamics_it); toc return; end
function [P1sol, P2sol, Wssol, P4sol, P5sol, P6sol, P7sol, Csol] =
stoc_pert_iterations (P10, P20, Ws0, P40, P50, P60, P70, nitmax, npert,
alea, dynamics_pert, dynamics_it)
64 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Título de la tesis o trabajo de investigación
mpc=loadcase('case57'); Sb=mpc.baseMVA; [B B0 B00 PL PLV]=KronCoeff(case57); lr=0.01; ngen=7; P1min=0; P1max=576; P2min=0; P2max=100; Wsmin=0; Wsmax=65; P4min=0; P4max=100; P5min=0; P5max=550; P6min=0; P6max=100; P7min=0; P7max=410; PD=1251; a1=0.077579519; a2=0.01; a4=0.01; a5=0.0222222222; a6=0.01; a7=0.0322580645; b1=20; b2=40; b4=40; b5=20; b6=40; b7=20; c1=0; c2=0; c4=0; c5=0; c6=0; c7=0; P1ac = P10; P2ac = P20; Wsac = Ws0; P4ac = P40; P5ac = P50; P6ac = P60; P7ac = P70; if P10 < P1min Cpz10=1000000; elseif P10 > P1max Cpz10=1000000; else Cpz10=0; end if P20 < P2min Cpz20=1000000;
Anexo B. Código en MATLAB para el algoritmo híbrido 65
elseif P20 > P2max Cpz20=1000000; else Cpz20=0; end if Ws0 < Wsmin Cpz30=1000000; elseif Ws0 > Wsmax Cpz30=1000000; else Cpz30=0; end if P40 < P4min Cpz40=1000000; elseif P40 > P4max Cpz40=1000000; else Cpz40=0; end if P50 < P5min Cpz50=1000000; elseif P50 > P5max Cpz50=1000000; else Cpz50=0; end if P60 < P6min Cpz60=1000000; elseif P60 > P6max Cpz60=1000000; else Cpz60=0; end if P70 < P7min Cpz70=1000000; elseif P10 > P7max Cpz70=1000000; else Cpz70=0; end Pgen0=[P10; P20; Ws0; P40; P50; P60; P70]/Sb; PL0=ceil((Pgen0'*(B)*Pgen0+B0*Pgen0+B00)*Sb);
Cac =
[(a1*P10^2+b1*P10+c1+a2*P20^2+b2*P20+c2+CostoFotovoltaico(abs(Ws0))+a4*P
40^2+b4*P40+c4+a5*P50^2+b5*P50+c5+a6*P60^2+b6*P60+c6+a7*P70^2+b7*P70+c7)
+1000000*(abs(PD+PL0-
(P10+P20+Ws0+P40+P50+P60+P70)))+Cpz10*abs(P10)+Cpz20*abs(P20)+Cpz30*abs(
Ws0)+Cpz40*abs(P40)+Cpz50*abs(P50)+Cpz60*abs(P60)+Cpz70*abs(P70)]; for nit = 1: nitmax P1grad = P1ac; P2grad = P2ac; Wsgrad = Wsac; P4grad = P4ac; P5grad = P5ac;
66 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Título de la tesis o trabajo de investigación
P6grad = P6ac; P7grad = P7ac;
for grad = 1 : ngen
Pgengrad=[P1grad; P2grad; Wsgrad; P4grad; P5grad; P6grad;
P7grad]/Sb; dPLgrad=((B)*Pgengrad+B'*Pgengrad+B0')*Sb; LP1grad=(1/(1-dPLgrad(1,1))); LP2grad=(1/(1-dPLgrad(2,1))); LWsgrad=(1/(1-dPLgrad(3,1))); LP4grad=(1/(1-dPLgrad(4,1))); LP5grad=(1/(1-dPLgrad(5,1))); LP6grad=(1/(1-dPLgrad(6,1))); LP7grad=(1/(1-dPLgrad(7,1))); dP1grad=LP1grad*(2*a1*P1grad+b1); dP2grad=LP2grad*(2*a2*P2grad+b2); dWsgrad=LWsgrad*(DERCostoFotovoltaico(abs(Wsgrad))); dP4grad=LP4grad*(2*a4*P4grad+b4); dP5grad=LP5grad*(2*a5*P5grad+b5); dP6grad=LP6grad*(2*a6*P6grad+b6); dP7grad=LP7grad*(2*a7*P7grad+b7);
if (P2grad-(lr*(dP2grad-dP1grad))) > P2max P2c1 = P2max; elseif (P2grad-(lr*(dP2grad-dP1grad))) < P2min P2c1 = P2min; else P2c1 = P2grad-(lr*(dP2grad-dP1grad)); end
if (Wsgrad-(lr*(DERCostoFotovoltaico(abs(Wsgrad))-dP1grad))) >
Wsmax Wsc1 = Wsmax; elseif (Wsgrad-(lr*(DERCostoFotovoltaico(abs(Wsgrad))-dP1grad))) <
Wsmin Wsc1 = Wsmin; else Wsc1 = Wsgrad-(lr*(DERCostoFotovoltaico(abs(Wsgrad))-
dP1grad)); end
if (P4grad-(lr*(dP4grad-dP1grad))) > P4max P4c1 = P4max; elseif (P4grad-(lr*(dP4grad-dP1grad))) < P4min P4c1 = P4min; else P4c1 = P4grad-(lr*(dP4grad-dP1grad)); end
if (P5grad-(lr*(dP5grad-dP1grad))) > P5max P5c1 = P5max; elseif (P5grad-(lr*(dP5grad-dP1grad))) < P5min
Anexo B. Código en MATLAB para el algoritmo híbrido 67
P5c1 = P5min; else P5c1 = P5grad-(lr*(dP5grad-dP1grad)); end
if (P6grad-(lr*(dP6grad-dP1grad))) > P6max P6c1 = P6max; elseif (P6grad-(lr*(dP6grad-dP1grad))) < P6min P6c1 = P6min; else P6c1 = P6grad-(lr*(dP6grad-dP1grad)); end
if (P7grad-(lr*(dP7grad-dP1grad))) > P7max P7c1 = P7max; elseif (P7grad-(lr*(dP7grad-dP1grad))) < P7min P7c1 = P7min; else P7c1 = P7grad-(lr*(dP7grad-dP1grad)); end
if (P1grad-(lr*(dP1grad-dP2grad))) > P1max P1c2 = P1max; elseif (P1grad-(lr*(dP1grad-dP2grad))) < P1min P1c2 = P1min; else P1c2 = P1grad-(lr*(dP1grad-dP2grad)); end
if (Wsgrad-(lr*(DERCostoFotovoltaico(abs(Wsgrad))-dP2grad))) >
Wsmax Wsc2 = Wsmax; elseif (Wsgrad-(lr*(DERCostoFotovoltaico(abs(Wsgrad))-dP2grad))) <
Wsmin Wsc2 = Wsmin; else Wsc2 = Wsgrad-(lr*(DERCostoFotovoltaico(abs(Wsgrad))-
dP2grad)); end
if (P4grad-(lr*(dP4grad-dP2grad))) > P4max P4c2 = P4max; elseif (P4grad-(lr*(dP4grad-dP2grad))) < P4min P4c2 = P4min; else P4c2 = P4grad-(lr*(dP4grad-dP2grad)); end
if (P5grad-(lr*(dP5grad-dP2grad))) > P5max P5c2 = P5max; elseif (P5grad-(lr*(dP5grad-dP2grad))) < P5min P5c2 = P5min; else
68 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Título de la tesis o trabajo de investigación
P5c2 = P5grad-(lr*(dP5grad-dP2grad)); end
if (P6grad-(lr*(dP6grad-dP2grad))) > P6max P6c2 = P6max; elseif (P6grad-(lr*(dP6grad-dP2grad))) < P6min P6c2 = P6min; else P6c2 = P6grad-(lr*(dP6grad-dP2grad)); end
if (P7grad-(lr*(dP7grad-dP2grad))) > P7max P7c2 = P7max; elseif (P7grad-(lr*(dP7grad-dP2grad))) < P7min P7c2 = P7min; else P7c2 = P7grad-(lr*(dP7grad-dP2grad)); end
if (P1grad-(lr*(dP1grad-dWsgrad))) > P1max P1c3 = P1max; elseif (P1grad-(lr*(dP1grad-dWsgrad))) < P1min P1c3 = P1min; else P1c3 = P1grad-(lr*(dP1grad-dWsgrad)); end
if (P2grad-(lr*(dP2grad-dWsgrad))) > P2max P2c3 = P2max; elseif (P2grad-(lr*(dP2grad-dWsgrad))) < P2min P2c3 = P2min; else P2c3 = P2grad-(lr*(dP2grad-dWsgrad)); end
if (P4grad-(lr*(dP4grad-dWsgrad))) > P4max P4c3 = P4max; elseif (P4grad-(lr*(dP4grad-dWsgrad))) < P4min P4c3 = P4min; else P4c3 = P4grad-(lr*(dP4grad-dWsgrad)); end
if (P5grad-(lr*(dP5grad-dWsgrad))) > P5max P5c3 = P5max; elseif (P5grad-(lr*(dP5grad-dWsgrad))) < P5min P5c3 = P5min; else P5c3 = P5grad-(lr*(dP5grad-dWsgrad)); end
if (P6grad-(lr*(dP6grad-dWsgrad))) > P6max
Anexo B. Código en MATLAB para el algoritmo híbrido 69
P6c3 = P6max; elseif (P6grad-(lr*(dP6grad-dWsgrad))) < P6min P6c3 = P6min; else P6c3 = P6grad-(lr*(dP6grad-dWsgrad)); end
if (P7grad-(lr*(dP7grad-dWsgrad))) > P7max P7c3 = P7max; elseif (P7grad-(lr*(dP7grad-dWsgrad))) < P7min P7c3 = P7min; else P7c3 = P7grad-(lr*(dP7grad-dWsgrad)); end
if (P1grad-(lr*(dP1grad-dP4grad))) > P1max P1c4 = P1max; elseif (P1grad-(lr*(dP1grad-dP4grad))) < P1min P1c4 = P1min; else P1c4 = P1grad-(lr*(dP1grad-dP4grad)); end
if (P2grad-(lr*(dP2grad-dP4grad))) > P2max P2c4 = P2max; elseif (P2grad-(lr*(dP2grad-dP4grad))) < P2min P2c4 = P2min; else P2c4 = P2grad-(lr*(dP2grad-dP4grad)); end
if (Wsgrad-(lr*(DERCostoFotovoltaico(abs(Wsgrad))-dP4grad))) >
Wsmax Wsc4 = Wsmax; elseif (Wsgrad-(lr*(DERCostoFotovoltaico(abs(Wsgrad))-dP4grad))) <
Wsmin Wsc4 = Wsmin; else Wsc4 = Wsgrad-(lr*(DERCostoFotovoltaico(abs(Wsgrad))-
dP4grad)); end
if (P5grad-(lr*(dP5grad-dP4grad))) > P5max P5c4 = P5max; elseif (P5grad-(lr*(dP5grad-dP4grad))) < P5min P5c4 = P5min; else P5c4 = P5grad-(lr*(dP5grad-dP4grad)); end
if (P6grad-(lr*(dP6grad-dP4grad))) > P6max P6c4 = P6max; elseif (P6grad-(lr*(dP6grad-dP4grad))) < P6min
70 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Título de la tesis o trabajo de investigación
P6c4 = P6min; else P6c4 = P6grad-(lr*(dP6grad-dP4grad)); end
if (P7grad-(lr*(dP7grad-dP4grad))) > P7max P7c4 = P7max; elseif (P7grad-(lr*(dP7grad-dP4grad))) < P7min P7c4 = P7min; else P7c4 = P7grad-(lr*(dP7grad-dP4grad)); end
if (P1grad-(lr*(dP1grad-dP5grad))) > P1max P1c5 = P1max; elseif (P1grad-(lr*(dP1grad-dP5grad))) < P1min P1c5 = P1min; else P1c5 = P1grad-(lr*(dP1grad-dP5grad)); end
if (P2grad-(lr*(dP2grad-dP5grad))) > P2max P2c5 = P2max; elseif (P2grad-(lr*(dP2grad-dP5grad))) < P2min P2c5 = P2min; else P2c5 = P2grad-(lr*(dP2grad-dP5grad)); end
if (Wsgrad-(lr*(DERCostoFotovoltaico(abs(Wsgrad))-dP5grad))) >
Wsmax Wsc5 = Wsmax; elseif (Wsgrad-(lr*(DERCostoFotovoltaico(abs(Wsgrad))-dP5grad))) <
Wsmin Wsc5 = Wsmin; else Wsc5 = Wsgrad-(lr*(DERCostoFotovoltaico(abs(Wsgrad))-
dP5grad)); end
if (P4grad-(lr*(dP4grad-dP5grad))) > P4max P4c5 = P4max; elseif (P4grad-(lr*(dP4grad-dP5grad))) < P4min P4c5 = P4min; else P4c5 = P4grad-(lr*(dP4grad-dP5grad)); end
if (P6grad-(lr*(dP6grad-dP5grad))) > P6max P6c5 = P6max; elseif (P6grad-(lr*(dP6grad-dP5grad))) < P6min P6c5 = P6min; else
Anexo B. Código en MATLAB para el algoritmo híbrido 71
P6c5 = P6grad-(lr*(dP6grad-dP5grad)); end
if (P7grad-(lr*(dP7grad-dP5grad))) > P7max P7c5 = P7max; elseif (P7grad-(lr*(dP7grad-dP5grad))) < P7min P7c5 = P7min; else P7c5 = P7grad-(lr*(dP7grad-dP5grad)); end
if (P1grad-(lr*(dP1grad-dP6grad))) > P1max P1c6 = P1max; elseif (P1grad-(lr*(dP1grad-dP6grad))) < P1min P1c6 = P1min; else P1c6 = P1grad-(lr*(dP1grad-dP6grad)); end
if (P2grad-(lr*(dP2grad-dP6grad))) > P2max P2c6 = P2max; elseif (P2grad-(lr*(dP2grad-dP6grad))) < P2min P2c6 = P2min; else P2c6 = P2grad-(lr*(dP2grad-dP6grad)); end
if (Wsgrad-(lr*(DERCostoFotovoltaico(abs(Wsgrad))-dP6grad))) >
Wsmax Wsc6 = Wsmax; elseif (Wsgrad-(lr*(DERCostoFotovoltaico(abs(Wsgrad))-dP6grad))) <
Wsmin Wsc6 = Wsmin; else Wsc6 = Wsgrad-(lr*(DERCostoFotovoltaico(abs(Wsgrad))-
dP6grad)); end
if (P4grad-(lr*(dP4grad-dP6grad))) > P4max P4c6 = P4max; elseif (P4grad-(lr*(dP4grad-dP6grad))) < P4min P4c6 = P4min; else P4c6 = P4grad-(lr*(dP4grad-dP6grad)); end
if (P5grad-(lr*(dP5grad-dP6grad))) > P5max P5c6 = P5max; elseif (P5grad-(lr*(dP5grad-dP6grad))) < P5min P5c6 = P5min; else P5c6 = P5grad-(lr*(dP5grad-dP6grad)); end
72 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Título de la tesis o trabajo de investigación
if (P7grad-(lr*(dP7grad-dP6grad))) > P7max P7c6 = P7max; elseif (P7grad-(lr*(dP7grad-dP6grad))) < P7min P7c6 = P7min; else P7c6 = P7grad-(lr*(dP7grad-dP6grad)); end
if (P1grad-(lr*(dP1grad-dP7grad))) > P1max P1c7 = P1max; elseif (P1grad-(lr*(dP1grad-dP7grad))) < P1min P1c7 = P1min; else P1c7 = P1grad-(lr*(dP1grad-dP7grad)); end
if (P2grad-(lr*(dP2grad-dP7grad))) > P2max P2c7 = P2max; elseif (P2grad-(lr*(dP2grad-dP7grad))) < P2min P2c7 = P2min; else P2c7 = P2grad-(lr*(dP2grad-dP7grad)); end
if (Wsgrad-(lr*(DERCostoFotovoltaico(abs(Wsgrad))-dP7grad))) >
Wsmax Wsc7 = Wsmax; elseif (Wsgrad-(lr*(DERCostoFotovoltaico(abs(Wsgrad))-dP7grad))) <
Wsmin Wsc7 = Wsmin; else Wsc7 = Wsgrad-(lr*(DERCostoFotovoltaico(abs(Wsgrad))-
dP7grad)); end
if (P4grad-(lr*(dP4grad-dP7grad))) > P4max P4c7 = P4max; elseif (P4grad-(lr*(dP4grad-dP7grad))) < P4min P4c7 = P4min; else P4c7 = P4grad-(lr*(dP4grad-dP7grad)); end
if (P5grad-(lr*(dP5grad-dP7grad))) > P5max P5c7 = P5max; elseif (P5grad-(lr*(dP5grad-dP7grad))) < P5min P5c7 = P5min; else P5c7 = P5grad-(lr*(dP5grad-dP7grad)); end
Anexo B. Código en MATLAB para el algoritmo híbrido 73
if (P6grad-(lr*(dP6grad-dP7grad))) > P6max P6c7 = P6max; elseif (P6grad-(lr*(dP6grad-dP7grad))) < P6min P6c7 = P6min; else P6c7 = P6grad-(lr*(dP6grad-dP7grad)); end
P1grad = round((P1c2+P1c3+P1c4+P1c5+P1c6+P1c7)/6,0); P2grad = round((P2c1+P2c3+P2c4+P2c5+P2c6+P2c7)/6,0); Wsgrad = round((Wsc1+Wsc2+Wsc4+Wsc5+Wsc6+Wsc7)/6,0); P4grad = round((P4c1+P4c2+P4c3+P4c5+P4c6+P4c7)/6,0); P5grad = round((P5c1+P5c2+P5c3+P5c4+P5c6+P5c7)/6,0); P6grad = round((P6c1+P6c2+P6c3+P6c4+P6c5+P6c7)/6,0); P7grad = round((P7c1+P7c2+P7c3+P7c4+P7c5+P7c6)/6,0);
end
Pgenin=[(round((P1c2+P1c3+P1c4+P1c5+P1c6+P1c7)/6,0));
(round((P2c1+P2c3+P2c4+P2c5+P2c6+P2c7)/6,0));
(round((Wsc1+Wsc2+Wsc4+Wsc5+Wsc6+Wsc7)/6,0));
(round((P4c1+P4c2+P4c3+P4c5+P4c6+P4c7)/6,0));
(round((P5c1+P5c2+P5c3+P5c4+P5c6+P5c7)/6,0));
(round((P6c1+P6c2+P6c3+P6c4+P6c5+P6c7)/6,0));
(round((P7c1+P7c2+P7c3+P7c4+P7c5+P7c6)/6,0))]/Sb; PLin=ceil((Pgenin'*(B)*Pgenin+B0*Pgenin+B00)*Sb);
PTo=(round((P1c2+P1c3+P1c4+P1c5+P1c6+P1c7)/6,0)+round((P2c1+P2c3+P2c4+P2
c5+P2c6+P2c7)/6,0)+round((Wsc1+Wsc2+Wsc4+Wsc5+Wsc6+Wsc7)/6,0)+round((P4c
1+P4c2+P4c3+P4c5+P4c6+P4c7)/6,0)+round((P5c1+P5c2+P5c3+P5c4+P5c6+P5c7)/6
,0)+round((P6c1+P6c2+P6c3+P6c4+P6c5+P6c7)/6,0)+round((P7c1+P7c2+P7c3+P7c
4+P7c5+P7c6)/6,0));
if PTo==(PD+PLin)
P1c = round((P1c2+P1c3+P1c4+P1c5+P1c6+P1c7)/6,0); P2c = round((P2c1+P2c3+P2c4+P2c5+P2c6+P2c7)/6,0); Wsc = round((Wsc1+Wsc2+Wsc4+Wsc5+Wsc6+Wsc7)/6,0); P4c = round((P4c1+P4c2+P4c3+P4c5+P4c6+P4c7)/6,0); P5c = round((P5c1+P5c2+P5c3+P5c4+P5c6+P5c7)/6,0); P6c = round((P6c1+P6c2+P6c3+P6c4+P6c5+P6c7)/6,0); P7c = round((P7c1+P7c2+P7c3+P7c4+P7c5+P7c6)/6,0);
else
P1c =round((PD*(P1c2+P1c3+P1c4+P1c5+P1c6+P1c7)/6)/PTo,0); P2c =round((PD*(P2c1+P2c3+P2c4+P2c5+P2c6+P2c7)/6)/PTo,0); Wsc =round((PD*(Wsc1+Wsc2+Wsc4+Wsc5+Wsc6+Wsc7)/6)/PTo,0); P4c =round((PD*(P4c1+P4c2+P4c3+P4c5+P4c6+P4c7)/6)/PTo,0); P6c =round((PD*(P6c1+P6c2+P6c3+P6c4+P6c5+P6c7)/6)/PTo,0); P7c =round((PD*(P7c1+P7c2+P7c3+P7c4+P7c5+P7c6)/6)/PTo,0); P5c =(PD+PLin)-P1c-P2c-Wsc-P4c-P6c-P7c;
74 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Título de la tesis o trabajo de investigación
end
if P1c < P1min Cpz1c=1000000; elseif P1c > P1max Cpz1c=1000000; else Cpz1c=0; end if P2c < P2min Cpz2c=1000000; elseif P2c > P2max Cpz2c=1000000; else Cpz2c=0; end if Wsc < Wsmin Cpz3c=1000000; elseif Wsc > Wsmax Cpz3c=1000000; else Cpz3c=0; end if P4c < P4min Cpz4c=1000000; elseif P4c > P4max Cpz4c=1000000; else Cpz4c=0; end if P5c < P5min Cpz5c=1000000; elseif P5c > P5max Cpz5c=1000000; else Cpz5c=0; end if P6c < P6min Cpz6c=1000000; elseif P6c > P6max Cpz6c=1000000; else Cpz6c=0; end if P7c < P7min Cpz7c=1000000; elseif P7c > P7max Cpz7c=1000000; else Cpz7c=0; end
Pgenc=[P1c; P2c; Wsc; P4c; P5c; P6c; P7c]/Sb;
Anexo B. Código en MATLAB para el algoritmo híbrido 75
PLc=ceil((Pgenc'*(B)*Pgenc+B0*Pgenc+B00)*Sb);
Cc =
[(a1*P1c^2+b1*P1c+c1+a2*P2c^2+b2*P2c+c2+CostoFotovoltaico(abs(Wsc))+a4*P
4c^2+b4*P4c+c4+a5*P5c^2+b5*P5c+c5+a6*P6c^2+b6*P6c+c6+a7*P7c^2+b7*P7c+c7)
+1000000*(abs(PD+PLc-
(P1c+P2c+Wsc+P4c+P5c+P6c+P7c)))+Cpz1c*abs(P1c)+Cpz2c*abs(P2c)+Cpz3c*abs(
Wsc)+Cpz4c*abs(P4c)+Cpz5c*abs(P5c)+Cpz6c*abs(P6c)+Cpz7c*abs(P7c)]; for np = 1: npert [P1t] = trial_point (P1c, 1, alea); [P2t] = trial_point (P2c, 1, alea); [Wst] = trial_point (Wsc, 1, alea); [P4t] = trial_point (P4c, 1, alea); [P5t] = trial_point (P5c, 1, alea); [P6t] = trial_point (P6c, 1, alea); [P7t] = trial_point (P7c, 1, alea);
if P1t < P1min Cpz1t=1000000; elseif P1t > P1max Cpz1t=1000000; else Cpz1t=0; end if P2t < P2min Cpz2t=1000000; elseif P2t > P2max Cpz2t=1000000; else Cpz2t=0; end if Wst < Wsmin Cpz3t=1000000; elseif Wst > Wsmax Cpz3t=1000000; else Cpz3t=0; end if P4t < P4min Cpz4t=1000000; elseif P4t > P4max Cpz4t=1000000; else Cpz4t=0; end if P5t < P5min Cpz5t=1000000; elseif P5t > P5max Cpz5t=1000000; else Cpz5t=0; end if P6t < P6min Cpz6t=1000000;
76 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Título de la tesis o trabajo de investigación
elseif P6t > P6max Cpz6t=1000000; else Cpz6t=0; end if P7t < P7min Cpz7t=1000000; elseif P7t > P7max Cpz7t=1000000; else Cpz7t=0; end
Pgent=[P1t; P2t; Wst; P4t; P5t; P6t; P7t]/Sb; PLt=ceil((Pgent'*(B)*Pgent+B0*Pgent+B00)*Sb); %LOSSES_KronCoefficients Ct =
[(a1*P1t^2+b1*P1t+c1+a2*P2t^2+b2*P2t+c2+CostoFotovoltaico(abs(Wst))+a4*P
4t^2+b4*P4t+c4+a5*P5t^2+b5*P5t+c5+a6*P6t^2+b6*P6t+c6+a7*P7t^2+b7*P7t+c7)
+1000000*(abs(PD+PLt-
(P1t+P2t+Wst+P4t+P5t+P7t)))+Cpz1t*abs(P1t)+Cpz2t*abs(P2t)+Cpz3t*abs(Wst)
+Cpz4t*abs(P4t)+Cpz5t*abs(P5t)+Cpz6t*abs(P6t)+Cpz7t*abs(P7t)]; [P1c, P2c, Wsc, P4c, P5c, P6c, P7c, Cc] = dynamics_pert (P1c, P2c, Wsc,
P4c, P5c, P6c, P7c, Cc, P1t, P2t, Wst, P4t,P5t, P6t, P7t, Ct, np); end P1ac = P1c; P2ac = P2c; Wsac = Wsc; P4ac = P4c; P5ac = P5c; P6ac = P6c; P7ac = P7c; Cac = Cc; [P1ac, P2ac, Wsac, P4ac, P5ac, P6ac, P7ac, Cac] = dynamics_it (P1ac,
P2ac, Wsac, P4ac, P5ac, P6ac, P7ac, Cac, P1c, P2c, Wsc, P4c, P5c, P6c,
P7c, Cc, nit); end P1sol = Cac; P2sol = Cac; Wssol = Cac; P4sol = Cac; P5sol = Cac; P6sol = Cac; P7sol = Cac; Csol= Cac; fprintf('%d\n',P1ac) fprintf('%d\n',P2ac) fprintf('%d\n',Wsac) fprintf('%d\n',P4ac) fprintf('%d\n',P5ac) fprintf('%d\n',P6ac) fprintf('%d\n',P7ac) fprintf('%d\n',Cac) return; end
Anexo B. Código en MATLAB para el algoritmo híbrido 77
function [P1d, P2d, Wsd, P4d, P5d, P6d, P7d, Cd] = metropolis_dynamics
(P1c, P2c, Wsc, P4c, P5c, P6c, P7c, Cc, P1t, P2t, Wst, P4t, P5t, P6t,
P7t, Ct, a, b, np, teta) % if Ct < Cc P1d = P1t; P2d = P2t; Wsd = Wst; P4d = P4t; P5d = P5t; P6d = P6t; P7d = P7t; Cd = Ct; else teta_n = teta (np); aux = -(b + ((Ct - Cc + a)/teta_n)) ; c = exp (aux); test = rand(); if test < c P1d = P1t; P2d = P2t; Wsd = Wst; P4d = P4t; P5d = P5t; P6d = P6t; P7d = P7t; Cd = Ct; else P1d = P1c; P2d = P2c; Wsd = Wsc; P4d = P4c; P5d = P5c; P6d = P6c; P7d = P7c; Cd = Cc; end end return; end
function [P1d, P2d, Wsd, P4d, P5d, P6d, P7d, Cd] =
elitist_dynamics(P1ac, P2ac, Wsac, P4ac, P5ac, P6ac, P7ac, Cac, P1c,
P2c, Wsc, P4c, P5c, P6c, P7c, Cc, nit)
if Cc < Cac P1d = P1c; P2d = P2c; Wsd = Wsc; P4d = P4c; P5d = P5c; P6d = P6c; P7d = P7c;
78 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Título de la tesis o trabajo de investigación
Cd = Cc; else P1d = P1ac; P2d = P2ac; Wsd = Wsac; P4d = P4ac; P5d = P5ac; P6d = P6ac; P7d = P7ac; Cd = Cac; end; return; end
function [xt] = trial_point (xac, nt, alea)
n=length(xac); xt = zeros (n, nt); dx = alea (-300, 300); for i = 1: nt xt(:,i) = xac + dx(:,i); end; return; end
function [COSTOESPERADO_AnaliticoSOLAR]=CostoFotovoltaico(Ws
Ver: [24]
function [B B0 B00 PL PLV]=KronCoeff(caso)
Ver: [27]
function [DERCOSTOESPERADO_AnaliticoSOLAR]=DERCostoFotovoltaico(Ws)
% Función obtenida a partir de derivar el trabajo desarrollado en [24]
clc close all
% Inicializacion de Constantes
Psr= 65; % [MW] . Gstd= 1000; %[W/m2] Rc=150; % [W/m2] Wmax= 100;%
% valores de la función de densidad de probabilidad para Taipei, fuente
=
Anexo B. Código en MATLAB para el algoritmo híbrido 79
% paper 2
lambda= 6; % media de los datos beta= 0.25;% desviación estandard
mu=lambda;% Solo para fines de simular sigma=beta;% Solo para fines de simular
%Ws=45; %En el PAPER Wpv,s Potencia despachada Cu=30; % En el PAPER c pv,u,i Co=70; % En el PAPER c pv,o,i
%% Cálculo analítico solar %_______Costo esperado sub estimado, underestimated____________
Wrc=(Psr*Rc)/Gstd;
if Wrc<Ws
ua2=(log(Ws*Gstd/Psr)-lambda)/(sqrt(2)*beta); ub2=(log(Wmax*Gstd/Psr)-lambda)/(sqrt(2)*beta); dint2_s= (Cu/2)*((-
Psr*sqrt(2)/(Gstd*beta*Ws*sqrt(pi)))*exp((((beta^2)/2)+lambda)-((ua2-
(beta/sqrt(2)))^2))-erf(ub2)+erf(ua2)+sqrt(2/(pi*(beta^2)))*exp(-
((ua2)^2)));% subestimado [42]
dCas=dint2_s; %Analítico subestimado else
ua1=(log(sqrt(Ws*Gstd*Rc/Psr))-lambda)/(sqrt(2)*beta); ub1=(log(sqrt(Wrc*Gstd*Rc/Psr))-lambda)/(sqrt(2)*beta);
ua2=(log(Wrc*Gstd/Psr)-lambda)/(sqrt(2)*beta); ub2=(log(Wmax*Gstd/Psr)-lambda)/(sqrt(2)*beta);
dint1_s=(Cu/2)*((-
Psr/(Gstd*Rc*beta*Ws*sqrt(2*pi)))*exp((2*beta^2+2*lambda)-((ua1-
(sqrt(2)*beta))^2))-erf(ub1)+erf(ua1)+sqrt(2/(pi*(beta^2)))*exp(-
((ua1)^2))); %Integral [46]
dint2_s= (Cu/2)*(erf(ua2)-erf(ub2));%integral[42]-BIEN
dCas=dint1_s+dint2_s ;%Costo analítico subestimado end
%_______ Costo esperado sobre estimdo, over estimated____________
if Ws<Wrc ua3=-inf;
80 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Título de la tesis o trabajo de investigación
ub3=(log(sqrt(Ws*Gstd/Psr))-lambda)/(sqrt(2)*beta);
dint1_o=(Co/2)*(erf(ub3)-erf(ua3));% integral [46] dCao=dint1_o;
else ua3=-inf; ub3=(log(sqrt(Wrc*Gstd*Rc/Psr))-lambda)/(sqrt(2)*beta);
ua4=(log(Wrc*Gstd/Psr)-lambda)/(sqrt(2)*beta); ub4=(log(Ws*Gstd/Psr)-lambda)/(sqrt(2)*beta);
dint1_o= (Co/2)*(erf(ub3)-erf(ua3));% integral [46]-BIEN
dint2_o= (Co/2)*((1/(sqrt(2)*beta))*erf(ub4)-erf(ua4)-
(Psr*sqrt(2)/(Gstd*sqrt(pi)*beta*Ws))*exp((((beta^2)/2)+lambda)-((ub4-
(beta/sqrt(2)))^2)));
dCao=dint1_o+dint2_o; end
DERCOSTOESPERADO_AnaliticoSOLAR=dCas+dCao; end
Bibliografía
[1] “Despacho.” [Online]. Available:
https://www.xm.com.co/Paginas/Generacion/despacho.aspx. [Accessed: 21-
Nov-2019].
[2] Ministerio de Minas y Energía, “Ley 143 de Junio 11 de 1994,” D. Of., vol.
1994, no. 41434, p. 347, 1994.
[3] W. S. Jwo, C. W. Liu, C. C. Liu, and Y. T. Hsiao, “Hybrid expert system and
simulated annealing approach to optimal reactive power planning,” IEE
Proc. Gener. Transm. Distrib., vol. 142, no. 4, pp. 381–385, 1995.
[4] H. W. Dommel and W. F. Tinney, “Optimal power flow solutions,” no. 10, pp.
1866–1876, 1968.
[5] A. Hughes et al., “Optimal power flow by Newton approach,” Appar. Syst.
Vol. PAS-103, No. 10, no. 10, pp. 2864–2880, 1984.
[6] R. C. Burchett, H. H. Happ, and D. R. Vierath, “Quadratically Convergent
Optimal Power Flow,” IEEE Power Eng. Rev., vol. PER-4, no. 11, pp. 34–
35, 1984.
[7] X. Wang, X. Shi, H. Zhang, and F. Wang, “Multi-objective optimal dispatch
of wind-integrated power system based on distributed energy storage,”
Proc. IECON 2017 - 43rd Annu. Conf. IEEE Ind. Electron. Soc., vol. 2017-
Janua, pp. 2788–2792, 2017.
[8] J. Jobanputra and C. Kotwal, “Optimal Power Dispatch using Particle
Swarm Optimization,” Proc. - 2018 Int. Conf. Smart Electr. Drives Power
Syst. ICSEDPS 2018, pp. 157–161, 2018.
[9] J. Torres-Riveros and S. Rivera-Rodriguez, “Optimal energy dispatch in
multiple periods of time considering the variability and uncertainty of
generation from renewable sources,” Prospectiva, vol. 16, no. 2, pp. 75–81,
82 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Título de la tesis o trabajo de investigación
2018.
[10] I. Rebollo, M. Graña, and C. Hernández, “Aplicación de agoritmos
estocásticos de optimización al problema de la disposición de objetos no-
convexo,” Rev. Investig. operacional, vol. 22, no. 2, pp. 184–191, 2001.
[11] A. H. Mantawy, Y. L. Abdel-Magid, and S. Z. Seliim, “A simulated annealing
algorithm for unit commitment,” IEEE Trans. Power Syst., vol. 13, no. 1, pp.
197–204, 1998.
[12] A. Y. Saber, T. Senjyu, T. Miyagi, N. Urasaki, and T. Funabashi, “Fuzzy Unit
Commitment Scheduling Using Absolutely Stochastic Simulated Annealing,”
IEEE Trans. Power Syst., vol. 21, no. 2, pp. 955–964, 2006.
[13] C. L. Chen, “Simulated annealing-based optimal wind-thermal coordination
scheduling,” IEE Proc. Gener. Transm. Distrib., vol. 1, no. 3, pp. 447–455,
2007.
[14] E. souza de Cursi and R. Sampaio, Uncertainty quantification and stochastic
modeling with matlab. London: Elsevier Inc, 2015.
[15] R. D. Zimmerman and C. E. Murillo-SÁnchez, “Matpower (Version 7.0).”
2019.
[16] J. Benavides, Á. Cadena, J. J. González, C. Hidalgo, and A. Piñeros,
Mercado Eléctrico En Colombia: Transición Hacia Una Arquitectura
Descentralizada. Centro de investigación económica y social. Fedesarrollo.,
2018.
[17] P. Turmero, “Despacho optimo de la generación.” [Online]. Available:
https://www.monografias.com/trabajos102/despacho-optimo-
generacion/despacho-optimo-generacion.shtml.
[18] J. J. Grainger and W. D. J. Stevenson, Analisis de Sistemas de Potencia.
Mc Graw Hill, 1996.
[19] D. Arango, R. Urrego, and S. Rivera, “Despacho económico en microredes
con penetración de energía renovable usando algoritmo de punto interior y
restricciones lineales,” Ing. y Cienc., vol. 13, no. 25, pp. 123–152, 2017.
[20] H. Kamankesh, V. G. Agelidis, and A. Kavousi-Fard, “Optimal scheduling of
Bibliografía 83
renewable micro-grids considering plug-in hybrid electric vehicle charging
demand,” Energy, vol. 100, pp. 285–297, 2016.
[21] N. Gómez Molina, “Regulación de frecuencia en sistemas de potencia que
integran fuentes de energías eólicas mediante un controlador PI e imitación
de inercial,” 2017.
[22] M. I. Ennes and A. L. Diniz, “A General Equivalent Thermal Cost Function
for Economic Dispatch Problems,” Computing, pp. 1–6, 2012.
[23] H. Huang, C. Y. Chung, K. W. Chan, and H. Chen, “Quasi-Monte Carlo
Based Probabilistic Small Signal Stability Analysis for Power Systems With
Plug-In Electric Vehicle and Wind Power Integration," in IEEE Transactions
on Power Systems, vol. 28, no. 3, pp. 3335-3343, Aug. 2013, doi:
10.1109/TPWRS.2013.225,” IEEE Trans. Power Syst., vol. 28, no. 3, pp.
3335–3343, 2013.
[24] J. C. Arevalo, F. Santos, and S. Rivera, “Uncertainty cost functions for solar
photovoltaic generation, wind energy generation, and plug-in electric
vehicles: mathematical expected value and verification by Monte Carlo
simulation,” Int. J. Power Energy Convers., vol. 10, no. 2, pp. 171–207,
2019.
[25] S. Surender, P. R. Bijwe, and A. R. Abhyankar, “Real-time economic
dispatch considering renewable power generation variability and uncertainty
over scheduling period,” IEEE Syst. J., vol. 9, no. 4, pp. 1440–1451, 2015.
[26] T. P. Chang, “Investigation on Frequency Distribution of Global Radiation
Using Different Probability Density Functions,” Int. J. Appl. Sci. Eng. Int. J.
Appl. Sci. Eng, vol. 8, no. 2, pp. 99–107, 2010.
[27] D. Arango, R. Urrego, and S. Rivera, “Robust loss coefficients: Application
to power systems with solar and wind energy,” Int. J. Power Energy
Convers., vol. 9, no. 4, pp. 351–383, 2018.
[28] C. Yung-Chung, W.-T. Yang, and C.-C. Liu, “A new method for calculating
loss coefficients [of power systems],” IEEE Trans. Power Syst., vol. 9, no. 3,
pp. 1665–1671, 1994.
84 Programación de la operación de sistemas de potencia con generadores solares empleando técnicas de optimización estocásticas
Título de la tesis o trabajo de investigación
[29] X. Zheng, C. Jiang, R. Xu, L. Li, and Y. Zhao, “Generation right transaction
cost computation using marginal loss coefficients method,” East China
Electr. Power, 2009.
[30] R. Azencott, “Simulated annealing,” Séminaire Bourbaki, vol. 162, pp. 223–
237, 1988.
[31] S. German and C.-R. Hwang, “Diffusions for global optimization,” SIAM J.
Control Optim., vol. 24, no. 5, pp. 1031–1043, 1986.
[32] RADVER S.A, “Tratamientos Térmicos.” [Online]. Available:
https://www.radver.com/procesos/tratamientos-termicos.html. [Accessed:
10-May-2020].
[33] D. A. M. Giraldo, “Solución Al Problema Del Despacho De Energía En
Sistemas Hidrotérmicos Usando Simulated Annealing,” Sci. Tech., vol. XI,
no. 29, pp. 7–12, 2005.
[34] M. Pogu and J. Souza De Cursi, “Global optimization by random
perturbation of the gradient method with a fixed parameter,” J. Glob. Optim.,
vol. 5, no. 2, pp. 159–180, 1994.
[35] E. Zeriab, Es-sadek Mohamed. Rachid and S. D. C. . Eduardo, “Application
of an hybrid algorithm in a logistic problem,” J. Adv. Res. Appl. Math., vol. 1,
no. 1, p. 34, 2009.
[36] R. D. Zimmerman, C. E. Murillo-Sánchez, and R. J. Thomas, “Matpower:
Steady-State Operations, Planning and Analysis Tools for Power Systems
Research and Education,” IEEE Trans. Power Syst., vol. 26, no. 1, pp. 12–
19, 2011.
[37] B. Xu and A. Abu, “Optimal Placement of Phasor Measurement Units for
State Estimation,” Texas A&M University, 2005.