trabajo fin de grado grado en ingeniería de tecnologías...
TRANSCRIPT
Trabajo Fin de Grado Grado en Ingeniería de Tecnologías Industriales
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmo PSO
Autor: Irene Belinchón Rodríguez
Tutor: Pablo Cortés Achedad
Dep. de Organización Industrial y Gestión de Empresas II
Escuela Técnica Superior de Ingeniería Universidad de Sevilla
Sevilla, 2016
Trabajo Fin de Grado
Grado en Ingeniería de Tecnologías Industriales
Optimización de sistemas de generación
distribuida de energía eléctrica con
almacenamiento para pequeños consumidores
mediante algoritmo PSO
Autor:
Irene Belinchón Rodríguez
Tutor:
Pablo Cortés Achedad
Dep. de Organización Industrial y Gestión de Empresas II
Escuela Técnica Superior de Ingeniería
Universidad de Sevilla
Sevilla, 2016
Índice
1. Objetivo .......................................................................................................................... 1
2. Resumen ejecutivo......................................................................................................... 3
3. Introducción ................................................................................................................... 5
3.1. Motivación .............................................................................................................. 5
4. Descripción tecnológica del problema ......................................................................... 9
4.1. Especificaciones técnicas de los sistemas considerados ...................................... 9
5. Modelado ..................................................................................................................... 13
5.1. Sistemas considerados ............................................................................................. 13
5.2. Datos y variables .................................................................................................. 15
5.2.1. Baterías.......................................................................................................... 15
5.2.2. Solar Fotovoltaica ......................................................................................... 17
5.2.3. Generador ..................................................................................................... 18
5.2.4. Generales ...................................................................................................... 19
5.3. Restricciones técnicas .......................................................................................... 20
5.3.1. Restricciones técnicas de baterías ............................................................... 20
Activación de variables binarias asociadas a los cambios de estado. ....................... 21
5.3.2. Restricciones técnicas del generador .......................................................... 21
Activación de variables binarias asociadas a los cambios de estado. ....................... 22
5.3.3. Restricciones técnicas de las placas fotovoltaicas ...................................... 22
Activación de variables binarias asociadas a los cambios de estado. ....................... 22
5.4. Balances energéticos ........................................................................................... 23
5.5. Función objetivo ................................................................................................... 27
6. Descripción de la instalación objeto de análisis ......................................................... 29
6.1. Ubicación .............................................................................................................. 29
6.2. Características de la instalación .......................................................................... 30
6.3. Características de los equipos ............................................................................. 30
6.4. Los elementos de consumo ................................................................................. 31
7. Método de resolución ................................................................................................. 35
7.1. Metaheurísticas .................................................................................................... 35
7.2. Algoritmo de optimización por enjambre de partículas (‘PSO’) ........................ 36
7.2.1. PSO para codificación binaria ...................................................................... 40
7.2.2. PSO adaptado al problema........................................................................... 41
7.2.2.1. Propuesta 1: Algoritmo con estimación de la posición por
ponderación de disposiciones ([ALG1]) .................................................................. 42
7.2.2.2. Propuesta 2: Algoritmo con estimación de la velocidad por cambios
de posición en el orden de asignación ([ALG2]) ..................................................... 43
7.2.2.3. Ejemplos de implementación ............................................................... 45
8. Implementación del algoritmo en MatLab ................................................................. 49
8.1. Lectura del fichero de entrada ............................................................................ 49
8.2. Definición de la partícula ..................................................................................... 51
8.3. Heurística para la generación de la nube de partículas inicial ........................... 54
8.4. Descripción de las funciones, variables y parámetros característicos del
algoritmo. ......................................................................................................................... 55
8.4.1. Lectura ........................................................................................................... 58
8.4.2. Posición de los equipos en la matriz ............................................................ 58
8.4.3. Nube inicial ................................................................................................... 58
8.4.4. Coste partícula .............................................................................................. 65
8.4.5. Mejor posición de partícula (Comparación) ................................................ 66
8.4.6. Mejor partícula de nube (Comparación) ..................................................... 67
8.4.7. Nuevo orden (Movimiento) ......................................................................... 68
8.4.8. Consignas ...................................................................................................... 72
8.4.9. Escritura ........................................................................................................ 72
8.4.10. PSO ................................................................................................................ 72
8.5. Configuración de los parámetros de diseño del algoritmo PSO ........................ 73
8.6. Escritura en el fichero de salida........................................................................... 77
9. Resolución para los escenarios de análisis ................................................................. 79
9.1. Escenarios de 10 periodos ................................................................................... 79
9.1.1. Baterías.......................................................................................................... 80
9.1.2. Baterías + grid ............................................................................................... 81
9.1.3. Baterías + generador .................................................................................... 83
9.1.4. Baterías + fotovoltaica .................................................................................. 85
9.1.5. Baterías + fotovoltaica + grid ....................................................................... 87
9.1.6. Baterías + fotovoltaica + generador ............................................................ 92
9.1.7. Baterías + fotovoltaica + grid + generador .................................................. 95
9.2. Escenario de 96 periodos ..................................................................................... 98
9.2.1. En isla (Baterías + Fotovoltaica + Generador) ............................................. 99
9.2.2. Baterías + Fotovoltaica + Grid .................................................................... 101
9.2.3. Baterías + Fotovoltaica + Generador + Grid .............................................. 104
10. Comparación y análisis de resultados ................................................................... 109
10.1. Análisis comparado de los algoritmos [ALG1] y [ALG2] ................................ 109
10.2. Análisis comparado de algoritmo [ALG1] con control de la carga y sin control
de la carga de baterías .................................................................................................. 111
10.3. Comparación entre Configuración estática y Algoritmo PSO ...................... 113
11. Conclusiones ........................................................................................................... 117
12. Referencias ............................................................................................................. 119
Anexo 1: Implementación en MatLab del algoritmo PSO ............................................... 121
1. PSO .......................................................................................................................... 121
a. [ALG1]: Algoritmo con estimación de la posición por ponderación de
disposiciones. ............................................................................................................. 121
b. [ALG2]: Algoritmo con estimación de la velocidad por cambios de posición en
el orden de asignación ............................................................................................... 122
2. Lectura .................................................................................................................... 124
3. Posición matriz ....................................................................................................... 125
4. Nube inicial ............................................................................................................. 126
5. Costes partícula ...................................................................................................... 132
6. Mejor partícula ....................................................................................................... 134
7. Mejor nube ............................................................................................................. 134
8. Nuevo orden ........................................................................................................... 135
a. [ALG1] ................................................................................................................. 135
b. [ALG2] ................................................................................................................. 136
9. Consignas ................................................................................................................ 137
10. Escritura .............................................................................................................. 137
Anexo 2: Descripción del fichero de entrada ................................................................... 138
Anexo 3: Descripción del fichero de salida ...................................................................... 141
Índice de tablas
Tabla 1: Datos técnicos de las baterías. ............................................................................. 15
Tabla 2: Datos económicos de las baterías. ....................................................................... 16
Tabla 3: Variables principales de las baterías (consignas). ................................................ 16
Tabla 4: Variables auxiliares de las baterías. ...................................................................... 16
Tabla 5: Datos técnicos de energías renovables ................................................................ 17
Tabla 6: Datos económicos de energías renovables.......................................................... 17
Tabla 7: Variables principales de renovables (consignas) ................................................. 17
Tabla 8: Variables auxiliares de renovables ....................................................................... 18
Tabla 9 Datos técnicos del generador ................................................................................ 18
Tabla 10: Datos económicos del generador ....................................................................... 18
Tabla 11: Variables principales del generador (consignas) ............................................... 19
Tabla 12: Variables auxiliares del generador ..................................................................... 19
Tabla 13: Datos técnicos globales del sistema ................................................................... 19
Tabla 14:Datos económicos de la demanda externa de energía ...................................... 20
Tabla 15: Variables principales del sistema completo (consignas) ................................... 20
Tabla 16: Variables auxiliares del sistema completo: Compra, venta y pérdidas
energéticas. .......................................................................................................................... 20
Tabla 17: Características técnicas de los equipos .............................................................. 31
Tabla 18: Consumo eléctrico para 10 periodos ................................................................. 34
Tabla 19: Consumo eléctrico para 96 periodos ................................................................. 34
Tabla 20: Matriz de orden de asignación de equipos ........................................................ 45
Tabla 21: Factores característicos del movimiento de una partícula ............................... 45
Tabla 22: Orden obtenido [ALG1] ....................................................................................... 46
Tabla 23: Distancia partícula [ALG2] ................................................................................... 46
Tabla 24: Distancia nube [ALG2] ......................................................................................... 47
Tabla 25: Matriz de orden de activación de equipos. ....................................................... 51
Tabla 26: Matriz de activación de equipos. ........................................................................ 52
Tabla 27: Matriz de consignas de equipos ......................................................................... 52
Tabla 28: Matriz de costes de equipos ............................................................................... 52
Tabla 29: Vector coste total por periodo ........................................................................... 52
Tabla 30: Coste total de la partícula ................................................................................... 53
Tabla 31: Vector nivel de baterías ...................................................................................... 53
Tabla 32: Variable identificativa ......................................................................................... 53
Tabla 33: Parámetros del algoritmo ................................................................................... 56
Tabla 34: Variables del algoritmo ....................................................................................... 57
Tabla 35: Variables/parámetros de entrada y salida de Posición matriz ......................... 58
Tabla 36: Variables/parámetros de entrada y salida de Nube inicial ............................... 59
Tabla 37: Variables/parámetros de entrada y salida de Coste partícula .......................... 65
Tabla 38: Variables/parámetros de entrada y salida de Mejor posición partícula .......... 66
Tabla 39: Variables/parámetros de entrada y salida de Mejor partícula nube ................ 67
Tabla 40: Variables/parámetros de entrada y salida de Nuevo orden ............................. 70
Tabla 41: Variables/parámetros de entrada y salida de Consignas .................................. 72
Tabla 42: Variables/parámetros de entrada y salida de Escritura .................................... 72
Tabla 43: Ajuste del tamaño de la nube ............................................................................. 74
Tabla 44: Ajuste del factor de inercia ................................................................................. 76
Tabla 45: Ajuste de los pesos .............................................................................................. 76
Tabla 46: Características de los escenarios de 10 periodos .............................................. 79
Tabla 47: Equipos presentes en cada escenario de 96 periodos ...................................... 98
Tabla 48: Características de cada escenario .................................................................... 109
Tabla 49: Comparación costes [ALG1] y [ALG2] ............................................................... 110
Tabla 50: Comparación costes [ALG1] con control y sin control .................................... 111
Tabla 51: Consignas de configuración estática manual ................................................... 114
Tabla 52: Comparación costes estática y optimizador .................................................... 115
Índice de figuras
Figura 1: Mapa insolación anual España. Fuente: Instituto Geográfico Nacional .............. 7
Figura 2: Mapa radiación solar anual España. Fuente: Instituto Geográfico Nacional ...... 7
Figura 3: Mapa insolación anual Europa .............................................................................. 7
Figura 4: Curva de demanda real eléctrica. Fuente: Red Eléctrica España ........................ 8
Figura 5: Esquema de la instalación ..................................................................................... 9
Figura 6: Horas solares pico ................................................................................................ 10
Figura 7: Irradiancia Cádiz. Fuente: Aemet ........................................................................ 10
Figura 8: Curvas demanda eléctrica. Fuente: Red Eléctrica España ................................. 11
Figura 9: Modelo de interacción ......................................................................................... 13
Figura 10: Diagrama de bloques del sistema completo .................................................... 14
Figura 11: Grafo de flujo de energía eléctrica.................................................................... 23
Figura 12: Diagrama de bloques del sistema eléctrico. ..................................................... 24
Figura 13: Parque eólico ...................................................................................................... 29
Figura 14: Esquema de la instalación real .......................................................................... 30
Figura 15: Elementos de consumo eléctrico ...................................................................... 32
Figura 16: Escenarios de demanda ..................................................................................... 32
Figura 17: Potencias de los elementos de consumo ......................................................... 33
Figura 18: Diagrama de bloques de algoritmo de optimización PSO................................ 37
Figura 19: Representación gráfica del movimiento de una partícula ............................... 38
Figura 20: Características del movimiento de las partículas en PSO ................................ 42
Figura 21: Esquema de implementación de [ALG1]. ......................................................... 43
Figura 22: Estructura del algoritmo .................................................................................... 49
Figura 23: Pasos para la creación de una partícula ........................................................... 54
Figura 24: Curva de aprendizaje [ALG2] ............................................................................. 75
Figura 25: Curva de aprendizaje [ALG1] ............................................................................. 75
Figura 26: Curvas de demanda 10 periodos ...................................................................... 79
Figura 27: Consignas escenario 1 ....................................................................................... 80
Figura 28: Nivel de batería escenario 1 .............................................................................. 80
Figura 29: Costes periodos escenario 1 .............................................................................. 81
Figura 30: Consignas escenario 2 [ALG1] ........................................................................... 81
Figura 31: Consignas escenario 2 [ALG2] ........................................................................... 82
Figura 32: Nivel de batería escenario 2 .............................................................................. 82
Figura 33: Costes periodos escenario 2 .............................................................................. 83
Figura 34: Costes equipos escenario 2 ............................................................................... 83
Figura 35: Consignas escenario 3 ....................................................................................... 84
Figura 36: Nivel de batería escenario 3 .............................................................................. 84
Figura 37: Costes periodos escenario 3 .............................................................................. 85
Figura 38: Costes equipos escenario 3 ............................................................................... 85
Figura 39: Consignas escenario 4 ....................................................................................... 86
Figura 40: Nivel de batería escenario 4 .............................................................................. 86
Figura 41: Coste periodos escenario 4 ............................................................................... 87
Figura 42: Costes equipos escenario 4 ............................................................................... 87
Figura 43: Consignas escenario 5.a. [ALG1] ....................................................................... 88
Figura 44: Consignas escenario 5.a. [ALG2] ....................................................................... 88
Figura 45: Nivel de batería escenario 5.a. .......................................................................... 88
Figura 46: Costes periodos escenario 5.a. [ALG1] ............................................................. 89
Figura 47: Costes periodos escenario 5.a. [ALG2] ............................................................. 89
Figura 48: Costes equipos esc. 5.a. ..................................................................................... 90
Figura 49: Consignas escenario 5.b. [ALG1] ....................................................................... 90
Figura 50: Consignas escenario 5.b. [ALG2] ....................................................................... 91
Figura 51: Nivel de batería escenario 5.b. .......................................................................... 91
Figura 52: Costes por periodos escenario 5.b. [ALG1] y [ALG2] ...................................... 92
Figura 53: Costes equipo escenario 5.b. [ALG1] y Figura 54: Costes equipo escenario 5.b.
[ALG2]……………………………………………………………… ............................................................... 92
Figura 55: Consignas escenario 6 [ALG1] ........................................................................... 93
Figura 56: Consignas escenario 6 [ALG2] ........................................................................... 93
Figura 57: Nivel Baterías [ALG1] y [ALG2] .......................................................................... 94
Figura 58: Costes por periodos escenario 6 [ALG1] y [ALG2] ........................................... 94
Figura 59: Costes equipo escenario 6 [ALG1] y Figura 60: Costes equipo escenario 6
[ALG2]………………………………………………………………… ............................................................ 95
Figura 61: Consignas escenario 7 [ALG1] ........................................................................... 95
Figura 62: Consignas escenario 7 [ALG2] ........................................................................... 96
Figura 63: Nivel Baterías escenario 7 [ALG1] y [ALG2] ...................................................... 96
Figura 64: Costes por periodos escenario 7 [ALG1] y [ALG2] ........................................... 97
Figura 65: Costes equipo escenario 7 [ALG1] y Figura 66: Costes equipo escenario 7
[ALG2]………………………………………………………… .................................................................... 97
Figura 67: Curvas de demanda 96 periodos ...................................................................... 98
Figura 68: Consignas escenario 8 [ALG1] ........................................................................... 99
Figura 69: Consignas escenario 8 [ALG2] ........................................................................... 99
Figura 70: Nivel de carga de batería escenario 8 ............................................................. 100
Figura 71: Costes por periodos escenario 8 [ALG1] y [ALG2] ......................................... 101
Figura 72: Costes equipo escenario 8 [ALG1] y Figura 73: Costes equipo escenario 8
[ALG2]………………………………………………………….. ................................................................ 101
Figura 74: Consignas escenario 9 [ALG1] ......................................................................... 102
Figura 75: Consignas escenario 9 [ALG2] ......................................................................... 102
Figura 76: Nivel de carga de batería escenario 9 ............................................................. 103
Figura 77: Costes por periodos escenario 9 [ALG1] y [ALG2] ......................................... 103
Figura 78: Costes equipo escenario 9 [ALG1] y Figura 79: Costes equipo escenario 9
[ALG2] ................................................................................................................................. 104
Figura 80: Consignas escenario 10 [ALG1] ....................................................................... 104
Figura 81: Consignas escenario 10 [ALG2] ....................................................................... 105
Figura 82: Nivel de carga de batería escenario 10 ........................................................... 105
Figura 83: Costes por periodos escenario 10 [ALG1] y [ALG2] ....................................... 106
Figura 84: Costes equipo escenario 10 [ALG1] y Figura 85: Costes equipo escenario 10
[ALG2]………………………………………………………………………………………………………………………..107
Figura 86: Comparación costes totales [ALG1] y [ALG2] ................................................. 110
Figura 87: Consignas escenario 10 [ALG1] con control de carga .................................... 112
Figura 88: Consignas escenario 7 [ALG1] sin control de carga ....................................... 112
Figura 89: Nivel de carga baterías [ALG1] con control de carga y sin control de carga 113
Figura 90: Consignas de configuración estática manual ................................................. 114
Figura 91: Consignas de optimizador ............................................................................... 115
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
1
1. Objetivo
El propósito de este proyecto es generar soluciones que permitan una gestión óptima de
un sistema de generación distribuida de energía eléctrica en el caso de pequeños
consumidores, como viviendas u hoteles rurales.
Se propone que para un sistema integrado por elementos de consumo, generación y
almacenamiento se diseñe y desarrolle un controlador que favorezca la gestión eficiente
de los equipos que forman parte de la instalación, proporcionando en cada periodo las
consignas de funcionamiento de los equipos. Esta configuración de operación será
óptima desde el punto de vista técnico y económico, es decir, se tendrán en cuenta las
restricciones de los equipos y sus costes, tanto el de operación como los de adquisición,
mantenimiento y uso, ya que, este tipo de sistemas tienden a sufrir una degradación
temporal temprana.
Para que el algoritmo de optimización sea capaz de generar la configuración de
funcionamiento en cada periodo es necesario conocer algunos datos de la situación en la
que se encuentra la instalación como son la demanda eléctrica instantánea y la sucesiva
basándose en previsiones, el nivel de carga de las baterías o si existe o no conexión a la
red eléctrica.
La instalación contará con equipos de generación, renovables y no renovables, y con
equipos de almacenamiento. El sistema, por tanto, proporcionará la configuración que
optimice el rendimiento de estos equipos, integrándolos de manera que se reduzca el
coste total.
Para conocer si la instalación se adapta a las necesidades energéticas del consumidor es
necesario disponer de los datos históricos de demanda y así poder prever consumos
futuros. Esto permitiría dimensionar la instalación adecuadamente.
El sistema deberá ser flexible, capaz de adaptarse a diferentes instalaciones pudiendo
incorporar o eliminar elementos. También debe de poder adaptarse a curvas de demanda
eléctrica diversas.
El proyecto está enfocado a pequeños consumidores (1 kWh a 36000 kWh al año de
consumo) como casas u hoteles rurales, ya que, debido al aumento del precio del
suministro eléctrico se está produciendo un incremento de inversiones en autoconsumo
en los últimos años en este sector de la población y de la concienciación de la población
en cuanto a la necesidad de cuidar el medio ambiente y reducir la contaminación.
En definitiva, se busca generar un sistema que permita maximizar el rendimiento técnico
y económico de una instalación de generación energética distribuida, decidiendo en cada
momento la cantidad de energía óptima a producir o almacenar respectivamente por
cada equipo, respetando sus restricciones técnicas y cubriendo la demanda.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
2
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
3
2. Resumen ejecutivo
El objeto del proyecto es el desarrollo y diseño de un sistema de control que integre
la producción, el almacenamiento y el consumo eléctrico, y genere consignas de
funcionamiento mediante algoritmos de optimización buscando el máximo
rendimiento técnico y económico. El propósito es crear un optimizador que proponga
a tiempo real una configuración de operación para los equipos presentes en la
instalación y permita así el funcionamiento eficiente de sistemas de generación
distribuida de energía eléctrica.
El proyecto comienza planteando las causas de su realización, comentando el
panorama actual de la energía y como el autoconsumo está poco a poco consiguiendo
hacer frente a las redes tradicionales de suministro energético. Se expone también la
situación de desarrollo en la que se encuentran los equipos que utilizan las fuentes
renovables para producir energía y los sistemas almacenadores que los
complementan. Además, se presenta la generación energética distribuida como una
opción con ventajas provenientes de la disminución de las pérdidas producidas en la
generación y distribución de energía y de la contaminación creada.
Tras la presentación del problema se plantea el modelo que lo define, el cual consta
de ecuaciones que caracterizan a cada equipo, proponiéndose para cada uno sus
restricciones técnicas. También se representan de manera matemática y gráfica las
relaciones existentes entre los sistemas mediante un balance global de energía.
A continuación, se realiza una descripción detallada de la instalación en la que se va
a aplicar el proyecto, comentando los equipos presentes y sus características, así
como los elementos de consumo presentes en la vivienda. Además, se comenta la
situación geográfica en la que se encuentra y sus ventajas e inconvenientes.
Después de esto, se presentan los métodos disponibles de resolución del problema,
explicando qué es una metaheurística y qué tipos existen. Se comentan también las
causas de la elección tomada de resolver el problema mediante un algoritmo
poblacional, concretamente el basado en enjambre de partículas o comúnmente
llamado PSO. Se realiza entonces una descripción de las características y del
funcionamiento del método elegido y se presentan dos propuestas de algoritmos con
base de PSO, pero adaptados al problema.
El siguiente apartado tiene como objetivo realizar una descripción del método
seguido para la implementación del algoritmo. En este capítulo se comienza
comentando que el optimizador consta principalmente de cuatro pasos, primero se
realiza la lectura de los datos, luego se genera la nube de partículas, tras esto las
partículas se moverán según unos parámetros y cuando se realicen las iteraciones
correspondientes, la solución óptima se volcará en un fichero de salida. Tras
comentarlos se explican en profundidad cada uno, describiendo también los códigos
de las funciones que componen el algoritmo optimizador creado.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
4
Se procede entonces a la resolución del problema mediante la ejecución de los
algoritmos propuestos en diferentes escenarios, distinguiéndolos según los equipos
presentes, el número de periodos y el nivel inicial de carga de las baterías. Tras la
simulación se presentan los resultados representados en gráficas y se comentan,
analizando las soluciones y comparando el funcionamiento de ambos algoritmos
ejecutados.
Las conclusiones a las que se llegan al final del proyecto se realizan a partir de los
resultados obtenidos y del análisis realizado, con esto se concluye que el algoritmo
adaptado al problema basado en ponderaciones y nombrado como [ALG1] a lo largo
del proyecto es más eficiente y ofrece mejores soluciones que el [ALG2], ya que los
costes de las consignas que ofrece tienden a ser menores en todos los escenarios
simulados. También se comprueba que al realizar un control de la carga de las
baterías los resultados que se consiguen son mejores o iguales que sin este control,
por lo que se propone realizar un estudio de las consecuencias que generan ambas
propuestas en las baterías. Y, por último, se realiza una comparación de costes entre
las consignas asignadas de manera manual y mediante el optimizador, y el
optimizador resulta ser rentable, por lo que el objetivo propuesto se llega a cumplir.
Otra de las conclusiones comentadas es la ineficiencia del uso del generador,
proponiendo por tanto su uso sólo en el caso en el que se trabaje sin conexión a la
red eléctrica, ya que en muchos casos resulta innecesario y supone un aumento del
coste.
El optimizador que se busca generar en este proyecto resulta ser una ventaja, ya que
ofrece una configuración de funcionamiento eficiente y a tiempo real, siendo capaz
de adaptarse a las características del sistema.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
5
3. Introducción
Actualmente la energía está tomando cada vez más importancia debido al desarrollo de
las tecnologías, se está generando una dependencia creciente de la población en cuanto
a estas nuevas tecnologías y se está creando, por tanto, un aumento de la necesidad de
energía, pero su disponibilidad es cada vez menor, las fuentes energéticas tradicionales
han dejado de considerarse inagotables. Debido a esto, la necesidad de encontrar nuevas
alternativas de abastecimiento está aumentando. Se busca entonces la independencia de
la red de suministros, para ello se hace uso de equipos que aprovechen otros recursos
como son el solar, el eólico o la hidráulica, y de otros que permitan almacenar esta
energía.
Teniendo en cuenta la creciente importancia de estos sistemas de autoconsumo, este
proyecto busca diseñar y desarrollar un algoritmo que gestione eficientemente una
instalación de generación energética distribuida.
3.1. Motivación
La energía se ha convertido en uno de los pilares que soportan el desarrollo de la sociedad
actual, por lo que su disponibilidad y buen uso son ya una pieza clave a la hora de
determinar el éxito o fracaso de las economías mundiales. En este nuevo siglo las reservas
han dejado de aumentar y se empieza a barajar un agotamiento total de recursos como
el petróleo o el gas natural. Además, se ha estimado que entre 2002 y 2030 la demanda
crecerá en un 60% en el mundo. En 2015, según La Red Eléctrica de España, el consumo
de energía en este país ha aumentado un 1,9 % con respecto al año anterior [8].
Los esfuerzos que realizan las compañías eléctricas para llevar el servicio hasta donde se
requiere resultan cada vez más costosos y menos efectivos. Conforme crece el tamaño
de las líneas, los requerimientos de mantenimiento de las líneas aumentan, crecen las
pérdidas de electricidad a lo largo de los conductores y baja la calidad del servicio al ser
mayor la frecuencia de las interrupciones y las variaciones en el voltaje. En el transporte
se pierde rendimiento. Por lo tanto, existen lugares geográficos que aún no cuentan con
una adecuada calidad de suministro debido a estar alejados de las redes principales o por
no disponer de conexión.
En estas plantas de generación tradicionales existen todo tipo de ineficiencias
provenientes de la pérdida de energía en el transporte hasta el consumidor y en la
generación, aprovechando menos de la mitad del poder energético del combustible.
Además, son partícipes del empeoramiento del medio ambiente mediante la gran
contaminación que producen.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
6
Surge entonces la idea de crear sistemas de generación distribuida, es decir, sistemas que
producen energía, eléctrica y/o térmica, mediante muchas pequeñas fuentes de
generación instaladas en puntos cercanos al consumo. Al encontrarse más cerca del
consumidor las pérdidas de energía en el transporte serán mucho menores. A su vez, este
tipo de sistemas permite una mejor conservación del medio ambiente al promover el uso
de fuentes de energía renovables, y también ayuda a los sistemas de suministro de
energía evitando la congestión en el transporte, sobre todo en periodos de gran
demanda, y por tanto mejorando su calidad. Sin embargo, también surgen
inconvenientes como el alto costo de inversión inicial para la adquisición de equipos, el
coste de mantenimiento o la necesidad de gestión.
Este nuevo sistema de generación plantea una evolución de la estructura del sistema
eléctrico, debido a que consigue hacer competencia a las redes de distribución de
energía. Se usan fuentes de generación de energía distribuida combinadas con el
almacenamiento temporal, estas son principalmente las dos tecnologías usadas en los
sistemas que componen una instalación de generación distribuida.
Los sistemas de acumulación como son las baterías han evolucionado técnica y
económicamente en los últimos años, ofreciendo ahora mayor capacidad y durabilidad a
menor coste, y permitiendo así un mayor desarrollo de los equipos renovables, ya que,
con la evolución del almacenamiento, la generación de energía limpia se hace más viable.
Los sistemas almacenadores permiten guardar la energía en los periodos de menor
consumo o coste o en aquellos donde se generan excesos, y poder usarla para cubrir
picos de demanda o en periodos punta. La combinación de sistemas almacenadores y
renovables hace posible un aprovechamiento energético óptimo de los recursos
disponibles.
La energía solar fotovoltaica se ha convertido en el sistema de generación de energía
limpia capaz de competir con las fuentes de suministro de energía tradicionales. La fuerte
bajada de precio que se ha producido en los últimos años lo ha hecho desarrollarse y
convertirse en una inversión con beneficio tanto para instalaciones pequeñas ubicadas
en los techos y azoteas, así como para las plantas de energía a gran escala. Además, se
consideran más rápidas y fáciles de instalar que el resto de sistemas de energía renovable.
A parte de lo dicho con anterioridad, también se conocen los datos de insolación u horas
de sol y radiación o cantidad de energía solar que recibe una superficie anualmente en
cada zona de España. Según estos mapas del Instituto Geográfico Nacional, la mayor
parte de la península ibérica recibe en torno a 2.600 y 2.800 horas de sol al año y una
media de 4 kWh/m2 de radiación solar. Por consiguiente, la viabilidad de las instalaciones
de energía solar está asegurada en la mayoría de zonas de España.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
7
Sin embargo, en los últimos años a la vez que se producían las bajadas de precios y el
desarrollo de los equipos renovables también se creaban restricciones y leyes en España
que han ido generando un descenso de instalaciones solares. Debido a las primas en la
producción impuestas y a la falta de financiación, este sector ha sufrido una gran parada.
España ha pasado de encontrarse entre una de las mayores productoras de energía solar
a situarse al final de la lista. En España el 37,4% de la energía eléctrica demandada se
cubrió con generación renovable en 2015, descendiendo 5,4 puntos respecto al año
anterior [8].
Figura 3: Mapa insolación anual Europa
Como se puede ver en la Figura 3, tenemos muchas ventajas con respecto al resto de
Europa en cuanto a energía solar, aparte de contar con numerosos ingenieros
especializados en este ámbito. A pesar de ello, España no está aprovechando estas
cualidades.
Figura 1: Mapa insolación anual España. Fuente: Instituto Geográfico Nacional
Figura 2: Mapa radiación solar anual España. Fuente: Instituto Geográfico Nacional
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
8
En los sistemas de generación distribuida de energía eléctrica también pueden
considerarse equipos generadores de energía térmica como son las placas termosolares
o la caldera.
En este tipo de sistemas habrá que tener en consideración también los elementos de
consumo, ya que, deberían adaptarse a las situaciones de disponibilidad de energía y de
costes para así moderar o no su consumo. Se propone realizar una gestión más eficiente
y sostenible de la demanda mediante la planificación e implementación de medidas
destinadas a influir en el modo de consumir energía con el fin de modificar el perfil de
consumo. Se busca reducir el consumo en horas punta dentro de lo posible y como
alternativa también válida desplazar esa demanda a las horas valle [9].
Se ha decidido centrar el proyecto en los pequeños consumidores debido al incremento
de inversiones que se están produciendo en equipos renovables en los últimos años,
además de que el consumo doméstico representa el 25% del consumo eléctrico total en
España, según La Red Eléctrica de España. Los pequeños consumidores se definen como
aquellos que consumen entre 1 kWh y 36000 kWh de energía al año. El consumo medio
mensual de los hogares se encuentra en torno a los 270 kWh, aun así, este valor
dependerá del tamaño y tipo de vivienda, y del número de ocupantes y cantidad de
elementos de consumo [10]. En la Figura 4 se muestra la curva de demanda real eléctrica
en MW que se produce en España, según la Red Eléctrica de España [11].
Figura 4: Curva de demanda real eléctrica. Fuente: Red Eléctrica España
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
9
4. Descripción tecnológica del problema
El objetivo del proyecto consta del desarrollo y diseño de un sistema que controle y
gestione de manera óptima la generación y el almacenamiento de energía eléctrica
proveniente de fuentes de distinta naturaleza.
4.1. Especificaciones técnicas de los sistemas considerados
El propósito principal es una gestión eléctrica eficiente de una instalación basada en el
autoconsumo, puro o parcial. A continuación, se van a presentar los sistemas de
generación, renovable o no, y de almacenamiento considerados en el proyecto.
La Figura 5 que se muestra, representa las interacciones existentes entre los equipos que
intervienen en el escenario que se plantea en el proyecto.
Figura 5: Esquema de la instalación
Se va a realizar una breve descripción de cada equipo considerado, indicando
características específicas y funcionamiento.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
10
Generadores:
- Fotovoltaico
Sistema variable y no gestionable, pero entre sus ventajas se encuentran la
ausencia de costes del combustible (la radiación solar), su nula contaminación
durante la fase de operación, así como su fiabilidad y seguridad. La variabilidad
de su producción procede de las condiciones climatológicas cambiantes.
La eficiencia de la producción de energía de estos equipos renovables depende
principalmente de los siguientes factores: climatológico, de inclinación, de
orientación y de la radiación solar según la estación y la hora del día.
La irradiancia, energía que por unidad de tiempo y área llega a la Tierra, no es la
misma en las diferentes horas del día, puesto que el sol va incrementando su
altura desde el amanecer hasta el mediodía y decreciéndola desde el mediodía
hasta el ocaso, tal y como se aprecia en la Figura 6. De la misma forma que
tampoco es la misma en el transcurso de las estaciones.
Este movimiento que crece y decrece durante el año y durante el día va a
determinar la cantidad útil de horas de las que dispondremos, es decir la Hora
Solar Pico. Siendo una Hora Solar Pico equivalente a 1.000 W/m² de irradiancia
solar.
El rendimiento de los paneles no es ideal y la causa de ello en la mayoría de
ocasiones son las altas temperaturas de trabajo de la célula, la suciedad, que se
crea en las placas y que dificulta la recepción de la energía, y el rendimiento del
inversor, ya que, también se generan pérdidas en la conversión.
Los paneles solares han ido ganando terreno, su popularidad permite que haya
una mayor inversión en la investigación, lo que al final nos permite contar con una
tecnología más eficiente y de menor coste, lo que permite que puedan estar al
alcance de empresas privadas, instituciones, comercios o público en general.
Figura 7: Irradiancia Cádiz. Fuente: Aemet Figura 6: Horas solares pico
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
11
o Grid inverter
Es el aparato que permite inyectar directamente la energía generada por
las placas solares en el edificio, sin necesidad de pasar por las baterías. En
caso de que las placas produjeran una cantidad de energía superior a la
demandada por la vivienda, esta energía se destinaría a la carga de
baterías. También se encarga de convertir la corriente continua a alterna.
- Generador
Es un equipo automático de apoyo capaz de producir energía eléctrica a partir de
la combustión de un combustible como el gasoil. La potencia del grupo
electrógeno es alta ya que es usado en la mayoría de las ocasiones para cubrir
picos de demanda o en días en los que el clima sea inestable. Este equipo es
indispensable en instalaciones que funcionen con autoconsumo y estén
desprovistas de conexión a la red eléctrica.
Produce la energía directamente a 230 V y en AC, por lo que no será necesario
ningún equipo intermediario.
- Grid
La conexión a la red eléctrica puede existir o no en los sistemas de generación
distribuida, ya que existen muchas zonas geográficas desprovistas aún de esta
conexión y trabajan por lo tanto en isla. En muchos otros casos sí se tendrá en
cuenta como un equipo generador de energía, ya que ofrece un suministro de
energía fiable, como se observa en la Figura 8. La Red Eléctrica de España pone a
disposición esta gráfica donde se muestra la demanda de energía eléctrica siendo
la curva amarilla la demanda real, la prevista en verde y la programada en rojo
[11]. Se puede ver que la desviación es mínima, por lo que su fiabilidad será alta.
Figura 8: Curvas demanda eléctrica. Fuente: Red Eléctrica España
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
12
Almacenadores :
- Baterías
El almacenamiento de energía posibilita el buen funcionamiento de la instalación,
permitiendo almacenar energía y suministrarla cuando exista la necesidad,
cubriendo así los picos de demanda. La gestión eficiente permitiría absorber
energía en horas valle y consumirla en horas punta.
Una de las principales desventajas que sufren las baterías se debe a la facilidad
con la que pueden deteriorarse prematuramente acortándole la vida e
impidiendo la correcta amortización del equipo, esto puede ocurrir debido a
varios factores:
Descarga demasiado profunda de la batería, por lo que la descarga se
realizará siempre por debajo del 80% de su capacidad.
Carga demasiado rápida y no completa.
Se recomienda mantener la corriente de carga a un 20% de la capacidad
real de la batería. Cuando la batería se carga por encima de esta
recomendación, su temperatura puede subir de golpe.
Cargar por debajo de la capacidad.
Se recomienda recargar las baterías al completo.
Sobrecargar.
Temperatura. La temperatura de una batería puede variar enormemente
por varias razones, entre ellas se encuentran la velocidad de descarga y la
ubicación de la batería.
Una alta temperatura media de trabajo desemboca en un envejecimiento
acelerado debido a que el proceso de descomposición química de la
batería se acelera con la temperatura. La vida útil para una batería a 20ºC
se dividirá por dos por cada 10ºC de aumento.
o Inversor
Un inversor es el dispositivo que se encarga de transformar el voltaje de
12V del sistema de baterías, al voltaje que tenemos en la vivienda (230 V)
y en el cual funcionan la mayoría de los dispositivos de uso común.
En la elección de los equipos habrá que tener en cuenta las curvas de demanda
eléctrica del edificio para poder elegir sistemas con potencia suficiente para cubrirla.
También se tendrán en cuenta la vida útil, sus costes y el impacto ambiental que
generan. En el caso de las baterías además habrá que considerar la capacidad de
almacenamiento
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
13
5. Modelado
En este apartado se presenta el modelo matemático que caracteriza de forma individual
y conjunta a los sistemas de generación, almacenamiento y producción que forman parte
de la instalación. Se definen datos y variables de caracterización de los equipos, a partir
de los cuales el algoritmo generará una configuración de funcionamiento óptima que
permita la gestión eficiente de la instalación. Este modelo teórico servirá para diseñar
posteriormente el algoritmo.
El modelo matemático partirá de unos datos de entrada como son las demandas
eléctricas, las previsiones medioambientales y las características técnicas y de costes de
los equipos. Una vez diseñado el modelo y caracterizado para la instalación se realizará
la programación del algoritmo, mediante un sistema informático, de manera que la
generación de la solución esté automatizada.
Figura 9: Modelo de interacción
5.1. Sistemas considerados
Se busca proporcionar consignas de funcionamiento energético a un sistema de control
de manera que se maximice el rendimiento a la vez que se consigue que el coste sea
mínimo.
Clasificación de los equipos según la naturaleza de obtención de la energía:
1. Generadores: se tomarán como equipos base o de refuerzo.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
14
a. Red eléctrica: Conexión al grid. Se considerará la opción de que el sistema
funcione en modo isla, es decir, que no exista esta conexión. Esto será
común en aquellos lugares cuya localización geográfica impida un fácil
acceso a la red eléctrica.
b. Generador: Equipo que produce energía eléctrica a partir de combustible.
2. Acumuladores: almacenan y liberan energía generada por otra fuente. Esto
permite el uso más efectivo y eficiente de las energías renovables, dotándolas de
disponibilidad y gestionabilidad.
a. Baterías: Sistemas almacenadores de energía eléctrica.
En el caso de contar con conexión a la red eléctrica, el almacenamiento se
realizará en horas valle, donde el precio de compra de electricidad a la red
es más barato, y el consumo en horas punta, es decir, cuando el precio es
más caro.
3. Renovables: equipos que aprovechan las fuentes naturales de energía. Deben de
usarse en conjunto con los equipos acumuladores, ya que sino una vez cubierta
la demanda la energía restante se desperdiciaría.
a. Fotovoltaica: sistemas que aprovechan la energía solar para producir
energía eléctrica.
Figura 10: Diagrama de bloques del sistema completo
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
15
En la Figura 10 se muestra un esquema de todos los sistemas que pueden estar presentes
en el modelo, la interacción entre ellos y con la instalación. Los flujos de energía eléctrica
generados por los equipos o la red destinados al abastecimiento de la instalación están
representados en color azul. En el caso de que el destino de la energía sea la carga de las
baterías el color del flujo es verde. En rojo se representa la alimentación de combustible
que necesita el equipo generador para su funcionamiento. No se tienen en cuenta
excesos energéticos.
5.2. Datos y variables
Datos: Características específicas de la instalación proporcionadas por el sistema de
control. También habrá datos de carácter general como el precio del combustible, que
varían con el tiempo, pero son conocidos.
Variables: Parámetros cuyo valor cambia durante la ejecución del algoritmo. Determinan
la salida del optimizador y la solución del problema.
5.2.1. Baterías
En la Tabla 1, Tabla 2, Tabla 3 y Tabla 4 se definen respectivamente los datos técnicos,
económicos, así como las variables principales o consignas de salida del algoritmo y las
variables auxiliares necesarias para realizar cálculos intermedios asociados al conjunto de
baterías.
Tabla 1: Datos técnicos de las baterías.
Datos técnicos Descripción Unidades
Bat_max_d Capacidad máxima de descarga de energía por el conjunto de baterías
kWh
Bat_max_c Capacidad máxima de carga de energía por el conjunto de baterías
kWh
Rend_bat_c Rendimiento de carga del conjunto de baterías. %
Rend_bat_d Rendimiento de descarga del conjunto de baterías. %
Bat_capacidad_max Capacidad máxima de almacenamiento en el conjunto de baterías
kWh
Bat_capacidad_min Capacidad mínima de almacenamiento en el conjunto de baterías
kWh
Bat_almacen_0 Energía eléctrica almacenada en el conjunto de baterías al principio
kWh
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
16
Tabla 2: Datos económicos de las baterías.
Datos económicos
Descripción Unidades
C_fix_bat Coste fijo de mantenimiento y amortización del conjunto de baterías en un slot de análisis ∆t
€
C_var_bat Coste variable asociado al uso del conjunto de baterías por kWh generado.
€/kWh
C_arranque_bat Coste asociado al cambio de estado del conjunto de baterías. Se imputa tanto si se produce una parada como un arranque.
€/cambio de estado
Tabla 3: Variables principales de las baterías (consignas).
Tabla 4: Variables auxiliares de las baterías.
Variables auxiliares
Descripción Unidades
Bat_c_gen_t Energía que necesita generar el conjunto de equipos habilitados para cargar baterías en el periodo temporal t para que se pueda producir Bat_c_efec_t
kWh
Bat_d_gen_t Energía que necesita generar el conjunto de baterías en el periodo temporal t para que se pueda producir Bat_d_efec_t
kWh
Bat_almacen_t Energía almacenada por el conjunto de baterías al inicio del periodo temporal t.
kWh
Bat_generador_t Energía eléctrica producida por el generador y destinada a la alimentación de las baterías en el periodo temporal t.
kWh
Bat_fotov_t Energía eléctrica generada por fotovoltaica y destinada a la alimentación de las baterías en el periodo temporal t.
kWh
Bat_grid_t Energía comprada a la red eléctrica (grid) y destinada a la carga del conjunto de baterías en el periodo temporal t
kWh
Bat_loss_t Pérdidas eléctricas del conjunto de baterías en el periodo temporal t
kWh
Bat_loss_c_t Pérdidas eléctricas asociadas a la carga del conjunto de baterías en el periodo temporal t.
kWh
Variables principales
Descripción Unidades
Bat_c_efec_t Consigna de carga eléctrica que ha de generar el conjunto de baterías en el periodo temporal t.
kWh
Bat_d_efec_t Consigna de descarga eléctrica que ha de generar el conjunto de baterías en el periodo temporal t.
kWh
δ_bat_t Variable binaria que indica si el conjunto de baterías está encendido (1) o no (0) en el periodo temporal t.
0 ó 1
a_bat_t Variable binaria que indica la existencia de un cambio de estado en el conjunto de baterías en el periodo temporal t.
0 ó 1
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
17
Bat_loss_d_t Pérdidas eléctricas asociadas a la descarga del conjunto de baterías en el periodo temporal t.
kWh
5.2.2. Solar Fotovoltaica
En la Tabla 5, Tabla 6, Tabla 7 y Tabla 8 se definen respectivamente los datos técnicos,
económicos, así como las variables principales o consignas de salida del algoritmo y las
variables auxiliares necesarias para realizar cálculos intermedios asociados a las placas
solares fotovoltaicas.
Tabla 5: Datos técnicos de energías renovables
Datos técnicos Descripción Unidades
Fotov_max Energía eléctrica máxima que son capaces de producir los paneles fotovoltaicos
kWh
Prevision_fotov_t Previsión de energía eléctrica producida por los paneles fotovoltaicos en el periodo de análisis t+1 que viene dada como dato del módulo de previsión climatológica
kWh
Rend_fotov Rendimiento en los paneles fotovoltaicos. %
Tabla 6: Datos económicos de energías renovables
Datos económicos
Descripción Unidades
C_fix_fotov Coste fijo de mantenimiento y amortización de las placas fotovoltaicas en un slot de análisis ∆t
€
C_var_fotov Coste variable asociado a los kWh suministrados por las placas fotovoltaicas.
€/ kWh
C_arranque_fotov Coste asociado al cambio de estado de las placas fotovoltaicas. Se ha de imputar tanto si se produce una parada como un arranque
€/cambio de estado
Tabla 7: Variables principales de renovables (consignas)
Variables principales
Descripción Unidades
Fotov_efec_t Consigna de energía eléctrica efectiva que han de producir las placas fotovoltaicas en el periodo temporal t.
kWh
δ_fotov_t Variable binaria que indica si las placas fotovoltaicas están funcionando (1) o no (0) en el periodo temporal t.
0 ó 1
a_fotov_t Variable binaria que indica la existencia de un cambio de estado en las placas fotovoltaicas está en el periodo temporal t.
0 ó 1
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
18
Tabla 8: Variables auxiliares de renovables
Variables auxiliares
Descripción Unidades
Fotov_gen_t Energía eléctrica ordenada a generar por las placas fotovoltaicas en el periodo tempotal t.
kWh
Bat_fotov_t Energía eléctrica suministrada por las placas fotovoltaicas cuyo destino es la alimentación de las baterías en el periodo temporal t.
kWh
Fotov_inst_t Energía eléctrica suministrada por las placas fotovoltaicas cuyo destino es la instalación en el periodo temporal t (descontada la que se destina a la carga de baterías)
kWh
Fotov_loss_t Pérdidas de energía eléctrica de las placas fotovoltaicas en el periodo temporal t.
kWh
5.2.3. Generador En la Tabla 9, Tabla 10, Tabla 11 y Tabla 12 se definen respectivamente los datos técnicos,
económicos, así como las variables principales o consignas de salida del algoritmo y las
variables auxiliares necesarias para realizar cálculos intermedios asociados al generador.
Tabla 9 Datos técnicos del generador
Datos técnicos Descripción Unidades
E_max_generador Energía máxima de producción del generador kWh
Rend_generador Rendimiento del generador Adim.
PCS Poder calorífico superior o verdaderamente producido kWh/L
PCI Poder calorífico inferior o realmente aprovechable kWh/L
Tabla 10: Datos económicos del generador
Datos económicos
Descripción Unidades
C_fix_generador Coste fijo de mantenimiento de la caldera en un slot de análisis ∆t
€
C_var_ generador Coste asociado al uso del generador por kWh generado. €/kWh
C_arranque_generador Variable binaria que indica la existencia de un cambio de estado en el generador en el periodo temporal t. Se ha de imputar tanto si se produce una parada como un arranque.
€/arranque
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
19
Tabla 11: Variables principales del generador (consignas)
Tabla 12: Variables auxiliares del generador
Variables auxiliares
Descripción Unidades
Generador_cons_t Consumo energético de combustible por parte del generador en el periodo temporal t para poder producir Generador_efec_t .
kWh
Generador_inst_t Energía eléctrica producida por el generador y destinada a la instalación en el periodo temporal t.
kWh
Bat_generador_t Energía eléctrica producida por el generador y destinada a la alimentación de las baterías en el periodo temporal t.
kWh
Generador_loss_t Pérdidas eléctricas producidas por el generador en el periodo temporal t.
kWh
5.2.4. Generales
En la Tabla 13, Tabla 14, Tabla 15 y Tabla 16 se definen respectivamente los datos
técnicos globales del sistema completo, datos económicos relativos al contrato de
suministros, consignas de compra de suministros, así como las variables auxiliares
necesarias para realizar cálculos intermedios asociados al conjunto de equipos que
componen el escenario.
Tabla 13: Datos técnicos globales del sistema
Datos técnicos
Descripción Unidades
E_instalacion_t Energía eléctrica necesaria para satisfacer el consumo de la instalación en el periodo temporal t.
kWh
P_horas Tiempo en horas del slot de análisis ∆t. Para periodos cuarto-horarios tendrá un valor de 0,25.
Horas
Pe_contratada Potencia eléctrica máxima contratada kW
Variables principales
Descripción Unidades
Generador_efec_t Consigna de energía eléctrica efectiva que ha de producir el generador en el periodo temporal t.
kWh
δ_generador_t Variable binaria que indica si el generador está encendido (1) o no (0) en el periodo temporal t.
0 ó 1
a_generador_t Variable binaria que indica la existencia de un cambio de estado en el generador al inicio del periodo temporal t.
0 ó 1
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
20
Tabla 14:Datos económicos de la demanda externa de energía
Datos económicos
Descripción Unidades
C_elect_p Coste de la energía eléctrica en el periodo tarifario p. €/ kWh
C_combustible Coste del combustible. €/ kWh
C_fix_grid Coste fijo de la red eléctrica, formado por el coste de la potencia contratada y del alquiler de equipos
€
Tabla 15: Variables principales del sistema completo (consignas)
Tabla 16: Variables auxiliares del sistema completo: Compra, venta y pérdidas energéticas.
Variables auxiliares
Descripción Unidades
E_total_loss_t Pérdidas totales de energía eléctrica en el periodo temporal t.
kWh
Bat_grid_t Energía comprada al grid y destinada a la carga del conjunto de baterías en el periodo temporal t.
kWh
D_inst_t Energía comprada al grid y destinada a la instalación en el periodo temporal t.
kWh
5.3. Restricciones técnicas
Las restricciones de carácter técnico son aquellas impuestas por el propio sistema o
equipo.
5.3.1. Restricciones técnicas de baterías El conjunto de baterías está caracterizado por las siguientes restricciones, las cuales definirán las consignas de funcionamiento que el optimizador generará para este equipo almacenador en cada uno de los periodos temporales t. Para evitar que se produzca una degradación prematura del equipo se acota el nivel de energía almacenado entre un nivel máximo y un nivel mínimo. Este problema es la principal causa de fallo de las baterías, por lo que se busca no realizar descargas ni cargas completas. 𝐵𝑎𝑡_𝑐𝑎𝑝𝑎𝑐𝑖𝑑𝑎𝑑_min
≤ 𝐵𝑎𝑡_𝑎𝑙𝑚𝑎𝑐𝑒𝑛_𝑡 ≤ 𝐵𝑎𝑡_𝑐𝑎𝑝𝑎𝑐𝑖𝑑𝑎𝑑_max
∀𝑡 = 1 … 𝑇 (1)
Variables principales
Descripción Unidades
D_red_t Energía eléctrica demandada al grid en el periodo temporal t. kWh
D_comb_t Gasolina demandada al suministro de combustible en el periodo temporal t.
kWh
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
21
La cantidad de energía máxima que se puede cargar o descargar en un determinado periodo estará delimitada por los valores Bat_max_d y Bat_max_c que son dato, los cuales se obtienen de sus características técnicas, estos valores serán diferentes para otros tipos de baterías u otros modelos. 𝐵𝑎𝑡_𝑐_𝑔𝑒𝑛_t
≤ 𝐵𝑎𝑡_max _c ∀𝑡 = 1 … 𝑇 (2)
𝐵𝑎𝑡_𝑑_𝑔𝑒𝑛_t ≤ 𝐵𝑎𝑡_max _d
∀𝑡 = 1 … 𝑇 (3)
El rendimiento es aquel encargado de relacionar la energía ordenada a generar y la consigna de producción del optimizador. Este valor se encuentra influenciado por distintos factores como son la temperatura a la que se encuentran los equipos o el uso. Se usará el rendimiento de carga o de descarga dependiendo si la consigna es de carga o descarga respectivamente. 𝐵𝑎𝑡_𝑐_𝑒𝑓𝑒𝑐_t = 𝑅𝑒𝑛𝑑_𝑏𝑎𝑡_𝑐 ∙ 𝐵𝑎𝑡_𝑐_𝑔𝑒𝑛_t
∀𝑡 = 1 … 𝑇 (4)
𝐵𝑎𝑡_𝑑_𝑒𝑓𝑒𝑐_t = 𝑅𝑒𝑛𝑑_𝑏𝑎𝑡_𝑑 ∙ 𝐵𝑎𝑡_𝑑_𝑔𝑒𝑛_t ∀𝑡 = 1 … 𝑇 (5)
Activación de variables binarias asociadas a los cambios de estado.
Las variables binarias δ son aquellas asociadas a la activación de los equipos, sólo se generarán consignas de aquellos que estén en funcionamiento en el periodo t, es decir, que si las baterías no se encuentran activas la energía asignada a proporcionar será cero. 𝐵𝑎𝑡_𝑐_𝑔𝑒𝑛__𝑡 ≤ 𝐵𝑎𝑡_max _𝑐 · 𝛿_𝑏𝑎𝑡_𝑡 ∀ 𝑡 = 1 … 𝑇 (6)
𝐵𝑎𝑡_𝑑_𝑔𝑒𝑛__𝑡 ≤ 𝐵𝑎𝑡_max _𝑑 · 𝛿_𝑏𝑎𝑡_𝑡 ∀ 𝑡 = 1 … 𝑇 (7)
En las ecuaciones (8) y (9) se describen las restricciones de activación de las variables
binarias asociadas al cambio de estado del conjunto de baterías. El cambio de estado se
produce cuando el equipo pasa de encendido a apagado en periodos temporales
consecutivos, o viceversa. Cuando ocurra un cambio de estado según lo explicado
anteriormente la variable tomará el valor 1, en otro caso será nulo.
𝑎_𝑏𝑎𝑡_𝑡 ≥ 𝛿_𝑏𝑎𝑡_𝑡 − 𝛿_𝑏𝑎𝑡_𝑡−1 ∀ 𝑡 = 1 … 𝑇 (8) 𝑎_𝑏𝑎𝑡_𝑡 ≥ 𝛿_𝑏𝑎𝑡_𝑡−1 − 𝛿_𝑏𝑎𝑡_𝑡 ∀ 𝑡 = 1 … 𝑇 (9)
5.3.2. Restricciones técnicas del generador La energía máxima capaz de producir por el generador delimitará el valor de la consigna de producción del generador en cada periodo. Este valor es dato y se obtiene de las características técnicas del equipo.
𝐺𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑒𝑓𝑒𝑐_𝑡 ≤ 𝐸_max _𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟 ∀𝑡 = 1 … 𝑇 (10)
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
22
En la ecuación (11) se describe el cálculo, a partir del poder calorífico superior e inferior, del consumo energético de combustible por parte del generador en el periodo temporal t necesario para poder producir la consigna efectiva.
𝐺𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑐𝑜𝑛𝑠_𝑡 =𝑃𝐶𝑆_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟
𝑃𝐶𝐼_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟∗
𝐺𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑒𝑓𝑒𝑐_𝑡
𝑅𝑒𝑛𝑑_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟 ∀ 𝑡 = 1 … 𝑇 (11)
Activación de variables binarias asociadas a los cambios de estado.
La variable binaria δ es aquella asociada al funcionamiento del equipo, sólo se generarán consignas en caso de que se encuentre activo en el periodo t, esta activación implicará a su vez un consumo de combustible.
𝐺𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑐𝑜𝑛𝑠__𝑡 ≤ 𝐸_max _𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟 · 𝛿_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑡 ∀ 𝑡 = 1 … 𝑇 (12)
En las ecuaciones (13) y (14) se describen las restricciones de activación de las variables
binarias asociadas al cambio de estado del generador. El cambio de estado se produce
cuando el equipo pasa de encendido a apagado en periodos temporales consecutivos, o
viceversa. Cuando ocurra un cambio de estado según lo explicado anteriormente la
variable tomará el valor 1, en otro caso será nulo.
𝑎_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑡 ≥ 𝛿_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑡 − 𝛿_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑡−1 ∀ 𝑡 = 1 … 𝑇 (13)
𝑎_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑡 ≥ 𝛿_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑡−1 − 𝛿_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑡 ∀ 𝑡 = 1 … 𝑇 (14)
5.3.3. Restricciones técnicas de las placas fotovoltaicas La previsión meteorológica que se realice para los periodos temporales siguientes será la que determine la consigna de producción energética que dará el optimizador a las placas fotovoltaicas. Estas consignas serán menores que la previsión realizada y ésta será menor que la máxima energía que es capaz de producir el equipo.
𝐹𝑜𝑡𝑜𝑣_𝑒𝑓𝑒𝑐𝑡_𝑡 ≤ 𝑃𝑟𝑒𝑣𝑖𝑠𝑖𝑜𝑛_𝐹𝑜𝑡𝑜𝑣_𝑡 ≤ 𝐹𝑜𝑡𝑜𝑣_𝑚𝑎𝑥 ∀ 𝑡 = 1 … 𝑇 (15)
El rendimiento es aquel encargado de relacionar la energía ordenada a generar y la energía efectiva o aprovechable, la ecuación (16) describe esta relación. 𝐹𝑜𝑡𝑜𝑣_𝑒𝑓𝑒𝑐_t
= 𝐹𝑜𝑡𝑜𝑣_𝑔𝑒𝑛_t ∙ 𝑅𝑒𝑛𝑑_𝑓𝑜𝑡𝑜𝑣 ∀𝑡 = 1 … 𝑇 (16)
Activación de variables binarias asociadas a los cambios de estado.
La variable binaria δ es aquella asociada al funcionamiento del equipo, sólo se generarán consignas en caso de que se encuentre activo en el periodo t.
𝐹𝑜𝑡𝑜𝑣_𝑔𝑒𝑛_𝑡 ≤ 𝐹𝑜𝑡𝑜𝑣_𝑚𝑎𝑥 · 𝛿_𝑓𝑜𝑡𝑜𝑣_𝑡 ∀𝑡 = 1 … 𝑇 (17)
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
23
En las ecuaciones (18) y (19) se describen las restricciones de activación de las variables
binarias asociadas al cambio de estado del generador. El cambio de estado se produce
cuando el equipo pasa de encendido a apagado en periodos temporales consecutivos, o
viceversa. Cuando ocurra un cambio de estado según lo explicado anteriormente la
variable tomará el valor 1, en otro caso será nulo.
𝑎_𝑓𝑜𝑡𝑜𝑣_𝑡 ≥ 𝛿_𝑓𝑜𝑡𝑜𝑣_𝑡 − 𝛿_𝑓𝑜𝑡𝑜𝑣_𝑡−1 ∀ 𝑡 = 1 … 𝑇 (18)
𝑎_𝑓𝑜𝑡𝑜𝑣_𝑡 ≥ 𝛿_𝑓𝑜𝑡𝑜𝑣_𝑡−1 − 𝛿_𝑓𝑜𝑡𝑜𝑣_𝑡 ∀ 𝑡 = 1 … 𝑇 (19)
5.4. Balances energéticos
La Figura 11 define las ecuaciones de balance eléctrico en cada uno de los nodos del
problema.
Figura 11: Grafo de flujo de energía eléctrica.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
24
En la Figura 12 se representa un diagrama de bloques que expone las relaciones
energéticas entre los sistemas.
Figura 12: Diagrama de bloques del sistema eléctrico.
En las ecuaciones de balance energético se debe garantizar la conservación de la energía
en los nodos, es decir, el sumatorio de la energía entrante en cada nodo (consumo) debe
coincidir con el sumatorio de la energía que sale de él (energía efectiva más pérdidas).
Nodo 1: Este nodo sólo tiene sentido conceptual por lo que no se incluye su ecuación. Sirve como origen de los flujos energéticos que llegan a los nodos de aporte. La variable Generador_cons_t representa el consumo de combustible del generador necesario para producir la consigna de generación eléctrica Generador_efec_t. Nodo 2: La energía entrante de las placas fotovoltaicas proviene del medio ambiente, en este caso su fuente es solar (Fotov_gen_t). El destino de esta energía será la carga de las baterías (Bat_fotov_t) y la instalación directamente (Fotov_inst_t). Existen pérdidas asociadas al rendimiento no ideal de los equipos (Fotov_loss_t). 𝐹𝑜𝑡𝑜𝑣_𝑔𝑒𝑛_𝑡 = 𝐹𝑜𝑡𝑜𝑣_𝑖𝑛𝑠𝑡_𝑡 + 𝐵𝑎𝑡_𝑓𝑜𝑡𝑜𝑣_𝑡 + 𝐹𝑜𝑡𝑜𝑣_𝑙𝑜𝑠𝑠_𝑡 ∀ 𝑡 = 1 … 𝑇 (20)
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
25
La consigna de producción efectiva será la energía generada menos las pérdidas. 𝐹𝑜𝑡𝑜𝑣_𝑒𝑓𝑒𝑐_𝑡 = 𝐹𝑜𝑡𝑜𝑣_𝑖𝑛𝑠𝑡_𝑡 + 𝐵𝑎𝑡_𝑓𝑜𝑡𝑜𝑣_𝑡 ∀ 𝑡 = 1 … 𝑇 (21)
Nodo 3: La energía proveniente de la red eléctrica será usada para la carga de las baterías (Bat_grid_t) y para satisfacer la demanda de la instalación (D_inst_t). No se consideran pérdidas energéticas. 𝐷_𝑟𝑒𝑑_𝑡 = 𝐷_𝑖𝑛𝑠𝑡_𝑡 + 𝐵𝑎𝑡_𝑔𝑟𝑖𝑑_𝑡 ∀ 𝑡 = 1 … 𝑇 (22)
Nodo 4: En el caso del generador la energía entrante procede del consumo de combustible, la salida de energía será la misma que anteriormente, es decir, producción efectiva más pérdidas. 𝐺𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑐𝑜𝑛𝑠_𝑡 = 𝐺𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑖𝑛𝑠𝑡_𝑡 + 𝐵𝑎𝑡_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑡 + 𝐺𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑙𝑜𝑠𝑠_𝑡
∀ 𝑡 = 1 … 𝑇 (23) La consigna de producción efectiva será la energía generada menos las pérdidas. 𝐺𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑒𝑓𝑒𝑐_𝑡 = 𝐺𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑖𝑛𝑠𝑡_𝑡 + 𝐵𝑎𝑡_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑡 ∀ 𝑡 = 1 … 𝑇 (24)
Nodo 5: La carga de las baterías se realiza a partir de la energía procedente del generador, las placas y el grid, lo cual será igual a la energía descargada más las pérdidas. 𝐵𝑎𝑡_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑡 + 𝐵𝑎𝑡_𝑓𝑜𝑡𝑜𝑣_𝑡 + 𝐵𝑎𝑡_𝑔𝑟𝑖𝑑_𝑡 = 𝐵𝑎𝑡_𝑑_𝑒𝑓𝑒𝑐_𝑡 + 𝐵𝑎𝑡_𝑙𝑜𝑠𝑠_𝑡 ∀ 𝑡 = 1 … 𝑇 (25)
𝐵𝑎𝑡_𝑑_𝑔𝑒𝑛_𝑡 = 𝐵𝑎𝑡_𝑑_𝑒𝑓𝑒𝑐_𝑡 + 𝐵𝑎𝑡_𝑙𝑜𝑠𝑠_𝑑_𝑡 ∀ 𝑡 = 1 … 𝑇 (26)
Cuando las baterías se encuentran activadas en modo carga, la demanda del sistema aumenta, ya que esta energía deberá ser generada por alguno de los equipos presentes. 𝐵𝑎𝑡_𝑐_𝑔𝑒𝑛_𝑡 = 𝐵𝑎𝑡_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑡 + 𝐵𝑎𝑡_𝑓𝑜𝑡𝑜𝑣_𝑡 + 𝐵𝑎𝑡_𝑔𝑟𝑖𝑑_𝑡 ∀ 𝑡 = 1 … 𝑇 (27)
𝐵𝑎𝑡_𝑐_𝑔𝑒𝑛_𝑡 = 𝐵𝑎𝑡_𝑐_𝑒𝑓𝑒𝑐_𝑡 + 𝐵𝑎𝑡_𝑙𝑜𝑠𝑠_𝑐_𝑡 ∀ 𝑡 = 1 … 𝑇 (28)
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
26
Por simplicidad, se han agrupado las pérdidas asociadas a la carga y descarga del conjunto de baterías en la variable Bat_loss_t. 𝐵𝑎𝑡_𝑙𝑜𝑠𝑠_𝑡 = 𝐵𝑎𝑡_𝑙𝑜𝑠𝑠_𝑐_𝑡 + 𝐵𝑎𝑡_𝑙𝑜𝑠𝑠_𝑑_𝑡 ∀ 𝑡 = 1 … 𝑇 (29) Nodo 6: La demanda eléctrica de la instalación será cubierta debido a las consignas de generación de cada uno de estos equipos. 𝐷_𝑖𝑛𝑠𝑡_𝑡 + 𝐹𝑜𝑡𝑜𝑣_𝑖𝑛𝑠𝑡_𝑡 + 𝐺𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑖𝑛𝑠𝑡_𝑡 + 𝐵𝑎𝑡_𝑑_𝑒𝑓𝑒𝑐_𝑡 = 𝐸_𝑖𝑛𝑠𝑡𝑎𝑙𝑎𝑐𝑖𝑜𝑛_𝑡
∀ 𝑡 = 1 … 𝑇 (30) Nodo 7: En este nodo confluyen las pérdidas de energía que surgen en los equipos debido al rendimiento no ideal de ellos. 𝐸_𝑡𝑜𝑡𝑎𝑙_𝑙𝑜𝑠𝑠_𝑡 = 𝐹𝑜𝑡𝑜𝑣_𝑙𝑜𝑠𝑠_𝑡 + 𝐺𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑙𝑜𝑠𝑠_𝑡 + 𝐵𝑎𝑡_𝑙𝑜𝑠𝑠_𝑡 ∀ 𝑡 = 1 … 𝑇 (31) Nodo 8: Nodo de carácter conceptual que representa la demanda de energía eléctrica de la instalación. No se necesita una ecuación que describa el balance energético del nodo.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
27
5.5. Función objetivo
Las consignas de producción energética deben cumplir con la demanda eléctrica en cada periodo, conseguido esto la configuración proporcionada deberá minimizar los costes totales de manera que se consiga el máximo rendimiento y eficiencia del sistema. La función de costes a minimizar es la siguiente:
∑{𝐶_𝑒𝑙𝑒𝑐𝑡_𝑡 · 𝐷_𝑟𝑒𝑑_𝑡 + 𝐶_𝑓𝑖𝑥_𝑔𝑟𝑖𝑑 + 𝐶_𝑣𝑎𝑟_𝑏𝑎𝑡 · (𝐵𝑎𝑡_𝑐_𝑔𝑒𝑛_𝑡
+𝐵𝑎𝑡_𝑑_𝑔𝑒𝑛_𝑡 )
𝑇
𝑡=1
+ 𝐶_𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒_𝑏𝑎𝑡 · 𝑎_𝑏𝑎𝑡_𝑡 + 𝐶_𝑓𝑖𝑥_𝑏𝑎𝑡 · 𝛿_𝑏𝑎𝑡_𝑡 + 𝐶_𝑣𝑎𝑟_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟
· 𝐺𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟𝑒𝑓𝑒𝑐_𝑡 + 𝐺𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑐𝑜𝑛𝑠_𝑡 ∙ 𝑃𝑐𝑜𝑚𝑏 + 𝐶_𝑓𝑖𝑥_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟
· 𝛿_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑡 + 𝐶_𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟 · 𝑎_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑡 + 𝐶_𝑣𝑎𝑟_𝑓𝑜𝑡𝑜𝑣
· 𝐹𝑜𝑡𝑜𝑣_𝑔𝑒𝑛_𝑡 + 𝐶_𝑓𝑖𝑥_𝑓𝑜𝑡𝑜𝑣 · 𝛿_𝑓𝑜𝑡𝑜𝑣_𝑡 + 𝐶_𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒_𝑓𝑜𝑡𝑜𝑣 · 𝑎_𝑓𝑜𝑡𝑜𝑣_𝑡}
Sólo cuando el equipo pase de apagado a encendido o viceversa en periodos consecutivos se tendrán en cuenta los costes de arranque/parada. El coste variable estará asociado al uso de los equipos, y el fijo al mantenimiento y la amortización. Sumando 1
𝐶_𝑒𝑙𝑒𝑐𝑡_𝑡 · 𝐷_𝑟𝑒𝑑_𝑡 + 𝐶_𝑓𝑖𝑥_𝑔𝑟𝑖𝑑
Este sumando define el coste de toda la electricidad comprada a la red eléctrica en el periodo tarifario t, no se contaría en caso de que la instalación funcionara en modo isla. Sumando 2
𝐶_𝑣𝑎𝑟_𝑏𝑎𝑡 · (𝐵𝑎𝑡_𝑐_𝑔𝑒𝑛_𝑡
+𝐵𝑎𝑡_𝑑_𝑔𝑒𝑛_𝑡 ) + 𝐶_𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒_𝑏𝑎𝑡 · 𝑎_𝑏𝑎𝑡_𝑡 + 𝐶_𝑓𝑖𝑥_𝑏𝑎𝑡 · 𝛿_𝑏𝑎𝑡_𝑡
Este sumando define el coste total del conjunto de baterías. El coste de arranque no se aplicará en caso de que la batería cambie de modo carga a modo descarga, o viceversa. Sumando 3 𝐶_𝑣𝑎𝑟_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟 · 𝐺𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑒𝑓𝑒𝑐_𝑡 + 𝐺𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑐𝑜𝑛𝑠_𝑡 ∙ 𝑃𝑐𝑜𝑚𝑏 + 𝐶_𝑓𝑖𝑥_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟 ·
𝛿_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑡 + 𝐶_𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟 · 𝑎_𝑔𝑒𝑛𝑒𝑟𝑎𝑑𝑜𝑟_𝑡
Este sumando define el coste total del generador.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
28
Sumando 4 Este sumando define el coste total del equipo renovable.
𝐶_𝑣𝑎𝑟_𝑓𝑜𝑡𝑜𝑣 · 𝐹𝑜𝑡𝑜𝑣_𝑔𝑒𝑛_𝑡 + 𝐶_𝑓𝑖𝑥_𝑓𝑜𝑡𝑜𝑣 · 𝛿_𝑓𝑜𝑡𝑜𝑣_𝑡 + 𝐶_𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒_𝑓𝑜𝑡𝑜𝑣 · 𝑎_𝑓𝑜𝑡𝑜𝑣_𝑡
Los costes fijos al no depender de las consignas de producción no tienen por qué incluirse
en el algoritmo de optimización, aun así, se tienen en cuenta para poder conocer los
costes totales.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
29
6. Descripción de la instalación objeto de análisis
En este apartado se exponen las características concretas de la instalación en la que está
basado el proyecto, describiendo su situación técnica y geográfica.
6.1. Ubicación
Existen actualmente muchas zonas rurales a las cuales aún no llega la red eléctrica o que
para que eso ocurra se debe pagar un alto precio, el proyecto está basado concretamente
entre la bahía de Cádiz y Algeciras donde esto pasa, aunque, este inconveniente no ha
sido un impedimento para seguir construyendo, ya que, las fuentes renovables como el
sol y el viento son los protagonistas de la zona. Para poder satisfacer las demandas
eléctricas y térmicas han tenido que buscar otros medios de generación energética
basándose en el autoconsumo. La gran cantidad de sol y viento que recibe este lugar le
ha permitido crear plantas solares y eólicas a lo largo de todo su paraje.
Figura 13: Parque eólico
Esta zona, cuenta con unos treinta parques eólicos esparcidos por pueblos como Tarifa,
Zahara de los Atunes, Conil de la Frontera o Vejer de la Frontera. Cádiz es la comunidad
andaluza que más energía eólica produce, Andalucía cuenta actualmente con casi 150
parques eólicos [12].
En Andalucía el 39% de la energía se genera mediante fuentes renovables, según la
Agencia Andaluza de la Energía, se dispone en esta región actualmente, a pesar de las
dificultades impuestas, de casi 70 instalaciones fotovoltaicas para el autoconsumo [13].
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
30
6.2. Características de la instalación
La instalación en la que está realizada este proyecto es una casa de 300 m2 usada como
alojamiento rural y ubicada en el parque natural de Las Breñas en Barbate.
Este edificio no dispone de conexión a la red eléctrica como otros muchos de la zona, a
pesar de ello se ha tenido en cuenta el suministro eléctrico como una opción más, ya que,
así el problema adquiere mayor complejidad. Aunque en la actualidad no se disponga de
esta conexión, ésta podrá existir en los años posteriores. Se estudiará también el
funcionamiento en isla de la instalación.
Se ha decidido no realizar el estudio de la energía térmica debido a que sólo existe una
única fuente de generación de calor, mediante gas propano se lleva a cabo el
funcionamiento de los termos de agua para las duchas, la calefacción y la cocina. Para
cubrir la demanda de gas, el edificio cuenta con un depósito de 1000L de este
combustible.
La demanda de agua se satisface a partir de un pozo del cual se extrae el agua a través
de una bomba que se encarga de llenar un depósito para facilitar la disponibilidad. Para
el consumo proveniente de la casa, el agua pasa por un grupo de presión que le aporta la
fuerza necesaria, en los demás casos en los que su uso no requiera tal presión, el agua
sale del depósito por gravedad.
Se cuenta con equipos renovables como son las placas fotovoltaicas los cuales almacenan
la energía que producen en baterías. Y como equipo de refuerzo se dispone de un
generador automático cuyo combustible es el gasoil.
6.3. Características de los equipos
Figura 14: Esquema de la instalación real
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
31
En la Tabla 17 se presentan las características técnicas de los equipos de la instalación:
Tabla 17: Características técnicas de los equipos
Equipo Cantidad Potencia Tensión Vida útil
Precio Características
Placas fotovoltaicas
24 250 W 25 años
230€/panel
Generador 1 45 kW 40000 horas
12000 €/ud. Funciona con gasoil como combustible, se dispone de un depósito de 1000L
Grid inverter 1 6000W Transforma a 200V, funciona con cambios de frecuencia
Inversores 2 en serie
5000 W 120 A, 24 V
Baterías 12 2440 A en C120 de 2 V
15-20 años
600€/batería Tubulares
Las baterías usadas en esta instalación son estacionarias, más concretamente las de tipo
OPZS. Están formadas por vasos independientes de 2V cada uno, con capacidades de
carga que pueden llegar hasta los 2440 Ah. Los vasos se conectan entre sí mediante
conectores y formando sistemas de 12V. Este modelo es el más utilizado en grandes
instalaciones o bien en instalaciones medias donde se necesite una batería de mayor
duración que las Gel o AGM. Las OPZS tienen una vida útil de 20 años y tienen una gran
resistencia para ciclos continuos de carga-descarga. Al tratarse de una batería abierta,
requiere un mantenimiento de rellenado cada 2 años y colocarse en un lugar ventilado.
No se encuentra presente actualmente en la instalación, pero existe la posibilidad de
conexión en el futuro.
6.4. Los elementos de consumo
Para hacer un correcto análisis de la situación en la que se encuentra la instalación es
necesario conocer los elementos de consumo eléctrico con los que cuenta el edificio para
así poder estimar la demanda que se ha de satisfacer de forma más real.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
32
Como se observa en la Figura 15, se cuenta con los electrodomésticos básicos de una
vivienda, pero al tratarse de una casa usada como alojamiento de alquiler, el número de
estas máquinas será superior al de una vivienda normal. Además, como diferencia, al no
disponer de red de agua, debe tener una bomba de agua que se encarga de llenar un
depósito, y un grupo de presión que le da la fuerza necesaria. Hay también jardín exterior
y una piscina, por lo que la depuradora y el riego automático formarán también parte de
los elementos de consumo eléctrico.
A continuación, se va a realizar una explicación de cómo se ha realizado la estimación de
demanda por periodos, basándonos en la existencia de tres escenarios diferentes según
el número de personas que se encuentren en la casa y según los aparatos de consumo
eléctrico que se usen.
Figura 16: Escenarios de demanda
Figura 15: Elementos de consumo eléctrico
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
33
Para realizar este cálculo es necesario conocer las potencias de consumo de cada uno de
estos aparatos, se incluyen en la Figura 17. Se puede apreciar que los electrodomésticos
como el horno, la lavadora o el lavavajillas son los que más potencia consumen, junto con
la bomba de agua, el grupo de presión y el riego, necesarios para la disponibilidad de agua
en la vivienda.
Figura 17: Potencias de los elementos de consumo
Nuestro horizonte temporal será de 1 día, por lo que en el caso de constar de 10 periodos
cada uno de ellos tendrá una duración de 144 min (2 horas y 24 min), si en cambio
tenemos en cuenta 96 periodos, estos durarán 15 min.
Presentamos a continuación la demanda para el caso de 10 periodos calculada teniendo
en cuenta la potencia del elemento y el tiempo de uso en cada periodo. En algún periodo
el número de aparatos en uso se ha sobredimensionado de manera que sea posible
comprobar que el sistema responde ante demandas altas de energía, además esta
cantidad dependerá de las personas alojadas en la casa.
Como se puede observar en la Tabla 18, el uso del frigorífico es continuado. En los
periodos de mediodía y de por la tarde se suponen mayores consumos de electricidad al
ser necesario el funcionamiento de los electrodomésticos de cocina. La bomba de agua
se usará principalmente para las duchas. Para el riego automático se necesitará disponer
de dos horas, la depuradora estará funcionando durante cuatro horas.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
34
Tabla 18: Consumo eléctrico para 10 periodos
Se expone ahora un ejemplo aclaratorio del cálculo realizado, se escoge el periodo 6 del
escenario 3, suponiendo en uso los aparatos representados en la tabla:
- Frigoríficos: 3uds*300W*2.4h=2160Wh
- Alarma: 10W*2.4h=24Wh
- Batidora: 600W*0.3h=180Wh
- Riego: 1500W*2.4h=3600Wh
- Depuradora: 750W*2.4h=1800Wh
- Horno: 1300W*1h=1300Wh
- Televisión: 300W*1.5h=450Wh
- Microondas: 800W*0.5h=400Wh
- TOTAL=9914Wh=9.91kWh/periodo
Para trasladar los datos de demanda a 96 periodos se ha supuesto la misma distribución
de consumos, por lo que se han tenido en cuenta los valores calculados y se han dividido
entre 2.4 para conseguir la demanda por hora y se ha multiplicado seguidamente por
0.25.
Tabla 19: Consumo eléctrico para 96 periodos Periodo 1-4 5-8 9-12 13-
16 17-20
21-24
25-28
29-32
33-36
37-40
41-44
45-48
Hora del día
00-01
01-02
02-03
03-04
04-05
05-06
06-07
07-08
08-09
09-10
10-11
11-12
Escenario1 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08 0.08
Escenario2 0.2 0.2 0.15 0.15 0.15 0.34 0.34 0.24 0.24 0.24 0.47 0.47
Escenario3 0.33 0.33 0.23 0.23 0.23 0.6 0.6 0.37 0.37 0.37 0.61 0.61
Periodo 49-52
53-56
57-60
61-64
65-68
69-72
73-76
77-80
81-84
85-88
89-92
93-96
Hora del día
12-13
13-14
14-15
15-16
16-17
17-18
18-19
19-20
20-21
21-22
22-23
23-24
Escenario1 0.64 0.64 0.64 0.64 0.64 0.08 0.08 0.08 0.08 0.08 0.08 0.08
Escenario2 0.92 0.92 0.92 1.04 1.04 0.43 0.43 0.45 0.45 0.45 0.62 0.62
Escenario3 1.03 1.03 1.03 1.4 1.4 0.53 0.53 0.68 0.68 0.68 0.89 0.89
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
35
7. Método de resolución
Para resolver el problema de optimización presentado en el proyecto en el cual se busca
conseguir una configuración eficiente del funcionamiento de un sistema de energía
distribuida se usará una técnica metaheurística conocida como PSO, lo que en inglés
significa Particle Swarm Optimization.
7.1. Metaheurísticas
Las metaheurísticas son algoritmos aproximados aplicables a diferentes problemas de
optimización sólo realizando pequeños cambios de adaptación específicos. Son, por
tanto, procedimientos generales, genéricos que no dependen del problema. La principal
ventaja que tienen es que son capaces de proporcionar muy buenos resultados,
aproximados al óptimo, en un tiempo y con unos recursos razonables. Estas técnicas
realizan exploraciones a lo largo del espacio de búsqueda intentando encontrar la mejor
solución en el menor tiempo posible evitando converger prematuramente en óptimos
locales.
Existen dos principales tipos de metaheurísticas, las basadas en trayectoria y las basadas
en población. La primera clase utiliza un único punto del espacio que será el que se irá
actualizando y explorando el vecindario. La segunda, sin embargo, trabaja con un
conjunto de individuos o soluciones, estos irán evolucionando o moviéndose de manera
diferente según el método. De trayectoria serán algoritmos como ‘el enfriamiento
simulado’ o ‘la búsqueda Tabú’, de población son ‘los algoritmos genéticos’, también se
encuentran ‘los sistemas basados en colonias de hormigas’ o el que se explica a
continuación, ‘los algoritmos basados en nubes/enjambres de partículas’ (‘PSO’).
La principal causa por la que se elige este algoritmo para la resolución del problema
propuesto es su eficiencia, ya que en un tiempo aceptable consigue buenas soluciones.
Hay otros algoritmos cuyos resultados podrán ser más precisos, pero siendo el tiempo de
cómputo excesivo. El algoritmo deberá recoger del controlador todos los datos de
entrada y devolver las consignas de funcionamiento óptimas para el periodo actual en el
menor tiempo posible para que el sistema de control pueda recibirlas e implementarlas.
También se ha decidido escoger esta técnica debido a que por las características propias
de la configuración de las soluciones admisibles resulta más sencilla la implementación
de algoritmos poblacionales que de algoritmos basados en trayectorias.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
36
7.2. Algoritmo de optimización por enjambre de partículas (‘PSO’)
El algoritmo PSO surge en 1995 de la mano de James Kennedy y Russ C. Eberhart, un
psicólogo-sociólogo y un ingeniero electrónico que intentaban modelar el movimiento
colectivo de las bandadas de pájaros, de los bancos de peces o los enjambres de abejas
[1-4]. Este es por lo tanto un algoritmo bioinspirado, es decir se basa en la naturaleza. El
PSO tiene en cuenta principalmente el comportamiento social de los animales, teniendo
estos una opinión influenciada por tres factores: las experiencias personales (memoria
del individuo), las experiencias globales (memoria del vecindario) y el conocimiento del
entorno (adaptación).
En el caso de las aves, el movimiento que realizan en busca de comida se basa en seguir
al ave que está más cerca de la comida, siendo cada una de ellas una solución en continuo
movimiento. Las partículas son capaces de intercambiar información y tener en cuenta el
movimiento del vecindario para decidir su dirección. Este tipo de situaciones también
pueden surgir entre humanos en las interacciones sociales y culturales.
Una de las principales diferencias con respecto al Algoritmo Genético es que el PSO sólo
tiene operadores de movimiento y no de evolución o mutación, las partículas son siempre
las mismas, no se crean nuevas, cambia su comportamiento, pero no su genética. Ambos
son procesos iterativos cuya población inicial de soluciones se genera al azar.
Cada partícula está formada por tres vectores y dos valores donde se guardará toda la
información relacionada con ella
- pos_i: vector que almacena la posición actual de la partícula i
- mejor_pos_i: vector que almacena la mejor posición encontrada hasta el
momento por la partícula i.
- mejor_pos_g: variable que almacena la mejor posición encontrada hasta el
momento por la nube de partículas.
- vel_i: vector de velocidad que guarda la dirección según la que se moverá la
partícula i.
- fitness_pos_i: aptitud de la posición actual de la partícula i.
- fitness_mejor_pos_i: aptitud de la mejor posición encontrada hasta el momento
por la partícula i.
- fitness_mejor_pos_g: aptitud de la mejor posición encontrada hasta el momento
por la nube de partículas.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
37
Pasos que sigue el algoritmo:
Figura 18: Diagrama de bloques de algoritmo de optimización PSO
1. Se generan las posiciones iniciales de las partículas de forma aleatoria (pos_i,
mejor_pos_i), también las velocidades haciéndolas pertenecer a un intervalo
factible (vel_i).
2. Se calcula el fitness de cada partícula, guardándose el valor tanto en fitness_pos_i
como en fitness_mejor_pos_i, ya que es el único hasta ahora.
3. Las partículas se mueven según la velocidad calculada, se actualiza el vector pos_i
sumándole vel_i: 𝑝𝑜𝑠𝑖𝑡 = 𝑝𝑜𝑠𝑖
𝑡−1 + 𝑣𝑒𝑙𝑖𝑡
4. Con la nueva posición pos_i, se calcula y actualiza el valor de fitness_pos_i usando
la función objetivo que se busca maximizar o minimizar.
5. Si el nuevo valor de fitness es el mejor encontrado hasta ahora por la partícula i
(fitness_pos_i > fitness_mejor_pos_i), entonces se actualizan los valores
fitness_mejor_pos_i= fitness_pos_i y mejor_pos_i=pos_i.
6. Si fitness_mejor_pos_i es el mejor encontrado hasta ahora por la nube de
partículas (fitness_mejor_pos_i > fitness_mejor_pos_g), entonces se actualizan
los valores fitness_mejor_pos_g=fitness_mejor_pos_i y
mejor_pos_g=mejor_pos_i.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
38
7. Se actualiza el vector velocidad:
Tal y como aparece representado en la Figura 19, la velocidad depende de tres
factores que determinarán, por tanto, la posición hacia la que se moverá la
partícula. Esos tres factores son los que se encuentran señalados en la figura, la
velocidad de la iteración anterior, la mejor posición de la partícula y la mejor
posición encontrada hasta esa iteración entre todas las partículas de la nube.
𝑣𝑒𝑙𝑖(𝑡) = 𝑤(𝑡 − 1) ∗ 𝑣𝑒𝑙𝑖(𝑡 − 1) + 𝑝1 ∗ 𝑎𝑙𝑒𝑎𝑡1 ∗ (𝑚𝑒𝑗𝑜𝑟_𝑝𝑜𝑠𝑖 − 𝑥𝑖(𝑡 − 1)) + 𝑝2
∗ 𝑎𝑙𝑒𝑎𝑡2 ∗ (𝑚𝑒𝑗𝑜𝑟_𝑝𝑜𝑠𝑔 − 𝑥𝑖(𝑡 − 1))
Figura 19: Representación gráfica del movimiento de una partícula
8. Si no se ha dado aún la condición de parada, se vuelve al paso 3, donde como se
aprecia en la Figura 15 la posición de la partícula se actualiza según la velocidad
calculada.
𝑝𝑜𝑠𝑖𝑡 = 𝑝𝑜𝑠𝑖
𝑡−1 + 𝑣𝑒𝑙𝑖𝑡
Donde:
posti: vector posición de la partícula i en la iteración t.
velti: vector velocidad de la partícula i en la iteración t, este consta de tres partes:
o velocidad anterior o inercia, este término resalta la tendencia de las
partículas a moverse en la misma dirección.
o componente cognitivo o memoria, depende de la experiencia de la propia
partícula ya que está formado por la distancia entre la posición actual y la
mejor hasta el momento.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
39
o componente social o cooperación, este se forma de manera similar al
cognitivo, pero usando la experiencia global del resto de partículas de la
nube. Las partículas tienden también a desplazarse hacia la mejor solución
encontrada por el enjambre.
wt: factor de inercia en la iteración t. Habrá que realizar un buen ajuste de este
término, ya que si el valor es muy alto las partículas tenderán a irse muy lejos, a
lugares diferentes, sin embargo, si este término es pequeño las partículas
permanecerán en la misma zona, más juntas. Por ello, se tiende a reducir este
valor a medida que iteramos usando la siguiente ecuación:
𝑤𝑡 = 𝑤𝑚𝑎𝑥 −𝑤𝑚𝑎𝑥−𝑤𝑚𝑖𝑛
𝑡𝑚𝑎𝑥∗ 𝑡
wmax: factor de inercia inicial. Este valor deberá estar equilibrado, ya que, si
es alto pueden producirse oscilaciones y si es bajo converger
prematuramente a un óptimo local.
wmin: factor de inercia final.
tmax: número máximo de iteraciones.
t: número de iteración actual.
El tipo de búsqueda dependerá del valor del factor de inercia de la siguiente
manera:
o Búsqueda local: si el factor de inercia toma un valor pequeño, la búsqueda
de la mejor partícula en este caso se realizará en el entorno local, es decir,
entre las inmediatamente cercanas.
o Búsqueda global: si el valor es alto, sin embargo, se tomará el entorno
completo para comparar las partículas.
P: número de partículas que forman la nube. Para determinar este valor hay que
tener en cuenta el tiempo disponible que tenemos, ya que la calidad de la solución
obtenida y el número de iteraciones necesarias dependerá de ello.
aleat1, aleat2: números aleatorios entre 0 y 1.
p1, p2: pesos de los componentes cognitivo y social. Dependiendo de sus valores
el algoritmo será de un tipo u otro:
o Completo (p1, p2 > 0). Ambos componentes intervienen en el movimiento de
la partícula. Si son valores altos el desplazamiento será abrupto y si son bajos
será suave.
o Cognitivo (p1 > 0, p2 = 0). Al sólo intervenir el componente cognitivo las
partículas serán muy independientes, no tendrán en cuenta el movimiento del
vecindario sino sólo la propia experiencia.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
40
o Social (p1 = 0, p2 > 0). Ocurre al contrario que en el caso anterior, lo que cuenta
es la experiencia colectiva, todas las partículas tratan de alcanzar al líder.
o Social exclusivo (p1 = 0, p2 > 0, mejor_x ≠ xi).
Se recomienda usar valores de p1=p2=2.
7.2.1. PSO para codificación binaria
Debido a la cantidad de problemas de optimización que usan la codificación binaria,
surgen algoritmos adaptados a este tipo de variables a partir del PSO clásico que buscan
generar soluciones óptimas basándose en las mismas premisas, pero caracterizadas para
esta codificación. La posición de las partículas estará representada entonces por cadenas
de bits y su movimiento implicará el cambio de alguno de estos bits.
Los autores del PSO clásico proponen un primer algoritmo para problemas binarios. En
este algoritmo la velocidad representa la probabilidad de que un bit tome valor ‘1’, esta
velocidad es transformada en un valor entre 0 y 1 a través de la función sigmoidal y
comparada con un valor umbral que se encuentra dentro de ese mismo rango. En caso
de que el valor umbral sea menor a la sigmoidal de la velocidad el bit tomará valor 1, en
otro caso tomará valor nulo. El valor umbral es una limitación que provoca la pérdida de
eficiencia del algoritmo.
Debido a esta ineficiencia surgen otros métodos alternativos, uno de ellos propuesto por
Afshinmanesh (Boolean PSO) en el que se usan operadores lógicos y la distancia de
Hamming [6].
𝑣𝑖(𝑡) = 𝑤 · 𝑣𝑖(𝑡 − 1) + 𝑟1 · (𝑚𝑒𝑗𝑜𝑟_𝑥𝑖 ⊕ 𝑥𝑖(𝑡 − 1)) + 𝑟2 · (𝑚𝑒𝑗𝑜𝑟_𝑥𝑖 ⊕ 𝑥𝑖(𝑡 − 1))
𝑥𝑖(𝑡) = 𝑥𝑖(𝑡 − 1) ⊕ 𝑣𝑖(𝑡)
Siendo (·) = 𝐴𝑁𝐷, (+) = 𝑂𝑅 𝑦 (⊕) = 𝑋𝑂𝑅
Otro de los algoritmos propone un significado diferente para la velocidad siendo esta
ahora la probabilidad de que el bit cambie de valor [7]. La velocidad tendrá dos
componentes, uno será la probabilidad de cambiar a ‘1’ y el otro de cambiar a ‘0’.
𝑣𝑖𝑗1 = 𝑤 ∗ 𝑣𝑖𝑗
1 + 𝑑𝑖𝑗,11 + 𝑑𝑖𝑗,2
1
𝑣𝑖𝑗0 = 𝑤 ∗ 𝑣𝑖𝑗
0 + 𝑑𝑖𝑗,10 + 𝑑𝑖𝑗,2
0
Siendo dij:
𝑆𝑖 𝑚𝑒𝑗𝑜𝑟_𝑥𝑖 = 1 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 𝑑𝑖𝑗,11 = 𝑐1 ∗ 𝑟1 𝑦 𝑑𝑖𝑗,1
0 = −𝑐1 ∗ 𝑟1
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
41
𝑆𝑖 𝑚𝑒𝑗𝑜𝑟_𝑥𝑖 = 0 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 𝑑𝑖𝑗,10 = 𝑐1 ∗ 𝑟1 𝑦 𝑑𝑖𝑗,1
1 = −𝑐1 ∗ 𝑟1
𝑆𝑖 𝑚𝑒𝑗𝑜𝑟_𝑥 = 1 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 𝑑𝑖𝑗,21 = 𝑐2 ∗ 𝑟2 𝑦 𝑑𝑖𝑗,2
0 = −𝑐2 ∗ 𝑟2
𝑆𝑖 𝑚𝑒𝑗𝑜𝑟_𝑥 = 0 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 𝑑𝑖𝑗,20 = 𝑐2 ∗ 𝑟2 𝑦 𝑑𝑖𝑗,2
1 = −𝑐2 ∗ 𝑟2
c1 y c2: pesos
r1 y r2: números aleatorios entre (0,1)
Calculadas las v0ij y v1
ij se calcula posteriormente la velocidad de cambio
𝑣𝑖𝑗𝑐 = {
𝑣𝑖𝑗0 𝑠𝑖 𝑥𝑖𝑗 = 1
𝑣𝑖𝑗1 𝑠𝑖 𝑥𝑖𝑗 = 0
El siguiente paso será generar un valor aleatorio que servirá como comparador.
𝑥𝑖𝑗𝑡+1 = {
𝑥𝑖𝑗𝑡 ̅̅ ̅̅ 𝑠𝑖 𝑎𝑙𝑒𝑎𝑡𝑖𝑗 < 𝑣𝑖𝑗
𝑐
𝑥𝑖𝑗𝑡 𝑠𝑖 𝑎𝑙𝑒𝑎𝑡𝑖𝑗 > 𝑣𝑖𝑗
𝑐
El inconveniente que surge cuando se implementan estos algoritmos en el modelo de
optimización para la generación de consignas de funcionamiento óptimas en una
instalación de energía distribuida, es que los valores de los bits cambian de 1 a 0 de forma
aleatoria generándose en la mayoría de los casos soluciones inadmisibles.
7.2.2. PSO adaptado al problema
Al implementar el PSO binario basado en operadores lógicos en el problema a resolver
en este proyecto se concluye que no es viable debido a que se generan una gran cantidad
de partículas inadmisibles, ya que este algoritmo usa una aleatoriedad muy alta en cuanto
a cambiar los bits de 1 a 0 y viceversa, y en este caso en concreto cada cambio tiene un
significado que debe ser tenido en cuenta. Por tanto, el uso del algoritmo de optimización
basado en enjambre de partículas para codificación binaria, se descarta. Se proponen
entonces algoritmos inspirados en el PSO y adaptados a la estructura del problema.
Ambos tendrán en cuenta los términos que definen el movimiento de las partículas, es
decir, posición o velocidad del periodo anterior, mejor posición histórica de la partícula y
mejor posición en toda la nube, tal y como se representa en la Figura 20.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
42
Figura 20: Características del movimiento de las partículas en PSO
7.2.2.1. Propuesta 1: Algoritmo con estimación de la posición por ponderación de
disposiciones ([ALG1])
En el algoritmo PSO la variable principal que define a la partícula es su posición, en las
anteriores implementaciones se había determinado que la posición de la partícula sería
la matriz de configuración o activación, pero se comprueba que esto genera problemas
al tratar de asignar consignas, ya que el orden definido al principio ya deja de tener
correlación con la configuración. A partir de estos inconvenientes se decide que el orden
de activación y asignación será la matriz que represente la posición de la partícula.
En esta primera propuesta se elimina el término de velocidad y se calcula directamente
la posición u orden de asignación de la partícula, siguiendo el procedimiento descrito a
continuación:
Orden(t+1)=W*Orden(t-1)+C1*(r1*mejor_orden_part+(1-r1)*Orden(t))+C2*(r2*mejor_orden_nube+(1-r2)*Orden(t))
para una partícula i, un periodo j y una iteración t determinada.
En la Figura 21 se representan los pasos a seguir para implementar el algoritmo.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
43
Figura 21: Esquema de implementación de [ALG1].
Para cada partícula el orden nuevo se generará a partir de los órdenes indicados en la
fórmula anterior, de manera que en cada periodo j se decide cuál de los tres términos
definirá el orden de asignación para la iteración siguiente. Cada uno de ellos tiene una
probabilidad de ser elegido representada por W, C1 y C2 en cada caso, por lo que se
genera un número aleatorio (r) entre 0 y 1, si éste se encuentra en el rango entre 0 y W
el orden del periodo correspondiente será igual a la columna de ese mismo periodo del
orden de la iteración anterior, si fuera el caso de que ‘r’ resultase entre W y W+C1
entonces el orden elegido sería el del término 2, y por último si el valor del número
aleatorio fuera mayor que (C1+W) entonces el orden de la iteración próxima sería igual
al término 3. Los términos 2 y 3 dependerán como aparece representado en la Figura de
los valores de las variables binarias aleatorias r1 y r2 correspondientemente.
De esta manera no se generan partículas inadmisibles, las decisiones se realizan con
aleatoriedad y se tienen en cuenta los factores que definen el movimiento de las
partículas del PSO original.
7.2.2.2. Propuesta 2: Algoritmo con estimación de la velocidad por cambios de posición
en el orden de asignación ([ALG2])
En esta propuesta se vuelve a retomar la idea de velocidad, pero con otro significado, se
convierte ahora en el número de cambios a realizarle al orden de la iteración actual para
crear el orden de asignación de la iteración siguiente. En el PSO original los componentes
cognitivo y social se encontraban formados por la distancia entre la mejor posición de la
partícula o de la nube, respectivamente, y la posición actual de la partícula, en este
algoritmo que se propone se parte de esa idea y se definen esas distancias como el
número de valores distintos entre el mejor orden de la partícula y su orden de asignación
actual. El orden de asignación de equipos será para este caso también la característica
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
44
principal que defina a la partícula. El número de cambios a realizar se definirá, por tanto,
según la estructura presentada a continuación:
Cambio(t)=W*Cambio(t-1)+P1*r1*dist(mejor_orden_part,Orden(t))+P2*r2*dist(mejor_orden_nube,Orden(t))
Siendo:
dist(): La distancia entre dos columnas de orden será igual al número de valores que
toman posiciones diferentes entre ellas, por ejemplo:
Si mejor_orden_part= [1 3 4 2 5] y Orden(t)= [5 1 4 2 3], entonces dist(mejor_orden_part, Orden(t))=3.
P1, P2: pesos de los términos cognitivo y social respectivamente. r1, r2: números aleatorios dentro del rango [0,1]. W: factor de inercia que va disminuyendo según la siguiente fórmula:
𝑤𝑡 = 𝑤𝑚𝑎𝑥 −𝑤𝑚𝑎𝑥 − 𝑤𝑚𝑖𝑛
𝑡𝑚𝑎𝑥∗ 𝑡
Cambio(0) se inicializa generando un aleatorio entre [Cambio_min, Cambio_max].
El nuevo orden será entonces:
Orden(t+1)=Orden(t)+Cambio(t)
Esta ecuación significa que el nuevo orden será igual al anterior con el número de
cambios calculado con anterioridad, siendo cada cambio aleatorio de manera que se va
decidiendo qué valor tomará qué posición en la nueva columna de orden.
- Se generan dos números enteros aleatorios dentro del rango [1,n_equipos] (aleat1 y aleat2), aleat1 será el valor que tomará una nueva posición dentro del vector columna y aleat2 la nueva posición en la que se encontrará. Se elimina la posibilidad de que aleat2 sea igual a pos(aleat1), ya que esto no generaría ningún cambio de posición.
- Se busca qué valor se encuentra actualmente en la posición aleat2 y se mueve hasta la posición que tenía aleat1.
- aleat1 se posiciona en el lugar que indica el valor aleat2.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
45
7.2.2.3. Ejemplos de implementación
A continuación, se van a aplicar ambos algoritmos propuestos a un ejemplo y así poder
entender mejor cual es el procedimiento que sigue cada uno.
A partir de ahora se nombrará como [ALG1] al primer algoritmo propuesto con
estimación de la posición por ponderación de disposiciones, y como [ALG2] al algoritmo
con estimación de la velocidad por cambios de posición en el orden de asignación.
La Tabla 20 que se muestra a continuación representa la matriz de orden de asignación
de una partícula
Tabla 20: Matriz de orden de asignación de equipos
Periodo 1 2 3 4 5 6 7 8 9 10
Bat_d 3 1 1 2 4 5 1 5 1 1
Bat_c 2 5 4 3 1 2 3 2 5 3
Fotov 5 4 2 5 2 1 2 1 3 2
Gener 4 3 3 4 5 4 5 4 2 4
Grid 1 2 5 1 3 3 4 3 4 5
Se escoge el periodo 1, y para ese periodo:
Tabla 21: Factores característicos del movimiento de una partícula
Periodo 1 Orden (t) Orden (t-1) Mejor_orden_part Mejor_orden_nube
Bat_d 3 3 3 2
Bat_c 2 1 1 3
Fotov 5 4 5 1
Gener 4 5 4 4
Grid 1 2 2 5
[ALG1]
Orden(t+1)=W*Orden(t-1)+C1*(r1*mejor_orden_part+(1-r1)*Orden(t))+C2*(r2*mejor_orden_nube+(1-r2)*Orden(t))
- Componente 1: W*Orden(t-1)
- Componente 2: C1*(r1*mejor_orden_part+(1-r1)*Orden(t))
Si se supone r1=1, entonces este componente será igual a C1*mejor_orden_part.
- Componente 3: C2*(r2*mejor_orden_nube+(1-r2)*Orden(t))
Si se supone r2=0, entonces este componente será igual a C2* Orden(t).
Para los demás parámetros se toman los siguientes valores: W= 0.1, C1= 0.5, C2= 0.4
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
46
Es decir, el orden de asignación en ese periodo para la siguiente iteración tendrá un
10% de probabilidades de ser igual al primer componente, un 50% de igualarse al
segundo y por último un 40% de ser como el tercer componente.
Se genera entonces un número aleatorio que será el que decida cuál de los tres
componentes se escoge.
Si r=0.57, al encontrarse r en el rango entre W y (C1+W), es decir [0.1 ,0.6], entonces:
Orden(t+1)= mejor_orden_part
Tabla 22: Orden obtenido [ALG1]
Periodo 1 Orden (t+1)
Bat_d 3
Bat_c 1
Fotov 5
Gener 4
Grid 2
[ALG2]
Cambio(t)=W*Cambio(t-1)+P1*r1*dist(mejor_orden_part,Orden(t))+P2*r2*dist(mejor_orden_nube,Orden(t))
- Componente 1: W*Cambio(t-1)
Como se observa en la Tabla 21, el número de cambios que se realizaron para llegar
de Orden(t-1) a Orden(t) son dos. Cambio(t-1)=2.
A partir de la siguiente fórmula y sabiendo que wmax=2, wmin=0,1, t=23 y tmax=100,
𝑤𝑡 = 𝑤𝑚𝑎𝑥 −𝑤𝑚𝑎𝑥 − 𝑤𝑚𝑖𝑛
𝑡𝑚𝑎𝑥∗ 𝑡
entonces: W=1,563.
Por tanto, componente1=3,126.
- Componente 2: P1*r1*dist(mejor_orden_part,Orden(t))
Tabla 23: Distancia partícula [ALG2]
Periodo 1 Orden (t) Mejor_orden_part dist(mejor_orden_part,Orden(t))
Bat_d 3 3 =
Bat_c 2 1 x
Fotov 5 5 =
Gener 4 4 =
Grid 1 2 x
Por tanto, dist(mejor_orden_part,Orden(t))=2.
Además, si P1=2 y r1 generado aleatoriamente es 0,38.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
47
Entonces, componente2=2*2*0,38=1,52.
- Componente 3: P2*r2*dist(mejor_orden_nube,Orden(t))
Se realiza de la misma manera que el componente 2.
Tabla 24: Distancia nube [ALG2]
Periodo 1 Orden (t) Mejor_orden_nube dist(mejor_orden_part,Orden(t))
Bat_d 3 2 x
Bat_c 2 3 x
Fotov 5 1 x
Gener 4 4 =
Grid 1 5 x
Por tanto, dist(mejor_orden_part,Orden(t))=4.
Además, si P2=1 y r1 generado aleatoriamente es 0,71.
Entonces, componente2=4*1*0,71=2,84.
Calculados todos los componentes se tiene entonces que:
Cambio(t)=round(3,126*1,52*2,84)=13. Se redondea al entero más cercano.
Se comprueba ahora si el número de cambios obtenido se encuentra dentro del rango
establecido. Si suponemos que el límite superior se encuentra en 10, entonces
Cambio(t)=10, ya que lo supera.
Cuando ya se dispone del número de cambios, estos se realizan sobre el orden actual
para crear el orden de la iteración siguiente.
Orden(t+1)=Orden(t)+Cambio(t)
A continuación, se expone la forma de realizar los cambios, este procedimiento se realizará tantas veces como número cambios se hayan obtenido. Si Orden(t)=[2 4 5 3 1] y aleat1=2, aleat2=4
Entonces pos(aleat1)=1 (el número dos se encuentra en la posición primera del vector),
pos(3)=aleat2 (en la posición cuarta se encuentra el número 3), el cambio consiste en
que el número 2 pase a la posición donde se encuentra 3 y 3 se mueva a donde estaba 2.
Por tanto, pos(3)=pos(aleat1) y pos(aleat1)=aleat2 Orden(t+1)=[3 4 5 2 1]
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
48
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
49
8. Implementación del algoritmo en MatLab
Figura 22: Estructura del algoritmo
Tal y como se representa en la Figura 22, el primer paso será leer el fichero que contiene
los datos de entrada al sistema, éste estará formado por las características técnicas de
los equipos presentes en la instalación, los parámetros específicos del algoritmo y los
datos de demandas, precios y previsiones. Tras la lectura, los valores se almacenan en
variables dentro del programa para facilitar su uso.
El siguiente paso será generar una nube de partículas o soluciones aleatorias que se irán
moviendo según el método heurístico elegido hasta determinar la mejor solución posible
o al menos una muy cercana a la óptima del problema.
Finalmente, esta información resultante se vuelca en un fichero de salida donde se
recogen las consignas de funcionamiento de la partícula elegida y algunos datos
adicionales que aportan información necesaria para el usuario, como los costes o los
perfiles de carga de las baterías.
8.1. Lectura del fichero de entrada
Se presentan a continuación los datos de entrada nombrados anteriormente:
- Datos relativos al algoritmo: Este apartado contiene datos como el número de
periodos temporales y su duración, el número de partículas que componen la nube,
el número máximo de iteraciones, el factor de inercia, el peso del componente
cognitivo y número del escenario de demanda.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
50
El horizonte temporal será de 24 horas, el número de periodos representará al
número de particiones que se realicen del día. En caso de trabajar con 10 periodos
estos durarán 2.4 horas, si se dividiera en 96, cada periodo tendrá una duración de
0.25 horas. Se han realizado estas dos distinciones para poder realizar un diseño
adecuado, ya que al trabajar con menor número de periodos se facilita la detección
de errores.
- Sistemas presentes: Para cada equipo existe una variable binaria que indique si se
encuentra presente (1) o no (0) en el escenario. En el caso de que se trabaje en isla,
la red eléctrica deberá estar a 0.
- Datos Baterías: Se recogen las características técnicas y económicas del conjunto de
baterías.
- Datos Solar: Se recogen las características técnicas y económicas del equipo solar
fotovoltaico.
- Datos Generador: Se recogen las características técnicas y económicas del generador.
- Datos Red Eléctrica: Información referente al sistema de suministro eléctrico y a todo
lo relativo a la tarificación usada y potencia contratada.
- Datos combustible: Información técnica y económica referente al gasoil usado como
combustible por el generador.
- Demanda eléctrica: Previsión de la energía eléctrica a consumir por la instalación en
cada periodo temporal. Para la simulación del algoritmo se proponen tres escenarios
de demanda, uno de consumo bajo, otro de consumo medio y el último de demanda
alta.
- Periodos tarifarios: Indica el periodo de tarificación en el que se encuentra cada
periodo temporal, se diferenciará entre periodos valle y punta.
- Previsión meteorológica: Potencia máxima disponible para el sistema solar por
periodo. La previsión climatológica y la radiación solar según la hora del día
determinarán estos datos.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
51
8.2. Definición de la partícula
Cuando ya se dispone de todos los datos necesarios el siguiente paso es generar
soluciones admisibles, para ello se define primero una estructura que recoja todas las
características de la partícula. Todas las partículas de la nube tendrán esta configuración.
Particula.Orden=matriz(N_equipos,N_periodos);
Particula.Config=matriz(N_equipos,N_periodos);
Particula.Consigna= matriz (N_equipos,N_periodos);
Particula.C_Equipo=matriz(N_equipos,N_periodos);
Particula.C_Periodo=vector(1,N_periodos);
Particula.C_Total=valor;
Particula.Nivel_bateria=vector(1,N_periodos);
Particula.Id=valor;
A continuación, se procede a la descripción detallada de cada uno de los campos de la
estructura.
Particula.Config: Matriz de orden de activación de equipos.
Esta matriz será la que determine el orden en el que se activen los equipos en cada
periodo, los valores irán desde 1 hasta el número de equipos presentes en el escenario.
Estará formada por tantas columnas (M) como periodos haya y por tantas filas (N) como
equipos. Si para el equipo (n) en el periodo (m) el valor es ‘3’, significará que ese equipo
se activará en caso de que los dos equipos anteriores se hayan activado y siga existiendo
demanda eléctrica que satisfacer.
Tabla 25: Matriz de orden de activación de equipos.
Periodo 1 2 3 4 5 6 7 8 9 10
Bat_d 3 1 1 2 4 5 1 5 1 1
Bat_c 2 5 4 3 1 2 3 2 5 3
Fotov 5 4 2 5 2 1 2 1 3 2
Gener 4 3 3 4 5 4 5 4 2 4
Grid 1 2 5 1 3 3 4 3 4 5
Particula.Config: Matriz de activación de equipos.
La matriz de activación de equipos está estructurada según lo representado en la Tabla
26. Las filas se corresponden con el número de equipos presentes en el escenario y las
columnas con el número de periodos temporales con los que se esté trabajando. Es una
matriz binaria de N filas y M columnas, si el valor es ‘1’ el equipo (n) estará activo en el
periodo (m), en otro caso se encontrará inactivo o apagado.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
52
Tabla 26: Matriz de activación de equipos.
Periodo 1 2 3 4 5 6 7 8 9 10
Bat_d 0 1 1 0 0 0 1 0 1 1
Bat_c 0 0 0 0 1 1 0 1 0 0
Fotov 0 0 0 0 1 1 1 1 0 0
Gener 0 0 0 0 0 0 0 0 0 0
Grid 1 0 0 1 1 1 0 0 0 0
Particula.Consigna: Matriz de consignas de equipos.
En la Tabla 27 se representa la matriz de consignas, en ella se definen la energía en kWh
que deberá producir/cargar/descargar el equipo (n) en el periodo temporal (m).
Tabla 27: Matriz de consignas de equipos
Periodo 1 2 3 4 5 6 7 8 9 10
Bat_d 0 2.18 5.78 0 0 0 0.34 0 6.52 8.56
Bat_c 0 0 0 0 7.08 2.09 0 3.54 0 0
Fotov 0 0 0 0 4.32 8.64 12.96 8.64 0 0
Gener 0 0 0 0 0 0 0 0 0 0
Grid 3.16 0 0 3.52 8.59 3.36 0 0 0 0
Particula.C_Equipo: Matriz de costes de equipos.
En la Tabla 28 se representa la matriz de consignas, en ella se definen los costes asociados
al equipo (n) en el periodo temporal (m), en euros.
Tabla 28: Matriz de costes de equipos
Periodo 1 2 3 4 5 6 7 8 9 10
Bat_d 0.026 0.178 0.184 0.026 0.222 0.151 0.135 0.164 0.19 0.21
Bat_c 0.026 0.178 0.184 0.026 0.222 0.151 0.135 0.164 0.19 0.21
Fotov 0 0 0 0 0.091 0.098 0.12 0.09 0.014 0
Gener 0 0 0 0 0 0 0 0 0 0
Grid 0.391 0.07 0.07 0.428 0.943 0.774 0.07 0.07 0.07 0.07
Particula.C_Periodo: Vector coste total por periodo.
En la Tabla 23 se representa el vector del coste por periodos, siendo este el sumatorio de
los costes individuales de cada equipo en el periodo correspondiente.
Tabla 29: Vector coste total por periodo
Periodo 1 2 3 4 5 6 7 8 9 10
C_Periodo 1.138 0.968 0.974 1.174 1.257 1.023 0.325 0.332 0.257 0.279
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
53
Particula.C_Total: Coste total del individuo completo.
El coste total o fitness del individuo es almacenado en el campo C_Total de la estructura,
representado en la tabla 24.
Tabla 30: Coste total de la partícula
C_Total 7.745
Particula.Nivel_bateria: Vector nivel de baterías.
Este vector es el encargado de guardar los valores de energía almacenada en las baterías
en cada periodo. En caso de que el conjunto de baterías se encontrara en modo carga, el
nivel aumentaría según la consigna asignada, si el modo fuera de descarga este nivel
disminuiría.
Tabla 31: Vector nivel de baterías
Periodo 1 2 3 4 5 6 7 8 9 10
Nivel_bateria 23 20.82 15.04 15.04 22.12 24.21 23.87 27.41 20.89 12.33
Particula.Id: Variable identificativa de la partícula.
Cada partícula tendrá un valor identificativo para poder diferenciarla del resto de la nube.
Tabla 32: Variable identificativa
Id 75
Para la creación de estas matrices características de cada partícula, primero se habrá
generado un orden de posiciones para cada equipo dentro de la matriz según los sistemas
presentes en el escenario y un orden de activación y asignación de consignas.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
54
8.3. Heurística para la generación de la nube de partículas inicial
Tal como se expuso anteriormente, tras la lectura de datos se procede a la generación de
la nube inicial formada por partículas o soluciones admisibles que cumplen todas las
restricciones impuestas por el modelo. Para llevar a cabo esta inicialización se sigue el
proceso que se explicará a continuación.
Figura 23: Pasos para la creación de una partícula
5.3.1. Selección de los sistemas a usar y Asignación de consignas de funcionamiento.
El primer objetivo es generar la matriz de configuración de la partícula, es decir, decidir
qué equipo de los que se encuentra presente en el escenario va a estar activo en ese
periodo temporal.
Para que el algoritmo funcione de manera correcta, es decir, se realice una exploración
completa del espacio de soluciones y se generen partículas variadas será necesario
aportar aleatoriedad a la generación de la configuración, para llevar a cabo esta premisa
se crea aleatoriamente un orden según los equipos presentes en el escenario dándole a
cada uno un puesto en la asignación, de manera que el seleccionado como primero se
activará, atribuyéndole una consigna, en el caso de que la demanda ya estuviera cubierta
los demás equipos se desactivarían, si ocurriera lo contrario se activaría el siguiente según
el orden generado y se le asignaría la consigna correspondiente.
En cada activación la demanda se irá actualizando, disminuyendo según la consigna de
producción del equipo o aumentando en el caso de que se las baterías funcionen en
modo carga. La asignación de consignas se hará en base a unos requisitos para que las
partículas resultantes sean admisibles, que en términos generales son conseguir
satisfacer la demanda en cada periodo y cumplir las restricciones técnicas de los equipos.
Una vez terminada la asignación de las consignas, la demanda deberá estar cubierta.
Los equipos funcionarán al máximo de sus posibilidades cuando sea posible y sea
necesario, es decir, en caso de activarse, la consigna será igual a la potencia máxima a la
que el equipo correspondiente puede funcionar, si ésta es superior a la demanda,
entonces la consigna se ajustará a esta necesidad y no se generarán excesos. Cumpliendo
siempre las demás restricciones técnicas.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
55
Las consideraciones específicas que se realizarán según el equipo serán las siguientes:
- Baterías: estos equipos almacenadores cuentan con tres modos de funcionamiento:
carga, descarga o standby, los cuales no podrán activarse simultáneamente. En el
caso de que las baterías se activasen en modo carga, la demanda de la instalación
aumentará según la consigna seleccionada para que con el resto de equipos se
consiga satisfacer la demanda del edificio y la demanda de carga. Si la configuración
activada fuera la de descarga, la demanda disminuirá. Otro de los parámetros a tener
en cuenta son las capacidades de almacenamiento máximo y mínimo y el nivel de
energía almacenada en las baterías, ya que, sólo se podrá realizar la carga de las
baterías en caso de que el nivel de almacenamiento se encuentre por debajo del
máximo, y la descarga si hay suficiente energía acumulada y si el nivel se encuentra
por encima del valor mínimo permitido.
- Solar fotovoltaica: En las placas la principal restricción a tener en cuenta es la
previsión meteorológica la cual marcará la energía máxima a producir por el equipo
en cada periodo basándose en el clima y en la radiación según la hora del día.
- Generador: Este sistema no cuenta con ninguna restricción particular, sólo la potencia
máxima de generación y el rendimiento, al igual que el resto de sistemas.
- Red eléctrica: Las consignas en este caso dependerán del tipo de tarificación usada y
la potencia contratada.
El orden de asignación que se lleva a cabo en la mayoría de instalaciones es el siguiente:
- Renovables
- Almacenamiento
- Generadores de apoyo
8.4. Descripción de las funciones, variables y parámetros
característicos del algoritmo.
En este apartado se describirán las funciones usadas en el algoritmo, explicando su
funcionamiento a partir de los códigos de MatLab diseñados. También se incluirán las
variables y parámetros de entrada y salida para cada una de las funciones.
Todas las variables y parámetros de entrada y salida de las funciones serán de tipo
‘double’.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
56
PARÁMETROS:
Tabla 33: Parámetros del algoritmo
Nombre Explicación Tper Duración de los periodos en horas Npart Número de partículas que componen la nube Nper Número de periodos horarios en los que se dividen las 24h Iter_max Iteraciones máximas esc_dem Escenario de demanda en el que se encuentra (1,2,3) W_max Valor máximo del factor de inercia W_min Valor mínimo del factor de inercia P1 Peso del componente cognitivo P2 Peso del componente social Cambio_max Número máximo de cambios posibles Cambio_min Número mínimo de cambios posibles W Ponderación de primer componente en ALG1 C1 Ponderación de segundo componente en ALG1 pres_bat Toma valor 1 si las baterías se encuentran presentes en el
escenario pres_fotov Toma valor 1 si la fotovoltaica se encuentra presente en el
escenario pres_gener Toma valor 1 si el generador se encuentra presente en el
escenario pres_grid Toma valor 1 si el grid se encuentra presente en el escenario n_equipos Número de equipos presentes en el escenario pot_bat_d Potencia máxima de descarga de las baterías pot_bat_c Potencia máxima de carga de las baterías bat_alm_max Capacidad de almacenamiento máximo de las baterías bat_alm_min Capacidad de almacenamiento mínimo de las baterías Rend_bat_c Rendimiento de carga de las baterías Rend_bat_d Rendimiento de descarga de las baterías bat_level_0 Nivel de carga inicial de las baterías C_fix_bat Coste fijo de las baterías C_var_bat Coste variable de las baterías C_arranque_bat Coste arranque de las baterías pot_max_fotov Potencia máxima de producción de la fotovoltaica Rend_fotov Rendimiento de producción de la fotovoltaica C_fix_fotov Coste fijo de la fotovoltaica C_var_fotov Coste variable de la fotovoltaica C_arranque_fotov Coste de arranque de la fotovoltaica pot_gener Potencia máxima del generador Rend_generador Rendimiento de producción del generador C_fix_generador Coste fijo del generador C_arranque_generador Coste de arranque del generador C_nocturno Coste por uso nocturno del generador
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
57
pot_max_contratada Potencia máxima contratada de la red eléctrica C_fix_grid Coste fijo de uso de la red eléctrica IVA Impuestos por uso de la red eléctrica Tasas Tasas por uso de la red eléctrica C_elect Coste de la electricidad PCS Poder calorífico superior del gasoil PCI Poder calorífico inferior del gasoil P_comb Precio del combustible (gasoil) demanda_dato Demanda eléctrica en cada periodo para cada escenario prevision Previsión de producción de fotovoltaica noche_dia Periodos nocturnos y diurnos Coste_inad Coste por no cubrir la demanda
VARIABLES:
Tabla 34: Variables del algoritmo
Nombre Explicación pos_bat_d Posición de las baterías en modo descarga dentro de las matrices pos_bat_c Posición de las baterías en modo carga dentro de las matrices pos_fotov Posición de la fotovoltaica dentro de las matrices pos_gener Posición del generador dentro de las matrices pos_grid Posición del grid dentro de las matrices Posicion Matriz de configuración o activación Consigna Matriz de consignas de producción Orden Matriz de orden de asignación de equipos Bateria Nivel de carga de las baterías demanda Demanda a satisfacer mejor_pos_part Mejor matriz de configuración de la partícula mejor_orden_part Mejor matriz de orden de asignación de la partícula mejor_consig_part Mejor matriz de consignas de la partícula mejor_bateria_part Mejor matriz de nivel de carga de las baterías de la partícula Coste Fitness de la partícula coste_equipo Costes generados por cada equipo coste_periodo Costes generados en cada periodo mejor_coste_part Mejor coste de la partícula mejor_coste_eq_part Mejor costes de cada equipo de la partícula mejor_coste_per_part Mejor costes en cada periodo de la partícula mejor_part_nube Identificación de la mejor partícula de la nube mejor_pos_nube Matriz de configuración de la mejor partícula de la nube mejor_coste_nube Mejor coste de la nube mejor_consig_nube Matriz de consignas de la mejor partícula de la nube mejor_orden_nube Matriz de orden de la mejor partícula de la nube mejor_bateria_nube Nivel de batería de la mejor partícula de la nube
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
58
mejor_coste_eq_nube Costes de los equipos de la mejor partícula de la nube mejor_coste_per_nube Costes por periodo de la mejor partícula de la nube Cambio_anterior Cambio realizados en la iteración anterior Cambio Cambios a realizar en la matriz de orden salida Matriz que guarda todos los datos a volcar en el fichero de salida Orden_part_ant Matriz que guarda el orden de asignación de la iteración anterior
8.4.1. Lectura
Esta función tiene como principal objetivo recopilar todos los datos escritos en el fichero
de entrada y darles un nombre para que puedan usarse internamente en el algoritmo.
No tendrá imput, sólo output el cual será igual a todos los parámetros reflejados con
anterioridad en la Tabla. El fichero seguirá la estructura explicada en Anexo 2: Descripción
del fichero de entrada.
La lectura del fichero se realiza mediante el siguiente comando: datos=xlsread('ficheroentrada.xlsx');
8.4.2. Posición de los equipos en la matriz Esta función fue generada para crear una posición dentro de las matrices que caracterizan a las partículas para cada equipo, ya que en caso de que no estuvieran presentes todos los equipos que se han tenido cuenta, las matrices tendrían diferente tamaño. Las posiciones nombradas con anterioridad se generan de manera aleatoria, teniendo en cuenta el número de equipos presentes en el escenario a simular, de la manera que se muestra en el Anexo 4: Algoritmo.
Tabla 35: Variables/parámetros de entrada y salida de Posición matriz
Imput Output pres_bat pos_bat_d pres_fotov pos_bat_c pres_gener pos_fotov pres_grid pos_gener
n_equipos pos_grid
8.4.3. Nube inicial
Esta función es la encargada de generar la nube inicial de partículas del tamaño elegido,
para ello se crea un orden y a partir de él se comienzan a activar los equipos y a asignar
consignas, para cada partícula y periodo. A continuación, se presentan las variables y
parámetros de entrada y salida que tendrá la función, y una explicación de su diseño.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
59
Tabla 36: Variables/parámetros de entrada y salida de Nube inicial
Imput Output prevision pres_gener Posicion demanda_dato pres_grid Consigna pot_bat_d pos_bat_d Orden pot_bat_c pos_bat_c Bateria pot_gener pos_fotov demanda
pot_max_contratada pos_gener mejor_pos_part bat_alm_max pos_grid mejor_orden_part bat_alm_min n_equipos mejor_consig_part bat_level_0 Tper mejor_bateria_part pres_bat Npart
pres_fotov Nper
1. Se inicializan las variables, igualándolas a cero.
2. Se genera un orden aleatorio en cada periodo y para cada partícula: orden=randperm(n_equipos)'
3. Se va buscando qué equipo está en qué posición del orden generado: n1=find(orden==1): Se busca cuál es el primer equipo a activar. if n1==pos_bat_d
end
Esto se realizará para cada equipo y tantas veces como equipos haya presentes en el escenario.
4. Se van activando los sistemas y asignándoles consignas de manera que al final de
cada periodo se satisfaga la demanda. Para todos los equipos se comprueba que
estén presentes en el escenario (if pres==1). Cada equipo deberá de cumplir
unos requisitos específicos según sus restricciones técnicas:
a. Baterías (descarga)
- Se activan las baterías en modo descarga.
bat_d(t)=1;
- Se asigna la máxima potencia posible.
consig_bat_d(t)=pot_bat_d*Tper;
- Condición 1: Si con la máxima potencia posible el nivel de batería baja por debajo del mínimo pues asigno una consigna menor.
if (Bateria(i,t)-consig_bat_d(t))<bat_alm_min consig_bat_d(t)=Bateria(i,t)-bat_alm_min; end
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
60
Condición 2: Si la consigna asignada supera a la energía necesaria para cubrir la demanda, se asigna una descarga de valor igual a la demanda.
if consig_bat_d(t)>demanda1 consig_bat_d(t)=demanda1; end
Condición 3: Si el nivel de batería ya se encuentra por debajo del valor mínimo no puedo descargar en ese periodo.
if Bateria(i,t)<=bat_alm_min bat_d(t)=0; consig_bat_d(t)=0; end
Se actualiza el nivel de energía de las baterías.
Bateria(i,t+1)=Bateria(i,t)-consig_bat_d(t);
Se actualiza la demanda a cubrir por el resto de equipos.
demanda2=demanda1-consig_bat_d(t);
b. Fotovoltaica
Se activan las placas fotovoltaicas.
fotov(t)=1;
Se asigna una consigna igual a la previsión.
consig_fotov(t)=prevision(t)*Tper;
Se actualiza la demanda
demanda2=demanda1-consig_fotov(t);
Condición 1: si la consigna es mayor que la demanda a cubrir, entonces lo sobrante se destinará a la carga de baterías.
if consig_fotov(t)>demanda1
carga(t)=consig_fotov(t)-demanda1; demanda2=0; end
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
61
c. Generador
Se activa el generador.
gener(t)=1;
Se asigna una consigna igual a la potencia máxima que produce.
consig_gener(t)=pot_gener*Tper;
Condición 1: Si la consigna asignada supera a la energía necesaria para cubrir la demanda, se actualiza dándole un valor igual a la demanda.
if consig_gener(t)>demanda1 consig_gener(t)=demanda1; end
Se actualiza la demanda
demanda2=demanda1-consig_gener(t);
d. Grid
Se activa la red eléctrica.
grid(t)=1;
Se asigna una consigna igual a la potencia máxima que produce.
consig_grid(t)=pot_max_contratada*Tper;
Condición 1: Si la consigna asignada supera a la energía necesaria para cubrir la demanda, se actualiza dándole un valor igual a la demanda.
if consig_grid (t)>demanda1 consig_grid(t)=demanda1; end
Se actualiza la demanda
demanda2=demanda1-consig_grid(t);
5. Cuando se ha cubierto la demanda eléctrica del periodo se comprueba si es
posible activar las baterías en modo carga
- Condición1: Para que las baterías puedan activarse en modo carga, deben cumplirse tres requisitos: que el conjunto de baterías se encuentre presente en el escenario, que al menos uno de los equipos generadores esté presente también y que no se hayan activado anteriormente en modo descarga.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
62
if pres_bat==1 && pres_fotov+pres_gener+pres_grid>0 &&
bat_d(t)==0
- Se activa el modo carga
bat_c(t)=1;
- Se asigna la consigna
consig_bat_c(t)=pot_bat_c*Tper;
- Condición1.2.: Si la carga se encuentra en el último puesto de asignación o si el nivel de batería está al máximo, no se podrán activar las baterías en modo carga.
if orden(pos_bat_c)==n_equipos || Bateria(i,t)>=bat_alm_max bat_c(t)=0; consig_bat_c(t)=0;
end
- Condición1.3.: Si no se produce la condición 1.2., la fotovoltaica está desactivada o no produce más energía de la necesaria y, además, el grid y/o el generador están presentes, entonces se activa la carga con una consigna aleatoria entre 0 y la potencia máxima.
if carga(t)==0 && pres_grid+pres_gener>0 bat_c(t)=1; consig_bat_c(t)=rand*pot_bat_c*Tper;
- Condición1.3.1.: Si con la consigna asignada se supera el nivel de batería permitido se actualiza la consigna.
if (Bateria(i,t)+consig_bat_c(t))>bat_alm_max consig_bat_c(t)=bat_alm_max-Bateria(i,t); end
- Condición1.3.2.: Si tanto el grid como el generador se encuentran presentes.
if pres_grid+pres_gener==2
- Condición1.3.2.1.: Si el generador tiene preferencia con respecto al grid o si la consigna del grid ya se encuentra al máximo, entonces se cargan las baterías mediante el generador y se actualiza su consigna.
if orden(pos_gener)<orden(pos_grid) ||
consig_grid(t)==pot_max_contratada*Tper
gener(t)=1; consig_gener(t)=consig_gener(t)+consig_bat_c(t);
- Condición1.3.2.2.: En el caso de que no se cumplan ninguna de las restricciones de la Condición1.3.2.1, entonces se cargan las baterías mediante el grid y se actualiza su consigna.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
63
else grid(t)=1;
consig_grid(t)=consig_grid(t)+consig_bat_c(t);
- Condición1.3.2.2.1.: Si la consigna actualizada del grid resulta mayor que la potencia máxima que puede suministrar entonces se disminuye la consigna de carga y se iguala la consigna del grid a la potencia máxima.
if consig_grid(t)>(pot_max_contratada*Tper)
consig_bat_c(t)=(pot_max_contratada*Tper)-
(consig_grid(t)-consig_bat_c(t)); consig_grid(t)=pot_max_contratada*Tper; end
- Condición1.3.2.2.2.: Si con la consigna asignada se supera el nivel de batería permitido se actualizan las consignas de carga de la batería y del grid.
if (Bateria(i,t)+consig_bat_c(t))>bat_alm_max consig_grid(t)=consig_grid(t)-consig_bat_c(t); consig_bat_c(t)=bat_alm_max-Bateria(i,t); consig_grid(t)=consig_grid(t)+consig_bat_c(t); end end
- Condición1.3.3.: Si sólo está presente la red eléctrica
elseif pres_grid==1
- Condición1.3.3.1.: Si la consigna anteriormente asignada al grid ya es la máxima que puede ofrecer, entonces las baterías no podrán activarse en modo carga.
if consig_grid(t)==(pot_max_contratada*Tper) bat_c(t)=0; consig_bat_c(t)=0;
- Condición1.3.3.2.: Si, por el contrario, todavía queda energía disponible para suministrar por el grid, entonces se activa en caso de que no lo estuviera con anterioridad y se le suma a la consigna asignada previamente, la energía a generar para cargar las baterías.
else grid(t)=1; consig_grid(t)=consig_grid(t)+consig_bat_c(t);
- Condición1.3.3.3.: Si la consigna actualizada del grid resulta mayor que la potencia máxima que puede suministrar entonces se disminuye la consigna de carga y se iguala la consigna del grid a la potencia máxima.
if consig_grid(t)>(pot_max_contratada*Tper)
consig_bat_c(t)=(pot_max_contratada*Tper)-
(consig_grid(t)-consig_bat_c(t));
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
64
consig_grid(t)=pot_max_contratada*Tper; end
- Condición1.3.3.4.: Si con la consigna asignada se supera el nivel de batería permitido se actualizan las consignas de carga de la batería y del grid.
if (Bateria(i,t)+consig_bat_c(t))>bat_alm_max consig_grid(t)=consig_grid(t)-consig_bat_c(t); consig_bat_c(t)=bat_alm_max-Bateria(i,t); consig_grid(t)=consig_grid(t)+consig_bat_c(t); end end
- Condición1.3.4.: Si sólo está presente el generador, entonces se activa y se aumenta su consigna para que sea capaz de satisfacer la demanda de carga de las baterías.
elseif pres_gener==1 gener(t)=1; consig_gener(t)=consig_gener(t)+consig_bat_c(t); end
end
- Condición1.4.: Si la fotovoltaica se encontrase activa y pudiera generar mayor cantidad de energía que la necesaria para satisfacer la demanda entonces, esa energía de exceso se usaría para cargar las baterías.
elseif carga(t)>0 bat_c(t)=1; consig_bat_c(t)=carga(t); if (Bateria(i,t)+consig_bat_c(t))>bat_alm_max consig_bat_c(t)=bat_alm_max-Bateria(i,t); end end
- Se actualiza el nivel de carga de las baterías sumándole la consigna asignada.
Bateria(i,t+1)=Bateria(i,t)+consig_bat_c(t); end
6. Cuando ya se dispone de todos los datos de consignas y activaciones, se procede
al vuelco en sus respectivas matrices (Posicion, Consigna, Orden).
7. Al realizarse esta función solamente en la primera iteración, se incluye también la inicialización de las variables que definen la mejor posición de una partícula, como no se dispone de otras iteraciones para comparar se iguala a la inicial.
mejor_pos_part=Posicion mejor_consig_part=Consigna mejor_orden_part=Orden mejor_bateria_part=Bateria
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
65
8.4.4. Coste partícula
El fitness o coste de cada partícula es lo que se busca calcular en esta función, para ello
se tienen en cuenta los costes fijos y variables de cada equipo y las consignas asignadas
en la función explicada anteriormente.
Tabla 37: Variables/parámetros de entrada y salida de Coste partícula
Imput Output Posicion C_nocturno Coste Consigna noche_dia coste_equipo PCS Coste_inad coste_periodo PCI demanda
Rend_generador pres_bat
C_var_bat pres_fotov
C_fix_bat pres_gener
C_arranque_bat pres_grid
C_fix_generador pos_bat_d
C_arranque_generador pos_bat_c
P_comb pos_fotov
C_var_fotov pos_gener
C_fix_fotov pos_grid
C_arranque_fotov n_equipos
C_elect Nper
C_fix_grid Npart
Tasas
IVA
1. Para cada equipo se comprueba primero si está o no presente en el escenario, si no lo está el coste se iguala a cero.
2. Si el equipo está presente entonces se calcula la delta que define la activación o no del equipo en ese periodo, a partir de este valor se calcula la variable binaria ‘a’ que tomará valor 1 en caso de que el sistema se haya desactivado o activado en ese periodo.
Delta_bat(1)=Posicion(k,Nper); Delta_bat(t+1)=Posicion(k,t);
if Delta_bat(t)+Delta_bat(t+1)==1 a =1; else a =0; end
En el caso de que ‘Delta’ sea igual a 1, se imputarán costes fijos y si ‘a’ también tiene valor 1, entonces se tendrán en cuenta costes de arranque.
3. A continuación, se calculan los costes de cada equipo en el periodo t de la siguiente manera:
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
66
a. Batería:
Coste_bateria(t)=C_var_bat*(Consigna(bat_d,t)+Consigna(bat_c,
t))+C_fix_bat*Delta_bat(t+1)+C_arranque_bat*a_bat;
b. Fotovoltaica:
Coste_fotovoltaica(t)=C_var_fotov*Consigna(fotov,t)+C_fix_fot
ov*Delta_fotov(t+1)+C_arranque_fotov*a_fotov;
c. Generador:
Generador_cons(t)=(PCS*Consigna(gener,t))/(PCI*Rend_generador
);
Coste_generador(t)=C_fix_generador*Delta_generador(t+1)+C_arr
anque_generador*a_generador+Generador_cons(t)*P_comb+C_noctur
no*noche_dia(t)*Delta_generador(t+1);
d. Grid:
Coste_grid(t)=(C_elect(t)*Consigna(grid,t)+C_fix_grid)*(1+Tas
as+IVA
4. Cuando ya están todos los costes específicos de cada equipo calculados se procede al vuelco en variables para uso posterior.
Coste_part_periodo(t)=Coste_bateria(t)+Coste_fotovoltaica(t)+Coste_generador(t)+Coste_grid(t)+Coste_inad*demanda(k,t);
coste_periodo(k,t)=Coste_part_periodo(t);
coste_equipo
Coste=sum(coste_periodo,2);
8.4.5. Mejor posición de partícula (Comparación)
La función que se realiza con anterioridad al movimiento es la comparación, para conocer
la mejor posición de la partícula se ejecuta esta operación que realiza un contraste entre
la partícula en la actualidad y a lo largo de las iteraciones.
Tabla 38: Variables/parámetros de entrada y salida de Mejor posición partícula
Imput Output Orden mejor_consig_part mejor_pos_part Coste mejor_orden_part mejor_coste_part Posicion mejor_bateria_part mejor_consig_part Consigna mejor_coste_eq_part mejor_orden_part Bateria mejor_coste_per_part mejor_bateria_part coste_equipo Npart mejor_coste_eq_part coste_periodo Nper mejor_coste_per_part mejor_coste_part iter
mejor_pos_part n_equipos
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
67
1. En la primera iteración, al no existir ninguna otra con la que realizar la comparación,
se asigna el coste inicial de la partícula como mejor coste de la partícula en esa
iteración, al igual que se hizo con las demás características de la partícula en la función
Nube inicial.
2. Para el resto de iteraciones se realiza una comparación entre el Coste actual de la
partícula y el mejor coste que tuvo durante las iteraciones anteriores.
a. En el caso de que el actual sea menor entonces se actualizan las variables que
definen la mejor posición de la partícula igualándolas a las características de
la posición actual.
b. En el caso contrario, en el que el coste sea mayor y por lo tanto la partícula se
encuentre en una posición peor, los valores no variarán.
8.4.6. Mejor partícula de nube (Comparación)
En este caso también se realiza una comparación como en la función anterior, pero entre
todas las partículas que componen la nube, eligiéndose la de menor coste.
Tabla 39: Variables/parámetros de entrada y salida de Mejor partícula nube
Imput Output mejor_coste_nube mejor_part_nube
mejor_pos_part mejor_pos_nube
mejor_coste_part mejor_coste_nube
mejor_consig_part mejor_consig_nube
mejor_orden_part mejor_orden_nube
mejor_bateria_part mejor_bateria_nube
mejor_coste_eq_part mejor_coste_eq_nube
mejor_coste_per_part mejor_coste_per_nube
Npart Nper n_equipos
1. Se realiza una comparación entre el mejor coste de la nube que ha surgido de las
iteraciones anteriores y el mejor coste de cada una de las partículas, actualizando
cada vez el valor del mejor coste de la nube, de manera que cuando se han
comprobado todas las partículas que componen el enjambre, el valor que toma
la variable será realmente el mejor. Se guarda entonces la posición de la mejor
partícula de la nube.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
68
for i=1:1:Npart if mejor_coste_part(i)<=mejor_coste_nube mejor_coste_nube=mejor_coste_part(i); mejor_part_nube=i; end end
2. Cuando ya se conoce cuál es la partícula con mejor fitness, entonces se actualizan
los valores de las demás características.
mejor_pos_nube(k,t)=mejor_pos_part(mejor_part_nube,t);
mejor_consig_nube(k,t)=mejor_consig_part(mejor_part_nube,t)
;
mejor_orden_nube(k,t)=mejor_orden_part(mejor_part_nube,t); mejor_bateria_nube(t)=mejor_bateria_part(mejor_part_nube,t)
;
mejor_coste_eq_nube(k,t)=mejor_coste_eq_part(mejor_part_nub
e,t); mejor_coste_per_nube(t)=mejor_coste_per_part(mejor_part_nub
e,t);
8.4.7. Nuevo orden (Movimiento)
El movimiento es la principal función que se desarrolla en la aplicación del algoritmo PSO.
Tras generar la nube de partículas, éstas se mueven teniendo en cuenta su posición
actual, su mejor posición histórica y la mejor posición de la nube.
[ALG1]
Imput Output Orden C1 Orden Orden_part_ant iter
mejor_orden_part Npart
mejor_orden_nube Nper
W n_equipos
1. Para cada periodo se generan números binarios aleatorios.
r1=randi([0,1]); r2=randi([0,1]);
2. Se iguala cada término o componente a su vector correspondiente según lo visto en el apartado 6.2.2. PSO adaptado al problema.
termino1(k)=orden_part_ant(n_equipos*(i-1)+k,t);
- Condición 1.1.: Si r1 generado anteriormente de forma aleatoria es 1, entonces el componente 2 será igual al mejor orden de la partícula en ese periodo.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
69
if r1==1 termino2(k)=mejor_orden_part(n_equipos*(i-1)+k,t);
- Condición 1.2.: Si por el contrario r1 es cero, entonces el componente 2 será igual al orden de la partícula en ese periodo.
else termino2(k)=Orden(n_equipos*(i-1)+k,t); end
- Condición 2.1.: Si r2 generado anteriormente de forma aleatoria es 1, entonces el componente 3 será igual al mejor orden de la nube en ese periodo.
if r2==1 termino3(k)=mejor_orden_nube(k,t);
- Condición 2.2.: Si por el contrario r2 es cero, entonces el componente 3 será igual al orden de la partícula en ese periodo.
else termino3(k)=Orden(n_equipos*(i-1)+k,t); end
3. A continuación, se genera otro valor aleatorio que decidirá a cuál de los tres componentes se igualará el orden de asignación de la iteración siguiente.
r=rand;
4. Antes de modificar el orden, se guarda en una matriz que representará el orden de la iteración anterior a la actual
for k=1:1:n_equipos orden_part_ant(n_equipos*(i-1)+k,t)=Orden(n_equipos*(i-1)+k,t); end
5. Se prosigue ahora con la asignación de valores al orden.
- Condición 3: Si el valor de r se encuentra en el rango [0, W], entonces el orden de la iteración siguiente será igual al componente 1.
if r<=W
for k=1:1:n_equipos Orden(n_equipos*(i-1)+k,t)=termino1(k); end end
- Condición 4: Si el valor de r se encuentra en el rango [W, W+C1], entonces el orden de la iteración siguiente será igual al componente 2.
if r>W && r<=(C1+W) for k=1:1:n_equipos Orden(n_equipos*(i-1)+k,t)=termino2(k);
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
70
end end
- Condición 3: Si el valor de r se encuentra en el rango [W+C1, 1], entonces el orden de la iteración siguiente será igual al componente 2.
if r>(C1+W) for k=1:1:n_equipos Orden(n_equipos*(i-1)+k,t)=termino3(k); end end
[ALG2]
Tabla 40: Variables/parámetros de entrada y salida de Nuevo orden
Imput Output Orden P1 Orden Cambio_anterior P2 Cambio_anterior Cambio_max iter Cambio
mejor_orden_part Iter_max
mejor_orden_nube Npart
W_max Nper
W_min n_equipos
1. Lo primero que se realiza en esta función es el cálculo de la W que será el factor de inercia, encargado de darle un peso mayor o menor al componente basado en la iteración anterior.
W=W_max-(W_max-W_min)*iter/Iter_max;
2. Seguidamente se generan dos números aleatorios, los cuales irán multiplicados por los componentes cognitivo y social.
r1=rand; r2=rand;
3. Luego se inicializan a cero los valores distinto1 y distinto2, encargados de contar los valores diferentes que hay en cada periodo en las matrices de mejor orden de la partícula y de la nube respectivamente.
if mejor_orden_part~=Orden distinto1(t)=distinto1(t)+1; end if mejor_orden_nube~=Orden
distinto2(t)=distinto2(t)+1; end
4. Cuando ya se conocen todos los valores anteriores se procede a calcular el número de cambios que se van a hacer en el orden de asignación actual para generar el nuevo orden. Se evita que el número de cambios supere un valor límite.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
71
Cambio(i,t)=round(W*Cambio_anterior(i,t)+P1*r1*distinto1(t
)+P2*r2*distinto2(t)); if Cambio(i,t)>Cambio_max Cambio(i,t)=Cambio_max; End
5. Se actualiza el valor del cambio anterior para poder usarlo en la siguiente iteración.
Cambio_anterior(i,t)=Cambio(i,t);
6. Se generan entonces los cambios
for k=1:1:n_equipos orden_actual(k)=Orden(n_equipos*(i-1)+k,t); end
- Se crea una variable que toma el nombre de ‘pos’, siendo pos(i) el lugar que toma i dentro del vector orden_actual(t).
for k=1:1:n_equipos pos(k)=find(orden_actual==k); end
c=Cambio(i,t); while c>0
- El número que se va a mover de lugar y la nueva posición que tomará se generan de forma aleatoria.
aleat1=randi([1,n_equipos]); aleat2=randi([1,n_equipos]);
- La posición actual y la nueva del valor ‘aleat1’ no puede ser la misma, porque sino no se produciría ningún cambio.
igual=1; while igual==1 if aleat2==pos(aleat1) aleat2=randi([1,n_equipos]); igual=1; else igual=0; end end
- Se realiza entonces el cambio de la siguiente manera: j=find(pos==aleat2); pos(j)=pos(aleat1); pos(aleat1)=aleat2; c=c-1; end
7. El nuevo orden del periodo correspondiente será igual al vector pos.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
72
8.4.8. Consignas
Esta función es equivalente a la ya explicada Nube inicial, pero con la diferencia de que
en este caso el orden de asignación ya viene dado.
Tabla 41: Variables/parámetros de entrada y salida de Consignas
Imput Output Orden pres_gener Posicion prevision pres_grid Consigna
demanda_dato pos_bat_d Bateria pot_bat_d pos_bat_c demanda pot_bat_c pos_fotov
pot_gener pos_gener
pot_max_contratada pos_grid
bat_alm_max n_equipos
bat_alm_min Tper
bat_level_0 Npart
pres_bat Nper
pres_fotov
8.4.9. Escritura
La escritura es la última función que se realiza en el algoritmo, es la encargada de volcar
al fichero de salida los datos de la solución óptima generada. La estructura del fichero se
encuentra explicada en el Anexo 3: Descripción del fichero de salida.
Para generar un fichero de tablas se usa el siguiente comando:
xlswrite('ficherosalida.xlsx',salida);
Tabla 42: Variables/parámetros de entrada y salida de Escritura
Imput Output mejor_coste_nube pres_grid salida
mejor_consig_nube pos_bat_c
mejor_bateria_nube pos_bat_d
mejor_coste_eq_nube pos_fotov
mejor_coste_per_nube pos_gener
pres_bat pos_grid
pres_fotov Nper
pres_gener n_equipos
8.4.10. PSO
En esta pantalla se encuentran todas las funciones explicadas anteriormente para poder
ejecutarlas en el orden designado en un número de iteraciones dado.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
73
lectura
pos_eq_matriz
iter=1
nube_inicial
while iter<=Iter_max
coste_part
mejor_particula
mejor_nube
nuevo_orden
consig_part
iter=iter+1
end
escritura
También se inicializan algunas variables.
mejor_coste_part(i)=10000000; mejor_coste_eq_part(i,t)=0; mejor_coste_per_part(i,t)=0; mejor_coste_nube=10000000;
Para [ALG1] orden_part_ant W
Para [ALG2]
Cambio_inicial=randi([Cambio_min,Cambio_max]); Cambio_anterior(i,j)=Cambio_inicial;
8.5. Configuración de los parámetros de diseño del algoritmo PSO
Los parámetros del algoritmo han de ser configurados de manera que se realice un buen
ajuste y se consigan los mejores resultados posibles.
El escenario utilizado para realizar este ajuste es el que consta de 10 periodos y todos los
equipos se encuentran presentes, se usarán los datos de demanda del escenario de
mayor consumo.
El ajuste de cada parámetro consta de una simulación del escenario fijando el resto y
variando el que se busca determinar, tras varias simulaciones se comprueba que para el
valor escogido la solución converge. Debido a la aleatoriedad de los resultados se realizan
las ejecuciones al menos dos veces para validar el ajuste. De las soluciones obtenidas se
recoge la media entre las simulaciones realizadas.
Baterías Fotovoltaica Generador Grid Periodos Demanda Batería inicial
Escenario x x x x 10 3 23 kW
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
74
- Número máximo partículas nube
La cantidad de partículas que forman el enjambre es un valor que se encuentra
relacionado con el número de iteraciones, de manera que la combinación de ambos
debe suponer que la búsqueda de soluciones admisibles se realice por todo el espacio
y no queden zonas sin explorar. Se busca evitar también la convergencia prematura
de la solución. Como se dispone de 15 minutos para realizar la ejecución del
algoritmo, se fija este parámetro en vez limitar el tiempo según el número de
iteraciones, y se procede a la variación del tamaño de la nube. En la Tabla 43 se
muestra el fitness según el número de partículas presentes en el enjambre y la
cantidad de iteraciones que se realizan en los 15 minutos de duración de ejecución
del algoritmo, para cada uno de los algoritmos que se proponen. Observando los
valores representados en la tabla se ve que no existe gran variación del valor del
fitness con el aumento del tamaño de la nube, aun así, se fija el parámetro a 200 en
el caso del [ALG1]. Para [ALG2] se escoge el valor 175.
Tabla 43: Ajuste del tamaño de la nube
Nº partículas 75 100 125 150 175 200
Fitness [ALG1] 3,65 3,64 3,57 3,80 3,53 3,45
Iteraciones [ALG1] 18855 15200 11900 10280 7700 6800
Fitness [ALG2] 5,15 5,08 5,30 5,16 4,85 5,32
Iteraciones [ALG2] 3400 1960 1370 1200 1030 845
- Número de iteraciones
Este parámetro depende en gran medida del tiempo disponible en el periodo para
ejecutar el algoritmo, se busca por tanto realizar el mayor número de iteraciones
dentro de ese rango temporal fijado el tamaño de la nube. En la Figura 20 y 21 se
observa una comparación entre el mejor fitness del enjambre y el número de
iteraciones, se puede comprobar cómo este valor va convergiendo a medida que el
algoritmo va iterando. Se detecta para [ALG2] que el valor del fitness es muy variable,
por lo que se propone no fijar el número de iteraciones y ejecutar el algoritmo
durante todo el tiempo del que se dispone. Sin embargo, la curva resultante del
[ALG1] es muy distinta, se observa una convergencia prematura de la solución, a
partir de menos de 100 iteraciones la solución deja de cambiar. Se fija a 1000
iteraciones para así poder dejar un margen en caso de cambio. Esta diferencia ocurre
debido a que el movimiento de las partículas en el [ALG2] es más progresivo y más
lento, por ello necesita de más iteraciones para llegar a una solución óptima. Además
de que la función de creación del nuevo orden del [ALG1] se ejecuta más fácilmente
y por tanto su duración es menor, realizando mayor número de iteraciones en el
mismo tiempo.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
75
Figura 24: Curva de aprendizaje [ALG2]
Figura 25: Curva de aprendizaje [ALG1]
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
76
[ALG1]:
- Ponderación W, ponderación C1 y ponderación C2
Estos tres factores representan la probabilidad de que el orden de asignación de
equipos tome el valor del componente primero, segundo o tercero. La suma de los
tres debe ser igual a 1.
W 0,3 0,2 0,1 0,1 0,2 0,3
C1 0,4 0,5 0,5 0,4 0,3 0,3
C2 0,3 0,3 0,4 0,5 0,5 0,4
Fitness 3,99 3,72 3,45 3,74 4,27 4,29
[ALG2]:
- Factor de inercia
El factor de inercia es el peso que tiene la velocidad anterior de una partícula en la
generación de la nueva velocidad, por lo que si el valor es alto la velocidad aumenta
y las partículas tienden a desplazarse a lugares lejanos, en el caso contrario las
partículas permanecen en la misma zona, sin realizar grandes expediciones. Se
propone entonces que este parámetro vaya reduciendo su valor a medida que
iteramos para que se realicen al principio exploraciones globales y al final locales. Por
tanto, se debe de ajustar el rango dentro del cual irá actualizándose este parámetro.
El valor máximo del factor de inercia se fija a 2 y el mínimo a 0.1 según los resultados
obtenidos.
Tabla 44: Ajuste del factor de inercia
Wmax 2 2 1.5 1.5 1 1
Wmin 0.5 0.1 0.1 0.5 0.1 0.5
Fitness 5,02 4,83 5,24 5,27 4,95 5,24
- Pesos
Los pesos P1 y P2 son los factores que le aportan más o menos valor a los
componentes cognitivo y social respectivamente. Tras las simulaciones realizadas que
se pueden observar en la Tabla 39 se decide fijar P1 a 2 y P2 a 1, siendo estos valores
los que generan un menor fitness.
Tabla 45: Ajuste de los pesos
P1 2 1 1 2
P2 1 1 2 2
Fitness 4,83 5,43 5,62 5,63
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
77
- Cambio
El número de cambios se inicializará aleatoriamente dentro de un rango
[Cambio_min, Cambio_max]. También se restringe el número de cambios a realizar
en cada iteración no pudiendo ser mayor al valor límite Cambio_max. El rango se fija
a [0,10].
Aunque inicialmente se propongan unos parámetros fijos, éstos no son estáticos y
pueden no ser los mejores en todos los casos, ya que dependerán en gran medida del
escenario que se esté simulando, es decir, de los equipos presentes y del número de
periodos. Por esta causa, la mejor manera de ejecutar el algoritmo es ajustando el
número de evoluciones al tiempo disponible.
8.6. Escritura en el fichero de salida
Cuando terminan de realizarse todas las iteraciones y ha finalizado la ejecución del
algoritmo las características de la mejor partícula encontrada se guardan en las variables
determinadas y se escriben en el fichero de salida según la estructura indicada en el
Anexo 3: Descripción del fichero de salida.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
78
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
79
9. Resolución para los escenarios de análisis
En este apartado se analizan diferentes escenarios en los cuales estarán presentes
distintos equipos, se añadirán sistemas de forma progresiva para facilitar la comprensión
de los resultados obtenidos en el algoritmo.
Se utilizarán ambos algoritmos PSO propuestos para estudiar el comportamiento del
sistema en cada caso (Ver: 4. Métodos de resolución), y se realizarán comparaciones entre
ellos.
9.1. Escenarios de 10 periodos
Figura 26: Curvas de demanda 10 periodos
En la Figura 21 se representa la demanda eléctrica para los tres escenarios de consumo
presentados con anterioridad (Ver: 3. Descripción de la instalación), señalados en rojo
aparecen los periodos definidos como periodos punta o aquellos cuya tarificación es más
cara, y en verde los periodos valle. Los escenarios propuestos a continuación deberán
satisfacer esta demanda en cada uno de los periodos.
Tabla 46: Características de los escenarios de 10 periodos
Escenario/Equipo Baterías Fotovoltaica Generador Grid Nivel_bat_0 Esc. Demanda
1 x 46 1
2 x x 46 3
3 x x 46 3
4 x x 46 2
5.a. x x x 46 3
5.b. x x x 23 3
6 x x x 23 3
7 x x x x 23 3
0
2
4
6
8
10
12
14
1 2 3 4 5 6 7 8 9 10
Ener
gía
(kW
h)
Escenario 1
Escenario 2
Escenario 3
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
80
9.1.1. Baterías
Este escenario en el que sólo está presente el conjunto de baterías, sin ningún equipo de
apoyo, solamente podrá ser viable para el escenario 1 de demanda, ya que al tratarse de
un consumo bajo las baterías totalmente cargadas sí serán capaces de satisfacer la
demanda de energía.
Este escenario será igual para ambos algoritmos, debido a que solo puede darse un
resultado.
Según lo previsto, el optimizador ofrece la única solución posible que será descargar las
baterías lo necesario para cubrir la demanda eléctrica en cada periodo.
Figura 27: Consignas escenario 1
El nivel de las baterías se va reduciendo progresivamente en los primeros y últimos
periodos, en los que la demanda es mayor la reducción es más brusca.
Figura 28: Nivel de batería escenario 1
0
1
2
3
4
5
6
7
1 2 3 4 5 6 7 8 9 10
Co
nsi
gna
(kW
h)
Bat_d
Demanda esc1
0
10
20
30
40
50
1 2 3 4 5 6 7 8 9 10
Ener
gía
(kW
)
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
81
El coste total en cada periodo es mínimo, proveniente del uso de las baterías, según se
muestra en la Figura 29.
Figura 29: Costes periodos escenario 1
9.1.2. Baterías + grid
En este caso se cuenta con la red eléctrica como suministro de apoyo, por lo que es
posible cubrir la demanda del escenario 3.
Como se observa en la gráfica, las baterías tienden a usarse en los periodos punta (6-10)
donde el suministro de energía de la red eléctrica tiene un coste mayor.
Figura 30: Consignas escenario 2 [ALG1]
0,1
0,12
0,14
0,16
0,18
0,2
1 2 3 4 5 6 7 8 9 10
Co
ste
(€)
0
2
4
6
8
10
12
14
1 2 3 4 5 6 7 8 9 10
Co
nsi
gna
(kW
h)
Bat_c
Grid
Bat_d
Demanda esc3
Coste total 1,49 €
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
82
Figura 31: Consignas escenario 2 [ALG2] Se puede apreciar que ambas gráficas son iguales, las consignas propuestas por los dos
algoritmos coinciden.
En la Figura 32 se muestra el perfil del nivel de energía de las baterías según las cargas y
descargas realizadas en cada periodo reflejadas en el gráfico anterior. Se parte de un 80%
de llenado.
Figura 32: Nivel de batería escenario 2
El coste total de la configuración es:
0
2
4
6
8
10
12
14
1 2 3 4 5 6 7 8 9 10
Co
nsi
gna
(kW
h)
Bat_c
Grid
Bat_d
Demanda esc3
0
10
20
30
40
50
1 2 3 4 5 6 7 8 9 10 11
Ener
gía
(kW
)
Coste total 5,30 €
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
83
Tal y como se muestra en la Figura 33 se produce un aumento del coste total en los
periodos punta en los que se requiere el uso del grid. También se puede ver en la Figura
34 que la red eléctrica supone la mayor parte del coste del escenario.
Figura 33: Costes periodos escenario 2
Figura 34: Costes equipos escenario 2
9.1.3. Baterías + generador
En este escenario se dispone de un generador como equipo de apoyo en vez de la
conexión a la red eléctrica. Las consignas que superan la demanda tienen como destino
la carga de baterías.
Las consignas propuestas para este escenario por ambos algoritmos [ALG1] y [ALG2]
coinciden y se presentan a continuación en Figura 35.
0
0,2
0,4
0,6
0,8
1
1,2
1 2 3 4 5 6 7 8 9 10
Co
ste
(€)
19%
81%
Baterías
Grid
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
84
Figura 35: Consignas escenario 3
Las baterías se encuentran inicialmente cargadas al 80% de su capacidad, se produce una
carga mediante la energía producida por el generador en el periodo 7. En la Figura 36 se
muestra la cantidad de energía almacenada en las baterías en cada periodo.
Figura 36: Nivel de batería escenario 3
El coste total de la configuración es:
0
5
10
15
20
25
30
35
40
45
50
1 2 3 4 5 6 7 8 9 10
Co
nsi
gna
(kW
h)
Bat_c
Gener
Bat_d
Demanda esc3
0
10
20
30
40
50
1 2 3 4 5 6 7 8 9 10 11
Ener
gía
(kW
)
Coste total 5,25 €
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
85
El pico de costes se genera en el periodo donde se hace uso del generador, siendo este
equipo el que genera un 60% del coste del escenario, según se puede ver en la Figura 38.
Figura 37: Costes periodos escenario 3
Figura 38: Costes equipos escenario 3
9.1.4. Baterías + fotovoltaica
Este escenario está compuesto por el equipo renovable y las baterías almacenadoras,
debido a que no está presente ninguno de los equipos de apoyo, vemos cómo reacciona
el algoritmo en el caso de que la demanda sea media y las baterías se encuentren
inicialmente llenas.
Se simula el escenario para ambos algoritmos y se obtienen los mismos resultados.
0
0,5
1
1,5
2
2,5
3
3,5
1 2 3 4 5 6 7 8 9 10
Co
ste
(€)
37%
63%
Baterías
Generador
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
86
Figura 39: Consignas escenario 4
La Figura 40 muestra el nivel de carga de las baterías en cada periodo. Al final de periodo
10 las baterías no pueden seguir descargándose, ya que, se encuentran al mínimo de
capacidad de almacenamiento por debajo del cual las baterías pueden sufrir un mayor
desgaste.
Figura 40: Nivel de batería escenario 4
El coste total de la configuración es:
Si se compara con los escenarios simulados anteriormente se puede apreciar que el coste
cuando se satisface la demanda con equipos renovables es mucho menor.
0
2
4
6
8
10
12
14
16
1 2 3 4 5 6 7 8 9 10
Co
nsi
gna
(kW
h)
Bat_c
Fotov
Bat_d
Demanda esc2
0
10
20
30
40
50
1 2 3 4 5 6 7 8 9 10 11
Ener
gía
(kW
)
Coste total 1,83 €
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
87
Como puede verse en la gráfica de costes el periodo donde se produce mayor gasto es el
7 debido al uso de ambos equipos y a que ese periodo corresponde al de mayor consumo
eléctrico del edificio.
Figura 41: Coste periodos escenario 4
Figura 42: Costes equipos escenario 4
9.1.5. Baterías + fotovoltaica + grid
En el quinto escenario se encuentran presentes las baterías y las placas fotovoltaicas al
igual que en el anterior, pero ahora con la presencia también de la red eléctrica. Al estar
el nivel de carga de las baterías inicialmente al máximo, el uso del grid es nulo o mínimo.
Si se observan ambas gráficas de representación de consignas, se puede apreciar que las
propuestas por el [ALG1] son más eficientes que las del [ALG2], ya que en el periodo 7 el
primero usa la descarga de baterías para satisfacer el pico de demanda, mientras que el
otro hace uso del grid, generando así un coste un poco mayor.
0
0,05
0,1
0,15
0,2
0,25
0,3
0,35
1 2 3 4 5 6 7 8 9 10
Co
ste
(€)
92%
8%
Baterías
Fotovoltaica
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
88
Figura 43: Consignas escenario 5.a. [ALG1]
Figura 44: Consignas escenario 5.a. [ALG2]
A continuación, en la Figura 45, se representa el perfil de energía almacenada en las
baterías según las consignas generadas por el [ALG2] reflejadas en el gráfico anterior.
Inicialmente se encuentran cargadas al 80%. Para el [ALG1] es muy similar,
produciéndose una pequeña descarga en el periodo 7.
Figura 45: Nivel de batería escenario 5.a.
0
2
4
6
8
10
12
14
1 2 3 4 5 6 7 8 9 10
Co
nsi
gna
(kW
h) Bat_c
Grid
Fotov
Bat_d
Demanda
0
2
4
6
8
10
12
14
1 2 3 4 5 6 7 8 9 10
Co
nsi
gna
(kW
h) Bat_c
Grid
Fotov
Bat_d
Demanda
0
5
10
15
20
25
30
35
40
45
50
1 2 3 4 5 6 7 8 9 10 11
Ener
gía
(kW
)
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
89
Los costes totales de las configuraciones propuestas son:
Se observa que el coste total de este escenario es superior al del escenario simulado
anteriormente, ya que en este caso la demanda es superior, además de que se cuenta
con conexión a la red eléctrica, lo que conlleva un coste fijo en cada uno de los periodos
debido a la disponibilidad de la potencia contratada.
La diferencia que se produce en la generación de consignas en el periodo 7, determina
los costes, ya que en el primer algoritmo no se hace uso de la red eléctrica y por tanto el
coste es menor, mientras que en el segundo si se utiliza aumentando el coste
correspondiente. En las Figura 46 y Figura 47 se puede observar fácilmente esta
diferencia.
Figura 47: Costes periodos escenario 5.a. [ALG2]
0
0,05
0,1
0,15
0,2
0,25
0,3
0,35
1 2 3 4 5 6 7 8 9 10
Co
ste
(€)
0
0,05
0,1
0,15
0,2
0,25
0,3
0,35
1 2 3 4 5 6 7 8 9 10
Co
ste
(€)
Coste total [ALG1] 2,33 €
Coste total [ALG2] 2,73 €
Figura 46: Costes periodos escenario 5.a. [ALG1]
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
90
Aunque el uso de la red eléctrica sea mínimo o nulo, el coste es alto debido a que se sigue
imputando el coste por potencia contratada y por alquiler de equipos.
Se propone una opción alternativa para este escenario en la que el nivel de batería inicial
sea menor, específicamente un 40% de la capacidad total.
Se observa entonces que el uso del grid aumenta, utilizándose en la mayoría de casos en
los periodos valle donde el precio es menor. En los periodos de alto coste del suministro
o periodos punta se tiende al uso de las baterías y el equipo renovable, tal y como se
puede ver en la Figura 49 y 50.
Figura 49: Consignas escenario 5.b. [ALG1]
42%
24%
34% Bat
Fotov
Grid
0
2
4
6
8
10
12
14
1 2 3 4 5 6 7 8 9 10
Co
nsi
gna
(kW
h) Bat_c
Grid
Fotov
Bat_d
Demanda esc3
Figura 48: Costes equipos esc. 5.a.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
91
Figura 50: Consignas escenario 5.b. [ALG2]
En la Figura 51 se muestra la cantidad de energía almacenada en las baterías para cada
periodo. Se ve que según las consignas de carga y descarga propuestas por los
optimizadores, el [ALG2] tiende a reservar la energía en los primeros periodos, mientras
que el [ALG1] la consume.
Figura 51: Nivel de batería escenario 5.b.
El coste total de la configuración es:
Los costes de las soluciones propuestas por ambos algoritmos aumentan con respecto al
escenario 5.a., ya que, al disponerse de menos almacenamiento inicial en las baterías, el
uso de la red eléctrica aumenta, produciendo de esa manera un aumento del coste.
0
2
4
6
8
10
12
14
1 2 3 4 5 6 7 8 9 10
Co
nsi
gna
(kW
h) Bat_c
Grid
Fotov
Bat_d
Demanda esc3
0
5
10
15
20
25
1 2 3 4 5 6 7 8 9 10 11
Ener
gía
alm
acen
ada
(kW
)
[ALG1]
[ALG2]
Coste total [ALG1] 3,46 €
Coste total [ALG2] 4,06 €
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
92
Figura 52: Costes por periodos escenario 5.b. [ALG1] y [ALG2]
Como se observa en la Figura 53 y Figura 54, más de la mitad de los costes que se
producen en este escenario son debido al uso de la red eléctrica.
Figura 53: Costes equipo escenario 5.b. [ALG1] Figura 54: Costes equipo escenario 5.b. [ALG2]
9.1.6. Baterías + fotovoltaica + generador
Este escenario es el que se daría en el caso de que la instalación se encontrara en isla, es
decir, sin conexión al suministro tradicional de energía eléctrica.
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
1 2 3 4 5 6 7 8 9 10
Co
ste
(€)
[ALG1]
[ALG2]
31%
15%
54%
Baterías Fotovoltaica Grid
29%
16%
55%
Baterías Fotovoltaica Grid
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
93
Como se muestra en la Figura 55 y Figura 56, según las consignas propuestas por el
optimizador, el generador sólo funcionaría en un periodo donde la energía que produce
se destina a cubrir la demanda y a cargar las baterías para así poder satisfacer la demanda
posteriormente mediante el uso de la energía almacenada en las baterías y la producida
por las placas fotovoltaicas.
Figura 55: Consignas escenario 6 [ALG1]
Figura 56: Consignas escenario 6 [ALG2]
La Figura 57 representa el nivel de carga de las baterías en cada uno de los periodos según
las consignas de producción mostradas anteriormente. Se parte de una cantidad de
energía almacenada correspondiente al 40% de la capacidad de las baterías.
Se observa que el nivel de almacenamiento del [ALG2] es mayor o igual que el del [ALG1]
en todos los periodos.
0
4
8
12
16
20
24
28
1 2 3 4 5 6 7 8 9 10
Co
nsi
gna
(kW
h) Bat_c
Gener
Bat_d
Fotov
Demanda esc3
0
4
8
12
16
20
24
28
1 2 3 4 5 6 7 8 9 10
Co
nsi
gna
(kW
h) Bat_c
Gener
Bat_d
Fotov
Demanda esc3
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
94
Figura 57: Nivel Baterías [ALG1] y [ALG2]
El coste total de la configuración es:
Si se compara con el escenario anterior se puede comprobar el aumento de coste que
produce el uso del generador. Se observan en ambos gráficos un pico de coste producido
en los periodos de funcionamiento del generador.
Figura 58: Costes por periodos escenario 6 [ALG1] y [ALG2]
0
5
10
15
20
25
30
35
40
1 2 3 4 5 6 7 8 9 10 11
Ener
gía
alm
acen
ada
(kW
)
[ALG1]
[ALG2]
0
0,5
1
1,5
2
2,5
3
3,5
1 2 3 4 5 6 7 8 9 10
Co
ste
(€)
[ALG1]
[ALG2]
Coste total [ALG1] 5,39 €
Coste total [ALG2] 5,79 €
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
95
A pesar del poco uso que se hace del generador, el coste de este equipo supone la
mayoría del gasto del escenario, tal y como se puede apreciar en la Figura 59 y Figura 60.
Figura 59: Costes equipo escenario 6 [ALG1] Figura 60: Costes equipo escenario 6 [ALG2]
9.1.7. Baterías + fotovoltaica + grid + generador
Este escenario lo componen todos los equipos que se encuentran en la instalación.
En la Figura 61 y Figura 62 se representan las consignas de funcionamiento para cada uno
de los sistemas dadas por el optimizador y se puede observar que el generador no
contribuye a la producción de energía en ninguno de los casos, no sería necesario por
tanto disponer de dos equipos de apoyo.
Figura 61: Consignas escenario 7 [ALG1]
31%
9%
60%
Baterías Fotovoltaica Gener
30%
9%61%
Baterías Fotovoltaica Gener
0
5
10
15
1 2 3 4 5 6 7 8 9 10
Co
nsi
gna
(kW
h) Bat_c
Grid
Gener
Fotov
Bat_d
Demanda esc3
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
96
En la Figura 62 se aprecia que la energía proveniente de la red eléctrica tiene como
destino mayoritariamente la carga de las baterías.
Figura 62: Consignas escenario 7 [ALG2]
En la Figura 63 se muestra la cantidad de energía almacenada en las baterías para cada
periodo, según las consignas de carga y descarga asignadas por el optimizador y según el
nivel de carga inicial (40% de la capacidad).
Figura 63: Nivel Baterías escenario 7 [ALG1] y [ALG2]
El coste total de la configuración es:
0
5
10
15
20
25
30
35
1 2 3 4 5 6 7 8 9 10
Co
nsi
gna
(kW
h) Bat_c
Grid
Gener
Fotov
Bat_d
Demanda esc3
0
5
10
15
20
25
30
35
40
1 2 3 4 5 6 7 8 9 10 11
Ener
gía
alm
acen
ada
(kW
)
[ALG1]
[ALG2]
Coste total [ALG1] 3,53 €
Coste total [ALG2] 5,49 €
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
97
Se observa que la desviación de costes entre ambos algoritmos para este escenario es
mayor que en los casos anteriores, esto se produce principalmente debido al mayor uso
del grid en el caso del [ALG2], siendo por tanto la solución propuesta por este optimizador
más ineficiente.
A continuación, se incluyen las representaciones de los costes totales en cada periodo y
los costes imputados por cada equipo presente en el escenario. En la Figura 64 se pueden
distinguir dos picos de costes, generados en los periodos de uso del grid, siendo este
equipo el que produce mayor gasto en proporción con el resto, según se ve en la Figura
65 y Figura 66. En la gráfica se aprecian las diferencias entre ambos algoritmos,
principalmente difieren en el periodo 3, ya que el ALG2 propone mayor generación de
energía mediante el grid para cargar las baterías.
Figura 64: Costes por periodos escenario 7 [ALG1] y [ALG2]
Figura 65: Costes equipo escenario 7 [ALG1] Figura 66: Costes equipo escenario 7 [ALG2]
0
0,5
1
1,5
2
2,5
1 2 3 4 5 6 7 8 9 10
Co
ste
(€)
[ALG1]
[ALG2]
38%
14%0%
48%
Baterías Fotovoltaica Gener Grid
31%
9%0%
60%
Baterías Fotovoltaica Gener Grid
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
98
9.2. Escenario de 96 periodos
Tras haber analizado y verificado el funcionamiento del algoritmo para los escenarios de
10 periodos, en los que la dificultad para descubrir fallos y crear mejoras es mucho
menor, se procede a simular el funcionamiento en un escenario de 96 periodos
encontrándose éste más cercano a la realidad y por lo tanto suponiendo mayor
complejidad.
Figura 67: Curvas de demanda 96 periodos
En la Figura 67 se representan las curvas de demanda en cada periodo para los tres
escenarios de consumo propuestos, también se puede ver que se encuentran marcados
en rojo los periodos en los que el coste del grid es mayor y en verde aparecen señalados
los periodos valle.
A continuación, se muestra una tabla donde se incluyen los equipos presentes en cada
escenario a simular en este apartado.
Tabla 47: Equipos presentes en cada escenario de 96 periodos
Escenario/Equipo Baterías Fotovoltaica Generador Grid
8 x x x
9 x x x
10 x x x x
0
0,2
0,4
0,6
0,8
1
1,2
1,4
1,6
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94
Ener
gía
(kW
h)
Escenario 1
Escenario 2
Escenario 3
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
99
9.2.1. En isla (Baterías + Fotovoltaica + Generador)
El primer escenario que se propone es el que representa la situación actual de la
instalación, en este caso un hotel rural que trabaja en isla por falta de conexión a la red
eléctrica. Se cuenta entonces con un generador como equipo de apoyo, encargado de
satisfacer la demanda cuando existan picos de consumo y no pueda ser cubierta por el
equipo renovable o las baterías. Como se ve en la Figura 68 y Figura 69, la energía que
produce está mayormente destinada a la carga de baterías.
Figura 68: Consignas escenario 8 [ALG1]
Figura 69: Consignas escenario 8 [ALG2]
0
1
2
3
4
5
6
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94
Co
nsi
gna
(kW
h)
Bat_d Fotov Gener Bat_c Demanda esc3
0
0,5
1
1,5
2
2,5
3
3,5
4
4,5
5
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94
Co
nsi
gna
(kW
h)
Bat_d Fotov Gener Bat_c Demanda esc3
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
100
Comparando ambas gráficas de representación de las consignas propuestas por los
optimizadores, se observa que el uso del generador es mayor en la Figura 65.
Analizándolas se puede apreciar también que en la mayoría de periodos en los que se
realiza la carga de baterías mediante la energía producida por el generador, el generador
ya se encontraba activado en ese periodo. Aprovechando de esa manera el coste de
arranque.
A continuación, se muestra la Figura 70 que representa el nivel de carga de las baterías
según las consignas asignadas incluidas en el gráfico anterior.
Figura 70: Nivel de carga de batería escenario 8
El coste total de la configuración es:
Tal y como se observa en la Figura 71, se producen una gran cantidad de subidas y bajadas
de coste según el periodo, contrastando estos datos con los que nos muestra la Figura 68
y la Figura 69 se puede ver que los picos de costes son producidos debido al uso del
generador, siendo este equipo el que genera en torno a un 70% del gasto.
0
5
10
15
20
25
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97
Ener
gía
alm
acen
ada
(kW
)
[ALG1] [ALG2]
Coste total [ALG1] 5,72 €
Coste total [ALG2] 8,69 €
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
101
Figura 71: Costes por periodos escenario 8 [ALG1] y [ALG2]
Figura 72: Costes equipo escenario 8 [ALG1] Figura 73: Costes equipo escenario 8 [ALG2]
9.2.2. Baterías + Fotovoltaica + Grid
Se propone también este escenario, ya que como se ha visto en simulaciones anteriores,
el generador supone un alto coste y tampoco es necesario disponer de dos equipos
apoyo. Aunque con complejidad, en la Figura 74 y Figura 75 puede apreciarse que el uso
del grid se realiza mayoritariamente en los periodos valle donde el coste es menor,
destinándose a cubrir la demanda y cargar las baterías para contar con energía
almacenada disponible en otros periodos.
0
0,05
0,1
0,15
0,2
0,25
0,3
0,35
0,4
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94
Co
ste
(€)
[ALG1] [ALG2]
27%
9%64%
Baterías Fotovoltaica Gener
19%
4%
77%
Baterías Fotovoltaica Gener
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
102
Figura 74: Consignas escenario 9 [ALG1]
Figura 75: Consignas escenario 9 [ALG2]
En la Figura 76 se representan las cargas y descargas de energía que se producen en las
baterías a lo largo de los 96 periodos que componen el escenario. Se puede observar que
el nivel se encuentra entre los límites asignados, no se producen descargas por debajo
del 20% de la capacidad ni cargas por encima del 80%.
0
0,5
1
1,5
2
2,5
3
3,5
4
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94
Co
nsi
gna
(kW
h)
Bat_d Fotov Grid Bat_c Demanda esc3
0
0,5
1
1,5
2
2,5
3
3,5
4
4,5
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94
Co
nsi
gna
(kW
h)
Bat_d Fotov Grid Bat_c Demanda esc3
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
103
Figura 76: Nivel de carga de batería escenario 9
El coste total de la configuración es:
En la Figura 77 que se muestra a continuación puede distinguirse, contrastándola con la
Figura 74 y Figura 75 vistas con anterioridad, que los costes más altos se producen en los
periodos punta en los cuales se hace uso del suministro eléctrico. Este sistema, como se
aprecia en la Figura 78 y Figura 79, es el encargado de generar el 62% y el 68% del gasto
respectivamente. Los costes asociados a las consignas asignadas por el [ALG2] vemos que
son mayores en los periodos a partir del 58, ya que este algoritmo al ser más ineficiente
propone el uso del grid durante esos periodos, encontrándose estos dentro del rango
horario en el que la tarifa es más cara.
Figura 77: Costes por periodos escenario 9 [ALG1] y [ALG2]
0
5
10
15
20
25
30
35
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97
Ener
gía
alm
acen
ada
(kW
)
[ALG1] [ALG2]
0
0,05
0,1
0,15
0,2
0,25
0,3
0,35
0,4
0,45
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94
Co
ste
(€)
[ALG1] [ALG2]
Coste total [ALG1] 5,19 €
Coste total [ALG2] 6,49 €
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
104
Figura 78: Costes equipo escenario 9 [ALG1] Figura 79: Costes equipo escenario 9 [ALG2]
9.2.3. Baterías + Fotovoltaica + Generador + Grid
Como se ha dicho anteriormente, es difícil analizar las consignas para este escenario,
deberían de usarse en gran medida el equipo renovable y las baterías, y que el generador
tienda a funcionar en los periodos diurnos y el grid en los periodos valle.
En la Figura 80 puede verse que el uso del generador que propone el optimizador [ALG1]
es mínimo, sin embargo, esto no ocurre para el [ALG2] como se aprecia en la Figura 81.
Figura 80: Consignas escenario 10 [ALG1]
29%
9%62%
Baterías Fotovoltaica Grid
26%
6%68%
Baterías Fotovoltaica Grid
0
0,5
1
1,5
2
2,5
3
3,5
4
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94
Co
nsi
gnas
(kW
h)
Bat_d Fotov Gener Grid Bat_c Demanda esc3
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
105
Figura 81: Consignas escenario 10 [ALG2]
En la Figura 82 que se muestra a continuación se representa el perfil de carga de las
baterías en cada uno de los 96 periodos. Tal y como se observa en la gráfica, el nivel de
almacenamiento nunca llega al mínimo en el caso del [ALG2], por lo que se propone como
mejora realizar un control de las baterías de modo que sólo se carguen cuando el nivel
se encuentre por debajo de una cantidad. Por el contrario, según las consignas asignadas
por el [ALG1], la carga de baterías se produce en los periodos valle por el grid y en algunos
casos con la fotovoltaica, por lo que al final del día en el que no se encuentran disponibles
estos equipos, las baterías tienden a descargarse, acabando el nivel en el mínimo de
capacidad.
Figura 82: Nivel de carga de batería escenario 10
0
0,5
1
1,5
2
2,5
3
3,5
4
4,5
5
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94
Co
nsi
gnas
(kW
h)
Bat_d Fotov Gener Grid Bat_c Demanda esc3
0
5
10
15
20
25
30
35
40
45
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97
Ener
gía
alm
acen
ada
(kW
)
[ALG1] [ALG2]
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
106
El coste total de la configuración es:
Para este escenario vemos que la desviación entre los costes de las soluciones óptimas
propuestas por los dos algoritmos es mucho mayor, siendo el del [ALG2] el doble que el
del [ALG1].
Se representan ahora los costes generados en cada periodo y por cada equipo,
observando la Figura 83 se puede distinguir fácilmente que el generador es el que mayor
gasto supone. Se aprecian también las diferencias de costes antes comentadas entre las
consignas de funcionamiento propuestas por los dos algoritmos.
Figura 83: Costes por periodos escenario 10 [ALG1] y [ALG2]
0
0,05
0,1
0,15
0,2
0,25
0,3
0,35
0,4
1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94
Co
ste
(€)
[ALG1] [ALG2]
Coste total [ALG1] 5,35 €
Coste total [ALG2] 10,49 €
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
107
Figura 84: Costes equipo escenario 10 [ALG1] Figura 85: Costes equipo escenario 10 [ALG2]
En los gráficos que se muestran se representa el porcentaje del coste total que supone
cada uno de los equipos utilizados según las consignas que se proponen. Es una manera
fácil de comprobar visualmente las diferencias entre ambos algoritmos, además de saber
qué sistemas es el que está generando mayor gasto. Vemos en la Figura 84 que los costes
que se producen según el [ALG1] tienen un mayor porcentaje proveniente del grid, sin
embargo, si se observa la Figura 85, el equipo que más gasto supone es el generador, al
ser este sistema más caro el coste total de la configuración para este caso es mayor.
30%
6%4%
60%
Baterías Fotovoltaica Gener Grid
15%
3%
50%
32%
Baterías Fotovoltaica Gener Grid
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
108
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
109
10. Comparación y análisis de resultados
10.1. Análisis comparado de los algoritmos [ALG1] y [ALG2]
Este apartado tiene como objetivo realizar una comparación entre los dos algoritmos
propuestos con anterioridad (Ver 7. Métodos de resolución), ambos basados en las
características que definen al algoritmo PSO tradicional pero adaptadas al problema a
resolver en este proyecto. Las dos opciones que se proponen están diseñadas con la
misma estructura, pero con matices diferentes en cuanto al movimiento de las partículas.
Recordando, el [ALG1] está basado en estimación de la posición por ponderación de
disposiciones, es decir el nuevo orden se igualará a uno de los componentes que
caracteriza al movimiento según una probabilidad y para el [ALG2] se proponía un
movimiento con estimación de la velocidad por cambios de posición en el orden de
asignación. A continuación, se expondrán las ventajas e inconvenientes de cada uno
según las simulaciones realizadas.
En la Tabla 48 se muestran las características que definen a cada uno de los escenarios
que se han simulado con anterioridad.
Tabla 48: Características de cada escenario
Escenario Baterías Fotovoltaica Generador Grid Periodos Demanda Batería inicial
1 x 10 1 46 kW
2 x x 10 3 46 kW
3 x x 10 3 46 kW
4 x x 10 2 46 kW
5.a. x x x 10 3 46 kW
5.b. x x x 10 3 23 kW
6 x x x 10 3 23 kW
7 x x x x 10 3 23 kW
8 x x x 96 3 23 kW
9 x x x 96 3 23 kW
10 x x x x 96 3 23 kW
En la Tabla 49 que se presenta a continuación se recogen los costes de las soluciones óptimas generadas en cada escenario para ambos algoritmos y a partir de estos resultados se va a realizar una comparación de las eficiencias de cada uno.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
110
Tabla 49: Comparación costes [ALG1] y [ALG2]
Escenario/Coste [ALG1] [ALG2]
1 1,49 € 1,49 €
2 5,30 € 5,30 €
3 5,25 € 5,25 €
4 1,83 € 1,83 €
5.a. 2,33 € 2,73 €
5.b. 3,46 € 4,06 €
6 5,39 € 5,79 €
7 3,53 € 5,46 €
8 5,72 € 8,69 €
9 5,19 € 6,49 €
10 5,35 € 10,49 €
Figura 86: Comparación costes totales [ALG1] y [ALG2]
Analizando los datos que se muestran en la Tabla 49 y que se representan en la Figura
86, se puede comprobar que no existe mucha desviación entre ambas propuestas en los
primeros 6 escenarios, ya que al haber menos equipos existen menos posibilidades de
consignas y estas tienden a ser similares en ambas propuestas. Sin embargo, la desviación
crece para el resto de escenarios, siendo para el escenario 10 el coste del [ALG2] el doble
que el del [ALG1].
La característica que diferencia mayoritariamente a estos algoritmos es el tiempo de
ejecución, ya que si se comparan las iteraciones que realizan en 15 minutos presentadas
en el apartado 5.2 Algoritmo (parámetros de diseño), siendo para 100 partículas 15200
iteraciones la que realiza el [ALG1] y 1960 el [ALG2], se observa que el [ALG1] es mucho
más rápido en su ejecución que el [ALG2]. Sin embargo, si se representa la curva de
aprendizaje del [ALG1], para el escenario 7, se aprecia que este algoritmo sufre una
convergencia temprana, es decir, la mayoría del tiempo disponible de ejecución no lo
€0,00
€2,00
€4,00
€6,00
€8,00
€10,00
€12,00
1 2 3 4 5.a. 5.b. 6 7 8 9 10
Co
ste
tota
l
Escenario
[ALG1]
[ALG2]
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
111
aprovecha, no sigue mejorando y se queda estancado. Aun así, como se ha visto
anteriormente en la Tabla 49, los resultados ofrecidos por el algoritmo basado en
ponderaciones son mucho mejores, siendo iguales o menores los costes que propone en
cada uno de los escenarios.
También se observa que para el [ALG2] a medida que va aumentando el número de
equipos considerados y el número de periodos, los resultados son peores. Esto se debe
principalmente al inconveniente antes comentado, al aumentar estos parámetros las
ejecuciones duran más permitiendo de esa manera realizar menor número de
iteraciones, lo que conlleva que los resultados ofrecidos sean menos eficientes.
Analizando los datos también se puede comprobar que el uso del generador junto con el
grid no ofrece nunca mejores resultados que si se dispone de la red eléctrica solamente,
por lo que se propone sólo hacer uso del generador en caso de que la instalación se
encuentre trabajando en isla y no disponga de conexión a la red eléctrica.
Tras ver los resultados obtenidos se concluye que el [ALG1] es más eficiente que el [ALG2], ya que propone mejores soluciones.
10.2. Análisis comparado de algoritmo [ALG1] con control de la
carga y sin control de la carga de baterías
Observando las simulaciones realizadas en el apartado 9. Resolución se comprobó que al
asignar consignas de carga de baterías aleatorias al generador y al grid, estos tienden a
producir sin ningún criterio y las baterías a encontrarse la mayoría de los periodos
cargadas, sin llegar a acercarse al límite inferior de capacidad. Debido a esto se propone
una mejora que suponga un límite para la generación de excesos por parte de los equipos
de apoyo y de esa manera sólo se carguen las baterías en caso de que el nivel de carga
se encuentre por debajo de cierto límite o si la fotovoltaica produce más de lo necesario
para cubrir la demanda.
Se fija el nivel de carga mínimo a 20 kW, es decir que no se carguen las baterías hasta que
el nivel no se encuentre por debajo de 20.
Los resultados son los que se muestran en la Tabla 50.
Tabla 50: Comparación costes [ALG1] con control y sin control
Escenario/Coste Con control de carga Sin control de carga
5.b. 3,68 € 3,46 €
6 5,35 € 5,39 €
7 3,22 € 3,53 €
8 5,55 € 5,72 €
9 4,96 € 5,19 €
10 5,35 € 5,35 €
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
112
Si se representan las consignas asignadas por el algoritmo mejorado en el escenario 7 y
se comparan con las consignas generadas con anterioridad sin el control de carga, se
puede apreciar que con la mejora propuesta las consignas de carga son menores y la
producción del grid se adaptan más a la demanda. A pesar de ello, como se puede ver en
la Tabla 50, el precio no varía mucho, esto puede deberse a que antes, al haber más
energía almacenada el uso de las baterías en modo descarga para cubrir la demanda era
mayor y ahora esa falta se suple con los equipos de apoyo. Mirando las gráficas también
se aprecia que el [ALG1] propone consignas de carga en los periodos del principio donde
la tarifa de la red eléctrica es menor, el algoritmo con control de carga al tener suficiente
energía almacenada al principio no realiza cargas.
Figura 87: Consignas escenario 10 [ALG1] con control de carga
Figura 88: Consignas escenario 7 [ALG1] sin control de carga
0
5
10
15
1 2 3 4 5 6 7 8 9 10
Co
nsi
gna
(kW
h) Bat_c
Grid
Gener
Fotov
Bat_d
Demanda esc3
0
5
10
15
1 2 3 4 5 6 7 8 9 10
Co
nsi
gna
(kW
h) Bat_c
Grid
Gener
Fotov
Bat_d
Demanda esc3
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
113
Comparando también los niveles de energía almacenada en cada caso se observa que ambos perfiles son muy similares, el [ALG1] sin control de carga realiza mayores descargas al principio y el otro algoritmo se mantiene hasta el periodo 7 por encima del valor límite y en el periodo 9 realiza la carga. Por tanto, el [ALG1] realiza más cargas y descargas, mientras que con la mejora que se propone el nivel se mantiene más equilibrado.
Figura 89: Nivel de carga baterías [ALG1] con control de carga y sin control de carga
Tras analizar los resultados generados por ambos algoritmos se determina que los dos
casos resultan de interés y habría de estudiarse cuál de ellos produce un menor desgaste
de las baterías.
10.3. Comparación entre Configuración estática y Algoritmo PSO
Para finalizar, se realiza una comparación entre los resultados obtenidos para el escenario
7, definido en la Tabla, por el Algoritmo PSO propuesto [ALG1] y la configuración manual
estática.
El escenario cuenta con todos los equipos disponibles en la instalación, baterías,
fotovoltaica, generador y grid, con un nivel de carga inicial de 23 kW y con un horizonte
temporal de 10 periodos. La curva de demanda usada será la de mayor consumo,
expuesta con anterioridad.
Para la configuración manual estática se tendrán en cuenta los rendimientos y las
potencias máximas de producción de cada equipo, y se buscará satisfacer la demanda en
cada periodo usando las placas fotovoltaicas y las baterías en primer lugar, en caso de
que la previsión no lo permita o no exista suficiente energía almacenada se recurrirá a los
equipos de apoyo, utilizándose convenientemente, es decir, el generador durante los
periodos diurnos y el grid durante los periodos valle. Si las baterías no se encuentran en
0
5
10
15
20
25
1 2 3 4 5 6 7 8 9 10 11
Ener
gía
alm
acen
ada
(kW
)
[ALG1] sin control [ALG1] con control
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
114
modo carga y están cercanas al límite inferior de capacidad, se cargarán al máximo de su
potencia con el equipo generador disponible, o si existe exceso de energía producida por
las placas también se destinará a la carga.
Se presentan en la Tabla 51 las consignas diseñadas manualmente según las
características antes expuestas:
Tabla 51: Consignas de configuración estática manual
1 2 3 4 5 6 7 8 9 10
Bat_c 0 0 0 18 0 0 0 3.54 0 0
Bat_d 3.16 2.18 5.78 0 1.51 1.27 0.34 0 2.2 8.56
Fotov 0 0 0 0 4.32 8.64 12.96 8.64 4.32 0
Gener 0 0 0 6.96 0 0 0 0 0 0
Grid 0 0 0 11.04 0 0 0 0 0 0
Demanda 3.16 2.18 5.78 3.52 5.83 9.91 13.3 5.1 6.52 8.56
Nivel bat 23 19.84 17.66 11.88 29.88 28.37 27.1 26.76 30.3 28.1
Figura 90: Consignas de configuración estática manual
A continuación, se muestran las consignas proporcionadas por el optimizador para este
mismo escenario. En la Figura 91 se puede apreciar que el uso del grid en este caso es
mayor que en el anterior, sin embargo, el generador no se activa en ningún periodo.
0
5
10
15
20
25
30
35
40
1 2 3 4 5 6 7 8 9 10
Co
nsi
gna
(kW
h) Bat_c
Gener
Grid
Bat_d
Fotov
Demanda
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
115
Figura 91: Consignas de optimizador
Calculamos a partir de estas consignas el coste total de la configuración estática y lo
comparamos con el resultante de la solución propuesta por el optimizador y obtenemos
los valores que se incluyen en la Tabla 52.
Tabla 52: Comparación costes estática y optimizador
Observando los datos resultantes vemos que existe un ahorro por el uso del optimizador
con respecto a la configuración manual. Si se tratase de una instalación con mayor
número de equipos presentes la configuración manual sería más compleja de realizar y
el optimizador automático produciría un ahorro aún mayor.
0
5
10
15
1 2 3 4 5 6 7 8 9 10
Co
nsi
gna
(kW
h) Bat_c
Grid
Gener
Fotov
Bat_d
Demanda esc3
Coste total Ahorro
Configuración estática 9,09 € 5,56 € (157,5 %) Algoritmo optimizador 3,53 €
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
116
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
117
11. Conclusiones
El objetivo que se propuso al principio del proyecto fue desarrollar y diseñar un sistema
de control que integrase la producción, almacenamiento y consumo eléctrico, y generase
consignas de funcionamiento mediante algoritmos de optimización de manera que se
consiguiera maximizar el rendimiento técnico y económico. Este objetivo se ha
conseguido realizando un modelo matemático que define las características de la
instalación de generación eléctrica distribuida y las optimiza; además se ha desarrollado
un software basado en un algoritmo encargado de proporcionar consignas de
funcionamiento eficientes para cada equipo a tiempo real.
Se comenzó presentando la situación actual de necesidad de un cambio en la generación
de energía, debido a la creciente dependencia de todos los sectores de sociedad y al
futuro agotamiento de las fuentes tradicionales. Comienzan por tanto a tomar partido
instalaciones basadas en el autoconsumo haciéndose uso de esa manera de fuentes
renovables. Surgen entonces los sistemas de generación energética distribuida como una
opción alternativa a las redes de suministro tradicionales. Debido a esto se propone
generar un optimizador que consiga mejorar el rendimiento de este tipo de instalaciones.
Para cumplir con el objetivo antes mencionado se empezó modelando el problema, es
decir, se describieron las restricciones técnicas de los equipos considerados mediante
ecuaciones, también las relaciones entre ellos.
Tras esto se realizó un estudio de la instalación objeto del problema y se recopilaron los
datos característicos de los equipos, además se realizaron tres escenarios de demanda
basándose en los elementos de consumo existentes en el edificio y también se
aproximaron los costes fijos y variables que cada equipo genera.
Se propuso entonces resolver el problema mediante la utilización de una metaheurística
basada en poblaciones, en concreto el algoritmo PSO. Al estar las partículas definidas por
matrices, se hace una particularización de este algoritmo para el problema que se busca
resolver. Por ello se diseñan dos algoritmos adaptados al problema que presentan
diferencias en el movimiento de las partículas, uno escoge el nuevo orden que tendrá la
partícula basándose en ponderaciones dadas a cada componente que caracteriza el
movimiento y el otro para llegar al nuevo orden realiza permutaciones en el antiguo
según unos parámetros. La resolución del problema mediante la aplicación el algoritmo
por enjambre de partículas ha resultado ser una buena opción, ya que, a pesar de la
limitación de tiempo de ejecución existente el algoritmo ha ofrecido consignas óptimas
o muy cercanas. Se demuestra mediante las comparaciones realizadas en el apartado 10.
Comparación y análisis de resultados, que el algoritmo PSO adaptado al problema que se
propone consigue generar resultados óptimos suponiendo un ahorro con respecto a la
configuración realizada manualmente, pudiendo este ahorro aumentar progresivamente
con el número de equipos. Se concluye también que el [ALG1] basado en ponderaciones
ofrece mejores resultados que el [ALG2].
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
118
El optimizador supone una ventaja para las instalaciones de generación energética
distribuida, como ya se ha comentado anteriormente, ya que al ejecutarse de manera
automática las consignas se recalculan cada 15 minutos, adaptándose a las características
del sistema pudiéndose dar el caso de que no actúe según lo planificado. De esta manera
se dispone de una planificación óptima casi a tiempo real.
Como se ha visto anteriormente el tiempo disponible de ejecución es un parámetro
limitante, ya que, en ese tiempo el optimizador debe de ser capaz de ofrecer una solución
óptima y otros parámetros de diseño como son el tamaño de la nube o el número máximo
de iteraciones a realizar dependen en gran medida de ese valor. Pero al tratarse de un
software, no sólo influye el tiempo real sino también el lenguaje en el que se encuentra
programado el algoritmo, la eficiencia de los códigos y la máquina donde se ejecute, por
lo que, si se usara otra herramienta de diseño mejor que MatLab, la usada en este
proyecto, y se pudiera disponer de una máquina con mayor potencia de procesado, los
resultados mejorarían.
Centrado ahora las conclusiones en la instalación estudiada, los resultados de los
escenarios analizados determinan que, si se dispone de suministro eléctrico adecuado y
de una potencia contratada adaptada al consumo, el generador resulta en muchos casos
innecesario, ya que, el coste que supone es mayor. La utilización de este equipo implica
además inconvenientes como el ruido o la disponibilidad de suficiente combustible. Por
tanto, sólo resultaría de interés su uso en el caso de que la instalación estuviera en isla
por no disponer de conexión a la red eléctrica.
Para determinar el ahorro económico que supone contar con un sistema de generación
distribuida de energía eléctrica se calcula el coste que se produciría al satisfacer la
demanda sólo mediante el uso de la red eléctrica. El valor obtenido resulta ser 12 €, es
decir, un 125% superior al coste que implicaría generar la misma energía, pero mediante
un sistema distribuido formado por equipos renovables, generadores y almacenadores.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
119
12. Referencias
[1] J. Kennedy and R. Eberhart. A New Optimizer Using Particles Swarm Theory, 6th
International Symposium on Micro Machine and Human Science, Nayoga, Japan, 1995.
[2] J. Kennedy and R. Eberhart. Particle Swarm Optimization. Proceedings of the IEEE
International Conference on Neural Networks, Piscataway, NJ, USA, pages 1942-1948,
1995.
[3] J. Kennedy, R. Eberhart, and Y. Shi. Swarm Intelligence. Morgan Kaufmann
Publishers, USA, 2001.
[4] J. Kennedy. The particle swarm: Social adaptation of knowledge. IEEE International
Conference on Evolutionary Computation, pages 303–308, 1997.
[5] J. Kennedy and R. Eberhart. A Discrete Binary Version of the Particle Swarm
Algorithm. Proceedings of the IEEE International Conference on Systems, Man and
Cybernetics, volume 5, pages 4104-4109, 1997.
[6] M. Shahabadi, F. Bahrami, A. Marandi and F. Afshinmanesh. Boolean particle swarm
optimization and its application to the design of a dual-band dual-polarized planar
antenna. IEEE Congress on Evolutionary Computation, pages 3212–3218, 2006.
[7] MA. Khanesar, MA. Shoorehdeli, M. Teshnehlab. A Novel Binary Particle Swarm
Optimization. 18th Mediterranean Conference on Control and Automation, 2007.
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
120
[8] Red Eléctrica de España: “La demanda de energía eléctrica crece un 1.9% en el
2015”, disponible en: http://www.ree.es/es/sala-de-prensa/notas-de-
prensa/2015/12/la-demanda-de-energia-electrica-crece-un-1-9-en-el-2015
[9] Red Eléctrica de España: “Gestión de demanda”, disponible en:
http://www.ree.es/es/actividades/operacion-del-sistema-electrico/gestion-de-demanda
[10] Red Eléctrica de España: “Consumo doméstico mensual”, disponible en:
http://www.ree.es/sites/default/files/interactivos/como_consumimos_electricidad/com
o-varia-mi-consumo.html
[11] Red Eléctrica de España: “Demanda y producción en tiempo real”, disponible en:
http://www.ree.es/es/actividades/demanda-y-produccion-en-tiempo-real
[12] Agencia Andaluza de la Energía: “Energía eólica en Andalucía”, disponible en:
https://www.agenciaandaluzadelaenergia.es/ciudadania/renovables/energia-
eolica/eolica-andalucia
[13] Agencia Andaluza de la Energía: “Informe de infraestructuras energéticas
Andalucía”, disponible en:
https://www.agenciaandaluzadelaenergia.es/sites/default/files/informe_andaluz_miea_
2016_03_31.pdf
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
121
Anexo 1: Implementación en MatLab del algoritmo PSO
Para la programación del algoritmo se ha usado la herramienta MatLab, a continuación, se
presentan los códigos que definen el software.
1. PSO
a. [ALG1]: Algoritmo con estimación de la posición por ponderación de
disposiciones. tic;
[Nper,Tper,Npart,Iter_max,esc_dem,W,C1,pres_bat,pres_fotov,pres_g
ener,pres_grid,n_equipos,pot_bat_c,pot_bat_d,bat_alm_max,bat_alm_
min,Rend_bat_c,Rend_bat_d,bat_level_0,C_fix_bat,C_var_bat,C_arran
que_bat,pot_max_fotov,Rend_fotov,C_fix_fotov,C_var_fotov,C_arranq
ue_fotov,pot_gener,Rend_generador,C_fix_generador,C_arranque_gene
rador,C_nocturno,pot_max_contratada,C_fix_grid,IVA,Tasas,C_elect,
PCS,PCI,P_comb,demanda_dato,prevision,noche_dia,Coste_inad]=lectu
ra();
[pos_bat_d,pos_bat_c,pos_fotov,pos_gener,pos_grid]=pos_eq_matriz(
pres_bat,pres_fotov,pres_gener,pres_grid,n_equipos);
iter=1;
for i=1:1:Npart
mejor_coste_part(i)=10000000;
for k=1:1:n_equipos
for t=1:1:Nper
mejor_coste_eq_part(n_equipos*(i-1)+k,t)=0;
mejor_coste_per_part(i,t)=0;
end
end
end
mejor_coste_nube=10000000;
C2=1-C1-W;
if iter==1
W=0;
end
for i=1:1:Npart
for j=1:1:Nper
x=1;
while x<=n_equipos
orden_part_ant(n_equipos*(i-1)+x,j)=x;
x=x+1;
end
end
end
[Posicion,Consigna,Orden,Bateria,mejor_pos_part,mejor_orden_part,
mejor_consig_part,mejor_bateria_part,demanda]=nube_inicial(previs
ion,demanda_dato,pot_max_contratada,pot_bat_d,pot_bat_c,pot_gener
,bat_alm_max,bat_alm_min,bat_level_0,pres_bat,pres_fotov,pres_gen
er,pres_grid,pos_bat_d,pos_bat_c,pos_fotov,pos_gener,pos_grid,n_e
quipos,Tper,Npart,Nper);
a=toc;
tiempo=a;
while tiempo<=880
tic;
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
122
[Coste,coste_equipo,coste_periodo]=coste_part(Posicion,Consigna,P
CS,PCI,Rend_generador,C_var_bat,C_fix_bat,C_arranque_bat,C_fix_ge
nerador,C_arranque_generador,P_comb,C_var_fotov,C_fix_fotov,C_arr
anque_fotov,C_elect,C_fix_grid,C_nocturno,noche_dia,Coste_inad,de
manda,Tasas,IVA,pres_bat,pres_fotov,pres_gener,pres_grid,pos_bat_
d,pos_bat_c,pos_fotov,pos_gener,pos_grid,n_equipos,Nper,Npart);
[mejor_pos_part,mejor_coste_part,mejor_consig_part,mejor_orden_pa
rt,mejor_bateria_part,mejor_coste_eq_part,mejor_coste_per_part]=m
ejor_particula(Orden,Coste,Posicion,Consigna,Bateria,coste_equipo
,coste_periodo,mejor_coste_part,mejor_pos_part,mejor_consig_part,
mejor_orden_part,mejor_bateria_part,mejor_coste_eq_part,mejor_cos
te_per_part,Npart,Nper,iter,n_equipos);
[mejor_pos_nube,mejor_coste_nube,mejor_part_nube,mejor_consig_nub
e,mejor_orden_nube,mejor_bateria_nube,mejor_coste_eq_nube,mejor_c
oste_per_nube]=mejor_nube(mejor_coste_nube,mejor_pos_part,mejor_c
onsig_part,mejor_coste_part,mejor_orden_part,mejor_bateria_part,m
ejor_coste_eq_part,mejor_coste_per_part,Npart,Nper,n_equipos);
[Orden]=nuevo_orden(Orden,orden_part_ant,mejor_orden_part,mejor_o
rden_nube,W,C1,iter,Npart,Nper,n_equipos);
[Posicion,Consigna,Bateria,demanda]=consig_part(Orden,prevision,d
emanda_dato,pot_max_contratada,pot_bat_d,pot_bat_c,pot_gener,bat_
alm_max,bat_alm_min,bat_level_0,pres_bat,pres_fotov,pres_gener,pr
es_grid,pos_bat_d,pos_bat_c,pos_fotov,pos_gener,pos_grid,n_equipo
s,Tper,Npart,Nper);
for k=1:1:Npart
fitness(iter)=mejor_coste_nube;
end
b(iter)=toc;
tiempo=tiempo+b(iter);
iter=iter+1;
end
tic;
[salida]=escritura(mejor_consig_nube,mejor_coste_eq_nube,mejor_co
ste_per_nube,mejor_coste_nube,mejor_bateria_nube,pos_bat_c,pos_ba
t_d,pos_fotov,pos_gener,pos_grid,n_equipos,Nper);
d=toc;
tiempo=tiempo+d;
b. [ALG2]: Algoritmo con estimación de la velocidad por cambios de
posición en el orden de asignación tic; [Nper,Tper,Npart,Iter_max,esc_dem,W_max,W_min,P1,P2,Cambio_max,Ca
mbio_min,pres_bat,pres_fotov,pres_gener,pres_grid,n_equipos,pot_b
at_c,pot_bat_d,bat_alm_max,bat_alm_min,Rend_bat_c,Rend_bat_d,bat_
level_0,C_fix_bat,C_var_bat,C_arranque_bat,pot_max_fotov,Rend_fot
ov,C_fix_fotov,C_var_fotov,C_arranque_fotov,pot_gener,Rend_genera
dor,C_fix_generador,C_arranque_generador,C_nocturno,pot_max_contr
atada,C_fix_grid,IVA,Tasas,C_elect,PCS,PCI,P_comb,demanda_dato,pr
evision,noche_dia,Coste_inad]=lectura(); [pos_bat_d,pos_bat_c,pos_fotov,pos_gener,pos_grid]=pos_eq_matriz(
pres_bat,pres_fotov,pres_gener,pres_grid,n_equipos); iter=1; for i=1:1:Npart mejor_coste_part(i)=10000000; for k=1:1:n_equipos for t=1:1:Nper mejor_coste_eq_part(n_equipos*(i-1)+k,t)=0; mejor_coste_per_part(i,t)=0; end end
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
123
end mejor_coste_nube=10000000; Cambio_inicial=randi([Cambio_min,Cambio_max]); for i=1:1:Npart for j=1:1:Nper Cambio_anterior(i,j)=Cambio_inicial; end end
[Posicion,Consigna,Orden,Bateria,mejor_pos_part,mejor_orden_part,
mejor_consig_part,mejor_bateria_part,demanda]=nube_inicial(previs
ion,demanda_dato,pot_max_contratada,pot_bat_d,pot_bat_c,pot_gener
,bat_alm_max,bat_alm_min,bat_level_0,pres_bat,pres_fotov,pres_gen
er,pres_grid,pos_bat_d,pos_bat_c,pos_fotov,pos_gener,pos_grid,n_e
quipos,Tper,Npart,Nper); a=toc; tiempo=a;
while tiempo<=880
tic;
[Coste,coste_equipo,coste_periodo]=coste_part(Posicion,Cons
igna,PCS,PCI,Rend_generador,C_var_bat,C_fix_bat,C_arranque_
bat,C_fix_generador,C_arranque_generador,P_comb,C_var_fotov
,C_fix_fotov,C_arranque_fotov,C_elect,C_fix_grid,C_nocturno
,noche_dia,Coste_inad,demanda,Tasas,IVA,pres_bat,pres_fotov
,pres_gener,pres_grid,pos_bat_d,pos_bat_c,pos_fotov,pos_gen
er,pos_grid,n_equipos,Nper,Npart);
[mejor_pos_part,mejor_coste_part,mejor_consig_part,mejor_or
den_part,mejor_bateria_part,mejor_coste_eq_part,mejor_coste
_per_part]=mejor_particula(Orden,Coste,Posicion,Consigna,Ba
teria,coste_equipo,coste_periodo,mejor_coste_part,mejor_pos
_part,mejor_consig_part,mejor_orden_part,mejor_bateria_part
,mejor_coste_eq_part,mejor_coste_per_part,Npart,Nper,iter,n
_equipos);
[mejor_pos_nube,mejor_coste_nube,mejor_part_nube,mejor_cons
ig_nube,mejor_orden_nube,mejor_bateria_nube,mejor_coste_eq_
nube,mejor_coste_per_nube]=mejor_nube(mejor_coste_nube,mejo
r_pos_part,mejor_consig_part,mejor_coste_part,mejor_orden_p
art,mejor_bateria_part,mejor_coste_eq_part,mejor_coste_per_
part,Npart,Nper,n_equipos);
[Orden,Cambio_anterior]=nuevo_orden(Orden,Cambio_anterior,C
ambio_max,mejor_orden_part,mejor_orden_nube,W_max,W_min,P1,
P2,iter,Iter_max,Npart,Nper,n_equipos);
[Posicion,Consigna,Bateria,demanda]=consig_part(Orden,previ
sion,demanda_dato,pot_max_contratada,pot_bat_d,pot_bat_c,po
t_gener,bat_alm_max,bat_alm_min,bat_level_0,pres_bat,pres_f
otov,pres_gener,pres_grid,pos_bat_d,pos_bat_c,pos_fotov,pos
_gener,pos_grid,n_equipos,Tper,Npart,Nper); for k=1:1:Npart fitness(iter)=mejor_coste_nube; end b(iter)=toc; tiempo=tiempo+b(iter); iter=iter+1; end tic; [salida]=escritura(mejor_consig_nube,mejor_coste_eq_nube,mejor_co
ste_per_nube,mejor_coste_nube,mejor_bateria_nube,pos_bat_c,pos_ba
t_d,pos_fotov,pos_gener,pos_grid,n_equipos,Nper);
d=toc;
tiempo=tiempo+d;
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
124
2. Lectura function
[Nper,Tper,Npart,Iter_max,esc_dem,W_max,W_min,P1,P2,Cambio_max,Cambio_mi
n,pres_bat,pres_fotov,pres_gener,pres_grid,n_equipos,pot_bat_c,pot_bat_d
,bat_alm_max,bat_alm_min,Rend_bat_c,Rend_bat_d,bat_level_0,C_fix_bat,C_v
ar_bat,C_arranque_bat,pot_max_fotov,Rend_fotov,C_fix_fotov,C_var_fotov,C
_arranque_fotov,pot_gener,Rend_generador,C_fix_generador,C_arranque_gene
rador,C_nocturno,pot_max_contratada,C_fix_grid,IVA,Tasas,C_elect,PCS,PCI
,P_comb,demanda_dato,prevision,noche_dia,Coste_inad]=lectura()
datos=xlsread('ficheroentrada.xlsx');
%Datos algoritmo
Nper=datos(1,1);
Tper=datos(1,2);
Npart=datos(1,3);
Iter_max=datos(1,4);
esc_dem=datos(1,5);
W_max=datos(1,6);
W_min=datos(1,7);
P1=datos(1,8);
P2=datos(1,9);
Cambio_max=datos(1,10);
Cambio_min=datos(1,11);
%Equipos presentes
pres_bat=datos(2,1);
pres_fotov=datos(2,2);
pres_gener=datos(2,3);
pres_grid=datos(2,4);
n_equipos=pres_bat+pres_bat+pres_fotov+pres_gener+pres_grid;
%Datos de Baterias
pot_max_bat_c=datos(3,1);
pot_max_bat_d=datos(3,2);
bat_alm_nom=datos(3,3);
bat_alm_max=datos(3,4)*bat_alm_nom;
bat_alm_min=datos(3,5)*bat_alm_nom;
Rend_bat_c=datos(3,6);
Rend_bat_d=datos(3,7);
bat_level_0=datos(3,8);
C_fix_bat=datos(3,9)*Tper;
C_var_bat=datos(3,10);
C_arranque_bat=datos(3,11)*Tper;
pot_bat_c=pot_max_bat_c*Rend_bat_c;
pot_bat_d=pot_max_bat_d*Rend_bat_d;
%Datos de Fotovoltaica
pot_max_fotov=datos(4,1);
Rend_fotov=datos(4,2);
C_fix_fotov=datos(4,3)*Tper;
C_var_fotov=datos(4,4);
C_arranque_fotov=datos(4,5)*Tper;
%Datos de Generador
pot_max_gener=datos(5,1);
Rend_generador=datos(5,2);
C_fix_generador=datos(5,3)*Tper;
C_arranque_generador=datos(5,4)*Tper;
C_nocturno=datos(5,5)*Tper;
pot_gener=pot_max_gener*Rend_generador;
%Datos de Grid
pot_max_contratada=datos(6,1);
P_elect_per1=datos(6,2);
P_elect_per2=datos(6,3);
P_pot_contratada=datos(6,4);
P_alquiler=datos(6,5);
IVA=datos(6,6);
Tasas=datos(6,7);
C_fix_grid=P_pot_contratada*pot_max_contratada*Tper+P_alquiler*Tper;
%Datos de combustible
PCS=datos(7,1);
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
125
PCI=datos(7,2);
P_comb=datos(7,3);
%Datos de demanda
for t=1:1:Nper
demanda_esc1(t)=datos(8,t);
demanda_esc2(t)=datos(8,t+Nper);
demanda_esc3(t)=datos(8,t+2*Nper);
end
for t=1:1:Nper
if esc_dem==1
demanda_dato(t)=demanda_esc1(t);
end
if esc_dem==2
demanda_dato(t)=demanda_esc2(t);
end
if esc_dem==3
demanda_dato(t)=demanda_esc3(t);
end
end
%Periodo tarifario
for t=1:1:Nper
per_tarifa(t)=datos(9,t);
end
for t=1:1:Nper
if per_tarifa(t)==1
C_elect(t)=P_elect_per1;
else
C_elect(t)=P_elect_per2;
end
end
%Prevision solar
for t=1:1:Nper
prevision(t)=datos(10,t)*pot_max_fotov;
end
%Periodo noche/dia
for t=1:1:Nper
noche_dia(t)=datos(11,t);
end
%En caso de inadmisibilidad: Coste_inad=datos(12,1);
3. Posición matriz function
[pos_bat_d,pos_bat_c,pos_fotov,pos_gener,pos_grid]=pos_eq_matriz(pres_ba
t,pres_fotov,pres_gener,pres_grid,n_equipos)
presencia=[pres_bat pres_bat pres_fotov pres_gener pres_grid];
pos(1)=0;
pos(2)=0;
pos(3)=0;
pos(4)=0;
pos(5)=0;
r=randperm(n_equipos);
x=find(presencia==1);
for i=1:1:n_equipos
pos(x(i))=r(i);
end
pos_bat_d=pos(1);
pos_bat_c=pos(2);
pos_fotov=pos(3);
pos_gener=pos(4);
pos_grid=pos(5);
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
126
4. Nube inicial
function
[Posicion,Consigna,Orden,Bateria,mejor_pos_part,mejor_orden_part,mejor_c
onsig_part,mejor_bateria_part,demanda]=nube_inicial(prevision,demanda_da
to,pot_bat_d,pot_bat_c,pot_gener,pot_max_contratada,bat_alm_max,bat_alm_
min,bat_level_0,pres_bat,pres_fotov,pres_gener,pres_grid,pos_bat_d,pos_b
at_c,pos_fotov,pos_gener,pos_grid,n_equipos,Tper,Npart,Nper)
carga_min=20;
for i=1:1:Npart
for t=1:1:Nper
Bateria(i,1)=bat_level_0;
%Inicializar todo a cero
bat_d(t)=0;
consig_bat_d(t)=0;
bat_c(t)=0;
consig_bat_c(t)=0;
fotov(t)=0;
consig_fotov(t)=0;
gener(t)=0;
consig_gener(t)=0;
grid(t)=0;
consig_grid(t)=0;
carga(t)=0;
demanda(i,t)=demanda_dato(t);
%Generar un orden
orden=randperm(n_equipos)';
%Primera asignacion
n1=find(orden==1);
demanda1=demanda_dato(t);
if pres_bat==1
if n1==pos_bat_d
bat_d(t)=1;
consig_bat_d(t)=pot_bat_d*Tper;
if (Bateria(i,t)-consig_bat_d(t))<bat_alm_min
consig_bat_d(t)=Bateria(i,t)-bat_alm_min;
end
if consig_bat_d(t)>demanda_dato(t)
consig_bat_d(t)=demanda_dato(t);
end
if Bateria(i,t)<=bat_alm_min
bat_d(t)=0;
consig_bat_d(t)=0;
end
Bateria(i,t+1)=Bateria(i,t)-consig_bat_d(t);
demanda1=demanda_dato(t)-consig_bat_d(t);
end
end
if pres_fotov==1
if n1==pos_fotov
if prevision(t)>0
fotov(t)=1;
consig_fotov(t)=prevision(t)*Tper;
demanda1=demanda_dato(t)-consig_fotov(t);
if consig_fotov(t)>demanda_dato(t)
carga(t)=consig_fotov(t)-demanda_dato(t);
demanda1=0;
end
end
end
end
if pres_gener==1
if n1==pos_gener
gener(t)=1;
consig_gener(t)=pot_gener*Tper;
if consig_gener(t)>demanda_dato(t)
consig_gener(t)=demanda_dato(t);
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
127
end
demanda1=demanda_dato(t)-consig_gener(t);
end
end
if pres_grid==1
if n1==pos_grid
grid(t)=1;
consig_grid(t)=pot_max_contratada*Tper;
if consig_grid(t)>demanda_dato(t)
consig_grid(t)=demanda_dato(t);
end
demanda1=demanda_dato(t)-consig_grid(t);
end
end
demanda(i,t)=demanda1;
%Segunda asignacion
if n_equipos>=2
demanda2=demanda1;
if demanda1>0
n2=find(orden==2);
if pres_bat==1
if n2==pos_bat_d
bat_d(t)=1;
consig_bat_d(t)=pot_bat_d*Tper;
if (Bateria(i,t)-consig_bat_d(t))<bat_alm_min
consig_bat_d(t)=Bateria(i,t)-bat_alm_min;
end
if consig_bat_d(t)>demanda1
consig_bat_d(t)=demanda1;
end
if Bateria(i,t)<=bat_alm_min
bat_d(t)=0;
consig_bat_d(t)=0;
end
Bateria(i,t+1)=Bateria(i,t)-consig_bat_d(t);
demanda2=demanda1-consig_bat_d(t);
end
end
if pres_fotov==1
if n2==pos_fotov
if prevision(t)>0
fotov(t)=1;
consig_fotov(t)=prevision(t)*Tper;
demanda2=demanda1-consig_fotov(t);
if consig_fotov(t)>demanda1
carga(t)=consig_fotov(t)-demanda1;
demanda2=0;
end
end
end
end
if pres_gener==1
if n2==pos_gener
gener(t)=1;
consig_gener(t)=pot_gener*Tper;
if consig_gener(t)>demanda1
consig_gener(t)=demanda1;
end
demanda2=demanda1-consig_gener(t);
end
end
if pres_grid==1
if n2==pos_grid
grid(t)=1;
consig_grid(t)=pot_max_contratada*Tper;
if consig_grid(t)>demanda1
consig_grid(t)=demanda1;
end
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
128
demanda2=demanda1-consig_grid(t);
end
end
demanda(i,t)=demanda2;
%Tercera asignacion
if n_equipos>=3
demanda3=demanda2;
if demanda2>0
n3=find(orden==3);
if pres_bat==1
if n3==pos_bat_d
bat_d(t)=1;
consig_bat_d(t)=pot_bat_d*Tper;
if (Bateria(i,t)-consig_bat_d(t))<bat_alm_min
consig_bat_d(t)=Bateria(i,t)-bat_alm_min;
end
if consig_bat_d(t)>demanda2
consig_bat_d(t)=demanda2;
end
if Bateria(i,t)<=bat_alm_min
bat_d(t)=0;
consig_bat_d(t)=0;
end
Bateria(i,t+1)=Bateria(i,t)-consig_bat_d(t);
demanda3=demanda2-consig_bat_d(t);
end
end
if pres_fotov==1
if n3==pos_fotov
if prevision(t)>0
fotov(t)=1;
consig_fotov(t)=prevision(t)*Tper;
demanda3=demanda2-consig_fotov(t);
if consig_fotov(t)>demanda2
carga(t)=consig_fotov(t)-demanda2;
demanda3=0;
end
end
end
end
if pres_gener==1
if n3==pos_gener
gener(t)=1;
consig_gener(t)=pot_gener*Tper;
if consig_gener(t)>demanda2
consig_gener(t)=demanda2;
end
demanda3=demanda2-consig_gener(t);
end
end
if pres_grid==1
if n3==pos_grid
grid(t)=1;
consig_grid(t)=pot_max_contratada*Tper;
if consig_grid(t)>demanda2
consig_grid(t)=demanda2;
end
demanda3=demanda2-consig_grid(t);
end
end
demanda(i,t)=demanda3;
%Cuarta asignacion
if n_equipos>=4
demanda4=demanda3;
if demanda3>0
n4=find(orden==4);
if pres_bat==1
if n4==pos_bat_d
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
129
bat_d(t)=1;
consig_bat_d(t)=pot_bat_d*Tper;
if (Bateria(i,t)-
consig_bat_d(t))<bat_alm_min
consig_bat_d(t)=Bateria(i,t)-
bat_alm_min;
end
if consig_bat_d(t)>demanda3
consig_bat_d(t)=demanda3;
end
if Bateria(i,t)<=bat_alm_min
bat_d(t)=0;
consig_bat_d(t)=0;
end
Bateria(i,t+1)=Bateria(i,t)-consig_bat_d(t);
demanda4=demanda3-consig_bat_d(t);
end
end
if pres_fotov==1
if n4==pos_fotov
if prevision(t)>0
fotov(t)=1;
consig_fotov(t)=prevision(t)*Tper;
demanda4=demanda3-consig_fotov(t);
if consig_fotov(t)>demanda3
carga(t)=consig_fotov(t)-demanda3;
demanda4=0;
end
end
end
end
if pres_gener==1
if n4==pos_gener
gener(t)=1;
consig_gener(t)=pot_gener*Tper;
if consig_gener(t)>demanda3
consig_gener(t)=demanda3;
end
demanda4=demanda3-consig_gener(t);
end
end
if pres_grid==1
if n4==pos_grid
grid(t)=1;
consig_grid(t)=pot_max_contratada*Tper;
if consig_grid(t)>demanda3
consig_grid(t)=demanda3;
end
demanda4=demanda3-consig_grid(t);
end
end
demanda(i,t)=demanda4;
%Quinta asignacion
if n_equipos>=5
demanda5=demanda4;
if demanda4>0
n5=find(orden==5);
if pres_bat==1
if n5==pos_bat_d
bat_d(t)=1;
consig_bat_d(t)=pot_bat_d*Tper;
if (Bateria(i,t)-
consig_bat_d(t))<bat_alm_min
consig_bat_d(t)=Bateria(i,t)-
bat_alm_min;
end
if consig_bat_d(t)>demanda4
consig_bat_d(t)=demanda4;
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
130
end
if Bateria(i,t)<=bat_alm_min
bat_d(t)=0;
consig_bat_d(t)=0;
end
Bateria(i,t+1)=Bateria(i,t)-
consig_bat_d(t);
demanda5=demanda4-consig_bat_d(t);
end
end
if pres_fotov==1
if n5==pos_fotov
if prevision(t)>0
fotov(t)=1;
consig_fotov(t)=prevision(t)*Tper;
demanda5=demanda4-consig_fotov(t);
if consig_fotov(t)>demanda4
carga(t)=consig_fotov(t)-demanda4;
demanda5=0;
end
end
end
end
if pres_gener==1
if n5==pos_gener
gener(t)=1;
consig_gener(t)=pot_gener*Tper;
if consig_gener(t)>demanda4
consig_gener(t)=demanda4;
end
demanda5=demanda4-consig_gener(t);
end
end
if pres_grid==1
if n5==pos_grid
grid(t)=1;
consig_grid(t)=pot_max_contratada*Tper;
if consig_grid(t)>demanda4
consig_grid(t)=demanda4;
end
demanda5=demanda4-consig_grid(t);
end
end
demanda(i,t)=demanda5;
end
end
end
end
end
end
end
end
if pres_bat==1 && pres_fotov+pres_gener+pres_grid>0 &&
bat_d(t)==0
if (orden(pos_bat_c)==n_equipos && carga(t)==0) ||
Bateria(i,t)>=bat_alm_max
bat_c(t)=0;
consig_bat_c(t)=0;
end
if carga(t)==0 && pres_grid+pres_gener>0 &&
Bateria(i,t)<=carga_min
bat_c(t)=1;
consig_bat_c(t)=rand*pot_bat_c*Tper;
if (Bateria(i,t)+consig_bat_c(t))>bat_alm_max
consig_bat_c(t)=bat_alm_max-Bateria(i,t);
end
if pres_grid+pres_gener==2
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
131
if orden(pos_gener)<orden(pos_grid) ||
consig_grid(t)==pot_max_contratada*Tper
gener(t)=1;
consig_gener(t)=consig_gener(t)+consig_bat_c(t);
else
grid(t)=1;
consig_grid(t)=consig_grid(t)+consig_bat_c(t);
if consig_grid(t)>(pot_max_contratada*Tper)
consig_bat_c(t)=(pot_max_contratada*Tper)-
(consig_grid(t)-consig_bat_c(t));
consig_grid(t)=pot_max_contratada*Tper;
end
if (Bateria(i,t)+consig_bat_c(t))>bat_alm_max
consig_grid(t)=consig_grid(t)-
consig_bat_c(t);
consig_bat_c(t)=bat_alm_max-Bateria(i,t);
consig_grid(t)=consig_grid(t)+consig_bat_c(t);
end
end
elseif pres_grid==1
if consig_grid(t)==(pot_max_contratada*Tper)
bat_c(t)=0;
consig_bat_c(t)=0;
else
grid(t)=1;
consig_grid(t)=consig_grid(t)+consig_bat_c(t);
if consig_grid(t)>(pot_max_contratada*Tper)
consig_bat_c(t)=(pot_max_contratada*Tper)-
(consig_grid(t)-consig_bat_c(t));
consig_grid(t)=pot_max_contratada*Tper;
end
if (Bateria(i,t)+consig_bat_c(t))>bat_alm_max
consig_grid(t)=consig_grid(t)-
consig_bat_c(t);
consig_bat_c(t)=bat_alm_max-Bateria(i,t);
consig_grid(t)=consig_grid(t)+consig_bat_c(t);
end
end
elseif pres_gener==1
gener(t)=1;
consig_gener(t)=consig_gener(t)+consig_bat_c(t);
end
end
if carga(t)>0
bat_c(t)=1;
consig_bat_c(t)=carga(t);
if (Bateria(i,t)+consig_bat_c(t))>bat_alm_max
consig_bat_c(t)=bat_alm_max-Bateria(i,t);
end
end
Bateria(i,t+1)=Bateria(i,t)+consig_bat_c(t);
end
Bateria(i,t+1)=Bateria(i,t)-consig_bat_d(t)+consig_bat_c(t);
if bat_c(t)+bat_d(t)==0
Bateria(i,t+1)=Bateria(i,t);
end
for k=1:1:n_equipos
matriz_orden(k,t)=orden(k);
end
if pres_bat==1
matriz_config(pos_bat_d,t)=bat_d(t);
matriz_config(pos_bat_c,t)=bat_c(t);
matriz_consig(pos_bat_d,t)=consig_bat_d(t);
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
132
matriz_consig(pos_bat_c,t)=consig_bat_c(t);
end
if pres_fotov==1
matriz_config(pos_fotov,t)=fotov(t);
matriz_consig(pos_fotov,t)=consig_fotov(t);
end
if pres_gener==1
matriz_config(pos_gener,t)=gener(t);
matriz_consig(pos_gener,t)=consig_gener(t);
end
if pres_grid==1
matriz_config(pos_grid,t)=grid(t);
matriz_consig(pos_grid,t)=consig_grid(t);
end
for k=1:1:n_equipos
Posicion(n_equipos*(i-1)+k,t)=matriz_config(k,t);
Consigna(n_equipos*(i-1)+k,t)=matriz_consig(k,t);
Orden(n_equipos*(i-1)+k,t)=matriz_orden(k,t);
end
end
end
for i=1:1:Npart
for k=1:1:n_equipos
for t=1:1:Nper
mejor_pos_part(n_equipos*(i-
1)+k,t)=Posicion(n_equipos*(i-1)+k,t);
mejor_consig_part(n_equipos*(i-
1)+k,t)=Consigna(n_equipos*(i-1)+k,t);
mejor_orden_part(n_equipos*(i-1)+k,t)=Orden(n_equipos*(i-
1)+k,t);
mejor_bateria_part(i,t)=Bateria(i,t+1);
end
end
end
5. Costes partícula function
[Coste,coste_equipo,coste_periodo]=coste_part(Posicion,Consigna,PCS,PCI,
Rend_generador,C_var_bat,C_fix_bat,C_arranque_bat,C_fix_generador,C_arra
nque_generador,P_comb,C_var_fotov,C_fix_fotov,C_arranque_fotov,C_elect,C
_fix_grid,C_nocturno,noche_dia,Coste_inad,demanda,Tasas,IVA,pres_bat,pre
s_fotov,pres_gener,pres_grid,pos_bat_d,pos_bat_c,pos_fotov,pos_gener,pos
_grid,n_equipos,Nper,Npart)
for k=1:1:Npart
for t=1:1:Nper
if pres_bat==1
Delta_bat(1)=Posicion(n_equipos*(k-1)+pos_bat_d,Nper)+
+Posicion(n_equipos*(k-1)+pos_bat_c,Nper);
Delta_bat(t+1)=Posicion(n_equipos*(k-1)+pos_bat_d,t)+
+Posicion(n_equipos*(k-1)+pos_bat_c,t);
if Delta_bat(t)+Delta_bat(t+1)==1
a_bat=1;
else
a_bat=0;
end
Coste_bateria(t)=C_var_bat*(Consigna(n_equipos*(k-
1)+pos_bat_d,t)+
+Consigna(n_equipos*(k-
1)+pos_bat_c,t))+C_fix_bat*Delta_bat(t+1)+
+C_arranque_bat*a_bat;
else
Coste_bateria(t)=0;
end
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
133
if pres_fotov==1
Delta_fotov(1)=Posicion(n_equipos*(k-1)+pos_fotov,Nper);
Delta_fotov(t+1)=Posicion(n_equipos*(k-1)+pos_fotov,t);
if Delta_fotov(t)+Delta_fotov(t+1)==1
a_fotov=1;
else
a_fotov=0;
end
Coste_fotovoltaica(t)=C_var_fotov*Consigna(n_equipos*(k-
1)+pos_fotov,t)+
+C_fix_fotov*Delta_fotov(t+1)+C_arranque_fotov*a_fotov;
else
Coste_fotovoltaica(t)=0;
end
if pres_gener==1
Delta_generador(1)=Posicion(n_equipos*(k-1)+pos_gener,Nper);
Delta_generador(t+1)=Posicion(n_equipos*(k-1)+pos_gener,t);
if Delta_generador(t)+Delta_generador(t+1)==1
a_generador=1;
else
a_generador=0;
end
Generador_cons(t)=(PCS*Consigna(n_equipos*(k-
1)+pos_gener,t))/
/(PCI*Rend_generador);
Coste_generador(t)=C_fix_generador*Delta_generador(t+1)+
+C_arranque_generador*a_generador+Generador_cons(t)*P_comb+
+C_nocturno*noche_dia(t)*Delta_generador(t+1);
else
Coste_generador(t)=0;
end
if pres_grid==1
Coste_grid(t)=(C_elect(t)*Consigna(n_equipos*(k-1)+pos_grid,t)+
+C_fix_grid)*(1+Tasas+IVA);
else
Coste_grid(t)=0;
end
Coste_part_periodo(t)=Coste_bateria(t)+Coste_fotovoltaica(t)+
+Coste_generador(t)+Coste_grid(t)+Coste_inad*demanda(k,t);
end
for j=1:1:Nper
coste_periodo(k,j)=Coste_part_periodo(j);
if pres_bat==1
coste_equipo(n_equipos*(k-1)+pos_bat_d,j)=Coste_bateria(j);
coste_equipo(n_equipos*(k-1)+pos_bat_c,j)=Coste_bateria(j);
end
if pres_fotov==1
coste_equipo(n_equipos*(k-1)+pos_fotov,j)=Coste_fotovoltaica(j);
end
if pres_gener==1
coste_equipo(n_equipos*(k-1)+pos_gener,j)=Coste_generador(j);
end
if pres_grid==1
coste_equipo(n_equipos*(k-1)+pos_grid,j)=Coste_grid(j);
end
end
end
Coste=sum(coste_periodo,2);
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
134
6. Mejor partícula function
[mejor_pos_part,mejor_coste_part,mejor_consig_part,mejor_orden_part,mejo
r_bateria_part,mejor_coste_eq_part,mejor_coste_per_part]=mejor_particula
(Orden,Coste,Posicion,Consigna,Bateria,coste_equipo,coste_periodo,mejor_
coste_part,mejor_pos_part,mejor_consig_part,mejor_orden_part,mejor_bater
ia_part,mejor_coste_eq_part,mejor_coste_per_part,Npart,Nper,iter,n_equip
os)
if iter==1
for i=1:1:Npart
mejor_coste_part(i)=Coste(i);
for k=1:1:n_equipos
for t=1:1:Nper
mejor_coste_eq_part(n_equipos*(i-1)+k,t)=coste_equipo(n_equipos*(i-
1)+k,t);
mejor_coste_per_part(i,t)=coste_periodo(i,t);
end
end
end
end
if iter>1
for i=1:1:Npart
if Coste(i)<=mejor_coste_part(i)
mejor_coste_part(i)=Coste(i);
for k=1:1:n_equipos
for t=1:1:Nper
mejor_pos_part(n_equipos*(i-1)+k,t)=Posicion(n_equipos*(i-1)+k,t);
mejor_consig_part(n_equipos*(i-1)+k,t)=Consigna(n_equipos*(i-1)+k,t);
mejor_orden_part(n_equipos*(i-1)+k,t)=Orden(n_equipos*(i-1)+k,t);
mejor_bateria_part(i,t)=Bateria(i,t+1);
mejor_coste_eq_part(n_equipos*(i-1)+k,t)=coste_equipo(n_equipos*(i-
1)+k,t);
mejor_coste_per_part(i,t)=coste_periodo(i,t);
end
end
else
mejor_coste_part(i)=mejor_coste_part(i);
for k=1:1:n_equipos
for t=1:1:Nper
mejor_pos_part(n_equipos*(i-1)+k,t)=mejor_pos_part(n_equipos*(i-
1)+k,t);
mejor_consig_part(n_equipos*(i-1)+k,t)=mejor_consig_part(n_equipos*(i-1)+k,t);
mejor_orden_part(n_equipos*(i-1)+k,t)=mejor_orden_part(n_equipos*(i-1)+k,t);
mejor_bateria_part(i,t)=mejor_bateria_part(i,t);
mejor_coste_eq_part(n_equipos*(i-1)+k,t)=mejor_coste_eq_part(n_equipos*(i-
1)+k,t);
mejor_coste_per_part(i,t)=mejor_coste_per_part(i,t);
end
end
end
end
end
7. Mejor nube function
[mejor_pos_nube,mejor_coste_nube,mejor_part_nube,mejor_consig_nube,mejor
_orden_nube,mejor_bateria_nube,mejor_coste_eq_nube,mejor_coste_per_nube]
=mejor_nube(mejor_coste_nube,mejor_pos_part,mejor_consig_part,mejor_cost
e_part,mejor_orden_part,mejor_bateria_part,mejor_coste_eq_part,mejor_cos
te_per_part,Npart,Nper,n_equipos)
for i=1:1:Npart
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
135
if mejor_coste_part(i)<=mejor_coste_nube
mejor_coste_nube=mejor_coste_part(i);
mejor_part_nube=i;
end
end
for k=1:1:n_equipos
for t=1:1:Nper
mejor_pos_nube(k,t)=mejor_pos_part(n_equipos*(mejor_part_nube-1)+k,t);
mejor_consig_nube(k,t)=mejor_consig_part(n_equipos*(mejor_part_nube-1)+k,t);
mejor_orden_nube(k,t)=mejor_orden_part(n_equipos*(mejor_part_nube-1)+k,t);
mejor_bateria_nube(t)=mejor_bateria_part(mejor_part_nube,t);
mejor_coste_eq_nube(k,t)=mejor_coste_eq_part(n_equipos*(mejor_part_nube-
1)+k,t);
mejor_coste_per_nube(t)=mejor_coste_per_part(mejor_part_nube,t);
end
end
8. Nuevo orden
a. [ALG1] function
[Orden]=nuevo_orden(Orden,orden_part_ant,mejor_orden_part,mejor_o
rden_nube,W,C1,iter,Npart,Nper,n_equipos)
for i=1:1:Npart
for t=1:1:Nper
r1=randi([0,1]);
r2=randi([0,1]);
for k=1:1:n_equipos
termino1(k)=orden_part_ant(n_equipos*(i-1)+k,t);
if r1==1
termino2(k)=mejor_orden_part(n_equipos*(i-1)+k,t);
else
termino2(k)=Orden(n_equipos*(i-1)+k,t);
end
if r2==1
termino3(k)=mejor_orden_nube(k,t);
else
termino3(k)=Orden(n_equipos*(i-1)+k,t);
end
end
r=rand;
for k=1:1:n_equipos
orden_part_ant(n_equipos*(i-1)+k,t)=Orden(n_equipos*(i-
1)+k,t);
end
if r<=W
for k=1:1:n_equipos
Orden(n_equipos*(i-1)+k,t)=termino1(k);
end
end
if r>W && r<=(C1+W)
for k=1:1:n_equipos
Orden(n_equipos*(i-1)+k,t)=termino2(k);
end
end
if r>(C1+W)
for k=1:1:n_equipos
Orden(n_equipos*(i-1)+k,t)=termino3(k);
end
end
end
end
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
136
b. [ALG2] function[Orden,Cambio_anterior,Cambio]=nuevo_orden(Orden,Cambio_a
nterior,Cambio_max,mejor_orden_part,mejor_orden_nube,W_max,W_min,
P1,P2,iter,Iter_max,Npart,Nper,n_equipos)
W=W_max-(W_max-W_min)*iter/Iter_max;
for i=1:1:Npart
r1=rand;
r2=rand;
for t=1:1:Nper
distinto1(t)=0;
distinto2(t)=0;
end
for t=1:1:Nper
for k=1:1:n_equipos
if mejor_orden_part(n_equipos*(i-1)+k,t)~=Orden(n_equipos*(i-
1)+k,t)
distinto1(t)=distinto1(t)+1;
end
end
for k=1:1:n_equipos
if mejor_orden_nube(k,t)~=Orden(n_equipos*(i-1)+k,t)
distinto2(t)=distinto2(t)+1;
end
end
Cambio(i,t)=round(W*Cambio_anterior(i,t)+P1*r1*distinto1(t)+P2*r2*distinto2(t));
if Cambio(i,t)>Cambio_max
Cambio(i,t)=Cambio_max;
end
Cambio_anterior(i,t)=Cambio(i,t);
for k=1:1:n_equipos
orden_actual(k)=Orden(n_equipos*(i-1)+k,t);
end
for k=1:1:n_equipos
pos(k)=find(orden_actual==k);
end
c=Cambio(i,t);
while c>0
aleat1=randi([1,n_equipos]);
aleat2=randi([1,n_equipos]);
igual=1;
while igual==1
if aleat2==pos(aleat1)
aleat2=randi([1,n_equipos]);
igual=1;
else
igual=0;
end
end
j=find(pos==aleat2);
pos(j)=pos(aleat1);
pos(aleat1)=aleat2;
c=c-1;
end
for k=1:1:n_equipos
Orden(n_equipos*(i-1)+k,t)=pos(k);
end
end
end
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
137
9. Consignas Este código es muy similar al incluido en 4. Nube inicial, y también debido a su longitud, no se vuelve a incluir. La única variación que existe es la generación del orden de asignación.
10. Escritura
function
[salida]=escritura(mejor_consig_nube,mejor_coste_eq_nube,mejor_coste_per
_nube,mejor_coste_nube,mejor_bateria_nube,pres_bat,pres_fotov,pres_gener
,pres_grid,pos_bat_d,pos_bat_c,pos_fotov,pos_gener,pos_grid,n_equipos,Np
er)
for t=1:1:Nper
if pres_bat==1
%Consignas bat_c
salida(1,t)=mejor_consig_nube(pos_bat_c,t);
%Consignas bat_d
salida(2,t)=mejor_consig_nube(pos_bat_d,t);
else
salida(1,t)=0;
salida(2,t)=0;
end
if pres_fotov==1
%Consignas fotov
salida(3,t)=mejor_consig_nube(pos_fotov,t);
else
salida(3,t)=0;
end
if pres_gener==1
%Consignas gener
salida(4,t)=mejor_consig_nube(pos_gener,t);
else
salida(4,t)=0;
end
if pres_grid==1
%Consignas grid
salida(5,t)=mejor_consig_nube(pos_grid,t);
else
salida(5,t)=0;
end
if pres_bat==1
%Costes bat_c
salida(6,t)=mejor_coste_eq_nube(pos_bat_c,t);
%Costes bat_d
salida(7,t)=mejor_coste_eq_nube(pos_bat_d,t);
else
salida(6,t)=0;
salida(7,t)=0;
end
if pres_fotov==1
%Costes fotov
salida(8,t)=mejor_coste_eq_nube(pos_fotov,t);
else
salida(8,t)=0;
end
if pres_gener==1
%Costes gener
salida(9,t)=mejor_coste_eq_nube(pos_gener,t);
else
salida(9,t)=0;
end
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
138
if pres_grid==1
%Costes grid
salida(10,t)=mejor_coste_eq_nube(pos_grid,t);
else
salida(10,t)=0;
end
%Costes por periodo
salida(11,t)=mejor_coste_per_nube(t);
%Nivel de bateria
salida(12,t)=mejor_bateria_nube(t);
end
%Coste total
salida(13,1)=mejor_coste_nube;
xlswrite('ficherosalida2.xlsx',salida);
Anexo 2: Descripción del fichero de entrada
Para realizar la recogida de datos de entrada al optimizador se genera un fichero el cual
se encuentra ordenado por filas siendo cada una un apartado de los que se señalarán a
continuación y cada valor de la fila un subapartado de este:
Fila 1: Datos relativos al algoritmo
- Número de periodos: 10 / 96
- Duración del periodo (horas): 2.4 / 0.25
- Tamaño máximo de la nube: 10
- Número de iteraciones máximas: 100
- Escenario de demanda: 1/2/3
- [ALG1]:
- Factor de inercia W: 0.1
- Peso C1: 0.5
- [ALG2]:
- W máximo: 2
- W mínimo: 0.1
- P1: 2
- P2: 1
- Cambio máximo: 10
- Cambio mínimo: 0
Fila 2: Sistemas presentes en el escenario
Para indicar que el sistema en cuestión está presente se enumerará con un 1, o
con un 0 en caso contrario.
- Baterías
- Solar
- Generador
- Grid
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
139
Fila 3: Baterías
- Potencia carga máxima (kW): 10
- Potencia descarga máxima (kW): 10
- Capacidad de almacenamiento nominal (kWh): 58.56
- Capacidad de almacenamiento máxima respecto a nominal (%): 0.8
- Capacidad de almacenamiento mínima respecto a nominal (%): 0.2
- Rendimiento de carga (%): 0.75
- Rendimiento de descarga (%): 0.75
- Nivel de carga inicial (kWh): 26.35
- Coste fijo por periodo (€): 0.055*Tper
- Coste variable (€/kWh): 0.009
- Coste arranque (€ por cambio de estado): 0.011*Tper
Fila 4: Solar eléctrica
- Potencia máxima producible (kW): 6
- Rendimiento de producción (%): 0.85
- Coste fijo por periodo (€): 0.023*Tper
- Coste variable (€/kWh): 0.005
- Coste arranque (€ por cambio de estado): 0.006*Tper
Fila 5: Generador
- Potencia máxima producible (kW): 45
- Rendimiento de producción (%): 0.9
- Coste fijo por periodo (€): 0.23*Tper
- Coste arranque (€ por cambio de estado): 0.26*Tper
- Coste adicional por uso nocturno (€): 0.3*Tper
Fila 6: Grid
- Potencia máxima contratada(kW): 4.6
- Precio compra electricidad en periodo tarifario 1 (€/kWh): 0.16619
- Precio compra electricidad en periodo tarifario 2 (€/kWh): 0.080729
- Precio por potencia contratada(€/kWh): 0.0047864
- Precio alquiler equipos medida y control (€/h): 0.00110896
- IVA (%): 0.21
- Tasas (%): 0.05
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
140
Fila 7: Precio combustible generador
- PCS (kWh/L): 10.2
- PCI (kWh/L): 9.98
- Precio de la energía (€/kWh): 0.0454
Fila 8: Demanda eléctrica
Valor de la demanda eléctrica para cada uno de los periodos, dados en kWh.
1 2 3 4 5 6 7 8 9 10
Esc 1 0.75 0.75 0.75 0.75 0.75 6.15 6.15 0.75 0.75 0.75
Esc 2 1.95 1.44 3.24 2.31 4.5 8.8 10 4.1 4.28 5.94
Esc 3 3.16 2.18 5.78 3.52 5.83 9.91 13.3 5.1 6.52 8.56
Fila 9: Periodo tarifario
Periodo de facturación eléctrica para cada periodo temporal.
Siendo el periodo tarifario 1 el periodo punta y el 2 el periodo valle.
1 2 3 4 5 6 7 8 9 10
2 2 2 2 2 1 1 1 1 1
Fila 10: Previsión solar eléctrica
Energía máxima disponible para producir en cada periodo por las placas solares
fotovoltaicas.
1 2 3 4 5 6 7 8 9 10
0% 0% 0% 0% 30% 60% 90% 60% 30% 0%
0 0 0 0 1.8kWh 3.6kWh 5.4kWh 3.6kWh 1.8kWh 0
Fila 11: Día/noche
Periodos en los que se imputa un coste adicional al uso del generador por ser
horario nocturno para así evitar la generación de ruido. Siendo 1 la noche y 0 el
dia.
1 2 3 4 5 6 7 8 9 10
1 1 1 1 0 0 0 0 0 0
Fila 12: Inadmisibilidad
Coste de inadmisibilidad: 2 €
Optimización de sistemas de generación distribuida de energía eléctrica con almacenamiento para pequeños consumidores mediante algoritmos PSO
141
Anexo 3: Descripción del fichero de salida
Cuando el algoritmo llegue a una solución, los datos de ésta partícula óptima se volcarán
en otro fichero de las mismas características del de entrada. Se consideran sólo los
campos de la estructura de la partícula que aportan información al usuario.
Si el dato a volcar en la fila es un vector, se volcará cada valor del vector en la columna
correspondiente al periodo. En el caso de que uno de los equipos no se considere, la fila
correspondiente se encontrará a cero.
Fila 1: Consignas Batería Carga
Fila 2: Consignas Batería Descarga
Fila 3: Consignas Fotovoltaica
Fila 4: Consignas Generador
Fila 5: Consignas Grid
Fila 6: Costes Batería Carga
Fila 7: Costes Batería Descarga
Fila 8: Costes Fotovoltaica
Fila 9: Costes Generador
Fila 10: Costes Grid
Fila 11: Coste periodos
Fila 12: Coste Total
Fila 13: Nivel de Bateria