Self sustained producer-consumer(prosumer) policy study using Python and Gurobi

Overview

Prosumer Policy

This project aims to model the optimum dispatch behaviour of households with PV and battery systems under different policy instrument mixes. Household electricity consumers with photovoltaics and battery systems are referred to as prosumers since they both produce and consume electricity. This model uses the Gurobi optimizer (plans on adding more soon, contact us if you want to have more interfaces) to determine the optimal household charging behaviour under different policies such as real-time electricity pricing schemes, time varying remunerations schemes and fixed network charges. For the full scientific documentation, please refer to this paper: Aligning prosumers with the electricity wholesale market – The impact of time-varying price signals and fixed network charges on solar self-consumption.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

This model depends on Python >3.5, the packages Numpy and Pandas for data wrangling and Gurobi python package for optimization. Gurobi offers a free license for Academic use.

Sample Usage

The interface point between the package and the user is the Model Class. An instance of this class can be created as follows:

w=Model()

Each model instance has a set of system attributes, policy attributes and optimization parameters.

System Attributes

System attributes include, among others, PV and battery system size. Other parameters, such as battery efficiencies etc.. can be changed in the parametrs.yaml file.

Battery and PV size can be set as follows:

w.PV.size=5 #sets PV size to 5 kW
w.Battery.size=5 #sets Battery size to 5 kWh

Other parameters can be updated either from the default YAML file or a custom YAML file as follows:

w.PV.update_parameters() #updates from default YAML file

w.Battery.update_parameters('customFile.yaml') #updates from custom YAML File
Policy Attributes

For each instance of Model there exists a specific regulatory regime made up of:

  • RTP: Real Time Electricity Pricing
  • VFIT: Variable Feed in Remuneration
  • FixedNetworkCharges: Fixed or Volumetric Network charges

Parameters can be defined in YAML file and could also be changed as follows:

w.Policy.isRTP=False

or through a custom (or default) yaml parameter file

w.Policy.update_parameters('customFile.yaml') 
Optimization Parameters

Optimization parameters such as foresight duration and starting day of year can be edited as follows

w.timeDuration=24 #sets foresight to 24h
w.day=45 #sets the day 45 of the year
Optimization and Results Extracting

With the aforementioned parameters the Model can be optimized:

print(w.opt) #returns the dispatch as a DataFrame 
print(w.revenue) #returns the revenue 

Additional parameters can be computed such as MAI, IRR, etc.. The MAI stands for Market Alignment Indicator which measures the performance of a certain instrument mixes in comparison to an ideal case

Contributing

Please contact us via email to [email protected].

Authors

  • Ahmad Ziade - Initial work
  • Martin Klein - Initial work

License

This project is licensed under the MIT License - see the LICENSE.md file for details If you are using this project, please cite as:

Klein, M., Ziade, A. and De Vries, L., 2019. Aligning prosumers with the electricity wholesale market–The impact of time-varying price signals and fixed network charges on solar self-consumption. Energy Policy, 134, p.110901. DOI: 10.1016/j.enpol.2019.110901

Acknowledgments

Marc Deissenroth, Kristina Nienhaus, Laurens de Vries

Owner
Tom Xu
Software Engineer, AI/ML SaaS Advocate, Scientific Simulations and Optimizations.
Tom Xu
Procedural 3D data generation pipeline for architecture

Synthetic Dataset Generator Authors: Stanislava Fedorova Alberto Tono Meher Shashwat Nigam Jiayao Zhang Amirhossein Ahmadnia Cecilia bolognesi Dominik

Computational Design Institute 49 Nov 25, 2022
El_Binario - A converter for Binary, Decimal, Hexadecimal and Octal numbers

El_Binario El_Binario es un conversor de números Binarios, Decimales, Hexadecima

2 Jan 28, 2022
Tutorials on advanced python topics, and literate programming framework to write them.

Advanced course on Python3 This course covers several topics Python decorators The python object system / meta classes Also see my text on Python impo

Michael Moser 59 Dec 19, 2022
run-js Goal: The Easiest Way to Run JavaScript in Python

run-js Goal: The Easiest Way to Run JavaScript in Python features Stateless Async JS Functions No Intermediary Files Functional Programming CommonJS a

Daniel J. Dufour 9 Aug 16, 2022
Discovering local read-level DNA methylation patterns and DNA methylation heterogeneity in intermediately methylated regions

Discovering local read-level DNA methylation patterns and DNA methylation heterogeneity in intermediately methylated regions

1 Jan 11, 2022
Usos Semester average helper

Usos Semester average helper Dzieki temu skryptowi mozesz sprawdzic srednia ocen na kazdy odbyty przez ciebie semestr PARAMETERS required: '--username

2 Jan 17, 2022
Your Google Recon is Now Automated

GRecon : GRecon (Greei-Conn) is a simple python tool that automates the process of Google Based Recon AKA Google Dorking The current Version 1.0 Run 7

adnane-tebbaa 189 Dec 21, 2022
Async-first dependency injection library based on python type hints

Dependency Depression Async-first dependency injection library based on python type hints Quickstart First let's create a class we would be injecting:

Doctor 8 Oct 10, 2022
Tracking development of the Class Schedule Siri Shortcut, an iOS program that checks the type of school day and tells you class scheduling.

Class Schedule Shortcut Tracking development of the Class Schedule Siri Shortcut, an iOS program that checks the type of school day and tells you clas

3 Jun 28, 2022
addon for blender to import mocap data from tools like easymocap, frankmocap and Vibe

b3d_mocap_import addon for blender to import mocap data from tools like easymocap, frankmocap and Vibe ==================VIBE================== To use

Carlos Barreto 97 Dec 07, 2022
Remote execution of a simple function on the server

FunFetch Remote execution of a simple function on the server All types of Python support objects.

Decave 4 Jun 30, 2022
Python Repository for Bachelor Ski Sign.

BachelorSkiSign Python Repository for Bachelor Ski Sign. This application reads data from https://bachelorapi.azurewebsites.net/ It is written in Ciru

Winston 1 Jan 04, 2022
An-7 tool for python

***An-7 tool - Anonime-X Team*** An-x Menu : SPAM Android web malware interpreter Spam Tools : scampages letters mailers smtpcrack wpbrute shell Andro

Hamza Anonime 8 Nov 18, 2021
Generate a wordlist to fuzz amounts or any other numerical values.

Generate a wordlist to fuzz amounts or any other numerical values. Based on Common Security Issues in Financially-Oriented Web Applications.

Ivan Šincek 3 Oct 14, 2022
Safe temperature monitor for baby's room. Made for Raspberry Pi Pico.

Baby Safe Temperature Monitor This project is meant to build a temperature safety monitor for a baby or small child's room. Studies have shown the ris

Jeff Geerling 72 Oct 09, 2022
A python tool used for hacking WhatsApp by diverting otp

W-HACK A python tool used for hacking WhatsApp by diverting otp You can hack WhatsApp easily with this tool Note:OTP expires after 5 seconds HOW TO IN

Spider Anongreyhat 3 Oct 17, 2021
Simple Python script I use to manage and build my Reflux themes.

Simple Python script I use to manage and build my Reflux themes. Built for personal use, but anyone can easily fork and tweak to suit thier needs.

Ire 3 Jan 25, 2022
Set of tools to analyze Tinynuke samples

tinynuke-toolset You'll find in that repository a set of tools and scripts I developped to analyze Tinynuke samples. Dll extractor: script used to ext

Heat Miser 14 Aug 18, 2022
A simple and convenient build-and-run system for C and C++.

smake Smake is a simple and convenient build-and-run system for C and C++ projects. Why make another build system? CMake and GNU Make are great build

Venkataram Edavamadathil Sivaram 18 Nov 13, 2022
An implementation of Ray Tracing in One Weekend using Taichi

又一个Taichi语言的Ray Tracer 背景简介 这个Ray Tracer基本上是照搬了Peter Shirley的第一本小书Ray Tracing in One Weekend,在我写的时候参考的是Version 3.2.3这个版本。应该比其他中文博客删改了不少内容。果然Peter Shir

张皓 30 Nov 21, 2022