Intensificación en Electricidad

105
Equation Chapter 1 Section 1 Proyecto Fin de Grado Grado en Ingeniería de las Tecnologías Industriales Intensificación en Electricidad Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial Autor: Ángel Berzal Pérez-Solano Tutores: Juan Manuel Roldán Fernández Ángel Luis Trigo García Departamento de Ingeniería Eléctrica Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2016

Transcript of Intensificación en Electricidad

Page 1: Intensificación en Electricidad

Equation Chapter 1 Section 1

Proyecto Fin de Grado

Grado en Ingeniería de las Tecnologías Industriales

Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias

de Ofertas del Régimen Especial

Autor: Ángel Berzal Pérez-Solano

Tutores: Juan Manuel Roldán Fernández

Ángel Luis Trigo García

Departamento de Ingeniería Eléctrica

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2016

Page 2: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

2

Page 3: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

3

Proyecto Fin de Grado

Grado en Ingeniería de las Tecnologías Industriales

Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas

Estrategias de Ofertas del Régimen Especial

Autor:

Ángel Berzal Pérez-Solano

Tutores:

Juan Manuel Roldán Fernández

Ángel Luis Trigo García

Departamento de Ingeniería Eléctrica

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2016

Page 4: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

4

Page 5: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

5

Resumen

La actividad de producción de energía eléctrica a partir de fuentes de energía renovables, reviste una

importancia fundamental en la consecución de los objetivos de mejora del medio ambiente, seguridad del

abastecimiento energético y desarrollo tecnológico e innovación.

Durante los últimos años se ha producido un desarrollo muy importante de las tecnologías de

producción de energía eléctrica a partir de estas fuentes, que integraban el anteriormente denominado régimen

especial. Este crecimiento fue posible, en parte, gracias a la existencia de sucesivos marcos normativos de

apoyo que establecían incentivos económicos a la producción de energía eléctrica con dichas tecnologías.

Este entorno favorable, propició la rápida superación de las previsiones iniciales, lo que unido a la

progresiva reducción de los costes tecnológicos hizo necesario, en garantía tanto del principio de rentabilidad

razonable como de la propia sostenibilidad financiera del sistema, acometer modificaciones en el marco

normativo, dando lugar a la aprobación del Real Decreto 413/2014, del 6 de junio por el que se regula la

actividad de producción de energía eléctrica a partir de fuentes de energía renovables, cogeneración y residuos.

Esta nueva regulación plantea un nuevo contexto, en el que estas unidades de generación se equiparan

en el mercado eléctrico al resto de tecnologías convencionales, debiendo de actualizar sus estrategias de oferta

en los mercados diarios.

En el presente trabajo se pretende componer posibles escenarios y estudiar el impacto de los mismos

en el Mercado Eléctrico de la Energía

Page 6: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

6

Page 7: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

7

Abstract

The energy activity production from renewable energy sources is of fundamental importance in

achieving the objectives of improving the environment, security of energy supply and technological

development and innovation.

In recent years there has been a very important development of technologies in electricity production

from these sources, which formerly made up the special regime. This growth was possible due to the existence

of successive regulatory frameworks established to support the electricity production from these sources with

economic incentives.

This favorable environment, led to the rapid improvement of the initial forecasts, which together with

the progressive reduction of technology costs guaranteed the principle of reasonable profitability and financial

sustainability of the system itself, there has been changes to the regulatory framework, leading to the approval

of Royal Decree 413/201, of June 6 in which the activity production regulates electricity from renewable

energy sources, cogeneration and waste.

This new regulation raises a new context in which these generating units are equivalent in the

electricity market to other conventional technologies, having to update their bidding strategies in the daily

markets.

In this proyect the aim is to compose scenarios and study the impact there would be on the Electric

Energy Market.

Page 8: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

8

Page 9: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

9

Índice

Resumen 5

Abstract 7

Índice 9

Índice de Tablas 11

Índice de Figuras 13

1 Introducción 15

1.1 Justificación 15

1.2 Objetivos 15

2 Mercado Eléctrico 17

3 Marco Regulatorio y Normativo 21

4 Casación del Mercado Diario mediante curvas de oferta y demanda agregada 25

5 Planteamiento y Ejecución 29

5.1 Datos de partida 30

5.2 Determinación de unidades de Régimen Especial 31

5.3 Modificación de precios y simulación de la casación 33

5.4 Presentación y tratamiento de resultados 37

6 Casos de Estudio y Análisis de Resultados 39

6.1 Caso Cero 39

6.2 Análisis anual para toda unidad de régimen especial 41

6.2.1 Caso 1: Cambio de precio de oferta a 5 €/MWh 41

6.2.2 Casos 2, 3 y 4: Cambio de precios de oferta a 10, 15 y 20 €/MWh 43

6.3 Análisis estacional 47

6.3.1 Primavera 47

6.3.2 Verano 49

6.3.3 Otoño 50

6.3.4 Invierno 52

6.4 Análisis económico 53

7 Conclusiones 57

8 Líneas Futuras 59

9 Bibliografía y Fuentes 61

10 Anexos 63

10.1 Función “CreaListaNombresCab” 63

10.2 Función “ImportCAB” 64

10.3 Función “SOLOPotenciasCAB” 65

10.4 Función “UnidadesSINspace” 67

10.5 Función “SacaUdsyPots” 68

10.6 Función “UnidadesSNSR” 68

10.7 Función “PMax” 69

10.8 Función “SumaPyUNIT” 71

10.9 Función “MayYmenFINAL” 71

10.10 Función “CreaListaNombres” 72

10.11 Función “pruebacurvaagregada4” 73

10.12 Función “SimpleMatch2” 77

10.13 Script “CambiaOrigFINAL” 78

Page 10: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

10

10.14 Script “pruebacurvaagregada5” 80

10.15 Función “CambiapreciosM” 85

10.16 Función “PruebaEstacionalfuncion” 88

10.17 Función “CambiosEnergiaFinal” 97

10.18 Función “Beneficios” 101

Page 11: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

11

ÍNDICE DE TABLAS

Tabla 1: Resultados CASO 1 .................................................................................................................................... 42

Tabla 2: Resultados CASO 2 .................................................................................................................................... 44

Tabla 3: Resultados CASO 3 .................................................................................................................................... 44

Tabla 4: Resultados CASO 4 .................................................................................................................................... 44

Tabla 5: Resultados PRIMAVERA ......................................................................................................................... 49

Tabla 6: Resultados VERANO ................................................................................................................................ 50

Tabla 7: Resultados OTOÑO ................................................................................................................................... 51

Tabla 8: Resultados INVIERNO .............................................................................................................................. 52

Tabla 9: Resultados “Beneficios” ............................................................................................................................ 54

Tabla 10: Precio Medio de Retribución Real 2014 ................................................................................................. 55

Tabla 11: Resultados Precio Medio Retribución Total para los casos de estudio ................................................. 56

Page 12: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

12

Page 13: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

13

ÍNDICE DE FIGURAS

Figura 1: Ejemplo curvas agregadas de oferta y demanda en la hora 21 del 26/02/2014 .................................... 19

Figura 2: Evolución de la Retribución Regulada en España .................................................................................. 22

Figura 3: Ilustración del desplazamiento vertical de curvas ................................................................................... 25

Figura 4: Ejemplo caso PMODIFICADO > PORIGINAL ...................................................................................................... 26

Figura 5: Ilustración del desplazamiento horizontal de curvas .............................................................................. 27

Figura 6: Ejemplo PMODIFICADO <= PORIGINAL ............................................................................................................ 27

Figura 7: Ejemplo de reordenamiento de curvas ..................................................................................................... 28

Figura 8: Diagrama de flujo esquemático del proceso de obtención de resultados .............................................. 29

Figura 9: Extracto de reglamento de OMIE para disposición de ficheros CAB ................................................... 31

Figura 10: Diagrama de flujo esquemático de la determinación de unidades de Régimen Especial ................... 32

Figura 11: Diagrama de flujo esquemático del proceso de modificación de precios ........................................... 34

Figura 12: Diagrama de flujo esquemático para el proceso de simulación de la casación ................................... 34

Figura 13: Ejemplo de “corte limpio” ...................................................................................................................... 35

Figura 14: Ejemplo de corte horizontal .................................................................................................................... 36

Figura 15 : Ejemplo de corte vertical ....................................................................................................................... 36

Figura 16: Distribución de precios horarios CASO 0 ............................................................................................. 39

Figura 17: Ejemplo acoplamiento horario. Hora 5 del 10/12/2014 ....................................................................... 40

Figura 18: Distribución de precios horarios CASO 1 ............................................................................................. 41

Figura 19: Ejemplo aclaratorio ................................................................................................................................. 42

Figura 20: Ejemplo aclaratorio 2 .............................................................................................................................. 43

Figura 21: Representación del % Horas que cambian de precio ............................................................................ 45

Figura 22: Representación del % Aumento del precio medio ................................................................................ 45

Figura 23: Distribución de precios horarios CASO 2 ............................................................................................. 46

Figura 24: Distribución de precios horarios CASO 3 ............................................................................................. 46

Figura 25: Distribución de precios horarios CASO 4 ............................................................................................. 46

Figura 26: Distribución de precios horarios PRIMAVERA .................................................................................. 47

Figura 27: Distribución precios horarios y energía casada PRIMAVERA ........................................................... 48

Figura 28: Distribución precios horarios y energía casada 24horas PRIMAVERA ............................................. 48

Figura 29: Precio Original vs %Cubierto Demanda por Régimen Especial ......................................................... 49

Figura 30: Distribución de precios horarios VERANO .......................................................................................... 50

Figura 31: Distribución de precios horarios OTOÑO ............................................................................................. 51

Figura 32: Distribución precios horarios y energía casada OTOÑO ..................................................................... 51

Figura 33: Distribución de precios horarios INVIERNO ....................................................................................... 52

Figura 34: Evolución Aumento de Ingresos TOTAL ............................................................................................. 54

Figura 35: Comparación Aumento de Ingresos TOTAL y Retribución Específica Anual 2014 ......................... 55

Page 14: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

14

Page 15: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

15

1 INTRODUCCIÓN

1.1 Justificación

Las fuentes de energía de origen renovable representan en España alrededor del 35% de la tecnología

de generación energética total instalada y cubren entre el 35% y el 40% de la demanda de energía anual. Las

grandes ventajas que representan este tipo de tecnologías, como la de ser fuentes de energía teóricamente

inagotables o la de ser energías limpias para el Medio Ambiente, incitan a invertir en ellas y desarrollarlas. Sin

embargo, la incertidumbre respecto a la disposición del recurso y sus bajos rendimientos, presentan un gran

inconveniente para la competitividad de las mismas frente a otro tipo de tecnologías más maduras y que

pueden asegurar una disposición inmediata de energía en un mercado liberalizado de energía eléctrica.

Para promover y rentabilizar su uso y gestión, el Gobierno de España propuso un sistema de

retribución específico para estas tecnologías, basado en un sistema de primas variables según ciertos factores.

Por tanto, los productores que hicieran uso de este medio para desarrollar su negocio, aparte del precio

marcado por la casación de mercado correspondiente, verían incrementado sus ingresos para hacer frente a

dicha baja rentabilidad inicial.

Durante el año 2013 fue anunciado por el Gobierno de España un cambio en la concesión de estas

ayudas, donde se certifica la modificación del sistema de primas que llevaba en vigor hasta la fecha. Frente a

este nuevo contexto surge la cuestión sobre la posición a la que quedan relegadas estas unidades dentro del

mercado diario de energía eléctrica. Se plantea pues, un nuevo escenario para estos generadores de origen

renovable. Si bien las reglas de oferta y demanda del mercado diario permanecen inalteradas, este cambio

origina que estas unidades, catalogadas como Régimen Especial, se enfrenten al mercado con objetivos

diferentes.

Se justifica así este estudio, en el cual quedan expuestas posibles estrategias de oferta de energía que

podrían ser asumidas por estos generadores, pertenecientes al antiguo Régimen Especial, para desarrollar un

papel competitivo frente a otro tipo de tecnologías dentro del mercado eléctrico

1.2 Objetivos

En el presente trabajo se trata de estudiar el impacto que puede tener este cambio de régimen

retributivo en el mercado eléctrico de la energía. Para ello se presentan y analizan una serie de posibles

escenarios en los que las unidades identificadas como Régimen Especial alteran sus estrategias de venta de

energía para hacer frente al objetivo fundamental de cualquier empresa: maximizar beneficios.

Se utilizan para ello de los datos de mercado para el año 2014. Si bien este estudio podría realizarse

para cualquier año, se ha escogido el año 2014 por ser el año posterior al anuncio del citado cambio normativo.

Page 16: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

16

Page 17: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

17

2 MERCADO ELÉCTRICO

Siendo el fin de este proyecto el estudio de diversas situaciones de casación del mercado eléctrico,

resulta necesario realizar una introducción a éste. Sin objeto de profundizar en aspectos que puedan ser

irrelevantes para la comprensión de este complejo sistema, se intentará explicar la historia y funcionamiento

del mismo lo más brevemente posible.

Hasta el año 1997 el sistema eléctrico español estaba estructurado como un sistema regulado en el que

el Gobierno establecía el precio de la electricidad, que remuneraba la totalidad de los costes incurridos

(principalmente generación, transporte y distribución de la electricidad) a un conjunto de compañías eléctricas

privadas. En búsqueda de una mayor eficiencia conjunta del sector, se promulgó la Ley 54/1997 de 27 de

noviembre del Sector Eléctrico (como transposición de la Directiva 96/92/CE de 19 de diciembre de 1996 ),

que liberalizaba el mercado eléctrico en España, introduciendo así la competencia entre compañías y

dividiendo el sector en generación, transporte, distribución y comercialización.

La estructura legal y comercial del sistema eléctrico español se basa en el reconocimiento de dos tipos

de actividades: actividades parcialmente liberalizadas (generación y comercialización) y actividades reguladas

(transporte y distribución). El término “mercado eléctrico” se refiere al conjunto de actividades libres y está

constituido por dos sectores principalmente: el mercado minorista (o comercialización) a los clientes finales y

el mercado mayorista de la electricidad (el MIBEL).

El Mercado Ibérico de la Electricidad (MIBEL) es el mercado eléctrico mayorista en el cual se

encuentran incluidos tanto España como Portugal , como resultado de un proceso de cooperación desarrollado

por los gobiernos de ambos países con el fin de promover la integración de los sistemas eléctricos de los

mismos. Este mercado mayorista está constituido por una serie de distintos mercados donde los “agentes de

mercado” (productores de electricidad, distribuidores, comercializadores y consumidores cualificados)

compran y venden energía eléctrica. Estos mercados pueden ser mercados bilaterales o mercados organizados.

Dentro de los mercados organizados destacan dos tipos de organización, los mercados spot y los mercados a

plazo. Los primeros se caracterizan por negociar una entrega del producto de manera inmediata. En cambio, en

los mercados a plazo se negocian entregas de energía en el futuro.

Los mercados organizados integrantes del MIBEL se encuentran regulados por el Operador del

Mercado Ibérico (OMI), el cual, a su vez, pasa a convertirse en una entidad compuesta por dos sociedades (una

por cada país): OMIE (polo español), donde se negocian productos de corto plazo (para el día siguiente y

durante el mismo día de negociación) y OMIP (polo portugués), donde se negocian productos de más largo

plazo

El Operador del Mercado Ibérico Español (OMIE) es el responsable de la gestión económica del

sistema referida a los mercados diario e intradiario. Le corresponde recibir las ofertas de venta y de adquisición

de energía eléctrica, efectuando la gestión de las mismas, así como la liquidación de todas las operaciones de

los mercados diario e intradiario.

La Secretaría de Estado de Energía, por medio de la Resolución de 27 de enero de 2014, regula las

reglas de funcionamiento del mercado diario e intradiario de producción de energía eléctrica. Se hace

referencia también al artículo 3.10 de la Ley 24/2013, de 26 de diciembre, donde quedan aprobadas las reglas

de mercado y se regula los términos en los que se desarrolla la gestión económica y técnica del sistema.

De entre todos los mercados organizados destaca el Mercado Diario, gestionado por OMIE. Su

función es efectuar las transacciones de energía eléctrica para el día siguiente. Para ello, los agentes de

Page 18: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

18

mercado, compradores y vendedores, presentan ofertas de venta y adquisición de energía eléctrica en dicho

mercado diario. Este procedimiento se conoce como día D-1, pues el precio de la energía y el volumen de ésta

quedan fijados en un horizonte horario para el día posterior al de la sesión. Los precios quedan programados

diariamente en 24 períodos que se corresponden con la Hora Europea Central (CET). Este precio es marcado

por el punto de equilibrio entre las curvas de la oferta agregada de compra y de venta de energía. Para este

proceso de casación, el operador de mercado ejecuta un algoritmo que recibe el nombre de Euphemia. Este

algoritmo tiene como objetivo maximizar el bienestar de mercado, definiendo el mismo como una suma del

beneficio de ofertas de compra y ofertas de venta.

Una vez que el proceso de mercado diario concluye y, por tanto, se fija el precio y la cantidad de

energía para cada hora, tiene lugar un procedimiento de restricción técnica. En dicho proceso, el operador del

sistema, que en nuestro país es Red Eléctrica de España (REE), se encarga de estudiar la viabilidad técnica

para formalizar la cumplimentación de los contratos establecidos en el mercado diario. Una vez que este

operador del sistema aprueba las transacciones, el proceso de casación prosigue con la aparición de los

mercados intradiarios.

Para una gestión en periodos de tiempo más estrechos existen los citados mercados intradiarios. Son

también conocidos como mercados de ajustes y se llevan a cabo en el día en curso. Tienen por objeto

configurar un programa definitivo y viable de precio y volumen de energía mediante la presentación de ofertas

de compra y venta de la misma, disponiendo de hasta 6 sesiones para lograrlo. Se corrigen las imperfecciones

que puedan quedar en el programa, se terminan de programar las interconexiones, se atienden las incidencias y

se reprograman aquellas en las que fuese necesario.

Los agentes de mercados que actúan como compradores son comercializadores, consumidores

directos y consumidores de último recurso. Estos agentes, al igual que las unidades de venta, disponen como

plazo máximo para presentar dichas ofertas hasta las 12.00 del día.

Se puede diferenciar entre dos tipos de presentaciones de ofertas, ofertas sencillas y ofertas complejas.

En las ofertas sencillas el agente de compra hace llegar al operador de mercado una expresión de precio y

cantidad de energía para cada tramo horario, pudiendo llegar a dividirse cada hora hasta en 25 tramos. Por su

parte en las ofertas complejas, los agentes, aparte de cumplir con los requisitos exigidos en las ofertas simples,

determinan algunas condiciones como indivisibilidad, ingresos mínimos, parada programada o condición de

gradiente de carga. La importancia de estos factores reside en que pueden determinar la casación, o no, de la

unidad, llegando a no realizarse la misma si no se cumplieran algunos de los objetivos marcados.

La estructura del mercado diario es la de un mercado marginalista en el que todas las ventas o

compras de energía se retribuyen, para cada hora, al precio final de casación para dicha hora. Esto quiere decir

que la última unidad que se necesite para satisfacer la demanda va a ser la que establezca el precio al que se les

pagará a todas las demás que hayan entrado en la casación. Este sistema de mercado induce a que los

participantes del mismo oferten su coste marginal de producción.

Los agentes compradores y vendedores pueden acudir al mercado mayorista con independencia de

que estén en España o en Portugal. Sus ofertas de compra y venta son aceptadas atendiendo a su orden de

mérito económico, hasta que la interconexión entre España y Portugal se ocupa totalmente. Si en una cierta

hora del día la capacidad de la interconexión es suficiente para permitir el flujo de electricidad negociado por

los agentes, el precio de la electricidad en esa hora será el mismo para España y Portugal. Si por el contrario,

en esa hora la interconexión se ocupa totalmente, en ese momento el algoritmo para la fijación del precio se

ejecuta de manera separada de tal forma que aparece una diferencia de precios entre ambos países.

Page 19: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

19

El mecanismo descrito para la formación del precio de la electricidad en el mercado diario de España

y Portugal se conoce como “market splitting”, y es el mismo mecanismo que se utiliza a nivel Europeo.

Durante el año 2014 el 90 % del tiempo el precio de la electricidad fue igual en España que en Portugal, lo

que muestra un correcto funcionamiento de la integración del mercado ibérico.

Figura 1: Ejemplo curvas agregadas de oferta y demanda en la hora 21 del 26/02/2014

Page 20: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

20

Page 21: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

21

3 MARCO REGULATORIO Y NORMATIVO

La justificación de este proyecto, como ya se introdujo, está basada en un cambio normativo del

sistema de primas. Debido a este cambio, las unidades de generación de origen renovable han visto alterada las

condiciones y políticas que regulan este sistema de incentivación. La intención de este apartado no es más que

el análisis de la posición que toman dichas unidades en el nuevo marco jurídico. A su vez, debido a su interés,

es posible comparar el papel de estas unidades previo al cambio normativo y posterior a este.

La normativa de referencia en el ámbito nacional sobre el régimen especial de la energía eléctrica ha

ido variando con el transcurso de los años. La primera regulación de las energías de origen renovable fue la

Ley 82/1980, de 30 de diciembre, sobre conservación de energía. El objeto de la Ley consistía en establecer

una serie de acciones dirigidas a optimizar, potenciar y promover la transformación de la energía y las energías

renovables. La razón de ser de estas acciones radica en la necesidad de reducir la dependencia energética que

España tenía del exterior.

La primera definición del Régimen Especial aparece en la Ley 40/1994, de 30 de diciembre, de

ordenación del Sistema Eléctrico Nacional, donde queda definida como “la energía producida en régimen que

se califica de especial atendiendo a su carácter accesorio de otra actividad industrial, a la energía primaria

utilizada, o a su reducida potencia”, produciéndose así el asentamiento de las fases jurídicas y económicas de

ésta tecnología.

Tras este primer esbozo del Régimen Especial se han dispuesto diversas medidas para promover su

uso por encima de otras alternativas. Así como el cumplimiento de determinados objetivos, fijados con

especial interés desde determinadas instituciones y organismos comunitarios e internacionales, como por

ejemplo la reducción de la producción de gases de efecto invernadero. Por esto, se ha ido desarrollando un

marco normativo específico sobre el Régimen Especial en el que puede apreciarse una evolución en su

tratamiento económico y legislativo.

Se encuentra de esta manera la Ley 54/1997, de 27 de noviembre, del Sector Eléctrico, donde el

Régimen Especial quedó definido como “instalaciones cuya potencia instalada no supere los 50 MW”. Esta

Ley propone la distinción entre las producciones de energía ordinaria, que no hacen uso de fuentes de origen

renovables, y las de Régimen Especial. También establece el marco económico por el que se rigen todas las

unidades en cuanto a las retribuciones obtenibles.

Debido al interés general, ya mencionado, en el uso de tecnología limpia, aparece el Real Decreto

841/2002, de 2 de agosto, por el que se regula para las instalaciones de producción de energía eléctrica de

