ficus is a (mixed integer) linear programming optimization model for capacity expansion planning and unit commitment for local energy systems. Based on URBS and VICUS it was developed as a model for optimising energy systems of factories.
- ficus is a (mixed integer) linear programming model for a multi-commodity energy system of a factory.
- It finds the minimum cost energy system to satisfy given demand time-series for possibly multiple commodities (e.g. electricity, heat)
- It considers given cost time-series for external obtained commodities as well as peak demand charges with configurable timebase for each commodity
- It allows to deactivate specific equations, so the model becomes a linear programming model without integer variables
- It supports multiple-input and multiple-output energy conversion technologies with load dependent efficiencies
If you don't already have an existing Python I recommend using the Python distribution Anaconda. It contains all needed packages except Pyomo.
-
Anaconda (Python 2.7 or Python 3.5). Choose the 64-bit installer if possible.
- During the installation procedure, keep both checkboxes "modify PATH" and "register Python" selected!
-
Pyomo. (pip install pyomo)
-
download or clone (with git) this repository to a directory of your choice.
-
Copy the
ficus.py
file to a directory which is already in python's search path or add the your folder to python's search path (sys.path) (how to) -
Install a solver (optional).
- Run the given examples in the
examples
folder. You can run ficus from a python script or directly from the input file using excel. - Read the documenation and create your own input file following the tutorial
Pyomo allows using the NEOS Server for Optimisation for solving, so it is not required to install a solver.
I still recommend to install and use one of the following solvers.
-
GLPK (open source)
-
CPLEX (commercial)
Download and install IBM's CPLEX solver. Free for academics
-
Gurobi (commercial)
Download and install Gurobi solver. Free for academics
This is a typical result plot created by the function ficus.plot_timeseries
, showing electricity
generation and consumption over 7 days:
More result plots are given in the documenation.
Copyright (C) 2015 Dennis Atabay
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/