Skip to main content

No project description provided

Project description

Dynamic programming optimisation tool

This project implements the dynamic programming tool proposed in this paper and available in the R Software in the ConConPiWiFun package

Table of Contents

1. Installation

If you want to install the package from source, you can do

pip install git+https://github.com/robingirard/dynprogstorage#egg=dynprogstorage

Documentation

optimisation problem

This tool allows you to solve problems with the form

## min_x  sum_i phi_i(x_i)   phi_i : convex piecewise linear function
## P_i^-<= x_i <=P_i^+
## C_i^-<= x_0 + sum_j=0^i x_j <= C_i^+ 

Examples

Let us give a few examples of use

storage operation example

While participating in the market with a 100% efficiency storage you want to maximize the profit

## min_x  sum_i Pi_i x_i  ( phi_i linear function)
## -p_max <= x_i <=p_max
## 0<= x_0 + sum_j=0^i x_j <= c_max
## x_i>0 : consumption from the network
## x_i<0 : producing (injection to network)
### --> phi_i(x_i) is a buying cost we want to minimize

The code you need to use is :

## Definition of values    
x_0=0
nbTime=250
Prices=random.uniform(1, 1000, nbTime)
p_max=1.
c_max=10.*p_max

## Generation of a vector of cost functions 
cpl_func = GenCostFunctionFromMarketPrices(Prices.tolist())
cpl_func.vec_get(0).getBreakPoints() ## what does the first cost function look like
## now solve the optimisation problem
res = cpl_func.OptimMargInt([-p_max]*nbTime,[p_max]*nbTime,[-x_0]*nbTime,[c_max-x_0]*nbTime)
print(res)

## Visualisation of results (power) with prices            
period=100
plt.plot(res[:100])
plt.plot(-(Prices[:100]-Prices.mean())/Prices.max())
plt.ylabel("Puissance (MW)")
plt.xlabel("Index")
plt.show()

## Visualisation of Energy evolution 
energie=np.cumsum(res)
plt.plot(energie[:100], color='g')
plt.plot([0]*100, color='b')
plt.plot([c_max]*100, color='b')
plt.ylabel("Energie (MWh)")
plt.xlabel("Index")
plt.show()

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

dynprogstorage-0.1.10.tar.gz (66.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

dynprogstorage-0.1.10-cp38-cp38-win_amd64.whl (62.5 kB view details)

Uploaded CPython 3.8Windows x86-64

dynprogstorage-0.1.10-cp38-cp38-macosx_10_9_x86_64.whl (80.7 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

Details for the file dynprogstorage-0.1.10.tar.gz.

File metadata

  • Download URL: dynprogstorage-0.1.10.tar.gz
  • Upload date:
  • Size: 66.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/49.1.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.3

File hashes

Hashes for dynprogstorage-0.1.10.tar.gz
Algorithm Hash digest
SHA256 6f943e1644e89e38b59c7b69e12175bd0eef376d9e64a4cd7336287b6a0bd59f
MD5 9a8398c9f02fd1783a8880607398bf6f
BLAKE2b-256 887ffdbcaea94af3501607f67a9243afc4bcad446bc5a1aa6889db71ee087893

See more details on using hashes here.

File details

Details for the file dynprogstorage-0.1.10-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: dynprogstorage-0.1.10-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 62.5 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.3

File hashes

Hashes for dynprogstorage-0.1.10-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 ff55c80c74423a0f58164fda20637c7a70438c982f987650bc2787402a60114b
MD5 ea41ba1350b5f147a9cd100299aaa82f
BLAKE2b-256 1da823030b0ab01c297ccfb02e9759990ab26ff357a8ac33f38c1ac7000487cd

See more details on using hashes here.

File details

Details for the file dynprogstorage-0.1.10-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: dynprogstorage-0.1.10-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 80.7 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.3

File hashes

Hashes for dynprogstorage-0.1.10-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0c0d6fe867ce2a30f917e7acbb12b0616aa3d1dad3f9e82961fce309c3ebb225
MD5 6bb03803ee7da87768f9d509254de6c6
BLAKE2b-256 7cef9df90e698208643f6663b7984ca753aa619573a9a75b9b3223d477bbfbd3

See more details on using hashes here.

Supported by

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