Welcome to the Machine Learning for Chemical Engineering (ML4CE) course repository.
This module introduces machine learning concepts for chemical engineering applications through coding projects.
ML4CE is a module offered at Imperial College London for 4th Year MEng and MSc students in the Chemical Engineering Department.
The course introduces students to core machine learning concepts and their applications in solving chemical engineering problems.
Assessment is based on mini-projects that apply machine learning and optimisation techniques to chemical engineering case studies.
This repository contains the material for the coursework coding projects.
The coursework is split into two parts:
In this project, you will design a data-driven optimisation algorithm to tune a PID controller for a continuous stirred tank reactor (CSTR).
The task is to optimise the controller gains such that the reactor system error is minimised.
The optimisation problem involves balancing three aspects:
- Overall tracking error of the system
- Magnitude of control actions (linked to operational cost)
- Smoothness of control action changes (to avoid aggressive actuator behaviour)
Your algorithm should find optimal PID parameters that yield stable, efficient control of the CSTR system.
π See README here
This project focuses on constrained optimisation of the Williams-Otto (WO) chemical process, a classic benchmark in chemical engineering.
The objective is to maximise the process profit by adjusting two decision variables:
- Reactor temperature (TR)
- Flow rate of reactant B (Fb)
The optimisation must respect process constraints, such as limiting the use of reactant A and minimising waste generation.
Each algorithm is evaluated under a strict evaluation budget, making efficient use of limited simulations critical.
This coursework highlights the role of optimisation in process systems engineering, demonstrating how data-driven methods can be applied to complex, nonlinear chemical processes.
π See README here π See detailed problem description here
-
Clone the repo:
git clone https://github.com/OptiMaL-PSE-Lab/Imperial-ML4CE-Course.git cd Imperial-ML4CE-Course
-
Install Dependencies
conda (recommended):
conda create --name myenv python=3.10 conda activate myenv pip install -r requirements.txt
pip:
pip install -r requirements.txt