Skip to main content

Python application with nevergrad optimization model for calculating and simulating the least cost of an energy Mix under constraints.

Project description

MixSimulator (Version 0.2)

MixSimulator is an application with an optimization model for calculating and simulating the least cost of an energy mix under certain constraints. The optimizers used are based on the Nevergrad Python 3.6+ library.

The primary objective of the simulator is to study the relevance of an energy mix connected to each Inter-connected Grid through the coefficient of usage of each unit in the production cost.

Specifications :

  • Generic simulator, compatible with data from Madagascar and those from abroad (but may require pre-processing beforehand);
  • Optimization of duty cycle (or usage coefficient) under the chosen constraints ;
  • Deduction of production costs and various performance indicators (CO2 emission, unsatisfied demand);
  • Comparison between the usage coefficients of the current mix and the calculated optimal mix ;
  • Comparison of the performance indicators on different optimizers.

Perspectives :

  • Add other constraints (storage of hydroelectric plants, variation in production) ;
  • Estimate of the costs of a mix or a power plant over the long term ;
  • Pair with a transmission and distribution power grid simulator (MixSimulator can provide input data).

Suggestions are welcome!

Requirements

MixSimulator is written in Python 3.6 and requires the following Python packages : nevergrad, typing, numpy, pandas and matplotlib. (make sure you have those packages)

How to run

As MixSimulator is a python package, it can be called and used as we can see in main.py.

List of classes and directories :

  • MixSimulator : System basis (Simulation with / without optimization) ;
  • SegmentOptimizer : Initiate appropriate optimization and power plants (Define objective function and constraints; Manage data entries; Calculate value of explanatory variables) ;
  • nevergradBased/Optimizer : Adaptation of the Nevergrad optimizers to the project and auto-parameterization ;
  • centrals/PowerCentral : Gathers all the common specifications of the control units (central) ;
  • Evaluation : Class for evaluating mix based on performance indicators on several optimizers ;
  • data/ : Groups the available datasets.

Official documentation will accompany the first release version.

DataSet

The dataset "data/dataset_RI_Toamasina" is for the test and it comes from the Inter-connected energy mix of Toamasina Madagascar (2018) and Some information from the dataset is estimated.

Dataset features needed:

  • tuneable (boolean): is the control unit controllable or not?
  • green (boolean): is it a renewable energy plant?
  • centrals : identification
  • fuel_consumption (g/MWh): fuel consumption (in the case of a fossil fuel power plant)
  • availability (%): plant availability
  • fuel_cost ($/g): price of fuel used
  • init_value ($): initial investment in setting up the plant
  • lifetime (years): plant lifetime
  • carbon_production (g/MWh): emission rate of CO2 from the power plant
  • raw_power (MW): nominal power of the plant
  • nb_employees: number of employees at the central level
  • mean_salary ($): average salary of plant employees
  • demand (MWh): electricity demand
  • lost (MWh): electrical loss at another level (ie: transport network)

"nb_employees * mean_salary" can be used as a variable cost of the plant if you want to directly use other informations as variable cost.

Contact

For questions and feedbacks related to the project, please send an email to r.andry.rasoanaivo@gmail.com or soloforahamefy@gmail.com or tokyandriaxel@gmail.com

Note

This project is a work in progress so it can not yet used in production (Many changes are on their way). Feedbacks are welcome!

Here is a list of available optimizers: 'cGA', 'SplitOptimizer', 'RecombiningPortfolioOptimisticNoisyDiscreteOnePlusOne', 'RecES', 'RealSpacePSO', 'RandomSearchPlusMiddlePoint', 'QrDE', 'QORandomSearch', 'OptimisticNoisyOnePlusOne', 'OptimisticDiscreteOnePlusOne', 'ORandomSearch', 'NoisyOnePlusOne', 'NoisyDiscreteOnePlusOne', 'NoisyDE', 'NoisyBandit', 'NelderMead', 'NaiveTBPSA', 'NaiveIsoEMNA', 'LhsDE', 'FCMA', 'ES', 'DoubleFastGADiscreteOnePlusOne', 'DiscreteOnePlusOne', 'CauchyOnePlusOne', 'CM', 'AlmostRotationInvariantDE', 'TwoPointsDE', 'RandomSearch', 'OnePlusOne', 'DE', 'CMA', 'PSO', 'TBPSA'

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mixsimulator-0.2.9.5.tar.gz (12.4 kB view details)

Uploaded Source

Built Distribution

mixsimulator-0.2.9.5-py3-none-any.whl (21.4 kB view details)

Uploaded Python 3

File details

Details for the file mixsimulator-0.2.9.5.tar.gz.

File metadata

  • Download URL: mixsimulator-0.2.9.5.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.6.12

File hashes

Hashes for mixsimulator-0.2.9.5.tar.gz
Algorithm Hash digest
SHA256 0990c51202902c5e3a7bfa747b7e5869877738e21306d8e86763d7513214671c
MD5 3b81136f6982d95c0ebb68a4d15d18cc
BLAKE2b-256 baa10ea8bef4d7c8ad1e9e82fac61fa8f0e77d20b2b5087a1bbe9b608da7d1fe

See more details on using hashes here.

File details

Details for the file mixsimulator-0.2.9.5-py3-none-any.whl.

File metadata

  • Download URL: mixsimulator-0.2.9.5-py3-none-any.whl
  • Upload date:
  • Size: 21.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.6.12

File hashes

Hashes for mixsimulator-0.2.9.5-py3-none-any.whl
Algorithm Hash digest
SHA256 bf3c323994d91b5326279a93815ddfcf9082bbd4f9189fb6def96eb4f7ea80ab
MD5 cb301b15b41beee8232be23112599b1d
BLAKE2b-256 c6c8988a0e554614a668659420dd9e72ca056710aa8ccc51e22a5fc28be12eb6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page