Régimen Especial su incentivación en la participación en el mercado de producción, determinadas

obligaciones de información de sus previsiones de producción, y la adquisición por los comercializadores de

su energía eléctrica producida. En este Real Decreto se establece la obligación, para todas las instalaciones de

potencia mayor de 50MW, de participar en el mercado eléctrico, quedando así enmarcadas dentro del régimen

ordinario.

El Real Decreto 2818/1998, de 23 de diciembre, sobre producción de energía eléctrica por

instalaciones abastecidas por recursos o fuentes de energía renovables, residuos y cogeneración, se aprueba

como desarrollo reglamentario de algunos aspectos de la antes mencionada Ley 54/1997. Dicho Real Decreto

tiene por objeto determinar una prima anual del sector renovable. Posteriormente, el Real Decreto 436/2004, se

encargará de actualizar las condiciones que previamente se regularon por los Real Decreto y Ley anteriores,

Page 22: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

22

haciendo especial referencia a la actualización anual de las primas. A su vez, estableció dos alternativas que

los productores de régimen especial tienen para la remuneración de la energía eléctrica generada:

Negociar directamente con una empresa distribuidora, vendiéndole energía a precio regulado. Dicha

tarifa dependería de la potencia de la planta y de la edad de la misma.

Acudir al mercado eléctrico a vender su energía como cualquier otro productor. En este caso se

percibiría el precio de mercado y una prima.

Figura 2: Evolución de la Retribución Regulada en España

Es en 2009 cuando el Gobierno anuncia el déficit tarifario existente en ese momento. Se muestra en la

Figura 2 la evolución del total de primas anuales que han ido obteniendo los generadores renovables. La

importante magnitud que éstas habían alcanzado, era, según el propio Gobierno, la principal causa de dicho

déficit tarifario.

Para frenar e intentar remediar de una manera efectiva este acuciante problema, se han planteado

diversas modificaciones del sistema de retribución de primas como por ejemplo el Real Decreto-ley 9/2013, de

12 de julio, por el que se adoptan medidas urgentes para garantizar la estabilidad financiera del sistema

eléctrico, que entre otros aspectos, establece un nuevo régimen retributivo para las instalaciones de generación

de energía renovable, cogeneración y residuos y una serie de principios retributivos adicionales para el

transporte y distribución de energía eléctrica, dejando obsoleto el modelo de incentivo previo que estaba

vigente desde la Ley 54/1997.

En definitiva, los continuos cambios normativos han supuesto una importante distorsión en el normal

funcionamiento del sistema eléctrico, necesaria de corregir para aportar la estabilidad regulatoria que la

actividad eléctrica necesita. Esta seguridad regulatoria, unida a la necesidad de acometer las reformas

necesarias para garantizar la sostenibilidad del sistema a largo plazo y de resolver las señaladas deficiencias

existentes en el funcionamiento del sistema, dieron lugar a la aprobación de una reforma global del sector,

basada en un nuevo régimen de ingresos y gastos del sistema eléctrico, que tratará de devolver al sistema una

sostenibilidad financiera perdida hace largo tiempo y cuya erradicación no se ha conseguido hasta la fecha

mediante la adopción de medidas parciales.

Por todo esto nace la actual Ley 24/2013, de 26 de diciembre, del Sector Eléctrico, que señala: “tiene

como finalidad básica establecer la regulación del sector eléctrico garantizando el suministro eléctrico con

los niveles necesarios de calidad y al mínimo coste posible, asegurar la sostenibilidad económica y financiera

0

2000

4000

6000

8000

10000

2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015Ret

rib

uci

ón

( m

illo

nes

€)

Año

Evolución de la Retribución Regulada en España

Prima anual

Page 23: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

23

del sistema y permitir un nivel de competencia efectiva en el sector eléctrico, todo ello dentro de los principios

de protección medioambiental de una sociedad moderna.”

Esta Ley del Sector Eléctrico mantenía el régimen retributivo del Real Decreto-ley 9/2013, hasta que,

finalmente, aparece el Real Decreto 413/2014, de 6 de junio, por el que se regula la actividad de producción de

energía eléctrica a partir de fuentes de energías renovables, cogeneración y residuos, estableciéndose un nuevo

procedimiento de cálculo de las primas percibidas.

De acuerdo con este nuevo marco, las instalaciones podrán percibir durante su vida útil regulatoria,

adicionalmente a la retribución por la venta de la energía valorada al precio del mercado, una retribución

específica compuesta por un término por unidad de potencia instalada que cubra, cuando proceda, los costes de

inversión para cada instalación tipo que no puedan ser recuperados por la venta de la energía en el mercado, al

que se denomina retribución a la inversión, y un término a la operación que cubra, en su caso, la diferencia

entre los costes de explotación y los ingresos por la participación en el mercado de producción de dicha

instalación tipo, al que se denomina retribución a la operación.

La vida útil regulatoria de cada instalación está determinada por tecnologías, y contempla desde 20

años para la eólica hasta un máximo de 30 para la fotovoltaica, considerando como fecha de inicio para la

contabilización el 1 de enero del año siguiente al de la autorización de explotación definitiva de la instalación.

Con todo esto se concluye que, a expensas de nuevos cambios en el marco normativo, existe ya una

fecha límite a partir de la cual se dejarán de pagar retribuciones adicionales a las unidades de tecnologías de

origen renovable.

Resulta pues interesante intentar dilucidar qué futuro escenario acontecerá en el mercado diario

cuando estos generadores del antiguo Régimen Especial se encuentren con el requisito de rentabilizar sus

inversiones y generar mayores beneficios. Conocido el objetivo de este estudio, queda argumentada la

justificación del mismo.

Page 24: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

24

Page 25: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

25

4 CASACIÓN DEL MERCADO DIARIO MEDIANTE

CURVAS DE OFERTA Y DEMANDA AGREGADA

El comportamiento esperado por el mercado al modificar las ofertas del Régimen Especial va a ser

muy similar al estudiado en el artículo publicado por el Departamento de Ingeniería Eléctrica de la

Universidad de Sevilla: “Impact of Renewable Generation in the Spanish Electricity Market” [11]

.

El método utilizado en este artículo ha sido uno similar al procedimiento usado por OMIE, con el

propósito de analizar cualquier escenario considerado. La información básica es la generación por orden de

mérito económico horaria y las curvas de demanda simples agregadas horarias, obtenidas de los datos

históricos disponibles en la página web de OMIE.

Teóricamente, al tener una curva escalonada Energía/Precio, una modificación del precio en cualquier

tramo de la curva de oferta de energía (integración de una cantidad de energía renovable a precio 0€/MWh en

la Figura 3) va a provocar un desplazamiento vertical de la misma que dará lugar a un nuevo punto de corte. Al

considerar la curva de demanda de energía inelástica (no sufre alteraciones significativas ante variaciones de

precio) ese nuevo punto de corte equivaldrá al nuevo precio de mercado.

Figura 3: Ilustración del desplazamiento vertical de curvas

Cuando se desarrollen nuevos escenarios de generación haciendo cambios en las curvas de energía, es

necesario tener en cuenta la hipótesis de que las ofertas de otros agentes van a permanecer inalteradas cuando

se introduzcan o se eliminen nuevas ofertas de generación. Afortunadamente esta hipótesis puede ser

considerada satisfecha, ya que cada agente de mercado (de oferta y de compra) elabora sus ofertas sin conocer

las ofertas de los otros agentes.

Resumiendo, se puede afirmar de acuerdo a esta teoría que, al integrar una cantidad de energía como

Pre

cio

de

l me

rcad

o m

ayo

rist

a (€

/MW

h)

Energía generada y demanda (MWh)

Oferta original Demada original Oferta Modificada

Energía a precio 0€/MWh

Precio Modificado

Precio Original

ΔRenovable

Page 26: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

26

oferta de venta a precio menor que el precio original, se evidencia un desplazamiento de la curva de oferta

simple de energía hacia abajo provocando una disminución del precio de mercado.

Habiendo planteado ya el concepto teórico, resulta importante aclarar que en este estudio se está

trabajando con procedimientos de casación simple para curvas con condiciones de oferta complejas. Este

aspecto va a influir en el movimiento de las curvas, ya que, al no tener en cuenta las condiciones complejas de

la oferta, no se incluyen o extraen unidades del mercado. Lo lógico sería que, si se aumentan los precios de

oferta de un determinado grupo de unidades, estas pudieran quedarse fuera de la casación al existir ofertas

intermedias que pudieran ocupar su lugar tras la reordenación de ofertas. En este proyecto no se tienen en

cuenta las ofertas que pudieran entrar en la nueva casación, luego el movimiento de curvas esperado será algo

diferente. Se podrán distinguir dos situaciones distintas tras la reordenación de ofertas según el valor del precio

de ofertas modificado y el precio original de casación:

PMODIFICADO > PORIGINAL

Figura 4: Ejemplo caso PMODIFICADO > PORIGINAL

Al producirse el caso de la Figura 4, donde se evidencia un incremento del precio de oferta de un

grupo de unidades que inicialmente estaban ofertando a precio aceptante hasta un precio modificado mayor

que el precio original de casación, existirá un reordenamiento en sentido ascendente de las ofertas de venta de

energía que situará a estas ofertas modificadas en el punto de corte con la curva de demanda, siendo ellas las

que fijen el nuevo precio de mercado y cantidad de energía negociada. Se produce pues un movimiento

horizontal de la parte de la curva de oferta situada originalmente a la izquierda del punto de corte original,

ocupando la zona de corte con la curva de demanda el nuevo bloque de energía ofertada al nuevo precio

modificado.

Pre

cio

de

l me

rcad

o m

ayo

rist

a (€

/MW

h)

Energía generada y demandada (MWh)

Oferta modificada Demanda original Oferta original

Energía a precio 0€/MWh

Δ P

reci

o O

fert

a R

eno

vab

le

P y E originales

ΔP

Page 27: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

27

Figura 5: Ilustración del desplazamiento horizontal de curvas

Esta va a ser la situación final esperada cuando se modifiquen los precios de un grupo de ofertas de

venta de energía (Régimen Especial en este caso) en el que estos precios modificados sean mayores que el

precio original de casación para una hora concreta. Se evidencia pues un aumento del precio final de casación

y una disminución de la energía final casada. Al ser las unidades de Régimen Especial las que modifican sus

ofertas, resulta lógico aceptar que la disminución de energía casada va a provenir de estos generadores, es

decir; parte de la energía de las unidades de Régimen Especial, que modifican el precio de sus ofertas de venta

de energía a un valor mayor del original de casación, no va a ser casada.

PMODIFICADO <= PORIGINAL

Figura 6: Ejemplo PMODIFICADO <= PORIGINAL

Pre

cio

de

l me

rcad

o m

ayo

rist

a (€

/MW

h)

Energía generada y demandada (MWh)

Oferta modificada Demanda Original Oferta original

Energía a precio 0€/MWh

Desplazamiento

Desplazamiento

Pre

cio

de

l me

rcad

o m

ayo

rist

a (€

/MW

h)

Energía generada y demandada (MWh)

Oferta modificada Demanda original Oferta original

Energía a precio 0€/MWh

ΔP

reci

o R

eno

vab

le

ΔP

P y E originales

Page 28: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

28

Al producirse el caso de la Figura 6 donde se evidencia un incremento del precio de oferta de un

grupo de unidades que inicialmente estaban ofertando a precio aceptante hasta un precio modificado menor

que el precio original de casación, existirá un reordenamiento en sentido ascendente de las ofertas de venta de

energía que no va a influir sobre el precio final de casación, ya que afectará exclusivamente a las ofertas cuyos

valores de precio sean menores que los modificados. Se produce pues un movimiento horizontal de parte de la

curva que no afecta a las ofertas que determinan el punto de corte entre curvas, manteniéndose los valores de

precio y cantidad de energía final de casación inalterados.

Figura 7: Ejemplo de reordenamiento de curvas

Esta va a ser la situación final esperada cuando se modifiquen los precios de un grupo de ofertas de

venta de energía (Régimen Especial en este caso) en el que estos precios modificados sean menores o iguales

que el precio original de casación para una hora concreta. Se evidencia pues que no existe repercusión alguna

en el precio final de casación o la cantidad de energía negociada.

Pre

cio

de

l me

rcad

o m

ayo

rist

a (€

/MW

h)

Energía generada y demandada (MWh)

Oferta modificada Demanda original Oferta original

Energía a precio 0€/MWh

Desplazamiento

Inalterado

Page 29: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

29

5 PLANTEAMIENTO Y EJECUCIÓN

El estudio llevado a cabo en este trabajo, se basa en analizar el resultado de diferentes situaciones de

casaciones diarias en el mercado eléctrico. Se simulan posibles escenarios viables donde las unidades de

Régimen Especial alteran los precios de las ofertas de venta de energía que presentan en el mercado diario.

Posteriormente se realiza un análisis de estos resultados, determinando la idoneidad de esta estrategia para la

propia unidad y para el mercado en su conjunto.

Para todo esto se hace uso del software Matlab, en el que se han programado una serie de funciones y

algoritmos, basados en el método de corte de curvas agregadas complejas introducido anteriormente, capaces

de implementar el citado proceso. Diferentes detalles y aspectos relevantes de estos algoritmos se irán

comentando a lo largo de este estudio.

Se presentan a continuación los pasos que van a seguirse para llegar a obtener los resultados. Todos

los datos iniciales de los que se vale este proyecto para estudiar las diferentes estrategias de oferta están

recogidos en la página web del Operador del Mercado Ibérico de Energía, Polo Español (OMIE). Estos datos

son totalmente públicos y de libre acceso para cualquier usuario.

Figura 8: Diagrama de flujo esquemático del proceso de obtención de resultados

Una vez se hayan obtenido los datos iniciales de entrada, se habrán de seleccionar los que interesen y

disposicionarlos de forma que se pueda trabajar con ellos de manera sencilla en Matlab. Con estos datos y

conforme a ciertos criterios previamente seleccionados, se tratará de identificar todas las unidades catalogadas

como Régimen Especial para poder modificar exclusivamente la oferta de las mismas.

Conociendo ya las unidades objetivo, se procede a modificar sus precios de ofertas de venta de

energía durante todo el año y se realiza la simulación de la casación, ejecutándose las funciones

específicamente creadas para este fin y obteniéndose, para cada hora del año, una reproducción fiable de los

resultados para el proceso de casación real que hubiera tenido lugar si los precios de las ofertas de venta casada

de las unidades seleccionadas hubieran sido los prefijados para el estudio.

Finalmente, una vez se cuenta con los resultados y tras ser tratados para su correcta disposición, estos

son presentados y analizados para cada caso en particular.

Determinación de unidades de Régimen Especial

Modificación de precios de oferta

Simulación de la casación

Obtención de resultados

Page 30: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

30

5.1 Datos de partida

Los datos de los que se dispone son los valores de todas las ofertas de venta y de compra realizadas

para cada hora por cada agente que participe en el mercado, recogidos en la página web del OMIE para el año

de estudio, 2014.

Estos datos pueden encontrarse en los ficheros reconocibles como PBC, nombrados como

“curva_pbc_uof_aaaammdd”. Los ficheros PBC contienen, para cada día del año, los precios horarios y

cantidades de energía de todas las ofertas de compra y venta, ofertadas y casadas.

Se almacenan estos datos en estructuras de datos de Matlab para cada día, por lo que tendremos 365

estructuras nombradas en formato “aaaa/mm/dd”, compuestas cada una de ellas por 4 subestructuras

detalladas a continuación:

VC: Será la subestructura Venta Casada con los valores de oferta de venta que han casado tras

aplicar condiciones complejas.

VO: Será la subestructura Venta Ofertada con los valores de oferta de venta simple.

CC: Será la subestructura Compra Casada con los valores de oferta de compra que han casado

tras aplicar condiciones complejas.

CO: Será la subestructura Compra Ofertada con los valores de oferta de compra simple.

Cada una de estas subestructuras está formada por 7 submatrices igualmente indexadas de las cuales

sólo se utilizan las 4 siguientes:

UnitName: Submatriz con los nombres de las unidades que han casado/ofertado para cada

hora.

Precio: Submatriz con los valores de precio casado/ofertado por cada unidad para cada hora.

Energy: Submatriz con los valores de energía casada/ofertada por cada unidad para cada hora.

Hour: Submatriz con los valores de las horas.

Así pues si, por ejemplo, se quiere acceder al contenido de unidades, precio y energía de compra que

se ha casado a la hora tres, sólo hay que acceder a la estructura CC.hora y aislar los índices de datos con valor

igual a tres, entonces CC.UnitName, CC.Energy y CC.Precio mostrarán, para dichos índices, los datos que se

quieren utilizar.

Los datos de los cuales se ha obtenido la información necesaria para identificar las unidades de

Régimen Especial son los que se encuentran en los ficheros reconocibles como CAB.

En los ficheros CAB, nombrados como “cab_aaaammdd” viene recogida la información de cabecera

de las ofertas que se presentaron a mercado diario. Los datos aparecen distribuidos por filas según la unidad y

por columnas según el dato a mostrar. La disposición de los mismos es fija y viene recogida en el reglamento

de OMIE. En los ficheros CAB encontramos muchos datos relativos a las condiciones de oferta compleja de

las unidades de venta de energía, pero la única información que se va a extraer para este trabajo es el código de

la unidad ofertante y el valor de potencia máxima.

Page 31: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

31

Figura 9: Extracto de reglamento de OMIE para disposición de ficheros CAB

5.2 Determinación de unidades de Régimen Especial

Conocido el propósito de este trabajo, resulta inherente al mismo la necesidad de identificar y

seleccionar aquellas unidades catalogadas como Régimen Especial. Este proceso, en apariencia sencillo,

resulta bastante tedioso teniendo en cuenta que no existe ninguna fuente de información clara y precisa acerca

de la tecnología utilizada por las unidades de venta de energía a la cual se pueda recurrir.

Para realizar pues, el proceso de clasificación de unidades de Régimen Especial, se establecen unas

hipótesis de partida referentes a los datos de que disponemos:

1. Se consideran unidades de venta de energía de origen renovable aquellas que ofertan durante

todo el año su energía a precio 0 €/MWh

2. Se consideran unidades exclusivamente de potencia máxima mayor o igual que 15MW.

La primera hipótesis se justifica ya que sólo las centrales nucleares y las unidades de origen renovable

venden durante todo el año su energía a precio aceptante, es decir, a 0 €/MWh, por sus características técnicas

y retributivas: las primeras por su baja capacidad de parada y las segundas por su incapacidad de almacenaje

de energía primaria y su privilegiado régimen retributivo basado en las primas. Este dato puede resultar

llamativo un principio, pero hay que tener en cuenta que, como ya se introdujo en la explicación del mercado

eléctrico, al tratarse de un sistema de mercado marginalista, el precio al que se retribuye a todas las unidades

que han casado su energía en una hora determinada es el precio marcado por la última unidad necesaria para

cubrir la demanda en esa hora, luego se induce a dichas unidades a ofertar la energía a su coste marginal de

producción, que resulta ser 0 €/MWh al no tener costes variables significativos.

La segunda hipótesis se justifica ya que resulta importante filtrar dentro de las unidades de origen

renovable las de pequeña potencia como plantas de cogeneración o pequeños huertos solares, y las de gran

potencia como parques eólicos o plantas termosolares. Estas últimas, al ser las de mayor potencia y por tanto

Page 32: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

32

mayor producción de energía, son las que realmente pueden marcar diferencias en el mercado eléctrico

modificando sus ofertas.

A continuación se muestra un diagrama de flujo que esquematiza el proceso de determinación de

unidades de Régimen Especial:

Figura 10: Diagrama de flujo esquemático de la determinación de unidades de Régimen Especial

A continuación se detallan las funciones implementadas en Matlab utilizadas para ejecutar el filtrado

de unidades:

Función "CreaListaNombrescab" [10.1]

para crear todos los nombres de los ficheros CAB en formato

CAB_aaaammdd para poder leerlos después.

Función "import_cab" [10.2]

para leer los códigos de cada unidad.

Función "SOLOPotenciasCAB" [10.3]

para leer exclusivamente la columna de potencias del fichero

CAB.

Leer precio ofertado durante todo el año POF

Extraer códigos de unidad y potencias máximas PMÁX

Es unidad de Régimen Especial

¿ PMÁX > 15MW?

FIN

FIN

FIN

NO

NO

NO

SI

SI

¿Es nuclear?

SI

¿ POF > 0 ?

Page 33: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

33

Función "UnidadesSINspace" [10.4]

. Está función se usa para disposicionar los datos de manera sencilla

y fácilmente accesible. Simplemente lee un fichero de texto y almacena sus datos en un vector tipo

cell.

Función "SacaUdsyPots" [10.5]

. Función que combina las cuatro funciones anteriores para leer todos

los ficheros CAB del año y almacenar todas las unidades y sus respectivas potencias en los vectores

tipo cell 'unidades' y ‘potencias’. Tener en cuenta que aquí están almacenadas todas las unidades de

todos los CAB, luego casi todas están repetidas.

Función “UnidadesSNSR” [10.6]

. Con esta función se eliminan de la lista las unidades nucleares, ya

que el código de unidad de éstas sí es conocido. También se eliminan las unidades repetidas para dejar

una única lista con el total de unidades que han participado en el mercado durante el año

Función “PMax” [10.7]

. Se observa en los ficheros CAB que la potencia máxima de ciertas unidades

varía durante el año, normalmente incrementándose. Este cambio es producido por modificaciones

técnicas en las unidades como la inclusión de nuevos grupos generadores. La función “PMax” asigna

a cada unidad la potencia máxima que haya registrado en los ficheros CAB durante el año y organiza

un listado con las unidades de potencia mayor o igual a 15MW.

Función “SumaPyUNIT” [10.8]

. Esta función recibe la lista de unidades obtenida en “PMax” y accede

a los datos de oferta simple de todo el año de éstas para almacenarlos en una matriz que será

posteriormente tratada por la función “MayYmenFINAL”.

Función “MayYmenFINAL” [10.9]

. Esta última función realiza el filtrado de unidades que durante todo

el año han ofertado su energía a precio aceptante 0€/MWh y proporciona la lista final de unidades que

recibirá el algoritmo de simulación para poder modificar su oferta.

5.3 Modificación de precios y simulación de la casación

Se muestran a continuación dos diagramas de flujos que esquematizan los procesos de modificación

de precios y simulación de la casación:

Page 34: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

34

Figura 11: Diagrama de flujo esquemático del proceso de modificación de precios

Figura 12: Diagrama de flujo esquemático para el proceso de simulación de la casación

SI

Leer precio de oferta “i” de las “N” ofertas de venta casadas en una hora -> VC.Precio(i)

VC.Precio(i)=P

Pasar a simulación de casación

FIN

i=i+1

NO

SI

NO ¿i=N?

¿Es de R.E?

Obtención ofertas de venta modificadas

Reordenación ofertas de menor a mayor precio

Creación curvas escalonadas de oferta y demanda

Obtención del punto de corte (Energía, Precio)

¿Situación excepcional?

