opyrability#
Opyrability - Process Operability Analysis in Python#
A Python package for process operability analysis: forward and inverse mapping between input and output spaces, operability index evaluation, nonlinear- and mixed-integer-linear-programming based operability calculations, and dynamic operability, for steady-state and dynamic process models.
Copyright (c) 2022-2026 Victor Alves – Carnegie Mellon University. Released under the MIT License.
See the acknowledgements on source code and documentation for the project’s origins and current development.
Functions
|
Forward mapping for Process Operability calculations (From AIS to AOS). |
|
Operability Index (OI) calculation. |
|
Check if two polytopes overlap. |
|
Create a multidimensional, discretized grid, given the bounds and the resolution. |
|
Evaluate the Dynamic Operability Index (dOI) at each time step of a dynamic operability mapping. |
|
One-call dynamic operability analysis -- the recommended high-level entry point. |
|
Obtain the multimodel representation of the output-space Achievable Output Set (AOS) for a dynamic process as it evolves over k time steps. |
|
Build the dynamic Achievable Output Set (AOS) funnel by direct n-step simulation of a nonlinear step model, reproducing the construction used in Dinh & Lima (IECR, 2023, Figures 8-9). |
|
Dynamic operability across several disturbance scenarios (or input sequences), together with their disturbance-robust intersection. |
|
Disturbance-robust achievable output funnel for Gaussian uncertainty, by hyperplane shrinkage: each slice of the (mean) funnel is shrunk so that the remaining outputs stay achievable for every uncertainty realization inside the chosen highest-density region. |
|
Gets the extreme vertices of any D-dimensional hypercube. |
|
Identify a discrete-time LTI model from step tests on a nonlinear step model, in the form consumed by dynamic_operability's matrices interface. |
|
Performs implicit mapping of an implicitly defined process F(u,y) = 0. |
|
Wrap a Pyomo model builder function into a step_model callable that is compatible with dynamic_operability_mapping. |
|
MILP-based iterative algorithm for optimal modular design: Layer 1 of the multilayer operability framework of Gazzaneo and Lima. |
|
Obtain a multimodel representation based on polytopes of Process Operability sets. |
|
Inverse mapping for Process Operability calculations. |
|
Plot the 3D dynamic operability funnel by stacking the output-space AOS polytopes along the time axis, as in Dinh & Lima (IECR 2023 and Comput. |
|
Overlay the output-space funnels of several dynamic operability results as outlines, one color per result. |
|
Plot the dynamic funnel in the STATE space, as in Figures 4 and 5 of Dinh & Lima (Comput. |
|
Generation of connected polyhedra based on the AIS/AOS points. |
|
Generation of connected simplices (k+1 convex hull of k+1 vertices) based on the AIS/AOS points. |
|
Eliminate overlaps between polytopes given a bounding box and a region of potentially overlapping polytopes. |
|
Propagate Gaussian disturbance covariance through linear dynamics and return the output covariance at each time step: |
|
Rank two or more steady-state process designs by their Operability Index. |
|
Simulate Monte Carlo output trajectories using randomly sampled AIS (and, if applicable, EDS) inputs at each time step. |
|
Online update of a linear dynamic operability funnel for a new initial state, via the hyperplane right-hand-side shift of Dinh & Lima (Comput. |