Teaching

Data Analytics, Optimization and Control

CBE 30338 (junior)
Spring 2024, Spring 2025 (co-taught)

Class website

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.

The major topics of the course are:

  • Modeling and Parameter Estimation

  • Feedback Control

  • Process Data Analytics

  • Optimization

  • Predictive Control

Python and hands-on control experiments are integrated into the course.

The lab sessions (CBE 32338) provide opportunities for hands-on coding and experimentation using the Temperature Control Laboratory. In leu of a textbook, students should purchase their own device from Amazon or apmonitor.com.


Nonlinear and Stochastic Optimization

CBE 60499 / 40499 (graduate / advanced undergraduate elective)
Fall 2018, Spring 2021, Spring 2023, Spring 2024

Class website

Description: This course will provide a practical introduction to models, algorithms, and modern software for large-scale numerical optimization. Topics include (nonconvex) nonlinear programming, deterministic global optimization, integer programming, dynamic optimization, and stochastic programming. Multi-objective optimization and mathematical programs with complementarity constraints may be covered based on time and student interests. The class is design for advanced undergraduate/graduate students from engineering, science, and mathematics who wish to incorporate optimization methods into their research. The course will begin with an introduction to modeling and the Python-based Pyomo computational environment. Optimization theory and algorithms will be emphasized throughout the course.

Graduate students: A background in linear algebra and numerical methods will be helpful but is not necessary. Students should be comfortable programming in Julia, Python, MATLAB, C, or a similar language. EE 60551: Mathematical Programming is not a prerequisite for this course.

Undergraduate students: Students must be comfortable with linear algebra and programming in Julia, Python, MATLAB, C, or a similar language. CBE 20258 or a similar undergraduate class on numerical methods is strongly recommended as a prerequisite. Please contact the instructor for any questions about preparation.

Main Texts:

  • Nonlinear Programming: Concepts, Algorithms, and Applications to Chemical Processes (Biegler, 2010) [link]
  • Pyomo — Optimization Modeling in Python (Hart et al, 2017) [link]

Advanced Data and Computing for Chemical Engineers

CBE 60258 (graduate elective)

Fall 2022, Fall 2023

Class website

Data and computing skills are essential to all subdomains of modern chemical engineering, yet many students only receive ad-hoc training in these topics. Instead, this course provides a systematic and rigorous introduction to the fundamentals of i) computing in Python; ii) mathematical modeling; iii) numerical methods for equation solving, integration, and optimization; iv) probability and statistics; v) data analytics. Topics include:

 

  • Planning and debugging computer programs
  • Functions and data types in Python
  • Visualization in Python
  • Computational linear algebra including LU, QR, and Cholesky factorizations, Eigen and singular value decompositions
  • Newton's method for equation solving and optimization
  • Numerical integration methods: Gauss quadrature, Euler's, Runge-Kutta
  • Numerical solution of ordinary and partial differential equations, systems of differential-algebraic equations
  • Probability: random variables, laws, common distributions
  • Covariance and error propagation
  • Statistical inference: hypothesis testing, confidence intervals, p-values, statistical power
  • Regression: linear, weighted, multivariate, nonlinear, residual analysis
  • Model-based design of experiments
  • Sampling methods: non-parametric bootstrap, Monte Carlo

 

Conceptual understanding and applications in engineering and the chemical sciences are emphasized. The overall goal of this class is to provide graduate students with data analytics and computational techniques needed for their diverse research and scholarship endeavors and enable them to learn advanced topics via technical electives, research assistantships, internships, self-study, and on-the-job training.


Statistical and Numerical Analysis

CBE 20258 (sophomore)
Spring 2018 (co-taught), Spring 2019, Fall 2019, Spring 2020 (co-taught)

This course introduces the fundamentals of i) computing in Python, ii) mathematical modeling, iii) numerical methods for equation solving, integration and optimization, and iv) probability and statistics. Topics include:

  • Planning and debugging computer programs
  • Functions and data types in Python
  • Visualization in Python
  • Degree of freedom analysis
  • Gaussian elimination and LU factorization with partial pivoting
  • Newton's method for equation solving and optimization
  • Probability: random variables, laws, common distributions
  • Covariance and error propagation
  • Statistical inference: hypothesis testing, confidence intervals, p-values, statistical power
  • Regression: linear, weighted, multivariate, nonlinear, residual analysis
  • Sampling methods: non-parametric bootstrap, Monte Carlo
  • Integration methods: Gauss quadrature, Euler's, Runge-Kutta

Applications in chemical engineering and conceptual understanding are emphasized. The overall goal of this class is to provide students with basic computational techniques needed for future chemical engineering classes and enable them to learn advanced topics via technical electives, internships, self-study, and on-the-job training.

Main Text:

Supplemental Text:

  • Computational Nuclear Engineering and Radiological Science Using Python (McClarren, 2018) [publisher website]

CBE 20258 in E720

Prof. Dowling lecturing in E720 Corbett Hall. Prof. Dowling is participating in the first cohort of the Kaneb Center Course Design Academy (KCCDA) during Summer 2019 to "flip" CBE 20258. The vision is to divide lecture material into brief 5 to 10-minute videos focused on concepts and simple examples. Students would watch these videos before class, allowing lecture time to become extended tutorials that emphasize problem-solving.


Separation Process Principles

CBE 40443 (senior)
Fall 2017

Main Text:

  • Transport Processes and Separation Process Principles (Geankoplis, 2003) [publisher website]