{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Marginal costs - basic concept and example\n", "In this sample, we illustrate the concept of marginal costs. We use a very simple portfolio of generation assets that are used to cover a given load. The marginal costs of the portfolio indicate at which prices it would be valuable to buy or sell electricity into / out of the portfolio.\n", "\n", "While the example portfolio is simple, the concept is valid for any other case of more complex portfolio or asset" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Some prerequisites\n", "### Basic definitions" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import datetime as dt\n", "import eaopack as eao\n", "from eaopack.assets import Node, Timegrid, Contract, Storage, SimpleContract\n", "from eaopack.portfolio import Portfolio\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Parameter setting\n", "Defining timegrid and main portfolio settings. Note that we do not explain the setup in detail. Please refer to the basic samples to understand the concepts and parameters" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "Start = dt.date(2021,1,1)\n", "End = dt.date(2021,1,10)\n", "timegrid = Timegrid(Start, End, freq = 'h')\n", "node = Node(name = 'node', commodity='power', unit='MWh')\n", "# very simple setup, working directly on the time grid. Alternatively we can use\n", "# dictionaries with start/end and values\n", "load_profile = -(5+5*(np.cos(np.linspace(0.,10., timegrid.T))))\n", "# capacities and costs of generation assets in portfolio\n", "capacities = [1,2,3,2,8]\n", "costs = [1,1.5,1.8,4,6]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Set up portfolio\n", "(1) a given load to cover\n", "(2) generation assets with different production costs" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "assets = []\n", "assets.append(Contract(name = 'load', min_cap= load_profile, max_cap= load_profile, nodes = node))\n", "counter = 0\n", "for my_cap, my_costs in zip(capacities, costs):\n", " counter +=1\n", " myc = 2 # capacity of each contract\n", " assets.append(SimpleContract(name = 'gen_'+str(counter), nodes = node, extra_costs = my_costs,max_cap = my_cap))\n", "portf = Portfolio(assets)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Perform the optimization\n", "Setting up the optimization provlem ans solving. Note that in this setup no (market) prices are needed to solve the problem, as we try to cover the load at minimal costs" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "optim_problem = portf.setup_optim_problem(timegrid = timegrid)\n", "result = optim_problem.optimize()\n", "output = eao.io.extract_output(portf, optim_problem, result)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Some minor manupulations to create nicer charts ..." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "output['prices'].rename(columns = {'nodal price: node':'nodal price'}, inplace = True)\n", "# omit load (is given by sum of generation)\n", "output['dispatch'].drop(columns = ['load'], inplace = True)\n", "output['dispatch'] = output['dispatch'].round(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create charts and interpret the results" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArIAAAEiCAYAAAAF9zFeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACCtElEQVR4nO2dB5gUZfLG30mbMznnJCggihhQVMx6oJ7emdNf7049xRxPRVTM+cw5o2fOIhJEAYmSc1hYWDbn3dkJ/X/eb7eX2WUXZnYn9PTUj6fZyf11T091dX1Vb1k0TdMgCIIgCIIgCFGGNdIDEARBEARBEITWII6sIAiCIAiCEJWIIysIgiAIgiBEJeLICoIgCIIgCFGJOLKCIAiCIAhCVCKOrCAIgiAIghCViCMrCIIgCIIgRCXiyAqCIAiCIAhRiTiygiAIgiAIQlQijqzgN5deeil69+4d1M986623YLFYsHXr1qB+bqzD74nfl86sWbPUfubfaGbcuHEYNmxYpIchCG0+jrmEkvvuu0/95mP13NJaWylEH+LIhplNmzbhH//4B/r27YuEhASkpaXhyCOPxDPPPIPq6mqYlYceeghffPFFpIdheL777jt1AjIrq1evVtsnFy5CKNAvjLnMnTt3r+fZkb1Hjx7q+dNPPz0iYxTCz++//67sTklJCWKV3028D8SRDSPffvstDjzwQHz88cc444wz8Nxzz2Hq1Kno2bMnbrnlFlx//fWINUf2oosuUg58r169IjIuIzqykydPDvrnHn300Wo/82+kHVlunziyQihhkOCDDz7Y6/HZs2djx44diI+PRyT56aef1CKEz4mj3WnOiVu3bh1effVVxPI+iHbskR5ArLBlyxb8/e9/Vw7bL7/8gi5dujQ8d80112Djxo3K0Y01bDabWoTQYrVa1cldEGKBU089FZ988gmeffZZ2O17TnN0bkeNGoWCgoKgrcvr9aK2tjag31dcXBzMQE1NjdoW2pdoJdIXNULbid6jL8p49NFHUVFRgddff72RE6vTv3//hogso1Wc+uI0WVP4uO/Us54HtX79elx44YVIT09Hhw4d8J///EdNo23fvh0TJkxQKQydO3fGE0884VeOqr85lY8//jiOOOIItGvXDomJieok8b///W+vMVdWVuLtt99umPbTc5Karp/TfUy7aI7DDz8chxxySKPH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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.rcdefaults()\n", "fig, ax = plt.subplots(1,2,figsize=(7,3), tight_layout = True)\n", "output['dispatch'].plot.area(ax = ax[0], stacked = True, alpha = 0.7)\n", "output['prices'].plot(ax = ax[1])\n", "ax[0].set_title('Cumulative asset dispatch')\n", "ax[0].set_ylabel('MW')\n", "ax[1].set_title('Marginal production cost')\n", "ax[1].set_ylabel('€/MWh')\n", "ax[1].legend(loc = 'upper right')\n", "plt.show()\n", "#plt.savefig(file_chart)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Left figure:\n", "Dispatch of the single assets. The generation units 1-5 are dispatched in the order of their production costs. At lower loads we need only gen_1, while at higher loads we need all of them.\n", "\n", "Right figure:\n", "The marginal costs are determined by the most expensive asset needed." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Marginal costs and duals in linear programs\n", "\n", "The marginal cost for each node is given by the dual of the corresponding nodal restriction. Intuitively, it reflects the change in value of the portfolio as at the node we have an infinitesimal extra amount of the commodity available.\n", "\n", "In this simple case, the marginal costs are just the production costs of the most expensive asset needed. However, the concept applies directly to any other and more complex portfolio of assets. \n", "\n", "Once more nodes are used in the portfolio, nodal prices may be different if there are transport bottlenecks." ] } ], "metadata": { "hide_input": false, "kernelspec": { "display_name": "my_env", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.9" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }