Process Dynamics and Control in Python

This course focuses on a complete start to finish process of physics-based modeling, data driven methods, and controller design. Although some knowledge of computer programming is required, students are led through several introductory topics that develop an understanding of numerical methods in process control. This course focuses on methods that are used in practice for simple or complex systems. It is divided into three main parts including (1) data driven modeling and controller development, (2) physics-based modeling and controller development, and (3) advanced controls. Example problems are provided throughout in the Python programming language.


 J.D. Hedengren
 Office: 350R CB, 801-422-2590
 john.hedengren [at]
 Office hours M, W, Fr 2-3 PM, 350E CB

John Hedengren worked 5 years with ExxonMobil Chemical on Optimization solutions for the petrochemical industry. He conducts research in optimization methods, modeling systems, and applications in Chemical Engineering. The PRISM group is actively working on oil and gas drilling automation, reservoir engineering, process optimization, unmanned aerial vehicles, and systems biology.

Course Objectives

It is the intent of this course to help the student to:

  1. Understand and be able to describe quantitatively the dynamic behavior of process systems.
  2. Learn the fundamental principles of classical control theory, including different types of controllers and control strategies.
  3. Develop the ability to describe quantitatively the behavior of simple control systems and to design control systems.
  4. Develop the ability to use computer software to help describe and design control systems.
  5. Learn how to tune a control loop and to apply this knowledge in the laboratory.
  6. Gain a brief exposure to advanced control strategies.