Procedimiento para el diseño de instalaciones fotovoltaicas
OBJETO DE LA INVENCIÓN
La presente invención se refiere a un procedimiento para el diseño de instalaciones fotovoltaicas. En particular, se refiere a un procedimiento implementado por ordenador basado en un sistema inteligente de recomendación para el diseño de instalaciones fotovoltaicas destinadas a autoconsumo, proporcionando al interesado información respecto al tamaño del sistema fotovoltaico, así como la posición individualizada de cada uno de los módulos que conforman dicho sistema en función de una curva particular de consumo suministrada por el usuario.
ANTECEDENTES DE LA INVENCIÓN
El uso de energía solar para el suministro eléctrico es cada vez más habitual debido a consideraciones medioambientales y a cuestiones económicas.
Desde el punto de vista medioambiental, la energía solar obtenida mediante instalaciones fotovoltaicas se considera una energía verde, ya que es limpia y renovable.
Desde el punto de vista económico, el coste de la energía eléctrica es cada vez mayor, a la par que el precio de instalación de un sistema solar fotovoltaico resulta competitivo desde el punto de vista eléctrico. Esto se traduce en que producir energía solar para consumo de electricidad propio suele ser más económico que consumir de la red eléctrica, siempre que se optimice su diseño. Es por ello por lo que el uso de energía eléctrica obtenida mediante instalaciones fotovoltaicas es cada vez más atractivo para los consumidores particulares y para las empresas.
Sin embargo, el diseño de una instalación fotovoltaica optimizada que maximice el aprovechamiento de la electricidad producida no es sencillo, ya que hay muchos parámetros implicados, incluyendo los requisitos particulares de cada usuario, y requiere la participación de expertos.
DESCRIPCIÓN DE LOS DIBUJOS
Para complementar la descripción que se está realizando y con objeto de ayudar a una mejor omprensión de las características de la invención, de acuerdo con un ejemplo preferente de realización práctica de la misma, se acompaña como parte integrante de dicha descripción un juego de dibujos en donde, con carácter ilustrativo y no limitativo, se ha representado lo siguiente:
La figura 1 representa el esquema general de un algoritmo genérico generacional que es el núcleo del algoritmo que se describe;
La figura 2 representa en este caso un esquema general, pero para un algoritmo genérico estacionario;
La figura 3 muestra el diagrama de flujo del procedimiento implementado por ordenador basado en el sistema de recomendación inteligente, desde la introducción de datos hasta la salida de los mismos.
La figura 4 es un diagrama de funcionamiento del sistema implementado en un portal web para los usuarios que implementa el procedimiento de acuerdo con la presente invención.
DESCRIPCIÓN DE LA INVENCIÓN
En un primer aspecto, la presente invención describe un procedimiento para definir, conforme a un perfil de consumo determinado, las características de tamaño, orientación e inclinación de una instalación fotovoltaica, de forma que el diseño sea óptimo para minimizar el gasto en la compra de energía prevista.
Así, el objeto principal de la invención es un procedimiento para el diseño de instalaciones fotovoltaicas que comprende las siguientes etapas:
1) En primer lugar, se introduce por parte del usuario datos sobre la instalación fotovoltaica que se desea diseñar. Estos datos de instalación comprenden, al menos:
- latitud y longitud de la ubicación de la instalación fotovoltaica;
- potencia total de la instalación fotovoltaica;
- potencia de cada módulo fotovoltaico; y
- Curva de consumo, entendiendo como tal los datos de consumo eléctrico del usuario, diferenciado por unidad de tiempo.
De forma preferente, la curva de consumo estará formada por datos de consumo que contemplen el consumo diferenciado por horas para cada día de un periodo de tiempo superior a un día. De forma más preferente, el periodo analizado será superior a 30 días, más preferentemente superior a un año.
Es importante remarcar que, en esta etapa, en caso de que el interesado ya tenga una instalación fotovoltaica en su vivienda instalada previamente, será clave que introduzca la configuración actual de la misma para que el sistema inteligente sea capaz de optimizar la salida respecto a la configuración ya instalada para mejorar ésta, o incrementarla.
2) Se genera una población de instalaciones fotovoltáicas simuladas donde cada una de las instalaciones (individuos) que compone la población queda determinado por conjunto de módulos fotovoltaicos de forma que cada uno de esos módulos tiene un acimut y una inclinación determinadas.
Esta población cuenta con un número predeterminado de individuos. De forma preferente, la población cuenta con entre 10 y 15 individuos y más preferentemente con 10 individuos.
3) A continuación, se emplea un algoritmo evolutivo que es una metaheurística basada en poblaciones. Este algoritmo evolutivo podrá ser un modelo estacionario o un modelo generacional.
Para el diseño del algoritmo evolutivo se define una función objetivo que consiste en minimizar el gasto en la compra de energía de la vivienda considerando su curva de consumo estimada, la producción de energía y los excedentes generados. El objetivo de este algoritmo es encontrar el individuo que minimiza el gasto eléctrico del usuario.
La curva de consumo estimada es una estimación del consumo futuro del usuario y se genera a partir de la curva de consumo introducida en la primera etapa. Preferentemente, esta curva de consumo estimada será igual a la curva introducida, sin perjuicio de introducir factores de corrección como pueden ser las estimaciones correspondientes a la sustitución de los medios de calefacción/refrigeración.
En una realización particular, la función de optimización se calcula para una ventana de un año considerando como estimación la curva de consumo introducida en el primer paso.
En este caso, se suma para todas las horas del año:
1. Si (Energía consumida > energía producida)
(Energía consumida - energía producida) * precio energía
2. Sino
0 - (Energía producida - energía consumida) * precio energía excedentaria
Es importante indicar que en los cálculos del algoritmo nunca se podrán obtener valores negativos en el acumulado de un mes ya que en ese caso se le asigna 0 al mes.
El algoritmo evoluciona mediante un esquema generacional (Figura 1) o esquema estacionario (Figura 2) según lo seleccionado previamente por el usuario. En la evolución el algoritmo emplea mecanismos propios de selección, recombinación y reemplazo.
La recombinación consiste en el intercambio de información o módulos fotovoltaicos entre dos individuos, además de la modificación (mutación) de la inclinación y/o el acimut de cada módulo de un individuo. Por último, el reemplazo del mejor individuo de cada generación por el peor de la nueva generación para no perder nunca el mejor durante el proceso evolutivo.
4) Se ejecuta el algoritmo de forma cíclica (iterativa) durante un número predeterminado de generaciones. El número de generaciones esté comprendido preferentemente entre 50 y 100, siendo más preferente fijar este número en 100 generaciones ya que a partir de ese momento el consumo de recursos de cálculo no mejora significativamente el diseño alcanzando.
Dentro de esta etapa (al igual que de cualquier metaheurística) el elemento de evaluación es clave pues nos permite saber cómo de buena es una solución y así adaptarse mejor durante el proceso evolutivo al problema. En este algoritmo cada individuo incorpora una función de evaluación (indicada previamente) que analiza la generación de energía de la combinación de módulos fotovoltaicos del individuo respecto a la curva de consumo de energía del usuario, además del gasto total de la instalación. Todos estos valores nos permiten saber la bondad de una solución o individuo.
5) Al final del proceso evolutivo se obtiene la solución óptima donde el mejor individuo (solución) se presenta por parte del sistema al usuario.
La solución detalla la configuración completa de todos los módulos fotovoltaicos para la mejor solución en función de la energía eléctrica fotovoltaica producida, la energía consumida por el usuario y el gasto calculado, es decir, se proporciona como salida del procedimiento el conjunto completo de módulos de una potencia determinada, y para cada uno de ellos, el acimut y la inclinación que nos darían los resultados presentados.
Implementación del procedimiento para el diseño de instalaciones fotovoltaicas
En otro aspecto, esta invención se refiere a los programas de ordenador que comprenden instrucciones para hacer que un ordenador lleve a cabo el procedimiento para el diseño de instalaciones fotovoltaicas descrito previamente.
La invención abarca programas de ordenador que pueden estar en forma de código fuente, de código objeto o en un código intermedio entre código fuente y código objeto, tal como en forma parcialmente compilada, o en cualquier otra forma adecuada para usar en la implementación de los procesos de acuerdo con la invención. En particular, los programas de ordenador también abarcan aplicaciones en la nube que implementen alguno de los procedimientos de la invención.
Estos programas pueden estar dispuestos sobre o dentro de un soporte apto para su lectura, en adelante, "medio portador" o "portador". El medio portador puede ser cualquier entidad o dispositivo capaz de portar el programa. Cuando el programa va incorporado en una señal que puede ser transportada directamente por un cable u otro dispositivo o medio, el medio portador puede estar constituido por dicho cable u otro dispositivo o medio. Como variante, el medio portador podría ser un circuito integrado en el que va incluido el programa, estando el circuito integrado adaptado para ejecutar, o para ser utilizado en la ejecución de, los procesos correspondientes.
A modo de ejemplo, los programas podrían estar incorporados en un medio de almacenamiento, como una memoria ROM, una memoria CD o DVD ROM o una memoria ROM de semiconductor, una memoria USB, o un soporte de grabación magnética, por ejemplo, un disco flexible o un disco duro. Alternativamente, los programas podrían estar soportados en una señal portadora transmisible. Por ejemplo, podría tratarse de una señal eléctrica u óptica que podría transportarse a través de cable eléctrico u óptico, por radio o por cualesquiera otros medios.
En este sentido, otro objeto de la invención es un medio de almacenamiento legible por un ordenador que comprende instrucciones de programa capaces de hacer que un ordenador lleve a cabo el procedimiento para el diseño de instalaciones fotovoltaicas de la invención.
Finalmente, un último objeto de la invención se refiere a una señal transmisible que comprende instrucciones de programa capaces de hacer que un ordenador lleve a cabo el procedimiento para el diseño de instalaciones fotovoltaicas de la invención.
DESCRIPCIÓN DE UNA REALIZACIÓN PREFERIDA DE LA INVENCIÓN
El procedimiento implementado por ordenador que se reivindica en la presente invención se ha desarrollado mediante un sistema inteligente de recomendación, que preferentemente se integra en una aplicación web, permitiendo así al usuario una entrada de datos intuitiva y usable. Además, la aplicación posibilita la consulta de todas las simulaciones o experimentos que se han realizado a lo largo del tiempo sin necesidad de volver a repetirlas ya que aparecen con el nombre descriptivo introducido por el usuario
- Simulaciones
Se permiten también tres modalidades de simulación para darle al usuario más información respecto a la ejecución:
Modelo 1: Optimización con todos los módulos en una única orientación (acimut) e inclinación, Modelo 2: Optimización donde cada módulo puede variar su orientación e inclinación, y Modelo 3: Simulación de un conjunto de módulos especificados por el usuario.
- Tecnologías
Solamente a modo de ejemplo, en el procedimiento implementado por ordenador de acuerdo con la presente invención se usan las siguientes tecnologías y herramientas para su desarrollo, siendo las principales:
- DEAP ("Distributed Evolutionar y Algorithms in Python") : Marco de computación evolutiva usado en la creación de algoritmos.
- Djanjo: Marco web desarrollado en el lenguaje de programación Python. Usa el patrón MTV (modelo, plantilla y vista) .
- PostgreSQL: Base de datos relacional de código abierto, usada como sustituta de la base SQLite que trae por defecto Djanjo.
- Bootstrap: Marco de interfaz de usuario usado para dar estilo a la aplicación web de manera sencilla.
- Docker: Tecnología de creación de contenedores usada para aislar la aplicación y la base de datos de la máquina encargada de mantener el sistema.
- Datos de entrada: Se introducen los siguientes datos:
- latitud y longitud de la ubicación de la instalación fotovoltaica;
- potencia total de la instalación fotovoltaica;
- potencia de cada módulo fotovoltaico
- Curva de consumo
Respecto a los datos de entrada es importante destacar que la curva de consumo se introduce a través de un fichero CSV. Este fichero ha sido configurado de acuerdo con los requisitos impuestos por las empresas distribuidoras. Opcionalmente puede incluir el excedente fotovoltaico (kWh) , para mejorar su lectura, y cualquier campo adicional incluido en el fichero será ignorado por la aplicación. Entre los campos que debe de contener el fichero por línea tenemos:
- Fecha y hora de la lectura;
- Energía consumida durante la hora indicada (kWh) .
Para mejorar la optimización del diseño y la amortización de la instalación, el sistema adapta la curva de consumo a información relativa a un año para poder realizar los cálculos de amortizaciones correctamente, entre otros. La curva de consumo también puede presentar información sobre el excedente fotovoltaico vertido a la red, en caso de que el usuario posea ya posea una instalación fotovoltaica en su vivienda y así conocer posibles intereses para ampliar su instalación.
- Características del algoritmo
Por su parte, para la representación de un individuo, se ha implementado la clase "ConjuntoMódulos" y la clase "Módulo" para representar a los nuevos individuos. Un objeto de la clase "Módulo" posee dos atributos: acimut e inclinación.
La clase "ConjuntoMódulos" posee otros dos atributos: "potencia_módulos" y "módulos". El segundo atributo es una lista de objetos de la clase "Módulo". Además de estos dos atributos, un objeto de la clase "ConjuntoMódulos" es capaz de guardar valores relacionados con su evaluación (capacidad, potencia total producida por los módulos fotovoltaicos, energía comprada a la red, compensación, etc.) .
Esta clase proporciona a sus instancias procedimientos de ayuda para generar un diccionario con sus valores (usado en las plantillas de Djanjo) y una notación de objeto de JavaScript (JSON) con la información por día de su producción, autoconsumo del usuario, excedentes y compra de energía a la red entre otros.
Los operadores, parámetros y la condición de parada utilizados por el algoritmo de acuerdo con la presente invención son los siguientes:
- Selección por torneo binario: Implementación dada por DEAP, en el que solo ha sido necesario cambiar un valor de una función.
- Cruce 2-Puntos: Se ha mantenido como operador un cruce en dos puntos. Este cruce intercambia módulos entre dos individuos de la población. La probabilidad de cruce (cxpb) está predeterminada a 60 % y 100 % para el enfoque generacional y estacionario, respectivamente.
- Mutación: El operador de mutación está compuesto de dos mutaciones: Mutación global de un módulo o mutación parcial. En el primer caso, se cambiarán todos los parámetros del módulo (inclinación y acimut) a la hora de mutar. En el segundo, solo cambiará uno de los parámetros. La probabilidad de que mute de una forma u otra (o ninguna) viene dada por el usuario. Por defecto, ambos tipos de mutación se presenta una probabilidad del 1 %.
- Reemplazo con elitismo k=1: Este operador se aplica en el enfoque generacional. Para registrar el mejor individuo de cada población se ha usado el denominado "Salón de la Fama" (HoF) , implementado en DEAP y que será el encargado de guardar al mejor individuo de la anterior generación para sustituirlo por el peor de la población a la hora de reemplazar.
En el caso del enfoque estacionario no se emplea elitismo, sino que se realiza un reemplazo de los nuevos individuos por los peores de la anterior generación.
- Condición de parada generaciones: Se establece por defecto un número máximo de eneraciones como condición de parada con un valor de 100. Una generación se corresponde con un ciclo completo de evolución del algoritmo evolutivo.
- Tamaño de la población: El tamaño de la población se limita a 10 individuos.
- Tamaño de los individuos: A partir de la potencia de la instalación y de la potencia por módulo, se calcula el tamaño de la lista de módulos de los individuos mediante el redondeo de la relación:
N.° Módulos = potencia_total/potencia_módulo
La evaluación de un individuo se realiza de la siguiente manera:
1) Inicialización de variables auxiliares necesarias para la evaluación que tal y como se ha explicado previamente serán realizadas por el usuario y el propio sistema.
2) Obtención de configuraciones que se van a usar en la evaluación de un individuo concreto, a partir del diccionario que guarda todas las posibles (en caso de usar una interfaz de programación de aplicaciones) o a partir de una simulación con una librería de simulaciones fotovoltaicas.
3) Recorrido de la curva de consumo del usuario. Para cada línea de la curva de consumo: i. Obtener energía consumida de la línea.
ii. Obtener la sumatoria de la energía producida por cada módulo del sistema.
iii. Obtener el precio de la tarifa para la marca de tiempo que caracteriza a la línea que está siendo procesada.
4.a) Cálculo del gasto sin compensación para la línea tratada. El gasto sin compensación se calcula de la siguiente manera:
i) Si la energía producida es mayor o igual que la consumida, no se ha comprado energía a la red, por lo que solo se acumula el coste de producción de la energía.
ii) Si se ha necesitado comprar energía a la red, se calcula la diferencia entre la energía consumida y producida para multiplicarla por el precio del kWh obtenido.
4.b) Cálculo del gasto con compensación para la línea tratada:
i) Si la energía producida por el sistema solar es mayor o igual que la energía consumida, se obtiene un exceso de energía. Por lo tanto, la energía autoconsumida coincide con la energía consumida. Se valora el precio de esta energía al precio de la tarifa correspondiente con la fecha e la línea. La diferencia entre la energía producida y la consumida es el exceso fotovoltaico presente, que se valora al precio del kWh excedido correspondiente, extraído de la interfaz de programación de aplicaciones (API) del Sistema de Información del Operador del Sistema (ESIOS) .
ii) Si ocurre lo contrario, no hay excedente fotovoltaico, por lo que se ha tenido que comprar a la red una cantidad igual a la diferencia entre la energía consumida y la energía producida. La energía producida (que, en este caso, se corresponde con la autoconsumida) se valora con el precio de la tarifa.
iii) Si la línea se corresponde con el último día del mes o con la última línea del archivo, se realiza un balance para calcular así el descuento derivado de la compensación.
Si el gasto derivado de las compras a la red es mayor que el beneficio derivado de vender los excedentes de energía del mes, se realiza el descuento y se calcula su precio con impuestos. El valor de la evaluación con compensación es igual a la suma de este balance y el coste de la energía producida.
Si el beneficio sobrepasa el gasto, solo se suma el coste de la energía producida (descuento máximo) .
En su salida, el procedimiento de acuerdo con la presente invención presentará el experimento realizado con la configuración de módulos que ha encontrado óptima. La salida es una lista de módulos con su potencia, acimut e inclinación.
- Diagrama de flujo del sistema de recomendación
La figura 3 presenta a través de un diagrama de flujo las distintas etapas del procedimiento implementado por ordenador basado en un sistema de recomendación inteligente para el diseño del sistema fotovoltaico de acuerdo con la presente invención. En concreto, las etapas del procedimiento son las siguientes:
En primer lugar, se realiza la inicialización de los parámetros y variables con las que el procedimiento trabajará para la obtención del resultado óptimo de recomendación de la instalación de consumo fotovoltaico.
A continuación, se comienza la ejecución del algoritmo con la inicialización de los individuos de la población y del "salón de la fama" (HoF) , es decir, el mejor individuo de la población en la eneración inicial.
A continuación, se realiza una selección, denominada anteriormente como "torneo binario", y se obtienen dos individuos de la población.
Si "rand < cxpb" entonces se realiza el cruce en dos puntos, es decir, si un número pseudoaleatorio (rand) generado por el sistema en el intervalo [0, 1] es menor que la probabilidad de cruce (cxpb) entonces se intercambian módulos entre dos individuos. En caso contrario, ambos individuos seleccionados previamente se incorporan a la población de la siguiente generación. En el caso del modelo generacional este proceso se realiza hasta que se recorre toda la población, mientras que en el estacionario solo se realiza para dos individuos.
A continuación, si "rand < probmutl", entonces se muta un individuo de un primer tipo, es decir, se cambia la inclinación y el acimut del módulo fotovoltaico. En caso contrario, si "rand < probmut2", se muta un individuo en un segundo tipo, es decir, se cambia la inclinación o el acimut del módulo fotovoltaico. En este caso se generan dos números pseudoaleatorios (rand) y se comparan con los valores de probabilidad de mutación completa del módulo (probmut1) y probabilidad de mutación parcial del módulo (probmut2) . Al igual que en la etapa anterior, este proceso se realiza para toda la población en el generacional, mientras que en el estacionario solo para los dos individuos seleccionados y recombinados.
Se evalúa la nueva población donde cada individuo lleva asociado un fitness que en este caso sería la fórmula de optimización explicada previamente.
Se aplica el reemplazo. En el caso del generacional con elitismo k=1, es decir, para registrar el mejor individuo de cada población se usa el HoF, que guarda al mejor individuo de la anterior generación para sustituirlo por el peor de la población a la hora de reemplazar. Mientras que en el estacionario hay reemplazo de los dos individuos nuevos por los peores de la anterior generación.
Finalmente, se actualiza el HoF y se determina si se ha alcanzado el máximo de generaciones. En caso negativo, se repite el procedimiento procedimiento desde la etapa de selección (torneo binario) , y en caso positivo el procedimiento en procedimiento finaliza.
Se presenta el resultado del experimento realizado con la configuración de módulos que se ha encontrado como la óptima. La salida es una lista de módulos con su potencia, acimut e nclinación, así como una visualización de datos relacionados con la energía generada, energía comprada, energía autoconsumida, dinero ahorrado con el sistema fotovoltaico simulado y tiempo de amortización del mismo.