Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
110 lines (80 sloc) 4.39 KB
.. module:: ficus

ficus: A (mixed integer) linear optimisation model for local energy systems

Maintainer:Dennis Atabay, <dennis.atabay@tum.de>
Organization:Institute for Energy Economy and Application Technology, Technische Universität München
Version:|version|
Date:|today|
Copyright:This documentation is licensed under a Creative Commons Attribution 4.0 International license.

Contents

This documentation contains the following pages:

.. toctree::
   :maxdepth: 1

   overview
   run_ficus
   tutorial
   examples


Features

  • ficus is a (mixed integer) linear programming model for multi-commodity energy systems.
  • 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
  • ficus includes reporting and plotting functions

Installation

If you don't already have an existing Python I recommend using the Python distribution Anaconda. It contains all needed packages except Pyomo.

  1. 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!
  2. Pyomo (pip install pyomo)
  3. download or clone (with git) this repository to a directory of your choice.
  4. Copy the ficus.py file to a directory which is already in python's search path or add the python folder to python's search path (sys.path) (how to)
  5. Install a :ref:`solver <solver-ref>` (optional).

Get started

  1. :ref:`Run <run_ficus>` the given examples in the examples folder.
  2. Follow the :ref:`turorial <tutorial>` to create your own input file.

Solver

Pyomo allows using the NEOS Server for Optimization for solving, so it is not required to install a solver.

I still recommend to install and use one of the following solvers.

  1. GLPK (open source)
    1. Download the latest version (e.g. GLPK-4.55) of WinGLPK
    2. Extract the contents to a folder, e.g. C:GLPK
    3. Add the sub-folder w64 to your system path, e.g. C:GLPKw64 (how).
  2. CPLEX (commercial)

    Download and install IBM's CPLEX solver. (Free for academics)

  3. Gurobi (commercial)

    Download and install Gurobi solver. (Free for academics)

Screenshots

This is a typical result plot created by :func:`ficus.plot_timeseries`, showing electricity generation and consumption over 7 days:

img/elec-timeseries.*

You can’t perform that action at this time.