Commit 09ef9d28 by Fabian Neumann

### update tutorial-6 bonus notebooks

parent 8a870662
 { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Tutorial VI.1\n", "\n", "Consider a long-term multi-year investment problem where **CSP (Concentrated Solar Power)** has a learning curve such that\n", "\n", "$$LCOE = c_0 \\left(\\frac{x_t}{x_0}\\right)^{-\\gamma} + c_1$$\n", "\n", "where $c_0$ is cost at start, $c_1$ is material cost and $x_t$ is cumulative\n", "capacity in the investment interval $t$. Thus, $x_0$ is the initial cumulative CSP capacity.\n", "\n", "Additionally, there are **nuclear** and **coal** generators for which there is no potential for reducing their LCOE.\n", "\n", "We build an optimisation to minimise the cost of supplying a flat demand $d=100$ with the given technologies between 2020 and 2050, where a CO$_2$ budget cap is applied.\n", "\n", "> **Hint:** Problem formulation is to be found further along this notebook.\n", "\n", "**Task:** Explore different discount rates, learning rates, CO$_2$ budgets. For instance\n", "* No learning for CSP and no CO$_2$ budget would result in a coal-reliant system.\n", "* A CO$_2$ budget and no learning prefers a system built on nuclear.\n", "* A CO$_2$ budget and learning results in a system with CSP." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***\n", "## Imports" ] }, { "cell_type": "code", "execution_count": 4, "execution_count": 28, "metadata": {}, "outputs": [], "source": [ ... ... @@ -14,9 +47,16 @@ "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Parameters" ] }, { "cell_type": "code", "execution_count": 5, "execution_count": 29, "metadata": {}, "outputs": [ { ... ... @@ -43,46 +83,51 @@ "
coalnuclearCSPunit
\n", " \n", " \n", " \n", " \n", " \n", "
LCOEcurrent LCOE50.0100.0150.0LCOE EUR/MWh_el
emissionsspecific emissions1.00.00.0tCO2/MWh_el
base LCOEpotential LCOE50.0100.035.0EUR/MWh_el
volumecurrent volume1000000.01000000.0200.0GW
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", "" ], "text/plain": [ " coal nuclear CSP\n", "LCOE 50.0 100.0 150.0\n", "emissions 1.0 0.0 0.0\n", "base LCOE 50.0 100.0 35.0\n", "volume 1000000.0 1000000.0 200.0" " coal nuclear CSP unit\n", "current LCOE 50.0 100.0 150.0 LCOE EUR/MWh_el\n", "specific emissions 1.0 0.0 0.0 tCO2/MWh_el\n", "potential LCOE 50.0 100.0 35.0 EUR/MWh_el\n", "current volume 1000000.0 1000000.0 200.0 GW" ] }, "execution_count": 5, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ... ... @@ -90,18 +135,18 @@ "source": [ "techs = [\"coal\",\"nuclear\",\"CSP\"]\n", "colors = [\"#707070\",\"#ff9000\",\"#f9d002\"]\n", "parameters = pd.DataFrame(data=[[50.,100.,150.], # LCOE EUR/MWh_el\n", " [1.,0.,0.], # emissions tCO2/MWh_el\n", " [50.,100.,35.], # LCOE long-term potential EUR/MWh_el\n", " [1e6,1e6,200]], # Volume in GW until (today - base) LCOE reduces by 1/e\n", " index=[\"LCOE\",\"emissions\",\"base LCOE\",\"volume\"],\n", " columns=techs)\n", "parameters = pd.DataFrame(data=[[50.,100.,150.,\"LCOE EUR/MWh_el\"],\n", " [1.,0.,0., \"tCO2/MWh_el\"],\n", " [50.,100.,35., \"EUR/MWh_el\"],\n", " [1e6,1e6,200,\"GW\"]],\n", " index=[\"current LCOE\",\"specific emissions\",\"potential LCOE\",\"current volume\"],\n", " columns=techs+[\"unit\"])\n", "parameters" ] }, { "cell_type": "code", "execution_count": 6, "execution_count": 30, "metadata": {}, "outputs": [], "source": [ ... ... @@ -111,39 +156,98 @@ "#demand in GW\n", "demand = 100.\n", "\n", "years = list(range(2021,2050))" "#learning rate of CSP\n", "gamma_csp = 0.4\n", "\n", "# carbon budget in average tCO2/MWh_el\n", "co2_budget = 0.2\n", "\n", "# considered years\n", "years = list(range(2020,2050))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Build Model\n", "> **Note:** We use [pyomo](https://pyomo.readthedocs.io/en/stable/) for building optimisation problems in python. This is also what pypsa uses under the hood." ] }, { "cell_type": "code", "execution_count": 7, "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "model = ConcreteModel(\"discounted total costs\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$G_{t,a}$$" ] }, { "cell_type": "code", "execution_count": 8, "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "model.generators = Var(techs, years, within=NonNegativeReals)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$LCOE_{t,a}$$" ] }, { "cell_type": "code", "execution_count": 9, "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "model.costs = Var(techs, years, within=NonNegativeReals)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The objective is to minimise the system costs:\n", "\n", "$$\\min \\quad \\sum_{t\\in T, a\\in A} G_{t,a}\\cdot LCOE_{t,a} \\cdot \\frac{8760}{10^6\\cdot (1+r)^{t}}$$" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "# in billion EUR\n", "model.objective = Objective(expr=sum(model.generators[tech,year]*model.costs[tech,year]*8760/1e6/(1+rate)**(year-years[0])\n", " for year in years\n", " for tech in techs))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Add a constraint such that demand is met by generator dispatch:\n", "\n", "$$\\forall a\\in A: \\quad d = \\sum_{t \\in T} G_{t,a}$$" ] }, { "cell_type": "code", "execution_count": 10, "execution_count": 35, "metadata": {}, "outputs": [], "source": [ ... ... @@ -152,48 +256,57 @@ "model.balance_constraint = Constraint(years, rule=balance_constraint)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Add a constraint on carbon dioxide emissions:\n", "\n", "$$\\sum_{t\\in T, a\\in A} G_{t,a} \\cdot e_{t} \\leq \\hat{e} \\cdot |A| \\cdot d$$" ] }, { "cell_type": "code", "execution_count": 11, "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "def co2_constraint(model):\n", " return 0.2*30*demand >= sum(model.generators[tech,year]*parameters.at[\"emissions\",tech] for tech in techs for year in years)\n", " return co2_budget*len(years)*demand >= sum(model.generators[tech,year]*parameters.at[\"specific emissions\",tech] for tech in techs for year in years)\n", "model.co2_constraint = Constraint(rule=co2_constraint)" ] }, { "cell_type": "code", "execution_count": 12, "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "def cost_constraint(model,tech,year):\n", "def lcoe_constraint(model,tech,year):\n", " if tech != \"CSP\":\n", " return model.costs[tech,year] == parameters.at[\"LCOE\",tech]\n", " return model.costs[tech,year] == parameters.at[\"current LCOE\",tech]\n", " else:\n", " #return model.costs[tech,year] == parameters.at[\"base LCOE\",tech] \\\n", " # + (parameters.at[\"LCOE\",tech] - parameters.at[\"base LCOE\",tech])*exp(-sum(model.generators[tech,yeart] for yeart in years if yeart < year)/parameters.at[\"volume\",tech])\n", " return model.costs[tech,year] == parameters.at[\"LCOE\",tech]*(1+sum(model.generators[tech,yeart] for yeart in years if yeart < year))**(-0.4)\n", "model.cost_constraint = Constraint(techs, years, rule=cost_constraint)" " return model.costs[tech,year] == parameters.at[\"current LCOE\",tech]*(1+sum(model.generators[tech,yeart] for yeart in years if yeart < year))**(-gamma_csp)\n", "model.lcoe_constraint = Constraint(techs, years, rule=lcoe_constraint)" ] }, { "cell_type": "code", "execution_count": 13, "cell_type": "markdown", "metadata": {}, "outputs": [], "source": [ "# in billion EUR\n", "model.objective = Objective(expr=sum(model.generators[tech,year]*model.costs[tech,year]*8760/1e6/(1+rate)**(year-2021)\n", " for year in years\n", " for tech in techs))" "> **Hint:** You can print the model formulation with model.pprint()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Solve Model" ] }, { "cell_type": "code", "execution_count": 14, "execution_count": 38, "metadata": {}, "outputs": [], "source": [ ... ... @@ -202,23 +315,37 @@ }, { "cell_type": "code", "execution_count": 15, "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "results = opt.solve(model,suffixes=[\"dual\"],keepfiles=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Results" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Optimised cost:" ] }, { "cell_type": "code", "execution_count": 16, "execution_count": 40, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "230.3039488909157\n" "231.63436487305015\n" ] } ], ... ... @@ -226,26 +353,40 @@ "print(model.objective())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The unoptimized cost (where everything is supplied by coal) is:" ] }, { "cell_type": "code", "execution_count": 17, "execution_count": 41, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1270.2\n" "1314.0\n" ] } ], "source": [ "print(8760*demand*parameters.at[\"LCOE\",\"coal\"]*len(years)/1e6)" "print(8760*demand*parameters.at[\"current LCOE\",\"coal\"]*len(years)/1e6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plotting the development of the technology mix of the optimal solution over time:" ] }, { "cell_type": "code", "execution_count": 18, "execution_count": 42, "metadata": {}, "outputs": [], "source": [ ... ... @@ -257,7 +398,7 @@ }, { "cell_type": "code", "execution_count": 19, "execution_count": 43, "metadata": {}, "outputs": [ { ... ... @@ -266,13 +407,13 @@ "Text(0, 0.5, 'capacity [GW]')" ] }, "execution_count": 19, "execution_count": 43, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "image/png": "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\n", "text/plain": [ "
 %% Cell type:markdown id: tags: ## Tutorial VI.1 Consider a long-term multi-year investment problem where **CSP (Concentrated Solar Power)** has a learning curve such that $$LCOE = c_0 \left(\frac{x_t}{x_0}\right)^{-\gamma} + c_1$$ where $c_0$ is cost at start, $c_1$ is material cost and $x_t$ is cumulative capacity in the investment interval $t$. Thus, $x_0$ is the initial cumulative CSP capacity. Additionally, there are **nuclear** and **coal** generators for which there is no potential for reducing their LCOE. We build an optimisation to minimise the cost of supplying a flat demand $d=100$ with the given technologies between 2020 and 2050, where a CO$_2$ budget cap is applied. > **Hint:** Problem formulation is to be found further along this notebook. **Task:** Explore different discount rates, learning rates, CO$_2$ budgets. For instance * No learning for CSP and no CO$_2$ budget would result in a coal-reliant system. * A CO$_2$ budget and no learning prefers a system built on nuclear. * A CO$_2$ budget and learning results in a system with CSP. %% Cell type:markdown id: tags: *** ## Imports %% Cell type:code id: tags:  python from pyomo.environ import ConcreteModel, Var, Objective, NonNegativeReals, Constraint, Suffix, exp from pyomo.opt import SolverFactory import pandas as pd import matplotlib.pyplot as plt plt.style.use('bmh') %matplotlib inline  %% Cell type:markdown id: tags: ## Parameters %% Cell type:code id: tags:  python techs = ["coal","nuclear","CSP"] colors = ["#707070","#ff9000","#f9d002"] parameters = pd.DataFrame(data=[[50.,100.,150.], # LCOE EUR/MWh_el [1.,0.,0.], # emissions tCO2/MWh_el [50.,100.,35.], # LCOE long-term potential EUR/MWh_el [1e6,1e6,200]], # Volume in GW until (today - base) LCOE reduces by 1/e index=["LCOE","emissions","base LCOE","volume"], columns=techs) parameters = pd.DataFrame(data=[[50.,100.,150.,"LCOE EUR/MWh_el"], [1.,0.,0., "tCO2/MWh_el"], [50.,100.,35., "EUR/MWh_el"], [1e6,1e6,200,"GW"]], index=["current LCOE","specific emissions","potential LCOE","current volume"], columns=techs+["unit"]) parameters  %%%% Output: execute_result coal nuclear CSP LCOE 50.0 100.0 150.0 emissions 1.0 0.0 0.0 base LCOE 50.0 100.0 35.0 volume 1000000.0 1000000.0 200.0 coal nuclear CSP unit current LCOE 50.0 100.0 150.0 LCOE EUR/MWh_el specific emissions 1.0 0.0 0.0 tCO2/MWh_el potential LCOE 50.0 100.0 35.0 EUR/MWh_el current volume 1000000.0 1000000.0 200.0 GW %% Cell type:code id: tags:  python #discount rate rate = 0.05 #demand in GW demand = 100. years = list(range(2021,2050)) #learning rate of CSP gamma_csp = 0.4 # carbon budget in average tCO2/MWh_el co2_budget = 0.2 # considered years years = list(range(2020,2050))  %% Cell type:markdown id: tags: ## Build Model > **Note:** We use [pyomo](https://pyomo.readthedocs.io/en/stable/) for building optimisation problems in python. This is also what pypsa uses under the hood. %% Cell type:code id: tags: