Objetivos de límite de temperatura de 1.5 ° C Para fines de siglo establecidos por el Acuerdo de París, diferentes instituciones han presentado diferentes escenarios. Hay un consenso entre los escenarios de mitigación Que la proporción de tecnologías bajas en carbono, como la energía renovable, debe aumentar, y los combustibles fósiles deben disminuir constantemente en la combinación de energía del mañana.
El despliegue de opciones de tecnología de mitigación (como energía renovable, vehículos eléctricos (EV), hidrógeno verde, etc.) obtiene su propio conjunto de costos y beneficios. La combinación de energía renovable y combustibles fósiles en la cartera de generación de electricidad de un país no solo determina las emisiones de CO2, sino que también puede influir en el precio de la electricidad. En esta publicación, voy a discutir cómo se determina el precio de la electricidad en un mercado de electricidad mayorista por curva de orden de mérito (basado en el concepto de costos o producción marginales), y cómo la rentabilidad de las oportunidades de descarbonización en un país o región o organización podría evaluarse en base a curva de costos de reducción marginal. Voy a usar Python para construir estas dos curvas y discutir la implementación en el camino.
¡Comencemos!
Curva de orden de mérito
Una autoridad de electricidad o una empresa de servicios públicos en un país podría tener plantas de energía competidores de diferentes tipos en su cartera para ofrecer la producción de electricidad a los minoristas. Esto se conoce como un mercado de electricidad al por mayor (también conocido como mercado spot). El costo de generar electricidad difiere según el tipo de planta de energía. Por ejemplo, hay cero o un costo mínimo de la generación de electricidad a partir de la energía solar fotovoltaica o las turbinas eólicas, ya que no requieren combustibles. Por otro lado, las centrales eléctricas basadas en combustibles fósiles tienen mayores costos de funcionamiento, dependiendo de los precios de los combustibles como el carbón, el petróleo o el gas que se quema para generar electricidad. En el lenguaje de la economía, se llama al costo de producir una unidad adicional de un producto costo marginal de producción. En el sistema de energía, las plantas de energía disponibles en la cartera están programadas para estar en línea Basado en el orden ascendente de los costos marginales a corto plazo de la producción de electricidad. Esta secuencia se conoce como la orden de mérito. Las centrales eléctricas con los costos marginales más bajos están programadas para satisfacer la demanda primero, seguidas de las centrales eléctricas con mayores costos marginales para optimizar los costos de suministro de electricidad.
En esta sección, voy a implementar los diferentes pasos para construir la curva de orden de mérito en Python y discutir cómo el orden de mérito establece el precio mayorista de electricidad.
Implementación
Consideremos que hay centrales eléctricas de nueve tipos en la cartera de electricidad de un país como se muestra en la lista power_plants. Estas centrales eléctricas deben estar organizadas en orden ascendente de marginal_costs. Los datos utilizados en este ejemplo se basan en mi suposición y pueden considerarse como conjuntos de datos ficticios.
power_plants = ["Solar", "Wind", "Hydro", "Nuclear", "Biomass", "Coal", "Gas", "Oil", "Diesel"]
marginal_costs = [0, 0, 5, 10, 40, 60, 80, 120, 130]
Primero, convierto estos datos en un marcado de datos con power_plants en índice y marginal_cost en la columna. A continuación, itero a través del índice de DataFrame y le pido al usuario que ingrese la capacidad disponible de cada planta de energía. La capacidad disponible de cada planta de energía se almacena en una variable individual utilizando el globals() Método como se muestra a continuación.
Solicitar la entrada del usuario para la capacidad disponible de cada tipo de planta de energía utilizando el método for-bloop y el globals ().
La capacidad total disponible en la cartera del país X sumas a 1800 MW. Entonces, creo una nueva columna llamada Cumulative capacity (MW)que es la suma acumulativa de Available capacity (MW) .
DataFrame que contiene costo marginal y capacidad disponible de cada tipo de planta de energía en el país X. Imagen por autor.
Le pido al usuario que ingrese la demanda de electricidad en el país X en un plazo determinado.
demand = int(input("Enter total demand (MW): "))
Supongamos que el demand es 1500 MW.
Ahora que los datos están listos, puedo comenzar a compilar los bloques de construcción para la curva de orden de mérito. En una curva de orden de mérito, la planta de energía se ordena en orden ascendente de costos marginales de la generación de electricidad en forma de gráficos de barras. El ancho de las barras representa la capacidad disponible de cada tipo de planta de energía y la altura representa el costo marginal correspondiente. Dado que los anchos de las barras no son iguales, se ven bastante diferentes de las parcelas de barras normales.
La posición de las garrapatas en el eje X para la primera barra (aquí solar) es la misma que la mitad de su Available capacity (MW). Para el otro tipo de planta de energía, la posición se calcula como la suma de Cumulative capacity (MW) hasta que el tipo de planta de energía antes y la mitad de su Available capacity (MW). He preparado un for-bucle para obtener este puesto en xpos columna de df como se muestra en la primera parte de la esencia a continuación.
A continuación, analizo la posición en la que la demanda se encuentra en el eje X. La posición en la que la demanda de energía se cruza con la fuente de alimentación acumulada en el eje x determina cut_off_power_plant. A su vez, el costo marginal del cut_off_power_plant Determina el precio de compensación de todas las centrales eléctricas en el orden de mérito que está antes, que participan en el mercado mayorista. Los compradores de electricidad en este mercado mayorista pagarán ese mismo precio.
#For-loop to determine the position of ticks in x-axis for each bar
df["xpos"] = ""
for index in df.index:
#get index number based on index name
i = df.index.get_loc(index)
if index == "Solar": #First index
df.loc[index, "xpos"] = df.loc[index, "Available capacity (MW)"]
else:
#Sum of cumulative capacity in the row above and the half of available capacity in
df.loc[index, "xpos"] = df.loc[index, "Available capacity (MW)"]/2 + df.iloc[i-1, 2]
#Function to determine the cut_off_power_plant that sets the market clearing price
def cut_off(demand):
#To get the cutoff power plant
for index in df.index:
if df.loc[index, "Cumulative capacity (MW)"] < demand:
pass
else:
cut_off_power_plant = index
print ("Power plant that sets the electricity price is: ", cut_off_power_plant)
break
return cut_off_power_plant
Para el bucle en la parte superior determina la posición de la barra de cada tipo de planta de energía en el eje X. La función de corte en la parte inferior determina el tipo de planta de energía que se cruza con la demanda de energía.
El código para generar la curva de orden de mérito es como se muestra.
def merit_order_curve(demand):
plt.figure(figsize = (20, 12))
plt.rcParams["font.size"] = 16
colors = ["yellow","limegreen","skyblue","pink","limegreen","black","orange","grey","maroon"]
xpos = df["xpos"].values.tolist()
y = df["Marginal Costs"].values.tolist()
#width of each bar
w = df["Available capacity (MW)"].values.tolist()
cut_off_power_plant = cut_off(demand)
fig = plt.bar(xpos,
height = y,
width = w,
fill = True,
color = colors)
plt.xlim(0, df["Available capacity (MW)"].sum())
plt.ylim(0, df["Marginal Costs"].max() + 20)
plt.hlines(y = df.loc[cut_off_power_plant, "Marginal Costs"],
xmin = 0,
xmax = demand,
color = "red",
linestyle = "dashed")
plt.vlines(x = demand,
ymin = 0,
ymax = df.loc[cut_off_power_plant, "Marginal Costs"],
color = "red",
linestyle = "dashed",
label = "Demand")
plt.legend(fig.patches, power_plants,
loc = "best",
ncol = 3)
plt.text(x = demand - df.loc[cut_off_power_plant, "Available capacity (MW)"]/2,
y = df.loc[cut_off_power_plant, "Marginal Costs"] + 10,
s = f"Electricity price: \n {df.loc[cut_off_power_plant, 'Marginal Costs']} $/MWh")
plt.xlabel("Power plant capacity (MW)")
plt.ylabel("Marginal Cost ($/MWh)")
plt.show()
merit_order_curve(demand = demand)
La gráfica resultante es como se muestra a continuación.Curva de orden de mérito del mercado de electricidad dado. El eje X representa la capacidad disponible de las centrales eléctricas. El eje Y representa el costo marginal de cada planta de energía. La línea discontinua roja vertical representa la demanda que se cruza con el gas. La línea roja discontinua horizontal representa el costo marginal de la generación de electricidad a partir de gas, que establece el precio de compensación del mercado. Imagen del autor.
En la trama resultante, la demanda de energía de 1500 MW está representada por la línea roja vertical discontinua. Esto coincide con la fuente de alimentación del gas cuando todas las centrales eléctricas están dispuestas en orden ascendente por costo marginal. Por lo tanto, el costo marginal de la generación de electricidad del gas IE 80 $/MWH es el precio de compensación del mercado. Esto implica todas las centrales eléctricas en y antes de la línea roja vertical discontinua en el eje X, es decir, la energía solar, viento, hidroeléctrica, nuclear, biomasa, carbón y gas necesita entregar energía para satisfacer la demanda. Y todos ellos reciben el precio establecido por el costo marginal de producción de GAS.
Efecto de orden de mérito
Cuando el nivel de demanda cambia en el sistema de energía, el precio de electricidad mayorista también reacciona en consecuencia. Esto se demuestra en la imagen GIF a continuación. Para obtener la animación en Python, he usado el interact función de ipywidgets como se muestra a continuación. Yo también he usado IntSlider widget para establecer eldemand Como el parámetro definido por el usuario para interactuar con. Para evitar parpadear mientras arrastra por el control deslizante, he configurado continuous_update a falso.
from ipywidgets import *
demand = widgets.IntSlider(
value = 100,
min = 0,
max = df[“Available capacity (MW)”].sum(),
step = 10,
description = “Demand”,
continuous_update = False #False to avoid flickering
)
interactive_plot = interact(merit_order_curve, demand = demand)
Animación que muestra el cambio en la planta de energía de corte y el precio de electricidad al por mayor a medida que cambia la demanda. Imagen del autor.
Como se muestra en la imagen GIF anterior, cuando la demanda aumenta, se deben enviar más centrales de energía hacia la derecha del orden de mérito, lo que aumenta el precio de compensación y viceversa. Si hay una capacidad más disponible de las plantas de energía renovable en la cartera, fuentes renovables satisfacidas más participación de la demanda. Esto tiende a reducir el precio de la electricidad, que se conoce como el efecto de orden de mérito.
Curva de costo de reducción marginal
El costo de reducción es un costo transmitido por empresas para eliminar o reducir las externalidades (subproductos negativos) creadas durante la producción. Y el costo de reducción marginal Mide el costo de reducir una unidad adicional de externalidades, por ejemplo, emisiones de CO2. Si bien la curva de orden de mérito se basa en tecnologías de pedido por costos marginales de producción, la curva de costos de reducción marginal (MAC) se basa en ordenar diferentes oportunidades de mitigación en el orden ascendente de los costos de reducción marginal.
En una curva MAC, el ancho de la barra representa el potencial de reducción de emisiones de gases de efecto invernadero (GEI) de cualquier tecnología u opción. Y la altura de la barra representa el costo de reducir una unidad adicional de emisiones de GEI con la oportunidad dada.DataFrame que contiene potencial de mitigación y costos de reducción marginal de diferentes oportunidades. Los datos se basan en la suposición del autor.
Los datos para este ejemplo se basan en mi suposición y pueden considerarse como un conjunto de datos ficticios. La implementación de la curva MAC en Python es similar a la de la curva de orden de mérito.
Curva MAC para un año determinado para el país X. Imagen del autor.
El ancho de la barra representa el potencial anual de reducción de emisiones de GEI de la oportunidad de mitigación. La altura de la barra representa los costos estimados en un año determinado para reducir las emisiones en 1 TCO2E.
Como se muestra en la gráfica de arriba, reemplazar las luces antiguas con luces LED es la medida más rentable para la descarbonización. Los costos de reducción marginal negativa para ciertas oportunidades implican que hay ahorros de costos netos (o ganancias) cuando se implementan esas medidas. A medida que avanzamos hacia el extremo derecho del eje X en una curva MAC, se vuelve más costoso reducir una unidad de emisiones de GEI. La barra más amplia en la curva MAC, la reforestación tiene el mayor potencial general de reducciones de emisiones de GEI.
Por lo tanto, la curva MAC permite que las medidas de varios sectores (aquí sean potencia, transporte, edificios, forestales y desechos) se comparen en términos equivalentes. Si bien la curva MAC proporciona una evaluación inicial clave sobre el potencial y la rentabilidad de varias oportunidades de mitigación, combinar esta evaluación con información de otras herramientas de modelado proporciona una base sólida para formular políticas y decisiones de inversión.
Conclusión
A medida que avanzamos a través de la transición de energía global, quemar más combustibles fósiles para satisfacer nuestras necesidades energéticas conduciría pronto a exceder el presupuesto de emisiones que debemos respetar para satisfacer los objetivos climáticos globales. Ya existen oportunidades técnicamente probadas y económicamente factibles, que pueden reducir significativamente las emisiones de GEI de los sectores de energía y no energía. Además, con las economías de escala, las tecnologías de mitigación probadas (por ejemplo, eólica y solar) se están volviendo más baratas cada año.
Es importante aprovechar las opciones de tecnología de mitigación probada para reducir significativamente las emisiones. Las opciones de mitigación presentan su propio conjunto de costos y beneficios. En esta publicación, discutí cómo la proporción de energía renovable y combustibles fósiles en la cartera del sistema de energía de un país influye en los precios de electricidad al por mayor con el concepto de curva de orden de mérito (basado en costos marginales de producción). Y presenté cómo el potencial de reducción de emisiones y la rentabilidad de las oportunidades de mitigación en un país podrían evaluarse en base a la curva de costo de reducción marginal. La implementación de estas curvas en Python está disponible en este Repositorio de Github.