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 hashes)

Uploaded Source

Built Distributions

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

Uploaded CPython 3.8 Windows x86-64

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

Uploaded CPython 3.8 macOS 10.9+ x86-64

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