This is a collection of class materials for CBE 303338 Data Analytics, Optimization, and Control taught at the University of Notre Dame.
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.
Weeks | Unit |
---|---|
1 | 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 |
14 | Student Project Presentations |
Install Software (personal computer):
- Install anaconda: https://www.anaconda.com/
- Windows users: install LaTeX (https://miktex.org/download) or add
miktex
to the end of the above command - Mac users: install LaTeX (https://tug.org/mactex/mactex-download.html)
- Linux users: install LaTeX via your package manager
Openning Anaconda:
- 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
Students In the terminal/prompt, type:
conda create -n controls -c anaconda -c conda-forge -c IDAES-PSE python=3.10 pandas numpy matplotlib scipy jupyterlab nb_conda_kernels pandoc nbconvert-pandoc idaes-pse
Instructor/TAs In the terminal/prompt, type:
conda create -n controls -c anaconda -c conda-forge -c IDAES-PSE python=3.10 pandas numpy matplotlib scipy jupyterlab nb_conda_kernels pandoc nbconvert-pandoc jupyter-book ghp-import
Everyone Next, in the terminal type:
conda activate controls
(activates the new environment)idaes get-extensions
(installs optimization solvers)pip install tclab
(installs TCLab software)
To start using 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!
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!
Most of these materials were developed by Prof. Jeffery Kantor. The repository is currently maintained by Prof. Alexander Dowling at https://github.com/ndcbe/controls.