Aplicar criterios para situaciones excepcionales

FIN

FIN

SI

NO

Page 35: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

35

Una vez se disponen de los datos de oferta de venta y compra, simple y casada, para todas las horas

del año y de la lista de unidades catalogadas como Régimen Especial, disposicionado todo en un formato

manejable e intuitivo, se puede ejecutar la función “CambiaPreciosM(P)” [10.15]

, que recibe un precio P al que

modifica los precios de cada oferta de venta de energía de las unidades listadas, y simula la casación del

mercado diario para las 8760 horas del año.

Durante el proceso de casación existen determinadas situaciones de corte de curvas que es preciso

comentar. Hay que tener en cuenta que, al ser las curvas agregadas de venta y adquisición de energía eléctrica

curvas discretas por escalones, pueden existir, y existen, situaciones en el que el cruce de ambas curvas se

produzca en un tramo horizontal o vertical, accediéndose así a un abanico de infinitas soluciones de las cuales

sólo se puede elegir una. Este tipo de indeterminaciones se resolverán aplicando los “criterios para

situaciones excepcionales” mencionados en la Figura 12.

Estos “criterios excepcionales” van a depender del tipo de corte entre curvas. Se puede diferenciar

entre tres tipos de corte:

Corte Limpio: Se llama corte limpio en este estudio al corte producido entre un tramo de curva

vertical y otro horizontal como el ilustrado en la Figura 13.

Figura 13: Ejemplo de “corte limpio”

Corte horizontal: Se llama en este estudio corte horizontal al corte producido entre dos tramos

horizontales de oferta y demanda. Ver Figura 14.

Pre

cio

(€

/MW

h)

Energía (MWh)

Oferta Demanda

Page 36: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

36

Figura 14: Ejemplo de corte horizontal

Corte vertical: Se llama en este estudio corte vertical al corte producido entre dos tramos

verticales de oferta y demanda. Ver Figura 15

Figura 15 : Ejemplo de corte vertical

Resulta fácilmente deducible que las situaciones excepcionales van a producirse cuando existan cortes

horizontales o verticales, ya que son los que generan más de un punto de corte. Cuando el corte sea horizontal

existirán diferentes valores de energía para un mismo precio y cuando sea vertical tendremos diferentes

precios para un mismo valor de energía.

Se aplican diferentes criterios para determinar el punto de corte según exista un corte horizontal o uno

vertical:

Pre

cio

(€

/MW

h)

Energía (MWh)

Oferta Demanda

Pre

cio

(€

/MW

h)

Energía (MWh)

Oferta Demanda

Page 37: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

37

Caso de corte horizontal: En el caso que se produzca un corte horizontal (varios valores de

energía para un mismo precio) se procede escogiendo la última oferta de venta de energía, si

existe un exceso de ofertas de compra de la misma, o la última oferta de compra de energía en

caso contrario.

Caso de corte vertical: En el caso que se produzca un corte vertical (varios precios para un

mismo valor de energía), se procede escogiendo el precio de la última oferta de venta o

adquisición de energía según criterios de “bienestar de mercado”.

Cabe mencionar que estos criterios no han sido definidos al azar, si bien son muy parecidos a los

utilizados por OMIE en la resolución de este tipo de indeterminaciones en el reparto de energía del programa

horario. Al no disponer de los citados criterios de “bienestar de mercado”, se han fijado en caso de corte

vertical las últimas ofertas de venta o adquisición de energía atendiendo a los resultados reales casados durante

el año.

5.4 Presentación y tratamiento de resultados

Tras la búsqueda, interpretación y tratamiento de los datos, el paso siguiente que toma este estudio no

es más que el análisis de distintos posibles escenarios que pudieran darse en el mercado diario.

Previamente a la presentación de los escenarios, se introduce en este punto la manera en la que se van

a tratar los resultados obtenidos además de la forma en la que se presentan tras el algoritmo de simulación.

La función “CambiaPreciosM(P)” [10.15]

retorna una estructura llamada “ValoresCasadosPX”, donde

“X” es, para cada caso, el precio al que se modifican las ofertas de venta de energía de las unidades

seleccionadas. La estructura está formada por cuatro submatrices tipo celda de 8760 filas por una columna

cada una. Estas submatrices son:

“dia”: Contiene los valores de los días.

“hora”: Contiene los valores de las horas.

“PrecioCasado”: Contiene los valores del precio final casado para cada hora.

“EnergíaCasada”: Contiene los valores de la energía final casada para cada hora.

Estas estructuras representan los verdaderos resultados de este estudio, si bien para analizarlos se usan

funciones previamente diseñadas para según qué tipo de análisis.

Para el análisis estacional, se hace uso de la función “PruebaEstacionalFuncion” [10.16]

, que, aparte de

devolver la diferencia entre los valores reales y simulados de precio y energía por horas, agrupa los índices de

cada grupo de horas por estaciones y ejecuta una serie de cálculos que resultan interesantes para su posterior

estudio.

Para el análisis económico se utilizan las funciones “CambiosEnergiaFinal” [10.17]

y “Beneficios” [10.18]

, las cuales se comentarán más adelante dado el motivo de las mismas.

Page 38: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

38

Page 39: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

39

6 CASOS DE ESTUDIO Y ANÁLISIS DE

RESULTADOS

6.1 Caso Cero

Este primer escenario simula la situación original del Mercado Eléctrico sin haber realizado ninguna

modificación en la oferta. Este caso servirá de referencia comparativa para los próximos escenarios. Los

resultados reales están recogidos en la página web del operador de mercado, por lo que su simulación valdrá

para evaluar la exactitud del código.

Aunque el Mercado Ibérico de la Electricidad está formado por España y Portugal, los datos y

resultados mostrados son sólo para España en caso de “market splitting”. Esto resulta un inconveniente a la

hora de cuantificar la energía casada, ya que no se dispone de los datos reales divididos de esta manera.

Se muestra en la Figura 16 la distribución de precios horarios anual obtenida tras la simulación:

Figura 16: Distribución de precios horarios CASO 0

El precio medio anual obtenido en la simulación ha sido de 42,148€/MWh. Según OMIE el precio

medio aritmético anual de la casación del mercado diario, sólo para España, en el año 2014 fue

42,130€/MWh. Se observa entonces un error relativo del 0,043%. Considerando que estamos analizando las

8760 horas del año, este error resulta muy aceptable.

Cabe mencionar que el algoritmo está prefijado para que los resultados obtenidos sean lo más

parecido posible a los reales, como ya se comentó anteriormente, teniendo en cuenta las ofertas de venta o

compra casadas originalmente en caso de corte vertical. La diferencia entre los mismos radica en que el propio

algoritmo no es capaz de prever situaciones como la que se muestra en la Figura 17:

0

20

40

60

80

100

120

1

46

2

92

3

13

84

18

45

23

06

27

67

32

28

36

89

41

50

46

11

50

72

55

33

59

94

64

55

69

16

73

77

78

38

82

99

87

60Pre

cio

(€

/MW

h)

Horas

Precios horarios España CASO 0

Precio Casado Precio Medio

Page 40: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

40

Figura 17: Ejemplo acoplamiento horario. Hora 5 del 10/12/2014

Como puede observarse en la Figura 17 aparece una “anomalía” en el ordenamiento de la curva

agregada de oferta de energía. El inicio de la curva en lugar de ser a precio 0€/MW es a 32,4€/MW cuando ese

día, a esa hora, el precio final de casación fue de 31,09€/MW. Esto significa que entró en la casación una

oferta de energía a un precio mayor que el final de mercado.

El origen de esta “anomalía” reside en el acoplamiento horario de las condiciones complejas de la

oferta tales como las condiciones de rampa entre horas, ingresos mínimos o bloques de ofertas indivisibles.

Hay que destacar que, en este estudio, las curvas que se están manejando en el mismo son curvas de oferta

compleja, de las cuales se desconocen este tipo de condiciones. Si el algoritmo de casación de OMIE

(Euphemia) casó ese día, a esa hora, esa oferta de energía probablemente fue porque resultaba la oferta más

adecuada atendiendo a los objetivos de bienestar de mercado y mérito económico.

Este tipo de situaciones se dan en entre un 4% y 5% de las horas totales del año y el error final que producen,

como ya se ha comentado, no es significativo.

Page 41: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

41

6.2 Análisis anual para toda unidad de régimen especial

Como punto de partida del estudio se plantea la hipótesis de que toda unidad que haga uso de recursos

renovables haga modificar su precio de venta de energía. Tradicionalmente, como ya se ha visto, éste ha sido

un precio aceptante de 0€/MWh. Se estudian un total de cuatro casos en donde se proponen diferentes precios

que podrían simular escenarios reales. Partiendo de un precio de 5 €/MWh, y pasando por 10 €/MWh y 15

€/MWh hasta alcanzar los 20 €/MWh por oferta del último caso.

En los siguientes subapartados se procede a mostrar los casos de estudio y los resultados más

significativos obtenidos para cada uno de ellos.

6.2.1 Caso 1: Cambio de precio de oferta a 5 €/MWh

El primer caso de estudio ha sido aquel en el que se han modificado los precios de oferta de venta de energía

de las unidades de Régimen Especial de 0€/MWh a 5€/MWh. Se muestra a continuación la distribución de

precios obtenida para las 8760 horas del año:

Figura 18: Distribución de precios horarios CASO 1

Como se puede advertir en la Figura 18 ha ocurrido lo que se esperaba, las horas que originalmente

casaron a precio menor de 5 €/MWh han aumentado su precio hasta este valor quedando las demás inalteradas.

El precio mínimo de casación del mercado ha pasado pues de 0 €/MWh hasta 5 €/MWh. Se entiende entonces

que la demanda base del mercado, generalmente cubierta por las centrales nucleares, no fue cubierta a ninguna

hora del año exclusivamente por unidades no renovables. Siempre hizo falta alguna unidad de origen

renovable de las estudiadas para satisfacer la demanda de energía. Esto proporciona una idea de lo integradas

que se encuentran este tipo de unidades en el sistema y el mercado eléctrico y el impacto que tienen en el

precio de mercado.

Se muestran en la Tabla 1 los resultados más significativos para el caso de estudio:

0

20

40

60

80

100

120

1

46

2

92

3

13

84

18

45

23

06

27

67

32

28

36

89

41

50

46

11

50

72

55

33

59

94

64

55

69

16

73

77

78

38

82

99

87

60Pre

cio

(€

/MW

h)

Horas

Precios horarios España CASO 1

Precio Casado Original Precio Casado P5 Precio Medio

Page 42: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

42

Horas que cambian

precio

% Horas que cambian

precio

%Horas que no cambian

precio

Precio Medio Anual Original

(€/MWh)

Precio Medio Anual Caso 1

(€/MWh)

%Aumento Precio Medio

Anual

492,000 5,614 94,384 42,148 42,349 0,477

Horas que cambian energía

%Horas que cambian energía

%Horas que no cambian

energía

Energía Casada Anual Original

(miles de GWh)

Energía Casada Anual Caso 1

(miles de GWh)

%Disminución Energía Casada

Anual

456,000 5,205 94,795 221,055 220,557 0,225

Tabla 1: Resultados CASO 1

Al observar los resultados se puede apreciar que el número de horas que han cambiado de precio final

de casación ha sido de 492, representando estas un 5,614% de las horas totales del año. Sin embargo, la

influencia que ha tenido este cambio en el precio medio anual ha supuesto solamente un aumento del mismo

del 0,477%.

Si se analiza la tabla de resultados más detenidamente, se advierte una situación que se repetirá en

todos los casos de estudio y es que el número de horas que cambian de precio es mayor que el de horas que

cambian de energía. Existen pues, horas que cambian de precio pero no de energía casada. La explicación de

este hecho se encuentra en que dichas horas han sufrido originalmente un corte vertical, en el que, como ya se

introdujo en la explicación del método de casación, las últimas ofertas de venta y de compra han concurrido a

un mismo valor de energía pero a diferente precio. Al aplicar los criterios apropiados para el corte vertical, la

última oferta casada, de venta o compra indistintamente, escogida para marcar el precio final de casación fue

originalmente a precio menor del modificado pero, casualmente, la otra última oferta que no fue escogida fue

concretamente de un precio igual al modificado, aunque ambas negociaban la misma energía (corte vertical).

Tras la reordenación de ofertas, se producirá un nuevo corte pero esta vez horizontal, donde el precio

equivaldrá al modificado y la energía se obtendrá según los criterios apropiados para el corte horizontal.

Existirán pues situaciones en las que el nuevo corte horizontal fije la energía casada según aquella última

oferta original no escogida inicialmente, provocando que el precio final de casación cambie pero no la energía

negociada.

Figura 19: Ejemplo aclaratorio

Pre

cio

(€

/MW

h)

Energía (MWh)

Demanda Oferta modificada Oferta original

Última oferta de compra

Última oferta de venta

Indeterminación

ΔP

reci

o R

eno

vab

le

Page 43: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

43

Ejemplificando la situación: Imagine una hora cualquiera, como la de la Figura 19, cuyo precio final

de casación se resolvió originalmente mediante un corte vertical (se aplican criterios de bienestar de mercado

para fijar el precio) en el que la última oferta de venta de energía fue a 3,3 €/MWh y la última oferta de compra

de energía fue de 5 €/MWh. Si el precio original de casación fue de 3,3 €/MWh significa que se escogió la

última oferta de venta de energía (tras aplicar los criterios de corte vertical), siendo ésta la que terminó

marcando el precio final de casación para dicha hora.

Si ahora se modifica el precio final mediante el proceso de variación de precios de oferta del

Régimen Especial, tras el reordenamiento de ofertas, la situación resultante equivaldría a un nuevo corte

horizontal (como el de la Figura 20) en el que el precio queda fijado pero no la energía, luego, como ya se

comentó en el método de casación de curvas, se escoge la nueva última oferta de compra o venta de energía

según exista un exceso de ofertas de venta o adquisición de energía. En el ejemplo, ha resultado que existe un

exceso de ofertas de venta de energía, luego el valor de energía que completa el punto de corte es el de la

última oferta de compra original. Se explica así que el precio de dicha hora se haya visto modificado pero no la

energía casada durante la misma.

Figura 20: Ejemplo aclaratorio 2

6.2.2 Casos 2, 3 y 4: Cambio de precios de oferta a 10, 15 y 20 €/MWh

Para que el análisis de resultados del estudio no resulte demasiado repetitivo, el resto de casos se van a

presentar en modo comparativo en lugar de realizar un análisis caso a caso.

A continuación se muestran los resultados más significativos obtenidos para los casos 2, 3 y 4:

Pre

cio

(€

/MW

h)

Energía (MWh)

Demanda Oferta modificada Oferta original

Nuevo corte horizontal

Desplazamiento

Desplazamiento

Page 44: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

44

Caso 2. Cambio de oferta a precio 10 €/MWh

Horas que cambian

precio

% Horas que cambian

precio

%Horas que no cambian

precio

Precio Medio Anual Original

(€/MWh)

Precio Medio Anual Caso 2

(€/MWh)

%Aumento Precio Medio

Anual

790 9,018 90,982 42,148 42,733 1,389

Horas que cambian energía

%Horas que cambian energía

%Horas que no cambian

energía

Energía Casada Anual Original

(miles de GWh)

Energía Casada Anual Caso 2

(miles de GWh)

%Disminución Energía Casada

Anual

776 8,858 91,141 221,055 220,202 0,386

Tabla 2: Resultados CASO 2

Caso 3. Cambio de oferta a precio 15 €/MWh

Horas que cambian

precio

% Horas que cambian

precio

%Horas que no cambian

precio

Precio Medio Anual Original

(€/MWh)

Precio Medio Anual Caso 3

(€/MWh)

%Aumento Precio Medio

Anual

1040 11,872 88,128 42,148 43,265 2,650

Horas que cambian energía

%Horas que cambian energía

%Horas que no cambian

energía

Energía Casada Anual Original

(miles de GWh)

Energía Casada Anual Caso 3

(miles de GWh)

%Disminución Energía Casada

Anual

1007 11,495 88,505 221,055 219,832 0,553

Tabla 3: Resultados CASO 3

Caso 4. Cambio de oferta a precio 20 €/MWh

Horas que cambian

precio

% Horas que cambian

precio

%Horas que no cambian

precio

Precio Medio Anual Original

(€/MWh)

Precio Medio Anual Caso 4

(€/MWh)

%Aumento Precio Medio Anual

1259 14,372 85,628 42,148 43,932 4,232

Horas que cambian energía

%Horas que cambian energía

%Horas que no cambian

energía

Energía Casada Anual Original

(miles de GWh)

Energía Casada Anual Caso 4

(miles de GWh)

%Disminución Energía Casada

Anual

1241 14,167 85,833 221,055 219,320 0,785

Tabla 4: Resultados CASO 4

Analizando las tablas de resultados se puede observar como el porcentaje de aumento de precio medio

crece a mayor ritmo que el porcentaje de horas que cambian de precio. Esto se debe a que para cada caso, se va

recortando más el número de horas que realmente disminuyen el precio medio del mercado, obteniendo mayor

influencia para su obtención las que se mantienen muy por encima del mismo. Por ejemplo, comparando el

caso 3 con el caso 2, se evidencia un aumento del número de horas que han variado su precio final de casación

del 30%, mientras que el porcentaje de aumento de precio medio final del mercado ha sido de prácticamente el

doble. Esta tendencia puede comprobarse en las Figuras 21 y 22 que representan el crecimiento del porcentaje

de horas que cambian de precio y el porcentaje de aumento de precio medio para cada caso respectivamente.

Page 45: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

45

Figura 21: Representación del % Horas que cambian de precio

Figura 22: Representación del % Aumento del precio medio

Si ahora se fija la atención en los casos 2 y 4 (Tablas 2 y 4 respectivamente) se puede constatar que,

un aumento del precio de las ofertas de venta de energía de las unidades de Régimen Especial de 10€/MWh a

el doble, 20 €/MWh, provoca un aumento del número de horas que cambian de precio del 60%, mientras que

el porcentaje de aumento de precio final de mercado ha sido de algo más del triple

También es apreciable cómo aumentos significativos de precios de ofertas tienen un impacto, en

principio, pequeño en el precio medio final del mercado. Por ejemplo en el caso 3 (Tabla 3), aumentando en

un 11,872% de las horas el precio de 0€/MWh a 15€/MWh tan solo supone un aumento del precio medio del

2,65%.

Se muestran ahora las distribuciones anuales de precios para los casos 2, 3 y 4:

0

2

4

6

8

10

12

14

16

1 2 3 4

% H

ora

s ca

mb

ian

pre

cio

s

Casos de estudio

0

0,5

1

1,5

2

2,5

3

3,5

4

4,5

1 2 3 4

% A

um

en

to d

el p

reci

o m

ed

io

Casos de estudio

Page 46: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

46

Figura 23: Distribución de precios horarios CASO 2

Figura 24: Distribución de precios horarios CASO 3

Figura 25: Distribución de precios horarios CASO 4

0

20

40

60

80

100

1201

46

2

92

3

13

84

18

45

23

06

27

67

32

28

36

89

41

50

46

11

50

72

55

33

59

94

64

55

69

16

73

77

78

38

82

99

87

60Pre

cio

(€

/MW

h)

Horas

Precios horarios España CASO 2

Precio Casado Original Precio Casado P10 Precio Medio

0

20

40

60

80

100

120

1

46

2

92

3

13

84

18

45

23

06

27

67

32

28

36

89

41

50

46

11

50

72

55

33

59

94

64

55

69

16

73

77

78

38

82

99

87

60Pre

cio

(€

/MW

h)

Horas

Precios horarios España CASO 3

Precio Casado Original Precio Casado P15 Precio Medio

0

20

40

60

80

100

120

1

46

2

92

3

13

84

18

45

23

06

27

67

32

28

36

89

41

50

46

11

50

72

55

33

59

94

64

55

69

16

73

77

78

38

82

99

87

60P

reci

o (

€/M

Wh

)

Horas

Precio horario España CASO 4

Precio Casado Original Precio Casado P20 Precio Medio

Page 47: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

47

Se puede apreciar en las Figuras 23,24 y 25 que la distribución de precios ha sido exactamente la

misma que en los anteriores casos de estudio, variando exclusivamente el precio de las horas que casaron a un

precio menor del modificado.

6.3 Análisis estacional

Otra de las hipótesis de estudio implementadas en este trabajo es la de enfocar los escenarios desde un

punto de vista estacional. Como ya se comentó previamente, las tecnologías que hacen uso de fuentes de

energía renovables cuentan con la desventaja de que les es imposible asegurar la disponibilidad del recurso. En

este apartado se va a tratar de estudiar cómo este factor y otros, como la necesidad de mayor energía por

periodos, afectan al precio final del mercado diario.

Se trata en este análisis pues, de examinar durante qué periodos estacionales es más sensible el precio

final horario de mercado de ser modificado.

Aunque se disponen de los resultados estacionales para todos los casos de modificación de oferta

estudiados, se exponen en los sucesivos apartados los referidos al caso 4, de mayor variación de precio de

oferta, 20€/MWh, al ser estos los más significativos y donde mayor número de horas ven alterado su precio

final de casación.

6.3.1 Primavera

Se muestran a continuación la distribución de precios horarios, referidos a la estación estival, la cual

comprende desde la hora primera del 21 de marzo hasta la última hora del 20 de junio, horas número 1897 y

4103 del año respectivamente:

Figura 26: Distribución de precios horarios PRIMAVERA

Puede advertirse en la Figura 26, que en la primera mitad de la estación primaveral es donde se

concentra el mayor número de horas cuyo precio se ha visto modificado. Esto es consecuencia directa del

problema acaecido por la disponibilidad de los recursos renovables.

En la Figura 27 se representa la distribución de precios horarios junto con la distribución de cantidad

de energía casada durante el periodo de estudio:

0

20

40

60

80

100

120

18

97

30

00

41

03Pre

cio

(€

/MW

h)

Horas

Precios horarios España CASO 4 - Primavera

Precio Casado Original Precio Casado P20 Precio Medio Primavera

Page 48: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

48

Figura 27: Distribución precios horarios y energía casada PRIMAVERA

Como se puede percibir en la Figura 27, la tendencia general y que se cumple en la segunda mitad del

periodo primaveral es que al aumentar la demanda de energía aumenta el precio de la misma, pero, como

puede apreciarse en la primera mitad del mismo periodo, esto no siempre se cumple. El factor que va a

determinar si el precio de mercado es alto o bajo es el porcentaje de demanda total que puedan cubrir las

tecnologías renovables. Habiéndose centrado este trabajo en tratar de aislar las unidades eólicas, es hábil

suponer que en la segunda mitad del periodo primaveral en España se extrajo menos energía del viento que en

la primera. Se muestra a continuación, para 24 horas concretas del periodo de estudio, la evolución de la

energía casada, la energía casada por el Régimen Especial, los precios originales y los precios modificados en

la Figura 28:

Figura 28: Distribución precios horarios y energía casada 24horas PRIMAVERA

Se aprecia en la Figura 28 como la modificación de precios de ofertas de venta de energía, genera una

nueva curva de precios que anula por completo el efecto original de disminución de precios provocado por el

aumento de energía casada por las unidades de Régimen Especial. En la Figura 29 puede valorarse mejor la

relación entre el precio de mercado original y el porcentaje de demanda cubierto por el Régimen Especial:

0

10

20

30

40

0

20

40

60

80

100

1201

89

7

30

00

41

03P

reci

o (

€/M

Wh

)

Horas

Precios horarios España CASO 4 - Primavera Precio Casado Original Precio Casado P20 Precio Medio Energía Casada P20

0

5

10

15

20

25

30

0

5

10

15

20

25

30

35

40

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Ener

gía

Cas

ada

(GW

h)

Pre

cio

(€

/MW

h)

Horas

Precio Casado Original Precio Casado P20 Energía Casada P20 Energía Casada RE

Page 49: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

49

Figura 29: Precio Original vs %Cubierto Demanda por Régimen Especial

Se aprecia en la Figura 29 la relación existente entre la disminución de precios de casación horarios y

el porcentaje de demanda que es capaz de cubrir el Régimen Especial. Es destacable el periodo comprendido

entre las horas 13 y 21, donde se evidencia una subida del porcentaje de demanda de energía cubierta por el

Régimen Especial hasta un 45% de la misma y un descenso significativo de los precios hasta valores que

rondan los 3€/MWh

A continuación se muestran en la siguiente tabla los resultados más significativos del periodo

primaveral:

Horas que cambian precio

% Horas que cambian precio

Precio Medio Primavera

Original

Precio Medio Primavera Caso 4

% Aumento Precio Medio Primavera

323 14,635 36,877 38,085 3,276

Horas que cambian energía

% Horas que cambian energía

Energía Casada Anual Primavera

Original

Energía Casada Anual Primavera

Caso 4

% Disminución Energía Casada

Primavera

320 14,499 50,870 50,528 0,672 Tabla 5: Resultados PRIMAVERA

Analizando los resultados de la Tabla 5 se aprecia que, durante el periodo primaveral, la influencia,

aplicando el nuevo régimen de ofertas, de las unidades de Régimen Especial en el precio de mercado es

claramente sensible, aumentando éste un 3,276% respecto del original para el mismo periodo. La primavera

representa pues un 25% de las horas que cambian de precio durante el año (para el caso de estudio).

6.3.2 Verano

Se muestran a continuación la distribución de precios horarios, referidos al verano, la cual comprende

desde la hora primera del 21 de junio hasta la última hora del 20 de septiembre, horas número 4014 y 6311

respectivamente:

0

10

20

30

40

50

0

10

20

30

40

50

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 % C

ub

iert

o D

eman

da

R.E

Pre

cio

(€

/MW

h)

Horas

Precio Casado Original %Cubierto Demanda R.E

Page 50: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

50

Figura 30: Distribución de precios horarios VERANO

Es notoriamente apreciable que no hay ninguna hora en todo el verano que modifique su precio. La

explicación de este hecho se encuentra en que, durante este periodo, al haber menos viento, la energía

procedente de tecnologías de origen renovable (ofertada a bajo precio) aportada al mercado es

considerablemente menor. Esto provoca que sean unidades de otras tecnologías, cuyas ofertas de venta se

registran a precios más elevados, las que cubran los últimos tramos de demanda y, por tanto, fijen el precio

casado final horario. Para que las unidades de Régimen Especial pudieran hacer notar una influencia en el

mercado similar a la de casos anteriores, deberían aumentar sus ofertas de venta de energía en torno a los

40€/MWh.

Se muestran en la siguiente tabla los resultados más significativos del periodo estival:

Horas que cambian precio

Precio Medio Verano Original

Precio Medio Verano Caso 4

% Aumento Precio Medio Verano

0 51,728 51,728 0,000

Horas que cambian energía

Energía Casada Anual Verano Original

Energía Casada Anual Verano Caso 4

% Disminución Energía Casada Verano

0 56,476 56,476 0,000

Tabla 6: Resultados VERANO

A la vista de los resultados, es claramente deducible que el verano no es una época en la que a las

unidades les vaya a convenir alterar su estrategia de venta de energía dado que, para los casos de estudio, no

existe repercusión en el mercado. Al no influir en el precio de mercado, les resultará, en principio, indiferente

aumentar los precios de oferta de venta o mantenerlos a 0€/MWh como hacían originalmente.

6.3.3 Otoño

Se muestran a continuación la distribución de precios horarios, referidos a la estación otoñal, la cual

comprende desde la hora primera del 21 de septiembre hasta la última hora del 20 de diciembre, horas número

6312 y 8496 del año respectivamente:

0

20

40

60

801

89

7

30

00

41

03Pre

cio

(€

/MW

h)

Horas

Precios horarios España CASO 4 - Verano

Precio Casado Original Precio Casado P20 Precio Medio

Page 51: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

51

Figura 31: Distribución de precios horarios OTOÑO

Figura 32: Distribución precios horarios y energía casada OTOÑO

Se aprecia cómo, a medida que avanza el otoño, se pueden encontrar mayor número de horas que vean

modificado su precio final de casación.

Se muestran en la siguiente tabla los resultados más significativos del periodo otoñal:

Horas que cambian precio

% Horas que cambian precio

Precio Medio Otoño Original

Precio Medio Otoño Caso 4

% Aumento Precio Medio Otoño

85 3,890 51,803 52,059 0,494

Horas que cambian energía

% Horas que cambian energía

Energía Casada Anual Otoño

Original

Energía Casada Anual Otoño Caso 4

% Disminución Energía Casada

Otoño

83 3,799 54,078 54,020 0,108

Tabla 7: Resultados OTOÑO

Analizando los resultados de la Tabla 7, se comprueba que el otoño es una estación en la que se

pueden encontrar horas que cambien de precio, pero su repercusión para el precio medio final medio del

periodo no es demasiado alta. Estas horas representan un 6,75% de las horas totales que cambian de precio

0

20

40

60

80

100

1206

31

2

70

40

77

68

84

96Pre

cio

(€

/MW

h)

Horas

Precios horarios España CASO 4 - Otoño

Precio Casado Original Precio Casado P20 Precio Medio

0

10

20

30

40

0

20

40

60

80

100

120

63

12

74

15

Ener

gía

Cas

ada

(GW

h)

Pre

cio

(€

/MW

h)

Horas

Precios horarios España CASO 4 - Otoño

Precio Casado Original Precio Casado P20 Precio Medio Energía Casada P20

Page 52: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

52

durante el año. Las unidades analizadas podrían entonces tratar de modificar su estrategia de oferta de energía

pero no encontrarían un efecto excesivamente significativo. Al igual que ocurría durante el verano, al no influir

demasiado en el precio de mercado, les resultará, en principio, indiferente aumentar los precios de oferta de

venta o mantenerlos a 0 €/MWh como hacían originalmente. Si quisieran explorar nuevas estrategias de oferta

de energía para que se notara una influencia en el mercado parecida a la de otros casos deberían situar los

precios de oferta de venta de energía en torno a los 30 €/MWh

6.3.4 Invierno

Se muestran a continuación la distribución de precios horarios, referidos a la estación invernal, la cual

comprende desde la hora primera del 21 de diciembre hasta la última hora del 20 de marzo, horas número

8497 y 1896 del año respectivamente:

Figura 33: Distribución de precios horarios INVIERNO

El invierno es una estación que no abarca un año completo, al iniciarse a falta de diez días para que

éste acabe y comience el siguiente. Para el análisis del inicio del periodo invernal del año de estudio, 2014,

deberían de utilizarse los datos del 21 al 31 de diciembre de 2013. Al representar éstos alrededor del 10% de

todo el periodo, se considera en este proyecto que los datos relativos al periodo comprendido entre la primera

hora del 21 de diciembre y la última hora del 31 de diciembre de 2014 son perfectamente representativos y

aprovechables en sustitución de los de 2013.

Se aprecia en la Figura 32 como, sin lugar a dudas, el periodo invernal es en el que mayor número de

horas ven su precio final original modificado.

Se muestran a continuación los resultados más significativos de este periodo:

Horas que cambian

precio

% Horas que cambian precio

Precio Medio Invierno Original

Precio Medio Invierno Caso 4

% Aumento Precio Medio Invierno

851 39,398 27,974 33,715 20,522

Horas que cambian energía

% Horas que cambian energía

Energía Casada Anual Invierno Original

Energía Casada Anual Invierno Caso

4

% Disminución Energía Casada

Invierno

838 38,796 59,630 58,295 2,239

Tabla 8: Resultados INVIERNO

0

10

20

30

40

50

0

20

40

60

80

100

120

84

97

86

24

87

51

11

8

24

5

37

2

49

9

62

6

75

3

88

0

10

07

11

34

12

61

13

88

15

15

16

42

17

69

18

96

Ener

gía

Cas

ada

(GW

h)

Pre

cio

(€

/MW

h)

Horas

Precios horarios España CASO 4 - Invierno

Precio Casado Original Precio Casado P20 Precio Medio Energía Casada P20

Page 53: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

53

Analizando estos resultados y comparándolos con las otras tres estaciones, se aprecia claramente

como esta es la etapa donde mayor influencia tienen las unidades bajo estudio tras alterar su estrategia de

oferta de energía, modificando el precio final de casi el 40% de las horas, que representan un 67,6% de las

horas totales que cambian de precio durante el año, y provocando un aumento del precio medio del periodo del

20,522% que se corresponde con una subida de 5,741 €/MWh

Se comprueba entonces que el invierno va a resultar la estación más conveniente para que las unidades

de Régimen Especial puedan modificar sus estrategias de venta de energía con el objetivo final de fijar el

precio final horario de casación en el mercado eléctrico. No es casualidad que sea el periodo invernal donde

más energía procedente de tecnologías de origen renovable se produzca, ya que es en éste donde suele existir

más viento aprovechable para la extracción de energía.

6.4 Análisis económico

En los escenarios estudiados se ha llevado a cabo un análisis general para todo el mercado eléctrico.

Se tratará en este apartado de analizar las repercusiones económicas que arrojan estos resultados tanto para el

consumidor final, como para las propias unidades de generación de origen renovable. Para ello se utilizarán los

datos de la Comisión Nacional de los Mercados y la Competencia (CNMC), que incluyen la cantidad de

energía vendida en el mercado diario por tecnologías y retribuciones, y las funciones “CambiosEnergiaFinal”

y “Beneficios” que, haciendo uso de los resultados anteriores obtenidos, efectúan una serie de cálculos útiles

para la correcta comprensión del presente apartado. Se procede a explicar brevemente el cometido de las

funciones nombradas:

“CambiosEnergiaFinal”[10.17]

: Función que recibe un precio P' (precio de modificación de ofertas) y

devuelve, para cada hora del año, la energía casada por cada unidad de Régimen Especial en la

situación de modificación de precios de oferta de venta de energía.

“Beneficios” [10.18]

: Función que efectúa los cálculos finales necesarios para el análisis económico.

Los resultados aportados por la función “Beneficios” [10.18]

son, para cada caso de estudio, el aumento

de ingresos total obtenido por todo el Régimen Especial tras la modificación de precios de oferta de venta de

energía:

∆𝐼𝑇𝑂𝑇𝐴𝐿 = ∑ (𝑃𝐶𝑖′

8760

𝑖=1

× 𝐸𝐶𝑅𝐸𝑖′ ) − (𝑃𝑖

0 × 𝐸𝐶𝑅𝐸𝑖0 ) (𝐼)

Donde:

- ∆𝐼𝑇𝑂𝑇𝐴𝐿 representa el aumento de ingresos total obtenido por el Régimen Especial tras la

modificación de precios de oferta de venta de energía

- 𝑃𝐶𝑖′ es el precio final de casación para cada hora del año tras aplicar el nuevo régimen de ofertas

- 𝐸𝐶𝑅𝐸𝑖′ es la energía casada por las unidades de Régimen Especial durante cada hora del año tras

aplicar el nuevo régimen de ofertas

- 𝑃𝑖0 es el precio final de casación original para cada hora del año

- 𝐸𝐶𝑅𝐸𝑖0 es la energía casada por las unidades de Régimen Especial durante cada hora del año

originalmente

Page 54: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

54

A continuación se muestran en la Tabla 9 los resultados más significativos que arroja la función

“Beneficios”:

Precio de modificación de ofertas (€/MWh)

Energía Casada Anual por el Régimen Especial (GWh)

ΔITOTAL (Millones de

€)

%Aumento de ingresos respecto original

5 58420,208 13,270 0,560

10 58065,210 37,330 1,571

15 57694,531 67,050 2,810

20 57182,314 99,597 4,146

Tabla 9: Resultados “Beneficios”

Observando la Tabla 9 se comprueba que a medida que aumenta el precio de modificación de ofertas,

el aumento de ingresos con respecto al caso original es mayor, llegando hasta un valor máximo de 99,597

millones de €. Se muestra en la Figura 34 la evolución del aumento de ingresos total:

Figura 34: Evolución Aumento de Ingresos TOTAL

Analizando la Figura 34 y la Tabla 9 se observa como al pasar del caso 1 al 2 casi se está triplicando el

aumento de ingresos anual mientras que con respecto al caso 4 se está multiplicando el valor por 7,5. Se puede

concluir que el crecimiento de ingresos evoluciona a niveles bastante aceptables de un caso a otro, pero,

apelando de nuevo a la justificación de este estudio, impera la necesidad de comparar estos resultados con las

retribuciones específicas percibidas por las unidades bajo estudio durante el año 2014. Para ello basta con ojear

la Figura 35:

0,000

20,000

40,000

60,000

80,000

100,000

120,000

1 2 3 4

ΔI T

OTA

L (M

illo

ne

s d

e €

)

Casos de estudio

ΔI total

Page 55: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

55

Figura 35: Comparación Aumento de Ingresos TOTAL y Retribución Específica Anual 2014

En la Figura 35 se compara el aumento de ingresos total con los datos de retribuciones específicas por

tecnologías, aislando los valores para las unidades eólicas (recordar que éstas son casi exclusivamente las que

se han tratado como Régimen Especial a lo largo de este estudio). Se observa que estos resultados distan

mucho de los valores de las primas percibidas durante el año, cubriéndose en el caso más favorable un 8% de

las mismas.

Se plantea ahora el análisis desde otra perspectiva.

Son conocidos los datos de la retribución anual real en el año 2014 de las tecnologías de Régimen

Especial, compuesta por los ingresos obtenidos de la venta de energía en el mercado diario más la retribución

específica (primas). Además, se conoce el volumen de energía negociado en el mercado diario por las

tecnologías de Régimen Especial. Estas dos cantidades se pueden relacionar y obtener el coste medio anual del

MWh producido por tecnologías de Régimen Especial, de la siguiente forma:

𝑅𝑒𝑡𝑟𝑖𝑏𝑢𝑐𝑖ó𝑛𝑅𝐸 = 𝐼𝑛𝑔𝑟𝑒𝑠𝑜𝑠𝑀𝐷 + 𝑃𝑟𝑖𝑚𝑎𝑠 (𝐼𝐼)

𝑃𝑀𝑅𝑇 =𝑅𝑒𝑠𝑡𝑟𝑖𝑏𝑢𝑐𝑖ó𝑛𝑅𝐸

𝐸𝐶 𝑅𝐸 (𝐼𝐼𝐼)

Donde:

- 𝑃𝑀𝑅𝑇 es el precio medio de retribución total

- 𝑅𝑒𝑠𝑡𝑟𝑖𝑏𝑢𝑐𝑖ó𝑛𝑅𝐸 es la retribución anual del Régimen Especial

- 𝐸𝐶 𝑅𝐸 es la energía negociada (casada) anual en el mercado diario por el Régimen Especial

Para el caso del año 2014 el precio medio de retribución total se muestra en la Tabla 10, siendo este de

58,96 €/MWh.

Tabla 10: Precio Medio de Retribución Real 2014

0,000

200,000

400,000

600,000

800,000

1000,000

1200,000

1400,000

1 2 3 4

Mill

on

es

de

Casos de estudio

ΔI total Primas eólica 2014

Precio Medio de

Retribución Real 2014

(€/MWh)

58,96

Page 56: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

56

Para evaluar la rentabilidad de los ingresos generados exclusivamente de la negociación de energía en

el mercado diario frente al sistema actual, se puede obtener el precio medio de retribución del mercado diario,

donde sólo se contemple lo gestionado en el mercado diario. Los resultados obtenidos en el caso base y en los

casos de estudio se muestran en la Tabla 11:

Tabla 11: Resultados Precio Medio Retribución Total para los casos de estudio

Al observar la tabla de resultados se aprecia un aumento progresivo a lo largo de los casos de estudio

del precio medio de retribución total, pero todavía quedan considerablemente lejos del valor real obtenido para

2014, distando en el caso base hasta en 18,78 €/MWh y en el caso 4 hasta en 14,94 €/MWh.

Estos resultados reflejan el impacto que tienen las retribuciones específicas para las unidades de

Régimen Especial, ya que, para enfrentarse a un mercado diario sin ellas y mantener los mismos ingresos,

deberán modificar sus estrategias de oferta hasta alcanzar un precio medio de retribución total lo más cercano

posible al real obtenido.

Precio Medio Retribución Total Caso 0 (€/MWh)

Precio Medio Retribución Total Caso 1 (€/MWh)

Precio Medio Retribución Total Caso 2 (€/MWh)

Precio Medio Retribución Total Caso 3 (€/MWh)

Precio Medio Retribución Total Caso 4 (€/MWh)

40,18 40,80 41,56 42,52 43,75

Page 57: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

57

7 CONCLUSIONES

Se tratará en este apartado de establecer, lo más objetivamente posible, las repercusiones más

significativas que arroja este estudio para el mercado eléctrico en su conjunto.

Como ya se introdujo, la justificación de este proyecto reside en el cambio normativo que a corto-

medio plazo supondrá la supresión total de las primas recibidas por los generadores con tecnología de origen

renovable. Esto supondrá que los generadores afectados dejarán de percibir una cantidad de dinero que hasta

ahora, junto con los ingresos procedentes del mercado diario, parece ser que hacían rentables a estas

tecnologías.

Parece lógico pensar que, ante una disminución de ingresos importante, las unidades afectadas tratarán

de aumentar su competitividad dentro del mercado, lo que supone aumentar precios de oferta de energía con su

estudiada repercusión en el precio final de casación del mismo.

Tras estudiar las nuevas posibles estrategias de oferta asumibles por dichas unidades, se pueden

extraer varias conclusiones referidas al impacto de las mismas en el mercado diario.

Se ha observado, como resultaba previsible, que al aumentar los precios de las ofertas de venta de

energía de cierto grupo de unidades (Régimen Especial), el precio medio anual de casación horario se sitúa en

valores mayores que el original, llegando a aumentar, en el caso de modificación de precios de oferta a 20

€/MWh, hasta en un 4,232% que se traduce en un aumento de 1,784 €/MWh.

También se ha comprobado que estas nuevas estrategias de oferta producen un mayor impacto en el

mercado diario cuando se ejecutan en el periodo invernal, al ser éste en el que originalmente se encuentran

precios menores de casación horarios. Los precios bajos, con algunas horas de precio 0 €/MWh, se

corresponden con una situación de mayor oferta renovable, derivada de la mayor producción eólica durante

esta estación. El impacto en el precio medio de casación horario en el invierno llega a aumentar el precio

medio del mismo en hasta un 20,5% en el caso de modificación de precios de oferta a 20 €/MWh.

Sin embargo en verano estas estrategias producen un impacto nulo en el mercado, al ser este periodo

donde se registran los mayores precios horarios de casación, derivado de una disminución de la oferta eólica

durante esta estación. Para llegar a influir en los precios de mercado al mismo nivel que durante el invierno,

deberían manejarse en el periodo estival nuevas estrategias que modifiquen los precios de oferta de venta de

energía de las unidades objetivo en torno a los 40 o 45 €/MWh.

Del análisis económico de 2014 se puede concluir que el impacto en el mercado diario de estas nuevas

estrategias de oferta no resulta suficiente para cubrir la pérdida de ingresos derivada de la eliminación de la

retribución específica. Sólo en el caso de modificación de precios de oferta a 20 €/MWh se llega a cubrir un

8% de esta retribución específica.

Ante la evidencia de que los precios medios de retribución total en los casos de estudio son

considerablemente menores que el real obtenido para 2014, surge la cuestión sobre la rentabilidad de estas

unidades de producción de tecnologías renovables. En la situación real de mercado, con los datos en la mano,

se puede afirmar que son rentables pero, ¿siguen siendo rentables a estos nuevos precios?

Page 58: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

58

Page 59: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

59

8 LÍNEAS FUTURAS

Para finalizar se comentan algunas ideas para futuras líneas de investigación a seguir a partir de este

estudio.

El mayor problema al que se pueda enfrentar aquel que quiera realizar un estudio parecido a este es la

inaccesibilidad de la información. Por motivos de confidencialidad no se ofrece información precisa de la

clasificación de agentes de mercado con respecto a sus tecnologías o agrupaciones. Ser capaz de reunir ese tipo

de información daría lugar a un estudio mucho más sólido que refleje la absoluta realidad del mercado diario.

Otro aspecto que daría mayor consistencia al estudio sería el de poder evaluar las condiciones

complejas de la oferta para reproducir resultados con movimientos más fiables de curvas, ya que trabajar con

curvas simples limita mucho la profundidad del estudio. Con esto, al modificar precios de oferta de venta de

energía, se podría evaluar el movimiento real de ofertas tras la reordenación, existiendo una entrada o salida de

agentes de mercado para cada hora.

Como estudios complementarios, resultaría interesante tratar de incorporar el riesgo de oferta,

inherente a las unidades de tecnologías renovables, proveniente de la incapacidad de asegurar la disponibilidad

de recursos.

Estudiar los costes de producción de las unidades objetivo permitiría evaluar la rentabilidad de las

mismas y contestar a la cuestión planteada durante las conclusiones finales.

Llevar el estudio a horizontes temporales mayores y estudiar la evolución real de las estrategias de

generación a lo largo de los años, daría una visión mucho más concreta de las tendencias de movimiento del

mercado eléctrico en el futuro.

Page 60: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

60

Page 61: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

61

9 BIBLIOGRAFÍA Y FUENTES

[1] Operador de mercado ibérico de energía OMEI. http://www.omie.es

[2] Red Eléctrica de España http://www.ree.es

[3] Ministerio de industria, energía y turismo. Página web: http://www.minetur.gob.es/es-

es/Paginas/index.aspx

[4] Mathworks. Herramienta Matlab. http://www.es.mathworks.com

[5] Boletín Oficial del Estado. http://www.boe.es

[6] Comisión Nacional de la Energía. http://www.cne.es/cne/Home

[7] Regulación de las energías renovables. http://www.energiaysociedad.es/ficha/3-5-

regulacionespanola-de-las-energiasrenovables

[8] Comisión Nacional de mercados y la competencia. http://www.cnmc.es/

[9] Sistema eléctrico español: Déficit de tarifa y primas.

http://javiersevillano.es/DeficitTarifa.htm#primas

[10] Guillermo Gallego Arias, “Nuevas estrategias de oferta de los generadores de Régimen Especial

al Mercado Diario”. Universidad de Sevilla. Proyecto de fin de grado 2015

[11] Juan Manuel Roldán Fernández, Manuel Burgos Payán, Ángel Luis Trigo García, Juan Luis Díaz

García y Jesús Manuel Riquelme Santos, “Impact of Renewable Generation in the Spanish Electricty

Market”. Departamento de Ingeniería Eléctrica. Universidad de Sevilla.

[12] Burgos Payán, M., Roldán Fernández, J.M., Trigo García, A.L., Bermúdez Ríos, J.M., Riquelme

Santos, J.M., “Costs and benefits of the renewable production of electricity in Spain”, Energy Policy,

Volumen 56, Mayo 2013, Páginas 259-270.

Page 62: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

62

Page 63: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

63

10 ANEXOS

10.1 Función “CreaListaNombresCab”

%Función para crear una variable que contenga los nombres de los 365

%ficheros CAB de que se disponen

function nameFile=CreaListaNombrescab;

dianio=0;

for mes=1:12

if (mes<10)

for dia=1:9

aux=['CAB_2014' num2str(0) num2str(mes) num2str(0)

num2str(dia) '.txt'];

dianio=dianio+1;

nameFile{dianio}=aux;

end

for dia=10:28

aux=['CAB_2014' num2str(0) num2str(mes) num2str(dia) '.txt'];

dianio=dianio+1;

nameFile{dianio}=aux;

end

if (mes~=2)

for dia=29:30

aux=['CAB_2014' num2str(0) num2str(mes) num2str(dia) '.txt'];

dianio=dianio+1;

nameFile{dianio}=aux;

end

if (mes==1||mes==3||mes==5||mes==7||mes==8)

dia=31;

aux=['CAB_2014' num2str(0) num2str(mes) num2str(dia) '.txt'];

dianio=dianio+1;

nameFile{dianio}=aux;

end

end

end

if(mes>=10)

for dia=1:9

aux=['CAB_2014' num2str(mes) num2str(0) num2str(dia) '.txt'];

dianio=dianio+1;

nameFile{dianio}=aux;

end

for dia=10:30

aux=['CAB_2014' num2str(mes) num2str(dia) '.txt'];

dianio=dianio+1;

nameFile{dianio}=aux;

end

if (mes==10||mes==12)

dia=31;

aux=['CAB_2014' num2str(mes) num2str(dia) '.txt'];

dianio=dianio+1;

nameFile{dianio}=aux;

end

end

end

Page 64: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

64

10.2 Función “ImportCAB”

function

[codigo,numver,unidad,desc,cov,nout1,nop,nout2,nout3,maxrampasub,maxrampabaj,

termfijo,termvar,potencia,maxrampaarr,maxrampapar,pais,anio,mes,dia,hora,minu

to,segundo] = import_cab(filename, startRow, endRow)

%IMPORTA_CAB Importa el cab del fichero de texto con unidades como nombres y

las convierte en vectores columna.

% Ejemplo:

%

[codigo,numver,unidad,desc,cov,nout1,nop,nout2,nout3,maxrampasub,maxrampabaj,

termfijo,termvar,potencia,maxrampaarr,maxrampapar,pais,anio,mes,dia,hora,minu

to,segundo]= import_cab('CAB_20140101.txt');

% Función Auto-generada por Matlab importdata tool.

%% Initialize variables.

if nargin<=2

startRow = 1;

endRow = inf;

end

%% Format string for each line of text:

% column1: double (%f)

% column2: text (%s)

% column3: text (%s)

% column4: text (%s)

% column5: text (%s)

% column6: double (%f)

% column7: double (%f)

% column8: double (%f)

% column9: double (%f)

% column10: double (%f)

% column11: double (%f)

% column12: double (%f)

% column13: double (%f)

% column14: double (%f)

% column15: double (%f)

% column16: double (%f)

% column17: double (%f)

% column18: double (%f)

% column19: double (%f)

% column20: double (%f)

% column21: double (%f)

formatSpec =

'%7f%3s%7s%30s%1s%1s%1s%17f%17f%7f%7f%17f%17f%7f%7f%7f%1f%4f%2f%2f%2f%2f%2f%[

^\n\r]';

%% Open the text file.

fileID = fopen(filename,'r');

%% Read columns of data according to format string.

dataArray = textscan(fileID, formatSpec, endRow(1)-startRow(1)+1,

'Delimiter', '', 'WhiteSpace', '', 'HeaderLines', startRow(1)-1,

'ReturnOnError', false);

for block=2:length(startRow)

frewind(fileID);

dataArrayBlock = textscan(fileID, formatSpec, endRow(block)-

startRow(block)+1, 'Delimiter', '', 'WhiteSpace', '', 'HeaderLines',

startRow(block)-1, 'ReturnOnError', false);

for col=1:length(dataArray)

dataArray{col} = [dataArray{col};dataArrayBlock{col}];

end

end

%% Close the text file.

fclose(fileID);

%% Allocate imported array to column variable names

codigo = dataArray{:, 1};

Page 65: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

65

numver = dataArray{:, 2};

unidad = dataArray{:, 3};

desc = dataArray{:, 4};

cov = dataArray{:, 5};

nout1 = dataArray{:, 6};

nop = dataArray{:, 7};

nout2 = dataArray{:, 8};

nout3 = dataArray{:, 9};

maxrampasub = dataArray{:, 10};

maxrampabaj = dataArray{:, 11};

termfijo = dataArray{:, 12};

termvar = dataArray{:, 13};

potencia = dataArray{:, 14};

maxrampaarr = dataArray{:, 15};

maxrampapar = dataArray{:, 16};

pais = dataArray{:, 17};

anio = dataArray{:, 18};

mes = dataArray{:, 19};

dia = dataArray{:, 20};

hora = dataArray{:, 21};

minuto = dataArray{:, 22};

segundo = dataArray{:, 23};

10.3 Función “SOLOPotenciasCAB”

function PotenciasCAB = SOLOPotenciasCAB(filename, startRow, endRow)

%Funcion corregida para obtener de un fichero CAB solo la columna de

%potencias. Si se hace todo a la vez está comprobado que existen errores en

%la importación al superponerse los datos.

%IMPORTFILE Import numeric data from a text file as a matrix.

% CAB20140101 = IMPORTFILE(FILENAME) Reads data from text file FILENAME

% for the default selection.

%

% CAB20140101 = IMPORTFILE(FILENAME, STARTROW, ENDROW) Reads data from

% rows STARTROW through ENDROW of text file FILENAME.

%

% Example:

% CAB20140101 = importfile('CAB_20140101.txt', 1, 634);

%

% See also TEXTSCAN.

% Auto-generated by MATLAB on 2016/02/19 21:42:26

%% Initialize variables.

if nargin<=2

startRow = 1;

endRow = inf;

end

%% Read columns of data as strings:

% For more information, see the TEXTSCAN documentation.

formatSpec = '%*132s%8s%[^\n\r]';

%% Open the text file.

fileID = fopen(filename,'r');

%% Read columns of data according to format string.

% This call is based on the structure of the file used to generate this

% code. If an error occurs for a different file, try regenerating the code

Page 66: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

66

% from the Import Tool.

dataArray = textscan(fileID, formatSpec, endRow(1)-startRow(1)+1,

'Delimiter', '', 'WhiteSpace', '', 'HeaderLines', startRow(1)-1,

'ReturnOnError', false);

for block=2:length(startRow)

frewind(fileID);

dataArrayBlock = textscan(fileID, formatSpec, endRow(block)-

startRow(block)+1, 'Delimiter', '', 'WhiteSpace', '', 'HeaderLines',

startRow(block)-1, 'ReturnOnError', false);

dataArray{1} = [dataArray{1};dataArrayBlock{1}];

end

%% Close the text file.

fclose(fileID);

%% Convert the contents of columns containing numeric strings to numbers.

% Replace non-numeric strings with NaN.

raw = repmat({''},length(dataArray{1}),length(dataArray)-1);

for col=1:length(dataArray)-1

raw(1:length(dataArray{col}),col) = dataArray{col};

end

numericData = NaN(size(dataArray{1},1),size(dataArray,2));

% Converts strings in the input cell array to numbers. Replaced non-numeric

% strings with NaN.

rawData = dataArray{1};

for row=1:size(rawData, 1);

% Create a regular expression to detect and remove non-numeric prefixes

and

% suffixes.

regexstr = '(?<prefix>.*?)(?<numbers>([-

]*(\d+[\,]*)+[\.]{0,1}\d*[eEdD]{0,1}[-+]*\d*[i]{0,1})|([-

]*(\d+[\,]*)*[\.]{1,1}\d+[eEdD]{0,1}[-+]*\d*[i]{0,1}))(?<suffix>.*)';

try

result = regexp(rawData{row}, regexstr, 'names');

numbers = result.numbers;

% Detected commas in non-thousand locations.

invalidThousandsSeparator = false;

if any(numbers==',');

thousandsRegExp = '^\d+?(\,\d{3})*\.{0,1}\d*$';

if isempty(regexp(thousandsRegExp, ',', 'once'));

numbers = NaN;

invalidThousandsSeparator = true;

end

end

% Convert numeric strings to numbers.

if ~invalidThousandsSeparator;

numbers = textscan(strrep(numbers, ',', ''), '%f');

numericData(row, 1) = numbers{1};

raw{row, 1} = numbers{1};

end

catch me

end

end

%% Create output variable

PotenciasCAB = raw;

Page 67: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

67

10.4 Función “UnidadesSINspace”

function UNIDADES = UnidadesSINspace(filename, startRow, endRow)

%IMPORTFILE Import numeric data from a text file as column vectors.

% EDPC2 = IMPORTFILE(FILENAME) Reads data from text file FILENAME for the

% default selection.

%

% EDPC2 = IMPORTFILE(FILENAME, STARTROW, ENDROW) Reads data from rows

% STARTROW through ENDROW of text file FILENAME.

%

% Example:

% EDPC2 = importfile('celldata2.txt',1, 318151);

%

% See also TEXTSCAN.

% Auto-generated by MATLAB on 2016/02/19 22:53:57

%% Initialize variables.

delimiter = ' ';

if nargin<=2

startRow = 1;

endRow = inf;

end

%% Format string for each line of text:

% column1: text (%s)

% For more information, see the TEXTSCAN documentation.

formatSpec = '%s%*s%[^\n\r]';

%% Open the text file.

fileID = fopen(filename,'r');

%% Read columns of data according to format string.

% This call is based on the structure of the file used to generate this

% code. If an error occurs for a different file, try regenerating the code

% from the Import Tool.

dataArray = textscan(fileID, formatSpec, endRow(1)-startRow(1)+1,

'Delimiter', delimiter, 'MultipleDelimsAsOne', true, 'EmptyValue'

,NaN,'HeaderLines', startRow(1)-1, 'ReturnOnError', false);

for block=2:length(startRow)

frewind(fileID);

dataArrayBlock = textscan(fileID, formatSpec, endRow(block)-

startRow(block)+1, 'Delimiter', delimiter, 'MultipleDelimsAsOne', true,

'EmptyValue' ,NaN,'HeaderLines', startRow(block)-1, 'ReturnOnError', false);

dataArray{1} = [dataArray{1};dataArrayBlock{1}];

end

%% Close the text file.

fclose(fileID);

%% Post processing for unimportable data.

% No unimportable data rules were applied during the import, so no post

% processing code is included. To generate code which works for

% unimportable data, select unimportable cells in a file and regenerate the

% script.

%% Allocate imported array to column variable names

UNIDADES = dataArray{:, 1};

Page 68: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

68

10.5 Función “SacaUdsyPots”

function [unidades,potencias]=SacaUdsyPots;

nameFile=CreaListaNombrescab;

unidades=[];

potencias=[];

P=[];

for dia=1:365

FileName=nameFile(1,dia)

[~,~,U,~,~,~,~,~,~,~,~,~,~,~,~,~,~,~,~,~,~,~,~]=

import_cab(char(FileName));

unidades=[unidades;U];

P=SOLOPotenciasCAB(char(FileName));

potencias=[potencias;P];

end

fileID = fopen('celldata2.txt','w');

formatSpec = '%s\n';

[nrows,ncols] = size(unidades);

for row = 1:nrows

fprintf(fileID,formatSpec,unidades{row,:});

end

fclose(fileID);

UNIDADES = UnidadesSINspace('celldata2.txt');

unidades=UNIDADES;

end

10.6 Función “UnidadesSNSR”

function [unidadesSNOK,potenciasSNOK]=UnidadesSNSR(unidades,potencias)

dim1=length(unidades);

nuclear={'ALZ1','ASC1','ASC2','TRL1','VAN2','ALZ2','COF1'};

dim2=length(nuclear);

NUC=0;

unidadesSN={};

k=0;

for i=1:dim1

CONT=0;

for j=1:dim2;

if(length(char(nuclear(j)))==length(char(unidades(i))))

%Primero comparo

longitud y luego si son iguales, si no da error al comparar cosas de

diferente longitud. Tengo que hacer esto así por ser cadenas de caracteres

if (char(nuclear(j))==char(unidades(i)))

NUC=NUC+1;

CONT=1;

end

end

end

Page 69: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

69

if CONT==0;

k=k+1;

unidadesSN{k,1}=unidades(i);

potenciasSN{k,1}=potencias(i);

end

end

dim1=length(unidadesSN);

i=0;

k=0;

CONT=0;

V_uds={};

for i=1:dim1

V_uds{i,1}=char(unidadesSN{i,1});

end

unidadesSN=V_uds;

unidadesSNOK{1,1}=unidadesSN{1,1};

unidadesSNOK{2,1}=unidadesSN{2,1};

potenciasSNOK{1,1}=potenciasSN{1,1};

potenciasSNOK{2,1}=potenciasSN{2,1};

SI=0;

k=2;

for i=1:dim1

i

CONT=0;

j=1;

dim2=length(unidadesSNOK);

while (j<=dim2)

if(length(char(unidadesSNOK(j)))==length(char(unidadesSN(i))))

%Primero comparo longitud y luego

si son iguales, si no da error al comparar cosas de diferente longitud. Tengo

que hacer esto así por ser cadenas de caracteres if

(char(unidadesSNOK(j))==char(unidadesSN(i)))

SI=SI+1;

CONT=1;

break;

end

end

j=j+1;

end

if CONT==0;

k=k+1;

unidadesSNOK(k,1)=unidadesSN(i);

potenciasSNOK(k,1)=potenciasSN(i);

end

end

end

10.7 Función “PMax”

function

[unidadesSNOKMay,potenciasSNOKMAXMay,unidadesSNOKmen,potenciasSNOKMAXmen]=PMa

x(unidades,potencias,unidadesSNOK)

% Función para solucionar el cambio de potencias durante el año de las

% unidades y establecer su potencia como la máxima anual. También se usa

% como método de comprobación de que los resultados no cambian

Page 70: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

70

ind=length(potencias);

ind2=length(unidadesSNOK);

U=unidades;

P=potencias;

US=unidadesSNOK;

COMPU(ind2,1)=0;

k=0;

for i=1:ind

a=potencias{i,1};

potenciasSNOK2(i,1)={a}; %aux para cell2mat

end

P=cell2mat(potenciasSNOK2);

for i=1:ind2

i

for j=1:ind

if(length(char(US(i)))==length(char(U(j))))

if (char(US(i))==char(U(j)))

COMPU(i,1)=COMPU(i,1)+1;

k=COMPU(i,1);

COMPP(i,k)=P(j);

end

end

end

end

dim=length(unidadesSNOK);

dim2=size(COMPP,2);

unidadesSNOKMay={};

unidadesSNOKmen={};

potenciasSNOKMAX=max(COMPP,[],2); %encuentra el valor máximo de potencia en

cada fila de COMPP

k=0;

n=0;

for i=1:dim

Marcador=0;

for j=1:dim2

if COMPP(i,j)>=15

Marcador=1;

end

end

if Marcador==1

k=k+1;

unidadesSNOKMay{k,1}=char(unidadesSNOK{i,1});

potenciasSNOKMAXMay(k,1)=potenciasSNOKMAX(i,1);

else

n=n+1;

unidadesSNOKmen{n,1}=char(unidadesSNOK{i,1});

potenciasSNOKMAXmen(n,1)=potenciasSNOKMAX(i,1);

end

end

end

Page 71: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

71

10.8 Función “SumaPyUNIT”

%Función para obtener todas las ofertas simples de la lista de

%generadores con potencia>=15MW

function [SumaP,UNIT]=SumaPyUNIT(unidadesSNOKMay)

tic

dim1=length(unidadesSNOKMay);

V_uds={};

for i=1:dim1

V_uds{i,1}=char(unidadesSNOKMay{i,1});

end

SumaP=zeros(dim1,365);

UNIT=cell(dim1,1);

Filename=CreaListaNombres;

for dia=1:365

nameFile=Filename(dia,1)

load (char(nameFile));

dim=length(VO.price); %dimension vector venta Ofertada - PRECIO

% cont=1; %Contador para ver cuantos generadores cambia

for i=1:dim

j=1;

while j<=dim1

if(length(char(V_uds(j)))==length(char(VO.unitName(i))))

if (char(V_uds(j))==char(VO.unitName(i)))

UNIT{j,1}=VO.unitName(i);

SumaP(j,dia)=VO.price(i)+SumaP(j,dia);

break;

end

end

j=j+1;

end

end

end

toc

end

10.9 Función “MayYmenFINAL”

%Función final para filtrar las unidades según su oferta anual

function [M]=MayYmenFINAL(UNIT,SumaP)

Page 72: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

72

dim1=length(UNIT);

DIM=603; %MODIFICAR INDICES SI el número de unidades fuera mayor

%603 numero generadores quitando los huecos vacios

%(hasta linea 30 de este script). Sacado de haber

%corrido el programa anteriormente y comprobar que la

%dimension de UNIT2 era 603.

UNIT2=cell(DIM,1);

SumaP2(DIM,365)=0;

k=1;

for i=1:dim1 %ELIMINAR VACIOS

vacio=iscellstr(UNIT{i,1}); %devuelve 0 si esta "vacio" y 1 si hay cadena

if vacio==1

UNIT2(k,1)=UNIT(i);

for j=1:365

SumaP2(k,j)=SumaP(i,j);

end

k=k+1;

end

end

SUMAP(DIM,2)=0;

dim1=length(UNIT2);

for i=1:dim1

for j=1:365

acum=SumaP2(i,j);

SUMAP(i,2)=SUMAP(i,2)+acum;

end

end

UNITFINAL={};

k=1;

for i=1:dim1

if SUMAP(i,2)==0;

UNITFINAL(k,1)=UNIT2(i);

k=k+1;

end

end

end

10.10 Función “CreaListaNombres”

function nameFile=CreaListaNombres;

nameFile=cell(365,1);

dianio=0;

for mes=1:12

if (mes<10)

for dia=1:9

aux=['2014' num2str(0) num2str(mes) num2str(0) num2str(dia)

'.mat'];

Page 73: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

73

dianio=dianio+1;

nameFile{dianio}=aux;

end

for dia=10:28

aux=['2014' num2str(0) num2str(mes) num2str(dia) '.mat'];

dianio=dianio+1;

nameFile{dianio}=aux;

end

if (mes~=2)

for dia=29:30

aux=['2014' num2str(0) num2str(mes) num2str(dia) '.mat'];

dianio=dianio+1;

nameFile{dianio}=aux;

end

if (mes==1||mes==3||mes==5||mes==7||mes==8)

dia=31;

aux=['2014' num2str(0) num2str(mes) num2str(dia) '.mat'];

dianio=dianio+1;

nameFile{dianio}=aux;

end

end

end

if(mes>=10)

for dia=1:9

aux=['2014' num2str(mes) num2str(0) num2str(dia) '.mat'];

dianio=dianio+1;

nameFile{dianio}=aux;

end

for dia=10:30

aux=['2014' num2str(mes) num2str(dia) '.mat'];

dianio=dianio+1;

nameFile{dianio}=aux;

end

if (mes==10||mes==12)

dia=31;

aux=['2014' num2str(mes) num2str(dia) '.mat'];

dianio=dianio+1;

nameFile{dianio}=aux;

end

end

end

10.11 Función “pruebacurvaagregada4”

%Modificacion final de pruebacurvaagregada, usada en CambiaPreciosOrigFINAL

% en la que uso un vector auxiliar MarcaCV para ver si se ha fijado el

% precio final (en caso de solucion múltiple o VACIA de SimpleMatch) según

Page 74: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

74

%la última oferta de Compra o de Venta ofertada

auxVC=0;

auxCC=0;

hora=0;

aggEnergyC=0;

aggEnergyV=0;

aggPriceC=0;

aggPriceV=0;

x0=0;

y0=0;

CCn=0;

VCn=0;

Pc=0;

Ec=0;

Ecc1=0;

Ecv1=0;

Pcv1=0;

Pcc1=0;

mode='descend';

for hora=1:23

i=i+1;

ind=VC.hour==hora;

indexhorasVC=length(VC.hour(ind));

if hora==1;

auxVC(hora)=indexhorasVC;

value1=VC.energy(1:auxVC(hora)); %326 en hora 1 ordenar de mayor a menor

value2=sort(VC.price(1:auxVC(hora))); % sort para ordenar de menor a mayor

% value2=VC.price(1:326);

VCn=struct('energy',value1, 'price',value2);

ind2=CC.hour==hora;

indexhorasCC=length(CC.hour(ind2));

auxCC(hora)=indexhorasCC;

value3=CC.energy(1:auxCC);

value4=CC.price(1:auxCC);

CCn=struct('energy',value3, 'price',value4);

else

auxVC(hora)=indexhorasVC+auxVC(hora-1); %necesito esto para ir acumulando

el indice

value1=(VC.energy((auxVC(hora-1)+1):auxVC(hora))); %326 en hora 1

value2=sort(VC.price((auxVC(hora-1)+1):auxVC(hora))); % sort para ordenar de

menor a mayor

VCn=struct('energy',value1, 'price',value2);

ind2=CC.hour==hora;

indexhorasCC=length(CC.hour(ind2));

auxCC(hora)=indexhorasCC+auxCC(hora-1);

value3=CC.energy((auxCC(hora-1)+1):auxCC(hora));

value4=CC.price((auxCC(hora-1)+1):auxCC(hora));

CCn=struct('energy',value3, 'price',value4);

Page 75: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

75

end

[aggEnergyV,aggPriceV]=aggregatedCurve(VCn.energy,VCn.price);

[aggEnergyC,aggPriceC]=aggregatedCurve(CCn.energy,CCn.price);

[x0,y0]=simpleMatch2(aggEnergyC,aggPriceC,aggEnergyV,aggPriceV);

VACIOx=isempty(x0);

VACIOy=isempty(y0);

if (VACIOx==1||VACIOy==1)

