Optimization of Real-time Capacity Allocation
This Python package performs dispatch optimization for real-time economic optimization.
Clone the repository, navigate to the directory containing setup.py and execute:
pip install -e .
ORCA can be used via individual components or with the CollectedNextDispatch
object.
The Optimization
and RewardForecast
objects are intended to have a simple, cohesive
interface that allows plug and play use. Each Optimization
object is required to have
a return_next_dispatch
method that performs the optimization and returns the next time
step's optimal dispatch. Each RewardForecast
object is required to have a gen_reward
method that returns n samples of the reward/price data required in the time horizon for
optimization. New optimization or reward forecast algorithms may be implemented and when
placed in the appropriate directory, the CollectedNextDispatch
object can find and use
them or they may be used independently for optimization workflows.
The CollectedNextDispatch
object instantiates the required Optimization
and
RewardForecast
objects specified in a YAML file. Note that only one Optimization
object is required, but many RewardForecast
objects may be specified to represent
reward/price information of multiple components. An example of a YAML specification file
is given in notebooks/CollectedNextDispatchExample.yaml
.
Examples of how to use the various objects within ORCA are given in the notebooks
directory.
Each Optimization
and RewardForecast
object should have associated unit tests. These
can be found in the tests
directory. They are written using the unittest
framework
and can be run using a command like python -m unittest discover -v
from the directory
adjacent to tests
.
ORCA uses black for code formatting.