(40e) Diagnostic Tools for Nonlinear Algebraic Models of Dynamic Chemical Processes in Pyomo.Dae
AIChE Annual Meeting
2021
2021 Annual Meeting
Computing and Systems Technology Division
Software Tools and Implementations for Process Systems Engineering
Sunday, November 7, 2021 - 4:30pm to 4:45pm
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.