Trabajo Fin de Grado Grado en Ingeniería de Tecnologías...

153
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

Transcript of Trabajo Fin de Grado Grado en Ingeniería de Tecnologías...

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