(40e) Diagnostic Tools for Nonlinear Algebraic Models of Dynamic Chemical Processes in Pyomo.Dae | AIChE

(40e) Diagnostic Tools for Nonlinear Algebraic Models of Dynamic Chemical Processes in Pyomo.Dae

Authors 

Parker, R. - Presenter, Carnegie Mellon University
Nicholson, B., Sandia National Laboratories
Siirola, J., Sandia National Laboratories
Biegler, L., Carnegie Mellon University
Optimization-based applications such as parameter estimation or control of algebraic (equation-oriented) models of chemical processes are challenging as the engineer needs a thorough understanding of underlying process models to properly manage degrees of freedom, process specifications, and objective functions while implementing a potentially wide variety of optimization problem formulations. To alleviate the complexity one must manage, structured modeling environments such as IDAES and Plasmo.jl have been developed to allow organization of modeling components into groups that represent the abstraction used by engineers to describe the process being modeled. Optimization solvers, however, typically work with unstructured views of a model. In the case when a solver fails to converge, checking assumptions required by the optimization algorithm may be challenging in a highly structured modeling environment. This work presents several capabilities recently introduced in Pyomo.DAE to help check assumptions and diagnose solver failures in nonlinear programming (NLP) problems with differential-algebraic equation (DAE) models. To demonstrate their utility, these capabilities are applied to three dynamic chemical process models implemented in the IDAES process modeling framework. In our application, we check the index-1 assumption for DAEs, which requires that the algebraic subsystem may be used to solve for algebraic variables, and is often a sufficient condition for a constraint qualification required to guarantee NLP solver convergence.

The first tool produces a "flattened" representation of a dynamic model, or a list of variables and equations where each item in the list is a function only of time. Permuting a dynamic model into such a structure is necessary to avoid repeating work, for instance, during model initialization. The second tool partitions a flattened model into "differential" and "algebraic" subsystems of the DAE, allowing users to easily check whether the index-1 assumption holds for their process model. Finally, to debug the case where the index-1 assumption is expected to hold but does not, we apply several algorithms to the bipartite graph of variables and constraints that are useful in determining which are causing the assumption to be violated. We first apply a maximal matching algorithm to determine whether the algebraic system is structurally singular. If the system is structurally singular, we apply a Dulmage-Mendelsohn decomposition to identify over-determined, well-determined, and under-determined subsystems that can help identify faulty or redundant constraints. If the system is structurally sound, we apply a block triangularization algorithm to identify which components, if any, are causing it to be numerically singular.

Our case studies are three dynamic process models implemented in the IDAES modeling environment: a moving bed gas-solid reduction reactor model, a bubbling fluidized bed reactor model, and a boiler- plus-steam cycle power plant model. In each case, the initial formulation is found to be violating the index-1 assumption and bipartite graph decompositions are useful in discovering the reformulation necessary to resolve the violation. A minimal script checking the index-1 assumption for a sample IDAES model is provided in the accompanying code listing.