Ecv1=aggEnergyV(end); %todo esto es para situacion de corte horizontal y

ver que precio y energía se ha marcado, si el de Venta o el de Compra

Pcv1=aggPriceV(end);

Ecc1=aggEnergyC(end);

Pcc1=aggPriceC(end);

PCOMPv=PrecioReal(i)-Pcv1;

PCOMPc=PrecioReal(i)-Pcc1;

% Comparo precio de venta casado por funcion con el precio real casado

(DATO), si la diferencia es muy pequeña

% significará que el precio al que se casó fue el de venta. Si es muy

% grande significará que el precio al que se casó fue el otro, el de

% compra. MODIFICACION: Meto dos comprobaciones para que result sea mas

fiable

%compra = 1 y venta=0

if abs(PCOMPv)<=abs(PCOMPc);

Pc(hora)=Pcv1;

Ec(hora)=Ecv1;

MarcaCV(i)=0;

else

Pc(hora)=Pcc1;

Ec(hora)=Ecc1;

MarcaCV(i)=1;

end

else

Ec(hora)=x0;

Pc(hora)=y0;

MarcaCV(i)=2;

end

end

comp=(isequal(char(FileName),char('20140330.mat')));

if (comp==0)

i=i+1;

hora=24;

ind=VC.hour==hora;

indexhorasVC=length(VC.hour(ind));

auxVC(hora)=indexhorasVC+auxVC(hora-1); %necesito esto para ir acumulando

el indice

value1=VC.energy((auxVC(hora-1)+1):auxVC(hora));

value2=sort(VC.price((auxVC(hora-1)):auxVC(hora))); % sort para ordenar de

menor a mayor

VCn=struct('energy',value1, 'price',value2);

ind2=CC.hour==hora;

indexhorasCC=length(CC.hour(ind2));

auxCC(hora)=indexhorasCC+auxCC(hora-1);

Page 76: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

76

value3=CC.energy((auxCC(hora-1)+1):auxCC(hora));

value4=CC.price((auxCC(hora-1)+1):auxCC(hora));

CCn=struct('energy',value3, 'price',value4);

[aggEnergyV,aggPriceV]=aggregatedCurve(VCn.energy,VCn.price);

[aggEnergyC,aggPriceC]=aggregatedCurve(CCn.energy,CCn.price);

% hora

[x0,y0]=simpleMatch2(aggEnergyC,aggPriceC,aggEnergyV,aggPriceV);

VACIOx=isempty(x0);

VACIOy=isempty(y0);

if (VACIOx==1||VACIOy==1)

Ecv1=aggEnergyV(end);

Pcv1=aggPriceV(end);

Ecc1=aggEnergyC(end);

Pcc1=aggPriceC(end);

PCOMPv=PrecioReal(i)-Pcv1;

PCOMPc=PrecioReal(i)-Pcc1;

% Comparo precio de venta casado por funcion con el precio real casado

(DATO), si la diferencia es muy pequeña

% significará que el precio al que se casó fue el de venta. Si es muy

% grande significará que el precio al que se casó fue el otro, el de

% compra. MODIFICACION: Meto dos comprobaciones para que result sea mas

fiable

%compra = 1 y venta=0

if abs(PCOMPv)<=abs(PCOMPc);

Pc(hora)=Pcv1;

Ec(hora)=Ecv1;

MarcaCV(i)=0;

else

Pc(hora)=Pcc1;

Ec(hora)=Ecc1;

MarcaCV(i)=1;

end

else

Ec(hora)=x0;

Pc(hora)=y0;

MarcaCV(i)=2;

end

end

if (isequal(char(FileName),char('20141026.mat'))==1)

i=i+1;

hora=25;

ind=VC.hour==hora;

indexhorasVC=length(VC.hour(ind));

auxVC(hora)=indexhorasVC+auxVC(hora-1); %necesito esto para ir acumulando

el indice

value1=VC.energy((auxVC(hora-1)+1):auxVC(hora));

value2=sort(VC.price((auxVC(hora-1)+1):auxVC(hora))); % sort para ordenar de

menor a mayor

VCn=struct('energy',value1, 'price',value2);

ind2=CC.hour==hora;

indexhorasCC=length(CC.hour(ind2));

Page 77: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

77

auxCC(hora)=indexhorasCC+auxCC(hora-1);

value3=CC.energy((auxCC(hora-1)+1):auxCC(hora));

value4=CC.price((auxCC(hora-1)+1):auxCC(hora));

CCn=struct('energy',value3, 'price',value4);

[aggEnergyV,aggPriceV]=aggregatedCurve(VCn.energy,VCn.price);

[aggEnergyC,aggPriceC]=aggregatedCurve(CCn.energy,CCn.price);

[x0,y0]=simpleMatch2(aggEnergyC,aggPriceC,aggEnergyV,aggPriceV);

VACIOx=isempty(x0);

VACIOy=isempty(y0);

if (VACIOx==1||VACIOy==1)

Ecv1=aggEnergyV(end);

Pcv1=aggPriceV(end);

Ecc1=aggEnergyC(end);

Pcc1=aggPriceC(end);

PCOMPv=PrecioReal(i)-Pcv1;

PCOMPc=PrecioReal(i)-Pcc1;

% Comparo precio de venta casado por funcion con el precio real casado

(DATO), si la diferencia es muy pequeña

% significará que el precio al que se casó fue el de venta. Si es muy

% grande significará que el precio al que se casó fue el otro, el de

% compra. MODIFICACION: Meto dos comprobaciones para que result sea mas

fiable

%compra = 1 y venta=0

if abs(PCOMPv)<=abs(PCOMPc);

Pc(hora)=Pcv1;

Ec(hora)=Ecv1;

MarcaCV(i)=0;

else

Pc(hora)=Pcc1;

Ec(hora)=Ecc1;

MarcaCV(i)=1;

end

else

Ec(hora)=x0;

Pc(hora)=y0;

MarcaCV(i)=2;

end

end

10.12 Función “SimpleMatch2”

function [x0,y0] = simpleMatch(x1,y1,x2,y2)

% x1 C_energy y1 C_price

% x2 V_energy y2 V_price

% Curvas de prueba

% Son cruvas agregadas escalonadas. Siempre existe punto de corte

% [x1,y1]=aggregatedCurve([30 20 10 5],[50 20 10 5]);

% [x2,y2]=aggregatedCurve([0 10 25 35],[0 5 10 20]);

% [x1,y1]=aggregatedCurve([50 30 10 5],[50 20 10 5]);

% [x2,y2]=aggregatedCurve([0 10 25 35],[0 5 10 20]);

% corregido el 23/03/15. Corte en tramo horizontal

[x0,y0] = intersection(x1,y1,x2,y2);

% IF THERE ARE MULTIPLE SOLUTIONS. HORIZONTAL OVERLAP. x OR ENERGY IS

% MUTLIPLE

Page 78: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

78

if length(x0)>1

% VERTICAL OVERLAP

if x0==x0(1)

%disp('vertical')

% Precio Superior: el menor precio Compra_Casada(izq) y

Venta_No_Casada

% (dcha)

Icompra=x1==x0(1);

Iventa=x2==x0(1);

%precio Compra_Casada(izq)

PrecioCompraCasada=max(y1(Icompra));

PrecioVentaNoCasada=max(y2(Iventa));

Psup=min(PrecioCompraCasada,PrecioVentaNoCasada);

% Precio inferior: el mayor precio Compra No Casada(dcha) y Venta

% Casada

PrecioCompraNoCasada=min(y1(Icompra));

PrecioVentaCasada=min(y2(Iventa));

Pinf=max(PrecioCompraNoCasada,PrecioVentaCasada);

y0=(Psup+Pinf)*0.5;

x0=x0(1);

else %COINCIDENCIA EN TRAMO HORIZONTAL OJO REVISAR

% DETERMINACIÓN DEL EXCESO COMPRA O VENTA

% corte horizontal => Precios iguales O NO si no

cortan!!!!!!!!!!!

PriceH=y0(1);

indC=y1==PriceH;

indV=y2==PriceH;

compHv=x1(indC);

ventHv=x2(indV);

if compHv(end)>=ventHv(end) % Exceso demanda

x0=ventHv(end);

else

x0=compHv(end);

end

y0=PriceH;

end%end if

end%end if

end%END FUNCTION

10.13 Script “CambiaOrigFINAL”

%---------------- Selección de Unidades EOLICAS -----------------------

load('Mayores.mat');

i=1;

dim5=length(M);

Vector_codigos_eolica=cell(dim5,1);

for i=1:dim5

Vector_codigos_eolica{i,1}=char(M{i,1});

Page 79: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

79

end

MarcaCV(8760)=0;

PrecioReal(8760)=0;

load('casationPrice2014.mat');

for i=1:8760

PrecioReal(i)=casationPrice2014(i,2);

end

i=0;

acum=0; %variable auxiliar para AlmacenamientoEstructura

valor1=cell(1,1);

valor2=cell(2,1);

valor3=cell(2,1);

valor4=cell(2,1);

%---------------------Lectura DATOS 2014 ---------------------

%Bucle lectura/carga de datos

nameFile=CreaListaNombres; %Funcion crear lista de nombres archivos datos

%---------------Comparación y cambio de precio---------------------

for dia=1:365

FileName=nameFile(dia,1)

load (char(FileName))

dim=length(VC.price); %dimension vector Compra Casada - PRECIO

cont=1; %Contador para ver cuantos generadores cambia

pruebacurvaagregada4 %llamada a funcion (script)

Ec;

Pc;

L=length(Pc);

% Bucle acumulacion de datos para posterior escritura en struct

for k=1:L

valor1{k+acum,1}=char(FileName);

valor2{k+acum,1}=k;

valor3{k+acum,1}=Pc(k);

valor4{k+acum,1}=Ec(k);

end

acum=k+acum;

end

% Guardar datos almacenados en esctructura

VALOR={valor1,valor2,valor3,valor4};

% ValoresCasados=struct('dia',valor1,'hora',valor2,'PrecioCasado',valor3,...

% 'EnergiaCasada',valor4)

campos={'dia','hora','PrecioCasado','EnergiaCasada'};

ValoresCasadosOrigFINAL=cell2struct(VALOR,campos,2);

toc

% ----------------------GUARDAR DATOS------------------------

%Obtener el Path de la carpeta Actual

[stat,struc] = fileattrib;

PathCurrent = struc.Name;

Page 80: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

80

a=cell2mat(ValoresCasadosOrigFINAL.dia);

b=cell2mat(ValoresCasadosOrigFINAL.hora);

c=cell2mat(ValoresCasadosOrigFINAL.PrecioCasado);

d=cell2mat(ValoresCasadosOrigFINAL.EnergiaCasada);

%crear las rutas (Path) para carpetas y archivos

FolderName = ['DATOSORIGINALESFINAL'];

PathFolder = [PathCurrent '/RESULTADOSFINAL/' FolderName];

mkdir([PathCurrent '/RESULTADOSFINAL'], FolderName);

save([PathFolder '/workspace.mat']);

save([PathFolder '/ValoresCasadosOrigFINAL.mat'], 'ValoresCasadosOrigFINAL');

save([PathFolder '/MarcaCV.mat'], 'MarcaCV');

10.14 Script “pruebacurvaagregada5”

%Modificación final de pruebacurvaagregada, usada en la funcion

%CambiaPreciosM, en la que, según el vector MarcaCV obtenido de los

%resultados originales, fijará el precio en caso de solución múltiple o VACIA

de

%SimpleMatch según haya sido el original, el de Compra o el de Venta último

%ofertado. Si el corte hubiera sido "limpio" en el original, y en el caso

%de precio modificado sucediera un corte múltiple o vacío (hztal o

%vertical) se usará el criterio de Exceso Oferta-Demanda

auxVC=0;

auxCC=0;

hora=0;

aggEnergyC=0;

aggEnergyV=0;

aggPriceC=0;

aggPriceV=0;

x0=0;

y0=0;

CCn=0;

VCn=0;

Pc=0;

Ec=0;

Ecc1=0;

Ecv1=0;

Pcv1=0;

Pcc1=0;

mode='descend';

for hora=1:23

i=i+1;

ind=VC.hour==hora;

indexhorasVC=length(VC.hour(ind));

if hora==1;

auxVC(hora)=indexhorasVC;

value1=VC.energy(1:auxVC(hora));

value2=sort(VC.price(1:auxVC(hora))); % sort para ordenar de menor a mayor

VCn=struct('energy',value1, 'price',value2);

Page 81: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

81

ind2=CC.hour==hora;

indexhorasCC=length(CC.hour(ind2));

auxCC(hora)=indexhorasCC;

value3=CC.energy(1:auxCC); %155 en hora 1

value4=CC.price(1:auxCC);

CCn=struct('energy',value3, 'price',value4);

else

auxVC(hora)=indexhorasVC+auxVC(hora-1); %necesito esto para ir acumulando

el indice

value1=(VC.energy((auxVC(hora-1)+1):auxVC(hora))); %326 en hora 1

value2=sort(VC.price((auxVC(hora-1)+1):auxVC(hora))); % sort para ordenar de

menor a mayor

VCn=struct('energy',value1, 'price',value2);

ind2=CC.hour==hora;

indexhorasCC=length(CC.hour(ind2));

auxCC(hora)=indexhorasCC+auxCC(hora-1);

value3=CC.energy((auxCC(hora-1)+1):auxCC(hora));

value4=CC.price((auxCC(hora-1)+1):auxCC(hora));

CCn=struct('energy',value3, 'price',value4);

end

[aggEnergyV,aggPriceV]=aggregatedCurve(VCn.energy,VCn.price);

[aggEnergyC,aggPriceC]=aggregatedCurve(CCn.energy,CCn.price);

[x0,y0]=simpleMatch2(aggEnergyC,aggPriceC,aggEnergyV,aggPriceV);

VACIOx=isempty(x0);

VACIOy=isempty(y0);

if (VACIOx==1||VACIOy==1)

Ecv1=aggEnergyV(end);

Pcv1=aggPriceV(end);

Ecc1=aggEnergyC(end);

Pcc1=aggPriceC(end);

if MarcaCV(i)==1 %compra = 1 y venta=0

normal=2

Pc(hora)=Pcc1;

Ec(hora)=Ecc1;

elseif MarcaCV(i)==0

Pc(hora)=Pcv1;

Ec(hora)=Ecv1;

elseif MarcaCV(i)==2 %Caso en que el corte original haya

sido "limpio" pero el corte del precio cambiado sea hztal o vertical

%veremos ahora si existe exceso

%de demanda o de oferta

Ecv1=aggEnergyV(end);

Pcv1=aggPriceV(end);

Ecc1=aggEnergyC(end);

Pcc1=aggPriceC(end);

Page 82: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

82

indNPV=Pcv1==aggPriceV;

indNPC=Pcc1==aggPriceC;

IndexPV=find(indNPV==1);

IndexPC=find(indNPC==1);

l=IndexPV(1);

m=IndexPC(1);

EcvCOMP=aggEnergyV(l);

EccCOMP=aggEnergyC(m);

if EccCOMP<=EcvCOMP % Exceso demanda

Ec(hora)=Ecc1;

Pc(hora)=Pcc1;

else

Ec(hora)=Ecv1;

Pc(hora)=Pcv1;

end

end

else

Ec(hora)=x0;

Pc(hora)=y0;

end

end

comp=(isequal(char(FileName),char('20140330.mat')));

if (comp==0)

i=i+1;

hora=24;

ind=VC.hour==hora;

indexhorasVC=length(VC.hour(ind));

auxVC(hora)=indexhorasVC+auxVC(hora-1); %necesito esto para ir acumulando

el indice

value1=VC.energy((auxVC(hora-1)+1):auxVC(hora)); %326 en hora 1

value2=sort(VC.price((auxVC(hora-1)):auxVC(hora))); % sort para ordenar de

menor a mayor

VCn=struct('energy',value1, 'price',value2);

ind2=CC.hour==hora;

indexhorasCC=length(CC.hour(ind2));

auxCC(hora)=indexhorasCC+auxCC(hora-1);

value3=CC.energy((auxCC(hora-1)+1):auxCC(hora));

value4=CC.price((auxCC(hora-1)+1):auxCC(hora));

CCn=struct('energy',value3, 'price',value4);

[aggEnergyV,aggPriceV]=aggregatedCurve(VCn.energy,VCn.price);

[aggEnergyC,aggPriceC]=aggregatedCurve(CCn.energy,CCn.price);

% hora

[x0,y0]=simpleMatch2(aggEnergyC,aggPriceC,aggEnergyV,aggPriceV);

VACIOx=isempty(x0);

VACIOy=isempty(y0);

if (VACIOx==1||VACIOy==1)

Ecv1=aggEnergyV(end);

Pcv1=aggPriceV(end);

Page 83: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

83

Ecc1=aggEnergyC(end);

Pcc1=aggPriceC(end);

if MarcaCV(i)==1 %compra = 1 y venta=0

normal=2

Pc(hora)=Pcc1;

Ec(hora)=Ecc1;

elseif MarcaCV(i)==0

Pc(hora)=Pcv1;

Ec(hora)=Ecv1;

elseif MarcaCV(i)==2 %Caso en que el corte

original haya sido "limpio" pero el corte del precio cambiado sea hztal o

vertical

%veremos ahora si existe exceso

%de demanda o de oferta

Ecv1=aggEnergyV(end);

Pcv1=aggPriceV(end);

Ecc1=aggEnergyC(end);

Pcc1=aggPriceC(end);

indNPV=Pcv1==aggPriceV;

indNPC=Pcc1==aggPriceC;

IndexPV=find(indNPV==1);

IndexPC=find(indNPC==1);

l=IndexPV(1);

m=IndexPC(1);

EcvCOMP=aggEnergyV(l);

EccCOMP=aggEnergyC(m);

if EccCOMP<=EcvCOMP % Exceso demanda

Ec(hora)=Ecc1;

Pc(hora)=Pcc1;

else

Ec(hora)=Ecv1;

Pc(hora)=Pcv1;

end

end

else

Ec(hora)=x0;

Pc(hora)=y0;

end

end

if (isequal(char(FileName),char('20141026.mat'))==1)

i=i+1;

hora=25;

ind=VC.hour==hora;

indexhorasVC=length(VC.hour(ind));

auxVC(hora)=indexhorasVC+auxVC(hora-1); %necesito esto para ir acumulando

el indice

value1=VC.energy((auxVC(hora-1)+1):auxVC(hora)); %326 en hora 1

value2=sort(VC.price((auxVC(hora-1)+1):auxVC(hora))); % sort para ordenar de

menor a mayor

VCn=struct('energy',value1, 'price',value2);

ind2=CC.hour==hora;

Page 84: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

84

indexhorasCC=length(CC.hour(ind2));

auxCC(hora)=indexhorasCC+auxCC(hora-1);

value3=CC.energy((auxCC(hora-1)+1):auxCC(hora));

value4=CC.price((auxCC(hora-1)+1):auxCC(hora));

CCn=struct('energy',value3, 'price',value4);

[aggEnergyV,aggPriceV]=aggregatedCurve(VCn.energy,VCn.price);

[aggEnergyC,aggPriceC]=aggregatedCurve(CCn.energy,CCn.price);

[x0,y0]=simpleMatch2(aggEnergyC,aggPriceC,aggEnergyV,aggPriceV);

VACIOx=isempty(x0);

VACIOy=isempty(y0);

if (VACIOx==1||VACIOy==1)

Ecv1=aggEnergyV(end);

Pcv1=aggPriceV(end);

Ecc1=aggEnergyC(end);

Pcc1=aggPriceC(end);

if MarcaCV(i)==1 %compra = 1 y venta=0

normal=2

Pc(hora)=Pcc1;

Ec(hora)=Ecc1;

elseif MarcaCV(i)==0

Pc(hora)=Pcv1;

Ec(hora)=Ecv1;

elseif MarcaCV(i)==2 %Caso en que el corte

original haya sido "limpio" pero el corte del precio cambiado sea hztal o

vertical

%veremos ahora si existe exceso

%de demanda o de oferta

Ecv1=aggEnergyV(end);

Pcv1=aggPriceV(end);

Ecc1=aggEnergyC(end);

Pcc1=aggPriceC(end);

indNPV=Pcv1==aggPriceV;

indNPC=Pcc1==aggPriceC;

IndexPV=find(indNPV==1);

IndexPC=find(indNPC==1);

l=IndexPV(1);

m=IndexPC(1);

EcvCOMP=aggEnergyV(l);

EccCOMP=aggEnergyC(m);

if EccCOMP<=EcvCOMP % Exceso demanda

Ec(hora)=Ecc1;

Pc(hora)=Pcc1;

else

Ec(hora)=Ecv1;

Pc(hora)=Pcv1;

end

end

else

Ec(hora)=x0;

Pc(hora)=y0;

end

end

Page 85: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

85

10.15 Función “CambiapreciosM”

function CambiaPreciosM(P)

%---------------- Selección de Unidades EOLICAS -----------------------

load('Mayores.mat');

dim5=length(M);

Vector_codigos_eolica=cell(dim5,1);

load('MarcaCV.mat');

for n=1:dim5

Vector_codigos_eolica{n,1}=char(M{n,1});

end

i=0;

acum=0; %variable auxiliar para AlmacenamientoEstructura

valor1=cell(1,1);

valor2=cell(2,1);

valor3=cell(2,1);

valor4=cell(2,1);

% Codigos eolica accedo ahora en Vector_codigos_eolica{i,1} con imax=339

%---------------------Lectura DATOS 2014 ---------------------

%Bucle lectura/carga de datos

nameFile=CreaListaNombres; %Funcion crear lista de nombres archivos datos

%num2str

%---------------Comparación y cambio de precio---------------------

% MIRAR ISMEMBER!!!!!!!!!!!!!!!!!!!

for dia=1:365

FileName=nameFile(dia,1)

load (char(FileName))

dim=length(VC.price); %dimension vector Compra Casada - PRECIO

cont=1; %Contador para ver cuantos generadores cambia

for n=1:dim

for j=1:dim5

if(length(char(Vector_codigos_eolica(j)))==length(char(VC.unitName(n))))

if (char(Vector_codigos_eolica(j))==char(VC.unitName(n)))

VC.price(n)=P;

end

end

end

end

Page 86: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

86

pruebacurvaagregada5;

Ec;

Pc;

L=length(Pc);

% Bucle acumulacion de datos para posterior escritura en struct

for k=1:L

valor1{k+acum,1}=char(FileName);

valor2{k+acum,1}=k;

valor3{k+acum,1}=Pc(k);

valor4{k+acum,1}=Ec(k);

end

acum=k+acum;

end

% Guardar datos almacenados en esctructura

VALOR={valor1,valor2,valor3,valor4};

)

campos={'dia','hora','PrecioCasado','EnergiaCasada'};

if P==5

ValoresCasadosP5=cell2struct(VALOR,campos,2)

% ----------------------GUARDAR DATOS------------------------

%Obtener el Path de la carpeta Actual

[stat,struc] = fileattrib;

PathCurrent = struc.Name;

a=cell2mat(ValoresCasadosP5.dia);

