CBE 30338 Data Analytics, Optimization, and Control#

This is a collection of class materials for CBE 303338 Data Analytics, Optimization, and Control taught at the University of Notre Dame.

Course Description#

Dynamic modeling, data analytics, optimization, and control are essential to modern chemical technologies that enable precision medicine, sustainable energy, semiconductors, access to clean water, and beyond. In CBE 30338, students combine their knowledge of chemical engineering fundamentals (e.g., thermodynamics, transport, kinetics) and data analytics to develop dynamic models of diverse chemical technologies and processes. These models enable the design and optimization of control systems that use feedback to reject disturbances and drive systems to steady-state setpoints. CBE 30338 combines state-space modeling with modern computational and statistical methods to cover industrially relevant topics such as model predictive control, parameter estimation, and optimization. Students master techniques in hands-on experiments and a final semester project.

Course Outline#




Introductions to the Course and TC Lab

1 - 4

Dynamic Modeling and Data Analytics

5 - 7

Feedback Control

7 - 9

Computational Optimization

10 - 11

Predictive Control

12 - 13

Team Project Workshops


Student Project Presentations

Software Installation Instructions#

Students will use their personal laptop computers to complete labratory and homework assignments. Below are instructions

Start Here:

  • Install anaconda: https://www.anaconda.com/

  • Windows users: in the Start menu, search search for “Anaconda prompt”. Open it and copy-paste-run the commands below

  • Mac users: press command + space, then search for “terminal”. Open it and copy-paste-run the commands below

  • Create new conda environment: conda create -n controls python=3.10

  • Activate new environemnt: conda activate controls

Extra Steps for Website Contributors (e.g., instructor, TAs, students please skip):

  • Install Jupyter Book (may take a while, solve may freeze a few times): conda install -c conda-forge jupyter-book

  • Install GHP Import (for publishing with GitHub pages): conda install -c conda-forge ghp-import

Everyone (students resume here after “Start Here” steps are complete):

  • Install Jupyter Lab: conda install -c conda-forge jupyterlab

  • Needed to switch kernels in Jupyter Lab: conda install nb_conda_kernels

  • Install Pandas, Numpy, and Matplotlib: conda install -c anaconda pandas numpy matplotlib scipy

  • Install IDAES-PSE (which includes pyomo): conda install -c IDAES-PSE -c conda-forge idaes-pse

  • Install optimization solvers: idaes get-extensions

  • Install tclab: pip install tclab

To run Python, in either the Acaconda prompty (Windows) or terminal (Mac):

  • Activate our environment: conda activate controls

  • Launch Jupyter lab: jupyter lab

  • In the upper right corner, click on “Kernel” and change to “controls”

  • You are now ready to test the TCLab hardware!

Contact Us#

Most of these materials were developed by Prof. Jeffery Kantor. The repository is currently maintained by Prof. Alexander Dowling at ndcbe/controls.