A linear optimisation model for distributed energy systems
urbs is a linear programming optimisation model for capacity expansion planning and unit commitment for distributed energy systems. Its name, latin for city, stems from its origin as a model for optimisation for urban energy systems. Since then, it has been adapted to multiple scales from neighbourhoods to continents.
There are 2 ways to get all required packages under Windows. We recommend using the Python distribution Anaconda. If you don't want to use it or already have an existing Python (version 3.6 recommended, 2.7 is supported as well) installation, you can also download the required packages by yourself..
conda install python=<version>
conda env create -f urbs-env.yml
.conda activate urbs
.Continue at Get Started.
For all packages, best take the latest release or release candidate version. Both 32 bit and 64 bit versions work, though 64 bit is recommended. The list of packages can be found in the environment file.
Once installation is complete, finally install git (for version control). Remark: at step "Adjusting your PATH environment", select "Run Git from the Windows Command Prompt".
Then, in a directory of your choice, clone this repository by:
git clone https://github.com/tum-ens/urbs.git
Continue like the users after they downloaded the zip file.
If you are not planning on developing urbs, pick the latest release and download the zip file.
In the downloaded directory, open a execute the runme script by using the following on the command prompt (Windows) or Terminal (Linux). (Depending on what your standard python version is, you might need to call python3
instead of python
.):
python runme.py
Some minutes later, the subfolder result
should contain plots and summary spreadsheets for multiple optimised energy supply scenarios, whose definitions are contained in the run script (watch out for def scenario
lines). Not working at the moment: To get a graphical and tabular summary over all scenarios, execute
python comp.py
and look at the new files result/mimo-example-.../comparison.xlsx
and result/mimo-example-.../comparison.png
for a quick comparison. This script parses the summary spreadsheets for all scenarios.
runme.py
and comp.py
.scenarios.py
and see their effect on results.ipython3
) and run the scripts from there using the run command: run runme
and run comp
. Then use whos
and inspect the workspace afterwards (whos
). See what you can do (analyses, plotting) with the DataFrames. Take the urbs.get_constants
, urbs.get_timeseries
and urbs.plot
functions as inspriation and the Pandas docs as reference.scenario_generator
function in its run script, which is useful for extensive parameter sweeps.Copyright (C) 2014-2019 TUM ENS
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/