b=cell2mat(ValoresCasadosP5.hora);

c=cell2mat(ValoresCasadosP5.PrecioCasado);

d=cell2mat(ValoresCasadosP5.EnergiaCasada);

%crear las rutas (Path) para carpetas y archivos

FolderName = ['DATOSMAY15P5FINAL'];

PathFolder = [PathCurrent '/RESULTADOSFINAL/' FolderName];

mkdir([PathCurrent '/RESULTADOSFINAL'], FolderName);

save([PathFolder '/workspace.mat']);

save([PathFolder '/ValoresCasadosP5.mat'], 'ValoresCasadosP5');

elseif P==10

ValoresCasadosP10=cell2struct(VALOR,campos,2)

toc

% ----------------------GUARDAR DATOS------------------------

%Obtener el Path de la carpeta Actual

[stat,struc] = fileattrib;

PathCurrent = struc.Name;

a=cell2mat(ValoresCasadosP10.dia);

Page 87: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

87

b=cell2mat(ValoresCasadosP10.hora);

c=cell2mat(ValoresCasadosP10.PrecioCasado);

d=cell2mat(ValoresCasadosP10.EnergiaCasada);

%crear las rutas (Path) para carpetas y archivos

FolderName = ['DATOSMAY15P10FINAL'];

PathFolder = [PathCurrent '/RESULTADOSFINAL/' FolderName];

mkdir([PathCurrent '/RESULTADOSFINAL'], FolderName);

save([PathFolder '/workspace.mat']);

save([PathFolder '/ValoresCasadosP10.mat'], 'ValoresCasadosP10');

elseif P==15

ValoresCasadosP15=cell2struct(VALOR,campos,2)

% ----------------------GUARDAR DATOS------------------------

%Obtener el Path de la carpeta Actual

[stat,struc] = fileattrib;

PathCurrent = struc.Name;

a=cell2mat(ValoresCasadosP15.dia);

b=cell2mat(ValoresCasadosP15.hora);

c=cell2mat(ValoresCasadosP15.PrecioCasado);

d=cell2mat(ValoresCasadosP15.EnergiaCasada);

%crear las rutas (Path) para carpetas y archivos

FolderName = ['DATOSMAY15P15FINAL'];

PathFolder = [PathCurrent '/RESULTADOSFINAL/' FolderName];

mkdir([PathCurrent '/RESULTADOSFINAL'], FolderName);

save([PathFolder '/workspace.mat']);

save([PathFolder '/ValoresCasadosP15.mat'], 'ValoresCasadosP15');

elseif P==20

ValoresCasadosP20=cell2struct(VALOR,campos,2)

toc

% ----------------------GUARDAR DATOS------------------------

%Obtener el Path de la carpeta Actual

[stat,struc] = fileattrib;

PathCurrent = struc.Name;

a=cell2mat(ValoresCasadosP20.dia);

b=cell2mat(ValoresCasadosP20.hora);

c=cell2mat(ValoresCasadosP20.PrecioCasado);

d=cell2mat(ValoresCasadosP20.EnergiaCasada);

%crear las rutas (Path) para carpetas y archivos

FolderName = ['DATOSMAY15P20FINAL'];

PathFolder = [PathCurrent '/RESULTADOSFINAL/' FolderName];

mkdir([PathCurrent '/RESULTADOSFINAL'], FolderName);

Page 88: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

88

save([PathFolder '/workspace.mat']);

save([PathFolder '/ValoresCasadosP20.mat'], 'ValoresCasadosP20');

end

toc

end

10.16 Función “PruebaEstacionalfuncion”

function PruebaEstacional(P)

%Funcion PruebaEstacional lo que hace es un análisis del incremento de

%precios y energías al modificar el Precio Original de casación de las

%unidades de Régimen Especial. Esta función es utilizada por otras

%funciones para obtener valores como las horas en las que

%cambia el precio o la energia, o ambos

%------Nombres VARIABLES------

NombreArchivo=['ValoresCasadosP' num2str(P)]

load(char(NombreArchivo))

if P==15

VectorP=cell2mat(ValoresCasadosP15.PrecioCasado);

VectorEP=cell2mat(ValoresCasadosP15.EnergiaCasada);

elseif P==5

VectorP=cell2mat(ValoresCasadosP5.PrecioCasado);

VectorEP=cell2mat(ValoresCasadosP5.EnergiaCasada);

elseif P==10

VectorP=cell2mat(ValoresCasadosP10.PrecioCasado);

VectorEP=cell2mat(ValoresCasadosP10.EnergiaCasada);

elseif P==20

VectorP=cell2mat(ValoresCasadosP20.PrecioCasado);

VectorEP=cell2mat(ValoresCasadosP20.EnergiaCasada);

end

% load('ValoresCasadosP10.mat');

% load('ValoresCasadosP5.mat');

load('ValoresCasadosOrigFINAL.mat');

% load('ValoresCasadosP15.mat');

% load('ValoresCasadosP20M15.mat');

dim=length(ValoresCasadosOrigFINAL.PrecioCasado);

% dim10=length(ValoresCasadosP10.PrecioCasado);

% dim5=length(ValoresCasadosP5M15.PrecioCasado);

Nocambian=0; %Vble aux para ver cuantos precios NO CAMBIAN

Sicambian=0; %Vble aux para ver cuantos precios SI CAMBIAN

NocambianE=0; %Vble aux para ver cuantas Energias NO CAMBIAN

SicambianE=0; %Vble aux para ver cuantas ENergias SI CAMBIAN

POrig=cell2mat(ValoresCasadosOrigFINAL.PrecioCasado);

Page 89: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

89

% P10=cell2mat(ValoresCasadosP10.PrecioCasado);

% P15=cell2mat(ValoresCasadosP15.PrecioCasado);

% P15=cell2mat(ValoresCasadosP15.PrecioCasado);

% P20=cell2mat(ValoresCasadosP20.PrecioCasado);

EOrig=cell2mat(ValoresCasadosOrigFINAL.EnergiaCasada);

% E10=cell2mat(ValoresCasadosP10.EnergiaCasada);

% VectorEP=cell2mat(ValoresCasadosP15.EnergiaCasada);

% E15=cell2mat(ValoresCasadosP15.EnergiaCasada);

% E20=cell2mat(ValoresCasadosP20.EnergiaCasada);

marzo20h24=1896; %ultima hora Invierno

marzo21h1=1897; %primera hora Primavera

junio20h24=4103; %ultima hora Primavera

junio21h1=4104; %primera hora Verano

sept20h24=6311; %ultima hora Verano

sept21h1=6312; %primera hora Otoño

dic20h24=8496; %Ultima hora Otoño

dic21h1=8497; %Primera hora Invierno

NocambianINV=0;

SicambianINV=0;

NocambianPRI=0;

SicambianPRI=0;

NocambianVER=0;

SicambianVER=0;

NocambianOTO=0;

SicambianOTO=0;

SicambianEPRI=0;

NocambianEPRI=0;

SicambianEINV=0;

NocambianEINV=0;

SicambianEOTO=0;

NocambianEOTO=0;

SicambianEVER=0;

NocambianEVER=0;

Cinv=1; %contadores para dias estaciones

Cpri=1;

Cver=1;

Coto=1;

horasPRI=4104-1897;

horasVER=6312-4104;

horasOTO=8497-6312;

horasINV=8761-8497+1896;

for i=1:dim %8760 horas del año

if (POrig(i)==VectorP(i)) %Si Precio Original = Precio Cambiado -> El

precio NO ha cambiado

Nocambian=Nocambian+1;

CambioP(i,1)=0;

else

filtrado=VectorP(i)-POrig(i);

tolerancia=0.001;

if abs(filtrado)>=tolerancia

Sicambian=Sicambian+1; %Si no, El precio SI ha cambiado

CambioP(i,1)=VectorP(i)-POrig(i);

HanCambiadoP(Sicambian)=CambioP(i,1); %Almaceno solo los que han

cambiado

% en vector HanCambiado

else

Nocambian=Nocambian+1;

CambioP(i,1)=0;

Page 90: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

90

end

end

end

Nocambian;

Sicambian;

X100Cambio=(Sicambian*100)/8760; % porcentaje precios cambian

X100NoCambio=(Nocambian*100)/8760; %porcentaje precios NO cambian

% Cambio0a10=0; %Numero de Precios que cambian de 0 a 10

acumuladoOrig=0; %Vble aux suma para precio medio ORIG

acumuladoP=0; %Vble aux para precio medio P10

for i=1:dim

acumuladoOrig=POrig(i)+acumuladoOrig;

acumuladoP=VectorP(i)+acumuladoP;

end

PmedioOrig=acumuladoOrig/8760;

PmedioP=acumuladoP/8760;

AumentoPmedio=PmedioP-PmedioOrig;

AumentoPmedioX100=((PmedioP*100)/PmedioOrig)-100;

for i=1:dim %8760 horas del año

if (EOrig(i)==VectorEP(i)) %Si Energia Original = Energia Casada ->

Energia Casada NO ha cambiado

NocambianE=NocambianE+1;

CambioEP(i,1)=0;

else

filtradoE=VectorEP(i)-EOrig(i);

toleranciaE=0.1;

if abs(filtradoE)>=toleranciaE

SicambianE=SicambianE+1; %Si no, Energia Casada SI ha cambiado

CambioEP(i,1)=VectorEP(i)-EOrig(i);

HanCambiadoEP(SicambianE)=CambioEP(i,1); %Almaceno solo los que han

cambiado

% en vector HanCambiado

else

NocambianE=NocambianE+1;

CambioEP(i,1)=0;

end

end

end

NocambianE;

SicambianE;

X100CambioE=(SicambianE*100)/8760; % porcentaje energia cambian

X100NoCambioE=(NocambianE*100)/8760; %porcentaje energia NO cambian

Page 91: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

91

% Cambio0a10=0; %Numero de Precios que cambian de 0 a 10

acumuladoOrigE=0; %Vble aux suma para energia medio ORIG

acumuladoE=0; %Vble aux para energia medio P10

for i=1:dim

acumuladoOrigE=EOrig(i)+acumuladoOrigE;

acumuladoE=VectorEP(i)+acumuladoE;

end

EcambioTOT=acumuladoE-acumuladoOrigE;

EmedioOrig=acumuladoOrigE/8760;

EmedioP=acumuladoE/8760;

AumentoEmedio=EmedioP-EmedioOrig;

AumentoEmedioX100=((EmedioP*100)/EmedioOrig)-100;

% %-------------------------------ESTACIONAL----------------------------

marzo20h24=1896; %ultima hora Invierno

marzo21h1=1897; %primera hora Primavera

junio20h24=4103; %ultima hora Primavera

junio21h1=4104; %primera hora Verano

sept20h24=6311; %ultima hora Verano

sept21h1=6312; %primera hora Otoño

dic20h24=8496; %Ultima hora Otoño

dic21h1=8497; %Primera hora Invierno

%--------- PRIMAVERA ---------

%----------PRECIOS------------

acumuladoOrigPRI=0;

acumuladoPPRI=0;

for i=marzo21h1:junio20h24

if CambioP(i)==0

NocambianPRI=NocambianPRI+1;

else

SicambianPRI=SicambianPRI+1;

end

acumuladoOrigPRI=POrig(i)+acumuladoOrigPRI;

acumuladoPPRI=VectorP(i)+acumuladoPPRI;

end

NocambianPRI;

SicambianPRI;

X100CambioPRI=(SicambianPRI*100)/horasPRI; % porcentaje precios cambian

X100NoCambioPRI=(NocambianPRI*100)/horasPRI; %porcentaje precios NO cambian

PmedioOrigPRI=acumuladoOrigPRI/horasPRI;

PmedioPPRI=acumuladoPPRI/horasPRI;

AumentoPmedioPRI=PmedioPPRI-PmedioOrigPRI;

AumentoPmedioPRIX100=((PmedioPPRI*100)/PmedioOrigPRI)-100;

%-------------ENERGIA------------------

acumuladoOrigEPRI=0; %Vble aux suma para energia medio ORIG

acumuladoEPPRI=0; %Vble aux para energia medio P15

Page 92: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

92

for i=marzo21h1:junio20h24 % horas primavera

if CambioEP(i)==0

NocambianEPRI=NocambianEPRI+1;

else

SicambianEPRI=SicambianEPRI+1;

end

acumuladoOrigEPRI=EOrig(i)+acumuladoOrigEPRI;

acumuladoEPPRI=VectorEP(i)+acumuladoEPPRI;

end

NocambianEPRI;

SicambianEPRI;

X100CambioEPRI=(SicambianEPRI*100)/horasPRI; % porcentaje energia cambian

X100NoCambioEPRI=(NocambianEPRI*100)/horasPRI; %porcentaje energia NO

cambian

EmedioOrigPRI=acumuladoOrigEPRI/horasPRI;

EmedioPPRI=acumuladoEPPRI/horasPRI;

AumentoEmedioPRI=EmedioPPRI-EmedioOrigPRI;

AumentoEmedioX100PRI=((EmedioPPRI*100)/EmedioOrigPRI)-100;

% ------VERANO----------

acumuladoOrigVER=0;

acumuladoPVER=0;

for i=junio21h1:sept20h24

if CambioP(i)==0

NocambianVER=NocambianVER+1;

else

SicambianVER=SicambianVER+1;

end

acumuladoOrigVER=POrig(i)+acumuladoOrigVER;

acumuladoPVER=VectorP(i)+acumuladoPVER;

end

NocambianVER;

SicambianVER;

X100CambioVER=(SicambianVER*100)/horasVER; % porcentaje precios cambian

X100NoCambioVER=(NocambianVER*100)/horasVER; %porcentaje precios NO cambian

PmedioOrigVER=acumuladoOrigVER/horasVER;

PmedioPVER=acumuladoPVER/horasVER;

AumentoPmedioVER=PmedioPVER-PmedioOrigVER;

AumentoPmedioVERX100=((PmedioPVER*100)/PmedioOrigVER)-100;

%-------------ENERGIA------------------

acumuladoOrigEVER=0; %Vble aux suma para energia medio ORIG

acumuladoEPVER=0; %Vble aux para energia medio P15

for i=junio21h1:sept20h24 % horas VERANO

if CambioEP(i)==0

Page 93: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

93

NocambianEVER=NocambianEVER+1;

else

SicambianEVER=SicambianEVER+1;

end

acumuladoOrigEVER=EOrig(i)+acumuladoOrigEVER;

acumuladoEPVER=VectorEP(i)+acumuladoEPVER;

end

NocambianEVER;

SicambianEVER;

X100CambioEVER=(SicambianEVER*100)/horasVER; % porcentaje energia cambian

X100NoCambioEVER=(NocambianEVER*100)/horasVER; %porcentaje energia NO

cambian

EmedioOrigVER=acumuladoOrigEVER/horasVER;

EmedioPVER=acumuladoEPVER/horasVER;

AumentoEmedioVER=EmedioPVER-EmedioOrigVER;

AumentoEmedioX100VER=((EmedioPVER*100)/EmedioOrigVER)-100;

% -----OTOÑO-----------

acumuladoOrigOTO=0;

acumuladoPOTO=0;

for i=sept21h1:dic20h24

if CambioP(i)==0

NocambianOTO=NocambianOTO+1;

else

SicambianOTO=SicambianOTO+1;

end

acumuladoOrigOTO=POrig(i)+acumuladoOrigOTO;

acumuladoPOTO=VectorP(i)+acumuladoPOTO;

end

NocambianOTO;

SicambianOTO;

X100CambioOTO=(SicambianOTO*100)/horasOTO; % porcentaje precios cambian

X100NoCambioOTO=(NocambianOTO*100)/horasOTO; %porcentaje precios NO cambian

PmedioOrigOTO=acumuladoOrigOTO/horasOTO;

PmedioPOTO=acumuladoPOTO/horasOTO;

AumentoPmedioOTO=PmedioPOTO-PmedioOrigOTO;

AumentoPmedioOTOX100=((PmedioPOTO*100)/PmedioOrigOTO)-100;

%-------------ENERGIA------------------

acumuladoOrigEOTO=0; %Vble aux suma para energia medio ORIG

acumuladoEOTO=0; %Vble aux para energia medio P15

for i=sept21h1:dic20h24 % horas OTOÑO

if CambioEP(i)==0

NocambianEOTO=NocambianEOTO+1;

else

SicambianEOTO=SicambianEOTO+1;

end

acumuladoOrigEOTO=EOrig(i)+acumuladoOrigEOTO;

Page 94: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

94

acumuladoEOTO=VectorEP(i)+acumuladoEOTO;

end

NocambianEOTO;

SicambianEOTO;

X100CambioEOTO=(SicambianEOTO*100)/horasOTO; % porcentaje energia cambian

X100NoCambioEOTO=(NocambianEOTO*100)/horasOTO; %porcentaje energia NO

cambian

EmedioOrigOTO=acumuladoOrigEOTO/horasOTO;

EmedioPOTO=acumuladoEOTO/horasOTO;

AumentoEmedioOTO=EmedioPOTO-EmedioOrigOTO;

AumentoEmedioX100OTO=((EmedioPOTO*100)/EmedioOrigOTO)-100;

% -----INVIERNO--------

acumuladoOrigINV=0;

acumuladoPINV=0;

for i=dic21h1:8760

if CambioP(i)==0

NocambianINV=NocambianINV+1;

else

SicambianINV=SicambianINV+1;

end

acumuladoOrigINV=POrig(i)+acumuladoOrigINV;

acumuladoPINV=VectorP(i)+acumuladoPINV;

end

for i=1:marzo20h24

if CambioP(i)==0

NocambianINV=NocambianINV+1;

else

SicambianINV=SicambianINV+1;

end

acumuladoOrigINV=POrig(i)+acumuladoOrigINV;

acumuladoPINV=VectorP(i)+acumuladoPINV;

end

NocambianINV;

SicambianINV;

X100CambioINV=(SicambianINV*100)/horasINV; % porcentaje precios cambian

X100NoCambioINV=(NocambianINV*100)/horasINV; %porcentaje precios NO cambian

PmedioOrigINV=acumuladoOrigINV/horasINV;

PmedioPINV=acumuladoPINV/horasINV;

AumentoPmedioINV=PmedioPINV-PmedioOrigINV;

AumentoPmedioINVX100=((PmedioPINV*100)/PmedioOrigINV)-100;

%-------------ENERGIA------------------

acumuladoOrigEINV=0; %Vble aux suma para energia medio ORIG

acumuladoEINV=0; %Vble aux para energia medio P

for i=dic21h1:8760 % horas INVIERNO

if CambioEP(i)==0

NocambianEINV=NocambianEINV+1;

else

SicambianEINV=SicambianEINV+1;

Page 95: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

95

end

acumuladoOrigEINV=EOrig(i)+acumuladoOrigEINV;

acumuladoEINV=VectorEP(i)+acumuladoEINV;

end

for i=1:marzo20h24

if CambioEP(i)==0

NocambianEINV=NocambianEINV+1;

else

SicambianEINV=SicambianEINV+1;

end

acumuladoOrigEINV=EOrig(i)+acumuladoOrigEINV;

acumuladoEINV=VectorEP(i)+acumuladoEINV;

end

NocambianEINV;

SicambianEINV;

X100CambioEINV=(SicambianEINV*100)/horasINV; % porcentaje energia cambian

X100NoCambioEINV=(NocambianEINV*100)/horasINV; %porcentaje energia NO

cambian

EmedioOrigINV=acumuladoOrigEINV/horasINV;

EmedioPINV=acumuladoEINV/horasINV;

AumentoEmedioINV=EmedioPINV-EmedioOrigINV;

AumentoEmedioX100INV=((EmedioPINV*100)/EmedioOrigINV)-100;

% --------------------- MOSTRAR RESULTADOS-----------------------------

fprintf ('\nResultados para aumento precio RE a %f€/MW:\n\n',P)

fprintf('\n PRECIOS: \n')

fprintf ('Numero de Horas Cambian Precio son %f horas\n',Sicambian)

fprintf ('Porcentaje Horas Cambian Precio son %f%%\n ',X100Cambio)

fprintf('Porcentaje Horas NO Cambian Precio son %f%%\n',X100NoCambio)

fprintf('Precio Medio Anual ORIGINAL es %f€\n',PmedioOrig)

fprintf('Precio Medio Anual P%f es %f€/MW\n',P,PmedioP)

fprintf('Aumento del Precio Medio Anual de %f€/MW\n',AumentoPmedio)

fprintf('Aumento del Precio Medio Anual de %f%%\n',AumentoPmedioX100)

fprintf('\n ENERGIAS: \n')

fprintf ('Numero de Horas Cambian Energia son %f horas\n',SicambianE)

fprintf ('Porcentaje Horas Cambian Energia son %f%%\n ',X100CambioE)

fprintf('Porcentaje Horas NO Cambian energia son %f%%\n',X100NoCambioE)

fprintf('Energia Casada Total Anual ORIGINAL es %fMW\n',acumuladoOrigE)

fprintf('Energia Total Anual P%f es %fMW\n',P,acumuladoE)

fprintf('Aumento de la Energia Casada TOTAL Anual es %fMW\n',EcambioTOT)

fprintf('Energia Casada Media Anual ORIGINAL es %fMW\n',EmedioOrig)

fprintf('Energia Media Anual P%f es %fMW\n',P,EmedioP)

fprintf('Aumento de la Energia Casada Media Anual de %fMW\n',AumentoEmedio)

fprintf('Aumento de la Energia Casada Media Anual de

%f%%\n',AumentoEmedioX100)

fprintf ('\nResultados ESTACIONALES:\n\n')

fprintf ('\nPRIMAVERA:\n\n')

fprintf('\n PRECIOS: \n')

fprintf ('Numero de Horas Cambian Precio son %f horas\n',SicambianPRI)

fprintf ('Porcentaje Horas Cambian Precio son %f%%\n ',X100CambioPRI)

fprintf('Porcentaje Horas NO Cambian Precio son %f%%\n',X100NoCambioPRI)

fprintf('Precio Medio PRIMAVERA ORIGINAL es %f€\n',PmedioOrigPRI)

fprintf('Precio Medio PRIMAVERA P%f es %f€/MW\n',P,PmedioPPRI)

Page 96: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

96

fprintf('Aumento del Precio Medio PRIMAVERA de %f€/MW\n',AumentoPmedioPRI)

fprintf('Aumento del Precio Medio PRIMAVERA de %f%%\n',AumentoPmedioPRIX100)

fprintf('\n ENERGIA PRIMAVERA: \n')

fprintf ('Numero de Horas Cambian Energia son %f horas\n',SicambianEPRI)

fprintf ('Porcentaje Horas Cambian Energia son %f%%\n ',X100CambioEPRI)

fprintf('Porcentaje Horas NO Cambian energia son %f%%\n',X100NoCambioEPRI)

fprintf('Energia Casada Total PRIMAVERA ORIGINAL es

%fMW\n',acumuladoOrigEPRI)

fprintf('Energia Total PRIMAVERA P%f es %fMW\n',P,acumuladoEPPRI)

fprintf('Energia Casada Media PRIMAVERA ORIGINAL es %fMW\n',EmedioOrigPRI)

fprintf('Energia Media PRIMAVERA P%f es %fMW\n',P,EmedioPPRI)

fprintf('Aumento de la Energia Casada Media PRIMAVERA de

%fMW\n',AumentoEmedioPRI)

fprintf('Aumento de la Energia Casada Media PRIMAVERA de

%f%%\n',AumentoEmedioX100PRI)

fprintf ('\nVERANO:\n\n')

fprintf('\n PRECIOS: \n')

fprintf ('Numero de Horas Cambian Precio son %f horas\n',SicambianVER)

fprintf ('Porcentaje Horas Cambian Precio son %f%%\n ',X100CambioVER)

fprintf('Porcentaje Horas NO Cambian Precio son %f%%\n',X100NoCambioVER)

fprintf('Precio Medio VERANO ORIGINAL es %f€\n',PmedioOrigVER)

fprintf('Precio Medio VERANO P%f es %f€/MW\n',P,PmedioPVER)

fprintf('Aumento del Precio Medio VERANO de %f€/MW\n',AumentoPmedioVER)

fprintf('Aumento del Precio Medio VERANO de %f%%\n',AumentoPmedioVERX100)

fprintf('\n ENERGIA VERANO: \n')

fprintf ('Numero de Horas Cambian Energia son %f horas\n',SicambianEVER)

fprintf ('Porcentaje Horas Cambian Energia son %f%%\n ',X100CambioEVER)

fprintf('Porcentaje Horas NO Cambian energia son %f%%\n',X100NoCambioEVER)

fprintf('Energia Casada Total VERANO ORIGINAL es %fMW\n',acumuladoOrigEVER)

fprintf('Energia Total VERANO P%f es %fMW\n',P,acumuladoEPVER)

fprintf('Energia Casada Media VERANO ORIGINAL es %fMW\n',EmedioOrigVER)

fprintf('Energia Media VERANO P%f es %fMW\n',P,EmedioPVER)

fprintf('Aumento de la Energia Casada Media VERANO de

%fMW\n',AumentoEmedioVER)

fprintf('Aumento de la Energia Casada Media VERANO de

%f%%\n',AumentoEmedioX100VER)

fprintf ('\nOTOÑO:\n\n')

fprintf('\n PRECIOS: \n')

fprintf ('Numero de Horas Cambian Precio son %f horas\n',SicambianOTO)

fprintf ('Porcentaje Horas Cambian Precio son %f%%\n ',X100CambioOTO)

fprintf('Porcentaje Horas NO Cambian Precio son %f%%\n',X100NoCambioOTO)

fprintf('Precio Medio OTOÑO ORIGINAL es %f€\n',PmedioOrigOTO)

fprintf('Precio Medio OTOÑO P%f es %f€/MW\n',P,PmedioPOTO)

fprintf('Aumento del Precio Medio OTOÑO de %f€/MW\n',AumentoPmedioOTO)

fprintf('Aumento del Precio Medio OTOÑO de %f%%\n',AumentoPmedioOTOX100)

fprintf('\n ENERGIA OTOÑOO: \n')

fprintf ('Numero de Horas Cambian Energia son %f horas\n',SicambianEOTO)

fprintf ('Porcentaje Horas Cambian Energia son %f%%\n ',X100CambioEOTO)

fprintf('Porcentaje Horas NO Cambian energia son %f%%\n',X100NoCambioEOTO)

fprintf('Energia Casada Total OTOÑO ORIGINAL es %fMW\n',acumuladoOrigEOTO)

fprintf('Energia Total OTOÑO P%f es %fMW\n',P,acumuladoEOTO)

fprintf('Energia Casada Media OTOÑO ORIGINAL es %fMW\n',EmedioOrigOTO)

fprintf('Energia Media OTOÑO P%f es %fMW\n',P,EmedioPOTO)

fprintf('Aumento de la Energia Casada Media OTOÑO de

%fMW\n',AumentoEmedioOTO)

Page 97: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

97

fprintf('Aumento de la Energia Casada Media OTOÑO de

%f%%\n',AumentoEmedioX100OTO)

fprintf ('\nINVIERNO:\n\n')

fprintf('\n PRECIOS: \n')

fprintf ('Numero de Horas Cambian Precio son %f horas\n',SicambianINV)

fprintf ('Porcentaje Horas Cambian Precio son %f%%\n ',X100CambioINV)

fprintf('Porcentaje Horas NO Cambian Precio son %f%%\n',X100NoCambioINV)

fprintf('Precio Medio INVIERNO ORIGINAL es %f€\n',PmedioOrigINV)

fprintf('Precio Medio INVIERNO P%f es %f€/MW\n',P,PmedioPINV)

fprintf('Aumento del Precio Medio INVIERNO de %f€/MW\n',AumentoPmedioINV)

fprintf('Aumento del Precio Medio INVIERNO de %f%%\n',AumentoPmedioINVX100)

fprintf('\n ENERGIA INVIERNO: \n')

fprintf ('Numero de Horas Cambian Energia son %f horas\n',SicambianEINV)

fprintf ('Porcentaje Horas Cambian Energia son %f%%\n ',X100CambioEINV)

fprintf('Porcentaje Horas NO Cambian energia son %f%%\n',X100NoCambioEINV)

fprintf('Energia Casada Total INVIERNO ORIGINAL es %fMW\n',acumuladoOrigEINV)

fprintf('Energia Total INVIERNO P%f es %fMW\n',P,acumuladoEINV)

fprintf('Energia Casada Media INVIERNO ORIGINAL es %fMW\n',EmedioOrigINV)

fprintf('Energia Media INVIERNO P%f es %fMW\n',P,EmedioPINV)

fprintf('Aumento de la Energia Casada Media INVIERNO de

%fMW\n',AumentoEmedioINV)

fprintf('Aumento de la Energia Casada Media INVIERNO de

%f%%\n',AumentoEmedioX100INV)

end

10.17 Función “CambiosEnergiaFinal”

function

[ERegEspP,CambioP,CambioEP,EacumuladahoraEol,OfertatotalEOL,ValoresEnergiaOfe

rtada,EREnuevaUnidad,Comprobacion,EcasadaPnoEOL,EnergiaCASADAUnidadesAnual,En

ergiaOFERTADAUnidadesAnual]=CambiosEnergiaFinal(P)

%funcion que recibe un precio P' y devuelve, para cada hora del año,

%teniendo en cuenta la nueva energía casada a ese P' (calculada

%previamente),la ENERGIA CASADA A P<=P' de todas las unidades NO EOLICAS

%identificadas que hubieran entrado en la casacion original de esa hora

% P=5;

tic

Valores=PruebaEstacionalfuncion(P); %funcion que devuelve la diferencia de

%energia y de precios por horas entre los valores originales y los valores

%con los precios de las unidades renovables cambiados a P'

CambioP=Valores.CambioP; %CambioP vector cambio de precios entre orig y P'

CambioEP=Valores.CambioEP;%CambioEP vector cambio energia entre orig y P'

load('Mayores.mat');

diacomp=0;

dimmay=length(M);

Vector_codigos_eolica=cell(dimmay,1);

for i=1:dimmay

Vector_codigos_eolica{i,1}=char(M{i,1});

end

Eacumuladahora(8760,1)=0;

EacumuladahoraEol(8760,1)=0;

ValoresEnergiaOfertada(dimmay,8760)=0;

Page 98: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

98

nameFile=CreaListaNombres;

nopasanada=0;

Si=0;

No=0;

for rec=1:8760

if (CambioEP(rec)==0) %PRIMER if, tener en cuenta que solo se

esta buscando para los dias que ha habido cambio de energia!!!!

nopasanada=nopasanada+1;

else

hora2=mod(rec,24);

if hora2==0

hora2=24;

dia=rec/24;

else

dia=rec/24;

dia=fix(dia)+1;

end

%-----------------------DIAS ESPECIALES------------------------

if (rec>2136&&rec<7176)%para el periodo entre 30 de

marzo 23 horas , dia 89 del año

%2135 es la hora 23 del dia 89 q solo tiene 23 horas

y el 26octubre q

%tiene 25 horas dia 299

hora2=mod(rec+1,24);

if hora2==0

hora2=24;

dia=(rec+1)/24;

else

dia=(rec+1)/24;

dia=fix(dia)+1;

end

end

if (rec==2136)

dia=90;

hora2=1;

end

if(rec==7176)

hora2=25;

dia=299;

end

%TENER EN CUENTA que la variable dia no va a llegar hasta 365 a menos

%que el dia 365 haya habido cambios de energia, es decir, dia solo va

%a actualizar su valor cuando haya habido cambios de energia!!

% ------SOLVED----

% a partir del 30 de marzo ya no me vale estas cuentas asique tengo

% que sumar 1 y modificar la cuenta de la vble dia

% meter condiciones para el dia de 25 horas y el de 23

% ----SOLVED----

%---------------------FIN DIAS ESPECIALES------------------------

%-----------------CONDICIONES CARGA ARCHIVOS---------------

Page 99: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

99

FileName=nameFile(dia,1);%cargo el dia que sea

if (diacomp~=dia||diacomp==0)

load(char(FileName)) %Hago esto para no cargar el

mismo

end %archivo cada vez si lo estoy

volviendo

%a usar en la siguiente iteracion

diacomp=dia;

%--------------FIN CONDICIONES CARGA ARCHIVOS-------------

%-------------ENCONTRAR INDICES------------------------

dim=length(VC.energy); %dimension vector Venta Casada - PRECIO

cont=1; %Contador para ver cuantos generadores cambia

ind=VC.hour==hora2;

cuentas=0;

dimaux=1;

while cuentas==0 %bucle while para saber el indice inicial de las

horas en vector ind

cuentas=ind(dimaux);

dimaux=dimaux+1;

end

dimaux=dimaux-1; %en vble dimaux tengo el indice inicial

del vector ind

indexhorasVC=length(VC.hour(ind)); %indexhoras numero de horas X en

mismo dia

% auxVC(hora)=indexhorasVC;

% value1=VC.energy(dimaux:indexhorasVC);

indexhorasVC=dimaux+indexhorasVC-1; %indehorasVC indice final horas X

mismo dia

%---------------------FIN ENCONTRAR INDICES---------------------

%--------------------INICIO BUCLE FOR COMPARACION UNIDADES-------------

% EnergiaUsada=0; variable para encontrar fallo ---ENCONTRADO

for i=dimaux:indexhorasVC

Si=0;

% comparador=Si; %Variables de comparacion

%entro en primera unidad de la hora que sea y miro a ver si es eolico

j=0;

Noentres=0;

while(Si==0) %Antes con for pero while mas rapido

%322 numero de generadores que conocemos son eolicos

j=j+1;

if(length(char(Vector_codigos_eolica(j)))==length(char(VC.unitName(i))))

% Primero comparo longitud y luego si son iguales, si no da

% error al comparar cosas de diferente longitud

% tengo que hacer esto así por ser cadenas de caracteres

if (char(Vector_codigos_eolica(j))==char(VC.unitName(i)))

Si=1;

EacumuladahoraEol(rec,1)=VC.energy(i)+EacumuladahoraEol(rec,1);

%Deberian dar igual la suma de ValoresEnergiaOfertada y

%Eacumuladahora pero no dan, tras mucho investigar, resulta

Page 100: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

100

%que hay ofertas duplicadas de mismos generadores a mismas

hroas en los

%datos.

%esto esta hecho para la suposicion de que aunque la oferta

%este duplicada, se suman todas las ofertas de una misma

%unidad

if ValoresEnergiaOfertada(j,rec)==0;

ValoresEnergiaOfertada(j,rec)=VC.energy(i);

else

ValoresEnergiaOfertada(j,rec)=VC.energy(i)+ValoresEnergiaOfertada(j,rec);

end

% EnergiaUsada(i)=VC.energy(i);

end

end

if j==dimmay&&Si==0

Noentres=1;

Si=1;

end

end %REVISAR ESTA PARTE DEL CODIGO LOS ENDS

%Si la unidad es eolica, la variable Si se habra cambiado a valor 1,

%Si no es eolica, la variabla Si no habrá cambiado, por lo que Si=0 y

%Noentres=1

if (Noentres==1) % Manera de encontrar Unidades NO EOLICAS que han

casado

No=No+1;

if (VC.price(i)<=P) %Buscamos Ecasada de Unidades NO

%EOLICAS que han casado a

%Precio<=P'

Eacumuladahora(rec,1)=VC.energy(i)+Eacumuladahora(rec,1);

end

end

end

end

%mod(hora,24) para saber hora pero tener en cuenta que cuando sea la

%hora 24 mod devolvera 0

rec

end

NombreArchivo=['ValoresCasadosP' num2str(P)];

load(char(NombreArchivo));

if P==5

ValoresCasadosP=ValoresCasadosP5;

elseif P==10

ValoresCasadosP=ValoresCasadosP10;

elseif P==15

ValoresCasadosP=ValoresCasadosP15;

elseif P==20

ValoresCasadosP=ValoresCasadosP20;

end

EcasadaTOTP=cell2mat(ValoresCasadosP.EnergiaCasada);

Page 101: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

101

EcasadaPnoEOL=Eacumuladahora;

ERegEspP(8760,1)=0;

OfertatotalEOL(8760,1)=0;

Nada=0;

for i=1:8760

if CambioEP(i)==0

Nada=Nada+1;

else

ERegEspP(i,1)=EcasadaTOTP(i)-EcasadaPnoEOL(i); %Recordar que

EcasadaPnoEOL es la E CASADA por UDS NO EOL A P<=5, no toda!

OfertatotalEOL(i,1)=ERegEspP(i,1)+abs(CambioEP(i));

%Vector E'RegEsp es la Energia Casada por las Unidades de RE al nuevo

precio

end

end

EREnuevaUnidad(dimmay,8760)=0;

Comprobacion(8760,1)=0;

for rec=1:8760

if CambioEP(rec)==0

Nada=Nada+1;

else

for j=1:dimmay

EREnuevaUnidad(j,rec)=(ValoresEnergiaOfertada(j,rec)*ERegEspP(rec,1))/Ofertat

otalEOL(rec,1);

Comprobacion(rec)=EREnuevaUnidad(j,rec)+Comprobacion(rec);

end

end

end

suma(dimmay,1)=0;

suma2(dimmay,1)=0;

EnergiaCASADAUnidadesAnual=cell(dimmay,2);

EnergiaOFERTADAUnidadesAnual=cell(dimmay,2);

for j=1:dimmay

for i=1:8760

EnergiaCASADAUnidadesAnual{j,1}=Vector_codigos_eolica(j);

suma(j)=EREnuevaUnidad(j,i)+suma(j);

EnergiaCASADAUnidadesAnual{j,2}=suma(j);

EnergiaOFERTADAUnidadesAnual{j,1}=Vector_codigos_eolica(j);

suma2(j)=ValoresEnergiaOfertada(j,i)+suma2(j);

EnergiaOFERTADAUnidadesAnual{j,2}=suma2(j);

end

end

toc

end

10.18 Función “Beneficios”

function [AumentoBENEFP, BENEFPERD, AumentoBENEFFINAL, BenefOrigTOTAL,

BenefNuevoTOTAL, BenefPTOTAL]=Beneficios(P)

tic

% P=5; %Comentar al final

%----------LOAD------------

NombreArch=['datosenergiasP' num2str(P)];

load(char(NombreArch));

NombreArch2=['ValoresCasadosP' num2str(P)];

Page 102: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

102

load(char(NombreArch2));

load('ValoresCasadosOrigFINAL');

%-------END LOAD-----------

%Estos son los Resultados almacenados en 'datosenergiaP':

%CambioEP--------Vector energias que han cambiado

%CambioP---------Vector precios que han cambiado

%ERegEspP-------vector Energias RegEsp a Precio X

%Comprobacion---Vector Igual ERegEspP para comprobar resultados estan bien

%ValoresEnergiaOfertada--Matriz con Energias OFERTADAS por Unidad

%EREnuevaUnidad--Matriz con NUEVAS Energias por Unidad

%OfertatotalEOL--Vector OFERTA de Unidades EOLICAS

%EacumuladahoraEol--Vector igual que OfertatotalEOL para comprobacion

%resultados estan bien

%EcasadaPnoEOL---Vector Energia Casada por Unidades NO EOLICAS

%EnergiaCASADAUnidadesAnual----Energia que ha casado REAL A P

% cada unidad ANUAL

%EnergiaOFERTADAUnidadesAnual---Energia que ha ofertó originalmente cada

% unidad a POriginal ANUAL

%saco en Eperd la columna 2 de EnergiaPerdidaUnidadesAnual

if P==5

EnergiaCASADAUnidadesAnual=EnergiaCASADAUnidadesAnual5;

EnergiaOFERTADAUnidadesAnual=EnergiaOFERTADAUnidadesAnual5;

ValoresEnergiaOfertada=ValoresEnergiaOfertada5;

EREnuevaUnidad=EREnuevaUnidad5;

elseif P==10

EnergiaCASADAUnidadesAnual=EnergiaCASADAUnidadesAnual10;

EnergiaOFERTADAUnidadesAnual=EnergiaOFERTADAUnidadesAnual10;

ValoresEnergiaOfertada=ValoresEnergiaOfertada10;

EREnuevaUnidad=EREnuevaUnidad10;

elseif P==15

EnergiaCASADAUnidadesAnual=EnergiaCASADAUnidadesAnual15;

EnergiaOFERTADAUnidadesAnual=EnergiaOFERTADAUnidadesAnual15;

ValoresEnergiaOfertada=ValoresEnergiaOfertada15;

EREnuevaUnidad=EREnuevaUnidad15;

elseif P==20

EnergiaCASADAUnidadesAnual=EnergiaCASADAUnidadesAnual20;

EnergiaOFERTADAUnidadesAnual=EnergiaOFERTADAUnidadesAnual20;

ValoresEnergiaOfertada=ValoresEnergiaOfertada20;

EREnuevaUnidad=EREnuevaUnidad20;

end

dimmay=226;

ECasada(dimmay,1)=0;

for i=1:dimmay

ECasada(i)=cell2mat(EnergiaCASADAUnidadesAnual(i,2));

end

Eofert(dimmay,1)=0;

for i=1:dimmay

Eofert(i)=cell2mat(EnergiaOFERTADAUnidadesAnual(i,2));

end

%Beneficios Perdidos por generador al no casar esa energia

BenefPerdUni(dimmay,1)=0;

BenefPerdTOT=0;

DIF(dimmay,1)=0;

for i=1:dimmay

DIF(i)=Eofert(i)-ECasada(i);

BenefPerdUni(i)=(Eofert(i)-ECasada(i))*P;

BenefPerdTOT=BenefPerdUni(i)+BenefPerdTOT;

end

PreciosOrig(8760,1)=0;

for i=1:8760

Page 103: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

103

PreciosOrig(i)=cell2mat(ValoresCasadosOrigFINAL.PrecioCasado(i));

end

BenefOrigHORA(dimmay,8760)=0; %Beneficio al Precio Original Energia Original

BenefNuevoHORA(dimmay,8760)=0; %Beneficio Energia REAL NUEVA a P5

BenefPHORA(dimmay,8760)=0; %Beneficio Energia Original a P5

for i=1:8760

for j=1:dimmay

BenefOrigHORA(j,i)=ValoresEnergiaOfertada(j,i)*PreciosOrig(i);

BenefPHORA(j,i)=ValoresEnergiaOfertada(j,i)*P;

BenefNuevoHORA(j,i)=EREnuevaUnidad(j,i)*P;

end

end

suma(dimmay,1)=0;

suma2(dimmay,1)=0;

suma3(dimmay,1)=0;

BenefOrigTOTAL(dimmay,1)=0;

BenefNuevoTOTAL(dimmay,1)=0;

BenefPTOTAL(dimmay,1)=0;

for j=1:dimmay

for i=1:8760

suma(j)=BenefOrigHORA(j,i)+suma(j);

BenefOrigTOTAL(j)=suma(j);

suma2(j)=BenefNuevoHORA(j,i)+suma2(j);

BenefNuevoTOTAL(j)=suma2(j);

suma3(j)=BenefPHORA(j,i)+suma3(j);

BenefPTOTAL(j)=suma3(j);

end

end

AumentoBENEFP(dimmay,1)=0;

BENEFPERD(dimmay,1)=0;

AumentoBENEFFINAL(dimmay,1)=0;

for i=1:dimmay

AumentoBENEFP(i)=BenefPTOTAL(i)-BenefOrigTOTAL(i); % Aumento de Beneficio

por Cambiar a P5

BENEFPERD(i)=BenefPTOTAL(i)-BenefNuevoTOTAL(i); %Beneficio Perdido por

Menos ENERGIA CASADA

AumentoBENEFFINAL(i)= BenefNuevoTOTAL(i)-BenefOrigTOTAL(i); %Aumento

Benef FINAL

end

toc

NombreArch=['datosenergiaP' num2str(P) 'todo'];

load(char(NombreArch));

load('ValoresCasadosOrigFINAL.mat');

ERegEspP(8760,1)=0;

NombreArchivo=['ValoresCasadosP' num2str(P)];

load(char(NombreArchivo));

if P==5

ValoresCasadosP=ValoresCasadosP5;

EcasadaPnoEOL=EcasadaPnoEOL5;

EacumuladahoraEOL=EacumuladahoraEol5;

CambioEP=CambioEP5;

elseif P==10

ValoresCasadosP=ValoresCasadosP10;

EcasadaPnoEOL=EcasadaPnoEOL10;

EacumuladahoraEOL=EacumuladahoraEol10;

CambioEP=CambioEP10;

elseif P==15

ValoresCasadosP=ValoresCasadosP15;

EcasadaPnoEOL=EcasadaPnoEOL15;

Page 104: Intensificación en Electricidad

Impacto en el Mercado Diario de Nuevas Estrategias de Ofertas del Régimen Especial

104

EacumuladahoraEOL=EacumuladahoraEol15;

CambioEP=CambioEP15;

elseif P==20

ValoresCasadosP=ValoresCasadosP20;

EcasadaPnoEOL=EcasadaPnoEOL20;

EacumuladahoraEOL=EacumuladahoraEol20;

CambioEP=CambioEP20;

end

EcasadaTOTP=cell2mat(ValoresCasadosP.EnergiaCasada);

for i=1:8760

if abs(CambioEP(i))>0;

ERegEspP(i,1)=EcasadaTOTP(i)-EcasadaPnoEOL(i); %Recordar que

EcasadaPnoEOL es la E CASADA por UDS NO EOL A P<=5, no toda!

%Vector E'RegEsp es la Energia Casada por las Unidades de RE al nuevo

precio

else

ERegEspP(i,1)=EacumuladahoraEOL(i);

end

end

ECRE=ERegEspP;

B=0;

for i=1:8760

B=B+ECRE(i)*(ValoresCasadosP.PrecioCasado{i,1}-

ValoresCasadosOrigFINAL.PrecioCasado{i,1});

end

ING=B;

end

end

Page 105: Intensificación en Electricidad