{ "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": 2, "metadata": {}, "outputs": [], "source": [ "from pyomo.environ import ConcreteModel, Var, Objective, NonNegativeReals, Constraint, Suffix, exp\n", "from pyomo.opt import SolverFactory\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "plt.style.use('bmh')\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Parameters" ] }, { "cell_type": "code", "execution_count": 180, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | coal | \n", "nuclear | \n", "CSP | \n", "unit | \n", "
---|---|---|---|---|
current LCOE | \n", "50.0 | \n", "100.0 | \n", "150.0 | \n", "LCOE EUR/MWh_el | \n", "
specific emissions | \n", "1.0 | \n", "0.0 | \n", "0.0 | \n", "tCO2/MWh_el | \n", "
potential LCOE | \n", "50.0 | \n", "100.0 | \n", "35.0 | \n", "EUR/MWh_el | \n", "
current volume | \n", "1000000.0 | \n", "1000000.0 | \n", "200.0 | \n", "GW | \n", "
lifetime | \n", "40.0 | \n", "40.0 | \n", "30.0 | \n", "years | \n", "
existing age | \n", "20.0 | \n", "30.0 | \n", "0.0 | \n", "years | \n", "
existing capacity | \n", "75.0 | \n", "25.0 | \n", "0.0 | \n", "GW | \n", "