Welcome to the interactive tutorial workshop for parameter estimation and model-based design of experiments in the Pyomo ecosystem!
These materials were created by Prof. Alexander Dowling, Dr. Dan Laky, Shammah Lilonfe, Stephen Cini, Shuvo Mondal, and Dr. Shilpa Narasimhan at the University of Notre Dame.
Special thanks to Prof. Jeff Kantor, Maddie Watson, Molly Dougher, and Hailey Lynch for assistance with the TCLab models and activities.
ParmEst and Pyomo.DoE were developed by (in alphabetic order): Stephen Cini, Prof. Alexander Dowling, Katherine Klise, Dan Laky, Shammah Lilonfe, Shawn Martin, Shuvo Mondal, Miranda Mundt, Shilpa Narasimhan, Bethany Nicholson, John Siirola, and Jialu Wang.
Model Building and Digital Twin Construction using Pyomo.DoE, a Pythonic Tool for Optimal Experimental Design
Digital twins rely on high-quality data to achieve predictive capability, yet experiments are often expensive and constrained. Optimal experimental design (OED) provides a principled framework for selecting experiments that maximally reduce model uncertainty, and can be naturally posed as an optimal control problem constrained by dynamic system models and experimental limitations. This workshop introduces Pyomo.DoE, an open-source, Python-based, equation-oriented framework for model building and optimal experimental design within the Pyomo modeling ecosystem. Participants will learn how classical information-based design criteria, including D-, A-, E-, and ME-optimality derived from the Fisher Information Matrix, can be embedded in nonlinear dynamic optimization problems and solved using modern numerical optimization tools. The formulation treats experimental inputs (e.g., control trajectories, sampling times, operating conditions) as decision variables in an optimal control problem that explicitly balances information gain and experimental feasibility.
The workshop will begin with a brief introduction to algebraic modeling and dynamic optimization in Pyomo, followed by a hands-on workflow for parameter estimation, uncertainty quantification, and optimal experiment design. Through interactive examples, participants will construct predictive models, design informative experiments, and explore how different optimality criteria target distinct sources of uncertainty.
This workshop is intended for researchers and practitioners interested in digital twins, system identification, and model-based experiment design. The workshop highlights how modern computational optimization tools enable scalable, rigorous, and automated experimental design for complex dynamic systems.
We are scheduled for a half-day afternoon workshop on Tuesday, May 26, 2026. Attendees should eat lunch on their own before the workshop starts. Attendees should bring a laptop computer to run the interactive examples and exercises in Google Colab.
| Time | Topic |
|---|---|
| noon | Welcome, Overview, and Computer Setup |
| 12:15 pm | Part 1: Dynamic Modeling and Optimization in Pyomo |
| TC Lab Model | |
| Numpy Simulation | |
| Simulation in Pyomo | |
| Experiment Abstraction | |
| Hands-on Examples | |
| 1:30 pm | Short Break |
| 1:45 pm | Part 2: Parameter Estimation |
| ParmEst Overview | |
| Uncertainty Quantification | |
| Multistart Profile Likelihood | |
| Regularization | |
| Hands-on Examples | |
| 3:00 pm | Coffee Break |
| 3:30 pm | Part 3: Optimal Experiment Design |
| Pyomo.DoE Overview | |
| Objective Choices | |
| Symbolic Derivatives | |
| Multiple Experiments | |
| Hands-on Examples | |
| 5:00 pm | Adjourn |
We recommend viewing this website in light mode.
In this workshop, we will learn how to develop digital twin models in the open-source Pyomo ecosystem. Specifically, we will learn how to use three Pyomo-based toolkits:
pyomo.daefor modeling and discretization of (partial) differential algebraic equations to facilitate dynamic optimizationParmEstfor parameter estimation and uncertainty quantificationPyomo.DoEfor model-based design of experiments
This tutorial assumes the audience is familiar with basic Python programming. (New to Python? Check out this and similar online resources.) The tutorial is designed to run in Google Colab. The tclab_pyomo.py file contains the Pyomo model for our motivating system as well as utilities to install software on Colab.
Alternatively, participants can run the tutorial locally on their computer. Use the following command to create a new conda environment:
conda create -n summer2026 -c conda-forge -c IDAES-PSE python=3.11 idaes-pse pandas numpy matplotlib scipy ipykernel pip
Activate the environment:
conda activate summer2026
Then install the optimization solvers, including Ipopt with HSL linear algebra and k_aug:
idaes get-extensions
Note: k_aug is not distributed for macOS users with an Intel processor. Instead, you will either need to compile it yourself or skip a few sections of the tutorial. k_aug is an optional dependency for Pyomo.DoE.
Finally, we need reinstall Pyomo with a specific version with new Pyomo.DoE features:
python -m pip install --no-deps --force-reinstall "pyomo @ git+https://github.com/dowlinglab/pyomo.git@pyomo-doe-workshop-2026"
These features are currently under review and should be included in the next Pyomo release. Once this happens, we will update these workshop install instructions to use the newest released version of Pyomo.
Next, download the files for this tutorial:
git clone git@github.com:dowlinglab/pyomo-doe.git
Developer and maintainer setup instructions are documented in DEVELOPER.md.
The Pyomo.DoE documentation is a great resource and includes a different set of examples. You can also go through our reaction kinetics example, which is split into the experiment abstraction and execution example.
If you use Pyomo.DoE, please cite https://doi.org/10.1002/aic.17813 and Laky et al. (2026):
- Wang and Dowling, 2022. Pyomo.DoE: An open-source package for model-based design of experiments in Python. AIChE Journal, 68(12), e17813. doi:10.1002/aic.17813
- Laky, Lilonfe, Martin, Klise, Nicholson, Siirola, and Dowling, 2026. Optimal Experimental Design using Eigenvalue-Based Criteria with Pyomo.DoE. arXiv.
New to Pyomo? Check out these great resources:
European Symposium on Computer Aided Process Engineering and International Symposium on Process Systems Engineering: