scieee AI-readable full text Open interactive document viewer

Repositorio Institucional de Documentos

Abstract

El análisis del rendimiento de las curvas de potencia de aerogeneradores requiere un filtrado y caracterización de las mismas. Este filtrado identifica aquellos valores de la curva de potencia en los que la producción es inferior a la esperada, permitiendo analizar el rendimiento y la definición de una curva media que la caracteriza. Los métodos estáticos de filtrado y caracterización actuales presentan, en general, limitaciones en cuanto a su adaptación al comportamiento real del aerogenerador analizado para las condiciones de trabajo existentes. Requieren de la intervención de un técnico cualificado que los supervise, lo que incluye un factor de subjetividad importante y además imposibilita la aplicación de dichos métodos de trabajo en una aplicación informática autónoma. El análisis de los métodos de trabajo actuales, de sus carencias y de los requisitos necesarios para su automatización, dan lugar a nuevos métodos dinámicos de filtrado. Estos nuevos métodos de filtrado deben ser eficientes y permitir un compromiso razonable entre los resultados obtenidos manualmente y los de los algoritmos que puedan automatizar el proceso de cálculo. Los métodos dinámicos de filtrado y caracterización de curvas de potencia permiten su adaptación al comportamiento real del aerogenerador para las condiciones de trabajo existentes. En ellos previamente se analiza un modelo que morfológicamente permite caracterizar a una curva de potencia de un aerogenerador (En este caso, Distribución Normal Acumulada de Gauss). A continuación se define la ecuación correspondiente a dicho modelo y se optimizan los parámetros que la definen con el fin de ajustar el modelo al comportamiento concreto de la máquina y periodo analizados. A continuación se definen los umbrales de filtrado de la curva de referencia y se estima el Rendimiento de la máquina, (función de mérito utilizada, muy sensible a la calidad del filtrado). Se comparan las estimaciones de la función de mérito para cada método comparándolo con un óptimo, el tratamiento manual de los datos por un técnico cualificado. Finalmente, se evalúan las desviaciones de cada método respecto al óptimo y analizan las ventajas e inconvenientes de cada uno. Con esto, se define un método de estimación del rendimiento de aerogeneradores que alcanza un equilibrio entre calidad, recursos necesarios y posibilidades de automatización del proceso Lázaro Gastón, Roberto; Melero Estela, Julio J.

Full text

RepositoriodelaUniversidaddeZaragoza–Zaguanhttp://zaguan.unizar.es     TrabajoFindeMáster    Modelosparaestimacióndecurvasdepotenciade referenciaaplicadasalanálisisdelrendimientode aerogeneradores   Autor/es  RobertoLázaroGastón   Director/es  JulioMeleroEstela   Facultad/Escuela  EINA  Año  2013  MODELOS PARA ESTIMACIÓN DE CURVAS DE POTENCIA DE REFERENCIA APLICADAS AL ANÁLISIS DEL RENDIMIENTO DE AEROGENERADORES Resumen El análisis del rendimiento de las curvas de potencia de aerogeneradores requiere un filtrado y caracterización de las mismas. Este filtrado identifica aquellos valores de la curva de potencia en los que la producción es inferior a la esperada, permitiendo analizar el rendimiento y la definición de una curva media que la caracteriza. Los métodos estáticos de filtrado y caracterización actuales presentan, en general, limitaciones en cuanto a su adaptación al comportamiento real del aerogenerador analizado para las condiciones de trabajo existentes. Requieren de la intervención de un técnico cualificado que los supervise, lo que incluye un factor de subjetividad importante y además imposibilita la aplicación de dichos métodos de trabajo en una aplicación informática autónoma. El análisis de los métodos de trabajo actuales, de sus carencias y de los requisitos necesarios para su automatización, dan lugar a nuevos métodos dinámicos de filtrado. Estos nuevos métodos de filtrado deben ser eficientes y permitir un compromiso razonable entre los resultados obtenidos manualmente y los de los algoritmos que puedan automatizar el proceso de cálculo. Los métodos dinámicos de filtrado y caracterización de curvas de potencia permiten su adaptación al comportamiento real del aerogenerador para las condiciones de trabajo existentes. En ellos previamente se analiza un modelo que morfológicamente permite caracterizar a una curva de potencia de un aerogenerador (En este caso, Distribución Normal Acumulada de Gauss). A continuación se define la ecuación correspondiente a dicho modelo y se optimizan los parámetros que la definen con el fin de ajustar el modelo al comportamiento concreto de la máquina y periodo analizados. A continuación se definen los umbrales de filtrado de la curva de referencia y se estima el Rendimiento de la máquina, (función de mérito utilizada, muy sensible a la calidad del filtrado). Se comparan las estimaciones de la función de mérito para cada método comparándolo con un óptimo, el tratamiento manual de los datos por un técnico cualificado. Finalmente, se evalúan las desviaciones de cada método respecto al óptimo y analizan las ventajas e inconvenientes de cada uno. Con esto, se define un método de estimación del rendimiento de aerogeneradores que alcanza un equilibrio entre calidad, recursos necesarios y posibilidades de automatización del proceso. Índice 2 INDICE: 1 INTRODUCCIÓN ................................................................................................................................... 3 1.1ANTECEDENTES .............................................................................................................................. 3  1.2OBJETIVO Y ALCANCE ..................................................................................................................... 4 2 SEGUIMIENTO DE PARQUES EÓLICOS ........................................................................................ 6 2.1 INFORMACIÓN DISPONIBLE ................................................................................................................. 8 2.1.1 SCADA ....................................................................................................................................... 8 2.1.2 Datos Necesarios ....................................................................................................................... 9 2.1.3 Curva de potencia ...................................................................................................................... 9 2.2 METODOLOGÍA DE TRABAJO EN LA EVALUACIÓN DEL RENDIMIENTO DE PARQUES EÓLICOS ........... 11 2.3 REFERENCIAS DE COMPORTAMIENTO ............................................................................................... 14 2.3.1 Referencias Estáticas ............................................................................................................... 14 2.3.2 Referencias dinámicas ............................................................................................................. 15 2.4 TRATAMIENTO Y FILTRADO DE DATOS ............................................................................................. 15 2.4.1 Filtrado estático. ...................................................................................................................... 16 2.4.2 Filtrado dinámico .................................................................................................................... 18 2.5 SÍNTESIS ........................................................................................................................................... 18 3 MODELO BASADO EN LA DISTRIBUCIÓN NORMAL ACUMULADA DE GAUSS .............. 19 3.1 DISTRIBUCIÓN NORMAL ACUMULADA DE GAUSS ............................................................................ 19 3.2 AJUSTE A LA CURVA DE POTENCIA .................................................................................................... 20 3.2.1 Parámetros de Gauss ............................................................................................................... 20 3.2.2 Función de análisis para el ajuste optimo de la curva ............................................................ 21 3.2.3 Proceso de Optimización ......................................................................................................... 21 3.3 FILTRADO DE LA CURVA ................................................................................................................... 23 3.3.1 Umbrales y Condición de filtrado ............................................................................................ 23 3.4 CONDICIONES ADICIONALES ............................................................................................................ 24 3.5 SÍNTESIS ........................................................................................................................................... 25 4 VALIDACIÓN DEL MÉTODO ........................................................................................................... 26 4.1 OBJETIVOS ........................................................................................................................................ 26 4.2 PRUEBAS REALIZADAS ...................................................................................................................... 26 4.2.1 Función de Mérito .................................................................................................................... 26 4.2.1 Casos Analizados ..................................................................................................................... 27 4.3 DESARROLLO DEL ALGORITMO ........................................................................................................ 27 4.4 RESULTADOS OBTENIDOS ................................................................................................................. 27 4.4.1 Desviación respecto a la referencia ......................................................................................... 27 4.4.2 Limitaciones ............................................................................................................................. 30 5 CONCLUSIONES ................................................................................................................................. 31 6 REFERENCIAS .................................................................................................................................... 34 ANEXO A. RESULTADOS OBTENIDOS PARA LOS PARQUES EÓLICOS DE EJEMPLO ....... 1 A.1 PARQUE EÓLICO 1.............................................................................................................................. 1  A.2 PARQUE EÓLICO 2.............................................................................................................................. 3  A.3 PARQUE EÓLICO 3.............................................................................................................................. 6  A.4 PARQUE EÓLICO 4.............................................................................................................................. 8  A.5 PARQUE EÓLICO 5.............................................................................................................................. 9  A.6 PARQUE EÓLICO 6............................................................................................................................ 11 ANEXO B. CÓDIGO DEL ALGORITMO .............................................................................................. 1 B.1 GAUSS_P ........................................................................................................................................... 1 B.2 INV_GAUSS_V ................................................................................................................................... 1 B.3 FERRORGAUSS ................................................................................................................................... 2 B.4 FAJUSTEGAUSS ................................................................................................................................. 4 B.5 FILTRASIGMABIN_GAUSS ................................................................................................................. 7 Introducción 3 1 Introducción 1.1 Antecedentes El presente proyecto se ha desarrollado en colaboración con el grupo AIRE de la Fundación CIRCE. Esta sección realiza los siguientes estudios técnicos: • Medición de curvas de potencia • Elaboración de bases de datos para el cálculo de curva de potencia de parque. • Seguimiento de la producción de parques eólicos. • Elaboración de estudios de evaluación de potencial eólico de un emplazamiento. • Estudios de Clase Este proyecto queda enmarcado dentro del ámbito de trabajo del Seguimiento de la producción de parques eólicos y cálculo de curvas de potencia de parque. En el marco socioeconómico actual, tras las sucesivas modificaciones de la legislación, el recorte de las primas y la madurez tecnológica alcanzada, la evaluación del rendimiento de los parques eólicos cobra una importancia aún más notable respecto a los escenarios de los últimos años. Ya que, la inversión para la promoción de nuevos parques eólicos ha quedado limitada notablemente y como consecuencia resulta necesario optimizar el rendimiento de las plantas en funcionamiento para maximizar los beneficios. El análisis de los datos disponibles en los sistemas de adquisición y supervisión de datos (SCADA) supone una fuente de información muy valiosa al alcance de los propietarios, a un coste relativamente bajo. Analizar la información de que se dispone no supone apenas inversión adicional. El análisis de los datos del SCADA se basa principalmente en la caracterización, estudio y tratamiento de las curvas de potencia definidas a partir de los datos diezminutales de velocidad de viento en la góndola y potencia almacenados [2]. Además de esta información básica, también se puede disponer de la siguiente información: • Periodos de alarma que indican el tipo de incidencia que ha desencadenado una parada en la máquina. • Datos meteorológicos de temperatura, presión y humedad. • Datos de temperatura de los componentes de la máquina, pitch, vibraciones… etc. El procesado de esta información da lugar al cálculo de las principales variables que permiten evaluar el funcionamiento de un parque eólico, disponibilidad, pérdidas energéticas y rendimiento principalmente. El tratamiento de las curvas de potencia de un aerogenerador implica un proceso de filtrado de los datos. Como se verá, este proceso queda íntimamente relacionado con la variable básica para evaluar el funcionamiento de un aerogenerador, el rendimiento anteriormente Introducción 4 mencionado, de modo que un adecuado filtrado de los datos supone un valor de rendimiento más preciso. Los métodos estadísticos automáticos actuales requieren de una revisión manual por parte de un técnico cualificado y en muchas ocasiones es necesario un proceso de filtrado totalmente manual que asegure la calidad de los datos y como consecuencia la estimación del rendimiento. Además del problema de filtrado, la definición de una adecuada referencia de comportamiento optimo de la máquina es un punto muy importante a tener en cuenta. Una adecuada referencia de comportamiento es necesaria para: • Definir en la curva de potencia los umbrales de filtrado que definan los periodos en los que la máquina registra una producción inferior a la considerada como esperada, disminuyendo su rendimiento. • Establecer una referencia para la estimación de las pérdidas energéticas por diferencia entre la producción registrada y la esperada para el recurso eólico registrado en ese instante. Dado que sobre la curva de potencia de un aerogenerador influyen múltiples factores, relacionados con el emplazamiento, operación de los sensores, fallos en los componentes…etc. La solución óptima pasa por definir un modelo de comportamiento particular para cada aerogenerador de estudio que sirva de referencia y permita estimar la potencia esperada. La definición de un modelo de comportamiento histórico para cada máquina de un parque eólico resulta una tarea tediosa, con un componente de subjetividad elevado en algunos casos y precisa de revisiones periódicas de los modelos promedio calculados en este caso. Por otro lado, las referencias fijas, como la curva de fabricante, no tienen en cuenta aspectos particulares de funcionamiento del aerogenerador y por tanto no son fieles al comportamiento real del mismo Por tanto una adecuada referencia es necesaria y debe adaptarse al comportamiento real de la máquina. Y este se ve influenciado por multitud de factores externos, que lo hacen alejarse, por ejemplo, de referencias estáticas como la del fabricante. 1.2 Objetivo y alcance Este proyecto nace de una necesidad real en el ámbito del análisis de rendimiento de aerogeneradores. La optimización y automatización del filtrado y caracterización de curvas de potencia de aerogeneradores y la problemática asociada al cálculo y selección de una curva de referencia adecuada. Para ello se analizan las limitaciones de los métodos actuales, se investigan nuevos métodos, se aplican a casos reales y se evalúa el comportamiento comparándolo con otros métodos actuales. Por tanto, el carácter investigador de este proyecto queda justificado, atendiendo además a una demanda real del mercado. Con las técnicas actuales, el filtrado de los datos de una flota considerable de aerogeneradores, de diferentes tecnologías, en diferentes emplazamientos, requiere disponer de unos recursos considerables y un personal cualificado que supervise casi cada una de las máquinas analizadas. Para finalmente obtener un valor de rendimiento preciso de cada una de Introducción 5 ellas. Esto supone un factor de subjetividad elevado y hace difícil su implantación en un proceso automático de evaluación de rendimiento. En este contexto, se pretende analizar un nuevo método para caracterizar las curvas de potencia a partir de los datos reales de velocidad de viento y potencia registradas en el SCADA en base diezminutal. Tomando como referencia principal para la estimación del modelo una función cuya morfología es similar a la curva de potencia de un aerogenerador (distribución normal acumulada de Gauss), se puede llegar a definir un modelo fiel al comportamiento real de la máquina a partir de los datos reales del SCADA. Este modelo se podría optimizar de modo automático ajustándose al comportamiento real de la máquina en un emplazamiento con sus condiciones particulares. Finalmente, esta solución podría implementarse en una aplicación autónoma, independiente del criterio del técnico, y muy eficaz para el filtrado y la estimación del rendimiento de aerogeneradores a partir de los datos de velocidad de viento en la góndola y potencia registrados en el SCADA Por tanto, los objetivos de este proyecto son: • Analizar las limitaciones de los métodos de caracterización y filtrado de curvas de aerogeneradores. • Estudiar el nuevo método de caracterización y filtrado. • Analizar los requerimientos de aplicación para la estimación del rendimiento • Estudiar la valía del modelo para ser aplicado en software autónomo para el análisis del rendimiento de parques eólicos que permita una mayor independencia del criterio del técnico y un menor coste de recursos e inversión. Seguimiento de Parques Eólicos 6 2 Seguimiento de Parques Eólicos En la actualidad, el uso del viento constituye una de las fuentes de energía con mayor impulso y atractivo, como lo demuestra el nivel de potencia instalada mundial en los últimos años. Figura 1 Potencia eólica mundial instalada hasta 2010. Fuente: GWEC. Durante las fases iniciales del desarrollo de un proyecto del parque eólico se presta una atención especial a las tareas de prospección del recurso, tramitación, financiación del proyecto y elección de la tecnología de aerogeneradores más adecuada al emplazamiento. Finalmente cuando el parque comienza a producir energía la operación y el mantenimiento de la instalación cobra un papel determinante. Llegado este momento el esfuerzo de los propietarios del parque se centra en optimizar la producción reduciendo los tiempos de parada de los aerogeneradores realizando un mantenimiento preventivo de los equipos o y correctivo en caso de avería. Debido a que se trata de una tecnología bastante reciente, los aerogeneradores son equipos donde la aplicación de un correcto plan de mantenimiento es un factor determinante para conseguir una vida larga y efectiva de los mismos y que asegure una alta disponibilidad. La energía eólica está viviendo en estos últimos años un crecimiento muy rápido, en el cual el seguimiento de los parques eólicos (desde una perspectiva de cumplimiento de garantías y de coste económico) debería ser prioritario. Por otra parte, las cambiantes condiciones de trabajo (climatológicas y de viento) que sufren los aerogeneradores conlleva que varíe de forma significativa su operación, hecho significativo de cara a la aplicación de un modelo de seguimiento de la producción que contemple de forma continua las condiciones de trabajo del aerogenerador así como su efecto real sobre el estado de cada uno de sus componentes. Por ello es recomendable verificar y cuantificar los parámetros más significativos desde la óptica de la explotación, como son cumplimientos de curvas de potencia, disponibilidades, pérdidas de energía, rendimiento etc [2]. A lo largo de todos estos años, en los que la energía eólica ha experimentado una rápida expansión en nuestro país, las aplicaciones para realizar un seguimiento de parques han estado vinculadas a los scadas específicos de la tecnología eólica implantada en cada emplazamiento, Seguimiento de Parques Eólicos 7 conllevando una serie de limitaciones para el promotor a la hora de evaluar los rendimientos de la instalación: • Programas enfocados a tecnólogos y empresas de mantenimiento con accesos restringidos y diferentes privilegios. • Elaboración de un número limitado de informes con desconocimiento por el promotor de la metodología utilizada y sin posibilidad de validar datos. • Aplicaciones no universales solamente vinculadas a cada fabricante de aerogeneradores. Hasta hace poco tiempo, los modelos de seguimiento de la producción aplicados a los aerogeneradores son de tipo periódico o preventivo; y basados principalmente en las acciones y periodos de mantenimiento recomendados por los fabricantes de los mismos. El principal inconveniente que posee este tipo de seguimiento es que suele fijarse para toda la vida de funcionamiento de un aerogenerador sin tener en cuenta la localización o las distintas condiciones de trabajo que soporta dicha máquina, como pueden ser las condiciones climatológicas y de viento, los esfuerzos soportados por sus distintos componentes, el número de horas que el aerogenerador está trabajando, etc. Es importante destacar que los aerogeneradores son máquinas con una tecnología avanzada de seguimiento y control y que, como consecuencia, se encuentran provistos de un gran número de sensores que permiten controlar la operación de los mismos de una forma automática y eficiente. La información recogida de forma automática y continua por los sensores puede ser usada para monitorizar el estado de los principales componentes del aerogenerador y a partir de dicha información realizar un modelo de seguimiento del funcionamiento del aerogenerador que tenga en cuenta las necesidades reales del aerogenerador. Por tanto, en este tipo de máquinas la aplicación de un modelo de seguimiento parece una muy buena opción para garantizar una alta disponibilidad de las mismas, ya que no es necesario realizar nuevas inversiones en sensores o en equipos de adquisición de datos (actuaciones que usualmente hay que realizar al aplicar planes de mantenimiento predictivo en componentes de otros procesos industriales). Conviene recordar las principales ventajas que conlleva el realizar este tipo de seguimiento: • Ahorro de costes de fallos y de indisponibilidades de no producción. • Los intervalos de mantenimiento suelen adaptarse mejor a la vida del equipo que los correspondientes a una estrategia de mantenimiento preventivo, en la cual se realizan acciones de mantenimiento tanto si son o no necesarias. Además, este tipo de mantenimiento evita realizar paradas o sustituciones innecesarias de componentes sanos así como averías inesperadas. • La protección de los equipos es más efectiva al tener en cuenta en cada momento el estado de los componentes para así poder evitar el fallo de los mismos. Esto permite optimizar la inversión realizada en mantenimiento. • Mejor tratamiento de la fiabilidad y seguridad de los equipos. Seguimiento de Parques Eólicos 8 2.1 Información disponible El control de un parque eólico requiere del registro de gran cantidad de datos y variables que definen el funcionamiento de cada uno de los componentes del parque. Del control de dichas variables, depende el correcto funcionamiento del parque eólico y de su estudio la evaluación del funcionamiento y la detección de fallos presentes y futuros. 2.1.1 SCADA Las siglas SCADA viene de su traducción en inglés “Supervisory Control and Data Adquisition”. En general un sistema SCADA se encarga de monitorizar, coordinar, operar y documentar un proceso industrial. Es una aplicación especialmente diseñada para llevar a cabo las operaciones de control, supervisión y registro de datos de cualquier proceso industrial gobernado por autómatas programables o redes de autómatas, a través de ordenador. Se debe entender que un sistema SCADA no se trata únicamente de una base de datos de gran tamaño (ACCESS, paradox… etc.). Un sistema SCADA abarca todos los dispositivos necesarios para cumplir las funciones antes mencionadas. Esto incluiría sistemas de comunicación, cableado, fibra óptica, multitud de sensores (temperatura, revoluciones, dirección de viento, velocidad de viento…) software específico de control y actuación, software de tratamiento de datos, protocolos de comunicación, clientes remotos…etc. Un SCADA debe ser capaz de realizar una serie de funciones y cumplir ciertos requisitos. Debe permitir la adquisición de datos de producción y de todas las variables deseadas y necesarias para evaluaciones posteriores. Debe permitir el almacenamiento masivo de todas las variables requeridas tanto en base de 10 minutos como instantáneas si se requiere. También debe informar de averías y alarmas y almacenarlas en una base de datos. El acceso a todos estos datos debería estar permitido en las estaciones de trabajo autorizadas, para la evaluación del tecnólogo cualificado. Del mismo modo debe permitir no sólo el acceso a los datos almacenados si no que también el sistema debe tener capacidad de operación con todos los sistemas conectados y de control remoto. Existen multitud de variables pero las más importantes serían la energía activa (P), la energía reactiva (Q), velocidad de viento, tiempo de contactor, estado, tipo de parada y alarmas. Toda esta información debe ser accesible y debe haber capacidad de obtener informes personalizados, en ellos se puede obtener información sobre:  La producción  Las pérdidas de producción  La producción esperada  El rendimiento de la instalación Seguimiento de Parques Eólicos 15 Por tanto la solución óptima pasa por definir un modelo de comportamiento particular para cada aerogenerador de estudio que sirva de referencia y permita estimar la potencia esperada de un modo más preciso. Curva Media Histórica La curva media histórica de referencia sería otro ejemplo de referencia estática, aunque al contrario que en el caso anterior, este tipo de referencia quedaría definida para cada aerogenerador a partir de su comportamiento histórico [3]. Supone un modelo más preciso que el anterior ya que está definido a partir de datos reales para cada una de las máquinas, para los periodos en los que la máquina esta trabajando en un régimen sin anomalías. Por lo que con este modelo se obtiene una referencia individual por máquina adaptada al comportamiento real que ha tenido la máquina históricamente. Aunque este es un método que permite una referencia individualizada por máquina basada en un comportamiento real, si se da un cambio de comportamiento, para no perder precisión la referencia debería adaptarse al nuevo escenario. Además la definición de un modelo de comportamiento histórico para cada máquina de un parque eólico resulta una tarea tediosa, con un componente de subjetividad elevado y en algunos casos, como se ha comentado, precisa de revisiones periódicas de los modelos promedio calculados. El cálculo de estos modelos y sus revisiones requieren de la intervención de un técnico cualificado, con el coste de recursos y tiempo que esto supone. 2.3.2 Referencias dinámicas Este tipo de referencias son las que se pretenden analizar en el presente proyecto. Se acomodan al comportamiento real de la máquina en el periodo analizado de modo automático, lo cual facilita su utilización en una aplicación autónoma de tratamiento de datos sin la supervisión de un técnico. Trabajar con referencias dinámicas implica las siguientes tareas: • La definición de una ecuación que describa la morfología de la curva de potencia de un aerogenerador [1]. • Adaptación y optimización de los parámetros de la ecuación que definirá a la curva del modelo que mejor se adapte a la curva de potencia del aerogenerador y periodo analizado. Como se verá en el apartado siguiente, en el presente proyecto se trabajará con un modelo basado en la distribución acumulada de Gauss [1]. 2.4 Tratamiento y Filtrado de Datos Una vez definidas las referencias de comportamiento para la máquina analizada se procede al filtrado de los datos de las curvas de potencia [4] como se describía en apartados anteriores. Eliminando aquellos pares de valores de velocidad de viento (V) y potencia (P) Seguimiento de Parques Eólicos 16 diezminutales que se alejaban del comportamiento esperado definido por los umbrales de filtrado. Actualmente los métodos que resumirían las técnicas más habituales de filtrado se describen a continuación. 2.4.1 Filtrado estático. El denominado filtrado estático, hace referencia al basado en las referencias estáticas antes mencionadas. Parámetros estadísticos En general está basado en parámetros estadísticos de filtrado calculados a partir de datos históricos de la máquina analizada. Para los datos históricos de referencia convenientemente filtrados, se calcula la potencia media para los datos asociados a cada bin de velocidad2 y la desviación típica. Quedando definidas para cada bin como: La desviación típica (o estándar) es una medida del grado de dispersión de los datos del valor promedio, o bien, la variación esperada con respecto de la media aritmética. Así, una desviación elevada indica que los puntos están lejos de la media, y una desviación baja indica que los datos están agrupados cerca de la media. La desviación típica, puede ser interpretada como una medida de la incertidumbre. Este parámetro se define como muestra la Ecuación 2: n xx n ii ∑ = − =1 2 )( σ (2) Donde • n es el número de datos del bin • xi corresponde a cada uno de los datos de potencia del bin • x es la media aritmética de todas las potencias del bin ∑ = =n iR P n x 1 )( 1 (3) Donde, • R P es la potencia diezminutal (i) registrada A partir de la media y la desviación se define el umbral de filtrado según muestra la Ecuación 4: 2 Cada uno de los rangos de velocidad divididos de 0.5 en 0.5 m/s en que se agrupan los datos. Seguimiento de Parques Eólicos 17 mb P mb P σ ⋅ ± 2 (4) Donde, • mb P es la potencia media de los valores de potencia asociados al bin de velocidad analizado. • mb P σ Desviación típica de la potencia media estimada con la curva de potencia histórica del propio aerogenerador para el bin de velocidad. El problema de este método de filtrado es el ya mencionado al hablar de la referencia estática. Que no se adapta a los cambios de comportamiento de modo dinámico y para no perder precisión sería necesario un reajuste de las referencias y por tanto de los rangos de los umbrales de filtrado. A continuación en la Figura 6 se muestra una imagen del filtrado resultante de una referencia mal ajustada al comportamiento real de la máquina ‐0.1 0.1 0.3 0.5 0.7 0.9 1.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Wind Speed Power Filtering Data Data Ok 2 StD (Static) Figura 6 Ejemplo de Filtrado con una referencia estática mal ajustada Ajuste manual Podría complementar al anterior mediante una revisión de las salidas del filtrado estadístico basado en el histórico. Este método basaría su funcionamiento en el criterio del técnico cualificado, que valiéndose de las herramientas manuales y visuales de filtrado definiría manualmente las áreas de la curva afectadas de valores cuya potencia registrada no se ajusta a la esperada para la velocidad registrada. Como resultado ajustaría el filtrado al comportamiento actual de la curva como se muestra en la Figura 7: Seguimiento de Parques Eólicos 18 ‐0.1 0.1 0.3 0.5 0.7 0.9 1.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Wind Speed Power Filtering Data Data Ok Figura 7 Ejemplo de Filtrado Manual o ajustado tras un filtro estático El problema de este método de filtrado o ajuste es que requiere de la intervención de un técnico cualificado que revise los datos. Esto requiere un consumo de recursos notable y dificulta su implementación en un sistema autónomo de filtrado, que permita evaluar de modo automático el rendimiento de una planta de generación eólica. 2.4.2 Filtrado dinámico Este tipo de filtrado [5] es el que se pretende analizar en el presente proyecto, estaría basado en la referencia dinámica antes mencionada. De modo que las curvas de referencia y los rangos de los umbrales de filtrado se acomodarían al comportamiento de la curva de potencia y periodo analizado. El objetivo es obtener un filtrado similar al del ajuste manual pero de un modo automático. 2.5 Síntesis Como síntesis, se ha descrito el método de trabajo utilizado para la evaluación del rendimiento de parques eólicos. También se han descrito y analizado las ventajas e inconvenientes de los modelos que permiten un filtrado estático y uno dinámico, así como las limitaciones de un tipo y otro de referencias de comportamiento para caracterizar una curva de potencia de un aerogenerador. Obteniéndose que para la implementación en una aplicación autónoma parecen ser más apropiados los métodos dinámicos de filtrado que permiten una adaptación automática a las condiciones de trabajo. Modelo basado en la Distribución Normal Acumulada de Gauss 19 3 Modelo basado en la Distribución Normal Acumulada de Gauss En este apartado se presenta la Distribución Normal Acumulada de Gauss, como función de referencia para definir el comportamiento de un aerogenerador de modo dinámico [2], mediante el ajuste de los parámetros que la definen para cada escenario. Se trata de una función cuya morfología es similar a la curva de potencia de un aerogenerador y se encuentra disponible en numerosos paquetes software para una implementación inmediata en una aplicación informática autónoma. Una vez definida la curva que modela el aerogenerador es posible ajustarla a las condiciones concretas de trabajo, y fijar unos umbrales de filtrado a partir del error en las estimaciones generado. 3.1 Distribución Normal Acumulada de Gauss La distribución normal, en estadística es una de las distribuciones de probabilidad de variable continua que aparece con más frecuencia aproximada en fenómenos reales. La gráfica de su función de densidad tiene la característica forma conocida como Campana de Gauss, como se muestra en la Figura 8. Figura 8 Función Densidad de la Distribución Normal. La función de distribución de la distribución normal de Gauss (CDF) se puede calcular como la integral de la función densidad y presenta una morfología como la mostrada en la Figura 9. Modelo basado en la Distribución Normal Acumulada de Gauss 20 Figura 9 Función Distribución de la Distribución Normal Puede ser calculada a partir de la función error de una distribución normal. Se define en la Ecuación 5: ℜ∈ ⎥ ⎦ ⎤ ⎢ ⎣ ⎡⎟ ⎠ ⎞ ⎜ ⎝ ⎛− += x x erfxF , 2 1 2 1 );;( σ μ σμ (5) Donde, • μ es el parámetro media de la función • 2 σ es el parámetro varianza de la función 3.2 Ajuste a la curva de potencia En este apartado se presenta la función utilizada para definir la curva de potencia del aerogenerador y los parámetros que la definen. También el modo utilizado para ajustar dichos parámetros a la curva de potencia analizada de modo automático. Una vez seleccionado el modelo que mejor define a la curva de potencia analizada, se fijan los umbrales de filtrado de la curva. 3.2.1 Parámetros de Gauss Basándose en la función CDF mencionada [1], es posible definir una ecuación que permite estimar la potencia a partir de la velocidad de viento registrada en el SCADA, como muestra la Ecuación 6. mvCDFsP − ⋅ =),,( σ μ (6) Modelo basado en la Distribución Normal Acumulada de Gauss 21 Donde, • µ es el parámetro media de la función • σ es el parámetro desviación de la función • v es la velocidad de viento diezminutal • s es un factor de escalado • m representa desfase en el eje x A partir de la estimación obtenida para cada registro diezminutal y el valor real registrado de potencia es posible obtener un error. Minimizando este error, es posible ajustar la curva que define el comportamiento de cada máquina de un parque eólico de un modo automático. El objetivo es obtener un modelo que defina la máquina analizada para el periodo de estudio. Este modelo quedaría automáticamente sintonizado para el emplazamiento, tecnología, condiciones de trabajo y otros factores influyentes. 3.2.2 Función de análisis para el ajuste optimo de la curva El error de la estimación a partir de la función analizada es como se muestra en la Ecuación 7: EtRtt PPE − = (7) Donde, • t Ees el error en el diezminutal t • Rt Pes la potencia real en diezminutal t • Et Pes la potencia estimada La función utilizada para ajustar los parámetros de la función de Gauss a la curva de potencia analizada es el RMSE (Raíz del error cuadrático medio) definido según la Ecuación 8 como: N E RMSE N tt ∑= =1 2 (8) Donde, • N es el número total de datos diezminutales que definen la curva analizada 3.2.3 Proceso de Optimización Para obtener los parámetros óptimos que definen el modelo que mejor se ajusta a la muestra de datos que define la curva se realiza un proceso iterativo. En él se evalúa el valor de la función objetivo RMSE a partir de los valores de entrada que definen la función utilizada. Estas iteraciones se dan en torno a unos valores próximos al ajuste obtenidos experimentalmente. Son los siguientes. Modelo basado en la Distribución Normal Acumulada de Gauss 22 • µ = 9.5 • σ = 2.68 • s = potencia máxima de la muestra de datos o potencia nominal de la máquina • m=0 El menor valor de RMSE obtenido de todas las iteraciones (i), supone el mejor ajuste, y con ello se obtienen los parámetros óptimos que definen el modelo ajustado automáticamente a la muestra analizada. El esquema se resumiría en la Figura 10: Figura 10 Proceso de Iteración de los Parámetros de la Función hasta el ajuste Óptimo minimizando RMSE A continuación en la Figura 11 se muestran algunas curvas de ajuste para diferentes parámetros de entrada: Ni s µ σ m RMSE i σ i μ i s i m Modelo basado en la Distribución Normal Acumulada de Gauss 23 Gauss Fitting ‐0.1 0.1 0.3 0.5 0.7 0.9 1.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Wind Speed Power Data FG 1 FG 2 FG 3 FG 4 FG 5 Fg 6 FG 7 FG 8 Figura 11 Ejemplo de Curvas de Ajuste para diferentes parámetros de entrada 3.3 Filtrado de la curva Una vez ajustado el modelo a la curva analizada a partir de los parámetros de entrada es posible definir un criterio de filtrado y unos umbrales a partir del error en las estimaciones. 3.3.1 Umbrales y Condición de filtrado El método para definir la condición de filtrado se describe a continuación. A partir del error en la estimación dado por la ecuación EtRtt PPE − = , para cada dato diezminutal. Se obtiene la media y la desviación típica del error para cada bin de velocidad (ERRORbin μ .y ERRORbin σ ), definidos como muestran la Ecuación 9 y la Ecuación 10. n E n iERRORbint ERRORbin ∑ = − =1 2 )( μ σ (9) Donde • n es el número de datos asociados al bin • t Ecorresponde a la diferencia EtRt PP − para cada diezminutal del bin • ERRORbin μ es la media aritmética de todas las diferencias t Edel bin ∑ = =n itERRORbin E n1 )( 1 μ (10) Modelo basado en la Distribución Normal Acumulada de Gauss 24 Para cada dato diezminutal de potencia se define el umbral de desviación permisible respecto a la estimación, dependiendo del bin de velocidad al que pertenezca el dato evaluado, quedando definido este umbral como se muestra en la Ecuación 11: )( ERRORbinERRORbinbin NUmbral σ μ ⋅ + = (11) Donde, • bin Umbral es el umbral permitido en la desviación en la estimación de P de un dato diezminutal que pertenece al bin correspondiente • ERRORbin μ es la media de todos los errores cometidos por dato diezminutal en la estimación. • ERRORbin σ es la desviación típica de todos los errores cometidos por dato diezminutal en la estimación. • N es el factor aplicado en la condición. En las pruebas realizadas se ha fijado en 3 A continuación se evalúa cada dato diezminutal y el error cometido en la estimación de su potencia a partir de la velocidad registrada con la condición de filtrado de la Ecuación 12: Dato Filtrado: bint UmbralE ≥ (12) 3.4 Condiciones Adicionales Con base en las pruebas realizadas con datos reales, ha sido necesario incluir algunas condiciones adicionales de filtrado que ajustan la anterior. Por ello se han limitado los valores máximos del error en la estimación medio ERRORbin μ y de la desviación típica de los errores del bin ERRORbin σ calculada ya que en algunas situaciones afectaba negativamente al algoritmo de filtrado. Como se muestra a continuación en la Ecuación 13 y la Ecuación 14: Máximo ERRORERRORbin N μ μ ⋅ = (13) Donde • N en un factor fijado en 2 en las pruebas realizadas • ERROR μ es el promedio de todos los ERRORbin μ calculados para la curva de potencia Máximo ERRORERRORbin N σ σ ⋅ = (14) Donde • N en un factor fijado en 2 en las pruebas realizadas Conclusiones 31 5 Conclusiones A continuación como síntesis a lo expuesto en el presente documento se extraen las conclusiones y valoraciones. Respecto al Método de Trabajo: Como conclusiones generales sobre del método de trabajo utilizado para evaluar el rendimiento de parques eólicos se extrae lo siguiente: • Para la estimación del rendimiento de aerogeneradores con el método descrito, resulta crítico un adecuado filtrado de las curvas de potencia. Un exceso o defecto de datos filtrados incide directamente en la estimación del rendimiento. • Es necesario definir una adecuada referencia de comportamiento para cada una de las máquinas del parque eólico. • Esta referencia debe ajustarse al comportamiento real de la máquina, para las condiciones de trabajo particulares de la máquina. • Los métodos de filtrado basados en referencias estáticas no permiten una acomodación automática al comportamiento del periodo de estudio. Por lo que si hay una variación en el mismo, la precisión de los resultados se puede ver afectada. • Para asegurar la calidad de los resultados con el método basado en referencias estáticas es necesaria una revisión de los datos filtrados por un técnico cualificado, con la inversión de recursos que esto supone. • Si se desea implementar el método de evaluación del rendimiento de modo automático sin intervención de un técnico, es necesario que esta referencia se adapte automáticamente al comportamiento de la máquina y periodo analizado. Respecto al Modelo utilizado: Las conclusiones de este apartado se enumeran a continuación: • Se ha definido el modelo utilizado para caracterizar la curva de potencia de cada uno de los aerogeneradores de un parque eólico. La función distribución Normal acumulada de Gauss. • Se han descrito los parámetros de entrada al modelo y se ha definido una función objetivo (RMSE) para que mediante un método iterativo, sea posible ajustar el modelo a cada máquina analizada de modo automático. • El método utilizado permite definir la ecuación que describe a la curva de potencia analizada de un modo autónomo independientemente del tipo de tecnología, condiciones de trabajo y otros agentes externos. • Se han definido unas condiciones y umbrales de filtrado de curvas de potencia a partir de los errores en la estimación para cada uno de los datos registrados en el SCADA. Conclusiones 32 Todo lo anterior permitiría su implementación en una aplicación informática autónoma, reduciendo la mano de obra necesaria en realizar los estudios de evaluación del rendimiento de un parque eólico. Respecto a los objetivos marcados: • En las pruebas realizadas tanto con el filtrado de curvas de modo manual como el basado en filtros estadísticos de referencia fija o estática se han extraído algunas valoraciones. Por un lado, la realización de estudios de evaluación del rendimiento de parques eólicos basados en un filtrado manual o semiautomático requiere de un coste en recursos elevado y la intervención de técnicos cualificados que evalúen los resultados del filtrado. Por otro lado en los resultados del filtrado basado en referencias estáticas (curvas históricas o de fabricante) se ha observado, como se muestra en las pruebas realizadas, que existen casos en los que las desviaciones en la estimación del rendimiento es considerable sin la supervisión del técnico que reajuste los filtrados. Como consecuencia se hace patente la necesidad de llegar a un compromiso entre calidad y recursos invertidos. Además la posibilidad de realizar este tipo de tratamientos de modo autónomo sin supervisión y sin comprometer los resultados resulta inviable con esta metodología. Por tanto, resulta necesario analizar otras alternativas que permitan su desarrollo dentro de un software autónomo sin comprometer la calidad de los resultados. • Como alternativa se estudia un modelo que permita caracterizar la curva de potencia de un aerogenerador de un modo automático para cada escenario de trabajo. Este modelo se basa en la Distribución Normal Acumulada de Gauss. Mediante el ajuste automático de los parámetros de entrada de dicho modelo, se logra obtener una curva que caracteriza el comportamiento de la máquina de un modo fiable. Con ella, por un lado se resuelven las limitaciones de las referencias estáticas, en cuanto a que éstas no se adaptan al comportamiento real de la máquina para el escenario en el que trabaja. Por otro lado, se reduce el coste de recursos necesarios en un tratamiento manual y se reduce la subjetividad que deriva de todo tratamiento manual y criterio personal. • Respecto a los resultados y la valía del método también se extraen conclusiones positivas. Se dan unas desviaciones aceptables respecto al óptimo considerado (resultados de estudios comerciales del grupo AIRE de la Fundación CIRCE) para las pruebas realizadas, nunca superiores al 0.5%. Además permite su implementación en una aplicación informática autónoma que no precisaría de supervisión técnica exhaustiva ni revisión de las referencias utilizadas, reduciendo recursos y ganando en objetividad. Respecto a posibles líneas futuras de trabajo: • Utilizar función inversa estimando la velocidad de góndola a partir de la potencia registrada y aplicar los criterios y umbrales de filtrado al error en la estimación de la velocidad. Conclusiones 33 • Extender las pruebas a parques eólicos cuyas máquinas sean de paso fijo, para evaluar en mayor detalle las deficiencias del método y atenuarlas. • Buscar otros modelos con una morfología similar a la estudiada, que permitan caracterizar la curva de potencia de un aerogenerador. • Analizar este tipo de modelos y su comportamiento para periodos de muestreo inferiores a los diez minutos. Referencias 34 6 Referencias [1]. Yanjun, Y., L. A. Osadciw, G. Benson and E. White. Inverse data transformation for change detection in wind turbine diagnostics. Electrical and Computer Engineering, 2009. CCECE '09. Canadian Conference on, 2009. [2]. Talayero, A. P., J. J. Melero, J. Beltran and R. Lázaro. Wind farm efficiency improvement using turbine's SCADA data. European Wind Energy Conference, 2011. Brussels. [3]. A. Llombart, JM Fandos D Llombart A. Talayero, S. J. Watson, Power Curve Characterization: stochastic methods. [4]. LLombart, A., C. Pueyo, J. M. Fandos and J. J. Guerrero. Robust data filtering in wind power systems. European Wind Energy Conference, 2006. Athens. [5]. A. Llombart1, C. Pueyo1, R. Lazaro1, J.J. Guerrero2. Dynamic Data Filtering for Wind Power SYSTEMS: Stochastic Frame word based on Kalman Filter. Ewec 07. Milan (Italy) ANEXO A RESULTADOS OBTENIDOS PARA LOS PARQUES EÓLICOS DE EJEMPLO Anexo A. Resultados Obtenidos para Los Parques Eólicos de Ejemplo A-1 Anexo A. Resultados Obtenidos para los Parques Eólicos de Ejemplo En el presente anexo se muestran tablas de resultados comparativos desglosados por aerogenerador de pérdidas energéticas estimadas y rendimiento para el filtro dinámico y el filtro manual óptimo mencionado. A.1 Parque Eólico 1 Mes 1 Invierno Aerogenerador Filtro Dinámico Referencia Pérdidas (MWh) Rto. Pérdidas (MWh) Rto. A1 10.94 98.52% 10.58 98.57% A2 165.56 76.67% 169.78 76.22% A3 2.30 99.70% 1.88 99.88% A4 4.43 99.40% 4.40 99.53% A5 22.22 97.05% 32.19 95.97% A6 2.10 99.72% 2.13 99.83% A7 5.54 99.21% 14.52 98.22% A8 0.89 99.87% 0.60 99.91% A9 2.21 99.68% 1.88 99.73% A10 5.66 99.17% 5.62 99.18% A11 0.68 99.91% 0.46 99.96% A12 1.81 99.75% 14.03 98.12% A13 0.67 99.91% 0.46 99.94% A14 11.14 98.53% 10.95 98.56% A15 19.50 97.48% 18.67 97.81% A16 16.19 97.94% 16.05 98.29% A17 36.47 95.29% 36.45 96.34% A18 5.24 99.35% 5.10 99.81% A19 5.21 99.35% 5.23 99.91% A20 5.33 99.31% 5.21 99.72% A21 8.26 98.97% 6.96 99.30% A22 14.44 98.18% 14.28 98.20% A23 5.66 99.23% 5.36 99.27% A24 8.00 98.92% 16.33 97.84% A25 3.08 99.61% 3.03 99.73% Total 363.51 98.06% 402.17 97.85% Mes 2 Invierno Aerogenerador Filtro Dinámico Referencia Pérdidas (MWh) Rto. Pérdidas (MWh) Rto. A1 57.90 94.08% 54.94 94.94% A2 7.93 99.19% 4.60 99.83% A3 200.18 79.91% 187.29 86.46% A4 17.93 98.21% 12.62 99.96% A5 25.39 97.49% 12.05 99.85% Anexo A. Resultados Obtenidos para Los Parques Eólicos de Ejemplo A-2 A6 30.73 96.92% 26.85 99.90% A7 7.61 99.21% 6.72 99.90% A8 2.32 99.76% 1.36 99.96% A9 8.52 99.12% 6.66 99.75% A10 6.05 99.38% 3.46 99.97% A11 4.40 99.56% 3.68 99.97% A12 15.91 98.45% 4.53 99.96% A13 5.82 99.42% 4.77 99.97% A14 169.67 83.60% 166.56 84.05% A15 83.17 91.94% 77.00 95.20% A16 75.88 92.63% 69.77 95.89% A17 38.30 96.30% 35.61 98.73% A18 42.68 95.87% 35.94 99.89% A19 212.37 79.33% 210.29 82.13% A20 36.60 96.37% 33.02 99.96% A21 65.24 93.53% 59.09 95.62% A22 104.33 89.58% 99.86 91.21% A23 162.34 83.41% 158.85 83.85% A24 40.00 95.94% 38.08 96.57% A25 19.28 98.08% 14.94 99.66% Total 1440.56 94.24% 1328.52 94.66% Mes 1 Verano Aerogenerador Filtro Dinámico Referencia Pérdidas (MWh) Rto. Pérdidas (MWh) Rto. A1 2.47 99.47% 2.14 99.54% A2 1.77 99.62% 1.63 99.65% A3 53.07 89.57% 53.17 89.55% A4 44.98 91.27% 38.83 92.37% A5 9.76 98.15% 3.94 99.25% A6 38.00 92.27% 31.64 93.48% A7 3.20 99.28% 2.92 99.34% A8 34.17 91.82% 33.81 91.90% A9 55.48 87.88% 55.13 87.94% A10 7.21 98.36% 6.64 98.48% A11 4.11 99.17% 3.39 99.31% A12 4.51 99.15% 4.36 99.18% A13 13.53 97.38% 13.33 97.42% A14 21.20 96.13% 20.76 96.21% A15 5.34 98.99% 2.50 99.52% A16 1.56 99.70% 1.42 99.73% A17 7.34 98.66% 2.09 99.61% A18 6.11 98.86% 1.19 99.77% A19 65.99 87.64% 65.96 87.65% A20 2.87 99.42% 2.12 99.57% A21 36.83 92.18% 36.53 92.24% A22 1.53 99.68% 1.38 99.71% A23 15.24 96.68% 14.88 96.75% A24 2.22 99.51% 1.00 99.78% A25 36.19 92.34% 35.87 92.40% Anexo A. Resultados Obtenidos para Los Parques Eólicos de Ejemplo A-3 Total 474.66 96.15% 436.64 96.44% Mes 2 Verano Aerogenerador Filtro Dinámico Referencia Pérdidas (MWh) Rto. Pérdidas (MWh) Rto. A1 3.62 99.13% 3.39 99.19% A2 3.12 99.22% 3.08 99.23% A3 109.60 74.28% 109.53 74.29% A4 4.13 99.03% 2.35 99.45% A5 3.32 99.22% 2.95 99.31% A6 4.05 98.99% 3.85 99.04% A7 3.02 99.21% 2.45 99.36% A8 3.81 98.92% 3.18 99.10% A9 4.12 98.94% 3.16 99.19% A10 3.85 98.93% 3.08 99.14% A11 5.93 98.55% 5.63 98.63% A12 4.75 98.91% 3.53 99.19% A13 2.70 99.37% 2.52 99.41% A14 8.70 98.04% 8.16 98.16% A15 3.19 99.23% 2.81 99.32% A16 2.89 99.29% 2.64 99.35% A17 10.81 97.50% 10.66 97.54% A18 5.13 98.78% 4.80 98.85% A19 23.89 94.50% 23.76 94.53% A20 3.85 99.05% 3.19 99.21% A21 5.91 98.48% 5.91 98.48% A22 3.85 99.07% 3.56 99.14% A23 2.32 99.38% 2.04 99.46% A24 1.86 99.50% 1.51 99.59% A25 2.92 99.26% 2.62 99.34% Total 231.35 97.72% 220.32 97.83% A.2 Parque Eólico 2 Mes 1 Invierno Aerogenerador Filtro Dinámico Referencia Pérdidas (MWh) Rto. Pérdidas (MWh) Rto. A1 6.82 97.02% 6.71 97.07% A2 5.68 97.86% 5.76 97.83% A3 6.16 97.67% 6.28 97.63% A4 10.42 95.68% 10.36 95.70% A5 16.34 92.48% 15.95 92.64% A6 4.43 97.57% 5.43 97.04% A7 5.27 96.82% 5.33 96.79% A8 4.11 96.89% 4.46 96.63% A9 4.86 98.30% 5.06 98.23% A10 4.81 98.15% 4.67 98.20% A11 4.65 97.84% 4.71 97.81% Anexo A. Resultados Obtenidos para Los Parques Eólicos de Ejemplo A-4 A12 7.81 96.67% 8.19 96.52% A13 4.42 97.59% 4.16 97.73% A14 4.24 97.81% 4.54 97.66% A15 4.33 97.25% 4.94 96.87% A16 3.95 97.42% 4.20 97.25% A17 3.82 97.24% 3.69 97.32% A18 3.12 97.25% 3.36 97.05% A19 3.98 97.17% 3.70 97.36% A20 3.92 97.45% 3.87 97.48% A21 4.12 97.63% 3.69 97.87% A22 4.56 97.68% 4.72 97.60% A23 6.68 96.68% 7.52 96.28% A24 4.19 97.64% 4.88 97.26% A25 4.34 98.53% 4.17 98.59% Total 137.03 97.24% 140.33 97.18% Mes 2 Invierno Aerogenerador Filtro Dinámico Referencia Pérdidas (MWh) Rto. Pérdidas (MWh) Rto. A1 1.19 99.34% 1.00 99.44% A2 1.18 99.45% 0.81 99.63% A3 1.14 99.47% 0.98 99.54% A4 1.41 99.32% 0.98 99.53% A5 1.83 99.14% 1.43 99.32% A6 1.30 99.22% 0.96 99.42% A7 1.25 99.27% 0.70 99.59% A8 1.82 98.77% 1.26 99.15% A9 2.51 98.92% 2.34 98.99% A10 2.25 98.94% 2.16 98.99% A11 1.71 99.05% 1.43 99.20% A12 1.64 99.21% 1.44 99.30% A13 1.54 99.23% 1.25 99.37% A14 1.70 99.08% 1.16 99.38% A15 1.75 99.09% 1.62 99.16% A16 1.10 99.43% 0.79 99.59% A17 2.56 98.60% 2.09 98.85% A18 0.59 99.54% 0.47 99.63% A19 0.93 99.39% 0.64 99.58% A20 1.74 98.94% 1.24 99.24% A21 6.52 95.92% 6.02 96.22% A22 3.15 98.13% 2.82 98.32% A23 2.07 98.97% 1.89 99.06% A24 2.06 98.95% 1.67 99.14% A25 1.67 99.30% 1.38 99.42% Total 46.60 99.01% 38.54 99.18% Mes 1 Verano Aerogenerador Filtro Dinámico Referencia Pérdidas (MWh) Rto. Pérdidas (MWh) Rto. Anexo A. Resultados Obtenidos para Los Parques Eólicos de Ejemplo A-5 A1 2.56 99.09% 2.68 99.04% A2 5.76 98.16% 6.17 98.03% A3 2.40 99.27% 2.59 99.21% A4 2.61 99.17% 2.61 99.17% A5 6.56 97.58% 6.37 97.65% A6 1.92 99.22% 1.86 99.25% A7 1.68 99.27% 1.33 99.42% A8 1.00 99.53% 1.05 99.50% A9 10.35 97.04% 10.73 96.93% A10 2.35 99.24% 2.50 99.19% A11 2.13 99.24% 2.78 99.01% A12 2.22 99.27% 2.23 99.26% A13 2.69 98.81% 2.80 98.76% A14 4.04 98.27% 3.95 98.31% A15 4.70 97.50% 4.71 97.49% A16 2.39 98.70% 2.16 98.83% A17 2.32 98.78% 2.14 98.87% A18 3.15 98.05% 3.13 98.06% A19 1.38 99.24% 1.37 99.25% A20 1.97 98.87% 2.08 98.81% A21 1.86 99.06% 1.72 99.13% A22 2.44 98.92% 2.71 98.80% A23 3.93 98.29% 3.72 98.38% A24 3.27 98.37% 3.29 98.36% A25 3.16 99.15% 3.29 99.11% Total 78.82 98.73% 79.95 98.71% Mes 2 Verano Aerogenerador Filtro Dinámico Referencia Pérdidas (MWh) Rto. Pérdidas (MWh) Rto. A1 0.53 99.79% 0.28 99.89% A2 0.55 99.81% 0.42 99.85% A3 9.67 96.78% 9.61 96.81% A4 0.54 99.81% 0.53 99.81% A5 0.64 99.74% 0.22 99.91% A6 0.94 99.58% 0.39 99.83% A7 0.75 99.64% 0.38 99.82% A8 0.84 99.56% 0.62 99.68% A9 0.56 99.83% 0.35 99.89% A10 0.33 99.88% 0.19 99.93% A11 0.31 99.88% 0.23 99.91% A12 0.28 99.90% 0.16 99.94% A13 4.70 97.92% 4.77 97.90% A14 0.50 99.78% 0.24 99.90% A15 0.59 99.69% 0.39 99.80% A16 3.39 98.13% 3.26 98.20% A17 0.98 99.49% 0.90 99.53% A18 5.13 96.77% 4.96 96.87% A19 5.87 96.65% 5.81 96.68% A20 12.86 92.58% 12.69 92.67% Anexo A. Resultados Obtenidos para Los Parques Eólicos de Ejemplo A-12 A3 191.08 75.83% 190.46 80.15% A4 120.15 84.88% 118.90 86.18% A5 111.68 85.64% 110.20 86.82% A6 321.64 57.79% 321.32 57.86% A7 135.18 83.30% 134.41 84.01% A8 117.77 85.15% 116.48 86.53% A9 142.65 81.53% 142.45 82.20% A10 95.62 88.01% 93.29 89.81% A11 168.16 78.08% 200.67 77.77% A12 80.47 89.78% 80.24 92.40% A13 48.39 93.70% 46.97 94.57% A14 104.43 83.57% 137.15 80.98% A15 183.85 75.07% 183.14 75.19% Total 2157.19 81.39% 2206.31 81.05% Mes 1 Verano Aerogenerador Filtro Dinámico Referencia Pérdidas (MWh) Rto. Pérdidas (MWh) Rto. A1 3.72 98.03% 4.83 97.46% A2 39.53 81.98% 39.30 82.07% A3 2.22 99.05% 2.75 98.83% A4 1.39 99.33% 1.05 99.49% A5 3.36 98.35% 3.05 98.50% A6 2.80 98.66% 2.94 98.59% A7 1.29 99.41% 1.21 99.45% A8 2.72 98.53% 2.79 98.50% A9 2.61 98.61% 1.78 99.05% A10 3.58 97.92% 4.10 97.63% A11 0.72 99.64% 0.46 99.77% A12 2.78 98.51% 3.54 98.11% A13 15.36 91.21% 15.43 91.17% A14 5.42 96.41% 4.82 96.80% A15 0.94 99.36% 0.65 99.56% Total 88.45 96.93% 88.71 96.92% Mes 2 Verano Aerogenerador Filtro Dinámico Referencia Pérdidas (MWh) Rto. Pérdidas (MWh) Rto. A1 30.62 85.91% 32.19 85.30% A2 17.63 92.78% 17.82 92.71% A3 13.18 94.52% 11.08 95.35% A4 14.09 93.53% 14.03 93.56% A5 8.84 95.86% 9.02 95.77% A6 1.57 99.26% 1.20 99.44% A7 9.13 96.05% 9.75 95.79% A8 1.13 99.43% 1.14 99.42% A9 3.19 98.40% 2.82 98.58% A10 5.64 97.27% 5.77 97.21% A11 18.68 92.08% 18.69 92.07% Anexo A. Resultados Obtenidos para Los Parques Eólicos de Ejemplo A-13 A12 10.26 95.45% 11.51 94.92% A13 9.83 95.43% 10.35 95.20% A14 7.17 96.10% 7.11 96.14% A15 2.12 98.93% 2.02 98.98% Total 153.09 95.27% 154.51 95.23% ANEXO B CÓDIGO DEL ALGORITMO Anexo B. Código del Algoritmo B-1 Anexo B. Código del Algoritmo A continuación se plasmará el código en lenguaje Visual Basic.net de cada uno de los elementos del código implicado en el Filtro Dinámico, y contenido dentro de la aplicación “SEGUI” propiedad del grupo AIRE de la Fundación CIRCE: B.1 Gauss_P Private Sub Gauss_P(ByVal sigmaG As Double, ByVal mediaG As Double, ByVal scale As Double, ByVal m As Double, ByVal Vel As Double, ByRef Pgauss As Double) 'FerrorGauss(sigmaG,mediaG,scale,m,VectorV(),VectorVg(),RMSE_v,VectorP (),VectorPg(),RMSE_P) 'Con probabilidad Gauss saco la P a partir de la Vgon registrada. Dim Vcor As Double Dim Prob_gauss As Double Vcor = (Vel - mediaG) / sigmaG 'corrección velocidad para poder entrar a la distribución standard Prob_gauss = Imsl.Stat.Cdf.Normal(Vcor) 'saco la probabilidad de gauss Pgauss = (Prob_gauss * scale) - m 'corrijo, escalo y pongo la potencia End Sub B.2 Inv_Gauss_V Private Sub Inv_Gauss_V(ByVal sigmaG As Double, ByVal mediaG As Double, ByVal scale As Double, ByVal m As Double, ByVal Pot As Double, ByRef Vgauss As Double) 'FerrorGauss(sigmaG,mediaG,scale,m,VectorV(),VectorVg(),RMSE_v,VectorP (),VectorPg(),RMSE_P) 'Con probabilidad Gauss saco la V a partir de la P registrada Dim Pcor As Double Dim Prob_gauss As Double If Pot > scale Then Pot = scale End If If Pot < 0 Then Pot = 0 End If Pcor = (Pot + m) / scale 'corrección velocidad para poder entrar a la distribución standard If Pcor >= 1 Then 'saturo a un valor máximo de 1 Pcor = 0.99999999999 'casi 1 CORREGIR NO ESTA MUY FINo.saca valores de V elevados y mal estimados con P >=scale End If If Pcor < 0 Then 'saturo a un valor mínimo de 0 Pcor = 0.00001 End If Anexo B. Código del Algoritmo B-2 Prob_gauss = Imsl.Stat.Cdf.InverseNormal(Pcor) 'saco la probabilidad de gauss Vgauss = (Prob_gauss * sigmaG) + mediaG 'corrijo, escalo y pongo la potencia If Vgauss < 0 Then ' no se pueden estimar velocidades menores de 0 Vgauss = 0 End If End Sub B.3 FerrorGauss Private Sub FerrorGauss(ByRef sigmaG As Double, ByRef mediaG As Double, ByRef scale As Double, ByRef m As Double, ByRef VectorV() As Double, ByRef VectorVg() As Double, ByRef RMSE_v As Double, ByRef VectorRMSE_v() As Double, ByRef VectorP() As Double, ByRef VectorPg() As Double, ByRef RMSE_p As Double, ByRef VectorRMSE_p() As Double) 'FerrorGauss(sigmaG,mediaG,scale,m,VectorV(),VectorVg(),RMSE_v,VectorP (),VectorPg(),RMSE_P) 'Función que toma los valores de V y P, los parámetros de Gauss y hace las estimaciones de V y P inversa y directa. 'Salidas: VectorVg, RMSE_v, VectorRMSE_v, VectorPg, RMSE_p, VectorRMSE_p 'Entradas: el resto. Dim RutaTrabajo As String = TextBox27.Text Dim parque As String = TextBox1.Text Dim mes As String = ComboBox1.GetItemText(ComboBox1.SelectedItem) Dim añoabr As String = TextBox5.Text Dim Naeros As Integer = CInt(TextBox6.Text) Dim Ndias As Integer = CInt(TextBox3.Text) Dim Nfilas As Integer = CInt(TextBox86.Text) ' tomo los diezminutales, porque asi los puede modificar el usuario para ajustar si es necesario (en cambios de hora verano invierno)'= Ndias * 144 Dim Ncol As Integer = Naeros * 2 Nfilas = Globales.NlineasGraf 'pongo las lineas leidas en el botón anterior Dim aero As Integer = NumericUpDown9.Value '= CInt(TextBox137.Text) Dim AE As Integer Dim MatrizVP(,) As Double MatrizVP = Globales.MatrizVPGraf Dim Vecfecha() As Date Vecfecha = Globales.FechasGraf Dim PunV As Long Dim PunP As Long Dim V As Double Dim P As Double Dim codP As Double = CDbl(TextBox188.Text) Dim codV As Double = CDbl(TextBox189.Text) Anexo B. Código del Algoritmo B-3 Dim Fini As Date = CDate(TextBox204.Text) Dim Ffin As Date = CDate(TextBox203.Text) Dim periodo1 As String = Fini & "-" & Ffin Dim delimitador(2) As Char ' Declaro dimensión del vector de separadores y los asigno a cada indice delimitador(0) = Chr(32) ' caracter espacio delimitador(1) = Chr(9) ' caracter tabulador Dim linea As String Dim valores() As String Dim i As Long Dim j As Long Dim valor As String 'Si quiero filtrar el AE de estudio o todos. If CheckBox38.Checked = True Then 'si quiero filtrar todos. entre 1 y Naeros AE = 1 Naeros = CInt(TextBox6.Text) Else 'si quiero filtrar sólo el de estudio. entre 9 y 9 por ejemplo, filtro el AE9. AE = aero Naeros = aero End If ''''''''''''''''''''''''' '''''''''' 'CALCULO GAUSS. Estimacion P y su inversa, estimación V '''''''' Dim Vgauss As Double Dim Pgauss As Double For i = 0 To Nfilas - 1 'Vectores de velocidades y potencias reales 'V = VectorV(i) 'P = VectorP(i) 'Estimo P gauss y lo meto en el vector Gauss_P(sigmaG, mediaG, scale, m, VectorV(i), Pgauss) 'SALIDA Pgauss VectorPg(i) = Pgauss 'sale Pgauss por referencia modificada y la meto en el vector de P estimada 'Estimo V gauss y lo meto en el vector Inv_Gauss_V(sigmaG, mediaG, scale, m, VectorP(i), Vgauss) 'SALIDA Vgauss VectorVg(i) = Vgauss 'sale Pgauss por referencia modificada y la meto en el vector de P estimada Next 'Calculo errores RMSE=RAIZ(SUMA((xi-Xiestimada)^2)/Ndatos) 'VectorRMSE_v() 'VectorRMSE_p() 'RMSE_v() Anexo B. Código del Algoritmo B-4 'RMSE_p() Dim suma_RMSE_v As Double Dim conta_RMSE_v As Long Dim suma_RMSE_p As Double Dim conta_RMSE_p As Long suma_RMSE_v = 0 conta_RMSE_v = 0 suma_RMSE_p = 0 conta_RMSE_p = 0 For i = 0 To Nfilas - 1 'RMSE(i)=(x-Xestimada)^2 If VectorV(i) >= 0 And VectorP(i) > -100 And VectorV(i) >= 0 And VectorP(i) > -100 Then 'filtro los datos de entrada para qu eno entren datos filtrados previamente o huecos. VectorRMSE_v(i) = (VectorV(i) - VectorVg(i)) ^ 2 VectorRMSE_p(i) = (VectorP(i) - VectorPg(i)) ^ 2 suma_RMSE_v = suma_RMSE_v + VectorRMSE_v(i) conta_RMSE_v = conta_RMSE_v + 1 suma_RMSE_p = suma_RMSE_p + VectorRMSE_p(i) conta_RMSE_p = conta_RMSE_p + 1 Else ' si hay algun dato malo pongo a 0 el error???. En el RMS por bin hay condición de >0 , luego no entran. VectorRMSE_v(i) = 0 VectorRMSE_p(i) = 0 End If Next RMSE_v = Math.Sqrt(suma_RMSE_v / conta_RMSE_v) RMSE_p = Math.Sqrt(suma_RMSE_p / conta_RMSE_p) RMSE_v = Math.Round(RMSE_v, 5) RMSE_p = Math.Round(RMSE_p, 5) End Sub B.4 FAjusteGauss Private Sub FAjusteGauss(ByRef sigmaG As Double, ByRef mediaG As Double, ByRef scale As Double, ByRef m As Double, ByRef VectorV() As Double, ByVal VectorVg() As Double, ByRef RMSE_v As Double, ByRef VectorRMSE_v() As Double, ByRef VectorP() As Double, ByVal VectorPg() As Double, ByRef RMSE_p As Double, ByRef VectorRMSE_p() As Double) 'F 'Función de autoajuste de los parámetros de Gauss a los datos de estudio 'Mejor pasar VectorVg y VectorPg byVal, para que solo se modifique dentro de esta función??. Hay un bucle donde se prueban diferentes escenarios modificando Vg y Pg entre otros. Dim Vector_espejo(VectorP.Length - 1) As Double Dim i As Long Anexo B. Código del Algoritmo B-5 Dim j As Long Dim k As Long 'En torno a los valores por defecto. Reinicio: Tomo los primeros de la caja de texto para todas las máquinas. Hay bucle por aero y el scale resultante del AE anterior se quedaría para el siguiente '¿es necesario?, se machaca cada vez y una única vez scale = Globales.scale_ini 'CDbl(TextBox353.Text) 'desviación m = Globales.m_ini 'CDbl(TextBox354.Text) 'media 'Tomo el valor máximo de potencia como factor de escala 'Vector_espejo = VectorP For i = 0 To VectorP.Length - 1 Vector_espejo(i) = VectorP(i) Next Array.Sort(Vector_espejo) 'lo ordeno de menor a mayor Array.Reverse(Vector_espejo) ' invierto orden y pongo de mayor a menor scale = Vector_espejo(0) 'En torno a los valores por defecto. Reinicio: Tomo los primeros de la caja de texto para todas las máquinas. Hay bucle por aero y el sigma resultante del AE anterior se quedaría para el siguiente sigmaG = Globales.sigmaG_ini 'CDbl(TextBox353.Text) 'desviación mediaG = Globales.mediaG_ini 'CDbl(TextBox354.Text) 'media Dim sigmaG_centro As Double = sigmaG 'desviación de referencia de salida Dim mediaG_centro As Double = mediaG 'media de referencia de salida Dim Nmuestras_sigma As Long = CLng(TextBox368.Text) 'total de posibilidades para esta variable. Pero tomo mitad por encima y mitad por debajo del centro SigmaG Dim paso_sigma As Double = CDbl(TextBox369.Text) 'total de posibilidades para esta variable. Pero tomo mitad por encima y mitad por debajo del centro MediaG Dim Nmuestras_media As Long = CLng(TextBox370.Text) Dim paso_media As Double = CDbl(TextBox371.Text) ' Dim nfil As Long nfil = Nmuestras_sigma * Nmuestras_media 'numero de combinaciones. 'Genero matriz de posibilidades de ajuste. Valores semialeatorios en torno a sigmaG=2.5 y mediaG=9.5. Paso 0.1 . Límite Nelementos. 'Creo matriz de escenarios posibles Dim M_escenarios(nfil - 1, 2) As Double '0.sigma/1.media/2.RMSE Dim sigmaMin As Double Dim sigmaMax As Double Anexo B. Código del Algoritmo B-6 Dim mediaMin As Double Dim mediaMax As Double k = 0 For i = 0 To Nmuestras_sigma - 1 sigmaMin = sigmaG_centro - ((Nmuestras_sigma / 2) * paso_sigma) sigmaMax = sigmaG_centro + (((Nmuestras_sigma / 2) * paso_sigma)) mediaMin = mediaG_centro - ((Nmuestras_media / 2) * paso_media) mediaMax = mediaG_centro + (((Nmuestras_media / 2) * paso_media)) For j = 0 To Nmuestras_media - 1 ' relleno sigma y media M_escenarios(k, 0) = sigmaMin + (i * paso_sigma) M_escenarios(k, 1) = mediaMin + (j * paso_media) k = k + 1 Next Next k = 0 For i = 0 To nfil - 1 sigmaG = M_escenarios(i, 0) mediaG = M_escenarios(i, 1) FerrorGauss(sigmaG, mediaG, scale, m, VectorV, VectorVg, RMSE_v, VectorRMSE_v, VectorP, VectorPg, RMSE_p, VectorRMSE_p) M_escenarios(i, 2) = RMSE_p 'almaceno el resultado de la función objetivo para ese escenario Next 'mejor pasar VectorVg y VectorPg byVal, para que solo se modifique dentro de esta función?? 'Rastreo el menor de los resultados y sus variables de entrada. Dim MinRMSE As Double = 999999999999 Dim puntero_MinRMSE As Long For i = 0 To nfil - 1 If M_escenarios(i, 2) < MinRMSE Then 'guardo el minimo RMSE y sus valores de entrada del escenario sigmaG = M_escenarios(i, 0) mediaG = M_escenarios(i, 1) MinRMSE = M_escenarios(i, 2) End If Next 'Ejecuto de nuevo con el resultado óptimo para tener los datos del mejor escenario calculado. FerrorGauss(sigmaG, mediaG, scale, m, VectorV, VectorVg, RMSE_v, VectorRMSE_v, VectorP, VectorPg, RMSE_p, VectorRMSE_p) Anexo B. Código del Algoritmo B-7 TextBox353.Text = sigmaG 'desviacion TextBox354.Text = mediaG 'media TextBox355.Text = scale 'factor de escala. potencia máquima del AE TextBox356.Text = m 'desplazamiento vertical extra de la curva RMSE_p = MinRMSE 'el minimo a RMSE_p, la tengo como byval y al salir de la función la utiliza. TextBox357.Text = MinRMSE 'RMSE raíz del error cuadratico medio total de la estimacion de Pgauss respecto a la Pmedida 'Dim RMSE_v As Double = CDbl(TextBox358.Text) 'RMSE raíz del error cuadratico medio total de la estimacion de Vg End Sub B.5 FiltraSigmaBin_Gauss Private Sub FiltraSigmaBin_Gauss(ByRef VectorV() As Double, ByVal VectorVg() As Double, ByRef VectorP() As Double, ByVal VectorPg() As Double) 'Filtra la curva en función de Sig por bin de las P real y estimada si se supera un umbral. 'Salida: VectorV, VectorP 'Entrada: el resto incluida VectorP Dim RutaTrabajo As String = TextBox27.Text Dim parque As String = TextBox1.Text Dim mes As String = ComboBox1.GetItemText(ComboBox1.SelectedItem) Dim añoabr As String = TextBox5.Text Dim Naeros As Integer = CInt(TextBox6.Text) Dim Ndias As Integer = CInt(TextBox3.Text) Dim Nfilas As Integer = CInt(TextBox86.Text) ' tomo los diezminutales, porque asi los puede modificar el usuario para ajustar si es necesario (en cambios de hora verano invierno)'= Ndias * 144 Dim Ncol As Integer = Naeros * 2 Nfilas = Globales.NlineasGraf 'pongo las lineas leidas en el botón anterior 'Códigos eliminación V y P Dim codP As Double = CDbl(TextBox188.Text) Dim codV As Double = CDbl(TextBox189.Text) Dim i As Long Dim j As Long Dim V As Double Dim Vg As Double Dim P As Double Dim Pg As Double Dim Vbin As Double ''''''''''''' ''''''''''''' '''''''Calculo media y desviacion del error Dim error_p As Double '(Preal-Pestimada) Anexo B. Código del Algoritmo B-14 ' VectorP(i) = -P - codP 'filtro como si fuera por potencia 30000 en P ' End If ' End If ' Next ' End If 'Next End Sub