Git Product home page Git Product logo

gusto's Introduction

GUSTO

enerGy commUnity SysTem mOdeling

GUSTO is a mixed-integer linear program (MILP) for energy system modeling. Thanks to the open-source energy system modeling community it is an extension of the existing open-source model (OSM) urbs[1].

Open Source Love svg1 made-with-python License: GPL v3 DOI

Objective and scope:

The Horizon 2020 openENTRANCE project aims at developing, using and disseminating an open, transparent and integrated modelling platform for assessing low-carbon transition pathways in Europe. openENTRANCE will analyse the new challenges of the energy transition and demonstrate the ability of the project to answer a wide range of questions linked to the energy transition by carrying out case study simulations. This model (as a merger of the two models HEROS and OSCARS) is part of case study 3, which is described as follows:

CS3: Need of flexibility โ€“ storage: Comparison of the flexibility of pumped hydro storage with batteries for future high-variability power systems caused by a large share of variable renewables. Analyses for the Iberian Peninsula and the Nordic region. Impacts on pan-European level. Key aspects covered: variability, flexibility, decentralisation

More information about the case studies of the project can be found here.

The model provides a tool for investment decisions as well as for the operational utilization of the generation units, technologies and storage units.

Further developments of the modeling framework:

  • Extending investment costs by capacity-independent connection costs for network-based technologies
  • Weighting of modeled time-steps (as an example to consider time step frequency)
  • Different operational strategies of storage technologies
  • Clustering algorithm for characteristic week representation to reduce simulation running time[2].

What are the objectives:

Different objective functions are possible. The default objective function is to minimize total costs of supply per year. In addition, the existing model also enables minimization of total emissions per year. Furthermore, this modeling framework enables the following operational strategies for storage technologies.

  1. profit maximization by single consumers, communities, or companies
  2. minimization of local excess/deficit by prosumers
  3. load following by using battery storage capacities (this includes dumb or smart EV charging)

What are the results:

The total costs of energy supply in the system concerned are calculated and can are split as follows: invest, fixed, variable, fuel, external, reveneue, purchase (see after running the model ./Output/scenario_name_folder/scenario_name) in the sheet Costs of the excel results file. Many thanks to the visualization tool pyam that is used for the results presentation.

Also, the utilization of energy technologies are illustrated in the results file and as images (i.e. temporal utilization of photovoltaics). These results can be adjusted in the run_model.py script (i.e. report_tuple and plot_tuple).

Pareto Front Battery output curves

How to run the model:

At this point it is again pointed out that this model is an extension of the existing open-source model urbs. The corresponding repository contains a very detailed documentation and instructions for installation which can be referred to. However, the following steps might be the quickest path to get first results of the model and is also pointed out in the reffered repository. Thereby, a new environment is created (more details about virtual environments here).

  1. Download and install Miniconda for your machine (keep both checkboxes modify PATH and register Python selected).
  2. Download the environment file which contains the required packages and corresponding versions (more experienced Python users know the advantages and disadvantages of this but these are not so relevant for a first step towards model results).
  3. Launch a new command prompt (Windows: Win+R, type "cmd", Enter)
  4. Install the requirements via Miniconda by conda env create -f gusto-env.yml.
  5. Each time you open a new terminal (like Anaconda Prompt (miniconda3)) activate the environment by conda activate gusto.

Afterwards you can run the model. Therefore open a Anaconda Propmpt (miniconda3) terminal. Use the cd command to change the current directiory and open the related one where you find run_model.py. Finally type python run_model.py to solve the optimization problem. The results can be found in the Output folder.

Scientific publications and ongoing work:

This model is already used in the following two scientific contributions:

Furthermore, this model is used in an ongoing project together with NTNU. Updates follow soon.

User guide:

For the base open-source model urbs a detailed description exists here.

Creative Commons License
Note that urbs is licensed under a Creative Commons Attribution 4.0 International License.

Open data platform and IAMC format

Data exchange with the open platform and the scenario explorer of the project is supported. This is provided by the IAMC format and pyam. More information is available through the links. A draft script allows writing to the IAMC format (see Gusto_results.xlsx). Extensions and updates will follow.

References

[1] Dorfner, J., and T. Hamacher (2017) "urbs: A linear optimisation model for distributed energy systems." Urbs 0.7 1" "Scikit-learn: Machine Learning in Python." JMLR 12, pp. 2825-2830.

[2] Pedregosa et al. (2011) "Scikit-learn: Machine Learning in Python." JMLR 12, pp. 2825-2830.

gusto's People

Contributors

sebastianzwickl avatar stickler-ci avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.