Skip to content

RWTH-LTT/SecMOD-4Decide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This repository contains the desktop application for our energy-system design-optimization framework SecMOD 4Decide.

Developed at the Institute of Technical Thermodynamics (LTT), RWTH Aachen University.


Purpose

SecMOD 4Decide is used to design site-scale multi-energy systems under uncertainty. It covers three steps: generating component models from measured operating data, running stochastic multi-objective design optimization, and deriving compromise solutions from stochastic goal programming (SGP).

The provided example reproduces the case study used in our study. The only exception is the proprietary ecoinvent data, which has been replaced with dummy data.


Features

Tab 1 - Model Generation: Fit (piecewise-)linear component models to measured operating data and export them into a SecMOD working directory.

Tab 1

Tab 2 - Design Optimization: Configure objectives, constraints, and key performance indicators (KPIs), then run single- or multi-objective design optimization.

Tab 2

Tab 3 - Results: Analyze the Pareto front and generate compromise solutions, choosing the objective weights and the compromise metric.

Tab 3


Installation

Requirements

  • Python 3.14 or newer
  • A supported LP/MILP solver:
    • Gurobi (license-restricted)
    • HiGHS (open-source, included via highspy)
  • The ecoinvent database or ecoinvent-derived impact data if LCA impact categories are used. Place ecoinvent.csv at: example/SecMOD/00-INPUT/00-RAW-INPUT/04-ECOINVENT/ecoinvent.csv A placeholder file is included so the directory structure is visible, but the licensed ecoinvent data itself is not included. See ecoinvent.org for access.

Steps

git clone https://github.com/RWTH-LTT/SecMOD-4Decide.git
cd secmod-4decide
python -m venv .venv
.\.venv\Scripts\activate
python -m pip install --upgrade pip
pip install -r requirements.txt
python main.py

Or on Windows, after installing the requirements in your environment, double-click run.bat.


Example project

The example/ folder contains a complete SecMOD working directory for a multi-energy system case study (industrial site, ONENODE grid).

Example case

Pre-computed demonstration results are at example/SecMOD/01-MODEL-RESULTS/MULTI_OBJECTIVE_CUSTOM_OPTIMIZATION/default_results/: a 4-objective lexicographic Pareto front (Total Annualized Costs, Invest Costs, Peak Load Electricity, Peak Load Gas) with two compromise points (L₁ and L∞ norm). Load these from Tab 3 without running any optimization.

To open the example in the GUI:

  1. Launch python main.py
  2. Go to Tab 2 → Design Optimization
  3. Click Open working directory and select the example/ folder
  4. Click Load to read the configuration

To load the pre-computed results directly:

  1. Go to Tab 3 → Results
  2. Click Select results folder and navigate to example/SecMOD/01-MODEL-RESULTS/MULTI_OBJECTIVE_CUSTOM_OPTIMIZATION/default_results/

To generate new results, run an optimization from Tab 2. Results are written below example/SecMOD/01-MODEL-RESULTS/.

Reproducing the case study results

The repository includes all inputs needed to reproduce the results from our study: operational data, techno-economic parameters, time series, scenario assumptions, and solver configuration.

Due to ecoinvent license terms, proprietary ecoinvent data are not included. LCA-based impact results therefore require users to provide their own licensed ecoinvent export or compatible derived impact data.


Project structure

secmod-4decide/
├── main.py                      Entry point
├── requirements.txt
├── run.bat                      Windows launcher
├── secmod_4decide_qt/           PyQt6 GUI package
│   ├── tabs/                    GUI Tabs 
│   ├── widgets/                 GUI widgets
│   ├── dialogs/                 GUI dialogs
│   └── core/                    GUI utiltites
├── secmod_4decide/              Backend library
│   ├── modeling/                Compent modeling
│   └── secmod/
│       ├── core/                SecMOD optimization core
│       └── converters/          CSV <-> Excel converters
└── example/                     Example SecMOD working directory
    └── SecMOD/
        ├── 00-INPUT/
        │   └── 00-RAW-INPUT/    Model input data
        └── 01-MODEL-RESULTS/    Model results

Citation

If you use this software in academic work, please cite:

Schricker, H., Kuperjans, F., Kämper, A., Reinert, C., & von der Assen, N. Improving Decision Quality for Energy System Design via Stochastic Goal Programming with Data-Driven MILPs. Computers & Chemical Engineering (2026). DOI: https://doi.org/10.1016/j.compchemeng.2026.109773


License

See LICENSE.

About

Preference- and risk-sensitive design of site-scale energy systems under uncertainty

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages