{
"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": 4,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import datetime as dt\n",
"\n",
"# in case eao is not installed\n",
"import os\n",
"import sys\n",
"# in case eao is not installed, set path\n",
"myDir = os.path.join(os.getcwd(), '../..')\n",
"sys.path.append(myDir)\n",
"addDir = os.path.join(os.getcwd(), '../../../..')\n",
"sys.path.append(addDir)\n",
"\n",
"import eaopack as eao\n",
"from eaopack.assets import Node, Timegrid, Contract, Storage, SimpleContract\n",
"from eaopack.portfolio import Portfolio\n",
"\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"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": "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derUISgoiBMnTritjKioKIfnOp2uwu2lpaUuKbOwsJBevXqxfft2pk2bxqZNm9i5cycrV64EqPIfk0aj4dFHH2XVqlX22/eLFy8mLi6O22+/3b7f+fPn+d///odWq3V4tG7dGoCsrKxqx64oCuvXr+f222/n7bffpmPHjtStW5cxY8bYb78nJyfzww8/EBMTw7PPPktycjLJycm89957DrHm5uai0+muiTcjI+O6sV5PdnY2Go2G6Ohoh+2xsbE3PDY8PJzNmzfToUMHXnnlFVq3bk18fDyTJk1yGEdd0fls22y3r2bNmsVf//pXunXrxpdffskvv/zCzp07GThwYKWuhZycHCwWC/Xr17/hvsA179l2u7C2VeLStRRFYeTIkXz22WfMnz+fZs2a0atXr3L33bFjBwMGDADKMsts3bqVnTt38uqrrwLXXk/l3Y7Nzs52+KFnU962ilx9PUPZNX1l+ePGjeP111/n7rvv5n//+x/bt29n586dtG/fvlrXfUV/37a/bZugoCCHCXRQ9t5jY2OvGbsaExODRqOxn6M6dVVFLly4gFqtrtY5rpSTk4MQotx/4/j4eIBrPpOq1EO2eRHXq+ucieX999/nxRdf5KuvvqJv375ERUVx9913c/To0QrP70/kGNkaoFar6devH2vWrOHMmTOV+qLW6/XXDJSHa/+Iqsv2a/DqsirTsNqwYQPnzp1j06ZN9p5MwN74rI6RI0fyzjvvsGLFCh544AFWr17N2LFjUavV9n3q1KlDu3bt+Mc//lHuOWx/7NWNPSkpyZ7O5/fff+ff//43kydPxmg0Mn/+fAB69epFr169sFgs7Nq1iw8++ICxY8dSr149HnzwQftEgIoyU1Q1JVB0dDRms5ns7GyHCjUjI6NSx7dt25YVK1YghOC3335j8eLFTJ06lcDAQF566aXrns+2zVbuZ599Rp8+fZg3b57DflePt61IVFQUarXaoYdXkqpqxIgRTJw4kfnz51dYRwCsWLECrVbL119/7dA79tVXX5W7f3m5tKOjozl//vw12yv7d1hZn332GY899hjTp0932J6VlUVERESVz1vR3/fVjbSK3vv27dsRQji8npmZidlspk6dOvb9KltXBQQElPv9d/X3Ut26dbFYLGRkZLhkvGdkZCQqlYr09PRrXrNN4LK9n+qw3XG6Xl3nTCzBwcFMmTKFKVOmcP78eXvv7JAhQzh8+HC14/V2ske2hrz88ssIIXjiiScwGo3XvG4ymfjf//5nf96wYUN+++03h302bNhAYWGhS+Oyzd68uizbjM/rsVVaVw+c//jjj6/Z19nespYtW9KtWzcWLVrE559/jsFgYOTIkQ77DB48mP3795OcnEznzp2veVyvIetM7Fdq1qwZr732Gm3btmXPnj3XvK5Wq+nWrZt9hqhtn8GDB5OdnY3FYik31isnaVzdC3M9ffv2BWDZsmUO2z///PNKHW+jKArt27dn9uzZREREXPPe1q9f7/BFbbFY+OKLL0hOTrb/MFMU5ZrP87fffnOYXAAVXwu22dL/+c9/qtxDLUk2CQkJTJgwgSFDhjB8+PAK91MUBY1G4/AjuaSkhKVLl1a6rN69e7N///5rhudcndmjusr7G/vmm284e/Zstc67fPlyhwwNJ0+e5Oeff67UwhH9+vWjsLDwmob/v/71L/vr4Fxd1bBhQzIzMx3qHKPRyHfffeewn20Y2dU/nq9W2To1ODiYbt26sXLlSof9rVYrn332GfXr179mWElVNGvWzD70pbwGe3ViqVevHiNGjOChhx7iyJEj9sw5/nzHSvbI1pAePXowb948nnnmGTp16sRf//pXWrdujclkYu/evXzyySe0adOGIUOGAPDoo4/y+uuvM3HiRHr37s3Bgwf58MMPCQ8Pd2lcsbGx9O/fnxkzZhAZGUlSUhLr16+332K/np49exIZGcnTTz/NpEmT0Gq1LFu2jF9//fWafdu2bQvAW2+9xaBBg1Cr1bRr184+BKI8f/nLX3jqqac4d+4cPXv2vGZG7tSpU1m3bh09e/ZkzJgxNG/enNLSUtLS0vj222+ZP39+hb3flY39t99+Y/To0dx33300bdoUnU7Hhg0b+O233+w9lvPnz2fDhg3ceeedJCYmUlpayqeffgpA//79AXjwwQdZtmwZd9xxB8899xxdu3ZFq9Vy5swZNm7cyNChQ7nnnnvsn9WKFSv44osvaNy4MQEBAfbP72oDBgzglltu4YUXXqCoqIjOnTuzdevWSn0Jf/3118ydO5e7776bxo0bI4Rg5cqV5ObmcttttznsW6dOHW699VZef/11e9aCw4cPO3xRDx48mDfeeINJkybRu3dvjhw5wtSpU2nUqJFDOrTQ0FCSkpL4v//7P/r1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5V/t/PnzfPPNN4waNarGyr/55ptZvXo1Z8+eRQjBxo0b+f3337n99tvdWrbBYAAgICDA/pparUan0/HTTz9Vq2x/JuvRmq9HK1u+u+pSWY/W3nq0MuV7e13qNw3ZL774grFjx/Lqq6+yd+9eevXqxaBBg+zjZ4qKirjpppt48803XV52VlYWFovlmmVz69Wrd83yugClpaW89NJLPPzwwy5JLl7Z8r/++mtCQkIICAhg9uzZrFu3jjp16ri97LfeeguNRsOYMWOqVVZVyx80aBDLli1jw4YNvPvuu+zcuZNbb73V/sfpzvIzMzMpLCzkzTffZODAgXz//ffcc8893HvvvWzevNnt5V9tyZIlhIaGcu+991a77MqW//7779OqVSvq16+PTqdj4MCBzJ07l5tvvtmtZbdo0YKkpCRefvllcnJyMBqNvPnmm2RkZJCenl6tsv2VrEc9U49Wtnx31aWyHq299Whlyvf2utTrF0SorFmzZjFq1Cgef/xxAObMmcN3333HvHnzmDFjBo8++igAaWlpbotBURSH50KIa7aZTCYefPBBrFYrc+fOrdHy+/btS2pqKllZWSxYsID777+f7du3ExMT47ayd+/ezXvvvceePXuu2ceVrvfeH3jgAfv2Nm3a0LlzZ5KSkvjmm29cVhFVVL7VagVg6NCh/P3vfwegQ4cO/Pzzz8yfP5/evXu7tfyrffrppwwbNszhl7W7y3///ff55ZdfWL16NUlJSfz4448888wzxMXF0b9/f7eVrdVq+fLLLxk1ahRRUVGo1Wr69+/PoEGDql2mv5L1qGfr0euVXxN1qaxHa289er3yvb0u9Yse2arcknKlOnXqoFarr/nllpmZ6fALx2Qycf/993PixAnWrVvnsqUeK1t+cHAwTZo0oXv37ixcuBCNRsPChQvdWvaWLVvIzMwkMTERjUaDRqPh5MmTPP/88zRs2LBaZVem/PLExcWRlJTkkhmXNyq/Tp06aDQaWrVq5fB6y5YtXTLb1pn3v2XLFo4cOWJvpLjCjcovKSnhlVdeYdasWQwZMoR27doxevRoHnjgAWbOnOnWsgE6depEamoqubm5pKens3btWrKzs2nUqFG1yvZHsh71XD1amfLdWZfKerT21qOVKR+8uy71i4ass7cFXE2n09GpUyfWrVvnsH3dunX07NkTuFz5Hj16lB9++IHo6OgaLb88Qohq3xa6UdmPPvoov/32G6mpqfZHfHw8EyZM4LvvvqtW2ZUpvzzZ2dmcPn2auLg4t5ev0+no0qULR44ccXj9999/r/Qyy9Up/0oLFy6kU6dOLhnPV9nyTSYTJpMJlcqxqlGr1fZeFneVfaXw8HDq1q3L0aNH2bVrF0OHDq1W2f5I1qOeq0crU74761JZj9beerQy5V/JK+vSmp1b5h5nz54VgPj5558dtk+bNk00b97cYduJEycEIPbu3evSGGypKxYuXCgOHjwoxo4dK4KDg0VaWpowmUzirrvuEvXr1xepqakOKTwMBoPbyy8sLBQvv/yy2LZtm0hLSxO7d+8Wo0aNEnq93mEWojvKLo+rsxZcr/yCggLx/PPPi59//lmcOHFCbNy4UfTo0UMkJCSI/Px8t5cvhBArV64UWq1WfPLJJ+Lo0aPigw8+EGq1WmzZsqVGyheibHZ1UFCQmDdvnkvKdKb83r17i9atW4uNGzeK48ePi0WLFomAgAAxd+5ct5f973//W2zcuFEcO3ZMfPXVVyIpKUnce++91S7XH8l61LP16I3KL48r61JZj9beerQy5XtzXeoXDVmDwSDUarVYuXKlw/YxY8aIW265xWGbuypgIYT46KOPRFJSktDpdKJjx45i8+bNDmWW99i4caPbyy8pKRH33HOPiI+PFzqdTsTFxYm77rpL7Nixw+1ll8fVDdnrlV9cXCwGDBgg6tatK7RarUhMTBTDhw8Xp06dqpHybRYuXCiaNGkiAgICRPv27V2W+6+y5X/88cciMDBQ5ObmurTcypSfnp4uRowYIeLj40VAQIBo3ry5ePfdd4XVanV72e+9956oX7++/d/+tddec1mjx9/IevT65ddEPXq98svj6rpU1qO1tx69UfneXJcqQghR073A7tCtWzc6derkMPC/VatWDB06lBkzZti3paWl0ahRI/bu3UuHDh08EKkkSZJ3kvWoJEm+xm+yFowbN45HH32Uzp0706NHDz755BNOnTrF008/DcDFixc5deqUfTlD21ib2NhYYmNjPRa3JEmSt5D1qCRJvsZvemShLJH322+/TXp6Om3atGH27NnccsstACxevJiRI0dec8ykSZOYPHlyDUcqSZLknWQ9KkmSL/GrhqwkSZIkSZJUe/hF+i1JkiRJkiSp9pENWUmSJEmSJMkn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\n",
"image/svg+xml": [
"\r\n",
"\r\n",
"\r\n",
"\r\n"
],
"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": "eao_rl",
"language": "python",
"name": "eao_rl"
},
"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.9.7"
},
"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
}