ehubX documentation
ehubX is a framework designed for modeling and optimizing energy systems based on the energy hub principle. Developed as a Python library, it leverages the Pyomo optimization modeling language to formulate Mixed-Integer Linear Programming (MILP) problems from user-defined energy hub structures and parameters. The framework utilizes external solvers, such as Gurobi, to efficiently solve the MILP problems and presents the results in a structured format for comprehensive analysis. Additionally, there is a Python tool named ehubV that facilitates the visualization and analysis of results generated by ehubX, although it has not yet been published.
The framework offers a range of features including single-objective and dual-objective optimization, which allows for costs, emissions, autonomy, and self-sufficiency as optimization targets. It includes a variety of modules that represent different aspects of energy systems, as detailed in the Model section. Additionally, it supports multi-stage and multi-hub optimization capabilities, and offers an optional time clustering method to reduce computational complexity. Users can define carriers flexibly with customizable units, encompassing both energy and mass carriers. Furthermore, node balancing is performed at each time step, stage, hub, and carrier, in accordance with the energy hub principle.
ehubX as a framework is not be confused with a specific energy system model. Instead, it provides the tools to create customized energy system models based on user-defined input data and structures.
ehubX is developed and maintained by the Urban Energy Systems Lab at Empa.