This repository comprises a collection of Jupyter/Python notebooks in support of CBE 30338 Chemical Process Control taught at the University of Notre Dame.
The links below display the notebooks as regular HTML web pages. From there you can run the notebook on Google Colaboratory or download to run on your own laptop. To run on your own laptop you will need to install Jupyter and Python 3, such as the excellent Anaconda distribution from Continuum Analytics.
Please let me know (jeff at nd.edu) if you any thoughts or suggestions on how these notebooks could be improved for teaching and learning the principles of Chemical Process Control.
- 1.1 Getting Started with Python and Jupyter Notebooks
- 1.2 Python Basics
- 1.3 Python Conditionals and Libraries
- 1.4 Python Numeric Integration Revisited
- 2.1 Process Variables
- 2.2 Gravity Drained Tank
- 2.3 Blending Tank Simulation
- 2.4 Continuous Product Blending
- 2.5 Hare and Lynx Population Dynamics
- 2.6 Exothermic Continuous Stirred Tank Reactor
- 2.7 Fed-Batch Bioreactor
- 2.8 Model Library
- 3.1 Step Response of a Gravity Drained Tank
- 3.2 Linear Approximation of a Process Model
- 3.3 Linear Approximation of a Multivariable Model
- 3.4 Fitting First Order plus Time Delay to Step Response
- 3.5 One Compartment Pharmacokinetics
- 3.6 Second Order Models
- 3.7 Interacting Tanks
- 3.8 Manometer Models and Dynamics
- 4.1 Implementing PID Controllers with Python Yield Statement
- 4.2 PID Control with Setpoint Weighting
- 4.3 PID Control with Bumpless Transfer
- 4.4 PID Control with Anti-Reset-Windup
- 4.5 Realizable PID Control
- 4.6 PID Controller Tuning
- 4.10 PID Control - Laboratory
- 4.11 Implementing PID Control in Nonlinear Simulations
- 4.12 Interactive PID Control Tuning with Ziegler-Nichols
- 5.1 Getting Started with Transfer Functions
- 5.2 Closed-Loop Transfer Functions for Car Cruise Control
- 5.3 Creating Bode Plots
- 5.4 Controller Tuning Rules in Frequency Domain
- 5.5 Baroreflex as a Linear Control System
- 6.1 Unconstrained Scalar Optimization
- 6.2 Linear Production Model
- 6.3 Linear Programming
- 6.4 Linear Production Model in Pyomo
- 6.4 Linear Programming in Pyomo
- 6.6 Linear Blending Problem
- 6.7 Design of a Cold Weather Fuel
- 6.8 Gasoline Blending
- 6.99 Pyomo Examples
- 7.1 Simulation and Optimal Control in Pharmacokinetics
- 7.2 Soft Landing a Rocket
- 7.3 Simulation in Pyomo
- 7.4 Simulation of an Exothermic CSTR
- 7.5 First Order System in Pyomo
- 7.6 Path Planning for a Simple Car
- 7.7 Transient Heat Transfer in Various Geometries
- 7.8 Path Constraints
- A.1 Modular Simulation using Python Generators
- A.2 Animation in Jupyter Notebooks
- A.3 A Modular Approach to Simulation using Python Generators
- B.1 The TCLab Python Package
- B.2 Relay Control
- B.3 Step Testing
- B.4 Fitting Step Test Data to Empirical Models
- B.5 First Order Model for a Single Heater
- B.6 Two-Input, Two-Output Model
- B.7 Two State Model for a Single Heater
- B.8 Four State Model
- B.9 PID Control
- B.10 Lab Assignment: PID Control
- B.11 Coding Controllers with Python Generators
- B.12 Open and Closed Loop Estimation
- B.13 Simulation, Control, and Estimation using Pyomo
- B.14 Simulation, Control, and Estimation using Pyomo
- C.1 Diabetes: Controlling Blood Glucose Concentrations
- C.2 Visual Tracking of an Object with a Drone
Åström, Karl Johan, and Richard M. Murray. Feedback systems: an introduction for scientists and engineers. Princeton university press, 2010. Most recent edition and corrections available at http;//fbsbook.org.
Murray, Richard M. Supplement: Optimization-Based Control. Available at http://www.cds.caltech.edu/~murray/amwiki/index.php?title=OBC:Main_Page.
Marlin, Thomas E. Process Control. 2nd Edition. New York: McGraw-Hill, 2000. This textbook is available on-line at http://pc-textbook.mcmaster.ca/.
The Michigan Chemical Engineering Process Dynamics and Controls Open Textbook
BYU Process Dynamics and Control
Beard, Randal W., Timothy W. McLain, and Cammy Peterson. Introduction to Feedback Control using Design Studies. BYU, 2020. Available at https://controlbook.byu.edu/doku.php
Powell, K., Fundamentals of Smart Systems, Ch En 5960 / 6960, Online Course, 2017. View Video List
License Requirements. The materials in this repository are available at https://github.com/jckantor/CBE30338.git for noncommercial use under terms of the Creative Commons Attribution Noncommericial ShareAlike License. You are invited to fork this repository, and to use, adapt, remix these material for non-commericial purposes. The license terms require you to give attribution and share your work under the same terms. Pull requests for corrections and additions to these materials are most welcome.