Author: Davide Carecci
Initial commit: 02.09.2025
BIOGoAlS.Select is a feedback control tool designed for experimental validation of predictive and override control strategies to enhance biomethane production efficiency and process safety.
The tool has undergone two major experimental validation campaigns:
-
First campaign (10.2023–04.2024):
Conducted at Laboratory A. Rozzi (Politecnico di Milano, Cremona campus) on the UIT machine. -
Second campaign (03.2025–07.2025):
Conducted at BioTA Lab (Universidad Técnica Federico Santa María, Valparaíso, Chile) using a hand-made, Raspberry-Pi-driven control architecture.
-
UIT Software User Manual
Additional information on integration between this program and the UIT proprietary software. -
SelectorPI Pseudo-Code
Step-by-step guidance through the code, both from mathematical and conceptual (simplified) standpoints. -
BIOGOALS.SELECT User Manual
Comprehensive documentation of the repository structure and main scripts:
-
Python code to run the BIOGoAlS.Select tool — a 'conventional' online feedback PI controller with an override structure to improve biomethane production under safety constraints. Executable only on the UIT machine.
-
Jupyter Notebook for reading, analyzing, and plotting controller outputs.
-
CSV input file for setpoint data. For the notebook to run, data generated by the UIT proprietary software must be manually added.
-
Examples of figures, output CSV files, and configuration INI files.
-
Python code to run the BIOGoAlS.Select tool — improved and adapted for the hand-made, Raspberry-Pi-driven control architecture used in Chile’s experiments. Ready to run when called from the terminal or a Jupyter Notebook.
-
Jupyter Notebook for running a closed-loop test (together with a Python code to call the simulator of a real plant from the BIOGoAlS.agri-AcoDM tool)
$\leftrightarrow$ sub-folder with an example of inputs and outputs required and generated. -
/Inputsubfolder: contains required CSV input data for the Python code. -
Examples of plots, logs and output files.
-
Markdown links (
./folder/file) are used for proper GitHub rendering. -
Avoid editing files inside
/UIT_implementationunless you have access to the UIT system. -
Python 3.10+ is required for the RPi implementation.
-
Python 3.8- is required for the UIT implementation.
-
A Jupyter Notebook to find the best design of the controller (optimization) is also present.
-
For further details, please refer also to the PhD thesis of the author (visit POLItesi or request a copy to davide.carecci@polimi.it).
-
⚠️ Important: Git LFS Required This repository uses Git LFS (Large File Storage). ❌ Do NOT download the project using "Download ZIP" — files will be incomplete. ✅ Instead, clone the repository:git clone <repo-url>cd <repo>git lfs pull
© 2025 Davide Carecci — All rights reserved.**